With Dynamics AX 2012 CU3, we have been experiencing this error when opening the Packing Slip Journals form from a Sales Order: “Table ‘ShipCarrierTracking’ of type TempDB cannot be changed to table of type InMemory.” After many headaches, I believe we have finally figured out the culprit. Keep reading to find out.
I’ve seen several blogs that have claimed that the error is caused by a cache of the temporary tables in the SQL database being out of sync with the AOS instance. They also say that an AOS restart will fix the issue. I’m sure that this works with some of these Temp DB issues, but not this particular one.
After discovering that the AOS restart didn’t help, I tried to open the ShipCarrierTracking table from the AOT, just to see what was going on. Immediately, I knew something was wrong because I got an error message that said I didn’t have the correct permissions to view the table, but I was using the Admin account and should be able to view everything. I took note of the configuration key property for the table and it was set to Ship Carrier. I opened the License Configurations form in the System Administration module and, under the Trade node, the Ship Carrier key wasn’t marked. Not wanting to mess with the tried and true configuration of the system, I set about with a workaround. It should go without saying that this is not best practice but it worked, which is better than not working.
I changed the configuration key on the table to Ledger Basic (just a basic key that I knew we had turned on). I then tried to open the packing slip journal form again, but got the same error as earlier. However, the table had changed to ShipCarrierPackage and I was worried that this would lead to a never ending cycle of changing table properties. I went ahead and changed the configuration key for this new table (again, not best practice) and tried the form once more. This time the form opened!
Too long; didn’t read: If you get this error, change the configuration key property on the ShipCarrierTracking and ShipCarrierPackage tables to a basic key rather than Ship Carrier (that is if you don’t want to turn on the Ship Carrier key).