pixiGetItemStockOnForOrder2Store
Liefert den physischen und verfügbaren Bestand von Artikeln je Lagerort sowie eine zusammengefasste Zeile 'All' je Artikel unter Berücksichtigung offener Aufträge bzw. Reservierungen.
Liefert je Artikel und Lagerort (ItemLocationSpecific verknüpft mit Location) eine Zeile und zusätzlich, per UNION kombiniert, je Artikel eine Zeile mit Location = All.
Zur Laufzeit gelesene Einstellungen
HalOrdersActiveDays: Anzahl Tage, die Auftragspositionen im StatusHALals offen gelten. Der Wert0wird durch7ersetzt.ReservePrepaymentOrders: bei1wird die Verfügbarkeit aus Reservierungen berechnet, sonst aus offenen Auftragspositionen.
Zeilen je Lagerort
PhysicalQTYist dieLocationQuantitydes Artikels auf diesem Lagerort.OpenOrdersist die Summe vonQtyder Auftragspositionen des Artikels auf diesem Lagerort mit StatusANGoder StatusHALund einemOrderDateinnerhalb der letztenHalOrdersActiveDaysTage.ReservedOrdersist die Anzahl der Reservierungsdatensätze des Artikels, deren Auftragsposition auf diesem Lagerort liegt und einen nicht finalen Auftragsstatus außerEIN,FUT,FUShat.AvailQTY=PhysicalQTYabzüglichReservedOrders(Reservierung aktiv) bzw. abzüglichOpenOrders(Reservierung inaktiv).SpecialStockist das Sonderbestand-Kennzeichen des Lagerorts.- Gefiltert nach
LocationId, falls angegeben.
Zeilen 'All'
PhysicalQTYist der Gesamtbestand des Artikels (Items.Quantity).OpenOrdersundReservedOrderswerden wie oben, jedoch über alle Lagerorte berechnet.AvailQTY= Gesamtbestand abzüglich des Bestands auf Sonderbestand-Lagerorten (Location.SpecialStock = 1) abzüglichReservedOrdersbzw.OpenOrders(je nach Einstellung).SpecialStockist immer0.LocationIdwird auf diese Zeilen nicht angewendet; sie werden für die ausgewählten Artikel immer geliefert.
Artikelauswahl
Die Artikelparameter ItemKey, EAN, ItemNrSuppl und ItemNrInt werden mit ODER verknüpft, und jede Bedingung ist erfüllt, wenn der jeweilige Parameter NULL ist. Folgen siehe Hinweise. Eine Sortierung ist nicht definiert.
Hinweise
- Filterfalle: Da die vier Artikelbedingungen mit ODER verknüpft sind und jede bei
NULLerfüllt ist, liefert das Weglassen eines beliebigen der ParameterItemKey,EAN,ItemNrSuppl,ItemNrIntalle Artikel. Die Übergabe nur vonItemKeyschränkt das Ergebnis daher nicht ein. Erst wenn alle vier Parameter gefüllt sind, werden die Artikel geliefert, die mindestens einem davon entsprechen. - Ohne Filter liefert der Aufruf Zeilen für jeden Artikel und Lagerort; das kann wegen der korrelierten Unterabfragen je Zeile sehr umfangreich und langsam sein.
- Der Ausgabeparameter
Quantitywird im Code nie gesetzt und unverändert zurückgegeben. ReservedOrderszählt Reservierungsdatensätze, keine Mengen.- Existiert die Einstellung
HalOrdersActiveDaysnicht, ist das StichtagsdatumNULLund Auftragspositionen im StatusHALwerden nie als offen gezählt. - Ein Code-Kommentar nennt 14 Tage für
HAL-Aufträge, der tatsächliche Zeitraum stammt jedoch ausHalOrdersActiveDays(7, falls auf 0 gesetzt). - Alle Tabellen werden mit
NOLOCKgelesen; Werte können nicht festgeschriebene Daten enthalten.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ItemKey
|
int | NULL |
Interner Artikelschlüssel. Wirkt nur als Filter, wenn auch alle anderen Artikelparameter gesetzt sind (siehe Hinweise). Beispiel: |
EAN
|
varchar(13) string |
NULL |
EAN/UPC des Artikels ( Beispiel: |
ItemNrSuppl
|
varchar(50) string |
NULL |
Lieferanten-Artikelnummer ( Beispiel: |
ItemNrInt
|
varchar(50) string |
NULL |
Interne Artikelnummer ( Beispiel: |
LocationId
|
varchar(50) string |
NULL |
Beschränkt die Zeilen je Lagerort auf diese Lagerort-ID. Beispiel: |
Quantity
OUTPUT
|
int | NULL |
Ausgabeparameter, der im Code nie gesetzt wird; er wird unverändert zurückgegeben. |
Antwort
Result-Set 1 · Immer
Bestandszeilen je Artikel und Lagerort sowie eine Zeile 'All' je Artikel; unsortiert.
| Spalte | Typ | Beschreibung |
|---|---|---|
Location
|
string |
Lagerort-ID ( |
ItemKey
|
int |
Interner Artikelschlüssel. |
PhysicalQTY
Kann leer sein |
int |
Physischer Bestand: |
OpenOrders
|
int |
Summe der Mengen offener Auftragspositionen (Status |
ReservedOrders
|
int |
Anzahl der Reservierungsdatensätze zu Auftragspositionen in nicht finalen Status außer |
AvailQTY
Kann leer sein |
int |
Verfügbarer Bestand: physischer Bestand abzüglich Reservierungen bzw. offener Aufträge (je nach |
SpecialStock
Kann leer sein |
int |
Sonderbestand-Kennzeichen des Lagerorts ( |
Beispielantwort
<SqlRowSet1>
<row>
<Location>001</Location>
<ItemKey>12345</ItemKey>
<PhysicalQTY>20</PhysicalQTY>
<OpenOrders>3</OpenOrders>
<ReservedOrders>0</ReservedOrders>
<AvailQTY>17</AvailQTY>
<SpecialStock>0</SpecialStock>
</row>
<row>
<Location>All</Location>
<ItemKey>12345</ItemKey>
<PhysicalQTY>25</PhysicalQTY>
<OpenOrders>4</OpenOrders>
<ReservedOrders>0</ReservedOrders>
<AvailQTY>16</AvailQTY>
<SpecialStock>0</SpecialStock>
</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:pixiGetItemStockOnForOrder2Store>
<!-- <ItemKey>12345</ItemKey> -->
<!-- <EAN>4006381333931</EAN> -->
<!-- <ItemNrSuppl>SUP-4711</ItemNrSuppl> -->
<!-- <ItemNrInt>ART-10001</ItemNrInt> -->
<!-- <LocationId>001</LocationId> -->
<!-- <Quantity>?</Quantity> -->
</ns1:pixiGetItemStockOnForOrder2Store>
</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:pixiGetItemStockOnForOrder2Store>
<!-- <ItemKey>12345</ItemKey> -->
<!-- <EAN>4006381333931</EAN> -->
<!-- <ItemNrSuppl>SUP-4711</ItemNrSuppl> -->
<!-- <ItemNrInt>ART-10001</ItemNrInt> -->
<!-- <LocationId>001</LocationId> -->
<!-- <Quantity>?</Quantity> -->
</ns1:pixiGetItemStockOnForOrder2Store>
</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 = [
// 'ItemKey' => '12345',
// 'EAN' => '4006381333931',
// 'ItemNrSuppl' => 'SUP-4711',
// 'ItemNrInt' => 'ART-10001',
// 'LocationId' => '001',
// 'Quantity' => '?',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetItemStockOnForOrder2Store', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetItemStockOnForOrder2Store