PowerShell: Skripte aus NAV erzeugen und ausführen
Verfasst: 27. Juli 2015 00:42
Da die PowerShell-Konsole oder das Powershell ISE sich unter Angabe eines auszuführenden Skripts auch aus NAV heraus starten lässt (das geht mit jeder Version, es finden nur einfache Textexporte statt) ist es möglich, Objekte aus allen Datenbanken ab NAV 2013 direkt per Mausklick zu exportieren (auch importieren,kompilieren), wenn man das richtige Skript dazu schreibt .
Um das umzusetzen, kann man die Datenbanknamen in einer separaten Tabelle erfassen, es kann aber auch eine vorhandene Tabelle wie z.B. die Kontakttabelle verwendet und um die notwendigen Felder erweitert werden.
Das PowerShell-Skript wird über ein Codeunit mitsamt der notwendigen Parameter (Datenbankname, Servername, Clientordner, ggf. Objektfilter) erzeugt.
Bei den Clientordnern sind z.B. bei NAV 2015 mittlerweile schon 4 verschiedene Versionen notwendig, um alle Datenbanken ohne Konvertierung öffnen zu können (80_9,80_8,80_7,80_3).
und anschließend entweder sofort im Skriptbereich aufgerufen …
…oder im PowerShell ISE, dort kann man es vor der Ausführung noch einmal kontrollieren und ggf. abändern …
…oder alternativ in der PowerShell-Konsole direkt ausgeführt.
Weitere Möglichkeiten :
In den nächsten Tagen folgen hier die Beispielobjekte dazu.
Um das umzusetzen, kann man die Datenbanknamen in einer separaten Tabelle erfassen, es kann aber auch eine vorhandene Tabelle wie z.B. die Kontakttabelle verwendet und um die notwendigen Felder erweitert werden.
Das PowerShell-Skript wird über ein Codeunit mitsamt der notwendigen Parameter (Datenbankname, Servername, Clientordner, ggf. Objektfilter) erzeugt.
Bei den Clientordnern sind z.B. bei NAV 2015 mittlerweile schon 4 verschiedene Versionen notwendig, um alle Datenbanken ohne Konvertierung öffnen zu können (80_9,80_8,80_7,80_3).
und anschließend entweder sofort im Skriptbereich aufgerufen …
…oder im PowerShell ISE, dort kann man es vor der Ausführung noch einmal kontrollieren und ggf. abändern …
…oder alternativ in der PowerShell-Konsole direkt ausgeführt.
Weitere Möglichkeiten :
- Objekte anhand einer festen Indexliste zu exportieren (z.B. um den Mergebereich eines Add-on aus einer Datenbank zu ziehen, in der dieses noch nicht vorhanden ist)
- Objekte anhand eines Objektfilters zu exportieren. Filtermöglichkeiten: ExportObjects
- ein beliebiges Objektpaket zu zerlegen und diese Objekte aus einer anderen Datenbank als Vergleichsobjektpaket zu ziehen
- Sprachlayer zu entfernen
In den nächsten Tagen folgen hier die Beispielobjekte dazu.