Postman-Collection
Orders Lesen

pixiGetChangedOrders

Liefert die Kopfdaten aller Aufträge, die seit einem Zeitpunkt angelegt oder geändert wurden, einschließlich Änderungen an Auftragspositionen oder Adressen.

Der Aufruf dient der Delta-Synchronisation von Aufträgen. Er liefert eine Zeile je geändertem Auftrag.

Zeitfenster

  • Das Ende des Fensters, DateTimeTo, ist die Serverzeit bei der Ausführung (GETDATE()). Es wird in jeder Zeile zurückgegeben.
  • Liegt DateTimeFrom später als fünf Minuten vor der Serverzeit, wird der Wert auf jetzt minus 5 Minuten zurückgesetzt. Jeder Aufruf deckt damit mindestens die letzten fünf Minuten ab.

Welche Aufträge als geändert gelten

Ein Auftrag wird ausgewählt, wenn mindestens einer der folgenden Zeitstempel bei oder nach DateTimeFrom und nicht nach DateTimeTo liegt:

  1. Auftragskopf: UpdateDate, oder CreateDate, falls der Auftrag nie geändert wurde.
  2. Eine Auftragsposition: deren UpdateDate, oder CreateDate bei nie geänderten Positionen.
  3. Rechnungsadresse (AddrRef) oder Lieferadresse (ShipAdrRef) des Auftrags: UpdateDate, oder CreateDate, falls nie geändert.

Filter Direct Fulfillment

  • ReturnOnlyDFOrders = 0 (Standard): Alle geänderten Aufträge werden geliefert.
  • ReturnOnlyDFOrders = 1: Nur geänderte Aufträge mit mindestens einer Auftragsposition, zu der ein OrderHistory-Eintrag mit Status FUT existiert, werden geliefert.

Gelieferte Daten

  • Die Kopffelder stammen aus dem Auftragskopf, dem Kunden (ShopID ist CustomerOf des Kunden) und den Adressen. PaymentType ist die Zahlungsart der Rechnungsadresse. OrderLocked ist das Sperrkennzeichen der Lieferadresse (N, falls leer).
  • Je Auftrag aggregierte Positionsfelder:
    • OrderDate: das späteste Bestelldatum der Positionen, bei Einstellung UseInitialOrderDate = 1 das früheste.
    • VoucherID: die höchste Gutschein-ID mit dem zugehörigen VoucherAmount.
    • OrderCurrency: der Währungscode.
    • EstimatedDelivery: der späteste voraussichtliche Liefertermin.
  • Es werden nur Aufträge mit vorhandenem Kunden, vorhandener Rechnungsadresse und vorhandener Lieferadresse geliefert. Die Zeilen sind nicht sortiert.

Hinweise

  • Polling: Den Wert DateTimeTo der vorherigen Antwort als DateTimeFrom des nächsten Aufrufs übergeben. Wegen des Mindestfensters von fünf Minuten kann derselbe Auftrag in aufeinanderfolgenden Aufrufen erneut geliefert werden. Die Zeilen sollten daher idempotent verarbeitet werden.
  • Ist DateTimeFrom gleich NULL, trifft kein Auftrag zu und das Ergebnis ist leer.
  • Ungenutzter Parameter: skipGetXMLValue ist deklariert, wird im Code aber nicht verwendet.
  • Dirty Reads: Alle permanenten Tabellen werden mit NOLOCK gelesen. Nicht festgeschriebene Daten können erscheinen, und bei parallelen Änderungen können Zeilen fehlen oder doppelt auftreten.
  • Einstellung: UseInitialOrderDate wird aus der Tabelle Settings gelesen und steuert, ob OrderDate das früheste oder das späteste Positionsdatum ist.
  • Fehlende Währung: Die Positionsaggregate (OrderDate, VoucherID, VoucherAmount, OrderCurrency, EstimatedDelivery) sind NULL, wenn die Währung des Auftrags nicht in pixi.Currency gefunden wird oder der Auftrag keine Positionen hat.
  • EstimatedDelivery: Der Code vergleicht den Wert mit einem Platzhalterdatum (jetzt + 999 Tage, inklusive Uhrzeit). Dieser Vergleich trifft praktisch nie zu, daher wird der Wert unverändert geliefert.
  • Performance: Der Aufruf durchsucht Adressen, Auftragsköpfe und Auftragspositionen nach Datum. Sehr alte Werte für DateTimeFrom können große Ergebnismengen und lange Laufzeiten verursachen.

Parameter

Parameter Typ Standardwert Beschreibung
DateTimeFrom
Pflicht
datetime
dateTime
–

Beginn des Änderungszeitraums. Werte, die später als fünf Minuten vor der Serverzeit liegen, werden auf jetzt minus 5 Minuten zurückgesetzt.

Beispiel: 2024-05-14T08:00:00

skipGetXMLValue
bit
boolean
1

Wird im Code nicht verwendet und hat keine Wirkung.

Beispiel: 1

ReturnOnlyDFOrders
bit
boolean
0

Beschränkt das Ergebnis auf Direct-Fulfillment-Aufträge, also Aufträge mit einer Position, zu der ein OrderHistory-Eintrag mit Status FUT existiert.

Erlaubte Werte

  • 0 – Alle geänderten Aufträge liefern.
  • 1 – Nur geänderte Aufträge mit einer Position mit Historienstatus `FUT` liefern.

Beispiel: 0

Antwort

Result-Set 1 · Immer; leer, wenn im Zeitraum kein Auftrag geändert wurde.

Eine Zeile je geändertem Auftrag mit Kopf-, Kunden-, Adress- und aggregierten Positionsdaten.

Spalte Typ Beschreibung
DateTimeTo datetime
dateTime

Serverzeit bei Ausführung. Als DateTimeFrom für den nächsten Aufruf verwenden.

OrderHeaderKey
Kann leer sein
int

Interner Schlüssel des Auftragskopfs.

OrderNr
Kann leer sein
int

Pixi-Auftragsnummer.

CreateDate
Kann leer sein
datetime
dateTime

Anlagedatum des Auftragskopfs.

OrderNrExternal
Kann leer sein
varchar(50)
string

Externe Auftragsnummer (Shop).

WholeOrderState
Kann leer sein
varchar(10)
string

Status des gesamten Auftrags (OrderStatus des Auftragskopfs).

ShipVendorCode
Kann leer sein
varchar(3)
string

Code des Versanddienstleisters.

ShopID
Kann leer sein
varchar(3)
string

Shop des Kunden (CustomerOf).

ShipCost
Kann leer sein
money
decimal

Versandkosten des Auftrags.

PaymentAddressId
Kann leer sein
int

Schlüssel der Rechnungsadresse.

ShipmentAddressId
Kann leer sein
int

Schlüssel der Lieferadresse.

DeliveryDate
Kann leer sein
datetime
dateTime

Versanddatum des Auftragskopfs (ShipDate).

Referrer
Kann leer sein
varchar(50)
string

Referrer des Auftrags.

GiftMessage
Kann leer sein
varchar(8000)
string

Geschenknachricht.

AddressRemarks
Kann leer sein
varchar(255)
string

Adressbemerkungen des Auftrags.

ShopNote
Kann leer sein
varchar(max)
string

Notiz aus dem Shop.

PaymentType
Kann leer sein
varchar(1)
string

Zahlungsart der Rechnungsadresse (APayment).

CustKey
Kann leer sein
int

Interner Kundenschlüssel.

CustomerEmail
Kann leer sein
varchar(256)
string

E-Mail-Adresse des Kunden.

CustomerNrExternal
Kann leer sein
varchar(60)
string

Externe Kundennummer.

OrderLocked varchar(1)
string

Sperrkennzeichen der Lieferadresse (ASlocked), N, falls leer.

OrderDate
Kann leer sein
datetime
dateTime

Spätestes Bestelldatum der Positionen, bei Einstellung UseInitialOrderDate = 1 das früheste.

VoucherID
Kann leer sein
varchar(50)
string

Höchste Gutschein-ID der Auftragspositionen.

VoucherAmount
Kann leer sein
money
decimal

Betrag dieses Gutscheins aus der Gutscheintabelle.

OrderCurrency
Kann leer sein
varchar(3)
string

Währungscode des Auftrags (CodeA).

EstimatedDelivery
Kann leer sein
datetime
dateTime

Spätester voraussichtlicher Liefertermin der Positionen.

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:pixiGetChangedOrders>
      <DateTimeFrom>2024-05-14T08:00:00</DateTimeFrom>
      <!-- <skipGetXMLValue>1</skipGetXMLValue> -->
      <!-- <ReturnOnlyDFOrders>0</ReturnOnlyDFOrders> -->
    </ns1:pixiGetChangedOrders>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Addresses · Lesen OrderHeader · Lesen Orderlines · Lesen OrderHistory · Lesen Currency · Lesen Orderline_EstimatedDelivery · Lesen Voucher · Lesen Customers · Lesen Settings · Lesen
SQL-Objekt:
dbo.pipiGetChangedOrders
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben