pixiGetChangedCustomers
Liefert Kunden, die seit einem Zeitpunkt angelegt oder geändert wurden, optional bis zu einem Enddatum, sortiert nach Änderungsdatum und begrenzt auf eine maximale Zeilenzahl.
Liest die Kundentabelle und liefert alle Kunden, deren Änderungsdatum im angefragten Zeitraum liegt. Der Aufruf dient typischerweise der inkrementellen (Delta-)Synchronisation von Kunden in ein externes System.
- Das Änderungsdatum eines Kunden ist sein
UpdateDatebzw. seinCreateDate, falls der Kunde nie geändert wurde. Dieser Wert wird auch in der SpalteUpdateDatezurückgegeben. - Ist
Tonicht angegeben oder leer, werden alle Kunden mit Änderungsdatum>= Sincegeliefert. - Ist
Togesetzt, werden Kunden mit Änderungsdatum zwischenSinceundTo(jeweils inklusive) geliefert. - Das Ergebnis ist aufsteigend nach Änderungsdatum sortiert (älteste Änderung zuerst).
- Es werden höchstens
RowcountZeilen geliefert (Standard1000).
Je Kunde werden Kundenschlüssel, die Schlüssel der Rechnungs- und Lieferadresse, ein Liefersperre-Kennzeichen, der Wert CustomerOf, E-Mail-Adresse und Name geliefert.
Hinweise
- Die Tabelle wird
WITH (NOLOCK)gelesen; nicht festgeschriebene Änderungen können daher geliefert werden. - Die Begrenzung erfolgt über
SET ROWCOUNT. MitRowcount=0entfällt die Begrenzung, und alle passenden Zeilen werden geliefert. - Die Prüfung auf ein leeres
Tovergleicht mit'', was SQL Server in1900-01-01 00:00:00umwandelt. Genau dieses Datum alsTowird daher wie ein fehlendes Enddatum behandelt. - Vorgehen beim Blättern: das höchste gelieferte
UpdateDateals nächstesSinceverwenden. Da der Filter>=lautet, werden die letzten Datensätze erneut geliefert; nachCustKeydeduplizieren. Es gibt kein zweites Sortierkriterium – haben mehr alsRowcountKunden dasselbe Änderungsdatum, kommt die Schleife nicht weiter; in diesem FallRowcounterhöhen. ShipLockist1, wenn das KundenfeldSLockedden WertYhat, sonst0.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
Since
Pflicht
|
datetime dateTime |
– |
Beginn des Zeitraums (inklusive). Geliefert werden Kunden, deren Änderungsdatum ( Beispiel: |
To
|
datetime dateTime |
NULL |
Optionales Ende des Zeitraums (inklusive). Fehlt der Wert oder ist er leer, gibt es keine Obergrenze. Beispiel: |
Rowcount
|
int | 1000 |
Maximale Anzahl gelieferter Zeilen. Beispiel: |
Antwort
Result-Set 1 · Immer (ggf. leer)
Im angefragten Zeitraum geänderte Kunden, aufsteigend nach Änderungsdatum sortiert.
| Spalte | Typ | Beschreibung |
|---|---|---|
CustKey
|
int |
Schlüssel des Kunden. |
AddrKey
Kann leer sein |
int |
Schlüssel der Haupt- bzw. Rechnungsadresse des Kunden ( |
ShipAddrKey
Kann leer sein |
int |
Schlüssel der Lieferadresse des Kunden ( |
ShipLock
|
bit boolean |
|
CustomerOf
Kann leer sein |
string |
Wert des Kundenfelds |
eMail
Kann leer sein |
string |
E-Mail-Adresse des Kunden ( |
Name
Kann leer sein |
string |
Name des Kunden ( |
UpdateDate
|
datetime dateTime |
Änderungsdatum: |
Beispielantwort
<SqlRowSet1>
<row>
<CustKey>10452</CustKey>
<AddrKey>23011</AddrKey>
<ShipAddrKey>23012</ShipAddrKey>
<ShipLock>false</ShipLock>
<CustomerOf>SHOP1</CustomerOf>
<eMail>anna.mueller@example.de</eMail>
<Name>Anna Müller</Name>
<UpdateDate>2024-05-02T09:14:33.217</UpdateDate>
</row>
<row>
<CustKey>10988</CustKey>
<AddrKey>24170</AddrKey>
<ShipAddrKey>24170</ShipAddrKey>
<ShipLock>true</ShipLock>
<CustomerOf>SHOP1</CustomerOf>
<eMail>info@beispiel-gmbh.de</eMail>
<Name>Beispiel GmbH</Name>
<UpdateDate>2024-05-02T11:40:05.003</UpdateDate>
</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:pixiGetChangedCustomers>
<Since>2024-05-01T00:00:00</Since>
<!-- <To>2024-05-31T23:59:59</To> -->
<!-- <Rowcount>500</Rowcount> -->
</ns1:pixiGetChangedCustomers>
</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:pixiGetChangedCustomers>
<Since>2024-05-01T00:00:00</Since>
<!-- <To>2024-05-31T23:59:59</To> -->
<!-- <Rowcount>500</Rowcount> -->
</ns1:pixiGetChangedCustomers>
</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 = [
'Since' => '2024-05-01T00:00:00',
// 'To' => '2024-05-31T23:59:59',
// 'Rowcount' => '500',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetChangedCustomers', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetChangedCustomers