Postman-Collection
Stock Schreiben

pixiRemoveItemFromPicklist

Entfernt eine angegebene Menge eines per Barcode bestimmten Artikels eines Lagerplatzes von einer Pickliste und liefert eine Statuszeile.

Entfernt Picklistenpositionen für einen Artikel und einen Lagerplatz von einer Pickliste.

Ablauf:

  1. Quantity muss mindestens 1 sein. Bei NULL oder kleineren Werten wird ein Fehler geliefert.
  2. Der Lagerplatz wird über seinen Namen (BinName) in InvBin ermittelt.
  3. Der Artikel wird über seinen Barcode (EanUpc) ermittelt. Dabei werden die Artikelcodes mit Codetyp 1 (Barcode) verwendet.
  4. Gezählt werden die Picklistenpositionen (PLitem-Zeilen mit verknüpfter Auftragsposition) der Pickliste für diesen Lagerplatz und Artikel. Jede Position zählt als ein Stück.
  5. Wird keine Position gefunden, ermittelt der Aufruf den Grund und liefert einen passenden Fehler: Die Pickliste existiert nicht, die Pickliste hat keine Positionen von diesem Lagerplatz, oder der Artikel steht auf diesem Lagerplatz nicht auf der Pickliste.
  6. Gibt es weniger Positionen als Quantity, wird ein Fehler geliefert und nichts gelöscht.
  7. Andernfalls werden Quantity Positionen entfernt, beginnend mit den neuesten Positionen (höchster Positionsschlüssel, also vom Ende der Pickliste). Bei den betroffenen Auftragspositionen wird der Picklistenbezug (PickListNrUsed) auf NULL zurückgesetzt. Alle Pickfortschritts-Einträge für diese Pickliste, diesen Artikel und Lagerplatz werden gelöscht. Danach werden zugeordnete Kisten von nun leeren Picklisten bereinigt.
  8. Eine SUCCESS-Zeile meldet die Anzahl der gelöschten Positionen.

Hinweise

  • Das Löschen läuft in einer eigenen Transaktion oder, falls bereits eine Transaktion offen ist, in einem Savepoint. Bei einem Datenbankfehler werden die Änderungen zurückgerollt und der Fehler wird über log.InsertError protokolliert. Der Aufruf liefert in diesem Fall trotzdem SUCCESS, mit der Meldung 0 items deleted from picklist. Eine Anzahl von 0 ist daher als Fehlschlag zu werten.
  • Gelöscht werden alle Pickfortschritts-Einträge (PL_ItemPickingProgress) für Pickliste, Artikel und Lagerplatz, nicht nur die für die entfernte Menge.
  • Die Bereinigung der Kisten erfolgt über dbo.pixi_RemoveAssignedBoxesFromEmptyPicklist. Dessen Definition liegt nicht vor, die genauen Auswirkungen sind daher hier nicht dokumentiert.
  • Die Abfragen und Zählungen verwenden NOLOCK. Haben mehrere Lagerplätze denselben Namen oder mehrere Artikel denselben Barcode, ist nicht festgelegt, welcher Datensatz verwendet wird.

Parameter

Parameter Typ Standardwert Beschreibung
PickListNr
Pflicht
int –

Nummer (Schlüssel) der Pickliste (PLHkey).

Beispiel: 12345

EanUpc
Pflicht
varchar(50)
string
–

Barcode (EAN/UPC) des Artikels. Er wird mit den Artikelcodes vom Codetyp 1 (Barcode) abgeglichen.

Beispiel: 4006381333931

BinName
Pflicht
varchar(50)
string
–

Name des Lagerplatzes, von dem der Artikel gepickt wird.

Beispiel: A-01-02-03

Quantity
Pflicht
int –

Anzahl der zu entfernenden Picklistenpositionen (Stück). Muss mindestens 1 sein und darf die Anzahl der passenden Positionen nicht überschreiten.

Beispiel: 1

Antwort

Result-Set 1 · Immer; genau eine Statuszeile (Fehler oder Erfolg).

Statuszeile mit dem Ergebnis des Aufrufs.

Spalte Typ Beschreibung
Status varchar(10)
string

SUCCESS oder ERROR.

Message varchar(max)
string

Fehlertext, bei Erfolg die Anzahl gelöschter Positionen, z. B. 2 items deleted from picklist.

Fehlermeldungen

Status Meldung Ursache
ERROR Wrong quantity "{Quantity}". `Quantity` ist `NULL` oder kleiner als 1. Eine positive Menge übergeben.
ERROR Bin "{BinName}" does not exists. Es existiert kein Lagerplatz mit dem angegebenen Namen. `BinName` prüfen.
ERROR Item with barcode "{EanUpc}" does not exists. Kein Artikel hat den angegebenen Barcode (Codetyp 1). `EanUpc` prüfen.
ERROR Picklist {PickListNr} does not exists. Es wurden keine passenden Positionen gefunden und die Pickliste existiert nicht. `PickListNr` prüfen.
ERROR There are no items on picklist {PickListNr} from bin "{BinName}". Die Pickliste existiert, hat aber keine Positionen vom angegebenen Lagerplatz.
ERROR No items found on picklist {PickListNr} with barcode "{EanUpc}" from bin "{BinName}". Die Pickliste hat Positionen von diesem Lagerplatz, aber keine für den Artikel mit diesem Barcode.
ERROR There is only {Count} items on picklist {PickListNr} in the bin "{BinName}". `Quantity` ist größer als die Anzahl passender Positionen. Es wird nichts gelöscht; höchstens die gemeldete Anzahl übergeben.

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:pixiRemoveItemFromPicklist>
      <PickListNr>12345</PickListNr>
      <EanUpc>4006381333931</EanUpc>
      <BinName>A-01-02-03</BinName>
      <Quantity>1</Quantity>
    </ns1:pixiRemoveItemFromPicklist>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

InvBin · Lesen ItemCode · Lesen PLHeader · Lesen PLitem · Schreiben Orderlines · Schreiben PL_ItemPickingProgress · Schreiben
SQL-Objekt:
dbo.pipiRemoveItemFromPicklist
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben