Eigene Funktionen mit Snippets erstellen

….oder wie Frühjahrsputz im Synesty Studio funktioniert

Nahezu immer, wenn ich ein Projekt bearbeite, ende ich damit, Codezeilen aus dem Mapper in andere Spalten zu kopieren. Manchmal sogar in andere Flows. Das wird schnell unübersichtlich und mancher hat sich da schon gewünscht, den Freemarker Code irgendwie übersichtlich an eine zentrale Stelle auszulagern. Ein neues Feature macht es euch nun möglich – Snippets. Hier können fortgeschrittene Nutzer nun wiederverwendbare Code Snippets erstellen, die an jeder Stelle, bei der Freemarker Code zum Einsatz kommt, wiederverwendet werden können. Klingt interessant? Dann schauen wir doch mal kurz rein!

Entsprungen ist auch dieses Feature der Idee einer unserer Partner (wie man Partner werden kann -> hier lang). Die Bearbeitung von Spreadsheets hat bisher die Möglichkeit geboten, Daten auf Spaltenebene zu bearbeiten. Dabei war eine Bearbeitung aber eben nur pro Spalte möglich. Für fortgeschrittene Nutzer, die komplexere Transformationen benötigen, gibt es zudem die Möglichkeit Freemarker Codeblöcke zu schreiben. Hatte man nun einen Codeblock der auf mehrere Spalten anzuwenden war geschrieben, musste dieser in jede einzelne Spalte kopiert werden.

Mehr Übersicht – Zeit und Nerven sparen

Das kann schnell unübersichtlich werden. Insbesondere, wenn daran Anpassungen durchgeführt werden, wird es schnell knifflig und benötigt konzentrierte Sisyphos Arbeit, um die jeweiligen Änderungen auf die anderen Spalten zu übertragen. Ganz zu Schweigen vom Schmerz bei der Übertragung der Methoden in andere Projekte.

Das neue Snippets Feature ermöglicht es nun, zentral Freemarker Methoden im Workspace (oder auch Makros!) zu erstellen ohne dass einem der Überblick verloren geht. Alle Änderungen erfolgen an einer Stelle im Workspace. Die Änderungen sind sofort in allen Bereichen zu sehen, in denen das Snippet Anwendung findet.

Zeit zum Code aufräumen

Zu den Snippets gelangt man über die neue Navigationsleiste an der linken Seite. Mit Klick auf Neues Snippet erstellen zeigt sich dann die Ansicht, die an die Flow Ansicht erinnert. Links befindet sich eine schnelle Übersicht und rechts die Bearbeitungsansicht der Snippets. 

 

Sobald wir ein Snippet erstellt haben, können wir dieses an allen Enden im Studio finden, wo sich der Schraubenschlüssel befindet, z.B. im SpreadSheetMapper. Zusätzlich zu den bisher bekannten Reitern gibt es nach Erstellung des ersten Snippets dort einen neuen Tab. Das Einfügen der Methode erfolgt, wie gewohnt mit Klick auf das (+) an der Methode.

 

addVat – Ein Fallbeispiel

Erstellen wir einmal eine simple Methode zur Berechnung der Mehrwehrtsteuer. Die Methode nennen wir addVat. Unserer Methode definieren wir zwei Parameter, einmal den ISO Code des Landes iso_code und den Nettobetrag des Artikels net_value

Beispiele und Tests

Jetzt können wir unsere Beispiele definieren. Nehmen wir z.B. drei Ländercodes: DE für Deutschland, SV für Schweden und EE für Estland. Für Deutschland existiert eine gewöhnliche MwSt. von 19%, für Schweden sind es 25% und für Estland 20%. Das Ganze sähe also folgendermaßen aus.

Um Methoden (und Makros) später im Flow noch unterscheiden zu können, haben die eigenen Snippets von uns den Namespace Präfix my erhalten. Eine Methode wird also in Freemarker Syntax mit ${my.methodenName(parameter)} aufgerufen. Nach dem Sichern wird unser erwarteter Output, wie im Beispiel zu sehen, rot. Das liegt daran, dass Beispiele gleichzeitig auch als Tests unseres Snippets fungieren. Dieser Test schlägt nun fehl, da wir die Input Parameter angepasst haben und unser Hello World nicht mehr die entsprechend korrekte Ausgabe liefert. 

Klicken wir also in den Snippetbereich und passen unseren Code im Codeeditor an. Wichtig ist hier, dass nur der Methodenrumpf inklusive return Statement deklariert wird.

Nach entsprechender Anpassung speichern wir das Snippet und unsere Beispiele zeigen die korrekte Ausgabe unserer Ergebnisse. 

Damit ist bei Änderungen sichergestellt, dass unsere Methode tatsächlich die korrekten Ergebnisse liefert.

Zu jedem Snippet wird zudem automatisch eine Dokumentation aus den gegebenen Daten generiert und kann via Generierte Dokumentation anzeigen betrachtet werden.

Fazit

Da die Methoden (oder Makros) nun im gesamten System verfügbar sind, steht einem verspäteten kräftigen Frühjahrsputz nichts im Weg und komplexe Methoden, die ohnehin häufiger verwendet werden, können einfach in ein Snippet ausgelagert werden. Die neuen Möglichkeiten, die hierdurch entstehen sind praktisch grenzenlos und ihr habt die volle Kontrolle über den gesamten Workspace hinweg. Kopieren und stundenlanges Nacheditieren entfällt. Und sind wir mal ehrlich, wie wünscht ihr euch eure Mapperspalte lieber?

Also einfach einloggen und probieren! Snippets sind aktuell für Kunden ab Plus-Paket verfügbar. Für alle Anderen steht das Feature natürlich auch in der Sandbox zum Testen bereit. 

Viel Spaß. Feedback gern per Forum.