pixiEmillGetCustomers2
Liefert eine Liste von Kunden mit Rechnungsadresse und letzten Auftragsdaten, gefiltert nach Artikel-, Auftrags-, Zahlungs- und Kundenmerkmalen.
Liefert eine Zeile pro Kunde, der mindestens eine Auftragsposition besitzt, die allen angegebenen Filtern entspricht. Der Kunde wird mit seiner Adresse (AddrRef), den Auftragspositionen, dem Artikel, der Artikelkategorie (tontrArten über configType) und optional mit Rechnung, Lieferant und zusätzlichen Artikeldaten verknüpft. Alle Filter werden mit UND kombiniert. Ein Filter, dessen Parameter NULL ist, wird nicht angewendet.
Shop
ShopID: nur Kunden, derenCustomerOfdiesem Wert entspricht. Ein Leerstring gilt alsNULL.
Artikelfilter (auf die Auftragspositionen angewendet)
ArticleNamemitArticleNameCmp:0= exakte Übereinstimmung mit dem Artikelnamen der Auftragsposition,1= Name enthält den Wert.ArticleNrmitArticleNrCmp: vergleicht mit Lieferanten-Artikelnummer, EAN/UPC oder interner Artikelnummer.0= exakt,1= enthält.ArtCategory: Schlüssel der Artikelkategorie (tontrArtKey).ArtSupplier: Lieferantennummer der Auftragsposition (SupplInfo) oder Lieferantenname.
Auftragsfilter
orderStatus: Status der Auftragsposition, z. B.AUSoderRET.ShipDateFrom/ShipDateTo: Versanddatum der Auftragsposition zwischen beiden Werten. Der Filter greift nur, wenn beide gesetzt sind.ShipDateDaysmitShipDateDaysCmp: Anzahl Tage zwischen Versanddatum und jetzt.0= mehr als,1= genau,2= weniger alsShipDateDaysTage.PaymentType: Zahlungsart der mit der Auftragsposition verknüpften Rechnung.
Kundenfilter
CustTurnovermitCustTurnoverCmp: Summe aller Rechnungsbeträge des Kunden.0= Umsatz größer als der Wert,1= gleich,2= kleiner.CustReturn:0= ignorieren,1= nur Kunden mit mindestens einer Auftragsposition im StatusRET,-1= nur Kunden ohne solche Positionen.CustBlocked:0= nur nicht gesperrte Kunden,1= gesperrte und nicht gesperrte Kunden.CustOpenOrders:0= ignorieren,1= nur Kunden mit mindestens einem Auftrag, dessen GesamtstatusOPENist.
Die Spalten OrderDate, ShipDate und Status sind die Maximalwerte über die passenden Auftragspositionen des Kunden. Das Ergebnis ist nach CustKey sortiert.
Hinweise
- Alle Tabellen werden mit
NOLOCKgelesen, nicht festgeschriebene Daten können daher erscheinen. resumeKeyist deklariert, wird aber nicht verwendet; es gibt kein Paging.Statusist der alphabetisch höchste Status der passenden Auftragspositionen, nicht zwingend der Status des neuesten Auftrags.OrderDateundShipDatewerden unabhängig voneinander ermittelt.- Vergleichsparameter mit anderen als den dokumentierten Werten (z. B.
ArticleNameCmp = 2bei gesetztemArticleNameoderCustBlocked = 2) führen dazu, dass der Filter nichts trifft und das Ergebnis leer ist. CustTurnoverschließt Kunden ohne Rechnung aus, da deren UmsatzsummeNULList.- Bei gesetztem
PaymentTypewerden nur Auftragspositionen berücksichtigt, die mit einer Rechnung desselben Kunden verknüpft sind. - Auftragspositionen, deren
configTypekeinen Eintrag intontrArtenhat, werden nie berücksichtigt. CustOpenOrders = 1ruft die SkalarfunktionfPixi_GetWholeOrderStatepro Auftrag des Kunden auf, was bei Kunden mit vielen Aufträgen langsam sein kann.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ArticleName
|
varchar(100) string |
NULL |
Artikelname der Auftragsposition als Filter; Vergleich gemäß Beispiel: |
ArticleNameCmp
|
int | 0 |
Vergleichsmodus für Erlaubte Werte
Beispiel: |
ArticleNr
|
varchar(50) string |
NULL |
Artikelnummer als Filter; Vergleich mit Lieferanten-Artikelnummer, EAN/UPC und interner Artikelnummer gemäß Beispiel: |
ArticleNrCmp
|
int | 0 |
Vergleichsmodus für Erlaubte Werte
Beispiel: |
ArtCategory
|
int | NULL |
Schlüssel der Artikelkategorie ( Beispiel: |
ArtSupplier
|
varchar(50) string |
NULL |
Lieferantennummer der Auftragsposition oder Lieferantenname. Beispiel: |
orderStatus
|
varchar(3) string |
NULL |
Status der Auftragsposition, z. B. Beispiel: |
ShipDateFrom
|
datetime dateTime |
NULL |
Beginn des Versanddatumsbereichs. Wirkt nur zusammen mit Beispiel: |
ShipDateTo
|
datetime dateTime |
NULL |
Ende des Versanddatumsbereichs (inklusive). Wirkt nur zusammen mit Beispiel: |
ShipDateDays
|
int | NULL |
Anzahl Tage seit dem Versanddatum der Auftragsposition; Vergleich gemäß Beispiel: |
ShipDateDaysCmp
|
int | 1 |
Vergleichsmodus für Erlaubte Werte
Beispiel: |
PaymentType
|
varchar(30) string |
NULL |
Zahlungsart der mit der Auftragsposition verknüpften Rechnung. Beispiel: |
CustTurnover
|
int | NULL |
Umsatzschwelle, verglichen mit der Summe aller Rechnungsbeträge des Kunden gemäß Beispiel: |
CustTurnoverCmp
|
int | 1 |
Vergleichsmodus für Erlaubte Werte
Beispiel: |
CustReturn
|
int | 0 |
Filter auf Retouren des Kunden. Erlaubte Werte
Beispiel: |
CustBlocked
|
int | 0 |
Steuert, ob gesperrte Kunden enthalten sind. Erlaubte Werte
Beispiel: |
CustOpenOrders
|
int | 0 |
Filter auf offene Aufträge des Kunden. Erlaubte Werte
Beispiel: |
resumeKey
|
int | NULL |
Wird von der Prozedur nicht verwendet. |
ShopID
|
varchar(3) string |
NULL |
Shop, dem der Kunde zugeordnet ist ( Beispiel: |
Antwort
Result-Set 1 · Immer (kann leer sein)
Eine Zeile pro passendem Kunden, sortiert nach CustKey.
| Spalte | Typ | Beschreibung |
|---|---|---|
CustKey
|
int |
Interner Kundenschlüssel. |
CustomerNrExternal
Kann leer sein |
string |
Externe Kundennummer. |
CeMail
Kann leer sein |
string |
E-Mail-Adresse des Kunden. |
firstname
Kann leer sein |
string |
Vorname aus der Kundenadresse. |
lastname
Kann leer sein |
string |
Nachname aus der Kundenadresse. |
Address
Kann leer sein |
string |
Straße und Hausnummer. |
ZIP
Kann leer sein |
string |
Postleitzahl. |
City
Kann leer sein |
string |
Ort. |
State
Kann leer sein |
string |
Bundesland bzw. Region. |
OrderDate
Kann leer sein |
dateTime |
Spätestes Auftragsdatum der passenden Auftragspositionen. |
ShipDate
Kann leer sein |
dateTime |
Spätestes Versanddatum der passenden Auftragspositionen. |
Status
Kann leer sein |
string |
Alphabetisch höchster Status der passenden Auftragspositionen. |
ShopID
Kann leer sein |
string |
Shop, dem der Kunde zugeordnet ist ( |
Beispielantwort
<SqlRowSet1>
<row>
<CustKey>10452</CustKey>
<CustomerNrExternal>K-000815</CustomerNrExternal>
<CeMail>anna.mueller@example.de</CeMail>
<firstname>Anna</firstname>
<lastname>Müller</lastname>
<Address>Hauptstraße 12</Address>
<ZIP>80331</ZIP>
<City>München</City>
<State>Bayern</State>
<OrderDate>2024-02-10T14:23:00</OrderDate>
<ShipDate>2024-02-12T09:05:00</ShipDate>
<Status>AUS</Status>
<ShopID>SHP</ShopID>
</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:pixiEmillGetCustomers2>
<!-- <ArticleName>T-Shirt</ArticleName> -->
<!-- <ArticleNameCmp>1</ArticleNameCmp> -->
<!-- <ArticleNr>4006381333931</ArticleNr> -->
<!-- <ArticleNrCmp>0</ArticleNrCmp> -->
<!-- <ArtCategory>3</ArtCategory> -->
<!-- <ArtSupplier>LIEF01</ArtSupplier> -->
<!-- <orderStatus>AUS</orderStatus> -->
<!-- <ShipDateFrom>2024-01-01T00:00:00</ShipDateFrom> -->
<!-- <ShipDateTo>2024-03-31T23:59:59</ShipDateTo> -->
<!-- <ShipDateDays>30</ShipDateDays> -->
<!-- <ShipDateDaysCmp>0</ShipDateDaysCmp> -->
<!-- <PaymentType>PayPal</PaymentType> -->
<!-- <CustTurnover>500</CustTurnover> -->
<!-- <CustTurnoverCmp>0</CustTurnoverCmp> -->
<!-- <CustReturn>-1</CustReturn> -->
<!-- <CustBlocked>0</CustBlocked> -->
<!-- <CustOpenOrders>1</CustOpenOrders> -->
<!-- <resumeKey>?</resumeKey> -->
<!-- <ShopID>SHP</ShopID> -->
</ns1:pixiEmillGetCustomers2>
</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:pixiEmillGetCustomers2>
<!-- <ArticleName>T-Shirt</ArticleName> -->
<!-- <ArticleNameCmp>1</ArticleNameCmp> -->
<!-- <ArticleNr>4006381333931</ArticleNr> -->
<!-- <ArticleNrCmp>0</ArticleNrCmp> -->
<!-- <ArtCategory>3</ArtCategory> -->
<!-- <ArtSupplier>LIEF01</ArtSupplier> -->
<!-- <orderStatus>AUS</orderStatus> -->
<!-- <ShipDateFrom>2024-01-01T00:00:00</ShipDateFrom> -->
<!-- <ShipDateTo>2024-03-31T23:59:59</ShipDateTo> -->
<!-- <ShipDateDays>30</ShipDateDays> -->
<!-- <ShipDateDaysCmp>0</ShipDateDaysCmp> -->
<!-- <PaymentType>PayPal</PaymentType> -->
<!-- <CustTurnover>500</CustTurnover> -->
<!-- <CustTurnoverCmp>0</CustTurnoverCmp> -->
<!-- <CustReturn>-1</CustReturn> -->
<!-- <CustBlocked>0</CustBlocked> -->
<!-- <CustOpenOrders>1</CustOpenOrders> -->
<!-- <resumeKey>?</resumeKey> -->
<!-- <ShopID>SHP</ShopID> -->
</ns1:pixiEmillGetCustomers2>
</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 = [
// 'ArticleName' => 'T-Shirt',
// 'ArticleNameCmp' => '1',
// 'ArticleNr' => '4006381333931',
// 'ArticleNrCmp' => '0',
// 'ArtCategory' => '3',
// 'ArtSupplier' => 'LIEF01',
// 'orderStatus' => 'AUS',
// 'ShipDateFrom' => '2024-01-01T00:00:00',
// 'ShipDateTo' => '2024-03-31T23:59:59',
// 'ShipDateDays' => '30',
// 'ShipDateDaysCmp' => '0',
// 'PaymentType' => 'PayPal',
// 'CustTurnover' => '500',
// 'CustTurnoverCmp' => '0',
// 'CustReturn' => '-1',
// 'CustBlocked' => '0',
// 'CustOpenOrders' => '1',
// 'resumeKey' => '?',
// 'ShopID' => 'SHP',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiEmillGetCustomers2', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiEmillGetCustomers2