在批量插入记录后需要帮助,以从Dynamics 365 Web API提供的响应中提取CRM记录ID

时间:2019-04-24 05:52:48

标签: c# dynamics-crm microsoft-dynamics dynamics-365 dynamics-crm-webapi

我正在使用Dynamics Web API批处理插入操作插入记录。我正在使用补丁方法,并在备用键上插入。我从CRM收到的响应是(response.Content),它给出了批次ID和我插入的备用键。但是,我也想获取插入记录的GUID。 有什么方法可以读取响应本身中插入记录的GUID。由于我需要插入数百万条记录,因此使用另一个查询来获取GUID将非常昂贵。

我尝试使用response.Content读取响应,但是如上所述,它不包含GUID。 我还尝试运行其他查询以获取指定备用键的GUID。这会花费很多时间。 此外,我尝试在插入时生成GUID(因此,消除了在响应中捕获它们的需求),但是客户端不想使用此方法。

//这就是我阅读回复的方式

HttpResponseMessage response = httpClient.SendAsync(request).Result;
var strCttResponse = await response.Content.ReadAsStringAsync();

//请参阅预期和实际结果说明

//以下是样本响应(仅适用于一条记录)。如你看到的 //只有备用键和批次ID。

--batchresponse_63bdc6fd-90f2-4a2b-b11d-ba4cc1d122f4
Content-Type: multipart/mixed; boundary=changesetresponse_ac69e917-8cf9-4ee8-8d4c-9d525ae6f4c3

--changesetresponse_ac69e917-8cf9-4ee8-8d4c-9d525ae6f4c3
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 1

HTTP/1.1 204 No Content
OData-Version: 4.0
Location: https://<URL>/api/data/v9.1/contacts(new_altkey_contact='46236')
OData-EntityId: https://<URL>/api/data/v9.1/contacts(new_altkey_contact='46236')

// --------------------------------------------- -----------------------------

我正在寻找的结果也应该返回插入记录的GUID。 像这样:

 Batch Id

 https://<URL>/api/data/v9.1/contacts(new_altkey_contact='altkey')

 GUID of the record

1 个答案:

答案 0 :(得分:0)

能否请您为批生产之外的单个创建验证响应。从我所看到的,您还应该返回AlternateKey。您也可以问微软这是否真的有意。有特殊原因为什么需要GUID?是的,备用键比较慢,因为CRM需要在内部询问GUID,但这对于大数据导入(例如用于初始数据迁移的Exmaple)不会产生任何影响