In Bearbeitung Workflow funktioniert nicht - Bedingung: Seriennummer

  • Am 13.06.25 ist der Telefon-Support wegen einer internen Veranstaltung nicht erreichbar, der Ticket-Support nur eingeschränkt. Wir danken Ihnen für Ihr Verständnis!

Buinger

Gut bekanntes Mitglied
30. April 2009
341
15
Hallo,

wir haben einen Workflow (siehe Bild), wo aufgrund der erweiterten Eigenschaft (siehe folgend) dem Kunden eine Rechnung per Email geschickt wird.

Eine Zeitverzögerung wurde später hinzugefügt, ohne hat es aber auch nicht geklappt. Der Worker läuft natürlich, Tag und Nacht.

Der Workflow funktioniert aber nicht, die Kunden erhalten keine Rechnung. Woran könnte das liegen?


{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% capture query -%}
SELECT nSeriennummernstatus from tartikel where kArtikel = '{{ Artikelbeschreibungen.InterneArtikelnummer }}'
{% endcapture -%}
{% assign Ergebnis = query | DirectQueryScalar -%}
{% if Ergebnis != 0 -%}
true
{% else -%}
false
{% endif -%}
{{ Ergbnis }}
{% endfor -%}
 

Anhänge

  • Screenshot 2025-06-06 at 3.14.23 PM.png
    Screenshot 2025-06-06 at 3.14.23 PM.png
    640,2 KB · Aufrufe: 5

frankell

Sehr aktives Mitglied
9. September 2019
1.699
491
Flensburg
Hallo @Buinger,

hier sind die Hochkommata zu viel, da kArtikel kein String, sondern ein Integer ist:

SELECT nSeriennummernstatus from tartikel where kArtikel = '{{ Artikelbeschreibungen.InterneArtikelnummer }}'

In der Theorie sollte man auch escapen, also:

Code:
{{ Artikelbeschreibungen.InterneArtikelnummer | SqlEscape }}

Aber ich habe zumindest bei Integers noch nicht erlebt, dass es da Probleme gibt, wenn man das nicht machen.

Außerdem ist hier ein Typo:


Ist kein Fehler, aber wenn Du eh dabei bist, SQL zu benutzen, dann kannst Du auch den Rest durch SQL machen lassen, also:

Code:
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% capture query -%}
SELECT
    CASE nSeriennummernstatus
    WHEN 0 THEN 'false'
    ELSE 'true'
    END
FROM
    tartikel
WHERE
    kArtikel = {{ Artikelbeschreibungen.InterneArtikelnummer | SqlEscape  }}
{% endcapture -%}
{% assign Ergebnis = query | DirectQueryScalar -%}
{{ Ergebnis }}
{% endfor -%}

Weitere Möglichkeit:

Code:
{% capture query -%}
IF EXISTS (
    SELECT
        *
    FROM
        tLieferscheinPos AS LP
        JOIN Verkauf.tAuftragPosition AS AP ON LP.kBestellPos = AP.kAuftragPosition
        JOIN tArtikel AS ART ON AP.kArtikel = ART.kArtikel
    WHERE
        LP.kLieferschein =  {{ Vorgang.InterneLieferscheinnummer | SqlEscape  }}
        AND ART.nSeriennummernstatus = 1
)
BEGIN SELECT 'true' END
ELSE BEGIN SELECT 'false' END
{% endcapture -%}
{% assign Ergebnis = query | DirectQueryScalar -%}
{{ Ergebnis }}

Damit sparst Du Dir die Schleife in DotLiquid und lässt alles SQL machen. Du kannst dann auch die Erweiterte Eigenschaft zu einem Boolean machen.
 

Buinger

Gut bekanntes Mitglied
30. April 2009
341
15
Hallo @Buinger,

hier sind die Hochkommata zu viel, da kArtikel kein String, sondern ein Integer ist:



In der Theorie sollte man auch escapen, also:

Code:
{{ Artikelbeschreibungen.InterneArtikelnummer | SqlEscape }}

Aber ich habe zumindest bei Integers noch nicht erlebt, dass es da Probleme gibt, wenn man das nicht machen.

Außerdem ist hier ein Typo:



Ist kein Fehler, aber wenn Du eh dabei bist, SQL zu benutzen, dann kannst Du auch den Rest durch SQL machen lassen, also:

Code:
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% capture query -%}
SELECT
    CASE nSeriennummernstatus
    WHEN 0 THEN 'false'
    ELSE 'true'
    END
FROM
    tartikel
WHERE
    kArtikel = {{ Artikelbeschreibungen.InterneArtikelnummer | SqlEscape  }}
{% endcapture -%}
{% assign Ergebnis = query | DirectQueryScalar -%}
{{ Ergebnis }}
{% endfor -%}

