Better to use the Update Object operation in pair with the “Get Object” method, which obtains the original Object with the right structure and the actual Timestamp (the marker of the current state).
In a highly concurrent environment where many users and 3-rd Party applications are simultaneously working on and modifying the same data could lead to data saving conflicts.
Specify TimeStamp: include the TimeStamp attribute to the Request Body with the value received via the Service operation Objects.Get.
Compare values: the System checks the TimeStamp value and rejects the Update transaction if the values in the Database and in the Update request differ. In this case, the Service operation returns Error 500. For more details see the example below.
For cases when tracking of concurrency is not important or there is no other agent which modifies the data, the Update operation can be executed without checking Concurrency. For that, just do not include the TimeStamp in the Request Body.
The Server throws the Concurrency exception in case the updated fragment has been updated between Objects.Get operation and Objects.Update.
For the single fragments, the operation updates only the attributes mentioned in the Request body (partial object update), and do not touch attributes which not part of the Request. But for multi-fragments the operation fulfills only full update, what means the request should include all present fragment with required modifications. As far as operations with the Multi-Fragments usually not needed, the default Update operation fully ignores the changes in the Multi-Fragments. The Multi-Fragments update functionality needs to be activated on demand, using the Query String parameter "?full=true".
The Update operation in mode Full update the only multi-fragment Data Definitions which are mentioned in the Request. If the Request does not have even property which keeps the Multi-Fragments objects, in such case, this Multi-Fragments are not effected on the update.
Try to avoid using Update Full operation until the operation with multi-fragments is required.
Use operation Objects.Get?full=true to obtain the whole original object from Server and use it for preparing Full Update operation.
"ID" required attribute with the Id of the updated object.
Reset the attribute value: in case you want to reset the attribute value add this attribute to JSON object with the value null.
The server does not return any data.
500 Concurrency. The object you want to update has been updated by another process!
The example demonstrates how the changing of the "Impact" or "Urgency" triggers the Business logic which recalculates the Incident Priority and other attributes.
Journal record is the multi-fragment (SPSActivityClassUnitOfWork) of the Incident Configuration Item.