pixiEmillControlCustomers
Liefert Kunden, deren Anzahl an Aufträgen mit Auftragspositionen im Status ANG oder kürzlichem AUS eine Mindestanzahl erreicht, optional je Shop.
Listet Kunden mit mehreren passenden Aufträgen auf, etwa um doppelte oder auffällige Bestellungen desselben Kunden zu erkennen.
Ablauf:
- Ein leerer
ShopIDwird alsNULLbehandelt. Dann gilt kein Shop-Filter. - Ein Auftrag zählt, wenn mindestens eine seiner Positionen in
Orderlineseine der folgenden Bedingungen erfüllt:- Status
ANG, unabhängig vom Datum, oder - Status
AUSundOrderDateliegt weniger alsDayRangeTage zurück, gemessen als Differenz in Kalendertagen zu heute.
- Status
- Die passenden Aufträge aus
OrderHeaderwerden überCustRef=CustKeymitCustomersverknüpft. - Ist
ShopIDgesetzt, werden nur Kunden berücksichtigt, derenCustomerOfdemShopIDentspricht. - Die Ergebnisse werden je Kunde (
CustRef) gruppiert. Zurückgegeben werden nur Kunden mit mindestensMinOrderCountpassenden Aufträgen.
Jede Zeile enthält Name, E-Mail-Adresse, Anzahl der passenden Aufträge und Shop des Kunden. Eine feste Sortierung gibt es nicht.
Hinweise
- Alle Tabellen werden mit
NOLOCKgelesen. Das Ergebnis kann daher nicht festgeschriebene Daten enthalten. - Wegen der SQL-Operatorrangfolge (
ANDvorOR) gilt die Einschränkung überDayRangenur für Positionen im StatusAUS. Aufträge mit Positionen im StatusANGwerden unabhängig von ihrem Alter gezählt. - Aus dem Code geht nicht hervor, zu welcher Tabelle die unqualifizierte Spalte
OrderDategehört. HatOrderlineskeine solche Spalte, wird das Auftragsdatum ausOrderHeaderverwendet. - Der Shop-Filter bezieht sich auf den Shop des Kunden (
CustomerOf), nicht auf den Shop des Auftrags. Name,eMailundShopIDwerden je Kundengruppe perMAX()ermittelt.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
DayRange
|
int | 10 |
Anzahl der Tage ab heute rückwärts, in denen das Auftragsdatum liegen muss. Gilt nur für Auftragspositionen im Status Beispiel: |
MinOrderCount
|
int | 2 |
Mindestanzahl passender Aufträge, die ein Kunde haben muss, um zurückgegeben zu werden. Beispiel: |
ShopID
|
varchar(3) string |
NULL |
Shop des Kunden ( Beispiel: |
Antwort
Result-Set 1 · Immer (ggf. leer)
Eine Zeile je Kunde mit mindestens MinOrderCount passenden Aufträgen.
| Spalte | Typ | Beschreibung |
|---|---|---|
Name
Kann leer sein |
string |
Kundenname ( |
eMail
Kann leer sein |
string |
E-Mail-Adresse des Kunden ( |
AnzahlBestellungen
|
int |
Anzahl der passenden Aufträge des Kunden. |
ShopID
Kann leer sein |
string |
Shop, dem der Kunde zugeordnet ist ( |
Beispielantwort
<SqlRowSet1>
<row>
<Name>Max Mustermann</Name>
<eMail>max.mustermann@example.de</eMail>
<AnzahlBestellungen>3</AnzahlBestellungen>
<ShopID>SH1</ShopID>
</row>
<row>
<Name>Erika Musterfrau</Name>
<eMail>erika@example.com</eMail>
<AnzahlBestellungen>2</AnzahlBestellungen>
<ShopID>SH1</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:pixiEmillControlCustomers>
<!-- <DayRange>10</DayRange> -->
<!-- <MinOrderCount>2</MinOrderCount> -->
<!-- <ShopID>SH1</ShopID> -->
</ns1:pixiEmillControlCustomers>
</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:pixiEmillControlCustomers>
<!-- <DayRange>10</DayRange> -->
<!-- <MinOrderCount>2</MinOrderCount> -->
<!-- <ShopID>SH1</ShopID> -->
</ns1:pixiEmillControlCustomers>
</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 = [
// 'DayRange' => '10',
// 'MinOrderCount' => '2',
// 'ShopID' => 'SH1',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiEmillControlCustomers', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiEmillControlCustomers