In Diskussion Bestand aus bestimmten Lager bei Auftragserstellung abfragen

Sizzoe

Mitglied
29. Mai 2024
7
1
Hallo zusammen,

ich habe verschiedene WMS-Lager in Verwendung.
Grundsätzlich handelt es hierbei um zweierlei Lagertypen:
  1. "Vor-Ort-Lager"
  2. "Außenlager"
Zweck des Workflows ist es, eine Benachrichtigung zu erstellen, wenn der "Vor-Ort-Lagerbestand" einen gewissen Wert erreicht bzw. unterschreitet, damit man rechtzeitig eine Umlagerung anstoßen kann.

Quasi: Wenn Bestand von Artikel X in Lager "Vor-Ort" <= 100, dann sende E-Mail mit:

1. Artikelnamen der betroffenen Artikel
2. "Vor-Ort-Bestände" der betroffenen Artikel
3. Einem Hinweis, dass umgelagert werden soll

Ich habe verschiedene Scripte erstellt und getestet, leider erfolglos.

Wenn mir jemand sagen könnte, wie ich die Bestände der Auftragsartikel in einem bestimmten Lager (Per Nummer oder Kürzel identifizieren) abrufen kann - das würde mir sehr helfen und ausreichen.

Danke an Alle und viele Grüße!
Sizzoe
 

frankell

Sehr aktives Mitglied
9. September 2019
2.020
579
Flensburg
Hallo @Sizzoe,

bei der Bedingung eine Erweiterte Eigenschaft nutzen mit Rückgabetyp Boolean und dem folgenden Code:

Code:
{% assign Umlagerung = false -%}
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% capture query -%}
SELECT
    CASE WHEN fBestand < 100 THEN 'true'
    ELSE 'False'
    END
FROM
    tlagerbestandProLagerLagerartikel
WHERE
    kArtikel = {{ Artikelbeschreibungen.InterneArtikelnummer | SqlEscape }}
    AND kWarenlager = (
        SELECT
            kWarenlager
        FROM
            tWarenLager
        WHERE
            cName = 'Vor-Ort-Lager'
    );
{% endcapture -%}
{% assign result = query | DirectQueryScalar -%}
{% if result == 'true' -%}
{% assign Umlagerung = true -%}
{% endif -%}
{% endfor -%}
{{ Umlagerung }}

Im Mailtext dann den Code in geänderter Form verwenden:

Code:
Umzulagern (ArtNr, ArtName, Bestand):
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% capture query -%}
SELECT
    CAST(fBestand AS INT)
FROM
    tlagerbestandProLagerLagerartikel
WHERE
    kArtikel = {{ Artikelbeschreibungen.InterneArtikelnummer | SqlEscape }}
    AND kWarenlager = (
        SELECT
            kWarenlager
        FROM
            tWarenLager
        WHERE
            cName = 'Vor-Ort-Lager'
    );
{% endcapture -%}
{% assign result = query | DirectQueryScalar -%}
{% if result < 100 -%}
{{ Artikelbeschreibungen.Artikelnummer }}, {{ Artikelbeschreibungen.Artikelbezeichnung }}, {{ result }}
{% endif -%}
{% endfor -%}
 
  • Ich liebe es
Reaktionen: Sizzoe

Sizzoe

Mitglied
29. Mai 2024
7
1
Hallo @Sizzoe,

bei der Bedingung eine Erweiterte Eigenschaft nutzen mit Rückgabetyp Boolean und dem folgenden Code:

Code:
{% assign Umlagerung = false -%}
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% capture query -%}
SELECT
    CASE WHEN fBestand < 100 THEN 'true'
    ELSE 'False'
    END
FROM
    tlagerbestandProLagerLagerartikel
WHERE
    kArtikel = {{ Artikelbeschreibungen.InterneArtikelnummer | SqlEscape }}
    AND kWarenlager = (
        SELECT
            kWarenlager
        FROM
            tWarenLager
        WHERE
            cName = 'Vor-Ort-Lager'
    );
{% endcapture -%}
{% assign result = query | DirectQueryScalar -%}
{% if result == 'true' -%}
{% assign Umlagerung = true -%}
{% endif -%}
{% endfor -%}
{{ Umlagerung }}

Im Mailtext dann den Code in geänderter Form verwenden:

Code:
Umzulagern (ArtNr, ArtName, Bestand):
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% capture query -%}
SELECT
    CAST(fBestand AS INT)
FROM
    tlagerbestandProLagerLagerartikel
