Gelöst SQL gesucht / WMS Pickliste offen und gepickt

Shopsitters

Sehr aktives Mitglied
27. Juli 2011
1.397
78
Schleswig-Holstein
Hallo Forum,

Ich wüsste gerne welcher SQL Befehl hinter der Anzeige der Picklisten im WMS steht, also Wie viele Aufträge eines Typs offen sind.
Vielleicht ein wenig holprig ausgedrückt. IM WMS kann unter > Warenausgang ja eine neue Pickliste nach Typ erstellt werden. Wir
haben dort zB 4 verschiedene Vorlagen. Auf dem Button steht die Zahl wie viele Aufträge das wären. Diese SQL Abfrage suche ich
für eine Funktion die ich mit Workflows umsetzen will.

Weiterhin müsste ich auch per zweitem SQL wissen wie viele unverpackte Picklisten nach Typ (wie oben) bestehen.

1601385060964.png
Ich suche mich hier in der DB wahnsinnig um die Zusammenhänge zu verstehen, komme aber nicht weiter.
 

frankw

Moderator
Mitarbeiter
15. Dezember 2017
652
234
Hürth
Hallo,

Das ist eine richtig komplizierte Sache ;)

Hier der Aufruf an die dazugehörige SQL-Prozedur.
Im SQL-Management Studio ausführen und für @kWarenlager und @kPicklisteVorlage passende Werte einsetzen:

SQL:
DECLARE @RC int
DECLARE @kWarenlager int = 5
DECLARE @kPicklisteVorlage int = 1
DECLARE @kBenutzer int = 0
DECLARE @kSessionID int = 0
DECLARE @kAnzahl int

EXECUTE @RC = [dbo].[spPicklisteErstellenTest]
   @kWarenlager
  ,@kPicklisteVorlage
  ,@kBenutzer
  ,@kSessionID
  ,@kAnzahl OUTPUT

  SELECT @kAnzahl
GO


Gruß,
Frank
 
  • Gefällt mir
Reaktionen: Stetto

Shopsitters

Sehr aktives Mitglied
27. Juli 2011
1.397
78
Schleswig-Holstein
Moin Frank,

danke für die Hilfe - dann versteh ich das leider nicht. In der Tabelle tPicklistenVorlage sind tausende Datensätze drin. Das sind doch sicher alle jemals aus Picklistenvorlagen erstellten Picklisten oder?
Wenn ich mit den Werte "spiele" komme ich zwar zu einigermaßen plausiblen Ergebnissen, aber ein System erkenne ich hier nicht.

Ist in der Tabelle auch ein Flag für abgeschlossene Picklisten, dann würde ich das ja eingrenzen können, gesehen habe ich sowas aber nicht.
Hier muss ich sicherlich eine Referenz zu tPicklisten und TPicktilsteStatus haben?
 

frankw

Moderator
Mitarbeiter
15. Dezember 2017
652
234
Hürth
Ja, korrekt, da sind alle erzeugten Picklistenvorlagen drin.

Die aktuellen Vorlagen sind die:
SQL:
select * from tPicklisteVorlage where nIstVorlage = 1

Gruß,
Frank
 
Zuletzt bearbeitet:

frankw

Moderator
Mitarbeiter
15. Dezember 2017
652
234
Hürth
Hallo Lars,

was genau möchtest herausfinden? Ich hab das noch nicht verstanden.

Die Prozedur berechnet ja die nächsten zu erstellenden Picklisten.
Wenn es um den Bearbeitungsstatus der bereits vorhandenen Picklisten geht, dann ist das was ganz anderes.

Gruss,
Frank
 

Shopsitters

Sehr aktives Mitglied
27. Juli 2011
1.397
78
Schleswig-Holstein
Ich möchte eigentlich nur das ich mit einem Workflow abfragen kann ob Aufträge die zu einer definierten Picklistenvorlage passen offen sind. Wir fertigen manche Produkte "On-Demand" und haben dafür eigene Picklistenvorlagen
Jetzt möchte ich mit einem Workflow mittels SQL Abfrage automatisch prüfen ob wir Aufträge auf Pickliste XYZ setzen können, also ob "on-demand" Aufträge vorhanden sind.

im zweiten Schritt / als zweiter Workflow möchte ich dann prüfen ob "on-demand" Aufträge zwar gepickt, aber noch nicht versendet wurden, also offene Picklisten nach bestimmten Typ
 
  • Gefällt mir
Reaktionen: frankw

Stetto

Sehr aktives Mitglied
2. Juli 2009
4.811
580
  1. Um die gewünschte Vorlage zu finden, nimmst du das SQL von Frank aus Post #4 und ergänzt es am Ende um ein "and cName = '<Vorlagenname>' " und das Sternchen ( * ) ersetzt du durch "kPicklisteVorlage" - so erhälst du den Integer, den du für die Berechnung mit dem SQL aus Post #2 als Picklistenvorlage einträgst.
  2. Um zu schauen, ob es offene Picklisten gibt, nimmst du folgendes SQL
    • SELECT kPickliste FROM tPickliste WHERE nStatus < 40 AND kPicklisteVorlage IN (SELECT kPicklisteVorlage FROM tPicklisteVorlage WHERE cName = '<Vorlagenname>' )
