Ensure to use the Retail Initialize in all AX companies configured with Retail

This is a quick article to let you know that when configuring AX and Retail you will need to use Retail Initialize function in all companies that will be using Retail.  The location of the Initialize button is in Retail >> Setup >> Parameters >> Retail parameters >> in the menu bar, click Initialize.

When Initialize is ran for the first time, it will create the Retail tables, jobs, forms, etc. Running Initialize a second time will attempt to create these same entities.  Since they already exists, you will be presented with an Infolog with errors stating that they already exists and it is unable to create them.  The big catch here is that running the Initialize also marks the SYSTEMINUSE flag for that company in the RETAILPARAMETERS table.  If you do not run the Initialize in additional companies, most of the Retail functionality will work but there are a few checks here and there that will cause issues. 

In one such instance, posting a Retail Statement will process successfully, but there will not be any records in the RetailCustInvoiceJourTable table as a check is made for the SYSTEMINUSE flag on whether it needs to copy the CustInvoiceJourTable to the RetailCustInvoiceJourTable.  This can be correct after the fact by re-running the job to copy the contents, but it is best to avoid this scenario.

We are looking to create additional checks to prevent the initial creation of things such as the Retail store, registers, etc. in a company that hasn’t been initialized yet.  Until a fix is released to perform these checks, please ensure that you have Initialized any company that will be utilizing Retail.