Postman-Collection
Payments Schreiben

pixiCADeleteEvent

Löscht ein Kundenkonto-Ereignis (CustomerAccount-Eintrag) samt Rechnung, Bankzuordnungen und Kontozuordnungen, sofern das Löschen erlaubt ist.

Löscht ein Ereignis aus dem Kundenkonto (CustomerAccount), identifiziert über den Schlüssel CAref.

Ablauf:

  1. Der gemeinsame API-Envelope prüft die Aufrufhäufigkeit. Ist das Limit überschritten, wird eine Zeile ResultCode/ResultText mit Code 502 geliefert, und es passiert nichts weiter.
  2. Ist CAref NULL, wird eine Zeile mit ReturnCode = 'ERROR' geliefert.
  3. Andernfalls läuft die interne Prozedur Pixi_CA_DeleteEvent mit dem Benutzernamen API in einer Transaktion:
    • Die Funktion fPixi_CA_canIdeleteEvent entscheidet, ob das Ereignis gelöscht werden darf. Falls nicht, wird nichts geändert und Success = 0 geliefert.
    • Ist eine Rechnung verknüpft (InvoiceRef), wird diese über Pixi_DeleteInvoice gelöscht.
    • Bankzuordnungen (BankMatch) der verknüpften Bankzeile (BanklineRef) werden gelöscht.
    • UpdateEmp/UpdateDate werden am Ereignis und an allen CustomerAccountMatch-Zeilen gesetzt, in denen das Ereignis als CAref1 oder CAref2 vorkommt. Diese Zuordnungen werden anschließend gelöscht.
    • Die CustomerAccount-Zeile selbst wird gelöscht.
    • Danach versucht der Code, einen verknüpften DTAUS-Datensatz (nur wenn dessen Status das Löschen erlaubt) bzw. eine verknüpfte manuelle Buchung (CustomerAccountManualBookings) zu entfernen.
  4. Eine Zeile mit Success (1 = gelöscht, 0 = nicht gelöscht) und ErrorMessage wird geliefert.

Hinweise

  • Alle Änderungen laufen in einer Transaktion; bei einem Fehler wird zurückgerollt, der Fehler per RAISERROR (Schweregrad 16, als SqlMessage) erneut ausgelöst und trotzdem eine Zeile mit Success = 0 und dem Fehlertext geliefert.
  • Die Regeln von fPixi_CA_canIdeleteEvent und das Verhalten von Pixi_DeleteInvoice liegen nicht vor; welche Ereignisse löschbar sind und ob das Löschen der Rechnung zusätzliche Ergebnismengen liefert, ist aus diesem Code nicht ersichtlich.
  • Die Ermittlung des verknüpften DTAUS-Datensatzes und der manuellen Buchung liest DTAUSref/ManualBookingRef aus CustomerAccount, nachdem diese Zeile bereits gelöscht wurde; die Unterabfragen finden daher praktisch nichts. Laut Code-Kommentar übernimmt ein Trigger das Löschen aus DTAUS und CustomerAccountManualBookings; dieser Trigger liegt nicht vor.
  • Ist das Löschen nicht erlaubt, erzeugt die interne Prozedur nur ein PRINT ('Event CANNOT Be Deleted'), das nicht als Zeile sichtbar ist; maßgeblich ist Success = 0.
  • Die Ausgabeparameter ResultCode/ResultText enthalten das Envelope-Ergebnis (200/OK bei normaler Ausführung).
  • Lesezugriffe mit NOLOCK, Schreibzugriffe mit ROWLOCK. Jeder Aufruf aktualisiert API_STATISTICS.

Parameter

Parameter Typ Standardwert Beschreibung
CAref
Pflicht
int –

Schlüssel des zu löschenden Kundenkonto-Ereignisses (CustomerAccount.CustomerAccountKey). Darf nicht NULL sein.

Beispiel: 123456

ResultCode
OUTPUT
char(3)
string
NULL

Ausgabe: Ergebniscode des API-Envelopes, 200 bei normaler Ausführung, 502 bei Überschreitung des Aufruflimits.

ResultText
OUTPUT
varchar(1024)
string
NULL

Ausgabe: Ergebnistext des API-Envelopes, OK oder die Meldung zum Aufruflimit.

Antwort

Result-Set 1 · Wenn das Aufruflimit überschritten ist (Code 502)

Statuszeile des API-Envelopes; es wird nichts gelöscht.

Spalte Typ Beschreibung
ResultCode char(3)
string

502.

ResultText varchar(1024)
string

Meldung mit der verbleibenden Wartezeit in Millisekunden.

Result-Set 2 · Wenn CAref NULL ist

Fehlerzeile bei fehlendem Schlüssel.

Spalte Typ Beschreibung
ReturnCode varchar(5)
string

Immer ERROR.

ErrorMessage varchar(20)
string

CAref cannot be NULL.

Result-Set 3 · Wenn CAref angegeben ist und der Envelope 200 liefert

Ergebnis des Löschversuchs.

Spalte Typ Beschreibung
Success
Kann leer sein
int

1, wenn das Ereignis gelöscht wurde, 0, wenn das Löschen nicht erlaubt war oder fehlschlug.

ErrorMessage
Kann leer sein
nvarchar(4000)
string

Leerer String bei Erfolg oder wenn das Löschen nicht erlaubt ist; bei einem Fehler der SQL-Fehlertext.

Fehlermeldungen

Status Meldung Ursache
502 ({value}) Frequency quote exceeded. Next call to this function can be made in ca. {value} milliseconds Der Aufruf erfolgte vor Ablauf des in `API_CONTROL` konfigurierten Mindestabstands. Die angegebene Zeit abwarten und erneut aufrufen.
ERROR CAref cannot be NULL `CAref` wurde nicht übergeben oder ist NULL. Den Schlüssel des Kundenkonto-Ereignisses übergeben.
RAISERROR Pixi_CA_DeleteEvent: deleting of DTAUS record not allowed Ein verknüpfter DTAUS-Datensatz konnte nicht gelöscht werden, weil sein Status das Löschen nicht erlaubt. Die Transaktion wird zurückgerollt, anschließend folgt eine Zeile mit `Success = 0`.
RAISERROR {value} Jeder andere SQL-Fehler beim Löschen (z. B. in `Pixi_DeleteInvoice`) wird mit dem Originaltext erneut ausgelöst; die Transaktion wird zurückgerollt und `Success = 0` mit demselben Text geliefert.

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:pixiCADeleteEvent>
      <CAref>123456</CAref>
      <!-- <ResultCode>?</ResultCode> -->
      <!-- <ResultText>?</ResultText> -->
    </ns1:pixiCADeleteEvent>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

API_STATISTICS · Schreiben API_CONTROL · Lesen CustomerAccount · Schreiben BankMatch · Schreiben CustomerAccountMatch · Schreiben DTAUS · Schreiben DTAUSstates · Lesen CustomerAccountManualBookings · Schreiben
SQL-Objekt:
dbo.pipiCADeleteEvent
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben