Tuesday, April 26, 2011

Best Practice Check execution - Multisite in AX 2009 - Specific Checks - Tables - Inventory dimension fields are handled by multisite activation

When upgrading from an older version to AX 2009, the multisite function is, by default, inactive. Ususally when you activate Multisites in AX 2009, you may have an error message saying:

"The Multisite wizard is not up-to date"

This means that some new InventDim fields have been added to some tables and the wizard cannot run. There are many ways to fix this, but I found that by executing a Best Practice Check is the best way to do this.

On the Microsoft white paper about multisites (http://www.ax-pact.com/downloads/Multisite%20Activation%20White%20Paper%20for%20Microsoft%20Dynamics%20AX%202009%20.pdf) they suggest doing this, but they don't tell you where to run the Best Practices Check from.

To do so follow the next steps:

1- To enable/disable some checks go to Tools > Options then click  the Best Practices button

NOTE: I have learned that by default all the check boxes are checked when you open the form.

2- Disable (uncheck) all the checkboxes except for the following (Under Specific Checks > Tables)

Inventory dimension fields are handled by multisite activation

NOTE: The above is the actual name of the check box!  : 0

3- Make sure that in the Options form choose Compiler and make sure that Diagnostic Level is set to Level 4. This will run the Best Practices checks during compilation, otherwise it wouldn't run at all.

4- Compile the whole application,  Go to Administration > Setup > System > Checklists > Upgrade checklist > Compile application

After this you will see all the best practices errors just for the Iventory Dimensions in your Compiler Output, and then is party time!

2 comments:

  1. If Best Pratice Check cannot find the error, you can add the following code in Class InventSiteActivateDimFieldCheck, Method validateInventDimIdImplementation after line 36 (ok = false;):

    error(strFmt("Field'%1' in table'%2' is not part of the lists for the multi site activation.",
    sysDictField.name(),
    sysDictField.tableName()));

    ReplyDelete
  2. Thanks Florian. Your little code snippet did the trick. In my case it was DEL_InventTransOrgin that caused problems. I just changed the configuration key to sysDeleted on DEL_InventTransOrigin. The table is now skipped from the Multisite pre-check.

    Regards,
    vegard

    ReplyDelete

Thank you for your thoughts. Your comment will appear in my blog shortly after review.

Have a great day!