【问题标题】:How do I fetch a list of >130 entities by ID from Dynamics 365?如何从 Dynamics 365 按 ID 获取 >130 个实体的列表?
【发布时间】:2019-08-14 17:03:56
【问题描述】:

我有一个实体 ID 列表,需要从 Dynamics 提取到我的应用程序中。使用 WebAPI,查询必须进行 URL 编码并作为 GET 请求传递,这将实体的数量限制在大约 130 个(超过 URL 长度限制)

以前我们可以使用 SOAP 端点发出单个 POST 请求,但现在已弃用。

那么,现在进行此类查询的推荐方法是什么?

一些选项:

  • 手动分页并通过 WebAPI 运行并行请求。这不太理想,尤其是在围绕 Dynamics 进行抽象时,因为请求可能会失败。

更新

感谢@Guido Preite,我能够使用 WebAPI batch request。基本上,您使用 130 多个实体发出 GET 请求,但在批处理请求正文中对其进行编码以解决字符限制。我将在下面发布邮递员的请求...

发帖到{{myDynamicsURL}}/api/data/v9.0/$batch

标题

Authorization:Bearer {{token}}
Content-Type:multipart/mixed;boundary=batch_AAA123 
Accept:application/json
Cache-Control:no-cache
OData-MaxVersion:4.0
OData-Version:4.0
Prefer:odata.maxpagesize=500, odata.include-annotations="*", return=representation

身体

--batch_AAA123
Content-Type: application/http  
Content-Transfer-Encoding:binary

GET {{myDynamicsURL}}/connections?$filter=(connectionid eq 9b704176-2f60-e911-a830-000d3a385a17 or connectionid eq 1ccc526c-2e6c-e911-a831-000d3a385a17 ... <REST OF QUERIES HERE>) HTTP/1.1
Accept: application/json

--batch_AAA123--

【问题讨论】:

    标签: soap dynamics-crm dynamics-crm-webapi


    【解决方案1】:

    您可以使用在 POST 请求中传递的 FetchXML 进行查询

    https://dreamingincrm.com/2017/01/15/executing-large-fetchxml-with-webapi/

    【讨论】:

    • 太棒了,我可以使用 WebAPI batch request。我尝试了我的查询并且它有效。我会在这里发帖。
    最近更新 更多