Operation: FinishOrder
Die Anfrage ist ein Element vco:FinishOrderRequest, die Antwort ist ein Element vco:FinalOrderResponse. Das Element vco:FinishOrderRequest ist vom Typ TransactionRequestType, das Element vco:FinalOrderResponse erweitert den Typ TransactionResponseType um das Element vco:OrderHeader, sowie um das Element vco:OrderResponseLine, welches beliebig oft vorkommen kann. Das Element OrderHeader hat zwei Kind-Elemente: vco:OrderID und cbc:IssueDate.
Regel: FinishOrder
Ein veloconnect-konformer Server reagiert auf eine Anfrage FinishOrderRequest wie folgt:
Zur Anfrage wird ermittelt, ob hierzu eine Transaktionsinstanz existiert. Falls keine existiert wird der ResponseCode 420 zurückgeliefert. Falls eine solche existiert und sich diese nicht im Zustand 2 befindet, wird die Bearbeitung der Anfrage abgebrochen und der ResponseCode 430 zurückgeliefert.
Die im Transaktionskontext gespeicherte Bestellung wird an das Warenwirtschaftssystem des Verkäufers weitergeleitet und dort wird eine Bestellung ausgelöst, falls das Element IsTest im Request fehlt oder den Wert false hat. Sofern das Warenwirtschaftssystem der Bestellung eine Kennzeichnung gibt, die eine Weiterverfolgung der Bestellung erlaubt, und der Server diese Kennzeichnung in Erfahrung bringen kann, ist diese als vco:OrderID im Element vco:OrderHeader zu verwenden. Ferner ist das aktuelle Datum als Element cbc:IssueDate im Element vco:OrderHeader einzusetzen.
Falls Im Request das Element IsTest den Wert true hat, ist dafür zu sorgen, dass keine Bestellung und Lieferung ausgelöst wird.
Aus dem Transaktionskontext werden die Elemente OrderResponseLine in die Antwort eingefügt. Die Antwort wird mit ResponseCode 200 an den Client ausgeliefert. Die Transaktionsinstanz wechselt in den Zustand 100 (Endzustand)