pixiGetItemStockBins
Liefert die Lagerplätze mit Mengen je Charge und MHD für einen oder mehrere Artikel, identifiziert über Key, EAN, Artikelnummern oder eine XML-Liste.
Ermittelt den Bestand je Lagerplatz für einen oder mehrere Artikel.
Normalisierung der Eingaben
ItemKey=0wird alsNULLbehandelt.- Textparameter werden getrimmt; leere Zeichenketten gelten als
NULL. - Ist danach kein Parameter gefüllt, wird eine Statuszeile mit
Status=Errorzurückgegeben.
Ermittlung der Artikel (alle Kriterien werden mit ODER verknüpft, das Ergebnis ist die Vereinigung aller Treffer):
EANwird gegen Artikelcodes vom Typ Barcode (Codetyp 1) inItemCodegeprüft.ItemNrIntwird gegen Artikelcodes vom Typ Shop-Artikelnummer (Codetyp 2) geprüft.ItemNrSupplwird gegen Artikelcodes vom Typ Lieferanten-Artikelnummer (Codetyp 4) geprüft.ItemKeywird gegen die Artikel-ID inItemCodegeprüft.ItemXML(elementbasiertes XML, Pfad/ITEMS/ITEM) kann mehrere Artikel enthalten. JeITEMwirdITEMKEYdirekt übernommen,ITEMNRINT,ITEMNRSUPPLundEANwerden gegen die SpaltenItemNrInt,ItemNrSupplundEANUPCder Tabelleitemsgeprüft.
Wird kein Artikel gefunden, kommt die Statuszeile No items found with given parameters. zurück.
Ergebnis
Je gefundenem Artikel eine Zeile pro Lagerplatz, Chargennummer und Mindesthaltbarkeitsdatum mit der summierten Menge aus InvBinItem. Die Lagerplatzdaten (Name, Sortiernummer, Lager, Lagerplatzgruppe, Kennzeichen Transportlagerplatz) stammen aus InvBin. Sortierung nach LocID und danach nach BinName (ohne Beachtung der Groß-/Kleinschreibung). Gefundene Artikel ohne Lagerplatzbestand liefern keine Zeilen (leeres Ergebnis, kein Fehler).
Hinweise
- Alle Lesezugriffe erfolgen mit
NOLOCK; das Ergebnis kann nicht festgeschriebene Daten enthalten. - Der Einzelparameter
ItemKeywird über die TabelleItemCodegesucht, nicht überitems. Ein Artikel ohne Eintrag inItemCodewird überItemKeynicht gefunden; alternativItemXMLmitITEMKEYverwenden, das direkt übernommen wird. - Der Einzelparameter
EANdurchsucht alle Barcodes vom Typ 1 inItemCode, währendEANimItemXMLnur gegen die Haupt-EAN (items.EANUPC) geprüft wird. - Wird derselbe Artikel sowohl über Einzelparameter als auch über
ItemXMLgefunden, steht er doppelt in der internen Kandidatenliste undQuantitywird doppelt summiert. Jeden Artikel daher nur auf einem Weg angeben. - Ein nicht existierender
ITEMKEYim XML verhindert den Fehler "No items found", liefert aber keine Zeilen. - Die Elementnamen für OPENXML beachten die Groß-/Kleinschreibung (
ITEMS,ITEM,ITEMKEY,ITEMNRINT,ITEMNRSUPPL,EAN). BestBeforeDatewird als Text im Formatyyyy-mm-dd hh:mi:ss.mmmgeliefert; eine leere Zeichenkette bedeutet kein Datum.BatchNumberist leer, wenn keine Charge gesetzt ist.- Im Fehlerfall gibt die Prozedur nach der Statuszeile den Rückgabewert 1 zurück.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ItemKey
|
int | NULL |
Interner Artikel-Key. Beispiel: |
EAN
|
varchar(13) string |
NULL |
Barcode/EAN des Artikels, geprüft gegen Artikelcodes vom Typ Barcode (Codetyp 1). Beispiel: |
ItemNrSuppl
|
varchar(50) string |
NULL |
Lieferanten-Artikelnummer, geprüft gegen Artikelcodes vom Typ Lieferanten-Artikelnummer (Codetyp 4). Beispiel: |
ItemNrInt
|
varchar(50) string |
NULL |
Interne Artikelnummer bzw. Shop-Artikelnummer, geprüft gegen Artikelcodes vom Typ Shop-Artikelnummer (Codetyp 2). Beispiel: |
ItemXML
|
varchar(max) xml |
NULL |
Optionale XML-Liste von Artikeln ( Beispiel:
|
Antwort
Result-Set 1 · Wenn mindestens ein Artikel ermittelt wurde (kann leer sein, wenn die Artikel keinen Lagerplatzbestand haben).
Bestand je Lagerplatz, Artikel, Chargennummer und MHD, sortiert nach LocID und BinName.
| Spalte | Typ | Beschreibung |
|---|---|---|
BinName
Kann leer sein |
string |
Name des Lagerplatzes ( |
Quantity
Kann leer sein |
int |
Summe von |
BinSortNum
Kann leer sein |
int |
Sortiernummer des Lagerplatzes ( |
EAN
Kann leer sein |
string |
Haupt-EAN des Artikels ( |
ItemNRInt
Kann leer sein |
string |
Interne Artikelnummer ( |
LocID
Kann leer sein |
string |
Lager-ID des Lagerplatzes ( |
BatchNumber
|
string |
Chargennummer; leere Zeichenkette, wenn keine vorhanden. |
BestBeforeDate
|
varchar(25) string |
Mindesthaltbarkeitsdatum als Text ( |
BinGroup
Kann leer sein |
string |
Lagerplatzgruppe ( |
TransportBin
Kann leer sein |
boolean |
Kennzeichen Transportlagerplatz ( |
Result-Set 2 · Wenn kein identifizierender Parameter angegeben ist oder kein Artikel gefunden wird; anstelle der Bestandszeilen.
Statuszeile mit Fehlerbeschreibung.
| Spalte | Typ | Beschreibung |
|---|---|---|
Status
|
varchar(5) string |
Immer |
Message
|
varchar(52) string |
Fehlertext. |
Beispielantwort
<SqlRowSet1>
<row>
<BinName>A-01-02</BinName>
<Quantity>12</Quantity>
<BinSortNum>1020</BinSortNum>
<EAN>4006381333931</EAN>
<ItemNRInt>ART-1001</ItemNRInt>
<LocID>001</LocID>
<BatchNumber>CH2024-07</BatchNumber>
<BestBeforeDate>2025-06-30 00:00:00.000</BestBeforeDate>
<BinGroup>A</BinGroup>
<TransportBin>false</TransportBin>
</row>
<row>
<BinName>B-03-01</BinName>
<Quantity>5</Quantity>
<BinSortNum>2010</BinSortNum>
<EAN>4006381333931</EAN>
<ItemNRInt>ART-1001</ItemNRInt>
<LocID>001</LocID>
<BatchNumber/>
<BestBeforeDate/>
<BinGroup>B</BinGroup>
<TransportBin>false</TransportBin>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| Error | Specify at least one parameter to identify the item. | Alle Parameter sind NULL, leer bzw. nur Leerzeichen oder `ItemKey` = 0. Mindestens einen der Parameter `ItemKey`, `EAN`, `ItemNrSuppl`, `ItemNrInt` oder `ItemXML` angeben. |
| Error | No items found with given parameters. | Keiner der angegebenen Identifikatoren passt zu einem Artikelcode oder Artikel. Werte und XML-Elementnamen prüfen. |
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:pixiGetItemStockBins>
<!-- <ItemKey>1234</ItemKey> -->
<!-- <EAN>4006381333931</EAN> -->
<!-- <ItemNrSuppl>SUP-55-A</ItemNrSuppl> -->
<!-- <ItemNrInt>ART-1001</ItemNrInt> -->
<!-- <ItemXML><![CDATA[<ITEMS><ITEM><ITEMKEY>1234</ITEMKEY><ITEMNRINT>ART-1001</ITEMNRINT><ITEMNRSUPPL>SUP-55-A</ITEMNRSUPPL><EAN>4006381333931</EAN></ITEM><ITEM><ITEMKEY></ITEMKEY><ITEMNRINT>ART-2002</ITEMNRINT><ITEMNRSUPPL></ITEMNRSUPPL><EAN></EAN></ITEM></ITEMS>]]></ItemXML> -->
</ns1:pixiGetItemStockBins>
</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:pixiGetItemStockBins>
<!-- <ItemKey>1234</ItemKey> -->
<!-- <EAN>4006381333931</EAN> -->
<!-- <ItemNrSuppl>SUP-55-A</ItemNrSuppl> -->
<!-- <ItemNrInt>ART-1001</ItemNrInt> -->
<!-- <ItemXML><![CDATA[<ITEMS><ITEM><ITEMKEY>1234</ITEMKEY><ITEMNRINT>ART-1001</ITEMNRINT><ITEMNRSUPPL>SUP-55-A</ITEMNRSUPPL><EAN>4006381333931</EAN></ITEM><ITEM><ITEMKEY></ITEMKEY><ITEMNRINT>ART-2002</ITEMNRINT><ITEMNRSUPPL></ITEMNRSUPPL><EAN></EAN></ITEM></ITEMS>]]></ItemXML> -->
</ns1:pixiGetItemStockBins>
</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' => '1234',
// 'EAN' => '4006381333931',
// 'ItemNrSuppl' => 'SUP-55-A',
// 'ItemNrInt' => 'ART-1001',
// 'ItemXML' => '<ITEMS><ITEM><ITEMKEY>1234</ITEMKEY><ITEMNRINT>ART-1001</ITEMNRINT><ITEMNRSUPPL>SUP-55-A</ITEMNRSUPPL><EAN>4006381333931</EAN></ITEM><ITEM><ITEMKEY></ITEMKEY><ITEMNRINT>ART-2002</ITEMNRINT><ITEMNRSUPPL></ITEMNRSUPPL><EAN></EAN></ITEM></ITEMS>',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetItemStockBins', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetItemStockBins