Erste Schritte
Als Ergänzung zu dieser Seite empfehlen wir die Seite Erste Schritte. Diese Seite erklärt am Beispiel, wie man Flows erstellt und die folgenden wichtigsten Kern-Steps:
- Mapper SpreadsheetMapper
- SpreadsheetFilter
- SpreadsheetCSVReader / Excel2SpreadsheetReader
- SpreadsheetCSVWriter
- SearchMasterDatastore
- SpreadsheetDatastoreWriter
Flow
Ein Flow ist das wichtigste Element in Synesty Studio und Kern aller Automatisierungen.
Ein Flow ist die Bezeichnung für einen Prozess bestehend aus mehreren Schritten, den Steps. Ein Flow ist vergleichbar mit einem Kochrezept und Steps sind die Zutaten.
- Es gibt Steps für unterschiedlichste Systeme und Funktionen wie z.B. Daten holen, Daten bearbeiten und Daten wieder ausgeben oder hochladen.
- Ein Flow kann manuell und automatisiert ausgeführt werden.
- Alle Steps in einem Flow werden nacheinander ausgeführt.
- Jeder Step kann die Ausgabe vorheriger Steps weiter bearbeiten (stellen Sie sich mehrere Trichter hintereinander vor).
- Jede Ausführung eines Flows wird als Run bezeichnet.
- Jeder Run erzeugt einen Eintrag im Event Log mit Informationen über Erfolg/Fehler und diverse Meldungen über den Fortschritt.
- Die Anzahl der monatlich möglichen Runs ist begrenzt und hängt davon ab welches Paket oder Upgrade Sie gebucht haben.
Steps
Ein Step bezeichnet einen einzelnen Baustein eines Flows.
- Jeder Step kann über Parameter konfiguriert werden, wodurch man das Verhalten bei der Ausführung beeinflussen kann.
- Ein Step hat ein oder mehrere Ausgabe Werte, die hier als Output bezeichnet werden.
- Ein Step kann Outputs von vorherigen Steps als Input verwenden (wir bezeichnen dies als "Verdrahten bzw. Verknüpfen von Step-Outputs und Step-Inputs")
Über den
Favoriten
Häufig verwendete Steps können durch Klick auf das
zur Favoriten-Liste hinzugefügt werden um sie so schneller erreichen zu können.Konfiguration von Steps
Durch Klick auf das
Die meisten Steps sind über Text- oder Dropdown-Felder konfigurierbar, um die entsprechenden Input-Parameter einzustellen.
Steps mit Accounts / Verbindungen
Alle Steps, die mit externen Systemen kommunizieren, greifen dabei auf Accounts zu, die sie unter Meine Verbindungen einrichten.
Damit der Step funktioniert, muss erst ein Account mit Zugangsdaten für das externe System, z.B. plentymarkets oder Amazon Seller Central, angelegt werden, damit er im Step verwendet werden kann.
Man erkennt das am Step-Input account und der entsprechenden Auswahlbox.
Wenn die Auswahlbox leer ist, muss erst ein Account angelegt werden. Klicken Sie dazu auf den Link "Meine Verbindungen anzeigen" unter der Auswahlbox.
Step Vorschläge
Beim Erstellen werden häufig hinzugefügte Steps kontextsensitiv vorgeschlagen. Wenn Sie mit der Zeit einige Flows erstellt haben, und genau wissen was sie brauchen, können die Step-Vorschläge sehr viel Zeit sparen.
Klicken Sie dazu auf den Button Step hinzufügen. Danach werden Ihnen - rechts unten - passende Steps vorgeschlagen.
Verknüpfen von Step-Outputs und Step-Inputs
Ein wichtiger Aspekt von Steps ist, dass für einen Input auch Outputs vorheriger Steps verwendet werden können. Das heißt, dass man die Step-Outputs und Step-Inputs miteinander "verdrahten" kann.
Beim Hinzufügen eines neuen Steps, wird dieser automatisch mit dem Output des vorherigen Steps verknüpft. Diese automatische Verknüpfung funktioniert unter folgenden Voraussetzungen:
- Der erste Output des vorherigen Steps ist vom Typ: SPREADSHEET, SPREADSHEETLIST, FILE oder FILELIST
- Der neu hinzugefügte Step erwartet einen passenden Input vom Typ: SPREADSHEET, SPREADSHEETLIST, FILE oder FILELIST
Steps "verdrahten"
Das graue Icon
Jeder Step kann Outputs von vorherigen Steps verarbeiten.
Ein Step kann auch manuell mit dem -Button neu verknüpft werden. Bei Klick auf diesen Button kann ein vorheriger Step-Output für die Verknüpfung gewählt werden.
Wann ist eine manuelle Verknüpfüng notwendig?
Es gibt verschiedene Fälle, wo eine manuelle Verknüpfung notwendig ist:
- die automatische Verknüpfung beim Hinzufügen eines Steps, verknüpft ihn immer mit dem vorherigen Step. Wenn dies nicht gewünscht ist, dann kann manuell dieser neu verknüpft werden
- die automatische Verknüpfung konnte nicht angewendet werden.
- Sie wollen einfach einen anderen Step-Output verwenden, als sie dies ursprünglich getan hatten.
Verknüpfung durch Verschieben
Wenn man einen Step innerhalb eines Flows verschiebt, dann hat man unmittelbar danach die Möglichkeit den Input neu mit dem Output des vorhergehenden Steps zu verknüpfen. Bisher gab es diese automatische Verknüpfung von Inputs und Outputs beim hinzufügen neuer Steps. Das spart vor allem Zeit beim erstellen von Flows, wo man in der Regel sehr oft Steps hinzufügt und verschiebt.
Step Outputs untersuchen
Unterhalb eines jeden Steps sehen sie einen kleinen Pfeil. Durch Klick darauf gelangen Sie zu den Output-Informationen.
Hier werden alle Outputs des Steps aufgelistet und beschrieben.
Das ist hilfreich, um den Namen Variable herauszufinden, wenn man den Output des Steps in einem Freemarker-Skript verwenden will (siehe Scripting).
Bei einigen Steps werden auch sog. Meta-Daten angezeigt (z.B. der SearchDatastore). Das sind Informationen zu einzelnen Feldern wie z.B. denen eines Datastores oder eines Mappers.
Step Outputs in Freemarker Skripten verwenden
Um die Variablennamen von Step-Outputs herauszufinden, um diese dann z.B. im TextHTMLWriter oder TextHTMLWriterMultiOutput zu verwenden, gibt es folgende Möglichkeiten:
1. Plus-Buttons nutzen
Dadurch werden automatisch immer die jeweils korrekten Variablennamen genommen und oft auch hilfreicher Beispiel-Code eingefügt, welcher angepasst werden kann.
2. Auf den kleinen Pfeil unten an den Steps klicken, um Informationen zu den Step-Outputs anzuzeigen
Dort werden die Outputs des Steps beschrieben und dort sieht man auch wie die entsprechende Freemarker-Variable heißt.
Laufzeit Eigenschaften
Laufzeit Eigenschaften sind spezielle Variablen, die dynamische Informationen enthalten, die nur zur Laufzeit des Flows gültig sind.
Laufzeit Variable | Beschreibung |
---|---|
prop_lastruntime | Der Startzeitpunkt der letzten automatischen Ausführung (Wann startete der letzte Run?) |
prop_actualruntime | Die geplante Ausführungszeit des Flows (entspricht der eingestellten Nächsten Ausführung) |
current_timestamp | Der jeweils aktuelle Zeitpunkt beim Start des Flows |
prop_intervalminutes | Das eingestellte Intervall des Flows |
jobname | Der Name des Flows |
job_id | Die ID des Flows |
job_uniquename | Eine systemweit eindeutige ID des Flows, die selbst vergeben werden kann und der Short-URL beim URLTrigger (siehe weiter unten) entspricht. |
customer_id | Die ID ihres Kundenaccounts |
customer_name | Der Name ihres Kundenaccounts |
flow_run_id | Die ID (UUID) des aktuellen Runs, die bei jeder Ausführung dynamisch erzeugt wird und eindeutig ist. |
Laufzeit Eigenschaften als Template-Variable
Laufzeit Variablen stehen in einigen Steps (z.B. TextHTMLWriter) auch als Template-Variable zur Verfügung.
Dies wird häufig genutzt, um dynamische Dateinamen mit einem Datum zu generieren.
Step-Inputs in Flow-Variablen umwandeln
Flow-Variablen dienen dazu, oft benötigte Parameter wieder zu verwenden. Häufig wird das bei Server-Host Zugangsdaten gemacht, die in mehreren Steps verwendet werden (z.B. FTP-Download und anschließender FTP-Upload auf den gleichen Server).
Dazu gibt es eine praktische Funktion, um aus einem Step-Input z.B. host eine Flow-Variable zu erstellen.
Die erstellte Flow-Variable V1 wird jetzt im Step verwendet und kann damit auch in weiteren Steps verwendet werden (siehe Verdrahten von Step-Outputs und Step-Inputs).
Step Vorschau
Das
Symbol an jedem Step erlaubt sich eine Vorschau der Ausführung eines Steps anzusehen. Das ist praktisch, um einen Step erstmal zu testen.Achtung: Die Vorschau
führt alle vorherigen Steps bis zum aktuellen Step aus, damit auch immer die notwendigen Inputs vorhanden sind. Vor allem wenn vorherige Steps sehr lange dauern oder schreibende Prozesse beinhalten, sollte man beim Testen aufpassen und eventuell den zu testenden Step etwas weiter nach vorn schieben.Steps innerhalb des Flows verschieben
Die Reihenfolge der Steps kann durch verschieben mit der Maus verändert werden.
Steps duplizieren
Man kann Steps mit seinen Einstellungen duplizieren. Das ist praktisch, wenn man den gleichen Step mehrmals innerhalb eines Flows benötigt.
Steps in einen anderen Flow kopieren
Hin und wieder kommt es vor, dass man einen Step nahezu identisch in einem anderen Flow wiederverwenden möchte. Besonders beim SpreadsheetMapper kann das sehr hilfreich sein, wenn man ein sehr großes oder aufwändiges Mapping erstellt hat.
In diesem Fall kann man die "Step in Flow kopieren" Funktion verwenden. Der Step wird dabei mit all seinen Einstellungen ans Ende des gewählten Flows kopiert.
Alle Steps bearbeiten
Über den Button "Alle Steps bearbeiten", erreichen Sie eine Massenbearbeitungsansicht für alle Steps.
Damit können Sie Aktionen für viele Steps gleichzeitig durchführen.
- Steps umbenennen
- Steps farblich markieren
- Position ändern
- durch Ziehen per Drag & Drop
- durch Eingabe der Position
- nach ganz oben oder ganz unten durch den kleinen Pfeil
- Steps pausieren
- Steps in anderen Flow kopieren
- Steps in andere Gruppe verschieben (sofern mehrere Stepgruppen im Flow aktiviert sind)
- Steps löschen (Hinweis: Die gleichzeitige Auswahl von Kopieren und Löschen entspricht einem Verschieben. Es wird erst kopiert und dann gelöscht)
- Step Version ändern
Alle Stepgruppen ein/-ausklappen
Mithilfe dieses Buttons können Sie alle Stepgruppen aus- bzw. einklappen (Stepgruppen, siehe nächstes Kapitel)
Stepgruppen
Stepgruppen sind vornehmlich ein optisches Hilfsmittel, damit Flows übersichtlicher organisiert/gebaut werden können und einem "Datei Ordner" ähnelt.
In einer Stepgruppe können beliebig viele (aufeinanderfolgende) Steps zusammengefasst und mit einem passenden Titel, Beschreibung und Farbe versehen werden.
Anbei ein kurzer Überblick zu den möglichen Gruppenfunktionen (rote Pfeile):
Gruppenkonfiguration
Sie können jede Gruppe individuell ändern
- Name der Gruppe
Hier sollte ein kurzer, aussagekräftiger Titel für die Funktion der beinhalteten Steps gewählt werden. - Beschreibung der Gruppe
Dieses Feld dient einer ausführlicheren Beschreibung der Gruppenfunktion(en). - Gruppenfarbe
Dient der Markierung der Gruppe mit einer Farbe im Nutzerinterface.
Gruppe ein-/ausklappen
Steps einer Gruppe können ein- bzw. ausgeblendet werden. Dies kann z.B. bei der Bearbeitung von großen Flows (= viele Steps) praktisch sein, um aktuell unwichtige Steps zu verbergen.
Alle Steps der Gruppe bearbeiten
Hier können alle in der Gruppe enthaltenen Steps bearbeitet werden, im einzelnen:
- Stepname
- Stepfarbe
- Step pausieren/aktivieren
- Step in eine andere Gruppe verschieben
- Step in einen anderen Flow kopieren
- Step löschen
Gruppe aktivieren/pausieren
Mit nur einem klick wird die entsprechende Gruppe aktiviert/deaktiviert. Ist eine Gruppe deaktiviert, wird kein darin enthaltener Step (egal ob pausiert oder nicht) ausgeführt.
Gruppe löschen
Es wird die Gruppe und alle beinhalteten Steps gelöscht.
Neue Gruppe anfügen
Es wird eine neue (leere) Gruppe erstellt und unterhalb der gewählten Gruppe angefügt. Die Gruppe kann danach direkt bearbeitet und mit Steps gefüllt werden.
Aktive Stepgruppe und Step hinzufügen
Sobald ein Step ausgewählt wurde (um z.B. den Step zu konfigurieren etc.) wird die Gruppe in welcher sich der Step befindet als "aktive Gruppe" gesetzt.
Diese ist zum einen an den Symbol an der Gruppenkarte, als auch an den leicht bläulich schimmernden Rand der Gruppe zu erkennen.
Wird nun mittels des "Step hinzufügen" Buttons am unteren Bildschirmrand ein Step ausgewählt, wird dieser immer ans Ende der aktiven Gruppe hinzugefügt.
Ein einfaches Beispiel eines Flows mit Stepgruppen
Ein Flow ruft eine Excel-Datei mit Artikeldaten von einer URL ab und in Synesty Studio eingelesen. Aus diesen Daten sollen nun drei unterschiedliche Shopping Feeds erstellt werden:
- Ein Feed für Check24
- Ein Feed für Idealo
Jeder erstellte Feed soll dabei auf einen anderen FTP-Server hochgeladen werden.
Der Flow ohne Gruppen könnte also in etwa so aussehen:
Nutzt man nun Gruppen, könnte man den Flow in z.B. 3 logische "Einheiten" teilen:
- Datei herunterladen und einlesen
- Check24 Feed mappen und hochladen
- Idealo Feed mappen und hochladen
Der identische Flow mit gruppen, sieht nun in etwa so aus.
Flows ausführen und automatisieren
Flows manuell ausführen
Die einfachste Möglichkeit einen Flow auszuführen ist die manuelle Ausführung über den Button
.
Die manuell Ausführung bietet noch zwei Optionen, um die Ausführung zu steuern:
1. Optionen für Zeitparameter
Mit der ersten Option wird die interne Laufzeitvariable prop_actual_runtime mit dem (unten angegebenen) Zeitstempel 'prop_current_timestamp' überschrieben.
Mit der zweiten Option kann auch noch das Datum der 'letzten Ausführung' damit überschrieben werden. Die 'letzte Ausführung' wird sonst nur bei zeit-geplanten Ausführungen gesetzt. Durch diesen Haken kann man es auch bei einer manuellen Ausführung setzen.
Mehr Infos über die internen Variablen unter Laufzeiteigenschaften.
2. Überschreiben von Flow-Variablen für eine Ausführung (One Shot)
Eine praktische Funktion ist das einmalige Überschreiben von Flow-Variablen für eine manuelle Ausführung.
Wozu braucht man das?
Damit kann man sich z.B. einen Flow bauen, der eine eine Datei verarbeitet - z.B. eine tägliche Routineaufgabe wie der Import von Paketnummern
Man kann die Datei dafür dann direkt hochladen, um den Flow nur für genau diese Datei ausführen. Dafür sind dann nur 3 Klicks notwendig: Option anklicken, Datei auswählen und los.
Flow-Variablen bleiben unverändert
Durch das Überschreiben, werden die Werte bestehender Flow-Variable nicht geändert. Stattdessen werden nur temporär für eine Ausführung die überschriebenen Werte genutzt. Für automatisierte Ausführungen des Flows greifen weiterhin, die Werte der Flow-Variablen.
Flows zeitgesteuert ausführen
Flows können zeitgesteuert automatisch ausgeführt werden. Die Konfiguration dafür erreicht man über den
Button. Folgende Intervalle sind möglich:- Alle 15 Minuten
- Alle 30 Minuten
- Alle 60 Minuten
- Alle 2 Stunden
- Alle 3 Stunden
- Alle 4 Stunden
- Alle 6 Stunden
- Alle 8 Stunden
- Alle 12 Stunden
- Alle 24 Stunden
- Alle 7 Tage
- Individuelle Intervalle (ab Plus Paket)
Runs
Flow+ für unbegrenzte Anzahl Runs
Durch den Kauf eines Flow+ können Sie einen beliebigen Flow in einen Flow+ umwandeln (unter Flow / Einstellungen / Flow+ konfigurieren).
Damit werden für diesen ausgewählten Flow folgende Eigenschaften aktiviert:
- Sie können den Flow beliebig oft ausführen.
- Runs zählen nicht gegen Ihr monatliches Run-Limit.
- Erweiterter Modus der Zeitplanung sowie individuelle Intervalle sind aktiviert (sonst ab Plus Paket).
- Einschränkung: Flow-In-Flow ist nicht erlaubt (Steps, die andere Flows ausführen z.B. FlowExecuting Step).
Mehrfachbuchung
Dieses Add-On kann mehrfach gebucht werden. Ihr erlaubtes Flow+ Kontingent erweitert sich dadurch jeweils um 1.
Wann brauche ich einen Flow+?
- Wenn Sie einen Prozess abbilden möchten, der häufig er ausgeführt wird:
- z.B. alle 5 Minuten auf neue Bestellungen prüfen
- oder alle 2 Minuten prüfen, ob eine neue Datei auf dem FTP-Server liegt
Für derartige Aufgaben bräuchten Sie enorm viele Runs. Um Ihr Budget zu schonen können Sie dafür einen Flow+ erwerben und diesen auf einen Flow Ihrer Wahl anwenden. Dadurch belastet dieser Flow nicht mehr Ihr monatliches Run-Limit.
Zeitplanung von Flows
Stunden und Tage aussetzen
Sie können auch festlegen, dass ein Flow in bestimmten Stunden oder an bestimmten Wochentagen nicht laufen soll. Damit können Sie z.B. einen automatisierten Flow in der Nacht oder am Wochenende pausieren, aber tagsüber stündlich laufen lassen. Auf diese Weise können Sie Flow-Runs sparen und ihre monatlichen Kosten senken.
Individuelle Startzeiten
Ab dem Plus Paket ist es im erweiterten Modus auch möglich individuelle Startzeiten pro Wochentag zu definieren.
Der Vorteil dabei ist, dass sie damit pro Tag beliebige Zeiten angeben können, und nicht an ein festes Intervall gebunden sind.
Hinweis zum Feld Nächste Ausführung
Wichtig: Das Feld Nächste Ausführung muss gesetzt sein, da dies der tatsächliche Zeitpunkt ist, wann der Flow das nächste mal ausgeführt wird. Bei der Ausführung wird dann anhand der der individuellen Startzeiten wiederum die nächste Ausführungszeit ermittelt und aktualisiert usw.
Erster und letzter Tag des Monats
Der erweiterte Modus der Zeitplanung (verfügbar ab Plus Paket oder mit Flow+) erlaubt es außerdem, Flows auf den ersten Tag des Monats (erstertagimmonat) bzw. letzten Tag des Monats (letztertagimmonat) zu planen.
Es ist auch möglich die Ausführung für den ersten Wochentag des Monats (ersterwochentagimmonat) zu planen. In diesem Fall wird der Flow am ersten Wochentag (Montag - Freitag) im Monat ausgeführt. Ist Beispielsweise der erste Tag des Monats ein Mittwoch, dann wird der Flow an diesem Tag ausgeführt. Sollte der erste Tag des Monats z.B. ein Samstag sein, dann wird der Flow erst Montag ausgeführt.
Beispiel in dt. Sprache:
Montag=12:00,13:00,15:31|Dienstag=11:00,15:35|Freitag=13:00,15:35|erstertagimmonat=09:00|letztertagimmonat=23:59|ersterwochentagimmonat=08:00
Alternativ ist die die englische Schreibweise möglich:
monday=12:00,13:00,15:31|tuesday=11:00,15:35|friday=13:00,15:35|firstdayofmonth=09:00|lastdayofmonth=23:59|firstweekdayofmonth=08:00
URLTrigger - Flows per URL antriggern
Ab dem Starter-Paket ist es möglich, Flows per URL anzutriggern. Damit kann man durch Aufruf einer bestimmten URL z.B. durch externe Tools steuern, wann ein Flow ausgeführt wird. Oft wird dies auch als Webhook bezeichnet.
https://apps.synesty.com/studio/api/flow/v1?id=meinFlow&t=meinToken
Mit diesem Mechanismus ergeben sich viele neue Möglichkeiten externe Anwendungen mit Synesty Studio zu kombinieren. Vorstellbar wäre z.B., dass sie bei jeder neuen Bestellung in ihrem Shop automatisch die Flow-URL aufrufen lassen (sofern ihr Shopsystem das erlaubt). Dieser Flow könnte dann diese neue Bestellung abrufen und z.B. in ihre Warenwirtschaft oder zu ihrem Lieferanten exportieren.
Einrichtung
Neben dem Planen-Button finden Sie einen Button mit dem Sie den URLTrigger konfigurieren können.
Einstellung | Beschreibung |
---|---|
URL | Eine Vorschau der URL, die aufgerufen werden kann. |
Short-URL | Sie haben die Möglichkeit einen eigenen Bezeichner zu definieren z.B. einen kurz einprägsamen Namen, über den der Flow angesprochen werden kann. Dieser Bezeichner muss systemweit eindeutig sein. Die Short-URL ist standardmäßig mit einer kryptischen langen Zufallszeichenfolge gefüllt. Ersetzen Sie diese einfach durch etwas entsprechenderes. |
Sicherheits-Token | Eine Art Passwort, was mit dem Parameter &t= an die URL angefügt werden muss, um den Flow aufzurufen. Dies stellt eine zusätzliche Sicherheit dar. Nur wer die URL und den Token kennt, kann den Flow ausführen. Ändern Sie den Token regelmäßig ohne das sich die Short-URL ändert. Sie können auch eine Projekt-Variable referenzieren z.B. ${meineProjektVariable}, wenn Sie den Token für mehrere Flows an einer zentralen Stelle verwalten wollen. (Wichtig: Projekt-Variable muss vom Eingabetyp Passwort-Feld sein) |
Reponse Mode |
|
Request Mapping | siehe Request Mapping unten |
Beispiel - Flow per URL antriggern
Das ganze kann man einfach im Browser testen.
Das Ergebnis des Aufrufs ist eine Antwort im JSON-Format, die die runID enthält, eine eindeutige ID für diese Ausführung. Damit wurde der Flow angetriggert und wird im Hintergrund ausgeführt.
Status-Abfrage
Der Status des Runs kann mit folgender URL abgefragt werden:
https://apps.synesty.com/studio/api/flow/v1?id=[Short-URL]&action=status&runId=[runID]
Um herauszufinden, ob der Flow erfolgreich ausgeführt wurde, muss die Status-URL so lange abgerufen werden, bis die Antwort SUCCESS, ERROR oder WARNING beinhaltet.
Das Ergebnis ist wieder ein JSON-String, der Information über Erfolg oder Fehler (status=SUCCESS oder ERROR) und einen Auszug aus dem Eventlog beinhaltet.
HTTP Fehler
Beim Aufruf der URL-Triggers oder der Status-Abfrage kann es zu folgenden HTTP-Response Codes kommen, auf die ihr HTTP-Client entsprechend reagieren sollte:
HTTP Code | Bedeutung | Wie sollte Ihr HTTP-Client reagieren |
---|---|---|
HTTP 200 SUCCESS | Request erfolgreich angenommen und in Warteschlange gestellt. | Alles gut. Keine bestimmte Reaktion erforderlich. |
HTTP 404 NOT_FOUND | Flow (Short-URL) ist falsch oder existiert nicht mehr bzw. Flow wurde gelöscht. | Die Anfragen können hiermit abgebrochen werden. |
HTTP 403 FORBIDDEN | Der Flow wurde bereits angetriggert und wird derzeit noch ausgeführt. | Ihr Client sollte über die Status-Abfrage den Status des Flows abfragen und den Flow erst wieder antriggert, wenn der vorherige Run mit SUCCESS, WARNING oder ERROR beendet wurde. |
HTTP 500 ERROR | Temporäres technisches Server Problem. | Hier sollte ihr Client eine gewisse Wartepause einlegen, da gerade ein Problem vorliegt. Eine Wartezeit von 30-60 Sekunden sollte das mindestens sein. |
Request Mapping
Mit dem Request Mapping kann man Flow-Variablen mit HTTP Request-Parametern befüllen. Das Request Mapping erlaubt es z.B. den kompletten HTTP-Request-Body in eine Flow-Variable zu füllen. Das ist nützlich wenn man den Flow-URL-Trigger als Webhook benutzt und eine JSON-Payload im Request-Body verarbeiten will.
Standardmäßig (ohne Request Mapping) werden all (public) Flow-Variablen durch gleichnamige HTTP-Request-Parameter (z.B. per URL) überschrieben. Wenn ein Request Mapping definiert ist, dann wird dieses stattdessen benutzt.
Beispiel:
Im Beispiel-Screenshot werden drei Flow-Variablen (jsonpayload, requestContentType, idFromURL) per Request Mapping an HTTP-Request-Parameter gebunden (gemappt).
Die Flow-Variable jsonpayload wird direkt mit dem kompletten HTTP-requestBody befüllt, requestContentType mit dem HTTP-Header "Content-Type" und die Flow-Variable idFromURL mit dem GET-Parameter id.
Vor allem die Verarbeitung des HTTP-RequestBody (body) ist praktisch, wenn in externen Applikationen Webhooks nutzen will. Viele Cloud-Dienste bieten heutzutage Webhooks, um andere Applikationen über bestimmte Ereignisse zu informieren und Daten zu synchronisieren. Dabei kann eine externe Applikation die Trigger-URL des Flows mit bestimmten Parametern aufrufen wenn bestimmte Ereignisse eintreten (z.B. neue Bestellung vorhanden). Diese übergebenen Parameter kann man mit per Request Mapping auslesen.
Datei-Upload per URL-Trigger
Damit kann man z.B. über externe Tools den Flow mit einer Datei antriggern.
Dazu wählt man im Request Mapping eine Flow-Variable vom Typ Datei (FILE), als Parameter-Typ parameterFile und wählt einen Paramaternamen, unter dem die Datei übergeben werden soll:
Wichtig: Bei einem Dateiupload muss der Request dafür mit Content-Type: multipart/form-data übertragen werden.
Testen können das Entwickler mit Tools wie z.B. Postman:
Flow Variablen per URL übergeben
Über die URL lassen sich auch Flow-Variablen (nur PUBLIC Variablen) als URL-Parameter übergeben, und damit bei jedem Aufruf individuell überschreiben.
Damit könnten Sie z.B. bei jedem Aufruf einen anderen Wert übergeben, und damit dynamisch bestimmen, was der Flow machen soll. Das könnte z.B. eine Auftrags-ID, URL oder sonstiger Wert sein, der innerhalb des Flows verwendet wird.
Beispiel: URL dynamisch aufrufen
Der Screenshot zeigt einen Flow mit einer Variable host , die eine URL beinhaltet, die vom Step UrlDownload abgerufen wird.
In der Trigger-URL kann man den Wert der Variable überschreiben.
https://apps.synesty.com/studio/api/flow/v1?id=websiteabrufen&t=123&host=google.de
Diese URL überschreibt die host-Variable mit dem Wert google.de (statt vorher synesty.com).
Beim Abruf der Status-URL sieht man dann im Eventlog, dass jetzt die überschriebene URL verwendet wurde.
Optionale Parameter
Der URL-Trigger verfügt über drei optionale Parameter die der URL angehängt werden können:
- delayMinutes: Über diesen Parameter kann die Startzeit des Flows gesteuert werden. Mit dem Parameter kann die Anzahl der Minuten zwischen Aufruf der URL und Ausführungszeitpunkt des Flows angeben werden (Default: 0, Min: 0, Max: 1440).
- Beispiel URL: https://apps.synesty.com/studio/api/flow/v1?id=websiteabrufen&t=123&host=google.de&delayMinutes=5 (startet den Flow 5 Minuten nach Aufruf der URL)
- Beispiel URL: https://apps.synesty.com/studio/api/flow/v1?id=websiteabrufen&t=123&host=google.de&delayMinutes=5 (startet den Flow 5 Minuten nach Aufruf der URL)
- overrideActualRuntime: Wird dieser Parameter mit "true" übergeben, wird die Laufzeit Eigenschaft "prop_actualruntime" mit dem Zeitpunkt des URL Aufrufs überschrieben (Default: false).
- overrideLastRuntime: Wird dieser Parameter mit "true" übergeben, wird die Laufzeit Eigenschaft "prop_lastruntime" mit dem Startzeitpunkt des aktuellen Runs überschrieben (Default: false).
- Beispiel URL: https://apps.synesty.com/studio/api/flow/v1?id=websiteabrufen&t=123&host=google.de&overrideLastRuntime=true
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
- Verbindungs-Variablen
- 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 |
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 Dies wird besonders bei der Entwicklung von Flows benötigt, |
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 SpreadsheetDatastoreWriter einen neuen Datastore erstellen soll oder einen vorhanden nutzen soll.
Hinweis
Man muss Flow-Variablen vom Typ Datastore-Auswahl, wenn man diese Flow-Variable mit einem Step verknüpfen will, der als Input einen DATASTORE verlangt. Das betrifft in der Regel die Steps SearchDatastore und SpreadsheetDatastoreWriter. 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. | |
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, | ${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. |
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 SpreadsheetMapper, und drücken dort im Wert-Feld auf den Plus-Button.
3. Klicken Sie dann auf "aus Meta-Daten" und wählen Sie den Counter aus.
Daraufhin wird der Counter eingefügt.
${meta.counter!}
.meta Prefix
Hinweis: Der Prefix "meta." ist im SpreadsheetMapper 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. Durch das Anhängen 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 von außen (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 |
|
Output Variablen
Output Variablen sind auch eine fortgeschrittene Funktion, die nur im Zusammenhang mit dem Flow-in-Flow Feature eine Rolle spielt, wenn der Flow von einem anderen Flow aufgerufen wird.
Man kann damit beliebige Step-Outputs als Flow-Output Variable definieren. Diese Variablen werden dann für den aufrufenden Step sichtbar und können dort weiterverarbeitet werden.
Die Ausgabe-Referenz kann auch im Nachhinein über den Button "Output Mapping ändern" geändert werden. Der Name der Output-Variable bleibt allerdings erhalten. (ansonsten müssten alle aufrufenden Flows auch angepasst werden)
Einstellungen
Am oberen rechten Rand finden Sie eine Buttonleiste für Einstellungen und wichtige Funktionen:
- Änderungshistorie
- Eventlog
- Dokumentationsansicht
- Handbuch zu Flows
- Einstellungen
Änderungshistorie
Für Kunden ab Plus Paket gibt es die Möglichkeit der Versionierung für Flows.
Damit kann man Zwischenstände von Flows wegspeichern (Snapshots), um später ggf. wieder zu einem bestimmten Stand zurückzurollen (Rollback).
Änderungen können mit einem Kommentar versehen werden, um auch später noch nachzuvollziehen was geändert wurde.
Hat man z.B. eine versehentliche Änderung gemacht, kann man über einen Klick die Basis-Version wiederherstellen.
Die Basis-Version ist die letzte Version vor der Änderung (dargestellt durch einen grünen Punkt).
Automatische Versionierung
Zusätzlich zur manuellen Speicherung eigener Versionen werden beim Sperren des Flows automatische Versionen erzeugt.
Hierbei wird geprüft ob Änderungen zur Basisversion vorhanden sind und nur im Fall einer Abweichung ein Autosave generiert.
Die maximale Anzahl der Autosaves ist auf 25 begrenzt. Wird diese Zahl überschritten werden automatisch die ältesten Autosaves wieder gelöscht.
Timeline der Änderungshistorie
Alle erstellten Versionen sind in einer Timeline verfügbar. Die aktualle Basisversion ist grün hervorgehoben.
Zudem besteht die Möglichkeit zur besseren Übersicht der selbst gespeicherten Versionen alle Autosaves auszublenden.
Basisversion wiederherstellen
Diese Option stellt die letzte gespeicherte Verion wieder her und macht alle seit dem vorgenommenen Änderungen wieder rückgängig.
Eventlog
Siehe EventLog.
Dokumentationsansicht
Diese Ansicht stellt eine "druckbare" Version des Flows dar. Diese dient dem Zweck, dass man alle Elemente des Flows übersichtlich auf einer Seite sieht.
Der Vorteil dieser Ansicht ist, dass man die Browsersuche (Strg + F) nutzen kann, um bestimmte Elemente des Flows zu finden. Auch ist es theoretisch möglich, sich diese Seite als PDF zu Dokumentationszwecken abzuspeichern.
Flow Hilfe
Damit erreichen Sie diese Handbuchseite.
weitere Einstellungen
Datenfluss-Graph
Der Datenfluss-Graph stellt die Verknüpften Step-Outputs grafisch dar. Damit kann man sehen, welcher Step welchen Output von anderen Steps konsumiert.
Cache leeren
Bei Klick auf Step-Vorschau werden die Daten in einem Cache zwischengespeichert, und bei einer Step-Vorschau in einem späteren Step wiederverwendet. Damit wird vermieden, dass alle Daten immer wieder neu geladen werden müssen, was z.B. einer langsamen API länger dauern kann. Um diesen Cache zu leeren und wieder frische Daten zu erhalten, können Sie diese Funktion benutzen.
Alternative: ein Klick auf Flow-Variablen speichern hat den gleichen Effekt. Dabei wird der Cache auch geleert.
Zeige aufrufende Flows
Damit kann man alle Flows anzeigen, die den aktuellen Flow mit einem FlowExecutingStep oder FlowTrigger Step aufrufen.
Siehe auch AndereFlowsaufrufen.
Flow+ konfigurieren
Siehe Flow+
In Projekt kopieren / verschieben
Damit können Sie einen Flow in ein anderes Projekt kopieren oder verschieben. Es ist dabei auch möglich einen anderen Workspace zu wählen.
Duplizieren
Diese Funktion dupliziert den aktuellen Flow und alle enthaltenen Steps. Das ist praktisch, um einmal erstellte Flows einfach wiederzuverwenden.
Exportieren
Ein Flow kann damit in eine Datei exportiert werden und anschließend wieder importiert werden.
Das ist praktisch, um z.B. ein Backup eines Flows anzulegen, dass man zu einem späteren Zeitpunkt wieder importieren kann.
Flow importieren
Um einen exportierten Flow wieder zu importieren gehen sie wie folgt vor:
- Rufen Sie ein Projekt auf
- Öffnen Sie das Dropdown neben dem Flow erstellen Button
- Wählen Sie Flow importieren
- Laden Sie die Datei, die Sie zuvor exportiert haben
Debug Modus
Wenn der Debug-Mode aktiviert ist, dann werden alle HTTP-Requests für die nächsten 3 Runs mitgeschrieben ("geloggt").
Im Eventlog kann man daraufhin den HTTP-Log als Datei herunterladen. In dieser Datei findet man alle HTTP-Requests / API-Calls, die im Hintergrund gemacht werden.
Automatische Deaktivierung nach 3 Runs
Nach den nächsten 3 Ausführungen wird der Debug-Mode automatisch wieder deaktiviert. Das ist notwendig, da der HTTP-Log enorme Systemlast und Speicherverbrauch erzeugt und diese nur zur Fehlersuche verwendet werden soll.
Der HTTP-Log im Eventlog ist nur für kurze Zeit nach der Ausführung verfügbar (max. 2 Tage). Danach wird die Datei gelöscht und kann nicht mehr heruntergeladen werden.
Event Log
Das Event Log eines Flows zeigt die Historie aller Runs und deren Status, sowie Informationen über die Ausführungsdauer. Damit können Fehler oder ungewöhnliche Abweichungen leicht erkannt, sowie weitere Details wie z.B. Outputs der einzelnen Steps anzeigt werden.
Das Eventlog zeigt in der Detailansicht ganz oben die letzte Warnung oder Fehlermeldung an. Dadurch sieht man schneller, wenn mitten in der Ausführung Warnungen aufgetreten sind. Diese Zusammenfassung taucht auch in der morgendlichen Zusammenfassung-Mail auf, sofern sie diese unter Mein-Konto aktiviert haben.
Folgende Status sind möglich:
Status | Status Response (JSON) | Beschreibung |
---|---|---|
GEPLANT | SCHEDULED | Automatisierter oder getriggerter Flow der bei erreichen der Startzeit in die Warteschlange verschoben wird. |
in WARTESCHLANGE | QUEUED | Die Ausführung steht kurz bevor. Der Flow ist in der Warteschlange. Es kann eine Weile dauern, bis die Flows vor ihnen in der Warteschlange abgearbeitet sind. |
WIRD AUSGEFÜHRT | NEW | Der Flow wird gerade ausgeführt. |
ÜBERSPRUNGEN | SKIPPED | Die geplante Ausführung wurde übersprungen. Das passiert, wenn sie bei der Zeitplanung Stunden oder Tage aussetzen. Immer dann wenn der Run auf eine dieser ausgesetzten Zeiten fällt, wird ein Eventlog-Eintrag erzeugt aber als Übersprungen gekennzeichnet. |
ERFOLGREICH | SUCCESS | Der Flow wurde ohne Fehler und ohne Warnungen ausgeführt. |
FEHLER | ERROR | Während der Ausführung gab es einen Fehler. Die Ausführungen wurde abgebrochen. Wichtig: Keine Panik.
|
mit WARNUNGEN | WARNING | Bei der Ausführung sind Warnungen aufgetreten. Der Flow wurde trotzdem bis zum Ende ausgeführt. Sie sollten die Warnungen prüfen. Was sind Warnungen? Warnungen sind in der Regel nicht so kritisch wie Fehler. Sie sollten jedoch trotzdem versuchen die Ursache zu beheben, da sie auf Probleme hinweisen, die evtl. zu Fehlern führen können.
|
FEHLER: Limits überschritten | ERROR_SKIP | Während der Ausführung wurde min. eines der Limits überschritten (Flows, Runs, Datensätze oder Traffic). Die Ausführung wurde abgebrochen. |
Wir empfehlen auch die Seite Typische Fehlermeldungen, die viele Details über mögliche Ursachen für Warnungen oder Fehler enthält.
Die Informationen im Eventlog werden nach einigen Tagen (aktuell 10 Tage) automatisch gelöscht. Das ist notwendig, da es sich durch die Summe der Kunden und Flows um enorme Datenmengen handelt und die Systemstabilität sonst negativ beeinflusst.
Papierkorb
Will man Flows oder Projekte löschen, werden diese erst in den Papierkorb verschoben und noch nicht sofort richtig gelöscht.
Zum Papierkorb gelangt man über Mein Konto / Papierkorb. Dort kann man die Flows oder Projekte wiederherstellen oder endgültig löschen.
Damit wird das Risiko minimiert, dass man einen Flow einmal versehentlich löscht.
Andere Flows aufrufen
Es ist auch möglich, einen anderen Flow aus einem Flow heraus auszuführen. Damit kann man Funktionalität auslagern und wiederverwenden.
Dafür gibt es 2 Steps:
- FlowTrigger (ab Starter Paket)
- FlowExecutingStep (ab Plus Paket)
Diese Steps sind in der Konfiguration ähnlich. Man wählt das Projekt und den Flow der verwendet werden soll und konfiguriert daraufhin noch die zu übergebenden Werte.
FlowTrigger Step
- Der FlowTrigger Step führt einen anderen Flow aus (als neuer Run).
- Dieser Run taucht auch im Eventlog auf.
- Nur Flow-Variablen des aufgerufen Flows vom Typ Text-Variable können übergeben werden (keine komplexen Datentype wie z.B. SPREADSHEET).
- Der angetriggerte Flow wird asynchron ausgeführt. Das heißt:
- die Ausführung wird nur "veranlasst", und der auszuführende Flow kommt in die Warteschlange.
- der auszuführende Flow wird zeitnah ausgeführt.
- nachfolgende Steps werden sofort danach ausgeführt.
- Das Verhalten entspricht dem des Buttons.
- Die Rückgabewerte des aufzurufenden Flows sind nicht in nachfolgenden Steps verwendbar.
- Triggert man mehrere Flows damit an, werden diese Runs unabhängig voneinander (evtl. auch parallel) ausgeführt.
Einsatzgebiete:
- zur genaueren Kontrolle zeitlicher Reihenfolgen (z.B. FlowB muss unbedingt nach FlowA ausgeführt werden)
- Logik soll in einen zentralen Flow ausgelagert werden, die nur mit verschiedenen Parametern (nur STRING) angesteuert werden soll.
Flow-in-Flow - Der FlowExecutingStep
- Der FlowExecutingStep führt den anderen aufzurufenden Flow direkt aus (synchron, d.h. so, als ob die Steps des aufzurufenden Flows direkt selbst Teil des aktuellen Flows wären).
- Es wird kein separater Run erzeugt.
- Flow-Variablen des aufgerufenen Flows können als Parameter übergeben werden (im Unterschied zum FlowTrigger sind hier auch komplexe Datentypen wie z.B. SPREADSHEET möglich).
- Der aktuelle Flow-Run wartet bis der aufzurufende Flow komplett ausgeführt wurde.
- Die Rückgabewerte des aufzurufenden Flows sind in nachfolgenden Steps verwendbar.
- Kommt es bei dem aufzurufenden Flow zu einem Fehler, bricht auch der aufrufende Flow ab.
Er fördert sehr stark die Wiederverwendung, da man zentrale Funktionalität in den aufzurufenden Flow auslagern kann, und diesen mit verschiedenen Parameters (Variablen) aufrufen kann.
Einsatzgebiete:
- Logik soll in einen oder mehrere zentrale Flows ausgelagert werden, die mit verschiedenen Parametern angesteuert werden soll
- bei Anpassung der Logik braucht nur der zentrale aufgerufene Flow angepasst werden und nicht viele verschiedene Stellen
Sub-Flow Ansicht für FlowExecutingStep
Bei Verwendung des FlowExecutingStep, ist das direkte Editieren des Ziel-Flows aus dem Aufrufer hinaus möglich.
Das Besondere dabei ist, die Variablen-Übergabe aus dem Aufrufer.
Durch Klick auf Edit-Flow gelangt man in die Sub-Flow-Ansicht. Dabei werden alle Parameter, die der Aufrufer-Flow auch bei einer echten Ausführung an den aufgerufenen Flow übergeben würde, mit übergeben.
Das erleichtert Test und Bearbeiten, da man mit echten Daten arbeiten kann.
Flow-Netzwerk Ansicht
Nutzer, die den FlowExecutingStep oder FlowTrigger verwenden, finden unter Projekte / Flow-Netzwerk eine Ansicht, in der man alle Flows sehen kann, die andere Flows aufrufen, oder aufgerufen werden.
Das macht es einfacher den Überblick zu behalten und die Frage zu beantworten: "Welcher Flow ruft welchen Flow auf? bzw. "Welcher Flow wird von welchem Flow aufgerufen?"