WHERE
    kArtikel = {{ Artikelbeschreibungen.InterneArtikelnummer | SqlEscape }}
    AND kWarenlager = (
        SELECT
            kWarenlager
        FROM
            tWarenLager
        WHERE
            cName = 'Vor-Ort-Lager'
    );
{% endcapture -%}
{% assign result = query | DirectQueryScalar -%}
{% if result < 100 -%}
{{ Artikelbeschreibungen.Artikelnummer }}, {{ Artikelbeschreibungen.Artikelbezeichnung }}, {{ result }}
{% endif -%}
{% endfor -%}
Guten Morgen frankell,

vielen lieben Dank (schon wieder :) )!

Habe es getestet - funktioniert!

Ich wünsche einen angenehmen Tag und sende viele Grüße!
Sizzoe
 

Sizzoe

Mitglied
29. Mai 2024
7
1
Falls jemand ein ähnliches Anliegen hat. Ich habe hier die Prüfung auf einen bestimmten Kunden und gegen den Mindestbestand ergänzt:

Code:
{% assign Umlagerung = false -%}
{% if Vorgang.Stammdaten.Kunde.InterneKundennummer == 'Hier_die_interne_Kundennummer' -%}
    {% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
    {% capture query -%}
    SELECT
        CASE
            WHEN lb.fBestand < a.nMidestbestand THEN 'true'
            ELSE 'False'
        END AS BestandCheck
    FROM
        tlagerbestandProLagerLagerartikel lb
    JOIN
        tArtikel a ON lb.kArtikel = a.kArtikel
    WHERE
        lb.kArtikel = {{ Artikelbeschreibungen.InterneArtikelnummer | SqlEscape }}
        AND lb.kWarenlager = (
            SELECT
                kWarenlager
            FROM
                tWarenLager
            WHERE
                cName = 'Hier_der_Name_des_Lagers'
        );
    {% endcapture -%}
    {% assign result = query | DirectQueryScalar -%}
    {% if result == 'true' -%}
    {% assign Umlagerung = true -%}
    {% endif -%}
    {% endfor -%}
{% endif -%}   
{{ Umlagerung }}

Sodass der Mailcode dann wie folgt aussieht:
Code:
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
  {% capture queryBestand -%}
    SELECT CAST(fBestand AS INT)
    FROM tlagerbestandProLagerLagerartikel
    WHERE kArtikel = {{ Artikelbeschreibungen.InterneArtikelnummer | SqlEscape }}
      AND kWarenlager = (
        SELECT kWarenlager
        FROM tWarenLager
        WHERE cName = 'Hier_der_Name_des_Lagers'
      );
  {% endcapture -%}
  {% assign resultBestand = queryBestand | DirectQueryScalar | plus: 0 -%}

  {% capture queryMindestbestand -%}
    SELECT CAST(nMidestbestand AS INT)
    FROM tArtikel
    WHERE kArtikel = {{ Artikelbeschreibungen.InterneArtikelnummer | SqlEscape }};
  {% endcapture -%}
  {% assign resultMindestbestand = queryMindestbestand | DirectQueryScalar | plus: 0 -%}

  {% if resultBestand < resultMindestbestand -%}
    <br><b>Artikelnummer:</b> {{ Artikelbeschreibungen.Artikelnummer }}<br>
    <b>Artikelname:</b> {{ Artikelbeschreibungen.Artikelbezeichnung }}<br>
    <b>Vor-Ort-Bestand:</b> {{ resultBestand }}<br>
    <b>Mindestbestand:</b> {{ resultMindestbestand }}<br>
  {% endif -%}
{% endfor -%}

VG
Sizzoe
 
  • Gefällt mir
Reaktionen: frankell

frankell

Sehr aktives Mitglied
9. September 2019
2.020
579
Flensburg
Guten Morgen frankell,

vielen lieben Dank (schon wieder :) )!

Habe es getestet - funktioniert!

Ich wünsche einen angenehmen Tag und sende viele Grüße!
Sizzoe

Gerne.

Noch eine Minikorrektur, die zwar im vorliegenden Fall egal ist, aber falls mal jemand die Logik umdrehen und mit False arbeiten möchte/muss:

Dann müsste aus "False" immer "false" werden.
 

frankell

Sehr aktives Mitglied
9. September 2019
2.020
579
Flensburg
Falls jemand ein ähnliches Anliegen hat. Ich habe hier die Prüfung auf einen bestimmten Kunden und gegen den Mindestbestand ergänzt:

{% if Vorgang.Stammdaten.Kunde.InterneKundennummer == 'Hier_die_interne_Kundennummer' -%}

Danke für die Erweiterung!

Die wenigsten dürften wissen, was die "interne" Kundennummer ist und wie man die herausfindet, daher vielleicht eher:

