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 Paketopen in new window)

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+open in new window kann man diesen Abbruch verhindern, und Flows länger ausführen.

Individuelle Startzeiten

Ab dem Plus Paketopen in new window 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 Paketopen in new window oder mit Flow+open in new window) 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 Crontabopen in new window) 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 Generatorenopen in new window.

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-Paketopen in new window 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.

EinstellungBeschreibung
URLEine Vorschau der URL, die aufgerufen werden kann.
Short-URLSie 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-TokenEine 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 ModeURL 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 Mappingsiehe 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 CodeBedeutungWie sollte Ihr HTTP-Client reagieren
HTTP 200 SUCCESSRequest erfolgreich angenommen und in Warteschlange gestellt.Alles gut. Keine bestimmte Reaktion erforderlich.
HTTP 404 NOT_FOUNDFlow (Short-URL) ist falsch oder existiert nicht mehr bzw. Flow wurde gelöscht.Die Anfragen können hiermit abgebrochen werden.
HTTP 403 FORBIDDENDer 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 ERRORTemporä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 Webhooksopen in new window 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.deopen in new window (statt vorher synesty.comopen in new window).

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:

Flow+ für unbegrenzte Anzahl Runs

Durch den Kauf eines Flow+open in new window 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 Paketopen in new window).
  • 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.