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:
myserver:myportis your server name and port number. For examplelocalhost:8124if the SAFE X3 web server is installed locally.MYENDPOINTis the name of your Sage X3 endpoint.MYCLASSis the name of the class that you want to query. It may be a standard class likeBPCUSTOMERor a custom class that you have implemented (see the class dictionaries documentation).MYKEYis the value of the primary key of the resource. If the key is composite, the components are separated by a tilde (~).MYREPRis the name of the representation that you want to query. It may be a standard representation likeBPCUSTOMERor a custom one (see the representation dictionaries documentation).
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.$editStatus 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.