identpro Logo
← Übersicht
Interface-Beschreibung

Ladung editieren

TORD Transaktion: EDIT
WMS REST Interface

1. Überblick

Dieser Prozess beschreibt die Änderung von Eigenschaften einer bestehenden Ladung in identpro WES über das WMS-REST-Interface. Die Transaktion wird als EDIT (Transaktionstyp tatyp = "EDIT") bezeichnet.

Im Gegensatz zur AVIS-Transaktion wird bei EDIT keine neue Ladung angelegt, sondern eine bereits vorhandene Ladung anhand ihrer Ladungs-ID (lenum) gesucht und ihre Attribute selektiv aktualisiert. Nur die im Request enthaltenen Felder werden geändert – nicht übergebene Felder bleiben unverändert. Dimensionsfelder mit dem Wert -1 werden ebenfalls nicht verändert.

2. Beteiligte Systeme

SystemRolleAktion
LVS / WMS Auftraggeber Sendet den EDIT-Request mit den zu ändernden Feldern; empfängt die Response
identpro WES Empfänger Sucht die Ladung, validiert Daten, aktualisiert geänderte Felder, antwortet mit Status
Stapler / Ressource Ausführend Sieht die aktualisierten Ladungsdaten auf seinem Terminal

3. Voraussetzungen

4. Prozessablauf

LVS / WMS
identpro WES
Stapler
1LVS stellt fest, dass sich Eigenschaften einer Ladung geändert haben (z. B. Gewicht, Sperrstatus, Materialliste).
2LVS erstellt den EDIT-Request mit lenum zur Identifikation und nur den zu ändernden Feldern.
3LVS sendet HTTP PUT an https://<HOST>:<PORT>/wms/idptords mit dem JSON-Array im Request-Body.
4identpro WES sucht die Ladung anhand lenum in der Datenbank und validiert die Eingabedaten.
5aFehlerfall: Ladung nicht gefunden oder Daten ungültig → WES gibt status: "FAIL" mit spezifischem stCode zurück. Prozess endet.
5bErfolgsfall: Alle übermittelten Felder werden aktualisiert. Nicht übergebene Felder bleiben unverändert.
6identpro WES antwortet mit status: "OK", stCode: 0 und einem Bestätigungstext.
7LVS verarbeitet die Response und bestätigt die Änderung im eigenen System.
8Stapler sieht die aktualisierten Ladungsdaten auf seinem Terminal beim nächsten Auftrag.

5. API-Aufruf

Endpunkt

MethodePUT
URLhttps://<HOST>:<PORT>/wms/idptords
Content-Typeapplication/json
Acceptapplication/json

Request-Body (Beispiel)

[
  {
    "tatyp":    "EDIT",
    "lenum":    "Ladung 1234",
    "letyp":    "Europalette",
    "length":   1200,
    "width":    800,
    "height":   1000,
    "weight":   1120,
    "lckstate": "NOT_LOCKED",
    "params": {
      "Name":     "Andreas",
      "Kollegen": "Kai und Rene"
    },
    "packageList": [
      {
        "matnum": "10070/20",
        "mattxt": "Material 1",
        "qunit":  "ST",
        "quant":  500.5,
        "weight": 999.12,
        "batch":  "Batch 1"
      }
    ]
  }
]

6. Editierbare Felder

Bei EDIT werden ausschließlich die im Request übermittelten Felder aktualisiert. Felder, die nicht gesendet werden (bzw. null oder -1 bei numerischen Feldern), bleiben unverändert.

FeldTypBeschreibung & Verhalten
lenum String Pflichtfeld. Identifiziert die zu ändernde Ladung. Wird nicht selbst geändert.
letyp String Neuer Ladungstyp. Wird nur aktualisiert, wenn nicht leer. Muss in WES konfiguriert sein.
desc String Neue Freitextbeschreibung der Ladung. Wird aktualisiert, wenn nicht null.
weight Integer Neues Gewicht in kg. Wird aktualisiert, wenn Wert > -1.
length Integer Neue Länge in mm. Wird aktualisiert, wenn Wert ≠ -1. Muss > 0 sein.
width Integer Neue Breite in mm. Wird aktualisiert, wenn Wert ≠ -1. Muss > 0 sein.
height Integer Neue Höhe in mm. Wird aktualisiert, wenn Wert ≠ -1. Muss > 0 sein.
lckstate Enum Neuer Sperrstatus. Gültige Werte: NOT_LOCKED, QA_LOCK, LOCKED, OTHERS. Wird aktualisiert, wenn nicht null.
packageList Array Bestehende Pakete werden ergänzt oder angepasst. Nur im Request enthaltene Keys werden überschrieben; übrige Pakete bleiben erhalten.
params Map Ladungseigenschaften (Key-Value-Paare). Nur übergebene Keys werden überschrieben; nicht enthaltene Keys bleiben erhalten.
Nicht unterstützt bei EDIT:
Die Felder topla (Ziel-Location) und shipment werden bei EDIT nicht ausgewertet und haben keinen Effekt. Eine Änderung der Location einer bestehenden Ladung ist über den EDIT-Prozess nicht möglich.

7. Response

Jede Antwort von identpro WES enthält die folgenden drei Felder:

FeldTypBeschreibung
statusString"OK" – Anfrage erfolgreich verarbeitet
"FAIL" – Anfrage fehlgeschlagen
stCodeIntegerSpezifischer Statuscode (s. Abschnitt 8)
sftxtStringKlartext-Beschreibung des Ergebnisses oder der Fehlerursache

Beispiel – Erfolgsfall

✓ Response OK
{
  "status": "OK",
  "stCode": 0,
  "sftxt":  "[tatyp:EDIT, deliv: null]: Load with lenum Ladung 1234 was edited successfully."
}

Beispiel – Fehlerfall (Ladung nicht gefunden)

✗ Response FAIL
{
  "status": "FAIL",
  "stCode": 102,
  "sftxt":  "Load with name 'Ladung 1234' not found!"
}

8. Statuscodes

stCodeBedeutungUrsache / Beschreibung
0 Erfolg Ladung wurde erfolgreich aktualisiert.
100 Allgemeiner Fehler Business-Logik-Fehler, z. B. ungültige Systemkonfiguration oder EntityUpdateException bei Picklist-Update.
101 Unvollständige Daten Pflichtvalidierung fehlgeschlagen, z. B. fehlende Pflichtfelder im Request.
102 Ungültige / unbekannte Daten Ladung mit angegebener lenum existiert nicht in WES.
Oder: letyp ist unbekannt.
Oder: Dimensionswert (length, width, height) ist ≤ 0.
104 Datensatz existiert bereits Namenskonflikt durch DuplicateNameException beim Speichern.
107 Material unbekannt Ein Material aus der packageList ist nicht in WES hinterlegt und die automatische Materialanlage ist deaktiviert.

9. Hinweise

Selektive Aktualisierung:
Es müssen nur die Felder übertragen werden, die tatsächlich geändert werden sollen. Numerische Felder (length, width, height) mit Wert -1 sowie null-Felder werden von identpro WES ignoriert. Dies erlaubt es, z. B. nur den Sperrstatus zu ändern, ohne alle anderen Felder zu senden.
Verhalten bei params (Ladungseigenschaften):
Bestehende Properties der Ladung werden nicht gelöscht. Nur die im Request enthaltenen Keys werden überschrieben bzw. neu angelegt. Sollen Properties entfernt werden, muss dies separat über die WES-Oberfläche erfolgen.
Verhalten bei packageList:
Bestehende Pakete werden anhand ihrer Identifikatoren (packid / suppid) abgeglichen. Bekannte Pakete werden aktualisiert, neue werden hinzugefügt. Die gesamte Paketliste der Ladung wird durch die gesendete Liste ersetzt, wenn packageList nicht leer ist.
Mehrere Ladungen in einem Request:
Der Endpoint /wms/idptords akzeptiert ein JSON-Array mit mehreren TORD-Objekten. Jedes Objekt wird einzeln verarbeitet. Tritt bei einem Objekt ein Fehler auf, schlägt der gesamte Request fehl.