Workflows und Assistenten sind zwei extrem mächtige Komponenten der Enterprise Service Management Lösung von Matrix42. Die Verknüpfung dieser ist jedoch nicht immer ganz einfach verständlich.
Nach der Übergabe von PowerShell-Arrays im Matrix42 Workflow Studio & Abfrage von Asset-Daten via API möchte ich dir zeigen, wie du einfache Attribute oder aber auch eine Liste von Attributen (Array) aus einem Assistenten an einen Workflow übergibst.
Übersicht der Möglichkeiten
Generell gibt es zwei Möglichkeiten zur Objekt-Interaktion zwischen User und Workflows:
- Der User startet eine Aktion, welche ohne einen Assistenten einen Workflow startet. Hierbei wird lediglich das ausgewählte Objekt (bzw. mehrere) an den Workflow übergeben.
- Der User startet eine Aktion, welche einen Assistenten aufruft. Im Assistenten können weitere Informationen abgefragt, aufbereitet und an den durch den Assistenten aufzurufenden Workflow übergeben werden. (Inklusive der vorher ausgewählten Elemente)
Diese zwei Szenarien werden beim Anlegen der Aktion unterschieden:
Workflow nur durch Aktion starten
Das erste Szenario ist recht einfach. Hier muss lediglich die Aktion mit dem Workflow verknüpft werden. Dazu legt man zunächst den Workflow mit dem Template “UI Action” an und verknüpft diesen nach dem Einchecken mit einer Aktion. In der For Each schleife des Workflows, kann man dann seine Schweinereien für jedes übergebene (angehakte) objekt ausführen.
Workflow mit Assistent an Aktion starten & Daten übergeben
Komplizierter wird es beim zweiten Szenario. Hier muss zunächst der Workflow (selbes Template wie oben) inkl. der zu erwartenden Argumente angelegt werden. Hier ein Beispiel in welchem ein Array-Element (SelectedPositions) und ein Kommentar als String übergeben wird:
Ist der Workflow eingecheckt und freigegeben, kannst du anschließend den Assistenten anlegen. Hier verknüpft man schließlich den Workflow:
Sobald der Assistent gespeichert ist kann man sich das Design im Layout Designer anschauen und findet dort im Model die zuvor im Workflow angelegten Argumente:
Auch das Guid-Array-Element “SelectedPositions” ist hier aufgeführt. Dieses möchten wir nun mit den in einem Grid markierten IDs befüllen. Dazu erstellen wir zunächst ein Context-Attribut “SelectedObjects” als Object-Array:
Dieses Array kann anschließend z.B. mit einem “Steuerelement für Liste” verknüpft werden:
In diesem Attribut landen nun alle ausgewählten Zeilen des Controls. An den Workflow sollen aber lediglich die IDs der Einträge übergeben werden. Somit hinterlegen wir am Attribut “SelectedPositions” des Workflows folgendes Javascript:
Bitte beachte, dass das Attribut “SelectedObjects” im erweiterten Modus als Variable verknüpft sein muss.
Das Attribut “Comment” kann ganz einfach per Drag&Drop in den Assistenten gezogen werden. Damit sind alle Anpassungen für den Assistenten fertig.
Zum Schluss muss lediglich noch die Aktion erstellt werden, welche den Assistenten aufruft: