Postman-Collection
Customers Lesen

pixiSatisfiedCustomers

Liefert fakturierte Kunden (oder die Rechnungspositionen eines Kunden) in einem Liefer- und Bestellzeitraum, z. B. für Zufriedenheitsumfragen oder Bewertungsanfragen.

Wählt Rechnungspositionen zusammen mit den zugehörigen Auftragspositionen und der Rechnungsadresse aus. Das Ergebnis eignet sich, um Kunden zu kontaktieren, die kürzlich Ware erhalten haben.

Zeitraum: Die Tagesparameter beziehen sich auf das aktuelle Serverdatum (GETDATE()):

  • MaxDaysSinceDelivery: Rechnungsdatum (InvDate) muss am oder nach dem Tagesbeginn vor N Tagen liegen.
  • MinDaysSinceDelivery: Rechnungsdatum muss am oder vor dem Tagesende vor N Tagen liegen.
  • MaxDaysSinceOrder / MinDaysSinceOrder: entsprechend für das Bestelldatum der Auftragsposition.
  • NULL deaktiviert die jeweilige Grenze.

Weitere Filter:

  • Rechnungen, auf die eine andere Rechnung (RefToInvoiceKey, z. B. Gutschrift) mit Rechnungsdatum ab dem MaxDaysSinceDelivery-Datum verweist, werden ausgeschlossen.
  • Positionen, deren Auftragsposition den Status MIN und ein Bestelldatum ab dem MaxDaysSinceDelivery-Datum hat, werden ausgeschlossen.
  • ExcludePartialDeliveries = 1: Aufträge (über OrderNr), die noch Auftragspositionen im Status ANG oder EIN haben, werden ausgeschlossen.
  • NoOrderSince = 1: Kunden mit einer Auftragsposition, deren Bestelldatum am oder nach dem MinDaysSinceDelivery-Datum liegt, werden ausgeschlossen.
  • Nur Positionen mit ItemQty >= 0.

Zwei Modi:

  • CustomerNrExternal ist NULL: eine Zeile pro externer Kundennummer (GROUP BY Addresses.CustomerNrExternal), sortiert nach Kundennummer. ItemQty ist die Anzahl der passenden Rechnungspositionen.
  • CustomerNrExternal ist gesetzt: nur Positionen dieses Kunden, eine Zeile pro Rechnungsposition (GROUP BY Invlinekey), ohne explizite Sortierung. ItemQty ist die Menge der Position.

Hinweise

  • Alle Tabellen werden WITH (NOLOCK) gelesen; das Ergebnis kann nicht festgeschriebene Daten enthalten.
  • Im Kundenmodus wird jede Spalte unabhängig mit MAX/MIN aggregiert, daher können InvoiceNr, ItemText, ItemPrice, ItemNrShop usw. aus unterschiedlichen Rechnungen oder Positionen desselben Kunden stammen.
  • Adressen ohne externe Kundennummer werden im Kundenmodus zu einer NULL-Zeile zusammengefasst.
  • Der Gutschriftsfilter und der Filter auf Status MIN greifen nur, wenn MaxDaysSinceDelivery gesetzt ist; bei NULL trifft der Vergleich nie zu und nichts wird ausgeschlossen.
  • NoOrderSince = 1 wirkt nur, wenn MinDaysSinceDelivery gesetzt ist, da gegen dieses Datum verglichen wird.
  • Die Tabelle zu ItemQty, ItemText, ItemPrice, orderdate und Status ist im Code nicht qualifiziert; vermutlich Rechnungs- bzw. Auftragspositionen.
  • Die Bedeutung der Auftragspositionsstatus MIN, ANG und EIN ist im Code nicht definiert.

Parameter

Parameter Typ Standardwert Beschreibung
MaxDaysSinceDelivery
int NULL

Ältestes Rechnungsdatum in Tagen vor heute; Rechnungsdatum muss am oder nach dem Beginn dieses Tages liegen. NULL = keine Untergrenze.

Beispiel: 20

MinDaysSinceDelivery
int NULL

Jüngstes Rechnungsdatum in Tagen vor heute; Rechnungsdatum muss am oder vor dem Ende dieses Tages liegen. Wird auch von NoOrderSince verwendet. NULL = keine Obergrenze.

Beispiel: 10

MaxDaysSinceOrder
int NULL

Ältestes Bestelldatum in Tagen vor heute (Tagesbeginn). NULL = keine Untergrenze.

MinDaysSinceOrder
int NULL