Weitere Möglichkeit:

Code:
{% capture query -%}
IF EXISTS (
    SELECT
        *
    FROM
        tLieferscheinPos AS LP
        JOIN Verkauf.tAuftragPosition AS AP ON LP.kBestellPos = AP.kAuftragPosition
        JOIN tArtikel AS ART ON AP.kArtikel = ART.kArtikel
    WHERE
        LP.kLieferschein =  {{ Vorgang.InterneLieferscheinnummer | SqlEscape  }}
        AND ART.nSeriennummernstatus = 1
)
BEGIN SELECT 'true' END
ELSE BEGIN SELECT 'false' END
{% endcapture -%}
{% assign Ergebnis = query | DirectQueryScalar -%}
{{ Ergebnis }}

Damit sparst Du Dir die Schleife in DotLiquid und lässt alles SQL machen. Du kannst dann auch die Erweiterte Eigenschaft zu einem Boolean machen.
Vielen Dank für die ausführliche Antwort.

"Du kannst dann auch die Erweiterte Eigenschaft zu einem Boolean machen." - Ich meine mich erinnern zu können, dass das Skript direkt von JTL gemacht wurde. Hier kann sich niemand erinnern wo es sonst herstammen könnte. Ich hatte ein Ticket geschrieben (schon lange her) und jemand wollte mal "reinschauen". Was genau meinst Du mit diesem Satz?
 

frankell

Sehr aktives Mitglied
9. September 2019
1.699
491
Flensburg
Zuletzt bearbeitet:

Thomas Berge

Moderator
Mitarbeiter
3. Dezember 2017
381
111
Hallo @Buinger,

prüfe bitte im Workflow Log, ob der Workflow ausgeführt wurde. Bei zeitverzögerten Workflows solltest du zwei Einträge für deinen Workflow finden. Einmal, dass der Workflow in die Queue eingefügt worden ist und wenn der Workflow durch den Worker abgearbeitet und Aktionen ausgeführt worden sind, wird im Workflow Log ein zweiter Eintrag geschrieben. Gibt es evtl. Fehlermeldungen im Workflow Log? Wenn es zwei Einträge im Log gibt, dann liegt es nicht an der Bedingung, dann könntest du prüfen, ob die Ausgabe an sich funktioniert. Kann die Rechnung manuell an den Kunden versendet werden?
 

Buinger

Gut bekanntes Mitglied
30. April 2009
341
15
Da, wo Du den Code der Erweiterten Eigenschaft eingibst, gibt es rechts oben ein Dropdown für den "Rückgabetyp". Boolean steht für Wahr/Falsch. Dem passen sich die Möglichkeiten bei den Workflowbedingungen einer ausgewählten Erweiterten Eigenschaft an.
Alles klar. Hast Du evtl. noch eine Zeile so dass der Versand bei diesen Seriennummer-Artikel-Bestellungen automatisch mit dem Workflow gesetzt wird wenn sie verschickt werden?
 

frankell

Sehr aktives Mitglied
9. September 2019
1.699
491
Flensburg
Weitere Möglichkeit:

Code:
{% capture query -%}
IF EXISTS (
    SELECT
        *
    FROM
        tLieferscheinPos AS LP
        JOIN Verkauf.tAuftragPosition AS AP ON LP.kBestellPos = AP.kAuftragPosition
        JOIN tArtikel AS ART ON AP.kArtikel = ART.kArtikel
    WHERE
        LP.kLieferschein =  {{ Vorgang.InterneLieferscheinnummer | SqlEscape  }}
        AND ART.nSeriennummernstatus = 1
)
BEGIN SELECT 'true' END
ELSE BEGIN SELECT 'false' END
{% endcapture -%}
{% assign Ergebnis = query | DirectQueryScalar -%}
{{ Ergebnis }}

Damit sparst Du Dir die Schleife in DotLiquid und lässt alles SQL machen. Du kannst dann auch die Erweiterte Eigenschaft zu einem Boolean machen.

Das war fälschlicherweise der Code für einen Versand- Workflow. Hier der korrekte für einen Auftrags-Workflow:

Code:
{% capture query -%}
IF EXISTS (
    SELECT
        *
    FROM
        Verkauf.tAuftragPosition AS AP
        JOIN tArtikel AS ART ON AP.kArtikel = ART.kArtikel
    WHERE
        AP.kAuftrag = {{ Vorgang.Stammdaten.InterneAuftragsnummer | SqlEscape  }}
        AND AP.nType = 1
        AND ART.nSeriennummernstatus = 1
)
BEGIN SELECT 'true' END
ELSE BEGIN SELECT 'false' END
{% endcapture -%}
{% assign Ergebnis = query | DirectQueryScalar -%}
{{ Ergebnis }}

