Postman-Collection
Suppliers Schreiben

pixiDeleteDeliveryItem

Löscht eine oder mehrere Artikelpositionen aus einer Lieferantenlieferung, identifiziert über Positionsschlüssel, interne Artikelnummer oder EAN.

Entfernt Artikelpositionen (SDelDetail) aus einer Lieferantenlieferung (SDelHeader).

Bestimmung der Lieferung. Anzugeben ist entweder SDelHKey oder DeliveryNumber, die mit SDelHNr verglichen wird. Ist nur DeliveryNumber angegeben, wird der erste passende SDelHKey verwendet.

Bestimmung der Positionen. Anzugeben ist mindestens einer der Werte SDelDKey, ItemNrInternal oder EANUPC.

Prüfungen in dieser Reihenfolge:

  1. Eine Lieferungsreferenz oder Lieferungsnummer ist vorhanden.
  2. Eine Artikelkennung ist vorhanden.
  3. Die Lieferung ist nicht durch Picco gesperrt (LockedByPicco ist NULL).
  4. Der SDelDKey existiert in SDelDetail, sofern angegeben.
  5. Die EANUPC existiert in Items, sofern angegeben.
  6. Die ItemNrInternal existiert in Items (ItemNrInt), sofern angegeben.
  7. Die Lieferung existiert und hat nicht den Status CLS (abgeschlossen) oder INV (berechnet).

Schlägt eine Prüfung fehl, wird ein Fehler ausgelöst und nichts gelöscht.

Löschen.

  • Ist SDelDKey angegeben, wird genau diese Lieferposition gelöscht. ItemNrInternal und EANUPC werden dann für das Löschen ignoriert.
  • Andernfalls werden alle Positionen der Lieferung gelöscht, deren Artikel zu ItemNrInternal oder EANUPC passt. Dabei können mehrere Positionen entfernt werden.

Der Aufruf liefert keine Ergebnismenge.

Hinweise

  • Positionsschlüssel wird nicht gegen die Lieferung geprüft. Beim Löschen über SDelDKey prüft der Code nicht, ob die Position zur angegebenen Lieferung gehört. Status- und Sperrprüfung beziehen sich auf die übergebene Lieferung, die Position mit diesem Schlüssel wird aber auch dann gelöscht, wenn sie zu einer anderen Lieferung gehört.
  • Unbekannte Lieferungsnummer führt zu irreführendem Fehler. Passt DeliveryNumber zu keiner Lieferung, bleibt der Schlüssel NULL. Der Aufruf scheitert dann mit You cant delete items from closed or invoiced deliveries.
  • Artikelprüfungen sind global. Die Prüfungen von EANUPC und ItemNrInternal testen nur, ob der Artikel in Items existiert. Existiert der Artikel, ist aber nicht in der Lieferung enthalten, wird nichts gelöscht und kein Fehler ausgelöst.
  • Beide Kennungen werden mit ODER verknüpft. Sind ohne SDelDKey sowohl ItemNrInternal als auch EANUPC angegeben, werden Positionen gelöscht, die zu einem der beiden Werte passen.
  • Null gilt als leer. Leere Werte werden in NULL umgewandelt. Da die Integer-Parameter mit '' verglichen werden, gilt auch der Wert 0 für SDelHKey, DeliveryNumber oder SDelDKey als nicht angegeben.
  • Keine Transaktion und ungesperrtes Lesen. Die Prozedur verwendet keine explizite Transaktion. Das Sperrkennzeichen LockedByPicco wird WITH (NOLOCK) gelesen.
  • Rückgabewert. Bei Fehlern gibt die Prozedur nach RAISERROR mit Schweregrad 16 den Wert -1 zurück.

Parameter

Parameter Typ Standardwert Beschreibung
SDelHKey
int NULL

Interner Schlüssel der Lieferantenlieferung (SDelHeader.SDelHKey). Dieser Wert oder DeliveryNumber ist erforderlich.

Beispiel: 1542

DeliveryNumber
int NULL

Lieferungsnummer (SDelHeader.SDelHNr). Wird zur Ermittlung des Lieferungsschlüssels verwendet, wenn SDelHKey nicht angegeben ist.

Beispiel: 20345

SDelDKey
int NULL

Schlüssel der zu löschenden Lieferposition (SDelDetail.SDelDkey). Ist er angegeben, wird nur diese Position gelöscht.

Beispiel: 88123

ItemNrInternal
varchar(50)
string
NULL

Interne Artikelnummer (Items.ItemNrInt). Ohne SDelDKey werden alle Positionen der Lieferung mit diesem Artikel gelöscht.

Beispiel: ART-10045

EANUPC
varchar(13)
string
NULL

EAN/UPC des Artikels (Items.EANUPC). Ohne SDelDKey werden alle Positionen der Lieferung mit diesem Artikel gelöscht.

Beispiel: 4006381333931

Antwort

Dieser Call liefert kein Result-Set.

Fehlermeldungen

Status Meldung Ursache
RAISERROR You must provide Delivery referenc or Delivery number. Weder `SDelHKey` noch `DeliveryNumber` wurde angegeben (oder beide sind leer bzw. 0).
RAISERROR You must provide item EAN, SDelDKey or ItemNrInternal. Keiner der Werte `EANUPC`, `SDelDKey` oder `ItemNrInternal` wurde angegeben.
RAISERROR Delivery is locked by pico Die Lieferung ist durch Picco gesperrt (`LockedByPicco` ist gesetzt). Zuerst muss die Sperre aufgehoben werden.
RAISERROR Item with SDelDKey {SDelDKey} does not exist. Der angegebene `SDelDKey` existiert nicht in `SDelDetail`.
RAISERROR Item with EANUPC {EANUPC} does not exist. In `Items` existiert kein Artikel mit der angegebenen `EANUPC`.
RAISERROR Item with ItemNrInternal {ItemNrInternal} does not exist. In `Items` existiert kein Artikel mit der angegebenen internen Artikelnummer.
RAISERROR You cant delete items from closed or invoiced deliveries. Die Lieferung hat den Status `CLS` oder `INV`, oder die Lieferung wurde nicht gefunden (z. B. unbekannte `DeliveryNumber`).

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:pixiDeleteDeliveryItem>
      <!-- <SDelHKey>1542</SDelHKey> -->
      <!-- <DeliveryNumber>20345</DeliveryNumber> -->
      <!-- <SDelDKey>88123</SDelDKey> -->
      <!-- <ItemNrInternal>ART-10045</ItemNrInternal> -->
      <!-- <EANUPC>4006381333931</EANUPC> -->
    </ns1:pixiDeleteDeliveryItem>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

SDelHeader · Lesen SDelDetail · Schreiben Items · Lesen
SQL-Objekt:
dbo.pipiDeleteDeliveryItem
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben