Kompilieren gehört zum täglich Brot eines Entwicklers. Leider weist genau dieser Vorgang in Dynamics AX - nennen wir es - Besonderheiten auf.
Besonderheit 1: Kein Fortschrittsbalken
Wir kennen es alle, man kompiliert eine grössere Menge an Objekten oder vielleicht den ganzen AOT und möchte zumindest ungefähr wissen, wie lange dies noch dauert.
Standardmässig gibt’s es kaum eine Möglichkeit dies einzusehen, vor allem wenn der AX-Client seit dem Start der Kompilierung vielleicht schon "eingefroren" ist.
In vielen Fällen kann man [CTRL]+[PAUSE] drücken, dadurch wird die Kompilierung kurz angehalten und man kann im Client sehen, bei welchem Objekt man gerade ist. In dem Pause-Dialog sollte man natürlich tunlichst auf [NEIN] klicken, wenn man die Kompilierung danach fortsetzen möchte.
Kein echter Fortschrittsbalken, aber zumindest ein Indikator wo man gerade steht.
Besonderheit 2: Leere Kompilierausgabe
Es kommt immer wieder mal vor, daß am Ende der Kompilierung nur die Anzahl der gefundenen Fehler bzw. Warnung ausgegeben wird, Details dazu verschweigt AX einem aber.
In diesem Fall kann man sich oft helfen, wenn man unmittelbar nach dem Kompilieren das Kompilierergebnis über die Funktion Exportieren des Formulares Kompiler-Ausgabe in eine HTML-Datei schreibt um diese anschließend ins gleiche Kompilierfenster mit der Funktion Importieren zu importieren.
Besonderheit 3: Leere Kompilierausgabe in AX 2012
In bestimmten Versionen von Dynamics AX 2012 tritt das Problem auf, daß gar kein Kompilierergebnis angezeigt wird. Da hilft auch Exportieren/Importieren in der Regel nichts mehr.
Für dieses Bug gibt es einen Hotfix, wer diesen aber nicht installieren kann oder will kann versuchen, sich mit dem AOT-Protokoll zu helfen.
AOT-Protokoll
Man hat in den Einstellungen des Kompilierfensters die Möglichkeit, sich ein sog. AOT-Protokoll zu erstellen lassen.
Wird dieses aktiviert, schreibt Dynamics AX das Ergebnis der Kompilierung in ein Log-Verzeichnis. Dieses Verzeichnis kann man übrigens nur über die Client-Konfiguration bzw. das jeweilige AXC-File steuern.
In diesem Verzeichnis werden zwei Dateien geschrieben:
NameComp.log
Nameprco.log
Wobei Name immer für jenes Objekt steht, welches kompiliert wurde. Beispielsweise SalesTableComp.log wenn man nur die Tabelle SalesTable kompiliert hat oder aber AOTComp.log wenn man den kompletten AOT kompiliert hat.
Die Datei NameComp.log wird laufend aktualisiert, d.h. wenn man sich die mit einem Text-Editor ansieht, kann man während einer laufenden Kompilierung mitverfolgen, bei welchem Objekt die Kompilierung gerade steht. Das ist also ein Workaround für den fehlenden Fortschrittsbalken.
Die Datei Nameprco.log ist eine XML-Datei, die meiner Erfahrung nach nur am Ende der Kompilierung befüllt wird. In dieser werden fehlerhafte Objekte aufgelistet. Also ein Workaround für die leere Kompilierausgabe.
AXCompileAll.html
Übrigens wird bei einer vollständigen Kompilierung im genannten Log-Verzeichnis eine Datei namens AXCompileAll.html erstellt. Diese kann über die Funktion Importieren ebenfalls in das Kompiler-Ausgabe-Fenster eingelesen werden
CIL Logfile (AX 2012)
Auch für die CIL-Kompilierung gibt es ein Logfile. Dieses wird überlichweise im Applikationsverzeichnis - beispielsweise C:\Program Files\Microsoft Dynamics AX\60\Server\InstanceName\bin\XppIL - abgelegt und trägt den Namen Dynamics.Ax.Application.dll.log.
Dieser Beitrag bezieht sich auf die Versionen: Dynamics AX 2009, Dynamics AX 2012
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.
Mehr dazu
Kompilieren gehört zum täglich Brot eines Entwicklers. Leider weist genau dieser Vorgang in Dynamics AX - nennen wir es - Besonderheiten auf.
Besonderheit 1: Kein Fortschrittsbalken
Wir kennen es alle, man kompiliert eine grössere Menge an Objekten oder vielleicht den ganzen AOT und möchte zumindest ungefähr wissen, wie lange dies noch dauert.
Standardmässig gibt’s es kaum eine Möglichkeit dies einzusehen, vor allem wenn der AX-Client seit dem Start der Kompilierung vielleicht schon "eingefroren" ist.
In vielen Fällen kann man [CTRL]+[PAUSE] drücken, dadurch wird die Kompilierung kurz angehalten und man kann im Client sehen, bei welchem Objekt man gerade ist. In dem Pause-Dialog sollte man natürlich tunlichst auf [NEIN] klicken, wenn man die Kompilierung danach fortsetzen möchte.
Kein echter Fortschrittsbalken, aber zumindest ein Indikator wo man gerade steht.
Besonderheit 2: Leere Kompilierausgabe
Es kommt immer wieder mal vor, daß am Ende der Kompilierung nur die Anzahl der gefundenen Fehler bzw. Warnung ausgegeben wird, Details dazu verschweigt AX einem aber.
In diesem Fall kann man sich oft helfen, wenn man unmittelbar nach dem Kompilieren das Kompilierergebnis über die Funktion Exportieren des Formulares Kompiler-Ausgabe in eine HTML-Datei schreibt um diese anschließend ins gleiche Kompilierfenster mit der Funktion Importieren zu importieren.
Besonderheit 3: Leere Kompilierausgabe in AX 2012
In bestimmten Versionen von Dynamics AX 2012 tritt das Problem auf, daß gar kein Kompilierergebnis angezeigt wird. Da hilft auch Exportieren/Importieren in der Regel nichts mehr.
Für dieses Bug gibt es einen Hotfix, wer diesen aber nicht installieren kann oder will kann versuchen, sich mit dem AOT-Protokoll zu helfen.
AOT-Protokoll
Man hat in den Einstellungen des Kompilierfensters die Möglichkeit, sich ein sog. AOT-Protokoll zu erstellen lassen.
Wird dieses aktiviert, schreibt Dynamics AX das Ergebnis der Kompilierung in ein Log-Verzeichnis. Dieses Verzeichnis kann man übrigens nur über die Client-Konfiguration bzw. das jeweilige AXC-File steuern.
In diesem Verzeichnis werden zwei Dateien geschrieben:
Wobei Name immer für jenes Objekt steht, welches kompiliert wurde. Beispielsweise SalesTableComp.log wenn man nur die Tabelle SalesTable kompiliert hat oder aber AOTComp.log wenn man den kompletten AOT kompiliert hat.
Die Datei NameComp.log wird laufend aktualisiert, d.h. wenn man sich die mit einem Text-Editor ansieht, kann man während einer laufenden Kompilierung mitverfolgen, bei welchem Objekt die Kompilierung gerade steht. Das ist also ein Workaround für den fehlenden Fortschrittsbalken.
Die Datei Nameprco.log ist eine XML-Datei, die meiner Erfahrung nach nur am Ende der Kompilierung befüllt wird. In dieser werden fehlerhafte Objekte aufgelistet. Also ein Workaround für die leere Kompilierausgabe.
AXCompileAll.html
Übrigens wird bei einer vollständigen Kompilierung im genannten Log-Verzeichnis eine Datei namens AXCompileAll.html erstellt. Diese kann über die Funktion Importieren ebenfalls in das Kompiler-Ausgabe-Fenster eingelesen werden
CIL Logfile (AX 2012)
Auch für die CIL-Kompilierung gibt es ein Logfile. Dieses wird überlichweise im Applikationsverzeichnis - beispielsweise C:\Program Files\Microsoft Dynamics AX\60\Server\InstanceName\bin\XppIL - abgelegt und trägt den Namen Dynamics.Ax.Application.dll.log.