Willkommen auf schweda.net | EN | DE
 
 
 
 
 

Microsoft Dynamics AX 2012 Management ShellWenn 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:

Get-AXModel -File 'c:\temp\dynamicsax2012r3_cl4555332.axmodel' -Details

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:

(Get-AXModel -File 'c:\temp\dynamicsax2012r3_cl4555332.axmodel' -Details).Elements | Select-Object Path

Ergebnis:

Path
----
\Classes\WHSLoadLineInventTransValidator
\Classes\WHSLoadLineInventTransValidator\canSplitLoadLineMultipleTransactions
\Classes\WHSLoadLineInventTransValidator\checkLoadLinesOpenQty
\Classes\WHSLoadLineInventTransValidator\classDeclaration
\Classes\WHSLoadLineInventTransValidator\createNewLoadLines
\Classes\WHSLoadLineInventTransValidator\init
\Classes\WHSLoadLineInventTransValidator\validateLoadLineDimensionConsistency
\Classes\WHSLoadLineUpdater
\Classes\WHSLoadLineUpdater\createSplitLoadLines
\Classes\WHSLoadLineUpdater\initLoadLine
\Classes\WHSLoadPostEngineBase
\Classes\WHSLoadPostEngineBase\reserveOrder

 

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:

Path                                                               ParentHandle
----                                                               ------------
\Classes\WHSLoadLineInventTransValid...                                       0
\Classes\WHSLoadLineUpdater                                                   0
\Classes\WHSLoadPostEngineBase                                                0

 

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 -AutoSize

Ergebnis:

Path                                     ParentHandle
----                                     ------------
\Classes\WHSLoadLineInventTransValidator            0
\Classes\WHSLoadLineUpdater                         0
\Classes\WHSLoadPostEngineBase                      0

 

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.txt

Natü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.txt

 

Will 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 utf8 

Und so sieht die CSV-Datei dann aus:

"Path","ParentHandle","ElementType"
"\Classes\WHSLoadLineInventTransValidator","0","Class"
"\Classes\WHSLoadLineUpdater","0","Class"
"\Classes\WHSLoadPostEngineBase","0","Class"
Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2012

Kommentar hinzufügen

 

 
Kategorien / Themen
Feeds
RSS RSS-Feed
RSS RSS-Feed (Kommentare)
RSS RSS-Feed (Kategorie)
 
 
Beiträge des aktuellen Monats
Dezember 2018
MoDiMiDoFrSaSo
 12
3456789
10111213141516
17181920212223
24252627282930
31 
 
 
© 2006-2018 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