Today I was testing some modifications in the Ax 2012 project module and wanted to delete a test project I had just created. Much to my surprise I ended up in the debugger on a failed
Debug::assert() call in
Ax was telling me there was a major problem with one of the dimensions and the delete couldn’t continue. I hadn’t even changed any of the dimensions and they were empty anyway. No one else had reported the problem either. The same action still worked fine in another environment. It just didn’t make sense.
It turns out the culprit was the backing table for the Department dimension:
OMOperatingUnit. At the point where the assertion fails, it checks if the field group
AutoIdentification contains the field that represents the dimension value. This should work because
OMOperatingUnit is a descendant of
DirPartyTable and that table has the
Name field in the group.
It’s impossible to change that group on
OMOperatingUnit, but somehow that group had ended up in the CUS layer and was causing problems. I can only guess why. There were some other minor modifications on the table but nothing related to the field groups.
Since I’m not allowed to edit that group on derived tables I couldn’t remove it. I finally exported the entire table from the AOT, deleted the object from the CUS layer and imported the XPO again. This restored the other modification and, lo and behold, no more field group in the CUS layer and no more problems when deleting a project.