Ich freue mich, heute wieder einen Gastbeitrag präsentieren zu dürfen!
Der heutige Artikel ist von Joel, einem befreundeten Automic-Experten aus der Schweiz.
Er stellt sein selbst entwickeltes Tool zur Workflow-Visualisierung vor – sehr cool!!!
Erstellen Sie auch öfter mal Screenshots von Workflows, voll mit Informationen wie Titeln von Objekten, Kommentaren für das Operations Team und ähnlichen Notizen?
Ich habe mir überlegt: wäre doch toll, die gewohnte Darstellung in einem gängigen, editierbaren und nachhaltig erweiterbaren Format zu haben. Als Mittel der Wahl habe ich mich für Microsoft Visio entschieden, mit einer Powershell Steuerung. Entstanden ist ein kleines, flexibles Script, das Sie als Open Source kostenlos im Automic Marketplace downloaden können:
Workflows in Visio nachbilden
Wir brauchen nicht viele Informationen, um einen Workflow nachzubilden:
- X und Y Koordinaten der Tasks, hier veranschaulicht mit blauen Pfeilen. Beachten Sie: die y-Achse ist invertiert – so wie das AE Koordinatensystem.
- Abhängigkeiten zwischen den Tasks (in der Grafik rot hervorgehoben). Das sind Paare aus eindeutigen Task-Nummer eines Task (LNR) und dessen Vorläufer (preLNR). Die Task-Nummern sind in der Grafik orange dargestellt.
Die Objekttypen haben in den Tasks jeweils ein eigenes Icon – das ist ratsam, um differenzieren zu können. Dafür benötigen wir den Objekttyp (gelb).
Technisch ausgedrückt haben wir also zwei Tabellen, einmal die Tasks und einmal die Abhängigkeiten:
Tasks
lnr | x | y | type |
---|---|---|---|
1 | 1 | 0 | <START> |
2 | 2 | 0 | JOBS |
3 | 3 | 1 | SCRI |
4 | 3 | 0 | JOBP |
5 | 4 | 0 | <END> |
Abhängigkeiten
lnr | prelnr |
---|---|
2 | 1 |
4 | 2 |
5 | 4 |
3 | 1 |
5 | 3 |
Diese Informationen können Sie aus der Datenbank extrahieren. Die Attribute sind:
- JPPA_JPP_Lnr / JPP_Lnr (Lnr)
- JPPA_PreLnr (PreLnr)
- JPP_Row (Y)
- JPP_Col (X)
- JPP_OType (type)
Die Darstellung in Visio
Visio Stencils kann man sich als Bibliothek von Zeichnungskomponenten vorstellen. Ein Klassiker ist beispielsweise das Visio Stencil zur Darstellung von Netzwerken oder Applikationsarchitekturen. „Workflow Visio(n)“ nutzt ebenfalls Stencils, die angepasst, erweitert und programmiert werden können. Mit den verfügbaren Daten können wir bereits den Workflow mit dem Workflow Visio(n) Standard-Stencil (default.vss) nachzeichnen lassen:
Öffnen Sie das Stencil default.vss. Hier sehen Sie die enthaltenen Komponenten (Mastershapes) die nach dem Objekttyp benannt sind. Das erklärt die abweichende Darstellung für <START> und <END> . Ein Mastershape besteht aus Komponenten (Grafik/Textboxen). An diese Komponenten lassen sich Datenfelder knüpfen, deren Wert angezeigt oder verrechnet werden kann.
Sehen wir uns als Beispiel das Datenfeld «Name» (gelb hinterlegt) an. Standardmässig hat es den Wert «Namevalue» (rot). Um dieses Feld zu füllen, fügen wir den Workflow Visio(n) Input-Daten ebenfalls ein Feld «name» hinzu (plus, das nehme ich jetzt einfach vorweg, das Feld «description»). Das Resultat kann sich sehen lassen.
Neue Tasks-Tabelle
lnr | x | y | type | name | description |
---|---|---|---|---|---|
1 | 1 | 0 | <START> | START | |
2 | 2 | 0 | JOBS | A | You might put Titles here. |
3 | 3 | 1 | SCRI | B | Or ArchiveKeys. |
4 | 3 | 0 | JOBP | B | Or anything else. |
5 | 4 | 0 | <END> | END |
Das Ergbenis sieht so aus:
Workflow Visio(n) anwenden
Wenn Sie diese Grundlagen beherrschen, ist die Anwendung von Workflow Visio(n) nicht mehr schwer.
Ihre SQL Reports mit beliebigen Datenfeldern können Sie in eigenen oder modifizierten Stencils anzeigen. Man ist vom Mastershape-Namen her auch nicht an den oType gebunden – die Tabellenspalte „type“ wird einfach gemappt mit dem Mastershape-Namen. Ist kein entsprechendes Mastershape vorhanden, wird der «default» verwendet.
Jetzt können Sie Workflow Visio(n) per Powerscript Powershell testen. Das Script ist workflowVision.ps1 und Sie können folgende Parameter anwenden:
-csvTaskDataFile
Die CSV-Datei mit den Task-Daten (lnr, x, y, type und mastershapeabhängige Felder). Beispieldaten sind im Folder „demo“.
-csvRelDataFile
Die CSV-Datei mit den Relationen (lnr, prelnr, type). Beispieldaten sind ebenfalls im Folder „demo“.
-outputFile
Die zu erstellende Outputdatei. Dabei sind alle von Visio unterstützten Formate möglich: VSD, XHTML, SVG, PNG, JPG etc.
-stencilFile
Dieser optionale Parameter definiert das zu verwendende Stencil.
Die CLI-Ausgabe des Tools ist wenig spektakulär – sie weist auf Fehler hin und zeigt den groben Fortschritt an. Ich habe viel Sorgfalt auf die Returncodes gelegt, damit man das Script in einen Workflow einbauen kann. Optionale Parameter können im Kommentarheader im Script direkt ausgelesen werden.
Aufruf aus der Powershell:
.\workflowVision.ps1 ` -csvTaskDataFile .\demo\simple_task.csv ` -csvRelDataFile .\demo\simple_rel.csv ` -outputFile $env:TEMP\demoOutput.vsd
Oder der klassischen cmd:
powershell.exe ^ -ExecutionPolicy Bypass .\workflowVision.ps1 ^ -csvTaskDataFile .\demo\simple_task.csv ^ -csvRelDataFile .\demo\simple_rel.csv ^ -outputFile $env:TEMP\demoOutput.vsd
Heatmap Darstellung
Mit dem Feld heat färben Sie jeden Task basierend auf dem Wert ein. Das heat-Feld muss einen Wert zwischen 0 (grün) und 100 (rot) haben. Er kann beispielsweise auf der Laufzeit, Anzahl an Fehlern, Restarts oder den Archivekeys basieren. Da die Inputdaten durch eigene SQL Abfragen oder Datenfusionen flexibel gestaltet werden können, sind die Möglichkeiten endlos.
Wo man diese Daten in der Automation Engine Datenbank findet und wie man sie abfragt, das lernt man übrigens am Besten in Philipp‘ Automation Engine Database Knowledge Workshop!
Darstellung von mehreren Workflows
Mehrere Workflows (bsp. aus rekursiven Abfragen) können in einem Rutsch mit dem Feld «pagename» in eine VSD-Datei dokumentiert werden. Dieses Feld muss in beiden CSV-Dateien (Task und Relationen) übereinstimmen. Ich empfehle, den Workflownamen als «pagename» zu verwenden. Wenn das Feld verwendet wird, muss der Output eine VSD-Datei sein. Andere Output-Formate resultieren in einer Fehlermeldung.
Interesse geweckt? Probieren Sie das Tool aus! Ich freue mich über Screenshots von Resultaten.
Hier nochmal der Link zum Download: https://marketplace.automic.com/details/workflow-visio
Schaut euch außerdem auch das Video zum Tool bei Youtube an.
Gastautor: Joel
Automic Experte
Joel ist ein PEM Creator seit der ersten Stunde. In seiner Freizeit programmiert er gerne und geht schwimmen.