pixiGetChangedOrderlines
Liefert Statusänderungen von Auftragspositionen aus der Auftragshistorie seit einem Zeitpunkt, wahlweise alle Änderungen oder nur die letzte je Position.
Liest Statusänderungen von Auftragspositionen aus der Auftragshistorie und liefert sie zusammen mit Artikel- und Auftragsreferenzen.
- Es werden nur Historieneinträge mit
StatusChangeDate>=Sincegeliefert. IstSinceNULL, wird das aktuelle Datum mit Uhrzeit (GETDATE()) verwendet. WholeHistory=1(Standard): Alle passenden Historieneinträge werden geliefert, eine Auftragsposition kann also mehrfach erscheinen.WholeHistory=0: Nur der Eintrag, dessenStatusChangeDatedem jüngstenStatusChangeDatedieser Auftragsposition in der gesamten Historie entspricht, wird geliefert. Liegt die letzte Änderung einer Position vorSince, erscheint sie nicht.- Historieneinträge werden mit der Auftragsposition und dem Artikel verknüpft (Inner Joins). Einträge ohne passende Auftragsposition oder ohne Artikel werden nicht geliefert.
- Identische Zeilen werden zusammengefasst (
DISTINCT). - Die Sortierung erfolgt aufsteigend nach
StatusChangeDate. Rowsbegrenzt die Anzahl der gelieferten Zeilen;0(Standard) oderNULLbedeutet keine Begrenzung.
Hinweise
- Alle Tabellen werden mit
NOLOCKgelesen, daher können nicht festgeschriebene Änderungen geliefert werden (Dirty Reads). - Wird
NULLfürSinceübergeben, werden faktisch nur Änderungen ab dem Aufrufzeitpunkt geliefert, was in der Regel ein leeres Ergebnis ergibt. - Die Zeilenbegrenzung erfolgt über
SET ROWCOUNT; einen Offset gibt es nicht. Für inkrementelles Abfragen wird das höchsteStatusChangeDatedes letzten Aufrufs als nächstesSinceverwendet. Da der Filter>=nutzt, werden Zeilen mit genau diesem Zeitstempel erneut geliefert und müssen vom Aufrufer dedupliziert werden (z. B. überOrderlineKeyundStatusChangeDate). Haben mehr Zeilen denselben Zeitstempel alsRowserlaubt, kann das Abfragen hängen bleiben; daher einen ausreichend großen Wert fürRowswählen. - Bei
WholeHistory=0sind dennoch mehrere Zeilen je Auftragsposition möglich, wenn mehrere Historieneinträge mit unterschiedlichem Status dasselbe jüngsteStatusChangeDatehaben.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
Since
Pflicht
|
datetime dateTime |
– |
Beginn des Zeitfensters. Nur Historieneinträge mit Beispiel: |
WholeHistory
|
bit boolean |
1 |
Steuert, ob alle Statusänderungen oder nur die letzte Änderung je Auftragsposition geliefert werden. Erlaubte Werte
Beispiel: |
Rows
|
int | 0 |
Maximale Anzahl gelieferter Zeilen. Beispiel: |
Antwort
Result-Set 1 · Immer (kann leer sein)
Statusänderungen von Auftragspositionen, aufsteigend sortiert nach StatusChangeDate.
| Spalte | Typ | Beschreibung |
|---|---|---|
ItemNrInt
Kann leer sein |
string |
Interne Artikelnummer des Artikels der Auftragsposition (aus |
OrderNrExternal
Kann leer sein |
string |
Externe Auftragsnummer (Shop) an der Auftragsposition. |
Status
Kann leer sein |
string |
Status der Auftragsposition laut diesem Historieneintrag. |
StatusChangeDate
|
dateTime |
Datum und Uhrzeit der Statusänderung. |
ItemNrExternal
Kann leer sein |
string |
Externe Artikelnummer (Shop) an der Auftragsposition. |
ShopID
Kann leer sein |
string |
Shop-ID aus dem Historieneintrag. |
OrderlineKey
|
int |
Schlüssel der Auftragsposition ( |
Beispielantwort
<SqlRowSet1>
<row>
<ItemNrInt>100234</ItemNrInt>
<OrderNrExternal>WEB-2024-00815</OrderNrExternal>
<Status>AUS</Status>
<StatusChangeDate>2024-03-11T09:15:22.000+01:00</StatusChangeDate>
<ItemNrExternal>SKU-4711</ItemNrExternal>
<ShopID>WEB</ShopID>
<OrderlineKey>558812</OrderlineKey>
</row>
<row>
<ItemNrInt>100877</ItemNrInt>
<OrderNrExternal>WEB-2024-00816</OrderNrExternal>
<Status>STO</Status>
<StatusChangeDate>2024-03-11T10:02:05.000+01:00</StatusChangeDate>
<ItemNrExternal>SKU-0815</ItemNrExternal>
<ShopID>WEB</ShopID>
<OrderlineKey>558820</OrderlineKey>
</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:pixiGetChangedOrderlines>
<Since>2024-03-11T00:00:00</Since>
<!-- <WholeHistory>0</WholeHistory> -->
<!-- <Rows>500</Rows> -->
</ns1:pixiGetChangedOrderlines>
</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:pixiGetChangedOrderlines>
<Since>2024-03-11T00:00:00</Since>
<!-- <WholeHistory>0</WholeHistory> -->
<!-- <Rows>500</Rows> -->
</ns1:pixiGetChangedOrderlines>
</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 = [
'Since' => '2024-03-11T00:00:00',
// 'WholeHistory' => '0',
// 'Rows' => '500',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetChangedOrderlines', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetChangedOrderlines