I recently had to install the Feature pack on CU3 environment and I thought I should share my experience.
Note: I won’t go through every single detail. Just the database and models.
- Install the Feature pack for the Database using the full Feature pack disc
This will warn you that you have a new model and it may override
- Install CU3 and this should import a model "Extensions update" model
- Install your custom model - merge whatever you need to merge
- Start your AOS - make sure your service and client are both on the CU3 build
- Run the client and you should see "The model store has been modified" pop up
Select "Start the software update checklist" since this is a minor update
- The software update checklist will start
Follow the check list - I did my merge already before so I didn’t run the "Detect code upgrade conflicts". I marked it as compete. You could do yours here.
- When you get to the "Synchronize database" it may fail. It failed for me because of ID conflicts.
I did a bit of digging and found the application id and the SQL dictionary id was different.
It renumbered the field DueDateLimitGroupId_ES (Foundation KB2709934 which is CU3) from 60001 to 60003.
Then the new field "DefaultPaymTerm_PSN" (Extensions model) took 60001. That is why it tries to run an update of the field and failed.
Only thing I can point it at is that when I installed the feature pack. It removed CU3, then installed the feature pack. Which took the first free ID. Then when I installed CU3, it took the next free ID.
- To fix this issue I had to run a clean up job to update the SQL dictionary with the new ID. If there is a name match.
Thanks to this blog http://dev.goshoom.net/en/2011/11/id-change/
I made a small change to skip views as that didn’t work.
static void UpdateDataDictionaryID(Args _args) |
- To deal with the views as that will error out with the sync (very weird errors but the Event viewer errors are more helpful), I wrote a job to give me an info log to drop all the views. If you are concerned about this - you can just run the sync and get a list of views it fails on and just delete them one at a time.
Copy the infolog and run it in SQL.
static void ShowViewDataDictionaryID(Args _args) |
- Continue the sync. This time it should work fine. You may have to do it twice to get it to work smooth. This is because of the views deleted may have dependencies.
- Complete the remaining checklist tasks
Good to see someone had a similar issue recently.
http://sashanazarov.blogspot.com/2012/09/id-change-in-dynamics-ax-data-dictionary.html
Final thought.
We should go with the Feature pack with all new clients. Microsoft has already put a strong statement out on partner source on why we should adopt it.
The Microsoft Dynamics AX 2012 Feature Pack—Why You Should Adopt it Moving Forward
"When Microsoft Dynamics AX 2012 R2 is released in H1 Calendar Year 2013 it will automatically install the remaining Microsoft provided country localizations (Asia, South America, Eastern Europe, etc.); so that we maintain the single consistent Microsoft Dynamics AX 2012 code base."
From this statement, it looks like Microsoft will release a single code base and their won't be a choice in the future. Everything will be installed, including the industry solutions (ie. Feature pack).