pixiGetCAEventsAndReminders
Liefert Kundenkonto-Ereignisse (Rechnungen, Ausgleiche/Zahlungen, Mahnungen und virtuelle Vollzahlungs-Ereignisse) eines Shops in einem Zeitraum inkl. Saldo und Mahnstufen.
Sammelt alle Kundenkonto-Ereignisse der Kunden des Shops ShopId in einem Zeitraum und liefert sie als gemeinsame Ereignisliste. Mahnungsversand und vollständige Bezahlung von Rechnungen werden als zusätzliche Ereignisse behandelt.
Zeitraum
- Ist
StartDateNULL, beginnt der Zeitraum am Ersten des aktuellen Monats. Andernfalls beginnt er um 00:00 Uhr vonStartDate. - Ist
EndDateNULL, endet der Zeitraum am Ende des heutigen Tages. Andernfalls endet er um 23:59:59.997 vonEndDate.
Erfasste Ereignisarten
- Rechnungsereignisse: Einträge in
CustomerAccountmitEventID = 'INV', derenEventDateim Zeitraum liegt.EventKey=CAE_<CustomerAccountKey>. - Mahnungsereignisse: Mahnungen (
Remindersverknüpft mitReminderLines), derenReminderSentDateim Zeitraum liegt. Sie werden mitEventID = 'REM'geliefert. Der Betrag ist der negative Wert aus Mahnsumme minus Mahnkosten,ReminderLevelstammt aus der Mahnposition.EventKey=REM_<ReminderKey>. - Ausgleichsereignisse: Datensätze in
CustomerAccountMatch, die im Zeitraum angelegt wurden und einen Rechnungseintrag (EventID = 'INV') mit einem anderen Kundenkontoeintrag verknüpfen. Beide Verknüpfungsrichtungen werden berücksichtigt. Die Zeile trägtEventIDundEventDatedes Gegeneintrags (z. B. einer Zahlung). Der Betrag ist der absolute Ausgleichsbetrag,EventUpdateDatedas Anlagedatum des Ausgleichs.EventKey=CAM_<CustomerAccountMatchKey>. - Virtuelle Vollzahlungsereignisse: Für eine Rechnung eines gelieferten Kunden, deren Ausgleiche bis
EndDategenau die Rechnungssumme ergeben, wird ein virtuelles Ereignis mitEventID = 'REM'und Betrag 0 erzeugt. Sein Datum ist das letzte Ausgleichsdatum plus 1 ms. Der Kunde muss zusätzlich mindestens ein Ausgleichsereignis im Zeitraum haben, und das Ereignis entfällt, wenn sein Datum vor dem Zeitraumbeginn liegt.EventKey=FPY_<CustomerAccountKey>.
Kundenfilter
- Es werden nur Kunden geliefert, deren
CustomerOfgleichShopIdist. - Bei
CustomerNumberIsNumeric = 1werden nur Kunden geliefert, derenCustomerNrExternalausschließlich aus Ziffern besteht. Bei0(Standard oder NULL) werden alle Kunden des Shops geliefert.
Mahnstufen
- Für jede Rechnung ohne virtuelles Vollzahlungsereignis wird der höchste
HighestReminderLevelaller Mahnungen ermittelt, die die Rechnung enthalten (Rechnungsdatum vorEndDate). - Dieser Wert wird in
ReminderLevelaller Nicht-REM-Ereignisse der Rechnung geschrieben. CustomerReminderLevelist das Maximum dieser Stufen über alle offenen Rechnungen des Kunden. Es wird bei allen Ereignissen des Kunden gesetzt.
Beträge und Währungen
Balance_ShopCurrist die Summe aller Kundenkontobeträge mitEventDatevorEndDate.- Ist die Einstellung
MultiCurrencyEnabledgleich 1, werden diese Beträge mit dem Wechselkurs des aktuellen Tages umgerechnet. Amount_ShopCurrist der auf dieselbe Weise umgerechnete Ereignisbetrag. Ein fehlender Kurs zählt als 1.
Ausgabe
- Jede Ereigniszeile enthält die externe Kundennummer, die Rechnungsnummer und die externe Auftragsnummer.
- Geliefert werden nur Ereignisse, die einer Rechnung in
Invoiceszugeordnet werden können. - Das Ergebnis ist
DISTINCTund nachEventUpdateDate, dannEventDatesortiert.
Hinweise
- Alle Lesezugriffe verwenden
NOLOCK; das Ergebnis kann nicht festgeschriebene Daten enthalten. - Wechselkurse werden immer zum aktuellen Datum (
ExchDate= heute) gelesen, nicht zum Ereignisdatum. BeiMultiCurrencyEnabled = 1und fehlendem Tageskurs fallen Einträge in Fremdwährung ausBalance_ShopCurrheraus (Division durch NULL).Amount_ShopCurrverwendet in diesem Fall den Kurs 1. - Die Einstellung
DoNOTChargeShipCostOnSecondDeliverywird gelesen, aber nicht verwendet. - Eine Rechnung mit Positionen aus mehreren externen Aufträgen erzeugt je
OrderNrExternaleine Zeile. - Mahnungszeilen entstehen durch doppelte Verknüpfung der Mahnpositionen. Eine Mahnung mit mehreren Positionen kann daher mehrere Zeilen mit unterschiedlichen Kombinationen aus
InvoiceNrundReminderLevelliefern. - Virtuelle
FPY_-Ereignisse entstehen je Kundenkontoeintrag der Rechnung, daher sind mehrereFPY_-Zeilen pro Rechnung möglich. - Eine unbekannte
ShopIdliefert ein leeres Ergebnis, keinen Fehler. - Temporäre Tabellen werden am Ende über
util.TempTableDrop(nicht beigefügt) gelöscht.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
StartDate
|
datetime dateTime |
NULL |
Beginn des Zeitraums (Uhrzeit wird ignoriert, es gilt 00:00 Uhr). NULL bedeutet der Erste des aktuellen Monats. Beispiel: |
EndDate
|
datetime dateTime |
NULL |
Ende des Zeitraums (es gilt das Ende des angegebenen Tages). NULL bedeutet das Ende des heutigen Tages. Beispiel: |
ShopId
Pflicht
|
varchar(3) string |
– |
Shop, dessen Kunden geliefert werden (Vergleich mit Beispiel: |
CustomerNumberIsNumeric
|
bit boolean |
0 |
Beschränkt das Ergebnis auf Kunden mit rein numerischer externer Kundennummer. NULL wird als 0 behandelt. Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Wenn ShopId NULL oder leer ist
Fehler-Statuszeile; es folgt kein weiteres Ergebnis.
| Spalte | Typ | Beschreibung |
|---|---|---|
Status
|
varchar(5) string |
Immer |
Message
|
varchar(66) string |
Fehlertext. |
Result-Set 2 · Wenn ShopId angegeben ist
Liste der Kundenkonto-, Mahnungs- und virtuellen Vollzahlungsereignisse, sortiert nach EventUpdateDate, EventDate.
| Spalte | Typ | Beschreibung |
|---|---|---|
CustomerNrExternal
Kann leer sein |
string |
Externe Kundennummer ( |
InvoiceNr
Kann leer sein |
string |
Nummer der Rechnung, zu der das Ereignis gehört. |
OrderNrExternal
Kann leer sein |
string |
Externe Auftragsnummer aus den Auftragspositionen der Rechnung; NULL, wenn keine gefunden wird. |
EventID
|
string |
Ereignistyp: |
Amount
Kann leer sein |
numeric(19,4) decimal |
Betrag in Ereigniswährung: Kontobetrag ( |
EventCurr
Kann leer sein |
string |
Währungscode des Ereignisses ( |
EventDate
Kann leer sein |
dateTime |
Datum des Ereignisses (bei Ausgleichsereignissen: Datum des Gegeneintrags im Kundenkonto). |
Amount_ShopCurr
Kann leer sein |
numeric(19,4) decimal |
Betrag umgerechnet in die Basiswährung des Shops zum heutigen Kurs (nur bei aktivierter Mehrwährung, sonst gleich |
ShopCurr
Kann leer sein |
string |
Basiswährungscode des Shops ( |
Balance_ShopCurr
Kann leer sein |
money decimal |
Kundenkontosaldo bis |
ReminderLevel
Kann leer sein |
int |
Bei |
CustomerReminderLevel
Kann leer sein |
int |
Höchste Mahnstufe über alle offenen Rechnungen des Kunden, sonst 0. |
EventKey
|
varchar(24) string |
Eindeutiger Ereignisschlüssel mit Präfix |
EventUpdateDate
Kann leer sein |
dateTime |
Datum, an dem das Ereignis wirksam wurde (Anlagedatum des Ausgleichs bei |
Beispielantwort
<SqlRowSet1>
<row>
<CustomerNrExternal>100234</CustomerNrExternal>
<InvoiceNr>RE2024-00451</InvoiceNr>
<OrderNrExternal>WEB-77812</OrderNrExternal>
<EventID>INV</EventID>
<Amount>119.0000</Amount>
<EventCurr>EUR</EventCurr>
<EventDate>2024-03-04T10:15:00</EventDate>
<Amount_ShopCurr>119.0000</Amount_ShopCurr>
<ShopCurr>EUR</ShopCurr>
<Balance_ShopCurr>119.0000</Balance_ShopCurr>
<ReminderLevel>1</ReminderLevel>
<CustomerReminderLevel>1</CustomerReminderLevel>
<EventKey>CAE_558812</EventKey>
<EventUpdateDate>2024-03-04T10:15:00</EventUpdateDate>
</row>
<row>
<CustomerNrExternal>100234</CustomerNrExternal>
<InvoiceNr>RE2024-00451</InvoiceNr>
<OrderNrExternal>WEB-77812</OrderNrExternal>
<EventID>REM</EventID>
<Amount>-119.0000</Amount>
<EventCurr>EUR</EventCurr>
<EventDate>2024-03-20T08:00:00</EventDate>
<Amount_ShopCurr>-119.0000</Amount_ShopCurr>
<ShopCurr>EUR</ShopCurr>
<Balance_ShopCurr>119.0000</Balance_ShopCurr>
<ReminderLevel>1</ReminderLevel>
<CustomerReminderLevel>1</CustomerReminderLevel>
<EventKey>REM_3311</EventKey>
<EventUpdateDate>2024-03-20T08:00:00</EventUpdateDate>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| Error | Parameter @ShopId is mandatory parameter and needs to be provided. | `ShopId` fehlt, ist NULL oder leer. Eine gültige Shop-ID angeben. |
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:pixiGetCAEventsAndReminders>
<!-- <StartDate>2024-03-01T00:00:00</StartDate> -->
<!-- <EndDate>2024-03-31T00:00:00</EndDate> -->
<ShopId>SHP</ShopId>
<!-- <CustomerNumberIsNumeric>0</CustomerNumberIsNumeric> -->
</ns1:pixiGetCAEventsAndReminders>
</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:pixiGetCAEventsAndReminders>
<!-- <StartDate>2024-03-01T00:00:00</StartDate> -->
<!-- <EndDate>2024-03-31T00:00:00</EndDate> -->
<ShopId>SHP</ShopId>
<!-- <CustomerNumberIsNumeric>0</CustomerNumberIsNumeric> -->
</ns1:pixiGetCAEventsAndReminders>
</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 = [
// 'StartDate' => '2024-03-01T00:00:00',
// 'EndDate' => '2024-03-31T00:00:00',
'ShopId' => 'SHP',
// 'CustomerNumberIsNumeric' => '0',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetCAEventsAndReminders', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetCAEventsAndReminders