Customers upgrading from Microsoft Dynamics AX 2009 will need to activate Multisite Inventory prior to upgrading to Microsoft Dynamics AX 2012. Some customers will have already setup their system for multisite in some of their companies and will be notified during the readiness checks that multisite must be activated in their remaining companies prior to upgrading. This activation is handled by the standard Multisite Activation Wizard found under Administration - Setup - Multisite activation.
Customers upgrading from Microsoft Dynamics AX 4.0 have no option within the core product to setup multisite inventory because that feature was not introduced yet. These customers will need to specify their multisite inventory settings as part of the data upgrade checklist. The validation message for this particular section is somewhat misleading, and the current Upgrade Guide PDF file has the wrong checklist menu item name.
There are three typical validation messages that can arise due to multisite activation, and two of the messages listed here require the user to go through the Configure site structure step within the Prepare application data for preprocessing section of the checklist. However, that checklist section doesn’t get activated right away which makes it seem like the user cannot take the right action.
The following message will appear if there are any custom tables in the system which use the InventDimID extended datatype.
The resolution in this case of custom inventDimID fields is very generic and misleading. Clicking on the Details button will display a list of all the new fields and the tables that contain those fields, and would appear something like this:
The correct resolution to the issue with new custom dimensions is to inspect the dimension ID fields that are presented and determine if those records should have the InventDimID values changed so that they now include a default site. Once the decision is made for the fields, the next step is to customize the methods which list all of the InventDimID fields in the system in either a process list or an ignore list. In Microsoft Dynamics AX 4.0, the methods are found here:
In Microsoft Dynamics AX 2009, the methods are found here:
In both cases, it is fairly easy to copy existing lines from the script and then add new lines at the end using the table name and field name for the custom InventDimID fields.
The two methods and messages which require the Configure site structure step are:
And
Both of those validation errors recommend to the user to "Complete the Configure site structure item in the Pre-upgrade checklist." In order to get the Configure site structure option enabled so this step can be completed, the user can press the Fix button in the bottom half of the window or wait until fixing all of the other validation errors and doing the steps in the Prepare application data section.
This walkthrough continues to outline how to finish multisite activation during the upgrade process.
If you carefully read the upgrade guide all the way through before you start the upgrade process, you may notice that it says to activate multi-site in AX2009 before loading the upgrade XPO or you will experience problems running the Multi-site activation wizard. That message isn't very descriptive, and the guidance the wizard gives you isn't of much help either - you get a message saying "The Multisite Activation Wizard is not up-to-date. Please run a best practice check to identify tables and fields for which activation scripts are missing.
To fix this problem caused by the UpgradeAX5.xpo, you can simply do the following steps:
set.add(InventSiteActivateDimFieldsCheck::tableFieldId(tablenum(DEL_InventTransOriginUpgrade), fieldnum(DEL_InventTransOriginUpgrade,InventDimId)));
Then compile the script and re-run the wizard and resolve any other errors.
If the error still persists, then you will want to set a breakpoint in the method Classes\InventSiteActivateDimFieldsCheck\validateInventDimIdImplementation at the line in the middle that says ok=false; (line 36 in SP1 code) Then run the wizard again, and when the breakpoint hits, you can look at the variables sysDictTable and sysDictField to find out which table and fields need to be added to either the notUpdatableFields or updateableFields methods depending on if you want the inventDimID value to get the new site or not.