Skip to main content

Data Upgrade from Dynamics Ax 4.0/2009 -> Dynamics Ax 2012

One thing I came across in my current Dynamics Ax 2012 upgrade project is that the database collation needs to be the same for both the databases, that is the source (4.0/2009) and the target database (2012).

This might be obvious, but there is no information about this in the Dynamics AX 2012 Upgrade Guide so it took me some time to figure out why the “Connect to source database” in the “Data upgrade checklist” was giving me an error when I tried to connect to the source database.


When I tried to connect to the source database I got an error shortly afterwards saying that the locale ‘1033’ is not the same as the target locale ‘1030’. After some investigation and thinking I started to look at the two databases and found out that they had a different collation. So my first task was to create a copy of the source database with the correct collation.

Error message "The locale id '1033' of the source column 'NAME' and the locale id '1030' of the destination column 'NAME' do not match.";


Changing the collation on a Dynamics Ax database is a bit more complex process then just running an ALTER command on the database. All the tables need to be changed as well, since it is on the tables where the collation difference becomes a problem.

This blog post describes the process how to create a new database with the correct collation HOWTO: Change collation of AX database? By Martin Falta


After i had created a new database with the same collation as the target database then i could finish the Data upgrade checklist without any further problems.

Target DB was the original database with different collation. Source DB is the new database that i created with the correct collation.




Comments

Post a Comment

Popular posts from this blog

Dynamics 365 for operations – Table extensions

Background Extensions are a new way to add functionality and custom code to the D365 system without changing the standard code. In fact, Microsoft has announced that edit standard elements like those that we have done in the past will not be possible after 2017. By using extensions, we can achieve the same result by simply extending the standard system => EXTENSIONS. To read more about the difference between overlaying and extensions follow this link https://ax.help.dynamics.com/en/wiki/customization-overlayering-and-extensions/#extensions Extending tables By using table extensions, we can create a new table that adds new fields, field groups, indexes, mappings, relations, methods, subscribe to event handlers and more. When extending tables we need to follow the naming rule as such: <TABLENAME><_Extension> the compiler understands the _Extensions suffix and knows that the table in question is extending a table from the standard system. This gives us access ...

Plug-able Authentication in Microsoft Dynamics AX 2012

I have worked in many projects involving the Enterprise Portal for Ax ranging from version 2.5. One of the biggest issue for the end customer/user has been the ability to have a plug-able authentication for EP. This has been an issue for example for customers that have other portals based on Share Point as well as custom build ASP.NET web sites. All these portals are able to share the authentication with Single Sign On, SSO. But until now with version 2012 of Ax this has not been possible since earlier versions of Ax have only supported Windows Authentication. So in scenarios where you implement an EP site for a customer that has other portals and uses for example forms authentication, if you are not running Ax 2012 you have to have a special/dedicated log-on to EP. One of the biggest advantages is the fact that now external users do not have to be in Active Directory mixed up with all the internal users or located in an extra AD repository with all the administrative IT work l...

Remove HTML code from strings

When you work for example with the presentations DAX adds some HTML comment code to the text stored in the database. This can cause the text on the web to be displayed in incorrect format. This also takes up space in the database and makes the database file grow larger. <!--AXAPTA  MarginWidth="0" MarginHeight="0" WebletName="WebLet700062029" Type="WebPageWeblet" -->TEXT There is a nice X++ function: just call Web::stripHTML( string ), which will return the string without the HTML tags