Author Archives: Darren

VS2005 & BIDS 2005 Compatibility with TFS 2012

In order to use the Source Code Control feature of Team Foundation Server 2012 (including Express Edition) with Visual Studio 2005 or Business Intelligence Development Studio 2005 you need to install the following on your client machine:

Pre-requisites:

  • An instance of Team Foundation Server 2012 (or Express edition) up and running.
  • Visual Studio 205 SP1 / BIDS 2005 SP1

TFS 2012 Team Explorer
Download: http://www.microsoft.com/en-gb/download/details.aspx?id=30656

Microsoft Visual Studio Team Foundation Server 2012 MSSCCI Provider 32-bit
Download: http://visualstudiogallery.msdn.microsoft.com/b5b5053e-af34-4fa3-9098-aaa3f3f007cd

To enable the MSSCCI plug within Visual Studio 2005 / BIDS 2005 go to Tools > Options, find “Source Control” and select the “Team Foundation Server MSSCCI provider”.

TFS 2012 Express

Free Source Code Control using Visual Studio Team Foundation Server Express 2012

TFS 2012 ExpressVisual Studio Team Foundation Server Express 2012 is a source code control, project management, and team collaboration platform at the core of the Microsoft suite of Application Lifecycle Management tools, which help individuals and small teams of upto 5 developers be more agile, collaborate more effectively, and deliver quality software.

 

 

Find out more and download TFS 2012 Express for free here:
http://www.microsoft.com/visualstudio/eng/products/visual-studio-team-foundation-server-express

 

Read more about TFS2012 and VS2005 / BIDS2005 Compatibility

 

BIDS Browser Error – The query could not be processed XML for Analysis parser The LocaleIdentifier property is not overwritable and cannot be assigned a new value.

When attempting to browse an Analysis Services Cube in the BIDS Browser the following error message is displayed:

The query could not be processed:
o XML for Analysis parser: The LocaleIdentifier property is not overwritable and cannot be assigned a new value.

 

Resolution:

The language will be set to ‘Default’
BIDS Browser Default Language

Select your language ( e.g. English (United Kingdom) ) from the language drop down box and you’ll be able be able to browse the cube.
BIDS Browser UK Language

 

** UPDATED 11/10/12 **

I’ve come across a more permanent fix for this issue:

1. Open Start – Control Panel, find Location Settings (or Regional Settings or Region and Language).

2. Find the Format setting (which determines date and time formats).

3. Change it from your normal setting (in my case English (United Kingdom)) to English (United States). Apply the change.

4. Straight away set it back to what it was before (in my case English (United Kingdom)). Apply the change.

5. You will need to restart the BIDS if you have it open.

The error should not appear again for that user on the machine the fix was applied to.

BIDS Helper 1.6.1 Released

BIDS Helper Overview:

A Visual Studio add-in with features that extend and enhance business intelligence development functionality in SQL Server 2005, 2008, and 2008 R2 BI Development Studio (BIDS) and SQL Server 2012 SQL Server Data Tools (SSDT).

New Release

A new version of BIDS Helper (1.6.1) is available here: http://bidshelper.codeplex.com/releases/view/88092

 

Release Notes

In addition to fixing a number of bugs that beta testers reported, this release includes the following new features for Tabular models in SQL 2012:
New Features:
  • Tabular Display Folders
  • Tabular Translations Editor
  • Tabular Sync Descriptions

Fixed Issues:

  • Biml issues
  • SSIS Value cannot be null. Parameter name: adornedElement (Microsoft Visual Studio)
  • fixing bug in Tabular Actions Editor Form where you type in an invalid action name which is a reserved word like CON or which is a duplicate name to another action
  • Sync Descriptions (With Tables) Working? – fixing bug in SSAS Sync Descriptions where only the selected extra property (not all checked extra properties) are added to the description
  • Tabular: data source credentials wiped out by Tabular HideMemberIf feature – fixing bug for models with data sources with credentials, Tabular HideMemberIf wipes out the credentials
  • Edit Variable Expression in VS 2010 with BIDS Helper 2012 1.6.0 does not refresh result from expression in Task
  • Tabular drillthrough returns numbers as text

How to Change the Business Connector Account after Enterprise Portal is Already Installed

Find out the steps and actions needed to change the Business Connector Proxy account in Microsoft Dynamics AX after you have EP installed, and SSRS and SSAS configured for EP by reading this post on the AX Support Team’s blog.

