Tutorial

Ghost object in USR layer in AX 2012

Ghost object in USR layer in AX 2012
Published in
June 2015

Sometimes after compilation you can get objects marked as changed in USR layer, but when you compare them with lower layer there are no changes.

The main issue with those objects are that you cannot delete them form USR layer.

From Dynamics AX 2012 CU7 Microsoft give us nice tool to run compilation in parallel: AxBuild.exe - more details about it you can find here: https://msdn.microsoft.com/en-us/library/dn528954.aspx.

There is one undocumented parameter in AxBiuld: /layer= where you can specify in which layer you would like to do compilation.

Return to the issue – to fix it you need to:

Step 1

Create new temporary model – for example USR_To_Del.

Step 2

Move only ghost objects from normal USR model to newly created USR_To_Del.

Step 3

Stop AOS.

Step 4

Delete model USR_To_Del:

  • Run command prompt – in run field write cmd.
  • Write cd <path to AX your server folder> for example: cd “C:\Program Files\Microsoft Dynamics AX\60\Server\MicrosoftDynamicsAX\bin”.
  • Write axutil delete /model: USR_To_Del and click enter.
  • Confirm that you really want to delete model.

Step 5

Run AxBuild with new parameter:

  • Run command prompt – in run field write cmd.
  • Write cd <path to AX your server folder> for example: cd “C:\Program Files\Microsoft Dynamics AX\60\Server\MicrosoftDynamicsAX\bin”.
  • Write axutil delete /model: USR_To_Del and click enter.
  • Write AXBuild.exe xppcompileall /s=01 /altbin="C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin" /layer=cus /workers=6 and click enter.

Step 6

Start AOS.

This should remove ghost objects from USR layer.

Written by
Michal Szemplinski

Microsoft Dynamics developer from July 2008. Comes from Tychy in Poland. Graduated at Silesian University of Technology as Computer Science Master.