Operation: UpdateOrder
Die Anfrage ist ein Element vco:UpdateOrderRequest, die Antwort ist ein Element vco:OrderResponse. Das Element vco:UpdateOrderRequest unterscheidet sich vom Element vco:CreateOrderRequest nur durch den Namen.
Regel: UpdateOrderRequest
Ein veloconnect-konformer Client vehält sich wie folgt: Zu jeder Zeile der normalisierten Bestellung, die geändert werden soll, wird ein Element OrderRequestLine gemäß Regel: OrderRequestLine(Client)erzeugt.
Regel: UpdateOrder
Ein veloconnect-konformer Server reagiert auf ein Anfrage UpdateOrderRequest 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.
Mit jedem Element OrderRequestLine wird gemäß der Regel OrderRequestLine verfahren. Hierbei werden im Transaktionskontext Elemente OrderResponseLine angelegt bzw. geändert, sowie eventuell Elemente RequestReplacement erzeugt.
Aus dem Transaktionskontext werden die Elemente OrderResponseLine in die Antwort eingefügt, sowie die im vorherigen Schritt erzeugten Elemente ReqestReplacement. Die Antwort wird mit ResponseCode 200 an den Client ausgeliefert. Die Transaktionsinstanz bleibt im Zustand 2.
Zur Verdeutlichung: Der Client übermittelt nur die Bestellzeilen, die geändert werden sollen, der Server liefert alle Zeilen der Bestellung zurück, die im Transaktionskontext gespeichert sind.
Bestellzeilen, bei denen die Menge auf 0 geändert wurde, sind aus der Bestellung zu entfernen.