pixiInvoiceSetInfo
Setzt oder ersetzt die Notiz (`Note`) einer einzelnen Rechnung, die über Rechnungsnummer oder Rechnungsschlüssel bestimmt wird.
Aktualisiert das Feld Note genau einer Rechnung in der Tabelle Invoices.
- Die Rechnung wird über die Bedingung
InvoiceNr = @InvoiceNr OR InvoiceKey = @InvoiceKeygesucht. - Trifft die Bedingung auf keine oder auf mehr als eine Rechnung zu, liefert der Aufruf eine Statuszeile mit
ErrorNr=404und ändert nichts. Das ist der Fall, wenn:- weder
InvoiceNrnochInvoiceKeyübergeben wird, - die angegebene Nummer bzw. der Schlüssel nicht existiert,
InvoiceNrundInvoiceKeyauf zwei verschiedene Rechnungen verweisen.
- weder
- Trifft die Bedingung auf genau eine Rechnung zu, wird deren
Notemit@Noteüberschrieben und eine Statuszeile mitErrorNr=200und leererErrorMessagegeliefert. - Schlägt das Update fehl, wird eine Statuszeile mit
ErrorNr=500geliefert.
Die Angabe beider Parameter ist zulässig, sofern sie auf dieselbe Rechnung verweisen.
Hinweise
- Die vorhandene Notiz wird ersetzt, nicht ergänzt. Wird
Noteweggelassen, gilt der StandardwertNULLund die Notiz der Rechnung wird gelöscht. - Die Existenzprüfung liest
InvoicesmitNOLOCK; Prüfung und Update laufen nicht in einer Transaktion. - Die Statuszeile
500enthält nicht den ursprünglichen SQL-Fehlertext. ErrorNrwird als Zeichenkette ('200','404','500') geliefert, nicht als Zahl.@Noteist alsvarchar(255)deklariert; längere Texte können abgeschnitten werden.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
InvoiceNr
|
varchar(20) string |
NULL |
Rechnungsnummer der zu ändernden Rechnung. Diese oder Beispiel: |
InvoiceKey
|
int | NULL |
Interner Schlüssel der zu ändernden Rechnung. Alternative zu Beispiel: |
Note
|
varchar(255) string |
NULL |
Neuer Notiztext der Rechnung. Ersetzt die vorhandene Notiz; Beispiel: |
Antwort
Result-Set 1 · Immer; genau eine Statuszeile.
Status der Operation.
| Spalte | Typ | Beschreibung |
|---|---|---|
ErrorNr
|
varchar(3) string |
Statuscode: |
ErrorMessage
|
varchar(75) string |
Fehlertext; bei Erfolg leer. |
Beispielantwort
<SqlRowSet1>
<row>
<ErrorNr>200</ErrorNr>
<ErrorMessage/>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| 404 | Invoice does not exist or two different invoice parameters were specified. | Keine Rechnung passt zu `InvoiceNr`/`InvoiceKey`, keiner der Parameter wurde übergeben oder beide Parameter verweisen auf verschiedene Rechnungen. Eine gültige Nummer oder einen gültigen Schlüssel genau einer Rechnung übergeben. |
| 500 | Technical problems during update of the Invoice information | Das Update von `Invoices` hat einen SQL-Fehler ausgelöst (z. B. Sperr- oder Constraint-Probleme). Der ursprüngliche Fehler wird nicht zurückgegeben; erneut versuchen oder die Datenbank prüfen. |
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:pixiInvoiceSetInfo>
<!-- <InvoiceNr>RE2024001234</InvoiceNr> -->
<!-- <InvoiceKey>58213</InvoiceKey> -->
<!-- <Note>Zahlung per Vorkasse eingegangen</Note> -->
</ns1:pixiInvoiceSetInfo>
</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:pixiInvoiceSetInfo>
<!-- <InvoiceNr>RE2024001234</InvoiceNr> -->
<!-- <InvoiceKey>58213</InvoiceKey> -->
<!-- <Note>Zahlung per Vorkasse eingegangen</Note> -->
</ns1:pixiInvoiceSetInfo>
</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 = [
// 'InvoiceNr' => 'RE2024001234',
// 'InvoiceKey' => '58213',
// 'Note' => 'Zahlung per Vorkasse eingegangen',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiInvoiceSetInfo', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiInvoiceSetInfo