Postman-Collection
Customers Lesen

pixiGetCRMSales

Liefert den kumulierten Netto-Umsatz je Kunde aus Rechnungen abzüglich referenzierender Gutschriften, optional gefiltert nach Shops und Rechnungsdatum, mit Keyset-Paging.

Berechnet eine Umsatzkennzahl je Kunde (CustKey) aus den Rechnungen und liefert eine Zeile je Kunde und Basiswährung.

Ablauf

  1. Ein leerer Wert in CustomerOf wird wie NULL behandelt. Ist er gesetzt, wird er als XML ausgewertet (/SHOPS/SHOP, Wert SHOPID, als Element oder Attribut). Es werden nur Shop-IDs berücksichtigt, die in Shops existieren.
  2. Rechnungen werden ausgewählt, wenn:
    • der Bruttobetrag Total größer als 0 ist (Gutschriften mit negativem Betrag zählen nicht als eigene Rechnung),
    • das Rechnungsdatum InvDate im Bereich CalculationStart … CalculationEnd liegt (beide Grenzen inklusive und optional),
    • bei gesetztem CustomerOf der Shop des Kunden (CustomerOf) zu den übergebenen Shops gehört.
  3. Je Rechnung werden der Nettobetrag (Total_Net) und der Nettobetrag ohne Versandkosten (Total_Net - Total_ShipCost_Net) herangezogen. Die Nettobeträge aller Rechnungen, die über RefToInvoiceKey auf diese Rechnung verweisen (in der Regel Gutschriften), werden zu diesen Werten addiert.
  4. Währungsbehandlung abhängig von der Einstellung MultiCurrencyEnabled:
    • nicht 1: Beträge bleiben in der Originalwährung der Rechnung, BaseCurrency ist NULL;
    • 1: jeder Betrag wird durch den Wechselkurs der Rechnung (pixi.ExchRate) geteilt, BaseCurrency enthält den Code der Basiswährung dieses Kurses.
  5. Die Ergebnisse werden nach CustKey und BaseCurrency gruppiert.

Paging

Das Paging arbeitet mit Schlüsseln: Es werden nur Kunden mit CustKey größer als Offset geliefert, aufsteigend nach CustKey sortiert und auf Rows Zeilen begrenzt. Für die nächste Seite wird der zuletzt gelieferte CustKey als Offset übergeben. Offset ist keine Zeilenanzahl.

Hinweise

  • Alle Lesezugriffe erfolgen mit NOLOCK, das Ergebnis kann daher nicht festgeschriebene Daten enthalten.
  • Ist CustomerOf gesetzt, aber keine der Shop-IDs existiert in Shops, werden keine Zeilen geliefert. Ungültiges XML führt zu einem Fehler von sp_xml_preparedocument.
  • Ohne Mehrwährung (MultiCurrencyEnabled ungleich 1) werden Beträge verschiedener Rechnungswährungen ohne Umrechnung addiert.
  • Mit Mehrwährung werden Rechnungen ohne Wechselkurs (ExchRateId nicht in pixi.ExchRate vorhanden) ausgeschlossen; referenzierende Gutschriften ohne Wechselkurs fließen nicht in die Summen ein. Umgerechnete Beträge werden mit 9 Nachkommastellen gespeichert.
  • Mit Mehrwährung kann ein Kunde in mehreren Zeilen erscheinen (eine je Basiswährung). Da Rows Zeilen und nicht Kunden begrenzt, kann eine Seite mitten in den Zeilen eines Kunden enden; wird dieser CustKey als nächster Offset verwendet, entfallen die restlichen Zeilen dieses Kunden.
  • Der Datumsfilter gilt nur für die Hauptrechnung; referenzierende Gutschriften werden unabhängig von ihrem Datum einbezogen.
  • Ein Kennzeichen für Komplettretouren wird intern berechnet, aber nicht ausgegeben.
  • Die Datenbankwährung wird über pixi.GetDatabaseCurrency() gelesen, die Werte werden im Ergebnis jedoch nicht verwendet.

Parameter

Parameter Typ Standardwert Beschreibung
CustomerOf
varchar(max)
xml
NULL

XML-Liste von pixi*-Shops (/SHOPS/SHOP/SHOPID). Es werden nur Kunden dieser Shops ausgewertet. NULL oder leer: alle Kunden.

Beispiel:

<SHOPS>
  <SHOP>
    <SHOPID>ABC</SHOPID>
  </SHOP>
  <SHOP>
    <SHOPID>XYZ</SHOPID>
  </SHOP>
</SHOPS>
CalculationStart
datetime
dateTime
NULL

Frühestes Rechnungsdatum (inklusive). NULL: keine Untergrenze.

Beispiel: 2024-01-01T00:00:00

CalculationEnd
datetime
dateTime
NULL

Spätestes Rechnungsdatum (inklusive). NULL: keine Obergrenze.

Beispiel: 2024-12-31T23:59:59

Rows
int 1000

Maximale Anzahl gelieferter Zeilen.

Beispiel: 1000

Offset
int 0

Es werden nur Kunden mit CustKey größer als dieser Wert geliefert. Den letzten CustKey der vorherigen Seite übergeben.

Beispiel: 0

Antwort

Result-Set 1 · Immer (kann leer sein).

Kumulierter Umsatz je Kunde und Basiswährung, aufsteigend nach CustKey sortiert.

Spalte Typ Beschreibung
CustKey
Kann leer sein
int

Kundenschlüssel (Invoices.CustRef).

TotalCompound
Kann leer sein
decimal(38,9)
decimal

Summe der Netto-Rechnungsbeträge einschließlich der Nettobeträge referenzierender Gutschriften; bei aktivierter Mehrwährung in die Basiswährung umgerechnet.

TotalWithoutShipcostsCompound
Kann leer sein
numeric(17,4)
decimal

Wie TotalCompound, jedoch ohne Netto-Versandkosten.

BaseCurrency
Kann leer sein
varchar(3)
string

Code der Basiswährung der Beträge bei aktivierter Mehrwährung; sonst NULL (Beträge in Originalwährung der Rechnung).

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:pixiGetCRMSales>
      <!-- <CustomerOf><![CDATA[<SHOPS><SHOP><SHOPID>ABC</SHOPID></SHOP><SHOP><SHOPID>XYZ</SHOPID></SHOP></SHOPS>]]></CustomerOf> -->
      <!-- <CalculationStart>2024-01-01T00:00:00</CalculationStart> -->
      <!-- <CalculationEnd>2024-12-31T23:59:59</CalculationEnd> -->
      <!-- <Rows>1000</Rows> -->
      <!-- <Offset>0</Offset> -->
    </ns1:pixiGetCRMSales>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Invoices · Lesen Customers · Lesen Shops · Lesen ExchRate · Lesen Currency · Lesen Settings · Lesen
SQL-Objekt:
dbo.pipiGetCRMSales
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben