identpro Logo
← Übersicht
WMS INTERFACE – STORNIERUNG

Fahrauftrag und / oder
Ladung stornieren

Bidirektionale Schnittstelle zur Stornierung von Fahraufträgen und Ladungen (CATO)
LVS ↔ WES · idpcato
TALETALE
LVS → WES: PUT /api/idpcato
WES → LVS: PUT /wms/idpcato (konfigurierbar via RESTCatoPath)
Version: 7.52

1. Übersicht

CATO (Cancel Transport Order) ist eine bidirektionale Schnittstelle zur Stornierung von Fahraufträgen und Ladungen. Beide Richtungen verwenden dieselbe Nachrichtenstruktur mit dem Feld type, das den Stornierungsumfang bestimmt.

Bidirektional:
LVS → WES: Das LVS weist WES an, einen Auftrag oder eine Ladung zu stornieren.
WES → LVS: WES informiert das LVS über eine Ladungsstornierung, z. B. nach einem Ladungskonflikt.

2. Stornierungstypen

TA
Fahrauftrag stornieren
Storniert einen einzelnen Fahrauftrag anhand seiner tanum. Feld lenum wird nicht benötigt.
LE
Ladung stornieren
Storniert eine Ladung anhand ihrer lenum. Voraussetzung: kein aktiver Auftrag (Status OPEN oder ASSIGNED) auf der Ladung.
TALE
Ladung inkl. Aufträge stornieren
Storniert eine Ladung und alle zugehörigen offenen Aufträge. Nur lenum erforderlich.

3. Endpunkte im Überblick

RichtungMethodePfadBetreiber
LVS → WES PUT /api/idpcato Endpunkt liegt in WES; LVS sendet die Anfrage
LVS → WES (Batch) PUT /api/idpcato Wie oben, aber Body ist eine JSON-Liste
WES → LVS PUT /wms/idpcato Endpunkt liegt im LVS; WES sendet die Anfrage

4. Richtung LVS → WES

► LVS → WES

Das LVS sendet eine CATO-Nachricht, um Aufträge oder Ladungen in WES zu stornieren. Der Aufruf kann als Einzelnachricht oder als Batch (Liste) erfolgen.

Endpunkt (WES-seitig)

MethodePUT
Pfad/api/idpcato
Content-Typeapplication/json
Body (Einzel)JSON-Objekt Cato
Body (Batch)JSON-Array [Cato, ...]

Request-Felder

FeldTypPflichtBeschreibung
typeEnumPflichtStornierungstyp: TA, LE oder TALE
tanumStringPflicht bei TAID des zu stornierenden Fahrauftrags. Pflicht bei type=TA.
lenumStringPflicht bei LE/TALEID der zu stornierenden Ladung. Pflicht bei type=LE und type=TALE.
Hinweis: Das eingehende CATO-Objekt (LVS → WES) enthält keine cancelCode- oder cancelReason-Felder. Diese Felder existieren ausschließlich in der ausgehenden Richtung (WES → LVS).

Antwort (WES → LVS)

FeldTypBeschreibung
statusEnumOK oder FAIL
stCodeIntegerNumerischer Statuscode (s. Tabelle unten)
sftxtStringStatusmeldung im Klartext

Statuscodes

CodeKonstanteStatusBedeutung
0ACCEPTEDOKStornierung erfolgreich
1TA_ALREADY_COMPLETEDFAILAuftrag war bereits abgeschlossen oder storniert
100ERRFAILAllgemeiner Verarbeitungsfehler
101DATA_INCOMPLETEFAILPflichtfeld fehlt (type, tanum oder lenum leer)
102DATA_INVALID_OR_UNKNOWNFAILUnbekannte tanum oder lenum
103LOAD_IS_LOCKEDFAILLadung ist gesperrt und kann derzeit nicht storniert werden
110CATO_ALREADY_ACTIVEFAILStornierung nicht möglich – Auftrag oder Ladung ist aktuell in Bearbeitung
114NO_ORDER_FOUNDFAILKein passender Fahrauftrag zur angegebenen tanum gefunden

Beispiel – Erfolgreiche Stornierung

{
  "status": "OK",
  "stCode": 0,
  "sftxt":  "Accepted"
}

Beispiel – Fehlerfall (Auftrag in Bearbeitung)

{
  "status": "FAIL",
  "stCode": 110,
  "sftxt":  "Order is already in progress"
}

Beispiel – Fahrauftrag stornieren (TA)

{
  "type":  "TA",
  "tanum": "TA-0042"
}

Beispiel – Ladung inkl. Aufträge stornieren (TALE)

{
  "type":  "TALE",
  "lenum": "LE-0099"
}

Beispiel – Batch (mehrere Stornierungen)

[
  { "type": "TA",   "tanum": "TA-0042" },
  { "type": "TALE", "lenum": "LE-0099" }
]

5. Verarbeitungslogik in WES

TA – Fahrauftrag stornieren
1WES prüft, ob ein Fahrauftrag oder Materialfluss mit der angegebenen tanum existiert.
Unbekannte tanum: Antwort mit stCode=102 (DATA_INVALID_OR_UNKNOWN).
2WES prüft den Auftragsstatus. Ist der Auftrag bereits COMPLETED oder CANCELED: Antwort mit stCode=1.
3Ist der Auftrag im Status LOADED (Ladung aufgenommen): Stornierung nur möglich, wenn die Systemeinstellung AllowCancellationOfInProgressOrdersWithCato aktiviert ist.
Auftrag in Bearbeitung und Stornierung nicht erlaubt: Antwort mit stCode=110 (CATO_ALREADY_ACTIVE).
WES storniert den Auftrag mit dem Stornierungsgrund „Canceled by ERP system". Antwort mit stCode=0.
LE – Ladung stornieren
1WES prüft, ob eine Ladung mit der angegebenen lenum existiert.
Unbekannte lenum: Antwort mit stCode=102.
2WES prüft, ob ein aktiver Auftrag (Status OPEN oder ASSIGNED) auf der Ladung liegt.
Aktiver Auftrag vorhanden: Antwort mit stCode=110. Zuerst den Auftrag per TA stornieren oder TALE verwenden.
Ladungsstatus wird auf CANCELED gesetzt. Ist die Einstellung ClearForkWhenLoadInTransferIsCanceled aktiv und die Ladung aktuell im Transfer: WES sendet zusätzlich einen ClearFork-Befehl an den Stapler. Antwort mit stCode=0.
TALE – Ladung inkl. aller offenen Aufträge stornieren
1WES ermittelt alle Fahraufträge, die der Ladung zugeordnet sind.
2Ist einer der Aufträge im Status LOADED (Ladung bereits aufgenommen): Stornierung wird abgelehnt – stCode=110.
3Alle stornierbaren Aufträge werden nacheinander mit dem TA-Prozess storniert.
Anschließend wird die Ladung per LE-Prozess storniert. Antwort mit stCode=0.

6. Richtung WES → LVS

► WES → LVS

WES sendet CATO an das LVS, wenn eine Ladung intern storniert wird – also nicht auf Anweisung des LVS, sondern durch ein WES-internes Ereignis. Aktuell wird dabei ausschließlich type=LE verwendet.

Auslöser für ausgehende CATO-Nachrichten

EreignisSystemeinstellungBeschreibung
Ladungskonflikt LoadCancelMsgSendingAfterLoadConflictEnabled WES erkennt einen Ladungskonflikt (z. B. zwei Ladungen am selben Ort). Die betroffene Ladung wird storniert und das LVS informiert.
Stornierung per Wizard LoadCancelMsgSendingByWizardEnabled Ein Operator storniert eine Ladung über die WES-Oberfläche (Wizard). Das LVS wird über die Stornierung informiert.
Konfigurationsabhängig:
Der Versand von CATO in Richtung LVS ist für jeden Auslöser separat konfigurierbar. Ist die jeweilige Systemeinstellung deaktiviert, sendet WES keine Nachricht.

Endpunkt (LVS-seitig)

MethodePUT
Pfad (Standard)/wms/idpcato
Pfad (konfigurierbar)Systemproperty RESTCatoPath
Content-Typeapplication/json

