Monday, September 8, 2014

Delete legal entities in AX 2012

Delete a legal entity seems to be a straight forward option in AX, just click on delete button on legal entity form. This does not work sometimes as per your thoughts and you face errors like below.

Cannot delete a record in Ledger (Ledger).
The corresponding AOS validation failed.
Stack trace: Call to TTSCOMMIT without first calling TTSBEGIN.
Stack trace
(S)\Classes\xRecord\Delete
(S)\Data Dictionary\Tables\DirPartyTable\Methods\Delete - line 14
(S)\Data Dictionary\Tables\DirOrganizationBase\Methods\Delete - line 17
(S)\Data Dictionary\Tables\CompanyInfo\Methods\Delete - line 31
(S)\Classes\xRecord\dbOpInTransaction
(C)\Classes\FormDataSource\delete
(C)\Classes\FormRun\task
(C)\Forms\OMLegalEntity\Methods\task
(C)\Classes\SysSetupFormRun\task

OR

Cannot delete a record in Batch job (BatchJob). The corresponding AOS validation failed.

These errors appear when you have transaction data in the legal entity which you are after for delete or there are batch jobs in running state stopping this delete process. 

There are certain steps to get rid of these errors and also to have a smooth delete process without any issue.
  1. Select the company (legal entity) which you need to delete.
  2. Go to AOT (Press Ctrl + D) and find class "SysDatabaseTransDelete" to delete transactions first.
  3. Run class "SysDatabaseTransDelete", it will prompt you Yes/No option to delete transactions. Delete them first it will take a while depend on the transaction data you have in your system in this company.
  4. Open legal entity form from Organization Administration | Setup | Organization | legal entities. 
  5. Select legal entity for which you deleted transaction data in step 1 and click delete button. It will take a while.