2016-09-15 4 views
7

このガイドでは:https://msdn.microsoft.com/en-us/library/mt607719.aspx、引用符の引用符をすべて削除するためのバッチリクエストを作成しようとしています。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 
}); 

をそしてこれがペイロードです:私は、要求を行うためにjQueryのAJAXを使用してい

–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番目のアカウントは削除しませんアカウントを作成しないでください。

私が間違っていることの手掛かりはありますか?

答えて

2

私はいくつかのさらなるテストを行い、どこが間違っているかを知りました。

まず、最後のサンプルでは、​​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-- 

何とか2つのダッシュの1バッチおよびチェンジが異なっていた前に:

--batch_AAA123 
--changeset_BBB456 

私はこれが同様に他の誰かに役立ちます願っています。

関連する問題