Nach einiger Zeit wieder ein kleiner Codeschnipsel für die JTL Warenwirtschaft hier. Hintergrund sind die eher beschränkten Möglichkeiten in der mir zugrunde liegenden JTL WaWi Version 0.99711 betreffend Inventurlisten.

Zwar bietet JTL seit kurzem die Möglichkeit, mittels externem Exporttool (JTL Ameise) teilweise komplexe Artikellisten in CSV Dateiformate zu exportieren, was dabei aber fehlt ist das Feld „Lagerort“. Auch die in der JTL WaWi integrierte Funktion zur Erstellung von Inventurlisten (Menu Artikelverwaltung -> Inventur) ist suboptimal, da sie nur den Druck oder Export als PDF vorsieht.

Möchte man eine CSV und im weiteren Verlauf eine editierbare Excel Tabelle zur Inventur nutzen (beispielsweise um den aktuellen Lagerbestand einzutragen und sofort nach Inventur automatisiert in den Datenbestand zu übernehmen), benötigen wir also einen eigene Lösung. An dieser Stelle mein Vorschlag in Form einer SQL Anfrage:

SELECT lo.cName as Lagerort, a.cArtNr as Artikelnummer, a.cName as Artikelname, a.cBarcode as EAN, a.nLagerbestand as Lagerbestand FROM (tartikel a LEFT OUTER JOIN tArtikelLagerOrt l ON (l.kArtikel = a.kArtikel)) LEFT OUTER JOIN tlagerort lo ON (l.kLagerOrt = lo.kLagerOrt)

Man kann dieses Script in diversen MS SQL Server Management Lösungen verwenden, oder die Anfrage direkt auf die Datenbank loslassen. Ich selbst habe das Snippet in eine eigene Toolsammlung für die JTL WaWi eingebunden.

Erzeugt wird durch die Anfrage eine Ergbnistabelle der Art:

Lagerort Artikelnummer Artikelname EAN Lagerbestand
A10 1234 Testartikel 1 10
A20 1234 Testartikel 1 10
A20 5678 Testartikel 2 0
999 Testartikel 3 10

Wie in der kleinen Beispielliste zu sehen, deckt das Script auch folgende Möglichkeiten in einer Inventurliste ab:

  • ein Artikel kann verschiedene Lagerorte haben
  • an einem Lagerort können verschiedene Artikel hinterlegt sein
  • Artikel können auch keinen Lagerort haben

Und nach der Inventur?

Wie oben beschrieben ist der Import aus dem erstellten CSV Format logisch der nächste Schritt. Diese Anforderungen muss ich aber derzeit noch nicht erfüllen. Ich hoffe bis dahin hat JTL ein besseres Handling der Inventur in die JTL Ameise integriert.

Optimierung?

Ich bin bei weitem kein Profi im Bereich SQL. Daher hier die obligatorische Warnung, diese Anfrage bitte an einem Testsystem zu probieren, auch wenn ich nur lesend auf die Datenbank zugreife. Ideen zur Optimierung oder Erweiterung diskutiere ich gerne in den Kommentaren!

2 Antworten zu “Editierbare Inventurliste inkl. Lagerort mit der JTL WaWi”

  1. Michael sagt:

    Hallo,

    kann es sein, dass da ein Fehler im Code ist.
    Wenn ich den Code kopiere und einfüge kommt die Meldung

    MySQL meldet: Dokumentation
    #1146 – Table ‚UNSER_DATENBANKNAME.tArtikelLagerOrt‘ doesn’t exist

    Liegt hier ein Fehler vor?

    Grüße
    Michael

  2. NiBa sagt:

    Hallo Michael,

    bist Du sicher, dass der Datenbankname auch korrekt gesetzt ist?
    Ansonsten funktioniert das Script so beim Kunden, ohne weitere Infos ist es jetzt schwer, einen möglichen Fehler auszumachen.

    Viele Grüße!

Eine Antwort schreiben