如何从 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 请求,但这已被弃用。
那么现在推荐的查询方式是什么?
部分选项:
- 手动分页并运行 通过 WebAPI 发出并行请求。这不太理想,尤其是在围绕 Dynamics 进行抽象时,因为请求可能会失败。
更新
感谢@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/
我有一个实体 ID 列表,需要从 Dynamics 获取到我的应用程序中。使用 WebAPI,查询必须被 URL 编码并作为 GET 请求传递,这将实体数量限制在大约 130 个(超过 URL 长度限制)
以前我们可以使用 SOAP 端点发出单个 POST 请求,但这已被弃用。
那么现在推荐的查询方式是什么?
部分选项:
- 手动分页并运行 通过 WebAPI 发出并行请求。这不太理想,尤其是在围绕 Dynamics 进行抽象时,因为请求可能会失败。
更新
感谢@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/