Ich freue mich, heute wieder einen Gastbeitrag präsentieren zu dürfen!
Der heutige Artikel ist von Joel Wiesmann, 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:

Download im Automic Marketplace

Workflows in Visio nachbilden

Darstellung eines Workflows und der wichtigen Parameter.

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:

Einfache Darstellung mit Workflow Visio(n)

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

Stencil, Mastershape und Shape Data in Microsoft Visio.

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:

Darstellung in Visio mit Titeln und Descriptions

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 einer Heatmap mit Workflow Visio(n)

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. Falls Sie sich an der Weiterentwicklung beteiligen möchten, dann kontaktieren Sie mich doch über Xing: https://www.xing.com/profile/Joel_Wiesmann

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 Wiesmann

Automic Experte

Joel ist zertifizierter Automic Experte und arbeitet bei Bank Julius Bär in Zürich. Er ist Frühaufsteher und liebt die IT.
Als Ausgleich zur Bildschirmarbeit geht er in der Limmat schwimmen oder macht Trekking-Urlaub in Island.
Kontaktieren Sie ihn per Mail oder Xing.