I'll start with your last question. You are right that in Mendix 2.4, you cannot use objects as parameters for your web service microflows. This functionality will be added in Mendix 2.5.
Until that time, you could consider splitting up your web service operation (published microflow) in two separate operations: one for updating an order, and one for updating an order line.
The UpdateOrder
operation would get parameters such as OrderID
, OrderStatus
, Forwarder
etc. This microflow would update only fields of the order.
The UpdateOrderLine
operation would get the OrderID
and linenumber
as parameters to identifiy which order line in which order is meant, as well as parameters for updating the order line (DeliveredQuantity
). This microflow would update the fields of the order line, and could also check whether all lines of the order are now delivered and update the order status accordingly.
Another option to circumvent the object-as-parameter problem is to offer a web service operation called, e.g., 'UpdateOrder' that takes an order ID as a parameter, and that calls a web service on the third party system to retrieve the updated information for that order ID.