Seitenhierarchie
Zum Ende der Metadaten springen
Zum Anfang der Metadaten

 

 

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:

 


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 hoch laden.
  • 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  Button können Steps zu einem Flow hinzugefügt werden, die man aus einer Liste auswählen kann. Die Liste der verfügbaren Steps ist abhängig von den installierten Add-Ons.
 

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 Symbol kann die Konfiguration eines Steps vorgenommen werden. Zuvor muss allerdings der Flow zur Bearbeitung durch Klick auf den  Button gesperrt werden. 
 
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 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  bedeutet, dass der 2. Step einen Output des 1. Steps als Input benutzt. Diese "Verdrahtung" von Step-Outputs- und Step-Inputs ist ein elementares Konzept bei der Erstellung von Flows.
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 dem vorherigen Step. Wenn dies nicht gewünscht ist, dann kann manuell 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. 

 

Laufzeit Eigenschaften

Laufzeit Eigenschaften sind spezielle Variablen, die dynamische Informationen enthalten, die nur zur Laufzeit des Flows gültig sind. 

 

 

Laufzeit VariableBeschreibung
prop_lastruntimeDer Startzeitpunkt der letzten automatischen Ausführung (Wann startete der letzte Run?)
prop_actualruntimeDie geplante Ausführungszeit des Flows (entspricht der eingestellten Nächsten Ausführung)
current_timestampDer jeweils aktuelle Zeitpunkt beim Start des Flows
prop_intervalminutesDas eingestellte Intervall des Flows
jobnameDer Name des Flows
job_idDie ID des Flows
job_uniquenameEine systemweit eindeutige ID des Flows, die selbst vergeben werden kann und der Short-URL beim URLTrigger (siehe weiter unten) entspricht.
customer_idDie ID ihres Kundenaccounts
customer_nameDer Name ihres Kundenaccounts
flow_run_idDie 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 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

 

Flows automatisieren

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

Jedes mal wenn ein Flow ausgeführt wird, wird ein Run von ihrem monatlichen Kontingent abgezogen. Durch Upgrades können sie Runs dazu buchen, wenn ihr aktuelles Limit nicht ausreichend ist oder durch Flow+ bestimmte Flows mit unbegrenzten Runs ausstatten.

 

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 bzw. letzten Tag des Monats zu planen.
 

 

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

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

 

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. 

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-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 Tirgger 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.
 

 

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.


Ergebnis für runID abrufen

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. 

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)
       
  • 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. 

EingabetypDarstellungBeschreibung
Einzeiliges Textfeldeinfaches Texteingabefeld 
Mehrzeiliges TextfeldEingabefeld für mehrere Zeilen (sog. Textarea) 
Dropdown AuswahlfeldDie Flow-Variable wird aus Auswahl (Dropdown) 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.

Passworteinfaches Textfeld für die Eingabe von sensitiven Informationen wie
Paswörter oder API-Token. Der Wert wird maskiert dargestellt.

 

Durch das Auge-Symbole kann das Passwort bei Bedarf angezeigt werden.

LimitSpezielles 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)

 

 

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 heraus aufrufen können und Variablen übergeben können.  

Datentypen

DatentypBeschreibungBeispiele
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.

 
SPREADSHEETLISTanalog zu SPREADSHEET, aber als Liste 
Datum / ZeitauswahlBei 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.

FILELISTWenn der Aufrufer eine Liste von Dateien übergeben soll, dann können Sie diesen Datentyp wählen. 
OBJECTWenn 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 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ätBeschreibung
optionales Feld (Standard)
  • Die Variable muss vom aufrufenden Flow nicht zwingend gefüllt werden, sondern kann auch leer gelassen werden.
  • Wenn die Variable mit einem Standardwert belegt ist, dann greift dieser bei nicht ausgefüllter Variable des Aufrufers.
Pflichtfeld
  • Die Variable muss zwingend vom Aufrufer ausgefüllt werden.
  • wenn der Aufrufer keinen Wert übergibt, dann wird der Flow mit einer Fehlermeldung fehlschlagen, dass das Pflichtfeld nicht gesetzt ist.

Sichtbarkeit

SichtbarkeitBeschreibung
PUBLIC (Standard)
  • Die Variable kann auch vom Aufrufer gesehen und gesetzt werden.
PRIVATE
  • Die Variable ist nur für den eigenen Flow sichtbar.
  • Aufrufende Flows sehen diese Variable nicht.
  • können nicht per URL-Trigger übergeben werden (siehe FlowVariablen per URL übergeben)
  • Sind vergleichbar mit privaten Variablen in Programmiersprachen und können als Hilfsvariablen genutzt werden.
    • Z.B. wenn man eine Variable limit in mehreren Steps braucht, und man gern eine zentrale Stelle braucht, um diesen Wert zu pflegen,
      aber man vermeiden möchte, dass ein aufrufender Flow diese Variable überschreibt oder überhaupt sieht.


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). 

 

