Monday, February 3, 2025

Push Multiple Records in a Single Http Request Using Batch API in Logic Apps

 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:

  1. It returns a 201 status code for the create operation, along with the entire payload of the first request.


  2. 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']



Keep Daxing!!