Jüngstes Bestelldatum in Tagen vor heute (Tagesende). NULL = keine Obergrenze.

CustomerNrExternal
varchar(60)
string
NULL

Externe Kundennummer der Rechnungsadresse. Wenn gesetzt, eine Zeile pro Rechnungsposition dieses Kunden; bei NULL eine Zeile pro Kunde.

Beispiel: K100234

ExcludePartialDeliveries
bit
boolean
0

Schließt Aufträge aus, die noch Auftragspositionen im Status ANG oder EIN haben.

Erlaubte Werte

  • 0 – Teilgelieferte Aufträge einschließen
  • 1 – Aufträge mit offenen Positionen (ANG, EIN) ausschließen

Beispiel: 1

NoOrderSince
bit
boolean
0

Schließt Kunden aus, die am oder nach dem MinDaysSinceDelivery-Datum bestellt haben.

Erlaubte Werte

  • 0 – Keine Einschränkung
  • 1 – Nur Kunden ohne neuere Bestellungen (erfordert MinDaysSinceDelivery)

Beispiel: 0

Antwort

Result-Set 1 · Wenn CustomerNrExternal NULL ist

Eine Zeile pro externer Kundennummer, sortiert nach Kundennummer. Werte sind spaltenweise aggregiert.

Spalte Typ Beschreibung
InvoiceNr
Kann leer sein
string

Höchste Rechnungsnummer des Kunden

InvoiceKey
Kann leer sein
int

Höchster Rechnungsschlüssel des Kunden

CustomerNRExternal
Kann leer sein
string

Externe Kundennummer

ShopID
Kann leer sein
string

Shop-ID der Adresse (Addresses.AddrShopID)

Anrede string

Anrede, Leerstring wenn nicht vorhanden

Name
Kann leer sein
string

Kundenname

email
Kann leer sein
string

E-Mail-Adresse

LastDeliveryDate
Kann leer sein
datetime
dateTime

Letztes Rechnungsdatum in der Auswahl

FirstOrderDate
Kann leer sein
datetime
dateTime

Frühestes Bestelldatum in der Auswahl

ItemText
Kann leer sein
string

Alphabetisch höchster Artikeltext der Positionen

ItemQty int

Anzahl passender Rechnungspositionen

ItemNrShop
Kann leer sein
string

Items.ItemNrInt des höchsten Artikelschlüssels der Positionen

ItemPrice
Kann leer sein
decimal

Höchster Artikelpreis der Positionen

Result-Set 2 · Wenn CustomerNrExternal gesetzt ist

Eine Zeile pro Rechnungsposition des angegebenen Kunden, ohne explizite Sortierung.

Spalte Typ Beschreibung
InvoiceNr
Kann leer sein
string

Rechnungsnummer

InvoiceKey
Kann leer sein
int

Rechnungsschlüssel

CustomerNRExternal
Kann leer sein
string

Externe Kundennummer

ShopID
Kann leer sein
string

Shop-ID der Adresse

Anrede string

Anrede, Leerstring wenn nicht vorhanden

Name
Kann leer sein
string

Kundenname

email
Kann leer sein
string

E-Mail-Adresse

LastDeliveryDate
Kann leer sein
datetime
dateTime

Rechnungsdatum

FirstOrderDate
Kann leer sein
datetime
dateTime

Bestelldatum der Auftragsposition

ItemText
Kann leer sein
string

Artikeltext der Position

ItemQty
Kann leer sein
decimal

Menge der Position

ItemNrShop
Kann leer sein
string

Items.ItemNrInt des Artikels der Position

ItemPrice
Kann leer sein
decimal

Artikelpreis der Position

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:pixiSatisfiedCustomers>
      <!-- <MaxDaysSinceDelivery>20</MaxDaysSinceDelivery> -->
      <!-- <MinDaysSinceDelivery>10</MinDaysSinceDelivery> -->
      <!-- <MaxDaysSinceOrder>?</MaxDaysSinceOrder> -->
      <!-- <MinDaysSinceOrder>?</MinDaysSinceOrder> -->
      <!-- <CustomerNrExternal>K100234</CustomerNrExternal> -->
      <!-- <ExcludePartialDeliveries>1</ExcludePartialDeliveries> -->
      <!-- <NoOrderSince>0</NoOrderSince> -->
    </ns1:pixiSatisfiedCustomers>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Invoices · Lesen Invlines · Lesen Orderlines · Lesen Addresses · Lesen Items · Lesen
SQL-Objekt:
dbo.pipiSatisfiedCustomers
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben