Monday, December 23, 2024

Batch API for D365FO

Using Batch API for D365FO 
        


  • You can send requests for multiple operations in a single HTTP request.
  • Batch requests can include up to 1000 individual requests but cannot contain other batch requests.

Without Change Sets :

  • If you send 10 requests in a batch and 2 fail, the remaining requests will not be stopped and will continue to be processed.

Using Change Sets :

  • In addition to individual requests, a batch request can include change sets:
  • When multiple operations are included in a change set, if any one operation fails, all completed operations are rolled back.


1. Batch URL for request.

{{resource}}/data/$batch

2. Include the following keys and values in the header:

    Content-Type : multipart/mixed; boundary="batch_22975cad-7f57-410d-be15-6363209367ea"


3. Batch number: Must be unique for the entire request. 

        If you use the same batch ID for multiple requests, there will be no issue. However, if you change it, make sure to cross-check it once.

batch_22975cad-7f57-410d-be15-6363209367ea

4. Content-ID: Must be unique for each step.

5. While starting the batch or change set use -- as prefix.

6. While ending use -- as suffix.

 

7. The 200 OK response indicates the status of the entire batch request. To find the response for each individual request, you need to review the responses within the batch response separately. 

Success Response:                                                                        Failed Response:

Success ResponseFailed Response

8. The below part is considered as one request.


Batch API for Insert

    This example will insert a vendor group and a customer group using the Batch API. 
Request : 

--batch_22975cad-7f57-410d-be15-6363209367ea
Content-Type: multipart/mixed; boundary="changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a"

--changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 1

POST VendorGroups?cross-company=true HTTP/1.1
Content-Type: application/json; type=entry

{
    "dataAreaId": "USMF",
"VendorGroupId": "Test01", "Description": "Test 1" } --changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a Content-Type: application/http Content-Transfer-Encoding: binary
Content-ID: 2 POST VendorGroups?cross-company=true HTTP/1.1 Content-Type: application/json; type=entry { "dataAreaId": "USMF",
"VendorGroupId": "Test02", "Description": "Test 2" } --changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a Content-Type: application/http Content-Transfer-Encoding: binary
Content-ID: 3 POST CustomerGroups?cross-company=true HTTP/1.1 Content-Type: application/json; type=entry { "dataAreaId": "USMF", "CustomerGroupId": "TestC01", "Description": "Test 1" } --changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a-- --batch_22975cad-7f57-410d-be15-6363209367ea--


Request:
       1. Added Vend group record and customer group record.




Response:







Batch API for Update

--batch_22975cad-7f57-410d-be15-6363209367ea
Content-Type: multipart/mixed; boundary="changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a"

--changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 1

PATCH VendorGroups(dataAreaId='USMF',VendorGroupId= 'Test01')?Cross-company=true HTTP/1.1
Content-Type: application/json; type=entry { "Description": "Test 1111" } --changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a Content-Type: application/http Content-Transfer-Encoding: binary Content-ID: 2 PATCH CustomerGroups(dataAreaId='USMF',CustomerGroupId= 'TestC01')?Cross-company=true HTTP/1.1
Content-Type: application/json; type=entry { "Description": "Test C1111" } --changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a-- --batch_22975cad-7f57-410d-be15-6363209367ea--

Response:

Batch API for Delete

--batch_22975cad-7f57-410d-be15-6363209367ea
Content-Type: multipart/mixed; boundary="changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a"

--changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 1

DELETE VendorGroups(dataAreaId='USMF',VendorGroupId= 'Test01')?Cross-company=true HTTP/1.1
Content-Type: application/json; type=entry --changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a Content-Type: application/http Content-Transfer-Encoding: binary Content-ID: 2 DELETE CustomerGroups(dataAreaId='USMF',CustomerGroupId= 'TestC01')?Cross-company=true HTTP/1.1
Content-Type: application/json; type=entry --changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a-- --batch_22975cad-7f57-410d-be15-6363209367ea--
Response:

Batch API for Insert, update and Delete

--batch_22975cad-7f57-410d-be15-6363209367ea
Content-Type: multipart/mixed; boundary="changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a"

--changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 1

POST VendorGroups?cross-company=true HTTP/1.1
Content-Type: application/json; type=entry

{
    "dataAreaId": "USMF",
"VendorGroupId": "Test03", "Description": "Test 3" } --changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a Content-Type: application/http Content-Transfer-Encoding: binary Content-ID: 2 PATCH CustomerGroups(dataAreaId='USMF',CustomerGroupId= 'TestC01')?Cross-company=true HTTP/1.1
Content-Type: application/json; type=entry { "Description": "Test C1111" } --changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a Content-Type: application/http Content-Transfer-Encoding: binary Content-ID: 3 DELETE VendorGroups(dataAreaId='USMF',VendorGroupId= 'Test01')?Cross-company=true HTTP/1.1
Content-Type: application/json; type=entry --changeset_246e6bfe-89a4-4c77-b293-7a433f082e8a-- --batch_22975cad-7f57-410d-be15-6363209367ea--
Response:

     1. Create record response.
 
         
       2. Update and Delete responses.


MS Link.

Keep Daxing!!

No comments:

Post a Comment