CRM WebApi批量请求

时间:2016-09-15 07:26:27

标签: javascript jquery odata dynamics-crm

使用本指南: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--

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

关于我做错的任何线索?

1 个答案:

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

我希望这对其他人也有帮助。