pixiGetItemInfoPickList
Liefert Artikelstammdaten für einen oder mehrere Artikel an einem Lager sowie offene Picklistenpositionen, gepackte Kartonmengen und einen kombinierten Statuscode.
Sucht einen oder mehrere Artikel und liefert deren Stammdaten zusammen mit Informationen zu Picklisten und Kartons, in denen sie aktuell vorkommen.
Prüfung
- Sind
ItemKey,EANUPC,ItemNrSuppl,ItemNrIntundItemXMLalle leer, liefert der Aufruf eine Zeile mitStatus=0und einer Meldung, gefolgt von der abschließenden Statuszeile0000.LocIDallein genügt nicht.ItemKey=0gilt ebenfalls als leer.
Artikelsuche
- Ein einzelner Artikel wird über
COALESCE(EANUPC, ItemNrInt, ItemNrSuppl)in den scanbaren Artikelcodes ermittelt (pixi.ItemCodemit einem Codetyp, bei demScannable= 1 ist). Verwendet wird der erste Treffer. IstItemKeyübergeben, hat er Vorrang vor der Code-Suche. - Zusätzlich kann
ItemXMLmehrere Artikel enthalten (/ITEMS/ITEMmit den KindelementenITEMNRINT,ITEMNRSUPPL,ITEMKEY,EAN). Jeder Eintrag findet Artikel, deren interne Nummer, EAN, Artikelschlüssel oder Lieferantenartikelnummer einem der Werte entspricht. Diese Artikel werden zum Einzelartikel aus den Parametern hinzugefügt.
Ergebnismengen bei Erfolg (in dieser Reihenfolge)
- Artikeldaten aus
items, verknüpft mit den lagerspezifischen Werten ausItemLocationSpecificfürLocID(Bestand, Mindestbestand, Mindestbestellmenge), Kategoriename, MwSt-Stufe, Tags, ABC-Klasse, voraussichtliche Lieferzeit und Bildlinks. - Picklistenpositionen: je Artikel und Pickliste die Anzahl nicht abgelaufener Picklistenpositionen, deren Auftragsposition nicht im Status
AUS,NLB,RET,STOoderEINist. Bei gesetztemLocIDnach dem Lager der Auftragsposition gefiltert. - Kartonpositionen: je Artikel, Karton und verwendeter Picklistennummer die summierte Menge in Kartons für Auftragspositionen im Status
EIN. Bei gesetztemLocIDnach dem Lager der Auftragsposition gefiltert. - Eine Statuszeile mit vierstelligem Code: Zugriff / Artikel gefunden / auf Pickliste / im Karton. Mögliche Werte sind
0000(kein Parameter),1000(keine Artikeldaten gefunden),1100,1101,1110und1111.
Hinweise
- Die Ergebnismenge mit Artikeldaten verwendet einen INNER JOIN auf
ItemLocationSpecificmitLocID = @LocID. WirdLocIDnicht übergeben (NULL), werden keine Artikelzeilen geliefert und der Status lautet1000, obwohl die Picklisten- und Kartonergebnisse weiterhin für alle Lager gefüllt werden. - Die Suche verwendet
COALESCE; ein Leerstring inEANUPC(statt den Parameter wegzulassen) verhindert daher die Suche überItemNrIntoderItemNrSuppl. - Der XML-Abgleich verwendet ODER-Bedingungen; ein
ITEM-Eintrag kann mehrere verschiedene Artikel treffen. - Wird derselbe Artikel mehrfach angegeben (z. B. über Parameter und XML), können die Picklisten- und Kartonergebnisse doppelte Zeilen enthalten; die Artikeldaten nicht.
Sum_PickListItem,Sum_BoxItem,PickListNrundBoxNrsind inISNULL(..., '')gekapselt; bei numerischen Spalten wird ein leerer Wert zu0.- Alle Lesezugriffe verwenden
NOLOCK, daher können nicht festgeschriebene Daten geliefert werden. Die Picklisten- und Kartonaggregate werden vor der Filterung für alle Artikel berechnet, was bei großen Datenbanken langsam sein kann. - Ungültiges XML in
ItemXMLführt zu einem SQL-Fehler aussp_xml_preparedocument.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ItemKey
|
int | NULL |
Interner Artikelschlüssel. Hat Vorrang vor der Code-Suche. Beispiel: |
ItemNrInt
|
varchar(50) string |
NULL |
Interne Artikelnummer; wird für die Suche über scanbare Codes verwendet, wenn Beispiel: |
EANUPC
|
varchar(13) string |
NULL |
EAN-/UPC-Code; wird als erster Wert für die Suche über scanbare Codes verwendet. Beispiel: |
ItemNrSuppl
|
varchar(50) string |
NULL |
Lieferantenartikelnummer; wird für die Code-Suche verwendet, wenn Beispiel: |
LocID
|
varchar(3) string |
NULL |
Lager-ID. Erforderlich für die Ergebnismenge mit Artikeldaten (lagerspezifische Werte); filtert bei Angabe Picklisten- und Kartondaten nach dem Lager der Auftragsposition. Beispiel: |
ItemXML
|
varchar(max) xml |
NULL |
Optionale Liste weiterer Artikel als XML ( Beispiel:
|
Antwort
Result-Set 1 · Nur wenn kein Artikelparameter (ItemKey, EANUPC, ItemNrSuppl, ItemNrInt, ItemXML) angegeben ist
Fehlerzeile der Prüfung.
| Spalte | Typ | Beschreibung |
|---|---|---|
Status
|
varchar(1) string |
Immer |
StatusMsg
|
varchar(37) string |
Fehlermeldung. |
Result-Set 2 · Wenn mindestens ein Artikelparameter angegeben ist
Artikelstammdaten mit lagerspezifischen Werten für LocID; eine Zeile je gefundenem Artikel. Leer, wenn LocID NULL ist oder kein lagerspezifischer Datensatz existiert.
| Spalte | Typ | Beschreibung |
|---|---|---|
ItemKey
|
int |
Interner Artikelschlüssel. |
SupplPrice
Kann leer sein |
decimal |
Lieferanten-Einkaufspreis. |
ItemName
Kann leer sein |
string |
Artikelbezeichnung. |
VPE
|
decimal |
Verpackungseinheit; |
MinStockQty
Kann leer sein |
int |
Mindestbestand am Lager, sonst aus dem Artikelstamm. |
MinOrderQty
Kann leer sein |
int |
Mindestbestellmenge am Lager, sonst aus dem Artikelstamm. |
SupplNR
Kann leer sein |
string |
Lieferantennummer. |
Category
Kann leer sein |
string |
Kategoriename aus |
ItemNrInt
Kann leer sein |
string |
Interne Artikelnummer. |
ItemNrSuppl1
|
string |
Lieferantenartikelnummer, Leerstring bei NULL. |
Quantity
Kann leer sein |
int |
Bestand am Lager, sonst aus dem Artikelstamm. |
PriceVK
Kann leer sein |
decimal |
Verkaufspreis ( |
VATLevel
|
varchar(9) string |
|
Enabled
Kann leer sein |
boolean |
Kennzeichen, ob der Artikel aktiv ist. |
ItemTAGs
Kann leer sein |
varchar(8000) string |
Tag-Namen des Artikels, sortiert und durch |
EANUPC
Kann leer sein |
string |
EAN-/UPC-Code. |
ItemNrSuppl
Kann leer sein |
string |
Lieferantenartikelnummer (Rohwert). |
ABC
Kann leer sein |
char(1) string |
ABC-Klasse aus den Tags |
ExportEstimatedDelivery
Kann leer sein |
string |
Voraussichtliche Lieferzeit aus |
PicLinkLarge
Kann leer sein |
string |
Link zum großen Artikelbild. |
PicLinkSmall
Kann leer sein |
string |
Link zum kleinen Artikelbild. |
Result-Set 3 · Wenn mindestens ein Artikelparameter angegeben ist
Picklistenpositionen der gefundenen Artikel, eine Zeile je Artikel, Artikelnummer und Pickliste.
| Spalte | Typ | Beschreibung |
|---|---|---|
ItemRef
Kann leer sein |
int |
Artikelschlüssel der Auftragsposition. |
ArtNr
Kann leer sein |
string |
Artikelnummer auf der Auftragsposition. |
PickListNr
|
int |
Referenz auf den Picklistenkopf ( |
Sum_PickListItem
|
int |
Anzahl nicht abgelaufener Picklistenpositionen. |
Result-Set 4 · Wenn mindestens ein Artikelparameter angegeben ist
Kartonmengen der gefundenen Artikel für Auftragspositionen im Status EIN, eine Zeile je Artikel, Karton und verwendeter Pickliste.
| Spalte | Typ | Beschreibung |
|---|---|---|
ItemRef
Kann leer sein |
int |
Artikelschlüssel der Auftragsposition. |
ArtNr
Kann leer sein |
string |
Artikelnummer (Maximum über die gruppierten Auftragspositionen). |
BoxNr
|
string |
Kartonnummer. |
Sum_BoxItem
|
int |
Summierte Menge des Artikels im Karton. |
pickListNrUsed
Kann leer sein |
string |
Für die Auftragsposition verwendete Picklistennummer. |
Result-Set 5 · Immer (letzte Ergebnismenge)
Kombinierter Statuscode: Stelle 1 = Parameter angegeben, 2 = Artikeldaten gefunden, 3 = auf Pickliste, 4 = im Karton.
| Spalte | Typ | Beschreibung |
|---|---|---|
Status
Kann leer sein |
varchar(4) string |
|
Beispielantwort
<SqlRowSet1>
<row>
<ItemKey>1234</ItemKey>
<SupplPrice>4.5000</SupplPrice>
<ItemName>USB-Kabel 2m</ItemName>
<VPE>10</VPE>
<MinStockQty>20</MinStockQty>
<MinOrderQty>50</MinOrderQty>
<SupplNR>L100</SupplNR>
<Category>Zubehör</Category>
<ItemNrInt>4711</ItemNrInt>
<ItemNrSuppl1>SUP-4711</ItemNrSuppl1>
<Quantity>135</Quantity>
<PriceVK>9.9900</PriceVK>
<VATLevel>MwSt_High</VATLevel>
<Enabled>1</Enabled>
<ItemTAGs>A|Kabel</ItemTAGs>
<EANUPC>4006381333931</EANUPC>
<ItemNrSuppl>SUP-4711</ItemNrSuppl>
<ABC>A</ABC>
<ExportEstimatedDelivery>2</ExportEstimatedDelivery>
<PicLinkLarge>https://shop.example.com/img/4711_l.jpg</PicLinkLarge>
<PicLinkSmall>https://shop.example.com/img/4711_s.jpg</PicLinkSmall>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| 0 | Please specify at least one parameter | Keiner der Parameter `ItemKey`, `EANUPC`, `ItemNrSuppl`, `ItemNrInt` oder `ItemXML` wurde übergeben (oder `ItemKey` war 0). Mindestens eine Artikelkennung übergeben. |
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:pixiGetItemInfoPickList>
<!-- <ItemKey>1234</ItemKey> -->
<!-- <ItemNrInt>4711</ItemNrInt> -->
<!-- <EANUPC>4006381333931</EANUPC> -->
<!-- <ItemNrSuppl>SUP-4711</ItemNrSuppl> -->
<!-- <LocID>001</LocID> -->
<!-- <ItemXML><![CDATA[<ITEMS><ITEM><ITEMNRINT>4711</ITEMNRINT><ITEMNRSUPPL>SUP-4711</ITEMNRSUPPL><ITEMKEY>1234</ITEMKEY><EAN>4006381333931</EAN></ITEM><ITEM><ITEMNRINT>4712</ITEMNRINT><ITEMNRSUPPL>SUP-4712</ITEMNRSUPPL><ITEMKEY>1235</ITEMKEY><EAN>4006381333948</EAN></ITEM></ITEMS>]]></ItemXML> -->
</ns1:pixiGetItemInfoPickList>
</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:pixiGetItemInfoPickList>
<!-- <ItemKey>1234</ItemKey> -->
<!-- <ItemNrInt>4711</ItemNrInt> -->
<!-- <EANUPC>4006381333931</EANUPC> -->
<!-- <ItemNrSuppl>SUP-4711</ItemNrSuppl> -->
<!-- <LocID>001</LocID> -->
<!-- <ItemXML><![CDATA[<ITEMS><ITEM><ITEMNRINT>4711</ITEMNRINT><ITEMNRSUPPL>SUP-4711</ITEMNRSUPPL><ITEMKEY>1234</ITEMKEY><EAN>4006381333931</EAN></ITEM><ITEM><ITEMNRINT>4712</ITEMNRINT><ITEMNRSUPPL>SUP-4712</ITEMNRSUPPL><ITEMKEY>1235</ITEMKEY><EAN>4006381333948</EAN></ITEM></ITEMS>]]></ItemXML> -->
</ns1:pixiGetItemInfoPickList>
</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',
// 'ItemNrInt' => '4711',
// 'EANUPC' => '4006381333931',
// 'ItemNrSuppl' => 'SUP-4711',
// 'LocID' => '001',
// 'ItemXML' => '<ITEMS><ITEM><ITEMNRINT>4711</ITEMNRINT><ITEMNRSUPPL>SUP-4711</ITEMNRSUPPL><ITEMKEY>1234</ITEMKEY><EAN>4006381333931</EAN></ITEM><ITEM><ITEMNRINT>4712</ITEMNRINT><ITEMNRSUPPL>SUP-4712</ITEMNRSUPPL><ITEMKEY>1235</ITEMKEY><EAN>4006381333948</EAN></ITEM></ITEMS>',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetItemInfoPickList', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetItemInfoPickList