Gelöst [WAWI-18606] BUG: Vergleiche "größer als" und "kleiner als" fehlerhaft...

Status
Es sind keine weiteren Antworten möglich.

gutberle

Sehr aktives Mitglied
29. März 2011
1.295
407
Ich habe einen Workflow geschrieben, der in zwei Bedingungen prüft, ob ein Wert entweder größer als 0,05 ist, oder aber ob er kleiner als -0,05 ist, siehe Screenshot.

JTLWawi_WorkflowBedingungFehler_Bedingungen.png

Simuliere ich den Workflow jetzt aber mit einem Datensatz, bei dem der Kriteriumswert -5,00 ist, dann meldet mir der Workflow, dass die erste Bedingung eingetroffen ist, weil -5,00 ja größer als 0,05 sei.

JTLWawi_WorkflowBedingungFehler_GrößerAls.png

Naja, das ist so sicher nicht ganz richtig, aber wenn ich einen anderen Testdatensatz nehme, bei dem der Kriteriumswert 0,00 ist, dann schlägt konsequenterweise auch die andere Vergleichsrichtung voll danbeben und erklärt, Workflow Bedingung 2 sei eingetreten, weil 0,00 ja kleiner als -0,05 sei.

JTLWawi_WorkflowBedingungFehler_KleinerAls.png

Ähem, das ist leider auch nicht so "richtig" richtig. Und führe ich den Workflows mit den selben Datensätzen auch aus und simuliere ihn nicht nicht, dann wird der Workflow auch genauso falsch ausgeführt wie simuliert, egal ich ihn aus dem Simulationsmodus heraus oder aus der Wawi ausführe.

Vielleicht könntet Ihr mal schauen, was da los ist ... o_O
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.295
407
Nachtrag: Das Problem betrifft nicht nur "kleiner als" und "größer als", sondern genauso auch "kleiner gleich" und "größer gleich".
Alle anderen Vergleiche scheinen zu funktionieren, inklusive "ungleich", der ganz ähnlich ist, aber der sieht mir wie ein String-Vergleich aus...
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.295
407
Guten Morgen Björn,

hier die Erweiterte Eigenschaft. Es geht darum, das Gesamtkundensaldo bestehend aus offenen Rechnungsbeträgen plus zugehörigen Gebühren und Zinsen aus der DB zu holen...
Code:
{% capture query %}\
    SELECT SUM(ROUND(fWert,2)-ROUND(fZahlung,2)-ROUND(fGutschrift,2)+Round(vBestellungEckdaten.fGutschein,2)) FROM vBestellungEckdaten \
        JOIN tBestellung ON vBestellungEckdaten.kBestellung=tBestellung.kBestellung \
        WHERE tBestellung.cType='B' AND tBestellung.tRechnung_kRechnung>0 AND tBestellung.tKunde_kKunde={{ Vorgang.InterneKundennummer }}\
{% endcapture -%}
{% assign OffenerWert = query | DirectQueryScalar | Plus: 0 %}

{% capture query %}\
    SELECT SUM(ROUND(ISNULL(tZahlungsErinnerung.fGebuehr, 0.0),2)) FROM tBestellung
    LEFT JOIN trechnung ON trechnung.tBestellung_kBestellung=tBestellung.kBestellung
    LEFT JOIN tZahlungsErinnerung ON tZahlungsErinnerung.kRechnung=trechnung.kRechnung
        AND NOT EXISTS
            (SELECT * FROM dbo.tZahlungsErinnerung tmp WHERE tmp.kRechnung = tRechnung.kRechnung
                AND tmp.nMahnstufeAktuell > dbo.tZahlungsErinnerung.nMahnstufeAktuell)
    WHERE tBestellung.cType='B' AND tBestellung.tRechnung_kRechnung>0 AND tBestellung.tKunde_kKunde={{ Vorgang.InterneKundennummer }}\
{% endcapture -%}
{% assign OffenerZins = query | DirectQueryScalar | Plus: 0 %}

{% assign OffenerBetrag = OffenerWert | Plus: OffenerZins %}
{{ OffenerBetrag | FormatNumber: 'N2', 'de-DE' }}

... der Fehler zeigt sich aber auch, wenn Du einfach Zahlenwerte im Fenster der Erweiterten Eigenschaft anlegst und zurückgibst.

Gruß,
Ingmar
 

Björn Ponsen

Moderator
Mitarbeiter
1. Juli 2016
987
90
Guten Morgen Ingmar,

du kannst in DotLiquid mit allen Werten arbeiten, der Ausgabe Wert ist jedoch immer ein String.
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.295
407
Hallo Björn,

falls Du damit sagen willst, dass man Werte, die man sich über "Erweiterte Eigenschaften" ziehen muß, weil sie in der Wawi fehlen, schlicht nicht bezüglich ihres numerischen Inhalts interpretieren kann, dann gehe ich mal vorsichtshalber davon aus, dass auch Du das für eine höchst unzufriedenstellende Antwort hältst, oder?

Hast Du vielleicht einen Vorschlag für mich, wie man in einer solchen Situation zum Ziel kommen kann? Die Wawi DB speichert ja nicht nur Strings sondern vor allem Zahlenwerte und "Business" definiert sich auch nicht über die Betrachtung und den Vergleich von Texten, sondern über den Vergleich von Zahlen. Es ist also wohl nicht allzu weit hergeholt, dass ich einen Wert (sic!) aus der Datenbank holen will und dann schauen möchte, ob er größer oder kleiner als ein Zielkritierium ist, oder? ... :confused:

Gruß,
Ingmar
 

Xantiva

Sehr aktives Mitglied
28. August 2016
1.795
316
Düsseldorf
Temporärer Kompromiss: Erledige den Vergleich in der Erweiterten Eigenschaft:
kleiner -0,05 machst Du zu 1
größer 0,05 machst Du zu 3
den Rest zu 2

Dann sollte ein Textvergleich erst mal wieder funktionieren. Allerdings ist das in der Tat eine eher unbefriedigende Lösung.
 

Björn Ponsen

Moderator
Mitarbeiter
1. Juli 2016
987
90
Guten Morgen Ingmar,

da hast du recht aber aktuell keine ich dir keine andere Antwort dazu geben. Ich werde die Problematik aber Intern einmal ansprechen das wir hier eine adäquate Lösung finden. ;)
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.295
407
Hallo Björn,

danke für Deine Rückmeldung und danke auch, dass Du das Problem intern ansprechen willst. Ich (und mit mir andere...) weiß das zu schätzen!

In diesem speziellen Fall kann man sich tatsächlich mit einem Konstrukt wie dem von @Xantiva vorgeschlagenen behelfen, aber was wäre zum Beispiel wenn ich ein Datum aus der Datenbank holen muss. Mit Datumsangaben ist schon mit den bisher implementierten Funktionen/Bedingungen in Dotliquid schwer zu arbeiten, mit einem String-Datum, ähem, da fehlt mir im Moment die Phantasie. Das wären prototypisch die Fälle, wo man mit String-Rückgaben wirklich an die Wand läuft.

Gruß,
Ingmar
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.295
407
@Xantiva - Danke für den super Hinweis. Klar, so kann man das hier lösen. Ich habe es jetzt ein bißchen näher an der eigentlichen Intention benannt, aber es ist das Gleiche.

Falls irgendjemand anderes auch Kundenkonto Ausdrucke machen möchte, hier ist der ganze Workflow Code und hier ist der Thread, in dem wir eine Vorlage erarbeitet haben, die einen Kundenkonto-Ausdruck realisiert. Der Weg hier wäre dann alle auszuwertenden Kunden im Bereich "Kunden" zu markieren und den manuellen Workflow "Kontoauszug drucken..." auszulösen. Das geht bei mir ziemlich schnell, ich habe aber auch nur ~350 Kunden, also Vorsicht beim Probieren mit 23.000 Kunden!!!
Code:
{% capture query -%}\
    SELECT SUM(ROUND(fWert,2)-ROUND(fZahlung,2)-ROUND(fGutschrift,2)+Round(tBestellungEckdaten.fGutschein,2)) FROM tBestellungEckdaten \
        JOIN tBestellung ON tBestellungEckdaten.kBestellung=tBestellung.kBestellung \
        WHERE tBestellung.cType='B' AND tBestellung.tRechnung_kRechnung>0 AND tBestellung.tKunde_kKunde={{ Vorgang.InterneKundennummer }}\
{% endcapture -%}
{% assign OffenerWert = query | DirectQueryScalar | Plus: 0 -%}
{% capture query -%}\
    SELECT SUM(ROUND(ISNULL(tZahlungsErinnerung.fGebuehr, 0.0),2)) FROM tBestellung
    LEFT JOIN trechnung ON trechnung.tBestellung_kBestellung=tBestellung.kBestellung
    LEFT JOIN tZahlungsErinnerung ON tZahlungsErinnerung.kRechnung=trechnung.kRechnung
        AND NOT EXISTS
            (SELECT * FROM dbo.tZahlungsErinnerung tmp WHERE tmp.kRechnung = tRechnung.kRechnung
                AND tmp.nMahnstufeAktuell > dbo.tZahlungsErinnerung.nMahnstufeAktuell)
    WHERE tBestellung.cType='B' AND tBestellung.tRechnung_kRechnung>0 AND tBestellung.tKunde_kKunde={{ Vorgang.InterneKundennummer }}\
{% endcapture -%}
{% assign OffenerZins = query | DirectQueryScalar | Plus: 0 -%}
{% assign Kontostand = OffenerWert | Plus: OffenerZins -%}
{% if Kontostand > 0.05 -%}
    {{ 'Soll' | Trim }}
{% elseif Kontostand < -0.05 -%}
    {{ 'Haben' | Trim }}
{% else -%}
    {{ 'Null' | Trim }}
{% endif -%}

