Postman-Collection
Orderlines Schreiben

pixiDeleteOrderline

Löscht eine Auftragsposition (bzw. das gesamte Bundle, zu dem sie gehört) und entfernt den Auftrag, wenn keine Positionen mehr übrig sind.

Löscht die über OrderlineKey angegebene Auftragsposition innerhalb einer Transaktion.

  1. Prüfung: Die Position muss in Orderlines existieren und einen der Status HAL, ANG, STO, NLB oder FUT haben. Andernfalls wird eine ERROR-Zeile geliefert und nichts geändert.
  2. Bundle-Behandlung: Hat die Position eine BundleOrderlineRef, wird das gesamte Bundle gelöscht, nicht nur die angegebene Position.
  3. Status-Rücksetzung: Die Position (bzw. alle Positionen des Bundles) desselben Auftrags ohne BoxNr werden auf Status NEW mit UpdateEmp = API gesetzt.
  4. Löschung: Alle betroffenen Positionen im Status NEW werden vom Auftrag gelöst: OrderNr, CustRef, AddrRef, ShipAdrRef, Qty, Preise, Rabatte und ShipCost werden auf 0 gesetzt, ItemRef, ShipRef, Order_Id und BundleOrderlineRef auf NULL. Der Bundle-Kopf in BundleOrderlines wird gelöscht, sofern er den Status NEW hat. Reservierungen (Reservation) der betroffenen Positionen werden gelöscht.
  5. Leerer Auftrag: Hat der Auftrag danach keine Positionen mehr, wird der Auftragskopf samt seinen Einträgen in PL_NotReservedOrdersCheck, TagMatch und OrderHeaderAttribute gelöscht.

Der Aufruf liefert genau eine Zeile mit ReturnCode (OK oder ERROR) und einem Text in ErrorMessage. Bei Bundles nennt der Erfolgstext sowohl die angegebene Position als auch den Bundle-Schlüssel.

Hinweise

  • Alle Änderungen laufen in einer Transaktion; bei einem vom Aufruf abgefangenen Fehler wird sie zurückgerollt und eine ERROR-Zeile geliefert.
  • Die Positionszeilen werden nicht physisch gelöscht. Sie werden zurückgesetzt (OrderNr = 0 usw.); laut Code-Kommentar entfernt ein Job sie über Nacht. Dieser Job ist nicht Teil des Aufrufs.
  • Die Statusprüfung verwendet NOLOCK und kann daher nicht festgeschriebene Daten lesen.
  • Trigger auf Orderlines und Reservation werden während Update/Delete über CONTEXT_INFO unterdrückt.
  • Nur die angegebene Position wird auf einen zulässigen Status geprüft. Bei Bundles werden alle übrigen Komponenten ohne BoxNr unabhängig von ihrem Status auf NEW gesetzt und gelöscht. Positionen mit gesetzter BoxNr behalten ihren Status und werden nicht gelöscht.
  • Die aufgerufenen Unterprozeduren fangen eigene Fehler ab und protokollieren sie über log.InsertError, ohne sie weiterzugeben. Je nach Transaktionszustand erscheint ein Fehler darin als Transaktionszähler-Fehler in der ERROR-Zeile, oder der Aufruf meldet OK, obwohl der Teilschritt auf seinen Savepoint zurückgerollt wurde.

Parameter

Parameter Typ Standardwert Beschreibung
OrderlineKey
Pflicht
int –

Schlüssel der zu löschenden Auftragsposition. Sie muss den Status HAL, ANG, STO, NLB oder FUT haben. Gehört sie zu einem Bundle, wird das gesamte Bundle gelöscht.

Beispiel: 123456

Antwort

Result-Set 1 · Immer; eine Zeile mit ReturnCode = OK bei Erfolg oder ERROR bei einem Fehler.

Statuszeile des Aufrufs.

Spalte Typ Beschreibung
ReturnCode varchar(5)
string

OK, wenn die Position (bzw. das Bundle) gelöscht wurde, sonst ERROR.

ErrorMessage
Kann leer sein
nvarchar(4000)
string

Erfolgstext (nennt das Bundle, wenn ein ganzes Bundle gelöscht wurde) oder die SQL-Fehlermeldung.

Fehlermeldungen

Status Meldung Ursache
ERROR Orderline with OrderlineKey {OrderlineKey} does not exist or doesn't have the right status (HAL, ANG, STO, NLB, FUT). Es existiert keine Position mit diesem Schlüssel, oder ihr Status ist nicht `HAL`, `ANG`, `STO`, `NLB` oder `FUT`. Schlüssel und aktuellen Status der Position prüfen.
ERROR {ERROR_MESSAGE()} Jeder andere SQL-Fehler während der Verarbeitung (z. B. ein Transaktionszähler-Fehler nach einer fehlschlagenden Unterprozedur). Die Transaktion wird zurückgerollt.

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:pixiDeleteOrderline>
      <OrderlineKey>123456</OrderlineKey>
    </ns1:pixiDeleteOrderline>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Orderlines · Schreiben BundleOrderlines · Schreiben Reservation · Schreiben OrderHeader · Schreiben PL_NotReservedOrdersCheck · Schreiben TagMatch · Schreiben OrderHeaderAttribute · Schreiben
SQL-Objekt:
dbo.pipiDeleteOrderline
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben