Flow ausführen
Flow 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:
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.
Ü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
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.
Intervalle
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
Jedes mal wenn ein Flow ausgeführt wird, wird ein Run erzeugt. Je nach Paket ist die max. Flow-Laufzeit begrenzt (z.B. 30 Minuten), was bei Überschreitung zum Abbruch des Flows führt.
Durch Abrechnung nach Verbrauch oder Flow+ kann man diesen Abbruch verhindern, und Flows länger ausführen.
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
Cron (Expertenmodus)
In diesem erweiterten Modus kann man einen sog. Cron-Ausdruck (auch Crontab) verwenden, um den Zeitpunkt der nächsten Ausführung zu beschreiben. Diese Schreibweise ist bekannt von wiederkehrenden Aufgaben den sog. Cron-Jobs. Damit kann man auch komplexere Szenarien beschreiben wie "an jedem 10. Tag des Monats, um 9Uhr".
Wer diese Ausdrücke nicht per Hand schreiben will, findet dafür auch diverse Generatoren.
Cron-Ausdruck testen
Unter dem Eingabefeld findet man einen Link Cron-Ausdruck testen. Damit erhält man eine Vorschau, welche nächsten Ausführungszeiten sich durch den Cron-Ausdruck ergebeben. Zusätzlich wird auch noch versucht, den Cron-Ausdruck in einem lesbaren Satz zu beschreiben (das klingt manchmal etwas 'holprig' und liegt an der verwendeten Bibliothek. Sollte aber nichtsdestotrotz hilfreich sein).
Mehrere Cron-Ausdrücke
Mehrere Cron-Ausdrücke (sog. Multi-Cron Ausdrücke) können durch ein doppeltes Pipe-Zeichen getrennt (||
) angegeben werden.
Beispiel Anforderung:
- jeden Montag 10:00 Uhr (
00 10 * * 1
) - und am 31.12. um 23:59 zusätzlich (
59 23 31 12 *
)
Das kann als Multi-Cron-Ausdruck durch ||
getrennt angegeben werden:
00 10 * * 1||59 23 31 12 *
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.
Beispiel URL
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. Sicherheitshinweis: Verwenden Sie immer einen Sicherheits-Token. 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 | URL Trigger deaktiviert - in diesem Modus kann der Flow nicht über die URL aufgerufen werden. JSON - beim Aufruf erhält der Aufrufende eine Antwort im JSON-Format. Diese Anwort enthält u.a. die RunID. Diese RunID kann in einer weiteren URL (URL for Status Check) genutzt werden, um den Status bzw. Fortschritt der Flowausführung zu prüfen. Redirect - Anstatt einer JSON Antwort können Sie eine URL angeben, auf die ein Browser weitergeleitet werden soll. Es gibt eine URL sowohl für den Erfolgsfall (SUCCESS) oder Fehlerfall (ERROR). Diese Einstellung ist nur sinnvoll, wenn die Flow URL durch einen Browser aufgerufen wird bzw. durch einen Client, welcher HTTP-Redirects verarbeiten kann. Ein Einsatzbeispiel wäre, dass man den Besucher im Rahmen des Shop-Checkouts nach Bestellabschluss auf die Flow-URL schickt. Dadurch wird der Flow angetriggert. Mit Hilfe der Redirect-URL-SUCCESS kann man dann den Nutzer gleich wieder zurück in den Shop schicken. Es besteht die Möglichkeit die Flow-RunID an die Redirect-URL anzuhängen, um diesem dem Shopsystem mitzuteilen. Damit wäre das Shopsystem anschließend in der Lage über die URL for Status-Check den Fortschritt der Flowausführung abzufragen. |
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=example.com&delayMinutes=5
(startet den Flow 5 Minuten nach Aufruf der URL)
- Beispiel URL:
- overrideActualRuntime: Wird dieser Parameter mit "true" übergeben, wird die Laufzeit Eigenschaft "prop_actualruntime" mit dem Zeitpunkt des URL Aufrufs überschrieben (Default: false).
- Beispiel URL:
https://apps.synesty.com/studio/api/flow/v1?id=websiteabrufen&t=123&host=example.com&overrideActualRuntime=true
- Beispiel URL:
- 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=example.com&overrideLastRuntime=true
- Beispiel URL:
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.