Dieser Beitrag bezieht sich auf die Versionen:
Axapta 2.5, Axapta 3.0, Dynamics AX 4.0, Dynamics AX 2009, Dynamics AX 2012
Axapta 2.5, Axapta 3.0, Dynamics AX 4.0, Dynamics AX 2009, Dynamics AX 2012
Über den Labeleditor die Fehlermeldung suchen ist ziemlich kompliziert und ggf. ungenau. Um jede Fehlermeldung, welche über den Infolog ausgegeben wird, direkt zu finden, kann man einfach einen Breakpoint in die add() Methode der Klasse Info setzen. Führt man dann die Funktion erneut aus, wird der Debugger am Haltepunkt halten und man kann im Callstack sehen, welche Fehlermeldung aus welchem Grund erscheint. |
|
|
|
|
|
|
In Dynamics AX können unterschiedliche (Fehler-)Meldungen auftreten, die meisten kommen von der Applikation, es gibt aber auch Meldungen, die vom AX-Client ausgegeben werden.
Leider sind nicht alle Meldungen so sprechend, daß man (als Entwickler) sofort weiß, was nun zu tun ist. Deshalb gibt es, je nachdem um welche Art von Fehlermeldung es sich handelt, unterschiedliche Herangehensweisen, wie man die Ursache der Meldung findet.
Meldung über das Infolog der Applikation
Bei manchen Meldungen genügt ein Doppelklick auf die Meldung im Infolog und man landet im Code, welcher die Meldung geworfen hat (vorausgesetzt man befindet sich als Benutzer gerade im Entwicklungsmodus).
Kommt man über das Infolog nicht an jene Codestelle, wo die Meldung ausgegeben wird so hat man als Entwickler noch die Möglichkeit, den Text der Meldung im Label-Editor einzugeben und sich das dazu passende Label zu suchen. Findet man ein solches, kann man über die Querverweise die Codestelle(n) ermitteln, wo dieses Label verwendet wird.
Nun kann man einerseits den Code lesen bzw. analysieren und oft wird dadurch klar, wo der Fehler liegt. Bei komplizierteren Aufrufen muss man schon mal den Debugger zur Hilfe nehmen, d.h. an die jeweilige Codestelle einen Breakpoint setzen, den Fehler neu "auslösen" und nun über den Stacktrace die Ursache ergründen.
Hilft keine der oben genannten Vorgehensweise, dann kann man sich natürlich auch noch des Internets bedienen: Einfach die Meldung bzw. signifikante Teile daraus (eine Meldung die eine spezifische Auftragsnummer enthält wird man mit an Sicherheit grenzender Wahrscheinlichkeit so nicht im Internet finden) in die Suchmaschine seiner Wahl eintragen.
Dabei sollte man darauf achten, daß man die Meldung in englischer Sprache bzw. den Text des englischen Labels der Internet-Suche übergibt. Das erhöht die Trefferwahrscheinlichkeit enorm! Auch hier gilt der obige Hinweis bezügl. signifikanter Teile der Meldung.
Wer Zugriff auf die Microsoft Partnersource bzw. die Microsoft Lifecycle-Services hat sollte seine Suche unbedingt auch in diesen Tools durchführen.
Meldungen vom Client
Kommt die (Fehler-)Meldung direkt vom Client, wird es - soferne der Client nicht gerade in englische Sprache läuft - etwas komplizierter. Hat man bereits eine englischsprachige Meldung kann man sich gleich der Internetsuche, wie oben beschrieben, widmen.
Liegt die Meldung in einer anderen Sprache vor, kann man entweder
Um die Meldung ins englische zu übersetzen kann man sich die KTD-Dateien (*.ktd) im Client-Verzeichnis (beispielweise C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin für AX 2012) zur Hilfe nehmen.
Dazu sind folgende Schritte notwendig:
Hat man nun die (Fehler-)Meldung in englischer Sprache, gilt es die bereits genannten Möglichkeiten zu nutzen (Suchmaschine, MS Partnersource, MS Lifecycle-Services).