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

如何在Dynamics CRM账户表单展示关联账户的所有Order Products?

嘿,这个需求我之前帮客户落地过,刚好有几个实用的方案,根据你的场景推荐优先级从高到低排列:

方案1:无代码自定义视图+子网格(最快捷)

这是我最推荐的方案,完全不需要写代码,适合大多数标准场景:

  • 先确认你的Account实体已经配置了主账户-子账户的关联关系(Dynamics CRM默认就有这个父子关系,要是你的环境没启用,得先在实体关系里激活)
  • 进入Order Product实体的视图管理界面,新建一个公共视图,命名为「主账户及关联账户订单产品」
  • 设置过滤条件:
    • 第一条规则:订单 > 客户 > 等于 当前记录(这会拉取当前账户自己的订单产品)
    • 点击「添加组」选择「或」,添加第二条规则:订单 > 客户 > 主账户 > 等于 当前记录(这里的字段名要根据你的关联关系调整,比如如果你的关联字段叫「父账户」就选这个,这条会拉取所有子账户的订单产品)
  • 保存视图后,回到Account表单编辑器,拖一个子网格到表单合适位置,数据源选Order Product,然后指定刚才创建的自定义视图
  • 保存并发布表单,搞定!打开主账户表单时,子网格会自动加载该账户及所有关联子账户的全部Order Products

方案2:自定义Web资源(适合复杂展示需求)

如果需要更灵活的展示(比如自定义筛选、特殊样式,或者关联关系不是标准的主-子结构),可以写个HTML Web资源实现:

  • 新建一个HTML Web资源,里面嵌入JS逻辑:
    1. 获取当前账户ID:模型驱动应用用formContext.data.entity.getId(),经典UI用Xrm.Page.data.entity.getId()
    2. 用Web API查询所有关联账户:比如/accounts?$filter=_parentaccountid_value eq '{当前账户ID}'(同样,字段名根据你的关联关系调整)
    3. 把当前账户ID和所有关联账户ID收集成一个数组
    4. 查询这些账户对应的Order Products:/orderproducts?$expand=orderid&$filter=orderid/_customerid_value in ({ID数组})
    5. 把返回的数据渲染成自定义表格(可以加排序、筛选按钮)
  • 把这个Web资源添加到Account表单,保存发布就行,这种方式自由度极高,能满足各种定制化需求

方案3:Power Automate+自定义实体(异步汇总场景)

如果不需要实时查看,只是需要定期汇总采购数据(比如统计月度总采购量),可以用Power Automate做异步同步:

  • 新建一个自定义实体,比如「账户采购汇总」,和Account实体建立关联
  • 创建一个定时触发的Power Automate流:
    1. 遍历所有主账户
    2. 查询该主账户及其关联账户的所有Order Products,汇总数量、金额等关键指标
    3. 把汇总结果更新到「账户采购汇总」实体中
    4. 在Account表单添加子网格或者字段,展示这些汇总数据

一些注意事项

  • 权限:要确保用户有Order Product实体的读取权限,以及关联账户的读取权限,否则子网格或Web资源会加载不出数据
  • 性能:如果关联账户和订单产品数量特别多,记得给查询加分页(比如Web API用$top=50),避免表单加载过慢
  • 版本适配:如果是最新的模型驱动应用,记得用最新的Client API,别再用旧的Xrm.Page了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:50:20