Request-Felder (WES → LVS)

Der ausgehende Cato enthält gegenüber der eingehenden Variante zwei zusätzliche Felder:

FeldTypPflichtBeschreibung
typeEnumPflichtStornierungstyp – bei ausgehenden Nachrichten immer LE
lenumStringPflichtID der stornierten Ladung
tanumStringOptionalNicht gesetzt bei ausgehenden CATO-Nachrichten
cancelCodeStringOptionalMaschinenlesbarer Stornierungsgrund-Code (z. B. "100")
cancelReasonStringOptionalStornierungsgrund im Klartext (z. B. „Ladungskonflikt")

Beispiel – WES sendet Ladungsstornierung nach Konflikt

{
  "type":         "LE",
  "lenum":        "LE-0099",
  "cancelCode":   "100",
  "cancelReason": "Ladungskonflikt erkannt"
}

Antwort des LVS

Das LVS antwortet mit dem Standard-Response-Objekt:

FeldTypBeschreibung
statusEnumOK oder FAIL
stCodeIntegerNumerischer Statuscode
sftxtStringStatusmeldung im Klartext

Beispiel – LVS bestätigt CATO-Nachricht

{
  "status": "OK",
  "stCode": 0
}

Beispiel – LVS meldet Fehler

{
  "status": "FAIL",
  "stCode": 1,
  "sftxt":  "Load already canceled"
}
Fehlerbehandlung bei Nicht-Erreichbarkeit:
Antwortet das LVS nicht oder mit einem Fehler, protokolliert WES den Fehler intern. Die Stornierung in WES selbst bleibt davon unberührt – das LVS-Callback ist best-effort.

7. Konfiguration

Systemeinstellungen (WES-seitig)

Systemeinstellung (Property-Name)StandardBeschreibung
AllowCancellationOfInProgressOrdersWithCato false Erlaubt die Stornierung von Aufträgen im Status LOADED (Ladung bereits aufgenommen). Standardmäßig werden solche Aufträge abgelehnt (stCode=110).
ClearForkWhenLoadInTransferIsCanceled false Sendet beim Stornieren einer Ladung, die sich gerade im Transfer befindet, automatisch einen ClearFork-Befehl an den zugeordneten Stapler.
LoadCancelMsgSendingAfterLoadConflictEnabled false Aktiviert den Versand von CATO (WES → LVS) nach einem Ladungskonflikt.
LoadCancelMsgSendingByWizardEnabled false Aktiviert den Versand von CATO (WES → LVS), wenn eine Ladung per Operator-Wizard storniert wird.

REST-Konfiguration (WES → LVS)

PropertyStandard-PfadBeschreibung
RESTCatoPathidpcatoKonfiguriert den LVS-seitigen Endpfad für ausgehende CATO-Nachrichten. Kombiniert mit der Basis-URL ergibt sich z. B. https://lvs-host/wms/idpcato.

8. Hinweise zur Integration

TALE bevorzugen
Soll eine Ladung mit ihren offenen Aufträgen storniert werden, sollte grundsätzlich TALE verwendet werden. Das ist robuster als zwei separate Aufrufe (TA + LE), weil WES die Reihenfolge intern korrekt verwaltet.
stCode=1 ist kein Fehler
stCode=1 (TA_ALREADY_COMPLETED) bedeutet lediglich, dass der Auftrag bereits abgeschlossen oder storniert war – er ist also nicht mehr aktiv. Das LVS kann diesen Code in den meisten Fällen als erfolgreich behandelt interpretieren.
Batch-Verarbeitung
Beim Batch-Aufruf (JSON-Array) wird jede Stornierung einzeln verarbeitet. Ein Fehler bei einer Position bricht die anderen nicht ab. Die Antwort ist eine Liste von CatoResponse-Objekten mit je einem cato- und einem response-Feld.
Aufträge in Bearbeitung
Aufträge, bei denen der Fahrer die Ladung bereits aufgenommen hat (Status LOADED), können standardmäßig nicht storniert werden (stCode=110). Die Einstellung AllowCancellationOfInProgressOrdersWithCato hebt diese Einschränkung auf.