Flow Variablen
In Flow Variablen können Sie Werte hinterlegen, die Sie in mehreren Steps benötigen. Man spricht dann häufig von auslagern. Häufig verwendet man Variablen für Zugangsdaten wie URLs, die von mehreren Steps verwendet werden (z.B. URLDownload).
Es gibt folgende Typen von Variablen:
- Textvariablen
- Zahlenvariablen
- Verbindungs-Variablen
- Data Store-Auswahl
- Datei Uploads
- Referenzvariablen
- Output Variablen
Überschreiben von Projektvariablen
Falls sie auf Projekt-Ebene Variablen definiert haben, ist es auch möglich diese im Flow zu überschreiben. Benennen Sie die Variable dazu genau wie die Projektvariable. Siehe auch hier.
Text-Variablen
Text-Variablen können über Variable hinzufügen / Neue Text-Variable erstellt werden.
In der Regel können damit einfache Variablen vom Typ STRING (Zeichenkette) erstellt werden. Optional kann auch eine Beschreibung hinzugefügt werden, die angezeigt wird, wenn man mit der Maus über die Variable fährt.
Eingabetyp | Darstellung | Beschreibung |
---|---|---|
Einzeiliges Textfeld | einfaches Texteingabefeld | |
Mehrzeiliges Textfeld | Eingabefeld für mehrere Zeilen (sog. Textarea) | |
Dropdown Auswahlfeld | Die Flow-Variable wird aus Auswahl (Dropdown) oder Combo-Box (Auswahl mit Eingabemöglichkeit) dargestellt. | Nach dem Anlegen können die Auswahloptionen eingegeben werden. Dropdowns vereinfachen Fälle, bei denen man Variablen häufig ändern muss oder anderen Nutzern die Benutzung von Flows vereinfachen möchte. |
Passwort | einfaches Textfeld für die Eingabe von sensitiven Informationen wie Passwörter oder API-Token. Der Wert wird maskiert dargestellt. | Durch das Auge-Symbole kann das Passwort bei Bedarf angezeigt werden. |
Limit | Spezielles Eingabefeld für Zahlenwerte | Dieses spezielle Eingabefeld akzeptiert nur die Eingabe von Zahlenwerten, die zur Limitierung bestimmter Prozesse verwendet werden können. Dies wird besonders bei der Entwicklung von Flows benötigt, die von andere Flows aufgerufen werden (siehe Andere Flows aufrufen) |
Datastore-Auswahl
Der Datentyp Datastore-Auswahl erlaubt es Flow-Variablen anzulegen, die als Dropdown-Box mit Datastores angezeigt werden.
Das ist vor allem für fortgeschrittene Nutzer oder Entwickler hilfreich, die mit dem Flow-Executing-Step oder Flow-Trigger arbeiten, um in einem Flow andere Flows aufzurufen. Wenn man einen Flow hat, der Daten aus einem Datastore lädt und der Nutzer im aufrufenden Flow diesen Datastore durch ein Dropdown-Feld auswählen soll, dann bietet sich diese Datastore-Auswahl an.
Die Flow-Variable wird dann als Selektbox dargestellt und vereinfacht so die Auswahl von Datastores. Es ist auch möglich eine sog. Combobox darzustellen, bei der man auch einen Datastore-Namen eingeben kann, der noch nicht existiert. Das ist z.B. sinnvoll, wenn eine DatastoreWriter einen neuen Datastore erstellen soll oder einen vorhandenen nutzen soll.
Hinweis
Man muss Flow-Variablen vom Typ Datastore-Auswahl verweden, wenn man diese Flow-Variable mit einem Step verknüpfen will, welcher als Input einen DATASTORE verlangt. Das betrifft in der Regel die Steps SearchDatastore und DatastoreWriter. Flow-Variablen vom Typ STRING werden dort nicht mehr angezeigt.
Bestehende Flows sind davon nicht betroffen und funktionieren weiterhin, auch wenn das in der Vergangenheit anders verknüpft wurde.
Verbindungsvariablen
Damit können Sie ab jetzt auch Accounts, die Sie unter Mein Konto / Meine Verbindungen erreichen, als Variable anlegen und an Steps übergeben. Vorteil: Sie haben eine zentrale Stelle im Flow, wenn mehrere Steps den gleichen Account verwenden.
Datei Upload
Optional kann man auch Dateien hochladen und als Variable anlegen. Das eignet sich besonders für Tests bei der Flow Erstellung.
Hinweis
Hochgeladene Dateien werden nicht dauerhaft gespeichert und regelmäßig gelöscht. Verwenden Sie den Dateiupload nur für kurzzeitige Tests. Die eigentlichen Daten sollten immer per Step aus externen Quellen (HTTP, FTP, usw.) geholt werden.
Referenzvariablen
Referenzvariablen sind relevant, wenn Sie das Flow-in-Flow Feature benutzen, mit dem Sie einen Flow aus anderen Flows aufrufen und Variablen übergeben können.
Datentypen
Datentyp | Beschreibung | Beispiele |
---|---|---|
SPREADSHEET | Ein SPREADSHEET, das vom aufrufenden Flow übergeben werden kann. Optional kann ein Schema angegeben werden, dem das übergebene SPREADSHEET entsprechen muss. Wird ein Schema gewählt, dann wird dem Aufrufer-Step ein Configure Button angezeigt, womit die Spalten in dieses Schema gemappt werden kann. Das ist hilfreich um sicher zu stellen, dass das übergebene SPREADSHEET bestimmte Spalten beinhaltet. | |
SPREADSHEETLIST | analog zu SPREADSHEET, aber als Liste | |
Datum / Zeitauswahl | Bei Datumsvariablen wird dem Aufrufer ein kleines Kalender- und Zeitauswahl Popup angezeigt. Datumsvariablen können dann mit Steps verknüpft werden, die eine Datumsvariable erfordern. Das ist meistens bei Datumsfilter mit startDate und endDate der Fall. | |
COUNTER | Zählvariablen können verwendet werden, um in Freemarker-Skripten Dinge zu zählen. Es reicht vom einfachen Hochzählen, bis hin zum Zählen bestimmter IDs oder Wörter. Zählvariablen werden mit 0 initialisiert. | ${counter.inc()} Ergebnis: Zählvariable counter wird um 1 hochgezählt ${counter.inc(3)} Ergebnis: counter wird um 3 erhöht ${counter.inc('word1')} Ergebnis: counter für die Zeichenkette word1 wird um 1 hochgezählt. Die String-Länge des Parameters darf max. 64 Zeichen betragen und es dürfen max. 1000 verschiedene Zeichenketten gezählt werden. ${counter.inc('word1', 3)} Ergebnis: counter für die Zeichenkette word1 wird um 3 hochgezählt. ${counter!} Ergebnis: Ausgabe des aktuellen Wertes von counter. ${counter.get()} Ergebnis: Aktueller Wert von counter als Zahl (long) ${counter.get('word1')} Ergebnis: Aktueller Wert des Zählers für word1 ${counter.contains('word1')?string Ergebnis: gibt true aus, wenn für die Zeichenkette word1 schon ein Zählwert existiert. Ansonsten false. Hinweis: In einer IF/ELSE Bedingung kann man das ?string weglassen, um nur den boolschen Wert zu verwenden: z.B. <#if counter.contains('word1')>Ja, word1 ist enthalten<#else>word1 ist nicht enthalten</#if> ${counter.dec()} Ergebnis: counter wird um 1 runter gezählt. ${counter.size()} Ergebnis: gibt die Anzahl der hinzugefügten Zählwerte (Zeichenketten) + 1 (für den Standardzähler) zurück. Beispiel: ${counter.inc('word1', 3)} ${counter.inc('word2')} ${counter.inc('word3')} ${counter.size()} Ergebnis: 4 ('word1', 'word2', 'word3' + Standardzähler) |
FILELIST | Wenn der Aufrufer eine Liste von Dateien übergeben soll, dann können Sie diesen Datentyp wählen. | |
OBJECT | Wenn ihr Flow mit verschiedenen Datentypen umgehen kann und der Aufrufer beliebige Dinge übergeben können soll, dann bietet sich OBJECT an. In diesem Fall müssen sie sich als Flow-Ersteller darum kümmern, den Datentyp entsprechend auszuwerten. |
Arbeiten mit Zählvariablen
Zählvariablen werden meistens in Freemarker Scripten verwendet. D.h. meistens im Rahmen des Steps Mapper SpreadsheetMapper oder TextHTMLWriter.
1. Dazu legen Sie zuerst eine Zählvariable (COUNTER) an.
2. Gehen Sie dann in den Mapper, und drücken dort im Wert-Feld auf den Plus-Button.
3. Klicken Sie dann auf "Outputs vorheriger Steps" und wählen Sie den Counter aus.
Daraufhin wird der Counter eingefügt.
${meta.counter!}
.meta Prefix
Hinweis: Der Prefix "meta." ist im Mapper notwendig, um auf Flow-Variablen oder Step-Outputs zuzugreifen, damit es keine Namenskollision mit gleich-benannten Spalten gibt. Im TextHTMLWriter ist das meta.-Prefix hingegen nicht notwendig.
Nutzen Sie immer die Plus-Buttons, um Variablen einzufügen, da solche Eigenheiten damit berücksichtigt werden.
Diesen Ausdruck kann man dann abändern, um die eigentliche Zähllogik zu implementieren:
${meta.counter.inc()!}
oder
${meta.counter.inc("wort1")!}
${meta.counter.inc("wort2")!}
oder
${meta.counter.inc(spalte1+"")!} (hier wird der Inhalt aus spalte1 als Counter-Name verwendet. Siehe nächster Hinweis. )
Hinweis bei Verwendung von Spalten als Counter-Name
Wenn Sie eine Spalte Counter-Name verwenden (wie im letzten Beispiel), müssen Sie sicherstellen, dass der Parameter ein String ist. :::h da::: info en von + "" wird sichergestellt, dass aus der Spalte auch ein String gemacht wird.
Anwendungsbeispiel
Ein anschauliches Beispiel für Zählvariablen wird in diesem Cookbook beschrieben.
Konfiguration: Optionale- und Pflicht-Variablen und PUBLIC / PRIVATE Variablen
Es können weitere Aspekte von Flow-Variablen konfiguriert werden:
- Optionalität (steuert, ob es sich um ein Pflichtfeld oder ein optionales Feld handelt)
- Sichtbarkeit (steuert, ob die Variable auch vo::: info (aufrufenden Flows) gesehen werden kann (public), oder nur innerhalb des Flows (private))
Wann brauche ich das?
Die Optionalität und Sichtbarkeit spielen für eigenständige Flows keine Rolle. Ein sinnvoller Einsatz beginnt erst, sobald man mit Funktionen wie Flow-in-Flow - FlowExecutingStep oder FlowTrigger arbeitet. Beide Funktionen erlauben es, aus einem Flow heraus andere Flows aufzurufen. Erst hier werden Aspekte wie Optionalität oder Sichbarkeit relevant.
Optionalität
Optionalität | Beschreibung |
---|---|
optionales Feld (Standard) |
|
Pflichtfeld |
|
Sichtbarkeit
Sichtbarkeit | Beschreibung |
---|---|
PUBLIC (Standard) |
|
PRIVATE |
|