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

如何通过代码关联Dynamics CRM VOC中ResponseAction与需显隐的问卷问题?

搞定Dynamics CRM VOC里ResponseAction和问卷问题的关联

兄弟,你说的这个情况我太熟了——ResponseAction实体本身真的不会直接带着它要控制的问卷问题引用,你得结合另外几个实体的数据才能把这层关联打通,毕竟这是Dynamics CRM VOC里典型的关联式数据设计。

核心关联逻辑拆解

先给你理清楚关键的几个实体和它们的关系:

  • msdyn_responseaction:就是你现在拿到的响应动作实体,负责定义「显示/隐藏」这个动作,但它本身只存动作规则,不直接绑问题
  • msdyn_responserouting:你已经在使用的路由对象,它是ResponseAction的父容器,每个动作都属于某条路由
  • msdyn_surveyquestion:真正存储问卷问题的实体,也是你要找的目标

具体怎么关联?

  1. 首先,每个msdyn_responseaction都会通过msdyn_responseroutingid字段绑定到对应的msdyn_responserouting,这部分你应该已经有了
  2. 重点来了:ResponseAction要控制的问题,是通过**msdyn_targetquestion**字段关联到msdyn_surveyquestion的!但问题是,默认查询ResponseAction的时候,这个关联字段不会自动返回,你得主动去加载它

实操方法:如何获取关联数据?

你需要在查询msdyn_responseaction的时候,用扩展查询把关联的问题数据拉回来:

  • 如果用Web API的话,请求URL要加上$expand参数,比如:
    GET [你的组织URI]/api/data/v9.2/msdyn_responseactions?$expand=msdyn_targetquestion&$filter=msdyn_responseroutingid eq [你的路由ID]
    
    这样返回的ResponseAction对象里,就会包含msdyn_targetquestion节点,里面就是对应的问卷问题信息
  • 如果用FetchXML的话,要在查询里加<link-entity>节点关联msdyn_surveyquestion,示例大概是这样:
    <fetch>
      <entity name="msdyn_responseaction">
        <attribute name="msdyn_name" />
        <link-entity name="msdyn_surveyquestion" from="msdyn_surveyquestionid" to="msdyn_targetquestionid" link-type="inner" alias="targetQuestion">
          <attribute name="msdyn_name" />
          <attribute name="msdyn_questiontext" />
        </link-entity>
      </entity>
    </fetch>
    

特殊情况:如果控制的是整组问题?

要是你的ResponseAction是控制整个问卷章节的显示/隐藏,那就要关联msdyn_surveysection实体,用msdyn_targetsection字段去关联,然后再从章节里拿到下面的所有问题。

总结一下:你确实需要额外加载关联的问卷问题(或章节)数据,默认的ResponseAction对象不会自带这些引用,只要在查询的时候扩展关联实体,就能拿到你要的关联关系了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:35:31