Neu Workflow erstellen wo ein Datumsfeld mit dem Datum.Jetzt verglichen wird

John

Sehr aktives Mitglied
3. März 2012
4.218
1.089
Berlin
So, eben ausprobiert. Es liegt genau an meiner Vermutung. Dotliquid kann nur direkt Variablen miteinander vergleichen und eben KEINE gleichzeitigen Rechenoperationen. Daher vorher einer Variable assignen und dann die Variablen vergleichen.

Code:
{% assign TerminFormatiert = Vorgang.EigeneFelder.Termin.KD-Datum | Datum: 'dd.MM.yyyy' -%}
{% assign HeuteFormatiert = Datum.Jetzt | Datum: 'dd.MM.yyyy'-%}
{%- if TerminFormatiert == HeuteFormatiert -%}
true
{%- else-%}
false
{%- endif -%}
 
  • Gefällt mir
Reaktionen: DPLIIx und hupsi77

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
Genau.
Liquid unterstüzt keine Filter in bedingten Anweisungen/Conditionals.
Daher entweder die ungefilterten Werte vergleichen und erst das Ergebnis formatieren, oder wie @John oben schreibt Variablen vergleichen.
 

John

Sehr aktives Mitglied
3. März 2012
4.218
1.089
Berlin
...wenn es wenigstens eine Fehlermeldung gäbe. Aber ne, es kommt einfach zu nicht nachvollziehbaren, falschen Ergebnissen. Die "Sprache" ist ein einziger krampf. 🙁
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
Liquid ist keine vollwertige Programmiersprache, sondern nur eine einfache Auszeichnungssprache, um bestimmte Variablen in Vorlagen zu übernehmen. Dabei können ein paar einfache Filter angewendet werden.

Die Bezeichnung als "nicht vollwertige Programmiersprache" zeigt sich u.a. beim Arbeiten in einem booleschen Kontext (z.B. in einem Conditional).
Hier kennt Liquid nur Boolesche Datentypen, die entweder true oder false sind, oder nicht-boolesche Datentypen, die aber von liquid als truthy oder falsy bezeichnet werdenund ebenfalls wieder nur truth bzw. false sind (truthy liefert true und falsy liefert false). Falsy sind leere Werte.

Wenn man also sagen würde {% assign name1 = "Hans" %} und {% assign name2 = "Fritz" %}
dann würde Liquid den Ausdruck {% if name1 == name2 %} eigentlich als {% if true == true %} also {% if true %} ansehen => Tautologie

Das ist alles Käse. Da stimm ich dir zu.
Wenn man Werte berechnen will, oder sonstige komplexe oder auch weniger komplexe Dinge vorhat, würd ich glaub immer lieber auf SQL zurückgreifen.
 
  • Gefällt mir
Reaktionen: hupsi77

hupsi77

Aktives Mitglied
27. Mai 2010
66
7
So, eben ausprobiert. Es liegt genau an meiner Vermutung. Dotliquid kann nur direkt Variablen miteinander vergleichen und eben KEINE gleichzeitigen Rechenoperationen. Daher vorher einer Variable assignen und dann die Variablen vergleichen.

Mit Assign geht es nun nach John's Beispiel auch bei mir. Ich möchte mich bei allen bedanken, die mir bei der Lösung meines Problems geholfen habe.
Ich bin damit ein ganzes Stück weiter gekommen. All diese Anstrengung nur, weil ein drittanbieter der mit der Wawi gearbeitet hat, seine Entwicklung einstellt, weil er der meine ist, dass kann man nun
alles ab Version 1.6 mit den eigenen Felder machen. 🤯

Nochmals vielen dank für Eure hilfe..... DANKE

Grüße
Frank
 
  • Gefällt mir
Reaktionen: Eldra H.

Ähnliche Themen