Invoices
Schreiben
pixiSetReminderLevel
Setzt die Mahnstufe einer Rechnung, die über ihre Rechnungsnummer ermittelt wird.
Ermittelt die Rechnung über InvoiceNR (Invoices.InvoiceNr) und übergibt deren Schlüssel an die interne Prozedur Pixi_CA_R_SetLevel. Als Benutzername wird API verwendet.
Diese Prozedur arbeitet wie folgt:
- Stufe größer 0: Es werden die Mahnungen (
Reminders) gesucht, die eine Mahnposition (ReminderLines) zu dieser Rechnung enthalten und derenHighestReminderLevelgleichReminderLevelist.- Wenn eine passende Mahnung existiert:
- Die Rechnung erhält die neue
ReminderLevel. UpdateEmpwird aufAPIgesetzt.UpdateDatewird auf das Datum dieser Mahnung gesetzt, nicht auf die aktuelle Zeit.- Alle Mahnpositionen der Rechnung werden dieser Mahnung zugeordnet (
ReminderRef).
- Die Rechnung erhält die neue
- Wenn keine passende Mahnung existiert: Nur die Rechnung wird aktualisiert,
UpdateDateerhält die aktuelle Zeit.
- Wenn eine passende Mahnung existiert:
- Stufe 0 oder
NULL: DieReminderLevelder Rechnung wird aufNULLzurückgesetzt.UpdateEmp=APIundUpdateDate= jetzt.
Der Aufruf liefert keine Ergebnismenge.
Hinweise
- Keine Rückmeldung: Es gibt weder eine Statuszeile noch eine Fehlerbehandlung. Existiert die Rechnungsnummer nicht, wird nichts geändert, und der Aufruf endet trotzdem ohne Meldung.
- Mehrdeutige Rechnungsnummern: Der Rechnungsschlüssel wird per skalarer Unterabfrage gelesen. Teilen sich mehrere Rechnungen dieselbe
InvoiceNr, löst SQL Server Fehler 512 aus ("Subquery returned more than 1 value"). - Sperren: Die Abfragen auf
Invoices,RemindersundReminderLinesverwendenNOLOCK. - Transaktionen: Die Änderungen laufen ohne explizite Transaktion.
- Keine Prüfung:
ReminderLevelwird nicht gegen einen Wertebereich geprüft; jeder ganzzahlige Wert wird geschrieben. - Mehrere passende Mahnungen: Die Mahnung wird per Variablenzuweisung mit
ORDER BY ReminderDateermittelt. In der Praxis ergibt das meist die jüngste, SQL Server garantiert aber nicht, welche Zeile verwendet wird. - Umhängen der Positionen: Wird eine passende Mahnung gefunden, werden alle Mahnpositionen der Rechnung dieser Mahnung zugeordnet, auch Positionen, die zu anderen Mahnungen gehörten.
- Stufe 0: Die Prüfung, die 0 als "keine Stufe" behandeln soll, greift nie (
NULLIF(@ReminderLevel, 0) = 0ist nie wahr). Bei 0 sucht der Code daher trotzdem nach Mahnungen mitHighestReminderLevel = 0. Die Mahnstufe der Rechnung wird in jedem FallNULL.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ReminderLevel
Pflicht
|
int | – |
Neue Mahnstufe der Rechnung. 0 oder NULL setzt die Mahnstufe auf NULL zurück. Beispiel: |
InvoiceNR
Pflicht
|
varchar(20) string |
– |
Rechnungsnummer ( Beispiel: |
Antwort
Dieser Call liefert kein Result-Set.
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:pixiSetReminderLevel>
<ReminderLevel>2</ReminderLevel>
<InvoiceNR>RE2024001234</InvoiceNR>
</ns1:pixiSetReminderLevel>
</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:pixiSetReminderLevel>
<ReminderLevel>2</ReminderLevel>
<InvoiceNR>RE2024001234</InvoiceNR>
</ns1:pixiSetReminderLevel>
</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 = [
'ReminderLevel' => '2',
'InvoiceNR' => 'RE2024001234',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiSetReminderLevel', $soapArguments);
Verwendete Tabellen
Invoices · Schreiben
Reminders · Lesen
ReminderLines · Schreiben
- SQL-Objekt:
- dbo.pipiSetReminderLevel
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben