Tipps und Tricks zum Thema Kompilierung

Compiler output

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

 
 

 

 
 
 
Beiträge des aktuellen Monats
November 2024
MoDiMiDoFrSaSo
 123
45678910
11121314151617
18192021222324
252627282930 
 
© 2006-2024 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
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