pixiGetItemLogisticsEAN
Liefert seitenweise die EANs aktiver Nicht-Bundle-Artikel sowie die EANs von Einzelartikel-Bundles, die als Verpackungseinheit (VPE) dienen.
Stellt EAN-Daten von Artikeln für einen Fulfillment-Dienstleister bereit, einschließlich der EANs von Verpackungseinheiten, die als Bundles abgebildet sind.
Paging
- Es werden die ersten
@RowCountArtikel mitItemKeygrößer als@StartKeyausgewählt, aufsteigend sortiert nachItemKey. - Nur Artikel mit
Enabled = 1undIsBundle = 0gelangen in die Seite.
Ergebniszeilen
- Für jeden Artikel der Seite gibt es eine Zeile mit der eigenen
EANUPCdes Artikels undVPE = 1. - Zusätzlich werden VPE-Bundles gesucht: Bundles mit genau einer Bundle-Position, deren Menge der
OrderUnitdes enthaltenen Artikels (alsint) entspricht. Für jedes solche Bundle, dessen enthaltener Artikel in der aktuellen Seite liegt, wird eine Zeile geliefert mit:ItemKey= der enthaltene Artikel,EANUPC= die EAN des Bundles,VPE= dieOrderUnitdes enthaltenen Artikels.
Beide Teile werden per UNION zusammengeführt (exakte Duplikate entfallen) und nach ItemKey sortiert.
Alle Artikel durchlaufen
Mit StartKey = 0 beginnen und den höchsten ItemKey der letzten Antwort als nächsten StartKey übergeben. Abbrechen, wenn ein Aufruf keine Zeilen mehr liefert.
Hinweise
- Derselbe
ItemKeykann in mehreren Zeilen vorkommen (eigene EAN plus je eine Zeile pro VPE-Bundle). Die Zeilenanzahl kann daher@RowCountübersteigen;@RowCountbegrenzt die Anzahl unterschiedlicher Artikel, nicht der Zeilen. - Das Bundle selbst wird nicht nach
Enabledgefiltert; auch deaktivierte Bundles, die die VPE-Kriterien erfüllen, werden geliefert. - Bundles mit mehr als einer Bundle-Position oder mit einer Menge ungleich der
OrderUnitdes enthaltenen Artikels werden ignoriert. - Die meisten Joins lesen mit
NOLOCK(Dirty Reads möglich); der Join für die eigene EAN des Artikels verwendet keinen Locking-Hint. EANUPCkann leer oderNULLsein, wenn keine EAN gepflegt ist.- Der genaue Datentyp von
VPEhängt vom Spaltentyp vonItems.OrderUnitab, der im Code nicht ersichtlich ist.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
StartKey
|
int | 0 |
Es werden nur Artikel mit einem Beispiel: |
RowCount
|
int | 1000 |
Maximale Anzahl Artikel (aktiv, kein Bundle) pro Seite. Die Anzahl der gelieferten Zeilen kann durch zusätzliche VPE-Zeilen höher sein. Beispiel: |
Antwort
Result-Set 1 · Immer (leer, wenn nach @StartKey keine Artikel mehr existieren)
EANs je Artikel: eigene EAN mit VPE 1 sowie EANs von VPE-Bundles mit ihrer Einheitengröße, sortiert nach ItemKey.
| Spalte | Typ | Beschreibung |
|---|---|---|
ItemKey
|
int |
Schlüssel des (Einzel-)Artikels. Bei VPE-Zeilen der im Bundle enthaltene Artikel. |
EANUPC
Kann leer sein |
string |
EAN/UPC: die eigene EAN des Artikels bzw. bei VPE-Zeilen die EAN des Bundles. |
VPE
Kann leer sein |
decimal |
Verpackungseinheit: |
Beispielantwort
<SqlRowSet1>
<row>
<ItemKey>1001</ItemKey>
<EANUPC>4006381333931</EANUPC>
<VPE>1</VPE>
</row>
<row>
<ItemKey>1001</ItemKey>
<EANUPC>4006381333948</EANUPC>
<VPE>12</VPE>
</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:pixiGetItemLogisticsEAN>
<!-- <StartKey>0</StartKey> -->
<!-- <RowCount>1000</RowCount> -->
</ns1:pixiGetItemLogisticsEAN>
</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:pixiGetItemLogisticsEAN>
<!-- <StartKey>0</StartKey> -->
<!-- <RowCount>1000</RowCount> -->
</ns1:pixiGetItemLogisticsEAN>
</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 = [
// 'StartKey' => '0',
// 'RowCount' => '1000',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetItemLogisticsEAN', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetItemLogisticsEAN