Variablen (Workflows)
Jeder Workflow hat Variablen (so wie Sie das von Profilen kennen). Die verfügbaren Datentypen sind String, Integer, Double, Date, Boolean, Float, BigDecimal, BigInteger, TimeStamp, Blob.
Über das Kontextmenü können neue Workflow-Variablen hinzugefügt, geändert und gelöscht werden und Variablen aus Profilen und ETL-Einträgen importiert werden.
Benutzerdefinierte Workflow-Variablen
Diese Variablen werden im Workflow vom Benutzer selbst angelegt.
System-Workflow-Variablen
Diese Variablen werden (fast alle) vom Workflow-Modul selbst erzeugt und gesetzt, wenn ein Workflow-Job gestartet wird.
Name |
Typ |
Beschreibung |
VAR_AUTOSERIALIZE_DATA |
String |
Wichtiger Hinweis: Beachten Sie bitte die Import-Anleitung. (a) Wenn Sie für Maps oder Listen das Präfix autoserialize_ in einer Workflow-Transitions-Funktion verwenden, dann werden diese automatisch serialisiert. Beim Zugriff in einer anderen Transition danach, wird dann automatisch deserialisiert. (Die Variable dient dabei lediglich dem internen Mechanismus und muss nicht angefasst werden.) Workflow_WF_automatic_serialize_deserialize.obj (b) Sie können auch in einer Workflow-Transitions-Funktion autoserialisieren und danach in einem Workflow-Aktions-Profil autodeserialisieren. Profile-auto_deserialize_in_profile.pak Workflow_WF_serialize_action_profile.obj (c) Sie können auch in einem Workflow-Aktions-Profil autoserialisieren und danach in einer Workflow-Transitions-Funktionen autodeserialisieren. Profile-auto_serialize_in_profile.pak Workflow_WF_deserialize_action_profile.obj (d) Sie können auch in einem Profil autoserialisieren und danach in einem vom Profil gestarteten Workflow autodeserialisieren. Hinweis: Beim Aufruf der Funktionen start new workflow(a,b), fire workflow-event(a,b), add/set workflow variable(a,b,c,d) wird sofort autoserialisiert und nicht erst nach Phase 3, wie sonst in Profilen. |
VAR_SENDER |
String |
Der Lobster-Integration- oder DataCockpit-Benutzer (Präfix WebMonitor:), der den Workflow-Job gestartet, bzw. das letzte Formular ausgefüllt hat. Falls der Workflow-Job mit der Funktion start new workflow(a,b) gestartet wurde, enthält die Variable den Namen des Profils, das diese Funktion verwendet hat. |
VAR_SYS_WF_ACCESSLIST |
String |
Ist diese Variable vorhanden und gefüllt, dann werden in allen Formularen die dort gesetzten DataCockpit-Benutzer/Rollen für den Zugriff auf das Formular vorübergehend überschrieben. Es können DataCockpit-Rollen angegeben werden (z. B. myRole) oder DataCockpit-Benutzer mit dem Präfix WebMonitor: (z. B. WebMonitor:myUser). Mehrere Einträge werden mit Komma separiert. Hinweis: Siehe auch Funktion change permission of workflow-form(a,b,c,d). |
VAR_SYS_WF_ATTACHMENT_ACCESSLIST |
String |
Ist diese Variable vorhanden und gefüllt, dann werden in allen Formularen die dort gesetzten DataCockpit-Benutzer/Rollen für den Zugriff auf angehängte Dateien vorübergehend überschrieben. Es können DataCockpit-Rollen angegeben werden (z. B. myRole) oder DataCockpit-Benutzer mit dem Präfix WebMonitor: (z. B. WebMonitor:myUser). Mehrere Einträge werden mit Komma separiert. |
VAR_SYS_WF_DATA |
String |
Muss angelegt werden. Der Inhalt dieser Variable wird verwendet, um Nicht-Cron-Profile in Aktionen (siehe Abschnitte Transition, Zustand, Finale Aktion) mit Eingangsdaten zu versorgen, aber nur, wenn die Variable VAR_SYS_WF_FILE keine Daten liefert. Liefert diese Methode keine Daten, dann kommt es zu einem Aktionsfehler. Wichtiger Hinweis: Wird ein Profil mit dieser Variable mit Daten versorgt, dann wird die Variable geleert. Vor einem weiteren Aufruf muss sie also wieder gefüllt werden. |
VAR_SYS_WF_DISPLAYNAME |
String |
Der Name des Workflow-Jobs. |
VAR_SYS_WF_FILE |
String |
Muss angelegt werden. Die Variable muss einen Pfad zu einer Datei enthalten. Beispiel: ./webapps/root/upload/test.txt. Siehe auch Abschnitt Datei-Upload. Der Inhalt dieser Datei wird verwendet, um Nicht-Cron-Profile in Aktionen (siehe Abschnitte Transition, Zustand, Finale Aktion) mit Eingangsdaten zu versorgen. Liefert diese Methode keine Daten, dann wird der Weg über die Variable VAR_SYS_WF_DATA versucht. Wichtiger Hinweis: Wird ein Profil mit dieser Datei mit Daten versorgt, dann wird die Datei danach gelöscht. |
VAR_SYS_WF_ID |
String |
Die ID des Workflow-Jobs. |
VAR_SYS_WF_LINK |
String |
Wird in den Basis-Daten des Workflows die Checkbox HTTP aktivieren gesetzt, dann steht in dieser Variable der URL-Schlüssel des Workflows. Beispiel: V0YtLTI4NDAyMTExMw. Details siehe dort. |
VAR_SYS_WF_STATE |
String |
Der Zustand, in dem sich der Workflow-Job momentan befindet. |
VAR_SYS_WF_TERMINATED |
Boolean |
Wird ein Workflow aufgrund einer überschrittenen Wartezeit in einem Zustand beendet, dann erhält diese Variable den Wert true. Das ist nützlich, wenn danach noch eine (lokale) finale Aktion ausgeführt wird und der Workflow deshalb evtl. noch läuft, bis diese Aktion beendet ist. Default: false. |
Konzept von Workflow-Variablen
Workflow-Variablen dienen als verbindende Datenschicht zwischen Workflows und Profilen, anderen Workflows, ETL-Einträgen und Content-Inspektoren. Es werden dabei einerseits die Variablen des Workflows automatisch an aufgerufene Profile, ETL-Einträge und andere Workflows weitergegeben. Zudem können von dort aus die Variablen des Workflows mit Funktionen gesetzt werden. Mehr dazu weiter unten.
Außerdem werden Workflow-Variablen verwendet, um mit Zustands-Formularen zu kommunizieren, d. h. Werte im Formular anzuzeigen bzw. im Formular eingegebene Daten an den Workflow-Job zu übergeben. Die Variablen können dann z. B. in den Bedingungen von Transitionen verwendet werden, um den Verlauf des Workflows zu steuern.
Workflow-Variablen in Zustands-Formularen
In jedem Zustand eines Workflows kann ein Formular definiert werden. In diesem Formular können Variablen-Felder definiert werden. Das sind Eingabefelder im Formular, deren Inhalt mit einer Workflow-Variable verknüpft ist. D. h. das Feld zeigt einerseits den Wert der Variable an und die Variable übernimmt auch den eingegebenen Wert.
Übergabe/Rückgabe von Workflow-Variablen
Bitte achten Sie generell darauf, dass die Typen der Variablen an allen Stellen identisch sein sollten, da es sonst zu evtl. unerwünschten impliziten Typumwandlungen kommen kann.
Übergabe von Workflow-Variablen an andere Workflows
Ruft ein Workflow einen anderen Workflow auf, dann übernimmt der aufgerufene Workflow alle Werte für gleichnamige Variablen (müssen explizit angelegt werden). Nicht übernommen werden die Werte der System-Workflow-Variablen VAR_SYS_WF_ID, VAR_SYS_WF_LINK, VAR_SYS_WF_DISPLAYNAME und VAR_SYS_WF_STATE.
Übergabe von Workflow-Variablen an Profile
Ruft ein Workflow ein Profil auf, dann übernehmen dort gleichnamige Variablen mit Präfix MSG_CALL_ die Werte der Workflow-Variablen. Beispiel: Workflow-Variable VAR_NEW_1 und Profil-Variable MSG_CALL_VAR_NEW_1. Hinweis: Das gilt auch für Daten-Profile in Formular-Profilen in Zustands-Formularen.
Übergabe von Workflow-Variablen an ETL-Einträge
Ruft ein Workflow einen ETL-Eintrag auf, dann übernimmt der aufgerufene ETL-Eintrag alle Werte für gleichnamige Variablen (müssen explizit angelegt werden), falls bei den entsprechenden ETL-Variablen die Option Änderbar bei Start gesetzt ist.
Rückgabe von Workflow-Variablen von anderen Workflows/Profilen/ETL-Einträgen aus
Siehe Funktion add/set workflow variable(a,b,c,d).
Handling in Workflow-Transitionen
Siehe Funktion add/set workflow variable(a,b,c,d).
Übergabe von Profil-Variablen an Workflows
Wenn Sie einen Workflow-Job aus einem Profil heraus starten mit Funktion start new workflow(a,b), können Sie ebenfalls Variablenwerte übergeben. Es werden dabei alle Workflow-Variablen mit dem Wert der jeweils gleichnamigen Profil-Variable gefüllt. Gibt es also eine Profil-Variable VAR_NEW_1, dann wird die vorhandene Workflow-Variable VAR_NEW_1 mit dem Wert der Profil-Variable gefüllt. Es ist also kein Präfix MSG_CALL_ nötig. Hinweis: Wenn Sie einmal etwas komplexere Daten übergeben möchten, sehen Sie sich die Funktionen serialize map/list(a,b) und deserialize map/list(a,b,c) an. Zudem ist es möglich Listen und Maps als Knoten in der Quellstruktur von Profilen einzubinden. Siehe hierzu Abschnitt Quellstruktur-Menü. Das kann sehr nützlich sein in Profil-Aktionen in Transitionen, speziell bei der vertikalen Integration. Hinweis: Ein Workflow lässt sich auch über die Fehlerbehandlung eines Profils starten.
Autoserialisierte Listen und Maps
Siehe Workflow-Variable VAR_AUTOSERIALIZE_DATA oben.