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 Video 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 FlowList 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 Cookbook.
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 Freemarker 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-Beitrag.
Das Handbuch zu Snippets enthält weitere Informationen.
Dateiupload per HTTP mit dem SpreadsheetUrlDownload
Der SpreadsheetURLDownload wurde jetzt um eine Möglichkeit erweitert, eine Datei pro Request mitzuschicken. Diese Funktion gab es bisher schon im URLDownload und APICall Step.
Dabei unterscheidet man zwei Arten, wie Dateien in einem HTTP-Request übertragen werden können:
- Direkt binär über einen Form-Multipart Upload
- 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 Belegen.
Für Variante 2 gibt es eine neue Template Funktion fileToBase64. 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ängen erwartet z.B. jeden Dateianhang als Base64 String.
"Attachments": [
{
"ContentType": "text/plain",
"Filename": "test.txt",
"Base64Content": "VGhpcyBpcyB5b3VyIGF0dGFjaGVkIGZpbGUhISEK"
}
]
Zum Handbuch für Dateiupload per SpreadsheetURLDownload.
Neues im plentymarkets Add-On
- PlentySearchOrders: Der Step gibt jetzt auch die IDs der vorhandenen Dokumente (DocumentIDs) aus. Außerdem kann jetzt nach PaymentStatus und ShippingProfileID sowie komma-getrennt nach mehreren Auftragsstatus filtern (bisher ging nur ein Bereich von-bis).
- PlentyGetProperties: Es wird jetzt die Beschreibung der Eigenschaft mit ausgegeben
- PlentyGetVariations: Es kann jetzt nach Marktplatz (referrerId) gefilterter werden. Dieser Filter wird jetzt auch als Badge am Step angezeigt.
- PlentyGetVariations: Im Hintergrund werden jetzt Batch-Calls beim Abruf der Artikel gemacht. Dadurch werden API-Calls gespart und der Abruf sollten schneller gehen und Traffic sparen.
- PlentyGetReorders: Die Lager ID (Warehouse ID) wurde dem Ergebnis hinzugefügt
- Neuer Step: PlentySetBookReorderItems: Dieser Step erstellt und bucht Warenbewegungen für Positionen einer Nachbestellung.
Neues im Shopware Add-On
Shopware 6:
- Neuer Step für Shopware 6, ShopwareAddProducts: Ein neuer Step für den Import von Produkten (Einzelartikel) zu Shopware 6 wurde implementiert
- ShopwareSearchOrders: Die ID der Zahlungsart (TransactionsPaymentMethodId) und der Versandart (DeliveriesShippingMethodId) wurden im Ergebnis hinzugefügt
Shopware 5:
- ShopwareAddOrders: Im vorgefertigten Datastore-Schema für die Kopfdaten der Bestellung wurden die Freitextfelder für Rechnungs- und Lieferadresse hinzugefügt (billingText1-6 bzw. shippingText1-6)
- ShopwareUpdateOrders: Es ist jetzt möglich zusätzliche (eigene) Freitextfelder an einer Bestellung zu aktualisieren
- ShopwareSearchOrders: Neue Spalten mit Informationen zu den vorhandenen Dokumenten der Bestellungen (DocumentNames, DocumentAmounts, DocumentDates, DocumentHashes, DocumentIDs) sind jetzt im Ergebnis verfügbar
- ShopwareGetProducts: Eine neue Spalte (TranslatedConfiguratorOptions) mit den übersetzten Werten der Varianten Optionen wurde im Ergebnis hinzugefügt
- ShopwareSetArticleTranslations: Der Step ermöglicht es jetzt zusätzliche Artikel Freittextfelder zu übersetzen
Amazon Vendor Dropshipping
- Amazon Direct Fulfillment / DropShip EDI ORDER & ORDRSP: Es wurden zwei neue Steps im BETA Addon zur Verfügung gestellt, die es ermöglichen die EDI Nachrichten ORDER und ORDRSP jetzt auch für Amazon Dropship bzw. Direct Fulfillment zu integrieren.
- VendorCentralEDIReadSalesDataReport: Die Werte aus dem PIA Segment (Artikelnummer) werden jetzt in extra Spalten im Ergebnis ausgegeben
Shopify Add-On
shopifyGetOrders: 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():
${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 ExcelSheetUpdate: Man kann jetzt Tabellenblätter / Tabs anhand des Namens auswählen. Bisher war nur der Index des Tabellenblatts möglich
- Mapper: 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 ".").