pixiGetItemStockHistory
Liefert die Lagerplatz-Bestandshistorie eines Artikels, ermittelt über Artikelschlüssel, EAN, Lieferanten- oder interne Artikelnummer, mit Paging.
Liefert das Bestandsbewegungsprotokoll eines Artikels je Lagerplatz, ähnlich der Lagerplatzhistorie im Pixi-Client.
- Artikelsuche: Der Artikel wird in
itemsüber die gefüllten Kennungen gesucht, die per ODER verknüpft sind:ItemKey(wenn nicht 0/NULL),EANUPC=EAN,ItemNrSupploderItemNrInt(jeweils nur wenn nicht leer). Verwendet wird der erste Treffer (TOP 1, ohne Sortierung). - Wird kein Artikel gefunden, kommt eine einzelne Statuszeile mit
Status=Errorzurück und der Aufruf endet. - Andernfalls werden die Protokolleinträge des Artikels aus
InvBinItemLoggeladen, absteigend nach Protokollschlüssel (neueste zuerst) nummeriert, und die überPageNumberundPageSizebestimmte Seite wird ausgewählt. - Der Lagerplatzname stammt aus dem aktuellen Lagerplatz (
InvBin). Existiert der Lagerplatz nicht mehr, wird der Name aus der Lagerplatzhistorie (InvBinHist) samt Historienbemerkung genommen. - Namen von Bestandsbewegungsvorgang und -typ werden in die über
LanguageIDangegebene Sprache übersetzt.SMTNamebesteht aus der Typnummer, einem Leerzeichen und dem übersetzten Typnamen. - Einträge mit
UpdateEmp=AutoExportwerden nach dem Paging aus dem Ergebnis entfernt.
Hinweise
- Alle Lesezugriffe verwenden
NOLOCK; das Ergebnis kann nicht festgeschriebene Daten enthalten. - Werden mehrere Kennungen übergeben, sind sie per ODER verknüpft; es kann ein beliebiger passender Artikel gewählt werden. Für ein eindeutiges Ergebnis nur eine Kennung übergeben.
- Der Filter auf
AutoExportgreift nach dem Paging, daher kann eine Seite weniger Zeilen alsPageSizeenthalten.TotalPageswird aus allen Protokolleinträgen berechnet, einschließlich der gefilterten. TotalPagesergibt sich aus der ganzzahligen Division der Gesamtzeilen durchPageSizeplus 1. Ist die Gesamtzahl ein exaktes Vielfaches vonPageSize, wird eine zusätzliche (leere) Seite gemeldet.- Die abschließende Abfrage hat kein explizites
ORDER BY. Die Zeilen kommen in der Regel, aber ohne Garantie, mit den neuesten zuerst. SMOName/SMTNamesind NULL, wenn für die angegebeneLanguageIDkeine Übersetzung existiert.- Die Prozedur gibt den Rückgabewert 1 zurück, wenn kein Artikel gefunden wird.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ItemKey
|
int | NULL |
Interner Schlüssel des Artikels. Wird bei NULL oder 0 ignoriert. Beispiel: |
EAN
|
varchar(13) string |
NULL |
EAN/UPC des Artikels (Vergleich mit Beispiel: |
ItemNrSuppl
|
varchar(50) string |
NULL |
Lieferanten-Artikelnummer. Wird ignoriert, wenn leer. Beispiel: |
ItemNrInt
|
varchar(50) string |
NULL |
Interne Artikelnummer. Wird ignoriert, wenn leer. Beispiel: |
LanguageID
|
int | 2 |
Sprache für die Übersetzung der Namen von Bestandsbewegungsvorgängen und -typen. Beispiel: |
PageSize
|
int | 10000 |
Anzahl der Protokolleinträge pro Seite (vor dem Filter auf Beispiel: |
PageNumber
|
int | 1 |
Zurückzugebende Seite, beginnend bei 1. Beispiel: |
Antwort
Result-Set 1 · Wenn kein Artikel zu den angegebenen Kennungen passt
Statuszeile, dass kein Artikel gefunden wurde.
| Spalte | Typ | Beschreibung |
|---|---|---|
Status
|
varchar(5) string |
Immer |
Message
|
varchar(44) string |
Fehlertext. |
Result-Set 2 · Wenn ein Artikel gefunden wurde
Eine Zeile je Lagerplatz-Protokolleintrag des Artikels auf der angeforderten Seite, ohne Einträge von AutoExport.
| Spalte | Typ | Beschreibung |
|---|---|---|
Qty
|
int |
Menge des Protokolleintrags. |
UpdateEmp
|
varchar(100) string |
Mitarbeiter oder Prozess, der die Änderung vorgenommen hat. |
UpdateDate
Kann leer sein |
datetime dateTime |
Datum und Uhrzeit der Änderung. |
BinName
Kann leer sein |
varchar(151) string |
Name des Lagerplatzes; bei gelöschten Lagerplätzen der historische Name plus Historienbemerkung. |
LocID
|
varchar(3) string |
Lager-ID (Standort) des Protokolleintrags. |
ForOrderline
Kann leer sein |
int |
Auftragsposition, auf die sich die Bewegung bezieht, falls vorhanden. |
Reason
Kann leer sein |
varchar(50) string |
Begründungstext der Bewegung. |
SMOName
Kann leer sein |
varchar(512) string |
Übersetzter Name des Bestandsbewegungsvorgangs. |
SMTName
Kann leer sein |
varchar(517) string |
Nummer des Bestandsbewegungstyps gefolgt vom übersetzten Namen. |
TotalPages
Kann leer sein |
int |
Gesamtzahl der Seiten auf Basis aller Protokolleinträge des Artikels. |
Beispielantwort
<SqlRowSet1>
<row>
<Qty>5</Qty>
<UpdateEmp>mmueller</UpdateEmp>
<UpdateDate>2024-03-12T10:15:22.000</UpdateDate>
<BinName>A-01-03</BinName>
<LocID>001</LocID>
<ForOrderline>884512</ForOrderline>
<Reason>Picking</Reason>
<SMOName>Pick</SMOName>
<SMTName>2 Outgoing</SMTName>
<TotalPages>1</TotalPages>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| Error | No item was found for the given parameters! | Keine der übergebenen Kennungen (`ItemKey`, `EAN`, `ItemNrSuppl`, `ItemNrInt`) passt zu einem Artikel, oder es wurde keine übergeben. Mindestens eine gültige Kennung ü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:pixiGetItemStockHistory>
<!-- <ItemKey>12345</ItemKey> -->
<!-- <EAN>4006381333931</EAN> -->
<!-- <ItemNrSuppl>SUP-778899</ItemNrSuppl> -->
<!-- <ItemNrInt>ART-100200</ItemNrInt> -->
<!-- <LanguageID>2</LanguageID> -->
<!-- <PageSize>100</PageSize> -->
<!-- <PageNumber>1</PageNumber> -->
</ns1:pixiGetItemStockHistory>
</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:pixiGetItemStockHistory>
<!-- <ItemKey>12345</ItemKey> -->
<!-- <EAN>4006381333931</EAN> -->
<!-- <ItemNrSuppl>SUP-778899</ItemNrSuppl> -->
<!-- <ItemNrInt>ART-100200</ItemNrInt> -->
<!-- <LanguageID>2</LanguageID> -->
<!-- <PageSize>100</PageSize> -->
<!-- <PageNumber>1</PageNumber> -->
</ns1:pixiGetItemStockHistory>
</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-778899',
// 'ItemNrInt' => 'ART-100200',
// 'LanguageID' => '2',
// 'PageSize' => '100',
// 'PageNumber' => '1',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetItemStockHistory', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetItemStockHistory