Postman-Collection
Orderlines Schreiben

pixiCancelOrderline

Storniert eine einzelne Auftragsposition oder eine ganze Bundle-Position oder setzt sie auf nicht lieferbar (`STO`/`NLB`), sofern sie nicht final, verpackt oder berechnet ist.

Setzt den Status einer Auftragsposition oder einer Bundle-Position samt aller zugehörigen Auftragspositionen auf STO (storniert) oder NLB (nicht lieferbar).

  1. Status ist standardmäßig STO; ein leerer Wert oder NULL wird ebenfalls als STO behandelt.
  2. Der Wert 0 für OrderlineKey oder BundleOrderlineKey gilt als nicht übergeben. Fehlen beide Schlüssel, wird eine Fehlerzeile geliefert.
  3. Wird nur OrderlineKey übergeben und gehört diese Auftragsposition zu einer vorhandenen Bundle-Position (BundleOrderlineRef), wechselt der Aufruf auf diese Bundle-Position. Verarbeitet wird dann das gesamte Bundle, nicht nur die einzelne Position.
  4. Ist ein Bundle-Schlüssel bekannt (übergeben oder ermittelt), wird OrderlineKey ignoriert. Verarbeitet werden alle Auftragspositionen mit diesem BundleOrderlineRef.
  5. Aktualisiert werden nur Auftragspositionen, die alle folgenden Bedingungen erfüllen:
    • ihr aktueller Status ist kein Endstatus in OrderStates (FinalState = 'Y')
    • sie liegen in keiner Box (boxitems)
    • sie stehen auf keiner Rechnungsposition (Invlines)
  6. Die ausgewählten Auftragspositionen erhalten den neuen Status, UpdateEmp = 'API' und das aktuelle Datum als UpdateDate. Die zugehörigen Bundle-Positionen werden ebenso aktualisiert.
  7. Bei Erfolg wird eine Zeile mit SuccessfulMessage geliefert. Der Text hängt davon ab, ob eine einzelne Auftragsposition oder ein Bundle storniert wurde.

Ist Status weder STO noch NLB oder erfüllt keine Auftragsposition die Bedingungen, wird eine Zeile mit ErrorMessage geliefert.

Hinweise

  • Die Meldung ONLY Status STO or NLB Allowed wird auch geliefert, wenn der Status gültig ist, aber keine Auftragsposition die Bedingungen erfüllt. Das ist der Fall, wenn der Schlüssel nicht existiert oder alle Positionen final, verpackt oder berechnet sind. Der Text ist in diesem Fall irreführend.
  • Bei Bundles werden nur die passenden Auftragspositionen aktualisiert. Die Bundle-Position selbst erhält den neuen Status trotzdem, sobald mindestens eine ihrer Positionen passt. Verpackte, berechnete oder finale Positionen behalten ihren bisherigen Status.
  • Erfolgs- und Fehlermeldung kommen in unterschiedlich benannten Spalten (ErrorMessage bzw. SuccessfulMessage). Clients sollten prüfen, welche Spalte vorhanden ist.
  • Die Prüfungen lesen mit NOLOCK. Die beiden Updates laufen ohne explizite Transaktion.
  • Der Rückgabewert der Prozedur (0/1) ist nicht Teil der Ergebniszeilen.
  • Der Statuswert wird so geschrieben, wie er übergeben wurde. Der Vergleich mit STO/NLB hängt von der Collation der Datenbank ab.

Parameter

Parameter Typ Standardwert Beschreibung
OrderlineKey
int NULL

Schlüssel der zu stornierenden Auftragsposition. 0 gilt als nicht übergeben. Gehört die Position zu einem Bundle, wird das gesamte Bundle verarbeitet.

Beispiel: 123456

Status
varchar(3)
string
STO

Neuer Status für die Auftragspositionen. Leer oder NULL bedeutet STO.

Erlaubte Werte

  • STO – Storniert
  • NLB – Nicht lieferbar

Beispiel: STO

BundleOrderlineKey
int NULL

Schlüssel der Bundle-Position, deren Auftragspositionen storniert werden. Ist er gesetzt, wird OrderlineKey ignoriert. 0 gilt als nicht übergeben.

Beispiel: 7890

Antwort

Result-Set 1 · Bei Fehler: kein Schlüssel übergeben, ungültiger Status oder keine passende Auftragsposition

Einzelne Zeile mit dem Fehlertext.

Spalte Typ Beschreibung
ErrorMessage varchar(43)
string

Fehlermeldung.

Result-Set 2 · Bei Erfolg (mindestens eine Auftragsposition aktualisiert)

Einzelne Zeile mit dem Bestätigungstext.

Spalte Typ Beschreibung
SuccessfulMessage varchar(70)
string

Orderline was successfully canceled bei einer einzelnen Auftragsposition oder Bundleorderline and all belonging Orderlines was successfully canceled bei einem Bundle.

Fehlermeldungen

Status Meldung Ursache
ERROR ERROR: No orderline or bundle key was sent! Weder `OrderlineKey` noch `BundleOrderlineKey` wurde übergeben (oder beide sind 0). Mindestens einen Schlüssel übergeben.
ERROR ONLY Status STO or NLB Allowed `Status` ist weder `STO` noch `NLB`. Dieselbe Meldung erscheint auch, wenn keine Auftragsposition passt: Der Schlüssel existiert nicht, oder die Positionen sind final, in einer Box verpackt oder bereits berechnet.

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:pixiCancelOrderline>
      <!-- <OrderlineKey>123456</OrderlineKey> -->
      <!-- <Status>STO</Status> -->
      <!-- <BundleOrderlineKey>7890</BundleOrderlineKey> -->
    </ns1:pixiCancelOrderline>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Orderlines · Schreiben BundleOrderlines · Schreiben OrderStates · Lesen boxitems · Lesen Invlines · Lesen
SQL-Objekt:
dbo.pipiCancelOrderline
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben