You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过记录ID确定实体名称以处理Dynamics 365多态字段

在Dynamics 365 WEB API中处理仅知GUID的多态字段赋值问题

针对仅拥有记录GUID、不知道所属实体类型,需要填充多态字段(如connection实体的record1id)的场景,可按以下方案解决:

一、通过GUID反向匹配所属实体类型

由于你已明确该多态字段的目标实体列表,可通过批量查询或逐个验证的方式,找到该GUID对应的实体:

1. 批量查询优化方案

使用Dynamics WEB API的批量请求,一次性对所有目标实体发起查询,减少网络请求次数:

示例批量请求内容(POST到https://yourorg.crm.dynamics.com/api/data/v9.2/$batch):

Content-Type: multipart/mixed; boundary=batch_12345

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

GET api/data/v9.2/accounts(00000000-0000-0000-0000-000000000000)?$select=accountid HTTP/1.1

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

GET api/data/v9.2/contacts(00000000-0000-0000-0000-000000000000)?$select=contactid HTTP/1.1

--batch_12345
// 依次添加所有目标实体的查询请求,替换实体逻辑名称和GUID
--batch_12345--

返回结果中,状态码为200 OK的请求对应的实体,就是该GUID所属的实体类型。

2. 逐个验证方案

如果批量请求实现复杂,可逐个对目标实体发起GET请求,判断记录是否存在:

GET https://yourorg.crm.dynamics.com/api/data/v9.2/{entity}(your-guid-here)?$select={primary-key-field}

例如查询account:

GET https://yourorg.crm.dynamics.com/api/data/v9.2/accounts(55555555-1111-2222-3333-444444444444)?$select=accountid

若返回200 OK,则该GUID属于account实体;若返回404 Not Found,则继续验证下一个目标实体。

二、获取实体类型后填充多态字段

找到实体类型后,有两种方式填充record1id字段:

1. 直接赋值ID和类型字段

在创建connection记录的POST请求中,直接指定record1id和record1idtype字段:

{
  "record1id": "your-guid-here",
  "record1idtype": "account", // 替换为找到的实体逻辑名称
  "record2id": "another-guid-here",
  "record2idtype": "contact"
}

2. 使用导航属性绑定

根据实体类型选择对应的导航属性,通过@odata.bind绑定记录:

{
  "record1_account@odata.bind": "/accounts(your-guid-here)", // account实体对应导航属性
  "record2_contact@odata.bind": "/contacts(another-guid-here)" // contact实体对应导航属性
}

三、长期优化方案(可选)

如果业务场景中频繁遇到此类需求,可提前维护GUID-实体类型映射表:

  • 在生成记录时,同步记录GUID与对应的实体逻辑名称到本地数据库或缓存中
  • 后续需要时直接查询映射表,避免每次调用Dynamics API验证实体类型

内容的提问来源于stack exchange,提问作者Taslim Arif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:05:17