pixiGetOrderChanges
Liefert Aufträge, die in einem Zeitraum angelegt, geändert, berechnet oder ausgescannt wurden, mit einer Zeile je erkannter Änderung.
Sammelt Änderungsereignisse zu Aufträgen im Zeitraum von DateFrom (einschließlich) bis DateTo (ausschließlich) und gibt sie als flache Liste zurück. Der Aufruf ist für abfragende Clients gedacht, die Aufträge in ein externes System synchronisieren.
Ohne DateFrom gilt der aktuelle Zeitpunkt minus einen Tag. Ohne DateTo gilt der aktuelle Zeitpunkt.
Je nach ChangeType laufen eine oder alle dieser Prüfungen:
CORDER: Auftragsköpfe, derenCreateDateim Zeitraum liegt.Param1ist leer.UORDER: Auftragsköpfe, derenUpdateDateim Zeitraum liegt.Param1ist leer.CORDERL: Auftragspositionen, derenCreateDateim Zeitraum liegt. Eine Zeile je Position;Param1enthält denOrderlineKey.UORDERL: Auftragspositionen, derenUpdateDateim Zeitraum liegt. Eine Zeile je Position;Param1enthält denOrderlineKey.IORDER: Rechnungen, derenInvDateim Zeitraum liegt. Eine Zeile je Auftrag und Rechnung;Param1enthält dieInvoiceNr.SORDER: Rechnungen, derenScanOutDateim Zeitraum liegt. Eine Zeile je Auftrag und Rechnung;Param1enthält dieInvoiceNr.
ALL (Standard) führt alle sechs Prüfungen aus.
Optionale Filter:
ShopID: bei Kopf-Ereignissen der Shop der Auftragsadresse (AddrShopId). Bei Positions-Ereignissen der Shop der Auftragsposition (OrdShopID). Bei Rechnungs-Ereignissen der Shop der Rechnung (InvShopID).PaymentType: bei Kopf- und Positions-Ereignissen die Zahlungsart der Adresse (APayment). Bei Rechnungs-Ereignissen die Zahlungsart der Rechnung (Payment).
Es werden nur Zeilen mit OrderNr > 0 geliefert. Sortiert wird aufsteigend nach OrderNr, dann ChangeType, dann Param1.
Hinweise
- Alle Lesezugriffe verwenden
NOLOCK. Daher können nicht festgeschriebene Änderungen erscheinen, und unter gleichzeitiger Last können Zeilen fehlen oder doppelt auftreten. - Der Zeitraum ist halboffen (
>= DateFrom,< DateTo). Wird das vorherigeDateToals nächstesDateFromverwendet, entsteht eine lückenlose Abfrage ohne Überschneidungen. - Das Ergebnis wird nicht dedupliziert. Derselbe Auftrag kann mehrfach erscheinen: mit mehreren Änderungsarten, mehreren Positionen oder mehreren Rechnungen.
CORDER/UORDERverknüpfen per Inner Join mit der Auftragsadresse. Auftragsköpfe ohne passende Adresse werden nicht gemeldet.Param1ist einvarcharund wird daher als Text sortiert:OrderlineKey- undInvoiceNr-Werte werden alphabetisch, nicht numerisch sortiert.- Ein unbekannter Wert für
ChangeTypelöst keinen Fehler aus; das Ergebnis ist dann leer. - Es werden keine Fehlerzeilen erzeugt.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ChangeType
|
varchar(10) string |
ALL |
Art der zu meldenden Änderung. Erlaubte Werte
Beispiel: |
ShopID
|
varchar(3) string |
NULL |
Optionaler Shop-Filter. Er wird je nach Änderungsart auf den Shop der Adresse, der Auftragsposition oder der Rechnung angewendet. Beispiel: |
PaymentType
|
char(1) string |
NULL |
Optionaler Filter auf die Zahlungsart. Er wird auf die Zahlungsart der Adresse ( Beispiel: |
DateFrom
|
datetime dateTime |
NULL |
Beginn des Zeitraums (einschließlich). Standard ist der aktuelle Zeitpunkt minus einen Tag. Beispiel: |
DateTo
|
datetime dateTime |
NULL |
Ende des Zeitraums (ausschließlich). Standard ist der aktuelle Zeitpunkt. Beispiel: |
Antwort
Result-Set 1 · Immer (kann leer sein)
Eine Zeile je erkannter Änderung, sortiert nach OrderNr, ChangeType und Param1.
| Spalte | Typ | Beschreibung |
|---|---|---|
OrderNr
Kann leer sein |
int |
Auftragsnummer des betroffenen Auftrags |
ChangeType
Kann leer sein |
varchar(10) string |
Änderungsart: |
Timestamp
Kann leer sein |
datetime dateTime |
Zeitpunkt der Änderung. Je nach Änderungsart ist dies das Anlage-, Änderungs-, Rechnungs- oder Ausscan-Datum. |
Param1
Kann leer sein |
varchar(100) string |
Zusätzliche Referenz: |
Beispielantwort
<SqlRowSet1>
<row>
<OrderNr>100245</OrderNr>
<ChangeType>CORDER</ChangeType>
<Timestamp>2024-05-01T09:15:22</Timestamp>
</row>
<row>
<OrderNr>100245</OrderNr>
<ChangeType>CORDERL</ChangeType>
<Timestamp>2024-05-01T09:15:23</Timestamp>
<Param1>587311</Param1>
</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:pixiGetOrderChanges>
<!-- <ChangeType>ALL</ChangeType> -->
<!-- <ShopID>001</ShopID> -->
<!-- <PaymentType>V</PaymentType> -->
<!-- <DateFrom>2024-05-01T00:00:00</DateFrom> -->
<!-- <DateTo>2024-05-02T00:00:00</DateTo> -->
</ns1:pixiGetOrderChanges>
</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:pixiGetOrderChanges>
<!-- <ChangeType>ALL</ChangeType> -->
<!-- <ShopID>001</ShopID> -->
<!-- <PaymentType>V</PaymentType> -->
<!-- <DateFrom>2024-05-01T00:00:00</DateFrom> -->
<!-- <DateTo>2024-05-02T00:00:00</DateTo> -->
</ns1:pixiGetOrderChanges>
</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 = [
// 'ChangeType' => 'ALL',
// 'ShopID' => '001',
// 'PaymentType' => 'V',
// 'DateFrom' => '2024-05-01T00:00:00',
// 'DateTo' => '2024-05-02T00:00:00',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetOrderChanges', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetOrderChanges