WebMpi CRM Package Request

In this guide: https://msdn.microsoft.com/en-us/library/mt607719.aspx , I am trying to create a batch request to remove all quotation marks in a quote. I am using jquery ajax to execute a query:

$.ajax( { method: 'POST', url: 'http://crm/api/data/v8.0/$batch', headers: { 'Content-Type': 'multipart/mixed;boundary=batch_' + batchId, 'Accept': 'application/json' }, data: payload }); 

And this is the payload:

 –batch_SuL11egVC7 Content-Type:multipart/mixed;boundary=changeset_Sj74vxbGYr –changeset_Sj74vxbGYr Content-Type:application/http Content-Transfer-Encoding:binary Content-ID:1 DELETE crm/.../quotedetails(cc9b9ba8-4570-e611-80ba-0050568a6c2d) HTTP/1.1 Content-Type: application/json;type=entry –changeset_Sj74vxbGYr Content-Type:application/http Content-Transfer-Encoding:binary Content-ID:2 DELETE crm/.../quotedetails(cd9b9ba8-4570-e611-80ba-0050568a6c2d) HTTP/1.1 Content-Type: application/json;type=entry –changeset_Sj74vxbGYr-- -batch_SuL11egVC7-- 

I do not receive an error message, but the quotation marks are not removed. This is the answer:

 --batchresponse_a3304387-0e91-4097-b9f8-a207da3aa845-- 

I also found this example, and I'm trying to replicate it using Postman: Batch Query - Dynamics CRM

Headers:

 Content-Type:multipart/mixed;boundary=batch_123456 Accept:application/json Odata-MaxVersion:4.0 Odata-Version:4.0 

Body

 –-batch_123456 Content-Type:multipart/mixed;boundary=changeset_123457 –-changeset_123457 Content-Type:application/http Content-Transfer-Encoding:binary Content-ID:1 POST http://onpremisesurl/api/data/v8.0/accounts HTTP/1.1 Content-Type:application/json;type=entry {name: 'batch acount 1'} –-changeset_123457 Content-Type:application/http Content-Transfer-Encoding:binary Content-ID:2 POST http://onpremisesurl/api/data/v8.0/accounts HTTP/1.1 Content-Type:application/json;type=entry {name: 'batch acount 2'} –-changeset_123457-- --batch_123456-- 

The first does not delete accounts, and the second does not create accounts.

Any clues on what I'm doing wrong?

+7
javascript jquery odata dynamics-crm
source share
1 answer

So, I did some additional testing and figured out where this happens.

First, in the last example, when creating two accounts, the object should be as follows:

 { "name": "batch acount 2"} 

And in the first example, when deleting records, you need to send an empty object. This is a working example for deleting accounts:

 --batch_AAA123 Content-Type: multipart/mixed;boundary=changeset_BBB456 --changeset_BBB456 Content-Type: application/http Content-Transfer-Encoding:binary Content-ID: 1 DELETE http://tenanturl/api/data/v8.1/accounts(4deb1677-427b-e611-80bb-0050568a6c2d) HTTP/1.1 Content-Type: application/json;type=entry {} --changeset_BBB456 Content-Type: application/http Content-Transfer-Encoding:binary Content-ID: 2 DELETE http://tenanturl/api/data/v8.1/accounts(52eb1677-427b-e611-80bb-0050568a6c2d) HTTP/1.1 Content-Type: application/json;type=entry {} --changeset_BBB456-- --batch_AAA123-- 

And somehow one of the two dashes in front of the package and the set of changes was different:

 --batch_AAA123 --changeset_BBB456 

Hope this helps someone else too.

+2
source share

All Articles