使用本指南:https://msdn.microsoft.com/en-us/library/mt607719.aspx,我尝试创建批量请求以删除引号上的所有引号。 我使用jquery的ajax来执行请求:
$.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--
我没有收到错误,但引文详细信息未被删除。 这是回复:
--batchresponse_a3304387-0e91-4097-b9f8-a207da3aa845--
我也发现了这个例子,我试图用Postman复制它: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--
第一个没有删除帐户,第二个没有创建帐户。
关于我做错的任何线索?
答案 0 :(得分:6)
所以我做了一些进一步的测试,发现它出了问题。
首先,在最后一个示例中,创建两个帐户,对象应为:
{ "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
我希望这对其他人也有帮助。