Postman-Collection
Invoices Schreiben

pixiSetInvoiceShippingInformation

Aktualisiert Paketanzahl, Netto- und Bruttopaketgewicht sowie Versanddienstleister einer vorhandenen Rechnung und liefert die gespeicherten Werte.

Setzt Versandinformationen an einer einzelnen Rechnung in der Tabelle Invoices, identifiziert über InvoiceNr.

  1. Zuerst wird geprüft, ob eine Rechnung mit der angegebenen InvoiceNr existiert. Falls nicht, wird eine Statuszeile mit Status = 400 geliefert und nichts geändert.
  2. Die aktuellen Werte von PackageNetWeight, PackageGrossWeight, Packages und ShipVendor werden gelesen.
  3. Die Rechnung wird aktualisiert. Jedes Feld wird nur überschrieben, wenn der zugehörige Parameter nicht NULL ist. Weggelassene oder mit NULL übergebene Parameter behalten den bisherigen Wert. Damit sind Teilaktualisierungen möglich, z. B. nur die Paketanzahl.
  4. Wurde mindestens eine Zeile aktualisiert, wird Status = 200 mit den gespeicherten Werten der Rechnung geliefert. Andernfalls wird Status = 500 mit den aktuellen Werten geliefert.

Hinweise

  • Ein Feld kann mit diesem Aufruf nicht auf NULL zurückgesetzt werden, da NULL-Parameter "bisherigen Wert beibehalten" bedeuten.
  • ShipVendor wird nicht validiert. Jeder Wert mit bis zu 3 Zeichen wird unverändert geschrieben.
  • Gewichte werden nicht auf Plausibilität geprüft, z. B. ein Bruttogewicht kleiner als das Nettogewicht oder negative Werte.
  • Die Existenzprüfung und das Lesen der alten Werte erfolgen mit NOLOCK. Eine explizite Transaktion wird nicht verwendet.
  • Der 500-Zweig tritt praktisch nur auf, wenn die Rechnung zwischen Prüfung und Update gelöscht wird. Die Ergebniszeile enthält dann in der Regel keine Daten.
  • Haben mehrere Zeilen dieselbe InvoiceNr, werden alle aktualisiert und alle geliefert.
  • Die Spaltentypen im Ergebnis sind aus den im Code deklarierten Variablen abgeleitet. Die Tabellendefinition von Invoices liegt nicht vor.

Parameter

Parameter Typ Standardwert Beschreibung
InvoiceNr
varchar(20)
string
NULL

Nummer der zu aktualisierenden Rechnung. Praktisch erforderlich: Ohne passende Rechnung liefert der Aufruf Status 400.

Beispiel: RE2024001234

PackageNetWeight
float
decimal
NULL

Neues Nettogewicht der Pakete. NULL behält den bisherigen Wert bei.

Beispiel: 2.35

PackageGrossWeight
float
decimal
NULL

Neues Bruttogewicht der Pakete. NULL behält den bisherigen Wert bei.

Beispiel: 2.8

Packages
int NULL

Neue Paketanzahl. NULL behält den bisherigen Wert bei.

Beispiel: 2

ShipVendor
varchar(3)
string
NULL

Neues Kürzel des Versanddienstleisters mit bis zu 3 Zeichen. Der Wert wird nicht validiert. NULL behält den bisherigen Wert bei.

Beispiel: DHL

Antwort

Result-Set 1 · Wenn die Rechnung existiert und mindestens eine Zeile aktualisiert wurde (Status = 200)

Erfolgszeile mit den gespeicherten Versandinformationen der Rechnung.

Spalte Typ Beschreibung
Status int

Immer 200.

Message varchar(21)
string

Data updated in pixi*

InvoiceNr varchar(20)
string

Rechnungsnummer.

Packages
Kann leer sein
int

Paketanzahl nach dem Update.

PackageNetWeight
Kann leer sein
float
decimal

Nettogewicht nach dem Update.

PackageGrossWeight
Kann leer sein
float
decimal

Bruttogewicht nach dem Update.

ShipVendor
Kann leer sein
varchar(3)
string

Kürzel des Versanddienstleisters nach dem Update.

Result-Set 2 · Wenn die Rechnung existierte, aber keine Zeile aktualisiert wurde (Status = 500)

Fehlerzeile mit denselben Spalten wie die Erfolgszeile, gefüllt aus den aktuellen Rechnungsdaten, sofern noch vorhanden.

Spalte Typ Beschreibung
Status int

Immer 500.

Message varchar(35)
string

Data could not be updated in pixi*.

InvoiceNr varchar(20)
string

Rechnungsnummer.

Packages
Kann leer sein
int

Aktuelle Paketanzahl.

PackageNetWeight
Kann leer sein
float
decimal

Aktuelles Nettogewicht.

PackageGrossWeight
Kann leer sein
float
decimal

Aktuelles Bruttogewicht.

ShipVendor
Kann leer sein
varchar(3)
string

Aktuelles Kürzel des Versanddienstleisters.

Result-Set 3 · Wenn keine Rechnung mit @InvoiceNr existiert (Status = 400)

Fehlerzeile ohne Rechnungsdaten.

Spalte Typ Beschreibung
Status int

Immer 400.

Message varchar(38)
string

Invoice Nr could not be found in pixi*

Fehlermeldungen

Status Meldung Ursache
400 Invoice Nr could not be found in pixi* Es existiert keine Rechnung mit der angegebenen `InvoiceNr`, oder `InvoiceNr` wurde nicht übergeben. Die Rechnungsnummer prüfen.
500 Data could not be updated in pixi*. Das Update hat keine Zeile betroffen, z. B. weil die Rechnung zwischen Existenzprüfung und Update gelöscht wurde. Erneut versuchen oder die Rechnung 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:pixiSetInvoiceShippingInformation>
      <!-- <InvoiceNr>RE2024001234</InvoiceNr> -->
      <!-- <PackageNetWeight>2.35</PackageNetWeight> -->
      <!-- <PackageGrossWeight>2.8</PackageGrossWeight> -->
      <!-- <Packages>2</Packages> -->
      <!-- <ShipVendor>DHL</ShipVendor> -->
    </ns1:pixiSetInvoiceShippingInformation>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Invoices · Schreiben
SQL-Objekt:
dbo.pipiSetInvoiceShippingInformation
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben