Flow: Wie realisiere ich variable Aufpreise pro Tag?

Neulich bekamen wir eine interessante Fragestellung:

Wir haben einen Flow gebaut, welcher Artikeldaten holt und 10 Cent dazu rechnet und wieder ausgibt.

Jetzt hätten wir es aber gerne, dass dieser Flow an einem Tag 10 Cent zu rechnet und am nächsten Tag 10 Cent abzieht. Kan man dieses realisieren?

Im Kern geht es ja darum, an jedem Tag im Monat irgend etwas anderes zu machen.

Folgende Lösung haben wir vorgeschlagen:

Auf die schnelle fallen uns da Mappingsets und eine Hilfsspalte ein.
Folgende Dokumentation ist in diesem Zusammenhang hilfreich:

Die Idee ist, dass man für alle 31 Tage des Monats die zuzurechnenden bzw. abzuziehenden Werte in einem Mappingset hinterlegt.

Den aktuellen Tag des Monats schreibt man dann mit folgendem Ausdruck im Wertfeld in eine Hilfsspalte:

${.now?string('dd')}

Ergebnis:
image

Der Wert 30 im Screenshot ist der aktuelle Tag, da wir den Screenshot am 30.08.2022 erstellt haben.

Im Mappingset trägt man dann für jeden Tag die Werte ein.

HTML

01=10
02=-10
03=10

usw.

Vorteil: Man kann das sogar pro Tag noch variieren.

Man kann statt Cent-Beträgen auch EUR-Werte mappen. Evtl. vereinfacht das die Berechnung. also 0.1 EUR statt 10 Cent. Da Preise meistens in EUR hinterlegt sind, spart man sich so die Umrechnung und kann im SpreadsheetMapper einfacher rechnen.

Beispiel Hilfsspalte:

Ergebnis:

Sobald das Mappingset hinterlegt wurde, sollte der entsprechende Wert des Tages durch den übersetzten Wert im Mappingset ersetzt werden. Mit anderen Worten es sollte jetzt statt dem Tag der entsprechende Aufpreis drin stehen.

Mit dieser Hilfsspalte kann man dann weiterarbeiten.

Und z.B. den neuen Preis berechnen. D.h. den Wert der Hilfsspalte addiert man einfach auf eine existierende Preisspalte dazu. Dabei muss der Wert von Cent in Euro umgerechnet werden:

image

Wichtig: Die Hilfsspalte muss links von der Preisspalte sein, damit der Ausdruck ${result[hilfspalte]} klappt. Weiterhin sollte immer ein Punkt als Dezimaltrenner benutzt werden, sonst klappen die Berechnungen nicht (siehe hier). D.h. eventuell braucht man noch eine weitere Hilfsspalte.

Aber die Idee ist die gleiche.

Diese Lösung ist nur eine der vielseitigen Anwendungsbeispiele für Mappingsets. Im Prinzip kann man Mappingsets immer dann nutzen, wenn man für eine „Hand voll“ Werte jeweils einen anderen Wert braucht.
Oft werden Mappingsets nur für simple Übersetzungen z.B. von IDs, Kategorien oder Attributen von Deutsch zu Englisch verwendet, aber gerade bei Berechnungen sind sie oft ein sehr praktisches und mächtiges Werkzeug.