PowerShell-Arrays im Matrix42 Workflow Studio verwenden

In Unternehmen wird es immer wichtiger, Prozesse zu automatisieren, um Zeit für die wichtigen Dinge zu gewinnen. Hierbei gilt es sich zunächst auf die “QuickWins” zu konzentrieren, damit du ein optimales Kosten-/Nutzen-Verhältnis erreichst. Prüfe also zunächst, welche Tätigkeiten häufig auftreten und welche besonders viel Zeit in Anspruch nehmen.

Anschließend kannst du dir Gedanken zu den Prozessen machen, welche es zu automatisieren gilt. Eine stichpunktartige Ablaufbeschreibung der Prozesse kann die spätere, technische Umsetzung wesentlich vereinfachen.

Die Enterprise Service Management Lösung der Matrix42 bietet die Möglichkeit mithilfe von Workflows auf einfachem Wege solch eine Automatisierung zu erreichen. Dennoch gibt es erweiterte Möglichkeiten wie etwa die Verwendung von PowerShell-Skripten.

In manchen Situationen kann es notwendig sein, Array-Objekte als Ein- bzw. Ausgabeparameter zu übergeben. Genau das beschreibt diese kurze Anleitung.

Zusätzlich möchte ich dir grundlegende Informationen zur PowerShell-Activity mitgeben und wie du Felder in der Legacy als Pflichtfeld markieren kannst

1. Die Activty “Invoke PowerShell”

Die PowerShell-Activity findest du im Workflow Studio ganz einfach über die Suche auf linken Seiten. Diese kannst du per Drag-and-drop in den Flow ziehen, um sie in den Prozess einzubinden.

activity

Um die Einstellungen der Activity zu bearbeiten, musst du diese einfach anklicken. Auf der rechten Seite sind die folgenden Eigenschaften konfigurierbar:

  • Parameters
    Ein- und ausgehende Parameter, welche aus der param-Section deines PowerShell-Scripts übernommen werden
  • Persist
    Steuert, ob die PowerShell-Sitzung nach Beendigung des Skripts offen gehalten werden soll, damit ein spätere Activity diese weiter nutzen kann
  • Run on Application Server
    Sofern aktiviert, wird der Workflow nur auf dem Matrix42 Worker des Anwendungsservers – siehe Matrix42 Worker – ausgeführt. Das kann hilfreich sein, um Modulabhängigkeiten sowie Firewall-Konfigurationen zu vereinfachen
  • Script
    Beinhaltet das eigentliche Skript, welches im Prozess ausgeführt werden soll. Dabei kann auf die ein und ausgehenden Parameter zugegriffen werden
  • Variables
    Diese sind mit den Parametern zu vergleichen. Vorteil der Parameter ist die Möglichkeit der Vorbelegung, sofern die param-Section im Skript bereits vorhanden ist.

Zusätzlich gibt es zwei Eigenschaften, welche für den Output des Skript’s relevant sind:

  • Result
    Übergibt das zuletzt ausgegebene Objekt an die gewählte Variable
  • TypeArgument
    Definiert den Typ der unter “Result” angegebenen Variable an

Nun hast du erst einmal grundlegende Informationen zur Activity.

2. Der Workflow

Der hier gezeigte Workflow soll lediglich die Verwendung von PowerShell-Arrays zeigen und erfüllt keinen tieferen Zweck. Legen wir direkt einmal los.

Als Erstes hinterlegen wir das Beispiel-Skript:

#PowerShell-Array initialisieren
$test = @()

# Erstellung des ersten Custom-Objektes
$obj = New-Object PSCustomObject
$obj | Add-Member -type NoteProperty -Name Name -Value "Musterfrau"
$obj | Add-Member -type NoteProperty -Name Firstname -Value "Maxi"
# Objekt zum Array hinzufügen
$test += $obj

# Erstellung des ersten Custom-Objektes
$obj2 = New-Object PSCustomObject
$obj2 | Add-Member -type NoteProperty -Name Name -Value "Mustermann"
$obj2 | Add-Member -type NoteProperty -Name Firstname -Value "Max"
# Objekt zum Array hinzufügen
$test += $obj2

# Ausgabe des Array's zur Übergabe an die Variable an "Result"
$test
Code-Sprache: PowerShell (powershell)
workflow

Damit die Information aus der Eigenschaft “Result” in die Variable “InvokePowerShell_Result” geschrieben wird, muss diese Variable zunächst erstellt und anschließend verknüpft werden:

invokepowershellresult

Die zuvor angelegte, verknüpfte Variable “InvokePowerShell_Result” kannst du nun z.B. in einem ForEach verwenden, um jedes Element einzeln im Workflow zu verarbeiten:

foreach

Dem ForEach-Element kannst du noch einen sprechenden Variablennamen für das Item zuweisen (hier “record”):

foreach2

Anschließend kannst du wie folgt auf die einzelnen Element-Eigenschaften innerhalb des ForEach zugreifen (hier die Eigenschaft “Name” bzw. “Firstname”):

assign

Verwendungszwecke gibt es sicher viele. Mit diesem Artikel hast du nun das notwendige Handwerkszeug erlangt und kannst dich nun im Workflow-Universum der Matrix42 austoben.

Viel Spaß dabei
0
Du kannst uns auch gerne deinen UseCase wissen lassen 😉x

Und falls du dich noch mehr austoben willst, lerne hier, wie du mit Filtern in der UUX nach doppelten Datensätzen suchen kannst 😉

morpheus42 Icon

Hallo 👋
Schön, dich zu treffen.

Trag dich ein, um neue ESM-Beiträge direkt in deinen Posteingang zu bekommen!

Wir senden keinen Spam! Erfahre mehr in unserer Datenschutzerklärung.

Foto des Autors
Autor
Chris
Technical ESM Architect bei neo42, ESM-Bro & Coding-Boss “Those who can imagine anything, can create the impossible.” -Alan Turing Kaffee-Spende für den Autor

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
Alle Kommentare anzeigen
Send this to a friend