pixiGetItemsStockHistory
Liefert das Lagerplatz-Bewegungsprotokoll aller Artikel in einem Zeitraum, optional gefiltert nach Lager, Auftrag, Lieferung und Umlagerungstransaktion.
Liefert Einträge des Lagerplatz-Artikelprotokolls (Bestandsbewegungen auf Lagerplätzen), ähnlich der Lagerplatzhistorie im Pixi-Client, jedoch für alle Artikel gleichzeitig.
Ablauf:
- Normalisiert die Eingaben: ein leeres oder fehlendes
DateTowird zum aktuellen Zeitpunkt, leere Werte inLocationundOrderNumberExternalwerden (nach Trimmen) zuNULL,DeliveryNumber=0gilt als kein Filter,RowCountist standardmäßig1000undIbilKey0. - Wählt Protokolleinträge mit:
IBILkeygrößer alsIbilKey(für Paging),UpdateDate>=DateFromund <DateTo(die Obergrenze ist exklusiv),- optional
LocID=Location, - optional externe Auftragsnummer der verknüpften Auftragsposition =
OrderNumberExternal, - optional Nummer der verknüpften Lieferantenlieferung =
DeliveryNumber, - optional verknüpfte Umlagerungstransaktion =
RelocateTransactionID, - Einträge des Benutzers
AutoExportwerden immer ausgeschlossen.
- Ergänzt jeden Eintrag um Artikeldaten (interne Artikelnummer, EAN, Lieferanten-Artikelnummer), Lagerplatzname, Bewegungstyp und -operation, Chargennummer, Mindesthaltbarkeitsdatum, Umlagerungstransaktions-ID, Liefernummer und externe Auftragsnummer.
- Liefert höchstens
RowCountZeilen, sortiert nachIBILkeyaufsteigend.
Paging: Den höchsten IBILkey der vorherigen Antwort als IbilKey übergeben, um die nächste Seite abzurufen.
Hinweise
- Alle Tabellen werden mit
NOLOCKgelesen; nicht festgeschriebene Bewegungen können erscheinen, und die Ergebnisse sind nicht garantiert konsistent. - Die Prozedur ist mit
WITH RECOMPILEangelegt; bei jedem Aufruf wird ein neuer Ausführungsplan erstellt. - Einträge mit
UpdateEmp=AutoExportoderNULLwerden nie geliefert (der Vergleich<> 'AutoExport'schließtNULLaus). - Lagerplätze werden per LEFT JOIN verknüpft; Einträge gelöschter Lagerplätze erscheinen mit leerem
BinName. Protokolleinträge, deren Artikel nicht mehr inItemsexistiert, werden nicht geliefert. - Wird
OrderNumberExternal,DeliveryNumberoderRelocateTransactionIDgesetzt, werden implizit nur Einträge geliefert, die mit einer Auftragsposition, Lieferung bzw. Umlagerungstransaktion verknüpft sind. - Ist ein Protokolleintrag mit mehreren Umlagerungstransaktionen verknüpft, kann er mehrfach erscheinen.
- Ein negativer
RowCountführt zu einem SQL-Fehler beiTOP.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
DateFrom
Pflicht
|
datetime dateTime |
– |
Beginn des Zeitraums (inklusive), verglichen mit Beispiel: |
DateTo
|
datetime dateTime |
NULL |
Ende des Zeitraums (exklusiv). Bei Beispiel: |
Location
|
varchar(3) string |
NULL |
Optionale Lager-ID; nur Einträge mit dieser Beispiel: |
OrderNumberExternal
|
varchar(50) string |
NULL |
Optionale externe Auftragsnummer; nur Einträge, die mit einer Auftragsposition mit dieser Beispiel: |
DeliveryNumber
|
int | NULL |
Optionale Nummer der Lieferantenlieferung ( Beispiel: |
RelocateTransactionID
|
uniqueidentifier string |
NULL |
Optionale Umlagerungstransaktions-ID; nur Einträge dieser Umlagerungstransaktion werden geliefert. Beispiel: |
RowCount
|
int | 1000 |
Maximale Anzahl gelieferter Zeilen. Beispiel: |
IbilKey
|
int | 0 |
Paging-Cursor: nur Einträge mit Beispiel: |
Antwort
Result-Set 1 · Immer (kann leer sein).
Lagerplatz-Protokolleinträge passend zu den Filtern, höchstens RowCount Zeilen, sortiert nach IBILkey aufsteigend.
| Spalte | Typ | Beschreibung |
|---|---|---|
IBILkey
|
int |
Schlüssel des Lagerplatz-Protokolleintrags; für Paging verwenden. |
ItemKey
|
int |
Interner Artikelschlüssel. |
ItemNrInt
Kann leer sein |
string |
Interne Artikelnummer. |
EANUPC
Kann leer sein |
string |
EAN/UPC des Artikels. |
ItemNrSuppl
Kann leer sein |
string |
Lieferanten-Artikelnummer. |
Qty
Kann leer sein |
int |
Bewegte Menge (Vorzeichen gibt die Richtung an). |
UpdateEmp
|
string |
Mitarbeiter oder Prozess, der den Eintrag geschrieben hat. |
UpdateDate
|
datetime dateTime |
Datum und Uhrzeit der Bewegung. |
BinName
Kann leer sein |
string |
Name des Lagerplatzes; leer, wenn der Lagerplatz gelöscht wurde. |
LocID
Kann leer sein |
varchar(3) string |
Lager-ID. |
ForOrderline
Kann leer sein |
int |
Schlüssel der zugehörigen Auftragsposition, falls vorhanden. |
Reason
Kann leer sein |
string |
Grundtext der Bewegung. |
SMType
Kann leer sein |
string |
Typ der Bestandsbewegung. |
SMOperation
Kann leer sein |
string |
Bestandsbewegungsoperation im Format |
BatchNumber
Kann leer sein |
string |
Chargennummer. |
BestBeforeDate
Kann leer sein |
dateTime |
Mindesthaltbarkeitsdatum. |
RelocateTransactionID
Kann leer sein |
uniqueidentifier string |
ID der verknüpften Umlagerungstransaktion. |
DeliveryNumber
Kann leer sein |
int |
Nummer der verknüpften Lieferantenlieferung ( |
OrderNrExternal
Kann leer sein |
varchar(50) string |
Externe Auftragsnummer der verknüpften Auftragsposition. |
Beispielantwort
<SqlRowSet1>
<row>
<IBILkey>1520345</IBILkey>
<ItemKey>8812</ItemKey>
<ItemNrInt>ART-10023</ItemNrInt>
<EANUPC>4012345678901</EANUPC>
<ItemNrSuppl>SUP-5521</ItemNrSuppl>
<Qty>-1</Qty>
<UpdateEmp>MMU</UpdateEmp>
<UpdateDate>2024-05-01T09:15:22</UpdateDate>
<BinName>A-01-03</BinName>
<LocID>001</LocID>
<ForOrderline>334455</ForOrderline>
<Reason>Picking</Reason>
<SMType>OUT</SMType>
<SMOperation>PickApp/Pick</SMOperation>
<OrderNrExternal>SHOP-100234</OrderNrExternal>
</row>
<row>
<IBILkey>1520346</IBILkey>
<ItemKey>9021</ItemKey>
<ItemNrInt>ART-20077</ItemNrInt>
<EANUPC>4012345678918</EANUPC>
<ItemNrSuppl>SUP-7710</ItemNrSuppl>
<Qty>24</Qty>
<UpdateEmp>KOB</UpdateEmp>
<UpdateDate>2024-05-01T10:02:05</UpdateDate>
<BinName>B-12-01</BinName>
<LocID>001</LocID>
<Reason>Goods receipt</Reason>
<SMType>IN</SMType>
<SMOperation>Client/Booking</SMOperation>
<BatchNumber>CH2024-05</BatchNumber>
<BestBeforeDate>2025-12-31T00:00:00</BestBeforeDate>
<DeliveryNumber>4711</DeliveryNumber>
</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:pixiGetItemsStockHistory>
<DateFrom>2024-05-01T00:00:00</DateFrom>
<!-- <DateTo>2024-05-02T00:00:00</DateTo> -->
<!-- <Location>001</Location> -->
<!-- <OrderNumberExternal>SHOP-100234</OrderNumberExternal> -->
<!-- <DeliveryNumber>4711</DeliveryNumber> -->
<!-- <RelocateTransactionID>3F2504E0-4F89-11D3-9A0C-0305E82C3301</RelocateTransactionID> -->
<!-- <RowCount>500</RowCount> -->
<!-- <IbilKey>0</IbilKey> -->
</ns1:pixiGetItemsStockHistory>
</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:pixiGetItemsStockHistory>
<DateFrom>2024-05-01T00:00:00</DateFrom>
<!-- <DateTo>2024-05-02T00:00:00</DateTo> -->
<!-- <Location>001</Location> -->
<!-- <OrderNumberExternal>SHOP-100234</OrderNumberExternal> -->
<!-- <DeliveryNumber>4711</DeliveryNumber> -->
<!-- <RelocateTransactionID>3F2504E0-4F89-11D3-9A0C-0305E82C3301</RelocateTransactionID> -->
<!-- <RowCount>500</RowCount> -->
<!-- <IbilKey>0</IbilKey> -->
</ns1:pixiGetItemsStockHistory>
</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 = [
'DateFrom' => '2024-05-01T00:00:00',
// 'DateTo' => '2024-05-02T00:00:00',
// 'Location' => '001',
// 'OrderNumberExternal' => 'SHOP-100234',
// 'DeliveryNumber' => '4711',
// 'RelocateTransactionID' => '3F2504E0-4F89-11D3-9A0C-0305E82C3301',
// 'RowCount' => '500',
// 'IbilKey' => '0',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetItemsStockHistory', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetItemsStockHistory