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.813
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.813
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.813
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.813
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 SQL-Server geht eine Stunde nach Allgemeine Fragen zu JTL-Shop 3
Neu Umzug SQL Datenbank auf neuen Server User helfen Usern - Fragen zu JTL-Wawi 2
Kundenstammdaten - "Eigenes Feld" in SQL auslesen JTL-Wawi 1.9 2
Aktuelles Update 1.11.7: Anmeldedialog merkt sich den letzten User immer noch nicht & falsche Warnung für angeblich fehlendes SQL Server Update JTL-Wawi 1.11 3
Neu Frage zu SQL Statement - Kunden-Kommentar aus Auftrag auf Pickliste User helfen Usern - Fragen zu JTL-Wawi 1
Neu Bestellungen werden verzögert oder nicht gepullt – Ursache: Zeitzonen-Filter im SQL des WooCommerce-Connectors WooCommerce-Connector 0
Neu SQL Worker.tStatus - Bedeutung von nStatus? JTL Ameise - Eigene Exporte 2
Neu Suche Servicepartner für SQL-Abfrage Dienstleistung, Jobs und Ähnliches 2
Neu askJan | Neuer KI-Assistent für JTL-Wawi - schnelle, effiziente und transparente KI-Datenanalyse - ohne SQL! Dienstleistung, Jobs und Ähnliches 41
Neu JTL-WaWi + ESL Connector — Entwicklung mit Kostenaufteilung gesucht Business Jungle 0
Neu Betatester gesucht - Plugin: Geizhals Basket Tracking inkl. EMID Übermittlung Plugins für JTL-Shop 0
Neu Hilfe bei der Entwicklung gesucht: Werde Tester für meine JTL-Shop Plugins Plugins für JTL-Shop 0
Neu JTL-Shop "Plugin-Vorlage" gesucht User helfen Usern 3
Neu JTL- Archive Pilotkunden gesucht JTL-Wawi 2.0 4
Neu Freelancer gesucht für Artikelpflege ( Herstellerkataloge / Preisänderungen einspielen) Dienstleistung, Jobs und Ähnliches 3
Neu Langfristiger JTL-Partner gesucht: Shopware 6 / Marktplätze (Mirakl, Otto, Kaufland) & Prozess-Optimierung Dienstleistung, Jobs und Ähnliches 2
Neu Repricer Erfahrungen mit JTL gesucht User helfen Usern - Fragen zu JTL-Wawi 0
Neu Jecke Anfrage für Rosenmontag 🎉 – Kamelle & Werbegeschenke gesucht Smalltalk 0
Neu Betatester gesucht – Hood-Schnittstelle für JTL-Shop 5 Plugins für JTL-Shop 3
Neu JTL Shipping Fehler bei DHL Versand über WMS ? User helfen Usern - Fragen zu JTL-Wawi 2
Neu JTL WMS Mobile Server zeigt neuerdings ein DOS-Fenster JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 2
Neu WMS Boxen verpacken, 1. Aufruf einer Box sehr langsam User helfen Usern - Fragen zu JTL-Wawi 1
Permanente / Laufende Inventur ohne Lagerplatz und ohne WMS mobil JTL-Wawi 1.10 2
JTL-WaWi 11.5 WMS Mobile Server sehr hohe CPU Auslastung JTL-Wawi 1.11 3
Neu JTL WMS und WMS APP - UDI Codes Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Frage zur mobilen WMS-Anwendung auf Android JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
In Diskussion Auftragspositionen Hinweise in WMS anzeigen JTL-Workflows - Fehler und Bugs 4
Neu Artikel aus Shopware in der Wawi importieren und WMS redy machen Shopware-Connector 0
Neu WMS Mobile / kein QR Code Scan in das Passwort Feld mit Zebra MDE JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu JTL WMS Auftrag gesperrt JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu JTL WMS Mobile Inventur es werden keine vorhandenen Artikel angezeigt JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Lieferbare Aufträge werden nicht auf WMS-Picklisten gesetzt JTL-Wawi 1.11 4
Neu Ist es möglich in WMS Picklistenvorlagen auszublenden, die gerade keinen gültigen Auftrag haben? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
Neu WMS Start doch nicht gratis? Installation von JTL-WMS / JTL-Packtisch+ 1
Neu WMS CSV Import von Lieferscheinen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
WMS Nachdruck Änderung der Versandart nicht mehr möglich JTL-Wawi 1.11 0

Ähnliche Themen