pixiInventoryItemsToRefill
Liefert die Artikel, die von einem Quell- an ein Ziellager umgelagert werden müssen, um Mindestbestand und offene Kundenaufträge zu decken, samt Quell-Lagerplätzen.
Erstellt eine Nachschubliste (Umlagerungsliste) zwischen zwei Lagern. Der Aufruf reicht alle Parameter an die interne Prozedur CR_InventoryItemsToRefill weiter, die die eigentliche Arbeit erledigt.
Bedarf im Ziellager (ToLocID)
- Offene Kundenaufträge: Summe von
Orderlines.Qtyje Artikel inToLocIDmit StatusANG,BES,BORundHAL.HALentfällt, wenn die EinstellungInventoryItemsToRefill_NoHALden Wert1hat. - Zurückgehaltene Aufträge: Summe von
Qtyder Auftragspositionen mit StatusHALinToLocID. Dieser Wert dient nur zur Information. - Bestände je Lager stammen aus
ItemLocationSpecific(LocationQuantity,MinStockQty,TargetStock).
Welche Artikel ausgewählt werden
- Der Artikel hat einen
ItemLocationSpecific-Eintrag fürToLocID. FromLocIDist ungleichToLocID.- Positiver Mindestbestand plus offene Kundenauftragsmenge ist größer als der Bestand in
ToLocID. - Der Artikel liegt auf mindestens einem Lagerplatz (
InvBin) vonFromLocID.
Fehlmenge
Sie wird berechnet als positiver MinStockQty + offene Kundenauftragsmenge − Bestand in ToLocID − Bestand in AdditionalLocID (der letzte Term nur, wenn AdditionalLocID gesetzt ist).
Zuordnung zu Quell-Lagerplätzen
- Verwendet werden alle Lagerplatzeinträge (
InvBinItem) des Artikels inFromLocID. Einträge, die von einer nicht abgelaufenen Picklistenposition (PLitem) referenziert werden, werden übersprungen. - Die Einträge werden nach Alter nummeriert, älteste zuerst (
CreateDate). Nur die ersten Fehlmenge Einträge bleiben erhalten. - Das Ergebnis enthält eine Zeile je Artikel und Quell-Lagerplatz.
MissingQtyist die Anzahl der Einträge, die von diesem Lagerplatz genommen werden.FromBinqtyist die Gesamtmenge des Artikels auf diesem Lagerplatz. ToLocIDbinName/ToLocIDbinSortNumzeigen einen Lagerplatz des Artikels inToLocID, sofern vorhanden.
Sortierung
Bei SortBy = '1' wird nach ToLocIDbinSortNum sortiert, sonst nach FromLocIDbinSortNum. Innerhalb davon wird nach ItemName sortiert.
Hinweise
- Nur lesend. Alle Tabellen werden
WITH (NOLOCK)gelesen, daher kann das Ergebnis nicht festgeschriebene Daten enthalten. - Die Zuordnung zählt Lagerplatzeinträge (
InvBinItem-Zeilen), keine Mengen. Das je Lagerplatz gelieferteMissingQtyist daher die Anzahl der Einträge, die von diesem Lagerplatz genommen werden. Die Summe über alle Lagerplätze eines Artikels kann kleiner als die berechnete Fehlmenge sein, wenn weniger Einträge vorhanden sind. - Der Auswahlfilter zieht den Bestand von
AdditionalLocIDnicht ab, die Fehlmenge dagegen schon. Deckt das Zusatzlager den Bedarf, ist die Fehlmenge 0 oder kleiner und der Artikel erscheint nicht. ToLocIDbinNamewird perTOP 1ohneORDER BYermittelt. Hat der Artikel mehrere Lagerplätze inToLocID, ist nicht festgelegt, welcher angezeigt wird.- Die Einstellung wird über
fpixi_GetSettinggelesen, deren Definition nicht vorliegt. Liefert sieNULLstatt eines leeren Werts, wirdHALebenfalls ausgeschlossen. FromLocQtyundMinStockQtykönnen leer sein, wenn kein passenderItemLocationSpecific-Wert existiert.- Ist
FromLocIDgleichToLocID, ist das Ergebnis immer leer.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
FromLocID
Pflicht
|
varchar(3) string |
– |
Quelllager, von dessen Lagerplätzen die Ware entnommen wird. Beispiel: |
ToLocID
Pflicht
|
varchar(3) string |
– |
Ziellager, das aufgefüllt werden soll. Für dieses Lager werden Bestand, Mindestbestand und offene Kundenaufträge ausgewertet. Beispiel: |
AdditionalLocID
|
varchar(3) string |
NULL |
Optionales Zusatzlager, dessen Bestand von der Fehlmenge abgezogen wird. Bei NULL oder leer wird kein Zusatzlager berücksichtigt. Beispiel: |
SortBy
|
varchar(1) string |
0 |
Sortierung des Ergebnisses. Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Immer (kann leer sein).
Eine Zeile je Artikel und Quell-Lagerplatz, der zum Auffüllen des Ziellagers verwendet werden soll.
| Spalte | Typ | Beschreibung |
|---|---|---|
FromLocIDbinName
Kann leer sein |
varchar(50) string |
Name des Quell-Lagerplatzes in |
FromLocIDbinSortNum
Kann leer sein |
int |
Sortiernummer des Quell-Lagerplatzes. |
ToLocIDbinName
Kann leer sein |
varchar(50) string |
Name eines Lagerplatzes des Artikels in |
ToLocIDbinSortNum
Kann leer sein |
int |
Sortiernummer dieses Ziel-Lagerplatzes. |
EanUpc
Kann leer sein |
varchar(13) string |
EAN/UPC des Artikels. |
ItemName
Kann leer sein |
varchar(120) string |
Artikelname. |
ToLocQty
|
int |
Bestand des Artikels im Ziellager (0, falls keiner). |
FromLocQty
Kann leer sein |
int |
Bestand des Artikels im Quelllager laut |
FromBinqty
Kann leer sein |
int |
Menge des Artikels auf diesem Quell-Lagerplatz (Summe von |
MissingQty
Kann leer sein |
int |
Anzahl der Lagerplatzeinträge, die von diesem Quell-Lagerplatz zur Deckung der Fehlmenge entnommen werden sollen. |
MinStockQty
Kann leer sein |
int |
Mindestbestand des Artikels im Ziellager. |
SupplPrice
Kann leer sein |
money decimal |
Lieferantenpreis (Einkaufspreis) des Artikels. |
OpenCustOrdersQty
|
int |
Menge in offenen Kundenauftragspositionen im Ziellager (Status ANG, BES, BOR und HAL, sofern nicht per Einstellung ausgeschlossen). |
OrdersOnHoldQty
|
int |
Menge in Auftragspositionen mit Status HAL im Ziellager. |
ParFromLocID
Kann leer sein |
varchar(3) string |
Wert des Parameters |
ParToLocID
Kann leer sein |
varchar(3) string |
Wert des Parameters |
SortBy
Kann leer sein |
varchar(1) string |
Wert des Parameters |
PicLinkSmall
Kann leer sein |
varchar(512) string |
Link zum kleinen Artikelbild. |
PicLinkLarge
Kann leer sein |
varchar(512) string |
Link zum großen Artikelbild. |
ItemNrInt
Kann leer sein |
varchar(50) string |
Interne Artikelnummer. |
TargetStock
Kann leer sein |
int |
Zielbestand des Artikels im Ziellager. |
Beispielantwort
<SqlRowSet1>
<row>
<FromLocIDbinName>A-01-03</FromLocIDbinName>
<FromLocIDbinSortNum>103</FromLocIDbinSortNum>
<ToLocIDbinName>S-02-01</ToLocIDbinName>
<ToLocIDbinSortNum>201</ToLocIDbinSortNum>
<EanUpc>4012345678901</EanUpc>
<ItemName>Trinkflasche 0,75 l blau</ItemName>
<ToLocQty>2</ToLocQty>
<FromLocQty>40</FromLocQty>
<FromBinqty>12</FromBinqty>
<MissingQty>3</MissingQty>
<MinStockQty>5</MinStockQty>
<SupplPrice>3.4500</SupplPrice>
<OpenCustOrdersQty>0</OpenCustOrdersQty>
<OrdersOnHoldQty>0</OrdersOnHoldQty>
<ParFromLocID>001</ParFromLocID>
<ParToLocID>002</ParToLocID>
<SortBy>0</SortBy>
<PicLinkSmall>https://shop.example.com/img/s/4711.jpg</PicLinkSmall>
<PicLinkLarge>https://shop.example.com/img/l/4711.jpg</PicLinkLarge>
<ItemNrInt>4711</ItemNrInt>
<TargetStock>10</TargetStock>
</row>
</SqlRowSet1>
Beispiele
POST https://apigateway.descartes.com/tms/pixi/
Content-Type: text/xml; charset=utf-8
Authorization: Basic BASE64(USERNAME:PASSWORD)
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiInventoryItemsToRefill>
<FromLocID>001</FromLocID>
<ToLocID>002</ToLocID>
<!-- <AdditionalLocID>003</AdditionalLocID> -->
<!-- <SortBy>0</SortBy> -->
</ns1:pixiInventoryItemsToRefill>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
curl -X POST 'https://apigateway.descartes.com/tms/pixi/' \
--user 'USERNAME:PASSWORD' \
--header 'Content-Type: text/xml; charset=utf-8' \
--data-binary @- <<'XML'
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiInventoryItemsToRefill>
<FromLocID>001</FromLocID>
<ToLocID>002</ToLocID>
<!-- <AdditionalLocID>003</AdditionalLocID> -->
<!-- <SortBy>0</SortBy> -->
</ns1:pixiInventoryItemsToRefill>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML
<?php
$soapClient = new SoapClient(null, [
'login' => 'USERNAME',
'password' => 'PASSWORD',
'location' => 'https://apigateway.descartes.com/tms/pixi/',
'uri' => 'https://apigateway.descartes.com/tms/pixi/',
]);
$arguments = [
'FromLocID' => '001',
'ToLocID' => '002',
// 'AdditionalLocID' => '003',
// 'SortBy' => '0',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiInventoryItemsToRefill', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiInventoryItemsToRefill