Überprüfen ob genug Bestand im Lager vorhanden ist

Hallo,

ich habe ein Problem und wollte mal klären, ob es hierfür irgendeine Idee zur möglichen Umsetzung gibt.

Wir übermitteln unsere Bestellung per XML an unser Fulfillment. Das funktioniert soweit nun mittelmäßig gut.
Leider ist das aktuell ein manueller Aufwand, da wir nicht sicherstellen können, dass auch genug Bestand in unserer Kommissionieranlage vorhanden ist.

Ich habe eine DB, in der die aktuellen Bestände pro Artikel aufgelistet sind, müsste nur für jede Bestellung aus dem importierten Batch checken, ob genug Bestand vorhanden ist.

Gibt es hierfür irgendeine Möglichkeit jede Bestellung einzeln durchzugehen und zu überprüfen, ob der Bestand in der Anlage ausreichend ist und falls ja, diesen Bestand dann abzuziehen (um ihn quasi zu „reservieren“)?

Bin gerne für Vorschläge, Ideen und Anreise offen :slight_smile:

Danke schonmal für eure Hilfe!

LG
Robin

Hallo @rkolonko,

das sollte möglich sein.
In dem Mapper in der du die Bestellpositionen hast, machst du einen Querverweis auf den Datastore mit den aktuellen Beständen. Dann kannst du in einer Hilfspalte die bestellte Menge von dem Bestand abziehen. Wenn er negativ ist, weißt du, dass er nicht ausreichend ist und kannst die Position in einem Filter herausfiltern.

Den positiven Output kannst du dann auch weiterverwenden um in einem Datastorewriter den Bestand zu aktualisieren.

Viele Grüße
Lukas

Hallo @synesty-Lukas,

danke für deine Unterstützung.
Wenn ich das richtig verstehe funktioniert das aber nicht, wenn ich mehrere Bestellungen durchlaufen möchte. Der Mapper behandelt ja immer alles Zeilen gleichzeitig.
Oder habe ich da was falsch verstanden?

Viele Grüße
Robin

Hallo @rkolonko,

du kannst über die Gruppieren-Funktion alle bestellten Mengen zu einem Artikel zusammenfassen.
Gruppierungbeispiel von Synesty

Damit kannst du aber nur noch alle Bestellungen zusammengefasst bearbeiten und eben (nur) merken, dass dein Bestand zum Bearbeiten alle Bestellungen nicht ausreicht. Aber du kriegst nicht raus, dass der Bestand für Bestellung A und B reicht und erst für Bestellung C die Bestände nicht mehr ausreichen.

Du könntest auch einen Flow erstellen, der pro Flowrun immer nur eine einzelne Bestellung bearbeitet und den Flow entsprechend häufig ausführen. Kostet dann entsprechend viele Flowruns oder einen Flow+, wenn du noch nicht auf dem neuen Kontigent unterwegs bist.

Gruß
Gustav

Hallo @digitalslvde-gustavf,

danke für deine Idee.
Das Gruppieren hatte ich auch schon als erste Idee, führt aber zu dem schon von dir angesprochenen Problem.
Ich weiß nicht ob @synesty-Lukas da noch eine andere Idee hatte oder das gleiche meinte.

Wahrscheinlich wird nichts anderes übrig bleiben, als es mit jeder einzelnen Bestellung zu überprüfen.

Viele Grüße
Robin

Hallo Robin,

eine Möglichkeit wäre noch die get- und setVariable Funktion im Mapper zu verwenden. Damit ist es möglich sich den aktuell noch vorhandenen Bestand zeilenübergreifend zu speichern. Dazu ist etwas Freemarker Logik notwendig.

Beispiel

Den Gesamtbestand für den Artikel müsstest du dir per Querverweis aus dem Datastore holen. In der Spalte vorhandenerBestand wird der noch verbleiben Bestand ausgeben (GesamtBestand - lieferbare Bestellmenge). In der Spalte PositionLieferbar wird ausgegeben ob die Bestellposition lieferbar ist oder nicht und falls lieferbar wird der verbleibende Bestand des Artikels um die Bestellmenge reduziert.

Vielleicht hilft dir diese Beispiel weiter.

Viele Grüße
Torsten