2016-09-15 78 views
7

有了本指南:https://msdn.microsoft.com/en-us/library/mt607719.aspx,我试图创建批量请求以删除报价单上的所有报价单。 我使用jQuery的Ajax的要求去做:CRM WebApi批量请求

$.ajax(
{ 
    method: 'POST', 
    url: 'http://crm/api/data/v8.0/$batch', 
    headers: { 
     'Content-Type': 'multipart/mixed;boundary=batch_' + batchId, 
     'Accept': 'application/json' 
    }, 
    data: 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-- 

我没有得到一个错误,但quotedetails不会被删除。 这是响应:

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

,我也发现了这个例子,我试图与邮差复制它:Batch request - Dynamics CRM

页眉:

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

身体:

–-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-- 

第一个不删除帐户,第二个不创建帐户。

我做错了什么线索?

回答

2

所以我做了一些进一步的测试,发现它出错的地方。

首先,过去的样品中,创建了两个账户,对象应该是这样的:

{ "name": "batch acount 2"} 

而在第一个例子中,删除记录时,您需要发送一个空的对象。这是删除帐户工作示例:

--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-- 

而且两个破折号之前批次和变更是不同的莫名其妙之一:

--batch_AAA123 
--changeset_BBB456 

我希望这可以帮助别人也是如此。