Code:
{% if Vorgang.Stammdaten.Kunde.Kundennummer == 'Hier_die_Kundennummer' -%}
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu eBay Angebote bestehen lassen auf eBay bei 0 Bestand in WaWi User helfen Usern - Fragen zu JTL-Wawi 4
Workflow soll wenn Artikel 0 Bestand für 35 Tage hat diesen auf inaktiv setzen JTL-Wawi 1.10 1
Neu Auslesen Bestand per Lager für Workflow zur Anzeige im Onlineshop User helfen Usern - Fragen zu JTL-Wawi 2
Ebay Angebot mit Kindartikel die keinen Bestand haben per Ameise importieren JTL-Wawi 1.6 5
Neu Bestand und Preisanbgleich Lister 1.0 nach 31.07.25 noch möglich Amazon-Lister - Ideen, Lob und Kritik 1
Artikel Mindest Bestand und Maximal Bestand kaufland.de - Anbindung (SCX) 0
Neu Mittels Ameise Aufträge aus 2 einzelnen CSV Dateien erstellen Schnittstellen Import / Export 5
Neu Enorme Anfragen/Aufrufe vorw. aus Brasilien, Zugriffe auf Merkmalfilter Allgemeine Fragen zu JTL-Shop 4
Wichtig DHL setzt Versand in USA ab 26.08.25 aus JTL-ShippingLabels - Fehler und Bugs 1
Neu Portlet - Zugriff auf Settings aus dem Adminbereich Technische Fragen zu Plugins und Templates 0
kann man inzwischen aus der Wawi auf kaufland Varianten bilden, wenn ja, ab welcher Version? kaufland.de - Anbindung (SCX) 0
Buchhalterische Abwicklung von Gutscheinen aus Rechnungskorrekturen Allgemeine Fragen zu JTL-Vouchers 0
Neu Rechnungskorrektur direkt aus „Verkauf → Aufträge → Mit Rechnung“ möglich? Arbeitsabläufe in JTL-Wawi 2
Webinar: So sieht ein vollständiges E-Commerce-Steuersetup wirklich aus - mit SKULD & countX am 25.09.25 Messen, Stammtische und interessante Events 0
Neu Entfernung von Elementen aus dem Template Templates für JTL-Shop 1
Neu Bestellungen aus der Vergangenheit Shopify-Connector 3
Kunden UStID wird nicht aus Amazon in JTL übermittelt Amazon-Anbindung - Fehler und Bugs 4
Neu Freitexte aus Shopware in JTL Allgemeine Fragen zu JTL-Shop 7
Beantwortet Workflow löst nicht aus, obwohl alle Bedingungen erfüllt JTL-Workflows - Fehler und Bugs 1
Neu JTL WaWai Artikel aus Angebote von Plattformen Amazon+Otto erstellen Einrichtung und Installation von JTL-eazyAuction 0
Neu JTL Shop (anderes Template) eigene Felder aus Wawi als TAB im Shop User helfen Usern - Fragen zu JTL-Wawi 12
JTL-FFN aus JTL-WaWi entfernen JTL-Wawi 1.9 0
Neu Mail Bestellbestätigung aus dem Shop Betrieb / Pflege von JTL-Shop 1
Wawi WindowsDienst läuft - Worker dennoch aus JTL-Wawi 1.10 18
Neu Rückzahlungen aus JTL Wawi direkt auslösen User helfen Usern - Fragen zu JTL-Wawi 0
Artikelbezeichnungen aus Angebot fehlen im Auftrag JTL-Wawi 1.10 2
Neu JTL-Shop: Anzeige der Artikel aus untergeordneten Kategorien Allgemeine Fragen zu JTL-Shop 2
Neu Workflow lößt bei Track & Trace nicht aus User helfen Usern - Fragen zu JTL-Wawi 1
Neu Korrektur Lieferadresse von Auftrag aus POS User helfen Usern - Fragen zu JTL-Wawi 0
Fehler beim Belegabruf JTL2Datev aus JTL / "Belegkopf-ExtAuftrag...." JTL-Wawi 1.10 2
Neu Produktdatenblatt aus Vorlage Artikeletikett erstellen mit mehr als einer Seite Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu Druckvorlage Artikel Etikett Bilder 1, 2, 3 - auch Ausgabeweg POS - beliebig Bilder in jeder Vorlage aus Datenbank zeigen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Artikel-Bilder löschen entfernt diese nicht aus der DB JTL-Wawi 1.8 4
sporadische Anzeige von Kassenverkauf aus einer Filiale in der Wawi JTL-Wawi 1.9 0
In Diskussion Rechnung per mail / Workflow gibt Fehler aus JTL-Workflows - Fehler und Bugs 6
Neu Automatisierter Picklistendruck in einem bestimmten Lager User helfen Usern - Fragen zu JTL-Wawi 1
Neu Export mit bestimmten Label JTL Ameise - Eigene Exporte 1

Ähnliche Themen