pixiEmillGetCustomers
Liefert Kunden mit E-Mail-Adresse und Namen, optional gefiltert nach Bestell- oder Versanddatum, Artikel, Zahlungs- und Versandstatus oder Shop, mit schlüsselbasiertem Paging.
Liefert eine Liste von Kunden (Schlüssel, E-Mail, Vorname, Nachname, Shop) für den Einsatz in E-Mail-Marketing-Werkzeugen. Die Prozedur erzeugt eine dynamische Abfrage auf Customers, verknüpft mit Addresses (Inner Join über die Adressreferenz des Kunden). Alle Filter sind optional und werden mit UND kombiniert:
orderdate: nur Kunden mit mindestens einer Auftragsposition, deren Bestelldatum auf denselben Kalendertag fällt (Jahr, Monat und Tag werden verglichen, die Uhrzeit wird ignoriert).ShipDate: nur Kunden mit mindestens einer Auftragsposition, die an diesem Kalendertag versendet wurde.EanUpc: nur Kunden, die einen Artikel mit dieser EAN/UPC bestellt haben.ArticleNr: nur Kunden, die einen Artikel bestellt haben, dessen Lieferanten-Artikelnummer (ItemNrSuppl) übereinstimmt.paid:1= Kunden mit mindestens einer Rechnung, deren bezahlter Betrag der Gesamtsumme entspricht;0= Kunden mit mindestens einer Rechnung, deren bezahlter Betrag von der Gesamtsumme abweicht.Shipped:1= Kunden mit mindestens einer versendeten Auftragsposition;0= Kunden mit mindestens einer Auftragsposition ohne Versanddatum.ShopID: nur Kunden dieses Shops (CustomerOf). Ein leerer String wird als kein Filter behandelt.
Das Ergebnis ist aufsteigend nach Kundenschlüssel sortiert und auf Top Zeilen begrenzt. Für Paging wird der höchste custkey der vorherigen Seite als resumeKey übergeben; dann werden nur Kunden mit größerem Schlüssel geliefert.
Hinweise
- Alle Lesezugriffe verwenden
NOLOCK, das Ergebnis kann daher nicht festgeschriebene Daten enthalten. - Die Zeilenbegrenzung erfolgt über
SET ROWCOUNT;Top=0liefert alle passenden Zeilen. - Kunden ohne passenden Adressdatensatz werden wegen des Inner Join nicht geliefert.
- Die Filter
paidundShippedprüfen auf mindestens eine passende Rechnung bzw. Auftragsposition, nicht auf alle.paid = 1liefert daher auch Kunden, die zusätzlich unbezahlte Rechnungen haben. - Die Datumsfilter wenden
DATEPARTauf die Spalte an, Indizes auf Bestell- oder Versanddatum können dadurch nicht genutzt werden; bei großen Datenbanken können diese Filter langsam sein. ArticleNrwird mit der Lieferanten-Artikelnummer (ItemNrSuppl) verglichen, nicht mit der internen Artikelnummer.- Die Anweisung wird an
sp_executesqlunter dem Parameternamen@statmentstatt des dokumentierten@stmtübergeben; der Aufruf verlässt sich auf die positionsbezogene Verarbeitung dieses Parameters.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
orderdate
|
datetime dateTime |
NULL |
Nur Kunden mit einer Auftragsposition, die an diesem Kalendertag bestellt wurde. Die Uhrzeit wird ignoriert. Beispiel: |
ShipDate
|
datetime dateTime |
NULL |
Nur Kunden mit einer Auftragsposition, die an diesem Kalendertag versendet wurde. Die Uhrzeit wird ignoriert. Beispiel: |
EanUpc
|
varchar(13) string |
NULL |
Nur Kunden, die einen Artikel mit dieser EAN/UPC bestellt haben. Beispiel: |
ArticleNr
|
varchar(50) string |
NULL |
Nur Kunden, die einen Artikel mit dieser Lieferanten-Artikelnummer ( Beispiel: |
paid
|
bit boolean |
NULL |
Filter auf den Zahlungsstatus der Rechnungen. Erlaubte Werte
Beispiel: |
Shipped
|
bit boolean |
NULL |
Filter auf den Versandstatus der Auftragspositionen. Erlaubte Werte
Beispiel: |
resumeKey
|
int | NULL |
Paging-Schlüssel: nur Kunden mit einem Kundenschlüssel größer als dieser Wert werden geliefert. Den letzten Beispiel: |
Top
|
int | 100 |
Maximale Anzahl gelieferter Zeilen (über Beispiel: |
ShopID
|
varchar(3) string |
NULL |
Nur Kunden dieses Shops ( Beispiel: |
Antwort
Result-Set 1 · Immer
Passende Kunden, aufsteigend nach Kundenschlüssel sortiert, begrenzt auf Top Zeilen.
| Spalte | Typ | Beschreibung |
|---|---|---|
custkey
|
int |
Interner Kundenschlüssel; der höchste Wert dient als |
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. |
ShopID
Kann leer sein |
string |
Shop, dem der Kunde zugeordnet ist ( |
Beispielantwort
<SqlRowSet1>
<row>
<custkey>10251</custkey>
<cemail>anna.schmidt@example.de</cemail>
<firstname>Anna</firstname>
<lastname>Schmidt</lastname>
<ShopID>SH1</ShopID>
</row>
<row>
<custkey>10254</custkey>
<cemail>m.weber@example.com</cemail>
<firstname>Markus</firstname>
<lastname>Weber</lastname>
<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:pixiEmillGetCustomers>
<!-- <orderdate>2024-03-15T00:00:00</orderdate> -->
<!-- <ShipDate>2024-03-18T00:00:00</ShipDate> -->
<!-- <EanUpc>4006381333931</EanUpc> -->
<!-- <ArticleNr>BK-1002-BLK</ArticleNr> -->
<!-- <paid>0</paid> -->
<!-- <Shipped>1</Shipped> -->
<!-- <resumeKey>10250</resumeKey> -->
<!-- <Top>500</Top> -->
<!-- <ShopID>SH1</ShopID> -->
</ns1:pixiEmillGetCustomers>
</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:pixiEmillGetCustomers>
<!-- <orderdate>2024-03-15T00:00:00</orderdate> -->
<!-- <ShipDate>2024-03-18T00:00:00</ShipDate> -->
<!-- <EanUpc>4006381333931</EanUpc> -->
<!-- <ArticleNr>BK-1002-BLK</ArticleNr> -->
<!-- <paid>0</paid> -->
<!-- <Shipped>1</Shipped> -->
<!-- <resumeKey>10250</resumeKey> -->
<!-- <Top>500</Top> -->
<!-- <ShopID>SH1</ShopID> -->
</ns1:pixiEmillGetCustomers>
</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 = [
// 'orderdate' => '2024-03-15T00:00:00',
// 'ShipDate' => '2024-03-18T00:00:00',
// 'EanUpc' => '4006381333931',
// 'ArticleNr' => 'BK-1002-BLK',
// 'paid' => '0',
// 'Shipped' => '1',
// 'resumeKey' => '10250',
// 'Top' => '500',
// 'ShopID' => 'SH1',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiEmillGetCustomers', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiEmillGetCustomers