Postman-Collection
Direct-Fulfillment Lesen

pixiDFGetChanges

Liefert die neuesten, noch nicht gemeldeten Fulfillment-Statusänderungen von `FUT`-Auftragspositionen für einen Direct-Fulfillment-Lieferanten inklusive Adress-, Artikel- und Auftragsdaten.

API-Aufruf für Direct-Fulfillment-Lieferanten (DF), der die noch zu verarbeitenden Änderungen an Auftragspositionen abruft.

Authentifizierung

  • Der Lieferant wird in Suppliers über SupplNr gesucht. Secret muss der CustNr des Lieferanten entsprechen. Der Lieferant darf nicht deaktiviert sein und muss CanDoDirectFulfillment = 1 haben.
  • Wird kein Lieferant gefunden und ist die Einstellung DFAPIAllowFullAccessWithoutSecret gleich 0 (oder nicht vorhanden), wird eine einzelne Zeile mit Error = 403 geliefert.
  • Wird kein Lieferant gefunden und ist die Einstellung ungleich 0, läuft der Aufruf ohne Lieferantenfilter weiter und liefert die Änderungen aller Lieferanten.

Auswahl

Je Auftragsposition wird nur der neueste OrderHistory-Eintrag (höchster OrderHistKey) berücksichtigt, und nur wenn alle folgenden Bedingungen gelten:

  • die Auftragsposition hat den Status FUT;
  • der Historienstatus ist ein Status in OrderStates mit FulfilmentStatus = 'Y';
  • SupplInfo der Position entspricht dem authentifizierten Lieferanten (falls einer gefunden wurde);
  • Lieferadresse (ASlocked) und Kunde (SLocked) sind nicht gesperrt, außer bei LockedCustomers = 1;
  • OrderNrExternal entspricht OrderNRExternal, sofern dieser Parameter angegeben ist;
  • der Auftragskopf wurde vor mehr als 5 Minuten angelegt.

Zusätzlich muss der Historieneintrag ClientNotified = 'N' haben. Positionen, deren Status in ExcludeStatuses enthalten ist, werden übersprungen.

Ausgabe

  • Kommt eine Auftragsposition mehrfach im Ergebnis vor, wird statt der Daten eine einzelne Meldungszeile geliefert und der Aufruf beendet.
  • Andernfalls werden alle Zeilen nach StatusChangeDate sortiert geliefert. In Datenbanken, deren Name mit pixi_PSP beginnt, wird nach ordernr und dann StatusChangeDate sortiert.

Hinweise

  • Der Aufruf ist rein lesend. Er setzt ClientNotified nicht, daher werden dieselben Änderungen erneut geliefert, bis ein anderer Prozess sie als gemeldet markiert. Dieser Prozess ist nicht Teil dieses Codes.
  • Alle Tabellen werden WITH (NOLOCK) gelesen, daher können nicht festgeschriebene Daten erscheinen.
  • ExcludeStatuses wird per CHARINDEX (Teilstring-Suche) geprüft, daher ist jedes Trennzeichen möglich, z. B. STO,AUS. Die innere Auswahl liefert ohnehin nur FUT-Positionen, daher wirkt der Parameter nur, wenn er FUT enthält; dann werden alle Zeilen unterdrückt.
  • Ist ExcludeStatuses leer und beginnt der Datenbankname mit pixi_PSP, wird STO als Vorgabe verwendet.
  • Sind SupplNr/Secret falsch und ist DFAPIAllowFullAccessWithoutSecret ungleich 0, werden die Daten aller Lieferanten geliefert.
  • Aufträge, die vor weniger als 5 Minuten angelegt wurden, werden zurückgehalten.
  • Die temporäre Tabelle wird über util.TempTableDrop verwaltet. Dieses Objekt liegt nicht vor.

Parameter

Parameter Typ Standardwert Beschreibung
SupplNr
varchar(4)
string
NULL

Lieferantennummer des Direct-Fulfillment-Lieferanten. Dient der Authentifizierung und filtert die Auftragspositionen über SupplInfo.

Beispiel: L001

Secret
varchar(20)
string
NULL

Secret des Lieferanten. Muss der CustNr des Lieferanten in Suppliers entsprechen.

Beispiel: K10023

OrderNRExternal
varchar(50)
string
NULL

Optionale externe Auftragsnummer. Beschränkt das Ergebnis auf Änderungen dieses Auftrags; leer oder NULL bedeutet alle Aufträge.

Beispiel: SHOP-2024-004711

ExcludeStatuses
varchar(200)
string
NULL

Auszuschließende Positionsstatus, als Teilstring geprüft (z. B. STO,AUS). In pixi_PSP-Datenbanken ist die Vorgabe bei leerem Wert STO.

Beispiel: STO

LockedCustomers
bit
boolean
0

Gibt an, ob Positionen mit gesperrter Lieferadresse oder gesperrtem Kunden enthalten sind.

Erlaubte Werte

  • 0 – Positionen mit gesperrter Lieferadresse (`ASlocked`) oder gesperrtem Kunden (`SLocked`) ausschließen.
  • 1 – Positionen unabhängig von Adress- oder Kundensperren einbeziehen.

Beispiel: 0

Antwort

Result-Set 1 · Wenn kein passender DF-Lieferant gefunden wird und DFAPIAllowFullAccessWithoutSecret gleich 0 ist.

Fehlerzeile bei fehlender Berechtigung.

Spalte Typ Beschreibung
Error varchar(3)
string

Fehlercode, immer 403.

ErrorMsg varchar(47)
string

Fehlertext.

Result-Set 2 · Wenn eine Auftragsposition mehrfach in den gesammelten Änderungen vorkommt.

Einzelne Meldungszeile mit einer Spalte ohne Namen. In diesem Fall werden keine Daten geliefert.

Spalte Typ Beschreibung
(no column name) varchar(79)
string

Meldungstext. Die Spalte hat im Code keinen Alias.

Result-Set 3 · Bei erfolgreicher Authentifizierung (oder erlaubtem Vollzugriff) und ohne doppelte Auftragspositionen.

Eine Zeile je geänderter Auftragsposition mit Lieferadresse, Auftrags-, Artikel- und Statusdaten.

Spalte Typ Beschreibung
Anrede
Kann leer sein
string

Anrede der Lieferadresse.

CareOf
Kann leer sein
string

c/o-Zeile der Lieferadresse.

FirstName
Kann leer sein
string

Vorname der Lieferadresse.

LastName
Kann leer sein
string

Nachname der Lieferadresse.

Street
Kann leer sein
string

Straße der Lieferadresse.

ZIP
Kann leer sein
string

Postleitzahl der Lieferadresse.

HouseNr
Kann leer sein
string

Hausnummer der Lieferadresse.

City
Kann leer sein
string

Ort der Lieferadresse.

Country
Kann leer sein
string

Land der Lieferadresse.

Email
Kann leer sein
string

E-Mail-Adresse der Lieferadresse (eMail).

Phone
Kann leer sein
string

Telefonnummer der Lieferadresse.

Address_remarks
Kann leer sein
string

Adressbemerkungen aus dem Auftragskopf.

AddrNoChargeVAT
Kann leer sein
string

Kennzeichen für Umsatzsteuerbefreiung der Lieferadresse.

ShipInstruct
Kann leer sein
string

Versandanweisungen aus dem Auftragskopf.

Shipdate
Kann leer sein
dateTime

Versanddatum aus dem Auftragskopf.

ShipVendorCode
Kann leer sein
string

Versanddienstleister-Code aus dem Auftragskopf.

ArtName
Kann leer sein
string

Artikelname der Auftragsposition.

EANUPC
Kann leer sein
string

EAN/UPC des Artikels.

ItemNrSuppl
Kann leer sein
string

Artikelnummer des Lieferanten.

itemNrExternal
Kann leer sein
string

Externe Artikelnummer der Auftragsposition.

Qty
Kann leer sein
int

Bestellte Menge.

Price
Kann leer sein
decimal

Preis der Auftragsposition.

Status
Kann leer sein
string

Aktueller Positionsstatus (aufgrund der Filter immer FUT).

OrderHistKey int

Schlüssel des neuesten Auftragshistorieneintrags.

OrderLineRef int

Schlüssel der Auftragsposition.

StatusChangeDate
Kann leer sein
dateTime

Datum der Statusänderung in der Auftragshistorie.

OrderDate
Kann leer sein
dateTime

Auftragsdatum der Position.

OrderNrExternal
Kann leer sein
string

Externe Auftragsnummer.

AddrShopID
Kann leer sein
string

Shop-ID der Rechnungsadresse.

oItemSpecialNote
Kann leer sein
string

Sonderhinweis zur Auftragsposition.

SupplInfo
Kann leer sein
string

Der Auftragsposition zugeordnete Lieferantennummer.

APayment
Kann leer sein
string

Zahlungsart der Rechnungsadresse.

discount
Kann leer sein
decimal

Rabatt aus dem Auftragskopf.

ShipCost
Kann leer sein
decimal

Versandkosten aus dem Auftragskopf.

InvoiceNrExternal
Kann leer sein
string

Externe Rechnungsnummer der Auftragsposition.

DF_Type
Kann leer sein
string

Direct-Fulfillment-Typ der Auftragsposition.

ordernr int

Pixi-Auftragsnummer.

CustomerLock
Kann leer sein
string

Versandsperre des Kunden (SLocked).

AddressLock
Kann leer sein
string

Versandsperre der Lieferadresse (ASlocked).

OrderCurrencyCode
Kann leer sein
string

Währungscode des Auftrags (CodeA aus pixi.Currency).

Fehlermeldungen

Status Meldung Ursache
403 Not Authorized. Secret or SupplNr is incorrect. Kein aktiver DF-Lieferant passt zu `SupplNr` und `Secret` (`CustNr`), und `DFAPIAllowFullAccessWithoutSecret` ist `0`. Gültige Lieferantennummer und gültiges Secret übergeben.
ERROR Duplicate Orderhistory Entries - export impossible, please contact pixi Support Eine Auftragsposition kommt mehrfach in den gesammelten Änderungen vor. Die Daten müssen durch den pixi Support bereinigt werden.

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:pixiDFGetChanges>
      <!-- <SupplNr>L001</SupplNr> -->
      <!-- <Secret>K10023</Secret> -->
      <!-- <OrderNRExternal>SHOP-2024-004711</OrderNRExternal> -->
      <!-- <ExcludeStatuses>STO</ExcludeStatuses> -->
      <!-- <LockedCustomers>0</LockedCustomers> -->
    </ns1:pixiDFGetChanges>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

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