如何从 Dynamics 365 按 ID 获取超过 130 个实体的列表?

How do I fetch a list of >130 entities by ID from Dynamics 365?

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

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

那么现在推荐的查询方式是什么?

部分选项:

更新

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

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

Headers

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

Body

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

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

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