Neu In Workflow Variable definieren und nachträglich den Wert verändern?

OliausderSchweiz

Aktives Mitglied
3. März 2013
38
0
Hallo - ich verzweifle ...

In einem Workflow erstelle ich eine Variable ...
{% assign MeineVariable = (MeinWert | Times: 5.55 | FormatNumber: 'N2' -%}
... deren Wert ich dann irgendwo weiter unten noch verändern muss ...
{% assign MeineVariable = MeineVariable | Plus: 0.05 | FormatNumber: 'N2' -%}

Es wird auf diese Weise leider kein Wert ausgegeben ... was mache ich falsch?
Jetzt schon mal vielen herzlichen Dank!!!
 

Steffen80

Sehr aktives Mitglied
27. August 2012
416
91
Code:
{% assign MeinWert =5.567 -%}
{% assign MeineVariable = MeinWert | Times: 5.55  -%}
{% assign MeineVariable = MeineVariable | Plus: 0.05  | FormatNumber: 'N2', 'de-DE' -%}
 

OliausderSchweiz

Aktives Mitglied
3. März 2013
38
0
Code:
{% assign MeinWert =5.567 -%}
{% assign MeineVariable = MeinWert | Times: 5.55  -%}
{% assign MeineVariable = MeineVariable | Plus: 0.05  | FormatNumber: 'N2', 'de-DE' -%}
Neue Erkenntnis:
{% assign MeinWert = 1.03 -%}
{% assign MeineVariable = MeinWert | Times: 5.00 -%} ergibt Wert = 5.15

Variante1:
{% assign MeineVariable = MeineVariable | Plus: 0.05 | FormatNumber: 'N2', 'de-DE' -%} ergibt Wert ""
Da kommt nichts raus ...

Variante2:
{% assign MeineVariable = MeineVariable | Plus: 0.05 -%} ergibt Wert "5.15.05"
Hier wurde jetzt ein String draus ... weshalb?
 

jtldudel

Sehr aktives Mitglied
4. Januar 2018
635
206
Schwer nachzuvollziehen was genau du hier machst, aber bedenke dies: Sobald du das "| FormatNumber: 'N2', 'de-DE' " anhängst, wird das Ergebnis ein String. Wenn du dann versuchst etwas zu "addieren", werden eben nur die Zeichen dahintergeschrieben (wie in Variante2).

Wenn du nun wie im Ursprünglichen Post gleich zu beginn "{% assign MeineVariable = (MeinWert | Times: 5.55 | FormatNumber: 'N2' -%}" machst, wird die Variable {{ MeineVariable }} ein Text. Damit kannst du nicht weiterrechnen. Du darfst also das FormatNumber nicht verwenden solange du noch mit der Variable rechnest (oder du Formatierst danach wieder in eine Zahl um, wäre ja aber unnötig).

Auch wichtig: Wenn du das FormatNumber verwendest und die Zahl zum Schluss ein Text wird, kannst du diesen Wert nicht benutzen für Felder, die eine Zahl erwarten (z.B. ein Preisfeld, oder wenn du als Rückgabetyp in einer Erweiterten Eigenschaft einen Zahlentyp gewählt hast). Möglicherweise brauchst du das FormatNumber gar nicht. Wie gesagt, leider nicht ganz nachvollziehbar was du tun möchtest (was passiert mit dem Wert? Woher kommt der ursprüngliche Wert?)

In meinem Test funktioniert dein Beispiel aus dem ursprünglichen Post einfach so:

Code:
{% assign MeinWert = 5.567 -%}
{% assign MeineVariable = MeinWert | Times: 5.55  -%}
{% assign MeineVariable = MeineVariable | Plus: 0.05 -%}
{{ MeineVariable }}

Gibt mir am Ende 30,94685 aus, wenn du das auf zwei Stellen runden möchtest kannst du einfach ein
"| Round: 2"
hinten ranhängen


EDIT: vielleicht hilft dir auch der kleine Schmankerl vom Manuel Pietzsch hier:
Rechnen mit DotLiquid - Automatisierung im E-Commerce
 
  • Gefällt mir
Reaktionen: no80 und Steffen80

Steffen80

Sehr aktives Mitglied
27. August 2012
416
91
Formatier deine Zahl erst am Ende mit FormatNumber ....

Nimm meinen Code und Probier aus:

Code:
{% assign MeinWert =5.567 -%}
{% assign MeineVariable = MeinWert | Times: 5.55  -%}
{% assign MeineVariable = MeineVariable | Plus: 0.05  | FormatNumber: 'N2'-%}

Wenn Du vorher Runden willst benutz

Code:
{% assign MeineVariable = MeinWert | Times: 5.55 |Round:2 -%}
 
  • Gefällt mir
Reaktionen: jtldudel

jtldudel

Sehr aktives Mitglied
4. Januar 2018
635
206
Formatier deine Zahl erst am Ende mit FormatNumber ....

Nimm meinen Code und Probier aus:

Code:
{% assign MeinWert =5.567 -%}
{% assign MeineVariable = MeinWert | Times: 5.55  -%}
{% assign MeineVariable = MeineVariable | Plus: 0.05  | FormatNumber: 'N2'-%}

Wenn Du vorher Runden willst benutz

Code:
{% assign MeineVariable = MeinWert | Times: 5.55 |Round:2 -%}
Auf den Punkt gebracht :D
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Workflow mit UND / ODER - Bedingung erstellen JTL-Workflows - Ideen, Lob und Kritik 2
Using short screen recordings for JTL-Wawi workflow documentation – anyone doing this? JTL-Wawi 2.0 3
Neu Werte erhöhen per Workflow User helfen Usern - Fragen zu JTL-Wawi 3
In Diskussion Workflow OpenAI JTL-Workflows - Ideen, Lob und Kritik 0
Workflow Trigger bei Angebot-Import über Ameise JTL-Wawi 1.9 0
Neu 2.0.0: Workflow Queue wird nicht abgearbeitet via API JTL-Wawi 2.0 1
Neu Verständnisfrage zum Mahnlauf Workflow User helfen Usern - Fragen zu JTL-Wawi 0
In Diskussion Ort mit OT per Workflow bereinigen JTL-Workflows - Ideen, Lob und Kritik 3
Neu Ausdruck Rechnung beim Workflow nicht korrekt formatiert User helfen Usern - Fragen zu JTL-Wawi 6
Worker versendet keine E-Mails mehr aus der Workflow Queue JTL-Wawi 2.0 6
Gelöst Workflow - Seriennummer per Mail versenden JTL-Workflows - Fehler und Bugs 1
Neu Workflow automatisch bei Warenausgang für Bestand und Puffer JTL-Wawi - Ideen, Lob und Kritik 12
workflow führt zu "keiner Rückmeldung" / Absturz JTL-Wawi 1.11 3
Artikelpuffer Email Workflow JTL-Wawi 1.11 4
Neu Workflow Ereignis "Position hinzufügen" bei Angebote User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow - Bedingung Lieferstatus User helfen Usern - Fragen zu JTL-Wawi 4
Workflow: Artikel geändert -> bat-script ausführen JTL-Wawi 1.11 2
Neu Workflow funktioniert nicht so wie gewollt :) User helfen Usern - Fragen zu JTL-Wawi 1
In Diskussion Workflow Abweichung Preise > Emailreport JTL-Workflows - Ideen, Lob und Kritik 3
Neu Workflow Auslöser: Artikel gelöscht User helfen Usern - Fragen zu JTL-Wawi 0
Neu Mahnwesen per Workflow automatisieren User helfen Usern 0
Neu Ebay-Artikelimport triggert Workflow "Artikel geändert" nicht JTL-Wawi - Fehler und Bugs 0
[AKZ] Anbieterkennzeichnung Variable anpassen Einrichtung JTL-Shop5 3
Neu Wo verändere ich die Variable #firma.name# die in Mail-Vorlagen zu finden ist? Allgemeine Fragen zu JTL-Shop 2

Ähnliche Themen