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

OliausderSchweiz

Aktives Mitglied
3. März 2013
34
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
34
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
205
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
205
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
workflow führt zu "keiner Rückmeldung" / Absturz JTL-Wawi 1.11 0
Artikelpuffer Email Workflow JTL-Wawi 1.11 2
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
Neu Workflow Überfällige Mahnung an Inkassoanwalt übergeben JTL-Workflows - Ideen, Lob und Kritik 0
JTL Workflow - Email addresse von Rechnungsadresse JTL-Wawi 1.9 5
Neu JTL REST API einen Workflow ausführen und benutzerspezifischen Drucker ansteuern User helfen Usern 0
Neu Retouren Variablen in Workflow für Rechnungskorrektur Wert & Korrekturbetrag JTL-Workflows - Ideen, Lob und Kritik 0
Neu JTL-Wawi 1.11.5: Sequenzieller Kundenexport mit Workflow und SQL-Queue Schnittstellen Import / Export 2
Workflow Druckvorlage personalisierte Artikel JTL-Wawi 1.11 2
Seit dem Update auf JTL Wawi 1.11.4 funktioniert der Workflow "Datei Schreiben" nicht JTL-Wawi 1.11 1
Workflow - Werte setzen JTL-Wawi 1.11 0
Seit Update auf 1.11.4 Workflow für Kartonauswahl gibt error JTL Das Objekt mit Nullwert muss einen Wert haben. BrowsePk: 152325 WorkflowAktionId: 155 JTL-Wawi 1.11 1
Neu Workflow Artkel bereits bestellt Arbeitsabläufe in JTL-Wawi 1
Neu Wo verändere ich die Variable #firma.name# die in Mail-Vorlagen zu finden ist? Allgemeine Fragen zu JTL-Shop 2
Neu Variable für Maßeinheit gesucht Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1

Ähnliche Themen