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

如何通过Dynamics OData Web API同时查询Account或Contact

Dynamics 365 Cloud CE OData Web API 实现单次查询关联客户需求

可行,且可以通过单次请求实现跨Contact和Account实体的查询,无需分两次请求。具体实现方式如下:

核心方案:使用FetchXML联合查询

Dynamics 365 Web API支持通过FetchXML的union元素合并多个实体的查询结果,可同时查询Contact和Account中匹配指定ssn的记录,后续在返回结果中优先取Contact记录(无匹配则取Account)。

步骤1:构造FetchXML查询语句

构造包含union的FetchXML,同时筛选Contact和Account实体,指定返回ID和筛选条件:

<fetch mapping='logical' distinct='false'>
  <union all='true'>
    <entity name='contact'>
      <attribute name='contactid' />
      <attribute name='ssn' />
      <filter type='and'>
        <condition attribute='ssn' operator='eq' value='SE190001010101' />
      </filter>
    </entity>
    <entity name='account'>
      <attribute name='accountid' />
      <attribute name='ssn' />
      <filter type='and'>
        <condition attribute='ssn' operator='eq' value='SE190001010101' />
      </filter>
    </entity>
  </union>
</fetch>

步骤2:发起Web API请求

通过POST请求调用FetchXML端点,请求参数如下:

  • 请求URL:https://[你的组织域名].dynamics.com/api/data/v9.1/fetchXml
  • 请求头:Content-Type: application/xml
  • 请求体:上述构造的FetchXML内容

步骤3:处理返回结果

返回的JSON数据中,每条记录会包含@odata.type字段,标识实体类型:

  • Contact记录的类型为Microsoft.Dynamics.CRM.contact
  • Account记录的类型为Microsoft.Dynamics.CRM.account

处理逻辑:优先提取类型为Contact的记录;若无Contact匹配结果,则提取Account的记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:45:27