Wenn man von Microsoft einen Hotfix oder von einem Microsoft-Partner ein Modul bekommt, bekommt man oft nur ein oder mehrere AXMODEL-Files. Und da ist der Wunsch oft gross, vorab zu wissen, welche Objekte durch das Einspielen dieses Files betroffen ist.
Solche Informationen kann man sich mit der Microsoft Dynamics AX 2012 Management Shell auslesen:
Manifest Summary Elements
-------- ------- --------
Microsoft.Dynamics.AX.F... {\Classes: 3} {\Classes\WHSLoadLineI...
Diese Ausgabe ist noch nicht sonderlich hilfreich, deshalb werden wir bei unserer Abfrage etwas genauer und fragen nun nur den Pfad aus dem Elements-Container ab:
In der obigen Liste sieht man, daß auch Methodennamen mitausgegeben werden. Möchte ich beispielsweise nur Objekte aufgelistet bekommen wissen, kann ich dies wie folgt bewerkstelligen:
Dabei ist noch die automatische Anpassung an das Ausgabefenster ein Problem, was dazu führt daß lange Namen abgeschnitten dargestell werden, dies kann man wie folgt umgehen:
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
Solche Informationen kann man sich mit der Microsoft Dynamics AX 2012 Management Shell auslesen:
Das sieht wie folgt aus:
Manifest Summary Elements -------- ------- -------- Microsoft.Dynamics.AX.F... {\Classes: 3} {\Classes\WHSLoadLineI...Diese Ausgabe ist noch nicht sonderlich hilfreich, deshalb werden wir bei unserer Abfrage etwas genauer und fragen nun nur den Pfad aus dem Elements-Container ab:
Ergebnis:
In der obigen Liste sieht man, daß auch Methodennamen mitausgegeben werden. Möchte ich beispielsweise nur Objekte aufgelistet bekommen wissen, kann ich dies wie folgt bewerkstelligen:
(Get-AXModel -File 'c:\temp\dynamicsax2012r3_cl4555332.axmodel' -Details).Elements | Select-Object Path, ParentHandle | Where{$_.parenthandle -like 0 }Ergebnis:
Dabei ist noch die automatische Anpassung an das Ausgabefenster ein Problem, was dazu führt daß lange Namen abgeschnitten dargestell werden, dies kann man wie folgt umgehen:
(Get-AXModel -File 'c:\temp\dynamicsax2012r3_cl4555332.axmodel' -Details).Elements | Select-Object Path, ParentHandle | Where{$_.parenthandle -like 0 } | format-table -AutoSizeErgebnis:
Will man nun beispielsweise sich nur alle Klassen ausgeben in eine Textdatei ausgeben lassen, geht das wie folgt:
(Get-AXModel -File 'c:\temp\dynamicsax2012r3_cl4555332.axmodel' -Details).Elements | Select-Object Path, ParentHandle, ElementType | Where{$_.elementtype -like "class" } | Where{$_.parenthandle -like 0 } | format-table -AutoSize | out-file c:\temp\objects.txtNatürlich kann man dabei sogar sortieren:
(Get-AXModel -File 'c:\temp\dynamicsax2012r3_cl4555332.axmodel' -Details).Elements | Select-Object Path, ParentHandle, ElementType | Where{$_.elementtype -like "class" } | Sort-object Path | Where{$_.parenthandle -like 0 } | format-table -AutoSize | out-file c:\temp\objects.txtWill man statt einer einfachen Textdatei eine CSV-Datei, ist auch das möglich (dabei muss man Format-Table weglassen):
(Get-AXModel -File 'c:\temp\dynamicsax2012r3_cl4555332.axmodel' -Details).Elements | Select-Object Path, ParentHandle, ElementType | Where{$_.elementtype -like "class" } | Sort-object Path | Where{$_.parenthandle -like 0 } | export-csv -path "c:\temp\objects.csv" -delimiter "," -notypeinformation -encoding utf8Und so sieht die CSV-Datei dann aus: