pixiGetPhysicalItemStock
Liefert den physischen Bestand eines Artikels an einem Lager, wobei der Artikel über ItemKey, EAN, Lieferanten-Artikelnummer oder interne Artikelnummer bestimmt wird.
Skalarfunktion, die einen einzelnen Ganzzahlwert liefert: den Wert von LocationQuantity aus den lagerspezifischen Artikeldaten für das angegebene Lager.
Ablauf:
- Die Artikelkennungen werden normalisiert:
ItemKey=0sowie leere Zeichenketten fürEAN,ItemNrSupplundItemNrIntgelten als nicht gesetzt (NULL). - Lagerspezifische Artikeldatensätze (
ItemLocationSpecific) werden mit den Artikelstammdaten (Items) verknüpft und aufLocID=LocationIdgefiltert. - Ein Datensatz passt, wenn eine der übergebenen Kennungen übereinstimmt:
ItemKey,EANUPC=EAN,ItemNrSupploderItemNrInt. Die Kennungen werden mit ODER verknüpft, nicht mit UND. - Der
LocationQuantity-Wert des passenden Datensatzes wird alsResultzurückgegeben.
Wird kein passender Datensatz gefunden oder keine Kennung übergeben, ist das Ergebnis NULL.
Hinweise
- Liest mit
NOLOCK; der Wert kann nicht festgeschriebene Änderungen enthalten. - Da die Kennungen mit ODER verknüpft werden, können mehrere übergebene Kennungen, die zu unterschiedlichen Artikeln gehören, mehrere Datensätze treffen. Dann wird der Bestand eines dieser Datensätze geliefert, welcher genau, ist nicht definiert (keine Sortierung). Für ein eindeutiges Ergebnis nur eine Kennung übergeben, idealerweise
ItemKey. EAN,ItemNrSupploderItemNrIntsind ggf. nicht eindeutig über alle Artikel; dann besteht dieselbe Mehrdeutigkeit.LocationIdhat keinen Standardwert und muss immer übergeben werden.- Die Funktion liefert nur den gespeicherten
LocationQuantity-Wert; Reservierungen oder offene Aufträge werden nicht abgezogen.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ItemKey
|
int | NULL |
Interner Schlüssel des Artikels. Beispiel: |
EAN
|
varchar(13) string |
NULL |
EAN/UPC des Artikels, verglichen mit Beispiel: |
ItemNrSuppl
|
varchar(50) string |
NULL |
Artikelnummer des Lieferanten. Leere Zeichenkette gilt als nicht gesetzt. Beispiel: |
ItemNrInt
|
varchar(50) string |
NULL |
Interne Artikelnummer. Leere Zeichenkette gilt als nicht gesetzt. Beispiel: |
LocationId
Pflicht
|
char(50) string |
– |
Lager-ID, verglichen mit Beispiel: |
Antwort
Result-Set 1 · Immer (skalarer Rückgabewert; NULL, wenn kein passender Datensatz existiert).
Physischer Bestand des Artikels am angegebenen Lager.
| Spalte | Typ | Beschreibung |
|---|---|---|
Result
Kann leer sein |
int |
|
Beispielantwort
<SqlRowSet1>
<row>
<Result>42</Result>
</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:pixiGetPhysicalItemStock>
<!-- <ItemKey>12345</ItemKey> -->
<!-- <EAN>4006381333931</EAN> -->
<!-- <ItemNrSuppl>SUP-4711</ItemNrSuppl> -->
<!-- <ItemNrInt>ART-100200</ItemNrInt> -->
<LocationId>001</LocationId>
</ns1:pixiGetPhysicalItemStock>
</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:pixiGetPhysicalItemStock>
<!-- <ItemKey>12345</ItemKey> -->
<!-- <EAN>4006381333931</EAN> -->
<!-- <ItemNrSuppl>SUP-4711</ItemNrSuppl> -->
<!-- <ItemNrInt>ART-100200</ItemNrInt> -->
<LocationId>001</LocationId>
</ns1:pixiGetPhysicalItemStock>
</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-100200',
'LocationId' => '001',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetPhysicalItemStock', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetPhysicalItemStock