Spezial Steps - Steps für außergewöhnliche Aufgaben

Spezial Steps - Steps für außergewöhnliche Aufgaben

Steps für außergewöhnliche Aufgaben

Synesty Studio verfügt inzwischen über eine Vielzahl verschiedenster Steps. Der Großteil der Steps stellt Funktionen für den Export und Import von Daten aus verschiedenen, externen Systemen (Lieferanten, CRM-, ERP- und Shopsysteme etc.) bereit. Aber auch für die Weiterverarbeitung der Daten innerhalb eines Flows stehen zahlreiche bekannte (z.B. SpreadsheetMapper) und weniger bekannte Steps zur Verfügung. Die unbekannteren Steps stellen spezielle Funktionalitäten zur Verfügung, die im Alltag nicht häufig benötigt werden, aber dennoch sehr hilfreich sein können. Einige dieser "Spezial-Steps" sollen in diesem Artikel vorgestellt und deren Funktion anhand von Beispielen aus der Praxis erläutert werden.

StopFlowIF

Dieser Step kann die Flow-Ausführung (Flow-Run) in verschiedenen Status (_FEHLER/ERROR, WARNUNG/WARNING, ERFOLGREICH/SUCCESS_) beenden, wenn eine bestimmte Bedingung (condition) zutrifft. Als Bedingung kann ein Ausdruck in Freemarker Syntax genutzt werden. Dabei können auch die Ergebnisse vorheriger Steps als Bedingung verwendet werden. Über das "Plus" Zeichen am condition Feld erhalten sie einige vorbereitete Vorschläge für mögliche Bedingungen.

Spezial Steps: StopFlowIF

Das Auswahl-Feld actions entscheidet dabei über das genaue Verhalten des Steps:

  • Fehler/Error: Der Flow wird an der Position des StopFlowIF Steps im Status FEHLER/ERROR beendet, wenn die Bedingung zutrifft
  • Silent Success: Diese Action beendet den Flow im Status ERFOLGREICH/SUCCESS, wenn die angegebene Bedingung zutrifft
  • Stop with Warning: Stoppt den Flow mit einer Warnung an der Position des StopFlowIF Steps
  • Continue with Warning: Der Flow wird trotz zutreffender Bedingung fortgesetzt, aber es wird eine Warnung im Eventlog des Flow-Runs geloggt. Die Warnung führt auch dazu, dass der komplette Flow-Run nach der vollständigen Ausführung im Status WARNUNG/WARNING.

Tipp für die Auswahl der action: Entscheidend für die Auswahl der action ist, wann es für sie wichtig ist informiert zu werden. Beachten sie dabei auch ihre persönlichen Einstellungen für Benachrichtigungen unter Mein Konto - Einstellungen. Fehler/Error sollten sie z.B. immer dann verwendet werden, wenn ein sofortiges bzw. schnelles Eingreifen notwendig ist (z.B. fehlende Datei auf einem FTP Server). Die action Stiller Erfolg kann hingegen immer dann verwendet werden, wenn kein wirklicher Fehler vorliegt, aber z.B. ein leeres Ergebnis eines vorherigen Steps zu einem Fehler in weiteren Verlauf des Flows führt.

Anwendungsbeispiele:

  • Flow-Verarbeitung beenden, wenn keine neue Bestellung im Quellsystem vorhanden ist: Sehr häufig werden Bestellungen in einem bestimmten Status oder gefiltert nach Datum aus Systemen abgerufen. Im Beispiel werden Bestellungen aus Shopify im Status "open" abgerufen. Liegt keine neue Bestellung in diesem Status vor, wird der Flow-Run beendet. In diesem Fall bietet sich die action Stiller Erfolg des StopFlowIF Steps an, da in diesem Fall kein Fehler vorliegt.

Spezial Steps StopFlowIF Bedingung

  • Fehler ausgeben und Flow beenden, wenn Datei eine bestimmte Dateigröße unterschreitet: Immer wenn ein Austausch Datei-basiert erfolgt, besteht die Gefahr von (noch) nicht vollständig geschriebenen Dateien. Werden diese unvollständigen Dateien verwendet, kann es in manchen Fällen/Flows zu großen Problemen führen. Beispielsweise können fehlende Artikel in einer CSV Datei inaktiv gesetzt oder sogar im Zielsystem gelöscht werden. Um dieses Fehlerquelle zu vermeiden kann der StopFlowIF Step eingesetzt werden um die Dateigröße vor der Weiterverarbeitung zu prüfen und den Flow bei einer unerwarteten Dateigröße zu beenden. Im Beispiel wird eine Datei von einem FTP Server heruntergeladen. Der StopFlowIF Step prüft in der hinterlegten Bedingung (condition), ob die heruntergeladene Datei kleiner als 5 MB ist. Sollte diese Bedingung zutreffen, wird der Flow-Run mit der Fehlermeldung "Datei auf dem FTP zu klein, bitte prüfen" beendet.

