Neu Suche Directquery Abrage für Lagerbestand auf Pickliste

  • Wichtiger Hinweis: Aufgrund der aktuell globalen Probleme bei Microsoft ist auch das JTL Team derzeit nur bedingt erreichbar. Wir arbeiten derzeit an einer Lösung.
  • JTL-Connect 2024: Ihr habt noch kein Ticket? Jetzt Early Bird Ticket zum Vorzugspreis sichern! HIER geht es zum Ticketverkauf

  • Wartungsarbeiten - Kundencenter 22.07.24 ab 21 Uhr bis 23.07.24 vormittags. Das Kundencenter wird in dieser Zeit nicht erreichbar sein.

Baltazar80

Gut bekanntes Mitglied
18. Januar 2014
266
17
Hallo,

wir möchten auf der Pickliste den aktuellen Bestand von unserem eigenen Lagerbestand anzeigen lassen, um beim picken gleichzeitig den Bestand kontrollieren zu können.
Aktuell klappt das nicht, da nur des gesamte Lagerbestand (inkl. Dorpshippinglager von unserem Lieferanten) mit ausgegeben wird, und es soll nur mit Directquery funktionieren.

Leider kenne ich mit zu wenig mit SQL Abragen aus, so dass ich da selber hand anlegen kann.

Könnte mir einer diese Directquery Abrage schreiben, sollte ja eigentlich machbar sein.
Preis könnt ihr dann bestimmen, der Aufwand sollte ja aber nicht so groß sein, denke ich.
 

Dalibor Josic

Sehr aktives Mitglied
22. Dezember 2014
1.184
142
Gaildorf
Versuch mal das:

JTL_DirectQuery ("SELECT [fEigenerBestand] FROM [eazybusiness].[dbo].[vLagerbestandEx] WHERE kArtikel = "+FStr$(Gruppierte_Pickpositionen.Artikel.InterneArtikelnummer,"?")+" ")

Falls das deinen Vorstellung entspricht, dann kannst du es als Benutzervariable anlegen und überall benutzen.
 
Zuletzt bearbeitet:

Baltazar80

Gut bekanntes Mitglied
18. Januar 2014
266
17
Ansich funktioniert die Abfrage genau, wie wir es wollten, jedoch ist mir was merkwürdiges aufgefallen. Und zwar wenn wir mehrere Picklisten hintereinander drucken, dann wird der aktuelle Bestand abzüglich der bestellten Menge angebenen, wenn wir aber uns etwas Zeit lassen zwischen den einzelnen Picklisten, dann wird der Bestand inklusive der bestellten Menge angezeigt.

Also z.B.
Produkt A - Bestand 5 - Bestellt sind 2 - Bestand auf Pickliste wird 5 Stück ausgegeben (wenn wir zwischen den Picklsiten Zeit lassen)
Produkt A - Bestand 5 - Bestellt sind 2 - Bestand auf Pickliste wird 3 Stück ausgegeben (wenn wir gleich nochmal eine weitere Pickliste im Anschluss drucken)

Das ist sehr merkwürdig, weil was hat das damit zu tun, wie schnell wir die nächste Picklisten ausdrucken?
Aber die komplette Pickliste wird entweder so oder so gedurckt, nicht jedoch gemischt. Für uns wären beide Methoden OK, sofern es nur bei einer Methode bleiben würde, und wir wissen würden, welcher Bestand genau ausgegeben wird.
 

Dalibor Josic

Sehr aktives Mitglied
22. Dezember 2014
1.184
142
Gaildorf
Das ist sehr merkwürdig, weil was hat das damit zu tun, wie schnell wir die nächste Picklisten ausdrucken?
Eigentlich überhaupt nichts.

Ich habe es versucht bei mir zu reproduzieren. Konnte keinen Unterschied feststellen. Es wird immer der eigene Bestand angezeigt. Normalerweise ändert sich der eigene Bestand erst dann, wenn die Pickliste abgearbeitet wurde. Sprich die Bestellungen wurden versendet.

Da du die Picklisten ausdruckst, kannst du mir eventuell diese 2 Picklisten zukommen lassen, damit ich es mir anschaue ?
 

Baltazar80

Gut bekanntes Mitglied
18. Januar 2014
266
17
@Dalibor Josic
Vielen Dank für deine Hilfe, wir konnten jetzt endlich den Fehler reproduzieren und wissen woher das kommt.
Und zwar manchmal drucken wir die Pickliste, dann gehen wir gleich unter "Offen" und versenden die Aufträge, wenn man da jetzt zu schnell ist, und die Pickliste noch gar nicht gedruckt wurde, dann kommen auf die Pickliste die Bestände, die ja nach dem ausliefern noch verfgübar sein.

D.h. wir müssen immer zuerst abwarten bis die Pickliste auch tatsächlich gedruckt wurde, dann erst die Aufträge versenden.

Vielen Dank nochmla für deine Hilfe.
 
  • Gefällt mir
Reaktionen: Dalibor Josic

SaschaR1987

Aktives Mitglied
7. Dezember 2019
73
17
Versuch mal das:

JTL_DirectQuery ("SELECT [fEigenerBestand] FROM [eazybusiness].[dbo].[vLagerbestandEx] WHERE kArtikel = "+FStr$(Gruppierte_Pickpositionen.Artikel.InterneArtikelnummer,"?")+" ")

Falls das deinen Vorstellung entspricht, dann kannst du es als Benutzervariable anlegen und überall benutzen.

ich bekomme dabei immer den fehler
Gruppierte_Pickpositionen.Artikel.InterneArtikelnummer
kann nicht interpretiert werden
allerdings sind alle meine angaben immer auf englisch also müsste es
auf englisch eingegeben werden finde es aber nicht oder mache ich etwas anderes falsch
 

SaschaR1987

Aktives Mitglied
7. Dezember 2019
73
17
Bei uns Funktioniert

str$(Round(JTL_DirectQuery("SELECT TOP(1) [fEigenerBestand] FROM [dbo].[vLagerbestandEx] WHERE kArtikel = "+FStr$(PickListPositionOrder.ProductInternalId,"?")+" ") ,2),0,2)
(Lagerbestand vor dem Picken)

habe das ganze noch durch die Runden Funktion auf 2 Nachkomastellen ergänzt
man könnte auch

JTL_DirectQuery("SELECT TOP(1) [fEigenerBestand] FROM [dbo].[vLagerbestandEx] WHERE kArtikel = "+FStr$(PickListPositionOrder.ProductInternalId,"?")+" ") - PickListPositionOrder.Quantity

verwenden, um den Lagerbestand nach dem Picken ausgegeben zu bekommen was jedoch nur Funktionieren kann wenn man eine Pickliste mit allen Pickbaren Aufträgen erstellt sonst passen die Bestände nicht nachdem man 1 gepickt hat
 

SaschaR1987

Aktives Mitglied
7. Dezember 2019
73
17
UPDATE:
Mit Hilfe des netten Supports folgende 2 Befehle! (Mitarbeiter Happy)

Für Pickliste Auftrag:
JTL_DirectQuery("SELECT TOP(1) CAST([fEigenerBestand] AS DECIMAL(28,2)) FROM [dbo].[vLagerbestandEx] WHERE kArtikel = "+str$( PickListPositionOrder.ProductInternalId))

und für Pickliste Lager:
JTL_DirectQuery("SELECT TOP(1) CAST([fEigenerBestand] AS DECIMAL(28,2)) FROM [dbo].[vLagerbestandEx] WHERE kArtikel = "+str$(PickListPositionWarehouse.ProductInternalId))
 

Nando Hiller

Aktives Mitglied
12. Januar 2022
82
4
Funktioniert es aktuell bei JTL WaWi 1.5.55.1 in einer Rechnung?

JTL_DirectQuery("SELECT TOP(1) CAST([fEigenerBestand] AS DECIMAL(28,2)) FROM [dbo].[vLagerbestandEx] WHERE kArtikel = "+str$(PickListPositionWarehouse.ProductInternalId))

Ich bekomme eine Fehlermeldung.
Syntaxfehler: 'PickListPositionWarehouse.ProductInternalId' kann nicht interpretiert werden.

Wir wollen den Lagerort der Produktes mit auf der Rechnung haben.
Kann mir bitte jemand helfen?
 

Nando Hiller

Aktives Mitglied
12. Januar 2022
82
4
Mit einer alten Druck-Vorlage einer Rechnung funktioniert diese Zeile, um den Lagerort über ein eigenes Feld anzuzeigen.

Cond(len(Alias$("Lagerort",Auftragspositionen.Artikel.EigeneFelderAlsText) )>0,""+ Alias$("Lagerort",Auftragspositionen.Artikel.EigeneFelderAlsText) , "")

Funktioniert es auch mit einer neuen Vorlage, mit neuen/englischen Variablen?
- Eintrag aus Standardlager > Kommentar1/2
- Eintrag aus Standardlager_WMS > Lagerplatz
- Eigene Felder oder/und
- PickListPosition oder/und
- Eintrag aus Sonstiges > Serie
 

Nando Hiller

Aktives Mitglied
12. Januar 2022
82
4
Es funktioniert mit einer neuen Vorlage einer Rechnung.
Code:
InvoicePosition.SKU + COND(IsNullOrEmpty(JTL_GetProductCustomField ("Regal",InvoicePosition.ProductInternalId)), "¶", "¶LP: " + JTL_GetProductCustomField ("Regal",InvoicePosition.ProductInternalId))