Postman-Collection
Orders Schreiben

pixiSetBoxRangeForPicklist

Setzt oder ändert den Kistenbereich (erste und letzte Kistennummer) einer Pickliste nach Prüfung von Kisten, Überschneidungen und Kistenanzahl.

Weist der Pickliste Picklist den Kistenbereich BoxNrFrom–BoxNrTo zu.

Die Eingaben werden in dieser Reihenfolge geprüft; beim ersten Fehler wird eine Zeile mit Status = Error und Message zurückgegeben:

  1. Die Pickliste muss in PLHeader existieren.
  2. BoxNrFrom muss als Kiste in boxes existieren.
  3. BoxNrTo muss als Kiste in boxes existieren.
  4. BoxNrTo darf nicht kleiner als BoxNrFrom sein.
  5. Ist die Einstellung Picklist_Creation_Allow_BoxRange_OverLap gleich 0, darf keine Kistennummer des angeforderten Bereichs im Kistenbereich einer anderen Pickliste liegen.
  6. Die Anzahl der verschiedenen Aufträge auf der Pickliste (über Picklistenpositionen und Auftragspositionen) darf die Anzahl freier Kisten im Bereich nicht übersteigen. Eine Kiste gilt als frei, wenn BOrderNr NULL oder 0 ist.

Sind alle Prüfungen erfolgreich, wird:

  • jede bestehende Kistenzuordnung der Pickliste aus pixi.PicklistBox gelöscht,
  • der neue Bereich in PLHeader.PLHfromBox / PLHeader.PLHtoBox geschrieben,
  • eine Zeile mit Picklistenschlüssel, neuem Bereich und Statustext zurückgegeben. Der Text lautet set, wenn die Pickliste vorher keinen vollständigen Bereich hatte, sonst changed.

Hinweise

  • Löschen und Aktualisieren laufen in einer Transaktion. Läuft der Aufruf bereits in einer offenen Transaktion, wird stattdessen ein Savepoint gesetzt und die äußere Transaktion nicht committet.
  • Bei einem unerwarteten SQL-Fehler wird die Transaktion (bzw. der Savepoint) zurückgerollt. Es wird eine Zeile mit Status = Error und dem SQL-Fehlertext zurückgegeben, und der Fehler wird über log.InsertError protokolliert (Definition nicht beigefügt).
  • Die Prüfabfragen verwenden NOLOCK, gleichzeitige Änderungen werden daher eventuell nicht erkannt.
  • Die Überschneidungsprüfung läuft nur, wenn der Einstellungswert 0 ist. Fehlt die Einstellung (NULL) oder hat sie einen anderen Wert, sind überlappende Bereiche erlaubt. Die Prüfung nutzt die Hilfstabelle Numbers; Kistennummern außerhalb ihres Bereichs werden nicht geprüft.
  • Kisten, die bereits einem Auftrag zugeordnet sind (BOrderNr gesetzt), gelten als belegt, auch wenn der Auftrag zur selben Pickliste gehört.
  • Eine frühere Prüfung, die Änderungen verhinderte, sobald Artikel der Pickliste bereits in Kisten gelegt wurden, wurde aus Gründen der Abwärtskompatibilität entfernt. Der Bereich kann daher auch danach geändert werden; bestehende Zuordnungen in pixi.PicklistBox werden in jedem Fall gelöscht.
  • Der Erfolgs-Statustext enthält die Schreibweise succesfully genau so, wie sie vom Code erzeugt wird.

Parameter

Parameter Typ Standardwert Beschreibung
Picklist
Pflicht
int –

Schlüssel der Pickliste (PLHeader.PLHkey), deren Kistenbereich gesetzt wird.

Beispiel: 4711

BoxNrFrom
Pflicht
int –

Erste Kistennummer des Bereichs. Muss in boxes existieren.

Beispiel: 1

BoxNrTo
Pflicht
int –

Letzte Kistennummer des Bereichs. Muss in boxes existieren und darf nicht kleiner als BoxNrFrom sein.

Beispiel: 20

Antwort

Result-Set 1 · Wenn eine Prüfung fehlschlägt oder ein unerwarteter SQL-Fehler auftritt

Fehlerzeile mit dem Grund, warum der Kistenbereich nicht gesetzt wurde.

Spalte Typ Beschreibung
Status varchar(5)
string

Immer Error.

Message
Kann leer sein
nvarchar(4000)
string

Fehlertext der Prüfung oder SQL-Fehlermeldung.

Result-Set 2 · Bei Erfolg

Die Pickliste mit ihrem neuen Kistenbereich und einem Statustext.

Spalte Typ Beschreibung
Picklist int

Picklistenschlüssel (PLHeader.PLHkey).

BoxNrFrom
Kann leer sein
int

Neue erste Kistennummer (PLHeader.PLHfromBox).

BoxNrTo
Kann leer sein
int

Neue letzte Kistennummer (PLHeader.PLHtoBox).

Status varchar(70)
string

BoxRange for picklist(<id>) was succesfully set, wenn die Pickliste vorher keinen vollständigen Bereich hatte, sonst ... was succesfully changed.

Fehlermeldungen

Status Meldung Ursache
Error Picklist ({Picklist}) does not exist. Es existiert keine Pickliste mit dem angegebenen Schlüssel in `PLHeader` oder `Picklist` ist NULL. Einen vorhandenen Picklistenschlüssel übergeben.
Error Box number ({BoxNrFrom}) provided by BoxNrFrom parameter does not exist. Die Kiste `BoxNrFrom` existiert nicht in `boxes` oder ist NULL.
Error Box number ({BoxNrTo}) provided by BoxNrTo parameter does not exist. Die Kiste `BoxNrTo` existiert nicht in `boxes` oder ist NULL.
Error Parameter BoxNrTo ({BoxNrTo}) is smaller than parameter BoxNrFrom ({BoxNrFrom}). Der Bereich ist vertauscht. `BoxNrTo` >= `BoxNrFrom` übergeben.
Error BoxRange for picklist could not be changed since some boxes in the range are already reserved for another picklist. Überlappende Bereiche sind nicht erlaubt (Einstellung `Picklist_Creation_Allow_BoxRange_OverLap` = 0) und mindestens eine Kiste im Bereich gehört zum Bereich einer anderen Pickliste. Einen freien Bereich wählen.
Error There are more orders on the picklist than available boxes in the selected box range. Die Anzahl der verschiedenen Aufträge auf der Pickliste übersteigt die Anzahl der Kisten im Bereich ohne zugeordneten Auftrag. Den Bereich vergrößern oder Kisten freigeben.
Error {ERROR_MESSAGE()} Beim Löschen der Kistenzuordnungen oder beim Aktualisieren der Pickliste trat ein unerwarteter SQL-Fehler auf. Die Änderungen werden zurückgerollt und der Fehler wird protokolliert.

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:pixiSetBoxRangeForPicklist>
      <Picklist>4711</Picklist>
      <BoxNrFrom>1</BoxNrFrom>
      <BoxNrTo>20</BoxNrTo>
    </ns1:pixiSetBoxRangeForPicklist>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

PLHeader · Schreiben PicklistBox · Schreiben boxes · Lesen Numbers · Lesen PLitem · Lesen Orderlines · Lesen Settings · Lesen
SQL-Objekt:
dbo.pipiSetBoxRangeForPicklist
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben