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
| Ereignis | Systemeinstellung | Beschreibung |
| 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)
| Methode | PUT |
| Pfad (Standard) | /wms/idpcato |
| Pfad (konfigurierbar) | Systemproperty RESTCatoPath |
| Content-Type | application/json |
Request-Felder (WES → LVS)
Der ausgehende Cato enthält gegenüber der eingehenden Variante zwei zusätzliche Felder:
| Feld | Typ | Pflicht | Beschreibung |
type | Enum | Pflicht | Stornierungstyp – bei ausgehenden Nachrichten immer LE |
lenum | String | Pflicht | ID der stornierten Ladung |
tanum | String | Optional | Nicht gesetzt bei ausgehenden CATO-Nachrichten |
cancelCode | String | Optional | Maschinenlesbarer Stornierungsgrund-Code (z. B. "100") |
cancelReason | String | Optional | Stornierungsgrund 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:
| Feld | Typ | Beschreibung |
status | Enum | OK oder FAIL |
stCode | Integer | Numerischer Statuscode |
sftxt | String | Statusmeldung 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) | Standard | Beschreibung |
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)
| Property | Standard-Pfad | Beschreibung |
RESTCatoPath | idpcato | Konfiguriert 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.