Fix aus dem Kopf geschrieben, aber dürfte so passen :)

Ein Workflow braucht allerdings immer ein auslösendes Ereignis. Welches willst du dafür verwenden? Oder willst manuelle Workflows verwenden?

Mit ein bisschen C# Programmierung kannst du auch manuelle Workflows über die WawiExtern.dll bspw. über den Windows Ereignismanager (oder wie der heißt) anstoßen.
 
  • Gefällt mir
Reaktionen: frankw

Shopsitters

Sehr aktives Mitglied
27. Juli 2011
1.397
78
Schleswig-Holstein
Ich komme so innerhalb des Workflows nicht weiter ...

Code:
{% assign offeneFODPicklisten = ' DECLARE @RC int
DECLARE @kWarenlager int = 9
DECLARE @kPicklisteVorlage int = 31377
DECLARE @kBenutzer int = 0
DECLARE @kSessionID int = 0
DECLARE @kAnzahl int
EXECUTE @RC = [dbo].[spPicklisteErstellenTest]
   @kWarenlager
  ,@kPicklisteVorlage
  ,@kBenutzer
  ,@kSessionID
  ,@kAnzahl OUTPUT
SELECT @kAnzahl ' | DirectQueryScalar -%}
{{ offeneFODPicklisten }}

Ich möchte als Ergebnis die Anzahl der offenen Picklisten haben. Bekommen aber nur eine Fehlermeldung

1601479591707.png
 
Zuletzt bearbeitet:

Stetto

Sehr aktives Mitglied
2. Juli 2009
4.811
580
So könnte es funktionieren:
C:
{% assign offeneFODPicklisten = 'DECLARE @RC int;DECLARE @kWarenlager int = 9;DECLARE @kPicklisteVorlage int = 31377;DECLARE @kBenutzer int = 0;DECLARE @kSessionID int = 0;DECLARE @kAnzahl int;EXECUTE @RC = [dbo].[spPicklisteErstellenTest] @kWarenlager,@kPicklisteVorlage,@kBenutzer,@kSessionID,@kAnzahl OUTPUT;SELECT @kAnzahl'-%}
{{ offeneFODPicklisten | DirectQueryScalar }}

Aber eigentlich ist das auch bisl krass für ein "Assign" :) Schau dir mal den Befehl "Capture" an, damit sollte es ebenfalls gehen:
C:
{% capture offeneFODPicklisten %}
DECLARE @RC int
DECLARE @kWarenlager int = 9
DECLARE @kPicklisteVorlage int = 31377
DECLARE @kBenutzer int = 0
DECLARE @kSessionID int = 0
DECLARE @kAnzahl int
EXECUTE @RC = [dbo].[spPicklisteErstellenTest]
   @kWarenlager
  ,@kPicklisteVorlage
  ,@kBenutzer
  ,@kSessionID
  ,@kAnzahl OUTPUT
SELECT @kAnzahl'
{% endcapture -%}
{{ offeneFODPicklisten | DirectQueryScalar }}

Beides aus dem Bauch heraus geschrieben und nicht getestet.

Oder ganz "dreist" -- versuch mal so:
C:
{{ "DECLARE @Anzahl int;EXECUTE [dbo].[spPicklisteErstellenTest] 9,31377,0,0,@Anzahl OUTPUT;SELECT @Anzahl" | DirectQueryScalar }}
 
  • Gefällt mir
Reaktionen: forumjtlolshopag

Stetto

Sehr aktives Mitglied
2. Juli 2009
4.811
580
:confused: alle drei würden vermutlich funktionieren, allerdings sind INSERTS, DELETS, EXECUTES in DotLiquid gesperrt.

Was es nicht unmöglich macht :) nur noch komplizierter o_O

  1. Du musst das SQL in eine Batch-Datei (*.bat) auslagern
  2. Die Batch so schreiben, dass du die Anzahl am Ende als Rückgabewert bekommst (oder einen alternativen true/false Rückgabewert
  3. Workflow-Aktion "Ausführen" > Programm die Batch > Parameter der Rückgabewert > Kommandozeile = ja (keine Popups)
  4. Abbrechen, wenn Ergebnis = 0 / false (keine weiteren Aktionen ausführen)
  5. Und als zweite Aktion dann bspw. deine gewünschte E-Mail versenden oder so
In welchem Kontext willst du das eigentlich verwenden? Was ist die auslösende Aktion oder in welcher DotLiquid-Vorlage soll das eingebaut werden?
 

Shopsitters

Sehr aktives Mitglied
27. Juli 2011
1.397
78
Schleswig-Holstein
Eigentlich ganz cool . Die auslösende Aktion ist das bei dem Workflow Pickliste offen in Abteilung A eine Lampe leuchte wenn gepickt geht die Abteilung A aus und in B geht die an. Wenn dann die Pickliste versendet wird geht die in B wieder aus.

A ist bei uns das Lager das die Artikel die veredelt werden picken soll und bringt die Artikel mit der Pickliste ( Zettel pro Auftrag) in die Fertigung (B) dort sagt die Lampe dann aus das neue zu veredelnde Aufträge da / gepickt sind. Wenn die veredelt wurde geht die Ware mit der Pickliste in Papierform wieder in Lager und wird am Packplatz verpackt und in B geht die Lampe aus (außer es sind mehr Aufträge noch offen)

Als auslösende Ereignisse werden die Workflows unter Auftrag angelegt + geändert laufen.

Die Lösung per Batch finde ich, da dadurch noch eine weitere Fehlerquelle vorhanden ist, "semicool" ... wenn es nicht andern geht überlegen wir uns das.
Uns interessiert eigentlich auch nicht die Anzahl der offenen sondern nur > 0 = wahr oder ähnlich.
 

Stetto

Sehr aktives Mitglied
2. Juli 2009
4.811
580
Ja, deshalb der Hinweis mit dem True/False - wenn es um die Steuerung von Lampen geht, könnt ihr das sogar (vermutlich) vollständig in die Batchdatei auslagern ohne Rückgabewerte und die Lampen über die Batchdatei steuern.

Gefällt mir aber in der Tat, was ihr da tut! :) Wie werden die Lampen gesteuert? JSON-API, MQTT, ganz was anderes?
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Paypal Plugin läßt sich nicht installieren - SQL Fehler Plugins für JTL-Shop 2
Neu Artikel Filter laufende eBay Angebot funktioniert nicht - SQL Abfrage User helfen Usern - Fragen zu JTL-Wawi 3
Neu Gewinn pro Artikel mit SQL exportieren. User helfen Usern - Fragen zu JTL-Wawi 2
Warenbewegung SQL Abfrage JTL-Wawi 1.10 4
Wo finde ich Kundendaten in der sql Datenbank? JTL-Wawi 1.9 4
Neu Per SQL eine Liste nicht lieferbarer Artikel im Auftrag erstellen User helfen Usern - Fragen zu JTL-Wawi 4
Neu Hilfe für Amazon und Lister 2.0 gesucht Amazon-Anbindung - Ideen, Lob und Kritik 0
Neu Erfahrungen gesucht: Custom Shop (Next.js/React) an JTL-Wawi anbinden Allgemeines zu den JTL-Connectoren 1
Neu Projektpartner / Freelancer gesucht Dienstleistung, Jobs und Ähnliches 1
Neu JTL Experte auf Freelancer Basis für Projekteinführung und Support JTL wawi und shop gesucht: Dienstleistung, Jobs und Ähnliches 3
Neu WMS Lager und Standardlager Fragen rund um LS-POS 0
Neu WMS Umlagerungen - Streckenlager - 2. Filiale User helfen Usern - Fragen zu JTL-Wawi 0
Neu doppelt Teilliefern per WMS Arbeitsabläufe in JTL-Wawi 0
Neu Jtl WMs Wareneingang Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Kommentar / Notiz einblenden lassen bei Retoure am WMS? Oder Workflow bei Retoure mit kommentiertem Auftrag? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Wareneingang ohne JTL-WMS Mobile: Umständlich?! Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu feinere WMS Rechte über Benutzergruppen für gängige WMS Vorgänge JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 0
Neu Fehler Sie können aktuell keine Benutzer-Lizenzen für WMS bzw. WMS Mobile buchen Installation von JTL-WMS / JTL-Packtisch+ 9
Neu WMS Amazon Prime 2 Packstücke JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu Falsche Benutzerzuordnung am WMS-Packplatz bei Mitarbeiterwechsel (Remote Server) JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu JTL-WMS Aufträge lassen sich nicht teilliefern, erst nach Neustart JTL-Wawi - Fehler und Bugs 2
Neu WMS: Pick by voice JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 3
Neu Nutzung der WMS Mobile APP JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu Probleme mit WMS-Lizenzen seit Update auf Version 1.10.10.4 JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 1
Neu JTL-Connector: Wie kann man Bestände nur von einem Lager (WMS) übertragen? WooCommerce-Connector 3
Neu Versandart auswählen im WMS Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 4
Neu Seriennummern in der WMS / Wawi / Doppelter Scan / Prüfung User helfen Usern 0
WMS Picklistenerstellung im Worker fliegt nach einiger Zeit raus JTL-Wawi 1.10 1
Aufträge in JTL abschließen und in WMS ausliefern JTL-Wawi 1.9 8
Neu JTL WMS Installation, Wahl des richtigen Lagerplatztypen und Ablauf Installation von JTL-WMS / JTL-Packtisch+ 4

Ähnliche Themen