SData web service for Update

This article describes how to update an existing resource with the Web API.

Reading the current state of the resource

To update a resource, you may first retrieve its current state, with a GET request on the following URL:.

http://myserver:myport/api1/x3/erp/MYENDPOINT/MYCLASS('MYKEY')?representation=MYREPR.$edit

where:

Note MYREPR must be a representation for MYCLASS. Otherwise you will get an error. A future version of the Web API will allow you to pass only MYREPR but this version (api1) requires both parameters.

Modifying the payload

If you have read the resource, you can modify the values of the payload returned by the read request.

But you can also create an update payload from scratch. You do not need to supply values for all the resource's properties in this payload, you can supply only the values that are modified; the server will consider that the missing properties did not change.

Updating the resource

Once you have modified the payload, you can update the resource with an HTTP `PUT` request to the following same URL as above:
http://myserver:myport/api1/x3/erp/MYENDPOINT/MYCLASS('MYKEY')?representation=MYREPR.$edit

Status code

If successful, the request will return an HTTP status of 200.

Otherwise it will return an HTTP error status (4xx or 5xx).

JSON result

The PUT request returns the new state of the resource after the update. This payload may be slightly different from the one you submitted because the server applied business rules defined in the class and representation before updating the database.

Concurrency control

SData 2.0 uses the HTTP ETag header to detect concurrent modifications on a resource. This feature is not available in this rollout of the Web API.

Testing interactively

As described in the overview, you can test interactively with a tool like Postman.

Links