Wednesday, December 12, 2012

Upgrading to AX2012 R2 from AX 2012

I would like to share my story on the upgrade process from AX2012 (RTM) without Feature Pack, but with CU4. The upgrade is supported for AX2012 with or without Feature Pack, and you need at least CU3 installed.

Having a working environment with AX2012 on CU4, and code in ISV, VAR, CUS and USR I was ready to begin. I have a FPK-layer with Data Migration Framework elements, but I plan to remove it before the in-place upgrade.

Microsoft has published a good presentation from the latest Dynamics AX Technical Conference, along with the PowerPoint presentation. But for those without access to InformationSource, the guide at MSDN pretty much sums it up. I would strongly advice anyone who is going to do this upgrade to follow the guide on MSDN.

The upgrade from an existing AX2012 RTM (version 6.0.x.x) to AX2012 R2 (version 6.2.x.x / 6.2.158.0) is best done in-place. This means we want to take our existing application and code and upgrade it directly on top of the old version. But before we can do this, we need to prepare an R2 compatible application code so we ensure no data loss. This is the time consuming part of the upgrade, as it involves installation of a seperate R2 environments and developers need to go through any custom code that needs to be adjusted in case it doesn't compile on top of the new R2 SYS layer.

On a high level, the upgrade process looks like this:

  1. Freeze AX2012 code and make sure the environment compiles and works as expected. 
  2. Setup a new server since R2 components can not co-exist with RTM components. 
  3. Duplicate the AX2012 database into a new database intended for "R2 Test".
  4. Run setup and let it create the initial basis for a new R2 environment. Point to the test-database and install AOS, client and debugger for R2.
  5. With Test up, duplicate it to a new environment intended for "R2 development". The AOS can be installed on same server as test. This will be where code review will be done in order to fix code and prepare it for R2. Complete the code upgrade.
  6. Let testers test R2 when it is ready for testing. 
  7. Upgrade AX2012 Live with already prepared R2 compatible axmodels, making sure both code compiles properly and there is no data loss in production.
Now there are a lot of details in each of these steps, all explained in the MSDN article

Right now I am going through the process of preparing all my axmodels for R2 (Step 5), and since I need to go through these axmodels layer by layer, the entire process might take some time. So far the process has gone by as expected. I look forward to run step 7, though. :-)

A couple of tips:
  • Make sure there are enough available disk space on the disks containing your user hive (typically c-disk) and on the database server when running the AX2012 R2 setup. 
  • If you chose to upgrade the Help Server content, you need to uninstall previous translated content - not the Help Server itself, but just the translated content. Use "Programs and Features" (Windows 2008) to locate the packages and just uninstall them one by one.
  • Set aside a lot of time, since the whole process involves multiple time consuming steps (like full compilation).

13 comments:

  1. Nice blog post, Tommy. We need theese experience blogs. Happy Daxing. //kurt

    ReplyDelete
  2. I need to upgrade the Ax2012 feature pack2(standard app) without new customizations and with new data to Ax 2012 R2, Please let me know the process to achieve the same.

    ReplyDelete
    Replies
    1. The upgrade procedure is the same if you have Feature Pack or not. You still need to have at least CU 3 installed. If you have data you need to preserve from your RTM version, then you need to follow the guide precisely, even if you do not have any customization.

      Delete
  3. Yet another one, but always nice to see other norwegian-axgeeks out there! Actually came here from you post on the AX forum commenting upgrade with label-problem.. Nice to see other with similar problem. I wondered about norwegian labels in AX r2. As I read on your post on the AX forum, it's incomplete. Have you heard anything about when it's going to be released? Since I'm installing AX r2 for a company (now)(a clean one) I wonder if you have found a work around for the problem. Or what does microsoft say about this? Any article about this... Only found your post about this.

    Else thanks in advance, I'm still in the learning process of AX, but again seems like I always will be..
    -Thor

    ReplyDelete
    Replies
    1. The only problem I have found so far is when upgrading an existing RTM (6.0/6.1) to R2 (6.2) having the Foundation Labels II installed while installing the R2 models. During install of the new R2 "Foundation Label", it will discover 6 label file elements with same name, but in a different model, namely "Foundation Label II", and the installed will actually remove these 6 label elements from the AOT! A workaround is to remove Foundation Label II before upgrading. This will allow the installed to install all the labels from RTM, including those in Foundation Label II, and all the new ones shipped with R2.

      As for a clean install, this is not a problem, and the only "limitation" I have found in the Norwegian translation is some strings actually not being translated but simply being English. I guess someone ran out of time, and they pulled a few shortcuts. ;-)

      Delete
  4. I am unable todo CIL Generation after installing DMF.
    I am getting error saying : CIL generation: Value cannot be null. Parameter name: parameterTypes" Method/Parameter Name: XPPIL
    I performed changes in a class and other queries to rectify this by referring to belwo link. Still i m facing same issue.
    Can you help me come out of this either by solving this error or Removing DMF completely from my instance.

    Thanks,
    Manju.

    ReplyDelete
    Replies
    1. Hi Manjunath

      What version of DMF is this? Beta 2? There are a couple of code changes that needs to be done in order for that one to work in R2. You should go through all the DMF elements in FPK-layer and make sure they are not overshadowing code is SYS/SYP. I know there are at least a macro-element that is overshadowed. A full Compile of the AOT should reveal this.

      Delete
    2. Hi Tommy,

      Will there be any specific Class/Method where i should do code changes? Is this because of Model file which we are importing for DMF?

      Delete
    3. Yes, you will need to do various changes after the model has been imported. If you can't figure out what code that needs to be changes, I suggest you head over to the Community Forum and ask specific questions there. Several AX'ers are there and are happy to help: https://community.dynamics.com/ax/f/33.aspx

      Delete
  5. hi tommy

    you are suggesting the upgrade process depicted is supported for AX2012 with or without Feature Pack, and you need at least CU3 installed.

    the following are my versions:
    kernel: 6.0.947.862
    application: 6.0.947.280

    i am not sure if CU3 is installed or not. or should i proceed to upgrade to R2 anyway?


    ash

    ReplyDelete
    Replies
    1. Hi Ash

      Your kernel is actually Feature Pack, while your application is CU2. That doesn't sound like a good setup, to be honest.
      http://blogs.msdn.com/b/axsupport/archive/2012/03/29/overview-of-ax-build-numbers.aspx

      However, the upgrade will not consider the kernel, but rather the application (code).
      Since your application is CU2, you need to have it upgraded to at least CU3.

      Best of luck!

      Delete
  6. hi tommy

    thanks for confirming - atleast i know where i stand. another query on same note, i will download the CU3 from the following link. it suggests that CU3 installation resembles the Microsoft Dynamics AX 2012 installation. shall i follow what it says? or do you have any suggestons/ pointers?

    https://mbs2.microsoft.com/Knowledgebase/KBDisplay.aspx?scid=kb;en-us;2709934


    ash

    ReplyDelete
    Replies
    1. Not entire sure where it says it resembles the AX 2012 installation.

      Applying a CU will require a code merge process. This is where you will make sure any changes in the SYP layer is let through any overshadowing layers. So if you have customization in elements being patched in SYP, you will need to make sure your code in the overlayering (ISV, VAR, CUS or USR) contains the fixes from SYP. While merging the CU into the application, any developing process in the same AOT needs to be halted until you are finished. Depending on the size of customization and overshadowing, I'd say it is a matter of a couple of days work (on average).

      Delete