Spezial Steps StopFlowIF Abbruchbedingung

Link zum Handbuch:

SpreadsheetMultiColumnFunction

Der SpreadsheetMapper Step stellt eine Vielzahl Funktionen für die Ver- und Bearbeitung der Inhalte eines Spreadsheets zur Verfügung. Ab und an kommt es vor, dass eine spezielle Funktion auf viele Spalten angewendet werden soll. In diesem Fall ist die Konfiguration in jeder einzelnen Spalte des SpreadsheetMapper Steps sehr aufwendig. Um den Zeitaufwand bei der Konfiguration zu verringern kann der SpreadsheetMultiColumnFunction Step eingesetzt werden.  Die Funktionen die auf mehrere Spalten (columns) angewendet werden können sind:

  • Search and Replace (Standardwert) - klassisches Suchen / Ersetzen mit und ohne reguläre Ausdrücke
  • Trim spaces and linebreaks - Entfernung von Zeilenumbrüchen und Leerzeilen
  • Substring (Teilzeichenketten z.B. die ersten 80 Zeichen)
  • Scripting (Freemarker) - Nutzung von Freemarker Scripting wie im Wert-Feld im SpreadsheetMapper

Tipp: Die Spalten-Titel im Feld columns können auch Wildcards (* für eine beliebige Anzahl Zeichen, sowie ? für kein oder ein einzelnes Zeichen) enthalten. Das erleichtert die Auswahl von Spalten mit ähnlichen Titeln. Zum Beispiel können die Spalten image1, image2, image3 und image4 über den Wert image? im Feld columns ausgewählt werden. Über das Auswahlfeld mode können sie zusätzlich konfigurieren, ob die ausgewählte Funktion auf zutreffende Spalten oder allen anderen Spalten angewendet werden soll.

Anwendungsbeispiele:

  • Suchen und Ersetzen des Hostnamens in Bild-Url Spalten: Eine häufige Anforderung ist die Anpassung von Bild-Url Spalten, weil beispielsweise der Hostname für einen Export in diesen Spalten (image1 - 10) durch einen anderen ersetzt werden soll. Diesen Aufgabe lässt sich mit dem SpreadsheetMultiColumnFunction Step sehr schnell und einfach umsetzten. Als Funktion muss in diesem Fall Suchen & Ersetzen ausgewählt werden. Im Feld columns kann der gleiche Teil des Spaltennamens mit Wildcard (*) zu "image*" kombiniert werden. Abschließend muss noch der zu suchende Wert im Feld searchPattern und der Wert für die Ersetzung (replacement) gefüllt werden. Das Ergebnis Spreadsheet enthält die Bild-Spalten mit dem ersetzten Wert, sowie alle Spalten die nicht über das Feld columns selektiert wurden. Konfiguration des Steps:

Spezial Steps: SpreadsheetMultiColumnFunction

Das Input-Spreadsheet:

Das Ergebnis-Spreadsheet:

Link zum Handbuch:

SpreadsheetSplitter Step

Der SpreadsheetSplitter Step kann dafür genutzt werden, um einen Spreadsheet in eine Liste von Spreadsheets (SPREADSHEETLIST) zu teilen. In Kombination mit dem SpreadsheetCSVWriter oder TextHTMLWriterMultiOutput lassen sich auf einfache Weise mehrere, aufgeteilte HTML, CSV, XML, JSON oder sonstige Dateien aus einem Input Spreadsheet erzeugen. Für die Aufteilung stehen zwei verschiedene Modi (Auswahl "mode") zur Verfügung:

  • Geteilt nach Anzahl Zeilen im Ergebnis: Das Input Spreadsheet wird in einzelne Spreadsheets der ausgewählten Anzahl von Zeilen (Feld "numberRowsPerSpreadsheet") aufgeteilt. Dieser Modus kann z.B. immer dann verwendet werden, wenn Limitierungen in der Anzahl der Zeilen im Zielsystem existieren.
  • Aufteilen pro Spaltenwert: Dieser Modus teilt das Input Spreadsheet nach dem Wert einer Spalte. Damit ist es z.B. möglich einzelne Spreadsheets pro Lieferant, Kategorie, Hersteller, Bestellstatus oder Versandart zu erzeugen.

Tipp: Die Umwandlung (Mapping) der Daten sollte am besten immer vor dem SpreadsheetSplitter Step erfolgen. Das Ergebnis (SPREADSHEETLIST) des Steps kann nicht mit einem SpreadsheetMapper weiterverarbeitet werden.

Anwendungsbeispiel:

  • CSV-Artikelexport pro Kategorie: Um einen Katalogexport pro Kategorie zu erstellen, müssen zunächst die Produktdaten aus dem Quellsystem(z.B. plentymarkets) abgerufen werden. Anschließend wird der SpreadsheetMapper Step dafür verwendet, die Daten in das gewünschte Zielformat zu bringen. Nach der Umwandlung durch den SpreadsheetMapper Step kann das Spreadsheet durch den SpreadsheetSplitter Step in die einzelnen Spreadsheets pro Kategorie aufgeteilt werden. Dafür muss der Modus "Aufteilen nach Spaltenwert" und anschließend der Spaltentitel(im Beispiel "Category1_Name") für die Teilung ausgewählt werden. Als Ergebnis steht eine Liste von Spreadsheets pro Kategorie zur Verfügung. Diese Liste kann anschließend durch den SpreadsheetCSVWriter in eine Liste von CSV Dateien umgewandelt und z.B. auf einem FTP Server abgelegt werden.

Spezial Steps: SpreadsheetSplitter Step

Link zum Handbuch:

TextHTMLWriterMultiOutput

Der TextHTMLWriterMultiOutput stellt eine Erweiterung des TextHTMLWriter Steps dar. Im Gegensatz zum TextHTMLWriter kann der TextHTMLWriterMultiOutput direkt Dateien bzw. Dateilisten erzeugen.

Anwendungsbeispiele:

  • Sehr häufig soll eine Datei (XML, JSON, ...) pro Bestellung erzeugt werden. Ein Beispiel dafür finden sie in diesem Cookbook.
  • Ein weiteres Anwendungsbeispiel ist die Erzeugung eines Artikelkatalogs mit einer HTML Datei pro Kategorie. Dafür kann das Anwendungsbeispiel des SpreadsheetSplitter Step mit dem TextHTMLWriterMultiOutput Step erweitert werden. Mittels der Freemarker LIST Anweisung, kann für jedes Spreadsheet des SpreadsheetSplitter Ergebnisses der Inhalt für eine Datei erzeugt werden. Der Inhalt der Datei wird dabei innerhalb des <#assign fileContent></#assign> Blocks erzeugt und besteht im wesentlich aus einer einfachen HTML Tabelle mit zwei Spalten (Artikelnummer und Herstellername). Die Template Funktion ${output(fileContent, (category+".html"), "UTF-8")} am Ende der Freemarker list-Anweisung sorgt dafür, dass eine Datei mit diesem Inhalt (fileContent) und dem Dateinamen (category+".html") erstellt wird.

Link zum Handbuch:

SpreadsheetColumnValueSplit2Rows

Wie der Name dieses Steps schon verrät, können aus Werten einer Spalte eines Spreadsheets neue Zeilen erzeugt werden. Der Inhalt der ausgewählten Spalte (splitColumn) wird dabei mittels des angegebenen Trennzeichens (delimiter) in einzelne Werte aufgeteilt. Für jeden dieser Werte wird im Ergebnis-Spreadsheet des Steps eine neue Zeile erzeugt. Die Werte der anderen Spalten bleiben dabei erhalten.

Anwendungsbeispiele:

Dieser Step wird sehr oft für die Erzeugung von Variantenzeilen verwendet. In der Praxis kommt es vor, dass in den Quelldaten die Varianten-Ausprägungen (z.B. Größen) eines Artikels nur Komma-separiert in einer Spalte vorhanden sind. Für die Anlage der Varianten im Zielsystem wird aber eine Zeile pro Variante benötigt. In diesem Fall kann der SpreadsheetColumnValueSplit2Rows Step alle Werte der Spalte Größen (splitColumn) in neue Zeilen auftrennen und die Variationen können importiert werden.

Spezial Steps: SpreadsheetColumnValueSplit2Rows

Konfiguration des Steps:

Das Input-Spreadsheet:

Das Ergebnis-Spreadsheet:

Link zum Handbuch:

Fazit

Synesty Studio bietet eine Vielzahl verschiedener Steps für die Umwandlung, Bearbeitung und andere Aufgaben an. Um die Funktionsweise und die Ergebnisse der Steps kennen zu lernen, bietet es sich an, die Steps an einfachen Beispielen auszuprobieren. Alle im Artikel genannten Flowbeispiele finden sie als Projektexport im ZIP Format zum herunterladen und ausprobieren. Viel Spaß dabei!

Bereit um loszulegen?

Verwandte Beiträge


Aktualisiert am August 20, 2019