Neu Wieso funktioniert DividedBy unter diesen Umständen nicht?

Ahok

Gut bekanntes Mitglied
11. September 2023
330
15
Hallo zusammen,

weiß jemand warum das DividedBy im Code ganz unten nicht funktioniert? Sobald ich das in eine Mail schreibe, kommt diese leer an.
Code:
{% assign AnzahlVPE = item.fAnzahl | DividedBy: item.nVPEMenge | FormatNumber: 'N0' -%}

item.fAnzahl kommt aus der Tabelle Verkauf.tAuftragPosition und ergibt in meinem Testbeispiel 72,0000000000000.
item.nVPEMenge kommt aus der Tabelle dbo.tliefartikel und ergibt in meinem Testbeispiel 12,0000000000000.
Beide haben den Typ DECIMAL(25, 13).

Schreibe ich folgenden Code, kommt die Mail korrekt an:
Code:
{% assign AnzahlVPE = item.fAnzahl | DividedBy: 12 | FormatNumber: 'N0' -%}

Hier kommt es ebenfalls korrekt an:
Code:
{% assign AnzahlVPE = item.fAnzahl | DividedBy: item.fAnzahl| FormatNumber: 'N0' -%}

Hier ebenfalls:
Code:
{% assign AnzahlVPE = 72 | DividedBy: item.fAnzahl | FormatNumber: 'N0' -%}

Hier ebenfalls:
Code:
{% assign AnzahlVPE = item.nVPEMenge | DividedBy: 12 | FormatNumber: 'N0' -%}

Hier jedoch nicht:
Code:
{% assign AnzahlVPE = item.nVPEMenge | DividedBy: item.nVPEMenge | FormatNumber: 'N0' -%}

Und hier auch nicht:
Code:
{% assign AnzahlVPE = 72 | DividedBy: item.nVPEMenge | FormatNumber: 'N0' -%}

Was hat DotLiquid gegen nVPEMenge als Divisor? Vor allem wenn es sich um den gleichen Typ handelt wie fAnzahl, das aber ohne Probleme funktioniert?
 

John

Sehr aktives Mitglied
3. März 2012
4.138
1.055
Berlin
Verschachtelte Anweisungen sind keine gute Idee. Das geht regelmäßig schief.
Splitte das mal in Einzelschitte auf und lass dir ggf. die Zwischenergebnisse anzeigen.

Vielleicht ist item.nVPEMenge auch mal DBNULL? Ist ja keine Pflichteigenschaft eines Artikels...
 
  • Gefällt mir
Reaktionen: Ahok

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
@John hat einen sehr guten Tipp gegeben: nämlich die Variablen einzeln zu befüllen und Schritt für Schritt vorzugehen.
Ich gehe noch einen Schritt weiter und behaupte, dass alles was über ein einfaches "Gib an dieser Stelle die und die Variable aus" nicht gerade die Stärke von Liquid bzw. DotLiquid ist.
Liquid ist was es ist: eine Template Sprache, dazu gedacht, Werte aus einer Datenbank auszugeben. Es gibt wohl einige Filter, aber sobald es komplexer werden soll, wirds doof. Fehlermeldungen und ähnliches gibts nicht oder sind obskur. Auch sind die DotLiquid Filter nicht wirklich kaskadierbar.
Lange Rede, kurer Sinn. Mein Rat ist Berechnungen und ähnliches direkt von der Datenbank erledigen zu lassen. Und dann das Ergebnis per DotLiquid ausspielen, denn das kann DotLiquid gut.

Also sowas in der Art:
Code:
{% capture query -%}
select ...
{% endcapture -%}
{% assign wert = query | DirectQueryScalar -%}
{{ wert }}
 
  • Gefällt mir
Reaktionen: Ahok
Ähnliche Themen
Titel Forum Antworten Datum
Die Suche von Stücklistenartikeln/Bundles funktioniert nicht Allgemeine Fragen zu JTL-Shop 0
Neu DHL funktioniert nicht JTL-ShippingLabels - Fehler und Bugs 5
Funktioniert die Adressvalidierung inzwischen? JTL-Wawi 2.0 1
Neu Sortierung der Variationswerte funktioniert nicht mehr Shopify-Connector 5
Retourenetikett Internetmarke funktioniert nicht mehr JTL-Wawi 2.0 1
Neu WMS-APP funktioniert nicht - Fehlermeldung: andere Edition wird benötigt JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu Erstellung der Sitemap bei WaWi Abgleich funktioniert nicht Allgemeine Fragen zu JTL-Shop 0
Neu DHL 4.0 mit JTL-ShippingLabels funktioniert nicht JTL-ShippingLabels - Fehler und Bugs 2
Wawi 1.11. Rechnungsanhang funktioniert nicht mehr bei Versandmail JTL-Wawi 1.11 6
Neu Warnung: Attribute via JTL Funktion JTL_GetProductAttribute() funktioniert nicht zuverlässig Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
PayPal Abgleich funktioniert nicht (JTL 1.9.8.0) JTL-Wawi 1.9 23
Neu WAWI 2.0.2 Auftragsuche nach Ebay-Benutzernamen funktioniert nicht JTL-Wawi - Fehler und Bugs 1
Neu Funktioniert Shop 5.7 mit MariaDB 10.5.29? Installation / Updates von JTL-Shop 1
Neu POS buchen (seit 01.04.) funktioniert nicht - weiße Seite Einrichtung / Updates von JTL-POS 0
Versand Internetmarke funktioniert nicht (Could not load file or assembly 'System.Net.WebProxy, ...) JTL-Wawi 2.0 2

Ähnliche Themen