Release Notes 2020-06

Wir freuen uns, Ihnen im Juni 2020 wieder neue Synesty Studio Release-Notes zu präsentieren.

Release Notes als Video

Die Release Notes gibt es auch als Videoopen in new window mit weiteren Hintergrundinformationen zum ansehen.

Bessere Übersicht in Flows mit Stepgruppen

Eines der umfangreichsten Projekte der letzten Monate sind die neuen Stepgruppen. Diese erlauben den Flow in logische Einheiten oder Gruppen zu zerlegen und darin die Steps einzusortieren. Beispielsweise könnte ein Flow folgende Gruppen haben:

  • Daten herunterladen
  • Daten aufbereiten und Filter
  • Eigentliche Verarbeitung
  • Zusammenfassung und Fehlerbehandlung

Die Gruppen können ein- und ausgeklappt, mit Beschreibungstexten versehen, und können auch pausiert werden. Letzteres ist beim Testen und Entwickeln sehr hilfreich.

Wozu braucht man Stepgruppen?

Das wichtigste Argument für Stepgruppen ist die Übersicht. Viele Kunden haben Flows mit mehr als 20 Steps - da kann es auch schnell unübersichtlich werden. Einige Steps bilden jedoch logische Einheiten, aber bisher wurden alle Steps gleichwertig angezeigt bzw. man konnte max. über die Farbe eine leichte optische Gruppierung realisieren. Durch Stepgruppen ist das jetzt expliziter. Ausserdem sind Stepgruppen die Grundlage für geplante Features in der Zukunft wie z.B. IF/ELSE-Logik für die Flow-Ausführung sowie bessere Möglichkeiten für das Error-Handling.

Nähere Erläuterungen zu Stepgruppen finden Sie im Handbuch.

Neue Navigation und Workspace-Übersicht

Wir haben in den letzten Wochen die Navigation im Backend überarbeitet.

Hier eine Vorschau der wichtigsten Änderungen:

Was sind die Änderungen?

Vertikale und horizontale Navigation

Bisher hatte Synesty nur eine horizontale Navigation. Diese haben wir jetzt hauptsächlich nach links als vertikale Navigation umgezogen. D.h. links befinden sich dann alle Dinge, die einen Bezug zu einem Workspace haben.

Die obere Navigation rechts ist weiterhin der Mein Konto Bereich mit globalen Einstellungen.

Die Navigation links kann ein- und ausgeklappt werden.

Die obere Navigation beinhaltet eine prominentere Suche und den neuen Workspace-Umschalter.

Dieser erlaubt es den Workspace von überall aus zu wechseln. Das neue ist auch, dass man bei einem Workspace-Wechsel auf Listenansichten (z.B. Projektliste) auf der gleichen Seite im anderen Workspace landet. Das macht das Arbeiten mit mehreren Workspaces flüssiger.

Die neue Workspace-Übersicht beinhaltet die Workspace-Verwaltung, die bisher unter Mein Konto / Einstellungen zu finden war. Ausserdem findet sich dort einen neue "Alle Flows"-Ansicht, die Flows aller für den Nutzer erlaubten Workspaces anzeigt (also Workspace-übergreifend).

Warum haben wir das gemacht?

Wir versprechen uns von dieser neuen Aufteilung der Navigation folgendes:

  • mehr Platz bzw. bessere Ausnutzung des Platzes
  • eine logischere Navigation (Separierung von  Workspace-bezogenen Menüpunkten und globalen Einstellungen)
  • bessere Platzierung der Suche (die soll in Zukunft ausgebaut werden)

Flows und deren Konfiguration überwachen

Der neue Step FlowListopen in new window gibt alle Flows und deren Konfiguration des aktuellen Workspace als Spreadsheet aus.

Wozu braucht man das?

Damit kann man sich z.B. einen eigenen Alarm bauen, falls ein Flow "falsch" konfiguriert wurde. 
Größere Organisationen haben oft sehr viele und komplexe Flows in Ihrem Synesty Account. Da kann es auch mal zu oft versehentlichen Fehlkonfigurationen kommen wie z.B.

  • eine Limit Variable wurde zum Testen auf 1 gesetzt, muss aber eigentlich auf unbegrenzt stehen
  • Flow-Variablen wurden nicht konsistent benannt
  • Zeitplanung wurde testweise deaktiviert, muss aber eigentlich aktiviert sein

Wünschenswert wäre, wenn man die Flow-Konfiguration überwachen könnte, und z.B. eine E-Mail erhält, wenn die Konfiguration gegen bestimmte eigene Regeln verstößt. Mit dem FlowList Step kann man genau das machen. In Kombination mit dem Filter oder StopFlowIf Step kann man sich seine eigenes Flow-Konfigurationsmonitoring bauen.

Ein detailiertes Beispiel findet man in diesem Cookbookopen in new window.

Spalten eines Spreadsheets dynamisch umbenennen

Mit dem neuen Step ColumnRenamer kann man sehr schnell alle Spalten in einem Spreadsheet nach einer eigenen Regel umbennen.Beispielsweise lassen sich alle Spalten mit einem Prefix versehen, wie folgende Beispielkonfiguration zeigt:

Die Logik kann durch den Einsatz von Scripting mit Freemarkeropen in new window noch weiter angepasst werden.
Beispielsweise wäre es vorstellbar auch das aktuelle Datum oder den aktuellen Monat in Spaltennamen einzufügen oder gar WENN/DANN-Logik anzuwenden.
Sicherlich ein Step für Spezialfälle, aber in diesen Fällen sehr nützlich.

Eigene wiederverwendbare Funktionen mit Snippets

