pixiCADeleteEventMatches
Löscht alle Kundenkonto-Zuordnungen (Matches) eines Kundenkonto-Eintrags (CAref) einschließlich der daraus abgeleiteten Bank-Zuordnungen.
Entfernt alle Zuordnungen, an denen der angegebene Kundenkonto-Eintrag beteiligt ist.
- Zuerst läuft die gemeinsame API-Hülle. Sie prüft die Aufruffrequenz und protokolliert den Aufrufzeitpunkt. Wird das Limit überschritten, liefert der Aufruf eine Zeile
ResultCode/ResultTextmit Code502und führt sonst nichts aus. - Ist
CArefgleichNULL, wird eine Zeile mitReturnCode=ERRORgeliefert und nichts gelöscht. - Andernfalls ermittelt die Prozedur alle Datensätze in
CustomerAccountMatch, bei denenCAref1oderCAref2dem Wert vonCArefentspricht. Für jeden Match-Schlüssel geschieht Folgendes:UpdateDatewird auf den aktuellen Zeitpunkt undUpdateEmpaufAPIgesetzt.- Alle
BankMatch-Zeilen, derenSourceCustomerAccountMatchKeyauf diese Zuordnung verweist, werden gelöscht. - Die Zuordnung selbst wird gelöscht.
Bei Erfolg liefert der Aufruf keine Ergebnismenge. Die Ausgabeparameter ResultCode/ResultText enthalten 200/OK.
Hinweise
- Jede Zuordnung wird in einer eigenen Transaktion innerhalb von
Pixi_CA_DeleteMatchgelöscht. Eine übergreifende Transaktion gibt es nicht. Schlägt das Löschen einer Zuordnung fehl, wird nur diese zurückgerollt und der Fehler perRAISERROR(Schweregrad 16) erneut ausgelöst. Bereits gelöschte Zuordnungen bleiben gelöscht. Die Schleife läuft mit den übrigen Zuordnungen weiter. - Die Liste der Zuordnungen wird mit
NOLOCKgelesen. Die Löschvorgänge verwendenROWLOCK. - Die Aktualisierung von
UpdateDate/UpdateEmpunmittelbar vor dem Löschen dient vermutlich Audit- oder Trigger-Logik. Der Code zeigt dies nicht. - Eine Zuordnung wird gefunden, wenn
CArefauf einer der beiden Seiten steht (CAref1oderCAref2). - Existiert keine Zuordnung zu
CAref, endet der Aufruf ohne Ergebnis und ohne Fehler. ResultCodebleibt200, auch wenn die ZeileCAref cannot be NULLgeliefert wird. Die zurückgegebene Zeile sollte daher ebenfalls ausgewertet werden.- Das Frequenzlimit stammt aus
API_CONTROL.MIN_BREATHING_MSECfür diesen Funktionsnamen.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
CAref
Pflicht
|
int | – |
Schlüssel des Kundenkonto-Eintrags. Alle Zuordnungen, in denen er als Beispiel: |
ResultCode
OUTPUT
|
char(3) string |
NULL |
Ergebniscode der API-Hülle: Erlaubte Werte
|
ResultText
OUTPUT
|
varchar(1024) string |
NULL |
Ergebnistext der API-Hülle: |
Antwort
Result-Set 1 · Nur wenn das Frequenzlimit überschritten ist
Statuszeile der API-Hülle. Es erfolgt keine weitere Verarbeitung.
| Spalte | Typ | Beschreibung |
|---|---|---|
ResultCode
|
char(3) string |
In diesem Fall immer |
ResultText
|
varchar(1024) string |
Meldung mit der Wartezeit in Millisekunden. |
Result-Set 2 · Wenn CAref NULL ist
Fehlerzeile. Es wird nichts gelöscht.
| Spalte | Typ | Beschreibung |
|---|---|---|
ReturnCode
|
varchar(5) string |
Immer |
ErrorMessage
|
varchar(20) string |
Fehlertext. |
Beispielantwort
<SqlRowSet1>
<row>
<ResultCode>502</ResultCode>
<ResultText>(850) Frequency quote exceeded. Next call to this function can be made in ca. 850 milliseconds</ResultText>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| ERROR | CAref cannot be NULL | `CAref` wurde als NULL übergeben. Einen gültigen Kundenkonto-Schlüssel übergeben. |
| 502 | ({WaitMsec}) Frequency quote exceeded. Next call to this function can be made in ca. {WaitMsec} milliseconds | Der Aufruf wurde schneller wiederholt als das in `API_CONTROL` konfigurierte Mindestintervall. Die angegebene Zeit abwarten und erneut aufrufen. |
| RAISERROR | {original SQL error message} | Das Löschen einer einzelnen Zuordnung oder ihrer Bank-Zuordnungen ist fehlgeschlagen, z. B. wegen einer Constraint-Verletzung oder eines Deadlocks. Diese Zuordnung wird zurückgerollt und der ursprüngliche Fehlertext erneut ausgelöst. Die übrigen Zuordnungen werden weiter verarbeitet. |
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:pixiCADeleteEventMatches>
<CAref>104523</CAref>
<!-- <ResultCode>?</ResultCode> -->
<!-- <ResultText>?</ResultText> -->
</ns1:pixiCADeleteEventMatches>
</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:pixiCADeleteEventMatches>
<CAref>104523</CAref>
<!-- <ResultCode>?</ResultCode> -->
<!-- <ResultText>?</ResultText> -->
</ns1:pixiCADeleteEventMatches>
</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 = [
'CAref' => '104523',
// 'ResultCode' => '?',
// 'ResultText' => '?',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiCADeleteEventMatches', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiCADeleteEventMatches