System environment setup for AX 2012

The setup for Microsoft Dynamics AX 4.0 and AX 2009 as well Axapta 3.0 (I haven’t worked with older versions) was pretty straight forward when it came to the configuration and number of environments. You had a Live environment, a Test environment and in most cases also a Development environment. You could easily make a copy of a company in any of the environments to get a place to try out transactions and that worked well. (You might have to add an separate test environment for AX 2009 if you where using the Enterprise Portal development.)


With the introduction of AX 2012 there was a lot of changes and most of us where caught of guard. There was good reasons for the changes, but the consequences of did take some experience to actually get right.

Issue #1: Company copy function was gone

Because of the global data and organization hierarchy features you couldn’t just copy a company. The feature to copy a company (legal entity) was deprecated. You would have to have a totally different environment to do that, so in the beginning we did training and process testing in the Test environment.

Oh “Duplicate”…. How you are missed!


The challenges this brought was that you might have features for testing in this environment and the results might affect your training or process testing.

The result was that a new environment had to be introduced: A dedicated training environment that was identical to your Live environment.

Issue #2: CIL compiling and code management

This isn’t my area of expertise, but it is clear that the concept of CIL execution, that was new to AX 2012, have changed the way we work with the AX code.

Don’t be in denial, if you want to CIL compile. No errors allowed!


The AX 2012 code has to be TOTALY free for errors if you want to make a full CIL compilation, and you have to be certain that your code is the CIL runs before you move code to your Live environment.
You don’t want to move code to the Live environment and do a CIL compile without knowing if it works. As you might have multiple changes going on at the same time you would need a separate place to do the CIL compile.

The result was that a new environment had to be introduced: A dedicated environment where code could be compiled and tested before moved to the Live environment.

The new environment layout

Model = Entire model store


No development, no untested code, no compiling (Unless… you meet an error that requires it). Receives code through copying the model store from the Staging environment at planned intervals.
If your business is very lokalized, like a manufacturing company with one site location, I would recommend an on-prem solution, but Azure is also a good alternative.

Code is copied in parallell with Live. Receives data through DMF or by routinely copying the Live transaction database. Super users and end users use this environment if needed.
Put it in Azure.

Code is imported when approved from Test and is compiled, CIL compiled and retested. Data is routinely (at request/if needed) copied form the Live transaction database. You can have multiple updates to the staging environment before a copy to Live is done.
Put it in Azure.

New code imported from development and features are tested and tried out by the super users and admins. Transactional data is copied from Live when needed.
Put it in Azure.

You can either have a common development environment or multiple environments based of the same codebase. Data is rarely, but if absolutely needed copied from the Live transactional database.
Put it in Azure.

Would love some input on this if you’ve got some, so please comment with input if you’ve got any. Thanks!

2 thoughts on “System environment setup for AX 2012

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s