Eventlog


Siehe EventLog.

Dokumentationsansicht

Diese Ansicht stellt eine "druckbare" Version des Flows dar. Diese dient dem Zweck, dass man alle Elemente des Flows auf einen Blick 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:

  1. Rufen Sie ein Projekt auf
  2. Öffnen Sie das Dropdown neben dem Flow erstellen Button
  3. Wählen Sie Flow importieren
  4. 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:

StatusStatus Response (JSON)Beschreibung
GEPLANTSCHEDULEDAutomatisierter oder getriggerter Flow der bei erreichen der Startzeit in die Warteschlange verschoben wird.

in WARTESCHLANGE

QUEUEDDie 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

NEWDer Flow wird gerade ausgeführt.

ÜBERSPRUNGEN

SKIPPEDDie 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.
ERFOLGREICHSUCCESSDer Flow wurde ohne Fehler und ohne Warnungen ausgeführt.
FEHLERERROR

Während der Ausführung gab es einen Fehler. Die Ausführungen wurde abgebrochen.

 

Wichtig: Keine Panik.

  • Sind Benutzername, Passwort und URL korrekt?
    Kontrollieren Sie ob die gewählten Login Daten korrekt eingetragen sind. Ein häufiger Fehler ist u.a. Leerzeichen am Anfang und am Ende der Eingabe. Oft wird auch vergessen, direkt nach dem Installieren von Vorlagen noch die Flow-Variablen anzupassen.
  • Ist das Zielsystem nicht erreichbar?
    Auch das kann vorkommen. Versuchen Sie den Server oder die Webseite des Zielsystems im Browser oder FTP-Server aufzurufen, um zu sehen, ob diese erreichbar ist. Denken Sie daran, dass Schnittstellen und Systeme zu jeder Zeit ausfallen können. Sie sollten dann einfach den Flow erneut ausführen oder bis zur nächsten automatischen Ausführung warten.
  • Sind im Zielsystem alle nötigen Berechtigungen gesetzt?
    Gehen Sie sicher, dass bei Flows die mit der Schnittstelle eines Zielsystems reden, alle benötigten Berechtigung im Zielsystem gesetzt sind.

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 Hinweise, dass etwas nicht stimmt. Sie treten meist auf, wenn es bei der Abarbeitung mehrerer Datensätze zu Problemen kommt. 


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.
  • Haben sich Spaltennamen in der Quelldatei geändert?
    Gehen Sie sicher, dass die Quelldatei die gleichen Spalten besitzt, wie zum Zeitpunkt der Einrichtung des Flows. Evtl. hat sich eine Spaltenbezeichnung geändert oder eine Spalte ist ganz entfernt wurden.
     
  • Haben Sie Ihre Freemarker-Anweisungen überprüft?
    Kontrollieren Sie ob Ihre Freemarker-Anweisungen korrekt sind. Es kann vorkommen, das erst in einer der letzten Zeilen ein Fehler auftritt und somit in der Anzeige des Mappers nicht sichtbar ist. Oft passiert das, wenn Sie vergessen auf leere Werte zu prüfen.
     
  • Haben Sie den korrekten Spaltentrenner und Textqualifier beim Einlesen der Quelldatei gesetzt?
    Es kommt vor, dass wegen eines falschen Delimiter bzw. Qualifier, die Datei ab einer bestimmten Zeile die Spaltenzuordnung durcheinander gebracht wird. Öffnen Sie zur Kontrolle die Quelldatei in einem Texteditor und schauen Sie ob Sie die richtigen Trennzeichen im Flow gewählt haben.

     

  • Datensätze existieren in externem System nicht mehr?
    Hin und wieder kommt es vor, dass z.B. beim Bestandsabgleich Artikelnummern aktualisiert werden sollen, die bereits im fremden System gelöscht wurden. Je nach System kommt es dann zu Fehlermeldungen, die dann als Warnungen resultieren können. Alle anderen Datensätze wurden korrekt verarbeitet, aber bei einigen tauchte dieses Problem auf. Sie sollten das prüfen und Maßnahmen ergreifen (z.B. gelöscht Artikel filtern)
FEHLER: Limits überschrittenERROR_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.

 

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:

 

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. 

Die Werte die man dem aufzurufenden Flow übergeben kann, werden durch dessen Variablen definiert.

Beide Steps sind ähnlich, unterscheiden sich aber in Details, wie genau die aufgerufenen Flows ausgeführt werden. 

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.

 

Der FlowExecuting Step entspricht von der Art her in etwa einem Funktionsaufruf in einer Programmiersprache (synchron).
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?"

  • Keine Stichwörter