so dass der Versand bei diesen Seriennummer-Artikel-Bestellungen automatisch mit dem Workflow gesetzt wird wenn sie verschickt werden

Das verstehe ich leider nicht ganz. Der Versand soll gesetzt werden, wenn verschickt wird?
 

Buinger

Gut bekanntes Mitglied
30. April 2009
341
15
Das war fälschlicherweise der Code für einen Versand- Workflow. Hier der korrekte für einen Auftrags-Workflow:

Code:
{% capture query -%}
IF EXISTS (
    SELECT
        *
    FROM
        Verkauf.tAuftragPosition AS AP
        JOIN tArtikel AS ART ON AP.kArtikel = ART.kArtikel
    WHERE
        AP.kAuftrag = {{ Vorgang.Stammdaten.InterneAuftragsnummer | SqlEscape  }}
        AND AP.nType = 1
        AND ART.nSeriennummernstatus = 1
)
BEGIN SELECT 'true' END
ELSE BEGIN SELECT 'false' END
{% endcapture -%}
{% assign Ergebnis = query | DirectQueryScalar -%}
{{ Ergebnis }}



Das verstehe ich leider nicht ganz. Der Versand soll gesetzt werden, wenn verschickt wird?
Ja genau, irgendwie müssen wir das bei Seriennummer-Artikeln immer manuell setzen.
 

frankell

Sehr aktives Mitglied
9. September 2019
1.699
491
Flensburg
Ja genau, irgendwie müssen wir das bei Seriennummer-Artikeln immer manuell setzen.

Das ist bei Seriennummernartikeln aber auch nicht anders zu erwarten. Du musst ja an irgendeiner Stelle eingeben, um welche Seriennummer es sich handelt. Wenn Du bspw. den Packtisch nutzen würdest (hört sich so an, als würdet Ihr den nicht nutzen), müsstest Du auch da eine Auswahl der Seriennummer treffen.
 

Buinger

Gut bekanntes Mitglied
30. April 2009
341
15
Das ist bei Seriennummernartikeln aber auch nicht anders zu erwarten. Du musst ja an irgendeiner Stelle eingeben, um welche Seriennummer es sich handelt. Wenn Du bspw. den Packtisch nutzen würdest (hört sich so an, als würdet Ihr den nicht nutzen), müsstest Du auch da eine Auswahl der Seriennummer treffen.
Doch, wir benutzen den Packtisch. Ist es nicht möglich, dass nach Auswahl der Seriennummer das zu automatisieren?
 

frankell

Sehr aktives Mitglied
9. September 2019
1.699
491
Flensburg
Doch, wir benutzen den Packtisch. Ist es nicht möglich, dass nach Auswahl der Seriennummer das zu automatisieren?

Ich habe schlicht Probleme zu verstehen, was Du möchtest. Wenn Du Packtisch nutzt, dann wird ja versendet.

