In Diskussion Bestand aus bestimmten Lager bei Auftragserstellung abfragen

Sizzoe

Mitglied
29. Mai 2024
9
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.612
801
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
9
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
9
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.612
801
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.612
801
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
1.11.8 - Mengen aus FBA Umlagerungen werden nicht vom verfügbaren Bestand abgezogen JTL-Wawi 1.11 3
Neu Überverkäufer aktiviert, es wird aber kein Bestand zu Amazon übertragen Amazon-Anbindung - Fehler und Bugs 0
Neu Workflow automatisch bei Warenausgang für Bestand und Puffer JTL-Wawi - Ideen, Lob und Kritik 11
Neu Abgleich erstellt neue Artikel aber ohne Bestand und Bestandsführung WooCommerce-Connector 2
Artikel mit Bestand 0 ausblenden JTL-Wawi 1.9 5
Artikel mit Bestand einen Einkaufstop setzen JTL-Wawi 1.11 3
Kundengutschrift - Button: "Speichern und Bestand buchen" fehlt. JTL-Wawi 1.11 0
Kaufland sendet keinen Bestand an JTL JTL-Wawi 1.10 1
Neu Stücklistenartikel Bestand "0" obwohl vorhanden. User helfen Usern - Fragen zu JTL-Wawi 2
ebay angebote aus globale Angebotsvorlage erstellen JTL-Wawi 1.11 0
Neu Merkmale Shop an oder Aus Allgemeine Fragen zu JTL-Shop 0
Globale Textbausteine aus alter WAWI 0.9 JTL-Wawi 1.10 0
Worker versendet keine E-Mails mehr aus der Workflow Queue JTL-Wawi 2.0 6
Neu Eigenes Feld aus Artikel in Artikeletikett ausgeben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu 1000te Zugriffe aus der ganzen welt auf applepay.php Allgemeine Fragen zu JTL-Shop 2
Neu Anwalt um aus Ads Dienstleistungsvertrag raus zu kommen User helfen Usern 4
Neu Zahlung von Kunden aus dem EU Ausland, Mwst falsch Plugins für JTL-Shop 1
Neu CSS GeoIP MwSt.-Finder 2.7.1 verhindert das Anlegen von Shop-Kundenkonten aus der Wawi Plugins für JTL-Shop 1
Neu Shop 5.6.1: Probleme beim Entfernen von Artikeln aus dem Warenkorb JTL-Shop - Fehler und Bugs 5
Neu Versandart Name aus Lieferschain anstatt aus auftrag einsetzen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu Rückverfolgung des Verkaufskanal bei Angeboten aus dem Shop User helfen Usern - Fragen zu JTL-Wawi 3
Neu Rückverfolgung des Verkaufskanal bei Angeboten aus dem Shop Eigene Übersichten in der JTL-Wawi 0
Neu Import von Rechnungen oder Lieferungen aus anderem System Starten mit JTL: Projektabwicklung & Migration 0
Neu Erscheinungsdatum im Artikel aus Lieferdatum in Bestellung Arbeitsabläufe in JTL-Wawi 2
Serienmails aus dem Shop nach Kundenimport Einrichtung JTL-Shop5 0
Neu Artikel aus Shopware in der Wawi importieren und WMS redy machen Shopware-Connector 0
Versandbenachrichtungen werden jetzt aus Wawi versendet JTL-Wawi 1.11 9
Neu Frage zu SQL Statement - Kunden-Kommentar aus Auftrag auf Pickliste User helfen Usern - Fragen zu JTL-Wawi 1
Neu Alttexte aus OPC werden beim Slider nicht im Code angezeigt JTL-Wawi - Fehler und Bugs 0
Neu Idee - Versanddatum aus Amazon & eBay als Feld in JTL übernehmen eBay-Anbindung - Ideen, Lob und Kritik 0
Neu Aus einfachen Variationen Variationskombinationen machen Arbeitsabläufe in JTL-Wawi 3
Teilgelieferte Umlagerung bucht vollständig aus Streckenlager aus JTL-Wawi 1.8 0
Artikel Z besteht aus den Positionen A, B und C mit unterschiedlichen Steuersätzen. Wie im Angebot, Auftrag, Rechnung richtig dargestellen ? JTL-Wawi 1.11 4
Neu Umlaute aus Kurzbeschreibung werden nicht angezeigt Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Artikel Gehen nicht aus In Aufträge raus nach Versand JTL-Wawi 1.11 1

Ähnliche Themen