A typical use case for the Partner Directory is that an application using SAP Cloud Integration has its own configuration application where a configurator user of a partner can enter the partner specific information, like partner ID, HTTP address, authentication method, XSL transformation, XML schemas, used IDs for the receivers, …. This partner specific information is first stored in the configuration application. After the configurator of the partner has successfully entered all relevant information, then a single transactional call replicates the information specific for this partner to the Partner Directory. See the following diagram.
Use Case: Mass Configuration
The transactional behavior of the call ensures that all entries belonging to a specific partner are updated/created/deleted consistently in one call.
The transactional call is done via OData using the OData batch functionality which defines an OData ChangeSet request.
In such a ChangeSet request you can group several create/update/delete requests for the entity types
Restrictions:
You can find further information about OData batch in http://www.odata.org/documentation/odata-version-2-0/batch-processing/.
We recommend to use an OData2 client library to create the OData batch requests. For example, you can use Olingo: https://olingo.apache.org/doc/odata2/tutorials/batchClientApi.html.
Note that for ChangeSet requests, you need to set the X-CSRF-Token header and use session cookies, as described in the chapter “Authentication” of OData API.
The following snippet shows an example HTTP batch request.
POST /api/v1/$batch HTTP/1.1 Host: <tmn> Accept: application/json Content-Type: multipart/mixed; boundary=batch_c64b1345-e553-4023-b4a8-a23d818acc9b Cookie: <cookies for CSRF session> X-CSRF-Token: XXXXXXXXX --batch_c64b1345-e553-4023-b4a8-a23d818acc9b Content-Type: multipart/mixed; boundary=changeset_0ecb83cf-fd1f-4e6e-bb30-62a659eeb3e2 --changeset_0ecb83cf-fd1f-4e6e-bb30-62a659eeb3e2 Content-Type: application/http Content-Transfer-Encoding: binary POST StringParameters HTTP/1.1 Content-Length: 44 Accept: application/json Content-Type: application/json {"Pid":"partner1","Id":"sp1","Value":"sp1v"} --changeset_0ecb83cf-fd1f-4e6e-bb30-62a659eeb3e2 Content-Type: application/http Content-Transfer-Encoding: binary PUT BinaryParameters(Pid='partner1',Id='bp1') HTTP/1.1 Content-Length: 48 Accept: application/json Content-Type: application/json {"ContentType":"xsl","Value":"YnAxdl9jaGFuZ2Vk"} --changeset_0ecb83cf-fd1f-4e6e-bb30-62a659eeb3e2 Content-Type: application/http Content-Transfer-Encoding: binary PUT AlternativePartners(Hexagency='6167656E637931',Hexscheme='736368656D6531',Hexid='696431') HTTP/1.1 Content-Length: 26 Accept: application/json Content-Type: application/json {"Pid":"partner1"} --changeset_0ecb83cf-fd1f-4e6e-bb30-62a659eeb3e2 Content-Type: application/http Content-Transfer-Encoding: binary POST AuthorizedUsers HTTP/1.1 Content-Length: 33 Accept: application/json Content-Type: application/json {"User":"user3","Pid":"partner1"} --changeset_0ecb83cf-fd1f-4e6e-bb30-62a659eeb3e2 Content-Type: application/http Content-Transfer-Encoding: binary DELETE AuthorizedUsers('user1') HTTP/1.1 Accept: application/json Content-Type: application/json --changeset_0ecb83cf-fd1f-4e6e-bb30-62a659eeb3e2-- --batch_c64b1345-e553-4023-b4a8-a23d818acc9b--
HTTP OData Batch Request Example
It is possible to delete all entries belonging to a certain partner in the Partner Directory via one call. See Requests for Deleting all Entities of a Partner.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
20 | |
18 | |
11 | |
9 | |
8 | |
8 | |
8 | |
7 | |
6 | |
5 |