http://blogs.msdn.com/b/axsupport/archive/2012/09/13/how-to-change-the-business-connector-account-after-enterprise-portal-is-already-installed.aspx

 

Large collection of Free Microsoft eBooks for you, including: SharePoint, Visual Studio, Windows Phone, Windows 8, Office 365, Office 2010, SQL Server 2012, Azure, and more.

Here’s two great posts which contains download links to free Microsoft eBooks that are available for SharePoint, Visual Studio, Windows Phone, Windows 8, Office 365, Office 2010, SQL Server 2012, Azure, and more.

http://blogs.msdn.com/b/mssmallbiz/archive/2012/07/27/large-collection-of-free-microsoft-ebooks-for-you-including-sharepoint-visual-studio-windows-phone-windows-8-office-365-office-2010-sql-server-2012-azure-and-more.aspx

http://blogs.msdn.com/b/mssmallbiz/archive/2012/07/30/another-large-collection-of-free-microsoft-ebooks-and-resource-kits-for-you-including-sharepoint-2013-office-2013-office-365-duet-2-0-azure-cloud-windows-phone-lync-dynamics-crm-and-more.aspx

 

 

Dynamics AX 2009 Tracing on Application Object Servers the easy way

Troubleshooting AX 2009 Performance Issues can be sometimes frustrating when you’ve got a lot of users using the system and you want to trace one particular users session.

One way that can ease this is to log the user onto an AOS where the service account it runs under is different to your other AOS’s and where they are the only user on the AOS. This means you can trace only their session using the “Microsoft Dynamics AX 2009 Server Configuration” application along with SQL Server Profiler (In Profiler you can specify the service account to be traced).

In order to set this up there are two different options, option 1 is the preferred option.

Option 1: Install a new AOS on an existing server that has the capacity or a new server – you can allocate specific CPU’s for each AOS Service on your server within the “Microsoft Dynamics AX 2009 Server Configuration” application, I will cover this in another article at a later date.

Option 2: Use an existing AOS Service

 

Option 1: New AOS Service

1.  Create a new Active Directory Login

e.g. CONTOSO\PerfMonAosSvc

 

2.  Add user to ‘Performance Log Users’ group

Performance Log Users GroupThis is required so AOS Tracing can be started via the Tracing tab found within the
“Microsoft Dynamics AX 2009 Server Configuration” application.

3.  Install a new AOS specifying the new Service Account login details when prompted,     specify not to start service after the installation is completed, this ensures you can install Service Packs and Hotfixes on the new AOS service.

4.  Ensure you install any Service Packs or Hotfixes to your current environments level.  During each install specify not to start service after the installation is complete and ensure you only select to update the AOS.

5.  You may need to add ‘EXECUTE‘ permissions on any additional custom Stored Procedures that you may have in your AX Database for your new account.

6.  Start the new AOS Service and check the application event log to ensure no warnings/errors are reported.

 

Option 2: Changing an Existing AOS Service

If you already have an existing AOS Service you want to configure for Performance Monitoring there are different steps to complete:

1.  Create a new Active Directory Login

      e.g. CONTOSO\PerfMonAosSvc

 

2.  Create a SQL Server Login

USE [master]
CREATE LOGIN [CONTOSO\PerfMonAosSvc] 
FROM WINDOWS 
WITH DEFAULT_DATABASE=[MY_DAX09_DB]

 

3.  Create the Database Login

USE [MY_DAX09_DB]
CREATE USER [CONTOSO\PerfMonAosSvc] 
FOR LOGIN [CONTOSO\PerfMonAosSvc]

 

4.  Grant Database Role Permissions

USE [MY_DAX09_DB]
EXEC sp_addrolemember N'db_ddladmin', N'CONTOSO\PerfMonAosSvc'
EXEC sp_addrolemember N'db_datawriter', N'CONTOSO\PerfMonAosSvc'
EXEC sp_addrolemember N'db_datareader', N'CONTOSO\PerfMonAosSvc'

 

5.  Grant Stored Procedure Permissions

USE [MY_DAX09_DB]
GRANT EXECUTE ON [dbo].[CREATESERVERSESSIONS] 
TO [CONTOSO\PerfMonAosSvc]
GRANT EXECUTE ON [dbo].[CREATEUSERSESSIONS] 
TO [CONTOSO\PerfMonAosSvc]

