Pushing Multiple Records in a Single Request Using Batch API in Logic Apps:
We can perform the multiple operations in single request by using Batch API. To know more Click Here
Please follow the below steps:
- I have added the HTTP request.
- I configured the following URL and headers.
Content-Type: multipart/mixed; boundary=batch_CR
- I used the batch number as batch_CR and the change set number as changeset_EE.
- I am performing three operations:
- Creating a record in the vendgroup table.
- Updating a record in the custgroup table.
- Deleting a record in the vendgroup table
--batch_CR Content-Type: multipart/mixed; boundary=changeset_EE --changeset_EE 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": "Test04", "Description": "Test 4", } --changeset_EE 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_EE Content-Type: application/http Content-Transfer-Encoding: binary Content-ID: 3 DELETE VendorGroups(dataAreaId='USMF',VendorGroupId= 'Test03')?Cross-company=true HTTP/1.1 Content-Type: application/json; type=entry --changeset_EE-- --batch_CR-- - I used OAuth authentication, providing the Client ID, Secret, and Tenant ID.
Output:
If the Batch API request Succeeds:
- It returns a 201 status code for the create operation, along with the entire payload of the first request.
- It returns a 204 status code for the update and delete operations, as no content is returned after an update and delete.
If the Batch API request Fails:
- The main status code is 200, but within the response body, it returns a 500 error.
- Below is the output of the Batch API request, with error message highlighted in a green box.
Fetching the Error Message:
- I added conditions to handle both success and failure cases.
- If the Batch API request fails, I retrieve the error message using the following expression.
- Fetch the error
body('Batch_API')['$multipart'][0]['body']['$multipart'][0]['body']['$applicationHttp']['body']['error']
- Fetch the error status code
body('Batch_API')['$multipart'][0]['body']['$multipart'][0]['body']['$applicationHttp']['statusCode']
- If the Batch API request succeeds, I extract the status code using the appropriate expression.
- Fetch the body
body('Batch_API')['$multipart'][0]['body']['$multipart'][0]['body']['$applicationHttp']['body']
- Fetch the status code
body('Batch_API')['$multipart'][0]['body']['$multipart'][0]['body']['$applicationHttp']['statusCode']