Snippets (engl. für "Schnippsel" und angelehnt an "Code-Schnippsel) sind eine neue Möglichkeit in Synesty eigene Funktionen zu erstellen, die man zentral pflegt und an verschiedenen Stellen verwenden kann. Dabei handelt es sich um Freemarker-Funktionen und Macros.

**Wann braucht man das?**Beim Erstellen von Flows kommt man in die Situation, dass man bestimmte Logiken oder Freemarker-Scripts immer und immer wieder braucht.
Bisher musste man das entsprechende Freemarker-Skript dann immer wieder per Copy/Paste an die entsprechenden Stellen kopieren. 
Da kommt schnell der Wunsch auf, dass man das irgendwie an eine zentrale Stelle auslagern kann.

Diese neue zentrale Stelle sind die Snippets. Snippets

Ein komplettes Beispiel, wie man Snippets für die Berechnung der Umsatzsteuer / VAT einsetzen könnte, lesen Sie in diesem Blog-Beitragopen in new window.
Das Handbuch zu Snippetsopen in new window enthält weitere Informationen.

Dateiupload per HTTP mit dem SpreadsheetUrlDownload

Der SpreadsheetURLDownloadopen in new window wurde jetzt um eine Möglichkeit erweitert, eine Datei pro Request mitzuschicken. Diese Funktion gab es bisher schon im URLDownloadopen in new window und APICallopen in new window Step. 
Dabei unterscheidet man zwei Arten, wie Dateien in einem HTTP-Request übertragen werden können:

  1. Direkt binär über einen Form-Multipart Upload
  2. als Base64-String im RequestBody

Für Variante 1 gibt es jetzt 3 neue Optionen: filesToUpload, fileNameInList und fileParameterName.

Dadurch wird folgender HTTP-Multipart-Request erzeugt.

Wann braucht man das?

Es kommt jetzt auf die Art der API an, die überhaupt diese Form des HTTP-Requests für Dateiupload erwartet. Ein Beispiel in einem vergangenen Projekt war die Lexoffice REST-API zur Übermittlung von Belegenopen in new window.

Für Variante 2 gibt es eine neue Template Funktion fileToBase64open in new window. Diese wandelt eine Datei in einen BASE64 String und ann auch mit FILELIST umgehen und eine einzelne Datei anhand des Names selektieren. Beispiel:

# Einzelne Datei in Base64 umwandeln. FILEOBJECT könnte z.B. das Ergebnis aus einem FTPSingleFileDownload oder URLDownload Step sein
${fileToBase64(FILEOBJECT)}

# Einzelne Datei aus eine Dateiliste in Base64 umwandeln. Hier wird die Datei invoice2.pdf aus der Dateiliste ausgewählt. Die Liste könnte z.B. von einem FTPDownload kommen oder eine entpackten ZIP-Datei mit Rechnungen.
${fileToBase64(FILELIST, "invoice2.pdf")} 

Wann braucht man das?

Auch hier kommt es wieder auf die API an. Die Mailjet API zum Versenden von E-Mail-Anhängenopen in new window erwartet z.B. jeden Dateianhang als Base64 String.

"Attachments": [
  {
        "ContentType": "text/plain",
        "Filename": "test.txt",
        "Base64Content": "VGhpcyBpcyB5b3VyIGF0dGFjaGVkIGZpbGUhISEK"
  }
]

Zum Handbuchopen in new window für Dateiupload per SpreadsheetURLDownload.

Neues im plentymarkets Add-On

Neues im Shopware Add-On

Shopware 6:

Shopware 5:

Amazon Vendor Dropshipping

Shopify Add-On

shopifyGetOrdersopen in new window: Das Feld *note_attributes *welches bisher als JSON-String ausgegeben wurde, wird jetzt als sog. Map ausgegeben. 

Das vereinfacht die Weiterverarbeitung z.B. mit der Template-Funktion parseMap()open in new window:

${parseMap(note_attributes,"=",",").at("advisor")}

Sonstiges

  • Backend-Performance: Die Geschwindigkeit beim Arbeiten mit dem Flow-Editor und der Step-Suche wurde sehr optimiert. Ausserdem werden Bilder jetzt "lazy" nachgeladen wenn sie in den sichtbaren Bereich kommen. Alles zusammen sollte sich allem bei komplexen Flows positiv durch weniger Wartezeit und flüssigeres Arbeiten bemerkbar machen.
  • Step ExcelSheetUpdateopen in new window: Man kann jetzt Tabellenblätter / Tabs anhand des Namens auswählen. Bisher war nur der Index des Tabellenblatts möglich
  • Mapperopen in new window: Spaltentitel wie bei Excel A-Z, AA-AZ usw. Dies war ein Kundenwunsch, der die Kommunikation im Team vereinfacht, da dort meist mit den Spaltenkurzbezeichnungen handtiert wird ("Schau mal in Spalte L, da ist der Wert leer..." statt "Schau mal in Spalte "Preis"...). Das gleich kommt in den nächsten Wochen auch noch in der Step-Vorschau. Dies dauert jedoch aufgrund eines Umbaus in dem Bereich noch etwas.
  • Neue Freemarker Template Funktionen: deduplicate() und toNumber() .
    • Mit deduplicate() kann man Duplikate aus Listen entfernen. z.B. gibt ${deduplicate([2,3,2,1,1,4,5])!} den Wert [2,3,1,4,5] aus. Die doppelte "1" wurde entfernt.
    • toNumber() prüft, ob ein Wert eine Zahl ist und gibt sie oder einen vordefinierten Wert aus. Ist der vordefinierten Wert numerisch, wird er als Nummer ausgegeben. Der Dezimaltrenner kann als 3. Parameter übergeben werden (Default ist ".").