Daher vielleicht noch mal nen Schritt zurück: Was genau wird für Dich wo genau wie genau nicht so angezeigt, wie es Deiner Meinung nach sollte? Gerne auch unterstützt durch Screenshots und die Angabe, wie es aussehen sollte.
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Workflow kurze Pause per Batch - Fehler "Die Eingabeumleitung wird nicht unterstützt" JTL-Workflows - Ideen, Lob und Kritik 6
Neu Workflow auf Zahlungseingang und Zahlungsweise JTL-Workflows - Ideen, Lob und Kritik 1
Neu Per Workflow Versandart ändern - EK wird nicht korrigiert JTL-Workflows - Ideen, Lob und Kritik 1
Neu Menge von Auftragspositionen per Workflow ändern User helfen Usern - Fragen zu JTL-Wawi 4
Neu Workflow Stücklistenbestandteile ausgeben JTL-Workflows - Ideen, Lob und Kritik 1
Neu Externe Belege per Workflow speichern Amazon-Anbindung - Fehler und Bugs 1
Verwiesen an Support Probleme mit dem Workflow JTL-Workflows - Fehler und Bugs 2
Workflow-Hilfe Zahlungserinnerung nach 3 Werktagen & Storno nach 7 Werktagen ohne Zahlung JTL-Wawi 1.10 7
Neu Zustellzeit EXPRESS Sendungen - als Bedingung für Workflow User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow - Ausliefern - Jeden Tag um 04:00 Uhr, außer Sa. User helfen Usern - Fragen zu JTL-Wawi 4
Neu Wie kann es sein, dass ein "Rechnung erstellt" - Workflow 3 Tage später nochmal ausgelöst wird? User helfen Usern - Fragen zu JTL-Wawi 5
In Diskussion Rechnung per mail / Workflow gibt Fehler aus JTL-Workflows - Fehler und Bugs 6
Neu Workflow mehrere Werte setzen Shopify-Connector 2
In Diskussion Workflow für Amazon Tel. Nummern löschen JTL-Workflows - Ideen, Lob und Kritik 3
Neu Lässt sich die Artikelsichtbarkeit pro Kundengruppe per Workflow steuern? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Variabel für "Bearbeiter" im Workflow User helfen Usern - Fragen zu JTL-Wawi 8
Gelöst BUG - Falsches Workflow wird ausgeführt JTL-Workflows - Fehler und Bugs 2
Neu Workflow der die Versandart für den Export zu Amazon nach dem ausliefern über WMS ändert User helfen Usern - Fragen zu JTL-Wawi 3
Gelöst [WAWI-75772] Workflow Erscheinungsdatum Feld leeren deaktiviert Überverkäufe möglich JTL-Workflows - Fehler und Bugs 2
Neu Workflow Artikel Erscheint am Datum überschritten, Bestandsführung aktivieren. User helfen Usern - Fragen zu JTL-Wawi 2
In Diskussion BUG Workflow bricht ab JTL-Workflows - Fehler und Bugs 6
Beantwortet Workflow: Zahlungserinnerung aus dem JTL Guid, versendet beim Testen mehr als nur 1 E-Mail JTL-Workflows - Fehler und Bugs 4
Beantwortet Brauche Hilfe Workflow Multichannel Rechnungserstellung nach Versand von Amazon JTL-Workflows - Ideen, Lob und Kritik 1
In Diskussion Workflow: Prüfen ob Artikel mit Fehlbestend nach 48h im Zulauf JTL-Workflows - Ideen, Lob und Kritik 2
Beantwortet Workflow Warengruppe nicht ausführen bei bestimmter Warengruppe, bei unterschiedlichen klappt es nicht JTL-Workflows - Fehler und Bugs 3
Manueller Workflow via App wird nicht vollständig ausgeführt JTL-Wawi App 5
In Diskussion Workflow - noch nicht versendete Aufträge JTL-Workflows - Fehler und Bugs 10
In Diskussion Workflow für Kleinpaket anhand eigener "Volumenzahl" JTL-Workflows - Ideen, Lob und Kritik 5
Neu Workflow Überprüfung Eigene Felder User helfen Usern - Fragen zu JTL-Wawi 3
Issue angelegt [WAWI-75077] Workflow Mahnlauf ignoriert Karenztage JTL-Workflows - Fehler und Bugs 3
Anhänge bei zb. Auftrag per Email versenden | Workflow JTL-Wawi 1.9 5
Beantwortet Workflow einrichten bei Sonderpreise = Kategoriezuordnung User helfen Usern - Fragen zu JTL-Wawi 1
Neu Expressbearbeitung (unter Zusatzverpackung) in der WaWi per Workflow abfangen Allgemeine Fragen zu JTL-Shop 2
Issue angelegt [WAWI-80989] Workflow "Aufträge zusammenfassen" JTL-Workflows - Ideen, Lob und Kritik 1
Verkäuferinventar anfordern Otto funktioniert nicht JTL-Wawi 1.10 1
E-Mails werden nicht versandt. Testmail funktioniert "string.Empty'' is not a valid value for ''toAdresses'' JTL-Wawi 1.10 2
Neu Connector funktioniert seit Fehler E-Mail nicht mehr Shopify-Connector 3
Neu DSFinv-k Export funktioniert nicht. JTL-POS - Fehler und Bugs 4
auftragspositionen verschieben funktioniert nicht JTL-Wawi 1.10 1
Neu Connector funktioniert nicht (und täglich grüßt das Murmeltier) Shopify-Connector 2
Neu Der Connector funktioniert plötzlich nicht mehr Shopify-Connector 1
Neu JTL wawi Fehler beim Zugriff auf die Datenbank / Datenbankverwaltung aber funktioniert Installation von JTL-Wawi 3
Neu Update auf 5.4.1. - DB-Update funktioniert nicht Einrichtung von JTL-Shop4 3
Artikelsuche mit % Platzhalter funktioniert nicht mehr JTL-Wawi 1.10 3
Attribute aktualisieren funktioniert nicht JTL-Ameise - Fehler und Bugs 6
Neu Erstabgleich funktioniert nicht Shopify-Connector 5
VCS-Lite Abgleich mit Amazon funktioniert seit 1.10.10.3 nicht mehr und zerstört so die Rate gültiger Sendungsverfolgungsnummern Amazon-Anbindung - Fehler und Bugs 31
Neu Neue Variation / Neue Werte anlegen funktioniert nicht JTL-Wawi - Fehler und Bugs 0
Neu Amazon-Abgleich funktioniert nicht – UK-Bestellungen fehlen Amazon-Anbindung - Fehler und Bugs 2
Neu Shopify Connector funktioniert nicht mehr Shopify-Connector 231

Ähnliche Themen