Note:  You may need to add ‘EXECUTE’ permissions on any additional custom Stored Procedures that you may have in your AX Database.

6.  Add user to ‘Performance Log Users’ group
Performance Log Users Group

This is required so AOS Tracing can be started via the Tracing tab found within the “Microsoft Dynamics AX 2009 Server Configuration” application.

 

7.  Ensure the Service Account has Modify, Read & Execute, List folder contents, Read, Write permissions on the Application Folder

e.g. C:\Program Files\Microsoft Dynamics AX\50\Application

 

8.  Ensure the Service Account has Read, Write permissions on the AOS Log folder

      e.g. C:\Program Files\Microsoft Dynamics AX\50\Server\MY_NEW_AOS_02\Log

9.  Change the AOS service account user in Services to the newly created service account

10. Restart the AOS Service.

 

Please as always try this setup in your Test / Dev environment prior to implementing it in your Production environment to ensure you understand the setup required and that it fits your requirements.

 

Additional Reading:

A great 3 part series on AX Tracing from the ‘Premier Field Engineering’ Team
http://blogs.msdn.com/b/axinthefield/archive/2010/12/28/dynamics-ax-tracing-part-1.aspx
http://blogs.msdn.com/b/axinthefield/archive/2011/03/25/dynamics-ax-tracing-part-2.aspx
http://blogs.msdn.com/b/axinthefield/archive/2011/06/25/dynamics-ax-tracing-part-3.aspx

Updating an AX users SID when they’ve been accidently deleted from Active Directory

If you ever find an AX user’s account has been accidently deleted from Active Directory then is recreated with the same user name but they cannot access AX this is because they now have a new Active Directory SID that doesn’t match the SID against their user in AX.

This can be resolved by updating their SID in AX with the newly recreated user’s SID.

 

The Problem:

“User1” was deleted in Active Directory, it was established that “User1” shouldn’t have been deleted, so “User1” was recreated.  Unfortunately “User1” couldn’t access AX though, they were receiving an Access Denied message.

Resolution:

First of all run the following powershell script (replace “User1” with your user) to find their SID

$AdObj = New-Object System.Security.Principal.NTAccount('User1')
$strSID = $AdObj.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value

 

As you can see their SID is returned as S-1-5-21-1214440339-1788223648-682003330-48397

 

Using the SID returned by the Powershell script run the following SQL Script (replacing the  Database Name, SID and ID with yours) to update the newly created login’s SID

UPDATE [MY_DAX09_DATABASE].[dbo].[USERINFO]
SET SID = 'S-1-5-21-1214440339-1788223648-682003330-48397'
WHERE ID = 'User1'

Note: ID is not usually the same as the users AD login name, in this example it happens to be.  Doing a simple select statement on the [UserInfo] table will establish the users ID that you need to use in the above SQL Statement.

“User1” will now be able to access AX again.

Recovering from an AX 2009 AOS Crash

If for whatever reason you have an AOS crash, you can set the AOS service to restart automatically.  This will ensure your AOS is back up and running quickly and does not rely on manual intervention to restart the service which may not always be on hand to resolve at the time of failure.

Within Adminstrative Tools > Services
Right mouse click on your AOS Service and select ‘Properties’
Select the ‘Recovery’  tab
Change the settings to your requirements

The options shown in the example will attempt to restart the service twice in any one day of failure with a 1 minute interval before it attempts to restart the service.  The fail count is reset every 1 day.

 

Future posts will cover how you can be notified instantly by email of AOS Service crashes and of AOS Services not running.

Login box appears on Sharepoint site constantly

Is a login box prompt all of a sudden coming up every time you attempt to browse your Sharepoint site, did it previously work okay and works from a different machine with the same user credentials?

If so you could be experiencing a similar problem I have come across with cached credentials.

On Windows 7 browse to:

               Control Panel\User Accounts and Family Safety\Credential Manager

Under the ‘Windows Credentials‘ heading remove the affected users login details that appear for your Sharepoint server.

Try browsing to your Sharepoint site and the login box should not appear.

 

Thanks to this article for pointing me in the right direction, it also contains other common issues/fixes relating to the login box appearing:
http://sharepointsolutions.blogspot.co.uk/2008/06/how-do-i-make-our-sharepoint-site-stop_17.html?m=0

Get notified when Admin or All user group permissions are granted to users in AX 2009