Hier wird also "Soll" für Soll, "Haben" für Haben und "Null" für Null zurückgegeben und die Vergleiche im Workflow selbst sind dann einfache String Vergleiche ...

JTLWawi_KundenkontoWorkflow_BedingungStringVergleiche.png

Gruß,
Ingmar
 
  • Gefällt mir
Reaktionen: Guybrush und hula1499
Status
Es sind keine weiteren Antworten möglich.
Ähnliche Themen
Titel Forum Antworten Datum
Neu JTL-POS: Verkäufe vom 25.–27.08. nicht an Wawi übertragen – alte Bons erneut senden? JTL-POS - Fehler und Bugs 0
„Wer hat Lust auf einen Erfahrungsaustausch bei Kaffee und Kuchen?“ – aber mit JTL-Wawi als Dessert? Starten mit JTL: Projektabwicklung & Migration 0
Update auf Wawi 2.0 - Worker funktioniert nicht mehr JTL-Wawi 2.0 6
Neu Biete: KI-gestützte Produktdatenoptimierung für JTL-Wawi (Zero-Touch, mit Faktencheck) Dienstleistung, Jobs und Ähnliches 2
Neu Suche Setup-Datei / Installer für JTL-Wawi 1.6 (1.6.48.0) JTL-Wawi 1.6 1
Neu Shopify Zahlungsarten in JTL Wawi mappen – Jemand eine Lösung? Shopify-Connector 0
Neu Selektieren aller Artikel, bei denen NICHT 'Preis aus Registerkarte JTL Wawi" eingestellt ist? User helfen Usern - Fragen zu JTL-Wawi 1
In Wawi 2.0.6 Kommentar 1 und Kommentar 2 für Lagerbestände von Kindartikeln desselben Vaterartikels nicht mehr über Vaterartikel pflegbar JTL-Wawi 2.0 4
Seit Update ständiges Aufhängen der Wawi JTL-Wawi 2.0 0
Neu Google Shopping ... seit JTL Wawi 2.0.6 steigende Zahl nicht genehmigte Produkte (Attribut „Preis“ [[price]]) User helfen Usern - Fragen zu JTL-Wawi 9
Neu Import - Artikelname aus WAWI übernehmen Shopware-Connector 0
Neu automatisch Starten Worker / WaWi Arbeitsabläufe in JTL-Wawi 3
Neu Nutzlose Tabellenspalte bei Inventur innerhalb der Wawi User helfen Usern - Fragen zu JTL-Wawi 1
Neu Seit heute früh kein Start von JTL-Wawi möglich - Datenbank nicht erreichbar User helfen Usern - Fragen zu JTL-Wawi 7
Neu Wie verarbeitet ihr B2B-Bestellungen aus E-Mail oder PDF in JTL-Wawi? Arbeitsabläufe in JTL-Wawi 16
Neu onpage SEO auf SW - Was ist mit der Wawi? Shopware-Connector 1
Neu JTL-Wawi 2.0.6: eBay-Rahmenbedingungen bei bestehenden Angeboten/Vorlagen nicht mehr änderbar eBay-Anbindung - Fehler und Bugs 11
Wawi nur für ebay JTL-Wawi 2.0 2
Neu Bestellpositionen werden in Sprache der Kunde an die Wawi übermittelt. Kann man das ausstellen? User helfen Usern - Fragen zu JTL-Wawi 17
Neu Amazon VCS-Lite – Fehlende Rechnungen nachträglich hochladen (JTL-Wawi 1.11.11)? Amazon-Anbindung - Fehler und Bugs 4
Neu Amazon Versandart matchen in der Wawi Amazon-Lister - Fehler und Bugs 2
Mehrere Probleme mit JTL-Wawi und JTL-POS – hängen diese zusammen? JTL-Wawi 2.0 1
Neu Wawi 1.11.10 speichert Rechnungen plötzlich nicht mehr. User helfen Usern - Fragen zu JTL-Wawi 1
Neu Fehler Datenbank auf neuem Server mit Wawi 2.0.6 JTL-Wawi - Fehler und Bugs 5
Neu Wawi - temporär nicht lieferbare Produkte eines Lieferanten User helfen Usern - Fragen zu JTL-Wawi 2
Ständiger Absturz bei Wawi 1.11.11 nach Artikelaktualisierung JTL-Wawi 1.11 1
JTL-Wawi 2.0.6.0 sendet fehlerhafte multipart/form-data-Requests – ModSecurity blockt Datenabgleich mit 403 (scheinbar hosterabhängig) JTL-Wawi 2.0 20
Neu Externe Rechnung fälschlicherweise zu Wawi-Rechnung umgewandelt User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wawi 2.0.6 Fehler bei Druckerzuordnung und Nachdruck JTL-ShippingLabels - Fehler und Bugs 12
Neu JTL-Wawi REST API (Beta): HTTP 402 "Zahlung erforderlich" auf allen Endpunkten trotz gebuchter Beta-Lizenz Schnittstellen Import / Export 2
Admin Zugang JWL WAWI ITler ist weg. JTL-Wawi 1.11 5
Kasse in JTL-Wawi 2.0 einbinden JTL-Wawi 2.0 1
Neu JTL-WAWI 2.0.5 Worker läuft nicht mehr und Versandarten werden falsch ausgegeben. JTL-Wawi - Fehler und Bugs 1
JTL-WAWI 2.0.5 Worker läuft nicht mehr und Versandarten werden falsch ausgegeben. JTL-Wawi 2.0 10
Verbesserungsvorschlag: JTL-POS – Artikel mit Preisabfrage und vollständiger Wawi-Statistik JTL-Wawi 2.0 4
Wawi 1.11.11 Shopabgleich mit 5.72 JTL-Wawi 1.11 17
Amazon-Bestände werden nicht übertragen – Überverkäufe nach Reaktivierung aus Urlaubsmodus (Wawi 1.11.11) JTL-Wawi 1.11 1
Neu POS Server crashed mit Wawi Version 1.11.10 JTL-POS - Fehler und Bugs 3
Neu JTL-Wawi 1.11.7: Shopify-PDF aus Bestellmetafeld automatisch als Auftragsanhang übernehmen Shopify-Connector 1
Seit dem Update meines JTL-Shops auf Version 5.7.1 funktioniert die Verbindung zwischen JTL-Wawi 2.0.4.0 und dem Shop nicht mehr. JTL-Wawi 2.0 6
Wawi 1.11 – viele Arbeitsabläufe sind schlechter geworden JTL-Wawi 1.11 2
Neu Belege aus JTL Wawi zu Lexoffice Schnittstellen Import / Export 5
Neu Amazon VCS Lite: Wie erstellt ihr unter Wawi 1.11 eine vollständige IGL-/ZM-Liste über alle Verkaufskanäle? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Gibt es in der WaWi-Datenbank einen Zeitstempel, der anzeigt wann ein Kunde sich in einem bestimmten Shop registriert hat? User helfen Usern - Fragen zu JTL-Wawi 3
Beantwortet [Shop 5.7.2 / Wawi 2.0.5] GPSR-Daten werden am Artikel nicht angezeigt trotz korrekter Übertragung und installiertem Plugin Allgemeine Fragen zu JTL-Shop 1
Neu Copy/Paste Abstürze seit JTL-Wawi 2.0.5 User helfen Usern - Fragen zu JTL-Wawi 4
Neu Amazon.com - kein Abgleich der Bestände Wawi 1.11.9 Amazon-Anbindung - Fehler und Bugs 0
Neu DSVGO konform 1000 Kunden in WaWi und Shop löschen! User helfen Usern - Fragen zu JTL-Wawi 4
Neu JTL Wawi 1.11.11 - Zahlungsabgleich bei FYRST Bank verlangt immer Passwort User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wawi 1.11. Amazon Rechnungen (extern) in der Kundenansicht verschwunden ?! User helfen Usern - Fragen zu JTL-Wawi 2

Ähnliche Themen