Show TOC

 Change / Update Behavior Type 2

A service only updates those parts of a business object for which the incoming request contains element values. If a request does not contain a value for an optional element, the corresponding database field remains unchanged (unless changes to other element values automatically lead to changes in that field value).

Note: In the case of a list-type element every request must contain values for all list entries, as they are updated as a single entity.

When using a service, data transferred by request messages only overwrites objects in the back-end system database that are filled in the message structure, with the exception of list-type elements.

Note:

  • If optional elements are not filled in a request message, the back-end system does not change the values of the corresponding fields in the database. The only exception to this behavior is when these values are automatically updated due to changes to other data.

  • In the case of list-type elements that contain several items, the items that are left out are interpreted as a deletion entry and the corresponding rows in the database are removed. You can identify these list-type elements by checking the maxOccurs attribute, which has a value greater than 1, typically ‘unbounded’.

For example:

An order contains a bill-to address that differs from the ship-to address, and items 10, 20, 30, 40, and 50. In the request message for a change operation, item 10 is to be changed and item 30 is to be deleted. The bill-to address and the other items are to remain unchanged.

To avoid deleting items 20, 40, and 50 with the change operation, you must also specify them even if they have not been changed. If you do not specify item 30, it is deleted. The unchanged bill-to address does not have to be specified in the request message. Note that if the bill-to address were to be removed, the request message would have to contain the corresponding element (or its child elements) without value or with the value 'nil' (represented as attribute xsi:nil=true in the XML message).