Want to know instantly when a user has been granted ‘Admin’ or ‘All’  user rights in your Production or Non-Production environments?

Of course you do!  Implementing the script available to download below gives you control over your AX Environment with regards to knowing when permissions could have been granted incorrectly.

The script will create a trigger on the [USERGROUPLIST] table, if the user group ‘Admin’ or ‘All’ is added to a users profile then an email notification will be sent to your AX Administrators.

Follow the instructions within the SQL Script on what needs to be changed to configure it in your environment.  As always please setup and test in your Dev/Test Environment to ensure you understand the setup and that it works as intended in your environment.

I also always advise sending the email notifications to a distribution email group as opposed to individually named email addresses as it means you only need to change the distribution email group for Administrator leavers/starters as opposed to having to change numerous pieces of code/jobs/notifications.

Download Admin User Group Check Setup (545 downloads)

Data cache is not always syncing between clustered AOS’s (Cannot edit a record in LastValue (SysLastValue). User ID: , AdminUserSetup.)

If you experience data mismatches between AOS’s it could be because the table is being cached by the AOS but is not syncing between other AOS’s.

So for example a user updates some data logged onto AOS01, a user then queries the data on AOS02 and it’s not there.  Even the automatic nightly flush of the AOS caches doesn’t update AOS02 the only way to get the caches in sync is to restart both AOS’s.

You might see the following error messages in the AOS Application Event Log:

110 Object Server 01: Dialog issued for client-less session 1: Cannot edit a record
in LastValue (SysLastValue). User ID: , AdminUserSetup.
The SQL database has issued an error.

If you have been experiencing this issue  then you may need to apply Hotfix KB261128 to resolve the issue or apply SP1 RU8 which also contains this hotfix.

AX 2009 Batch Job Created Notifications

Want to know instantly by email when users are creating batch jobs in AX 2009.  This saves you having to constantly go and check the Batch Job form and work out what’s new.

I have created a script which can be downloaded below which will create a SQL DML insert trigger on your database, so when a user submits a process to batch you can receive an email informing you of the submitter and name of job they have submitted.

There’s a couple of pre-requisites that need to be adhered to:

1.  Database Mail must be configured and working in your environment
2.  You need to know the following details:

  • Your Database Server and Instance Name (Instance Name only applicable if you are using named instances)
  • Your Production Database Name
  • Your Database Mail Profile name
  • Email Recipients Address (always best to have a generic distribution group email address)

With these details you can perform a find and replace on the defaults values in the script before running the script against your AX Database, full details are provided in the script itself on how to set it up.

Download  AX Batch Jobs Added Script (466 downloads)

DISCLAIMER: As always please try setting this up first in your test environment to ensure you understand the setup and whether it provides the functionality you require.

Finding which Operators are setup against SQL Agent Job Notifications

As a minimum every SQL Agent Job should have an operator (or DBA) notification setup ideally for failure or completion.

Agent Job Properties

How do I check which operators are setup against my Agent Jobs I hear you say!

Well run this query below to find out.  If you have any agent jobs return as ‘No email notification configured’ in the [Notify_level_email] field then an email notification is not setup and you should look into these as a priority (unless you have other methods of monitoring Agent Jobs that is!)

SELECT SJ.NAME, SO.[name],SO.[email_address],
[notify_level_email] =
CASE notify_level_email
     WHEN '1' THEN 'When the job succeeds'
     WHEN '2' THEN 'When the job fails'
     WHEN '3' THEN 'When the job completes'
     ELSE 'No email notification configured'
END
FROM
msdb.dbo.sysjobs SJ LEFT JOIN [msdb].[dbo].[sysoperators] SO 
ON SJ.notify_email_operator_id = SO.ID
ORDER BY SO.ID, SJ.NAME

Download  Finding-which-Operators-are-setup-against-SQL-Agent-Job-Notifications (294 downloads)

The example below shows the operators setup against Agent Jobs and the email address the notification will be sent to, the first row shows that no operator is setup on this job for email notifications, if this job fails no-one may be aware.

Agent Job Notifications

 

There’s a few pre-requisites that your need to ensure are setup first for Agent Email Notifications to work:
1.  Database Mail should be configured and working (see this great article on SQL Server Central if you don’t know how to setup Database Mail)
2.  Agent Operators should be setup with valid email addresses (see my post on recommended operators to setup)  
3.  Agent Jobs should have an email notification configured ideally for ‘When jobs the fails’