M$-CRM 2016本地版salesorderdetail自定义视图查询构建器报错求助
Dynamics CRM 2016本地版9.1中SalesOrderDetail自定义视图自动添加错误属性的问题
问题描述
我们使用M$-CRM 2016本地版9.1,在SalesOrderDetail实体的查找字段中调用addCustomView方法设置特殊过滤时,始终触发查询构建器错误。通过开发者工具及网络分析捕获到400错误,详细信息为:
'SalesOrderDetail'实体不存在名为'name'的属性。
但自定义视图的FetchXml中并未包含name属性,排查后确认是CRM自动添加的。对比QuoteDetail实体的自定义视图,CRM自动添加的是正确属性:
<attribute name="quotedetailname"/>
而SalesOrderDetail对应的正确属性应为:
<attribute name="salesorderdetailname"/>
请问CRM为何会自动添加错误的name属性?是否有人能复现该问题并提供解决方案?
可能的原因及解决方案
实体元数据默认显示属性配置错误
SalesOrderDetail实体的默认显示属性可能被错误设置为name(该实体本身无此属性,正确应为salesorderdetailname)。可按以下步骤检查修正:- 进入CRM系统设置 > 自定义 > 自定义系统
- 展开实体 > Sales Order Detail,点击字段确认
salesorderdetailname字段存在 - 进入实体 > Sales Order Detail > 属性,查看并修改默认显示字段为
salesorderdetailname
addCustomView调用未显式指定返回属性
若调用addCustomView时未明确指定视图返回的属性列,CRM会自动补充默认显示属性,当元数据配置异常时就会添加错误属性。解决方法是在自定义FetchXml中显式声明所有需要返回的属性,包括salesorderdetailname,覆盖CRM的自动补充逻辑:<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false"> <entity name="salesorderdetail"> <attribute name="salesorderdetailname"/> <attribute name="productid"/> <attribute name="quantity"/> <!-- 按需添加其他属性 --> <filter type="and"> <!-- 自定义过滤条件 --> </filter> </entity> </fetch>CRM 9.1版本已知bug
部分CRM 2016本地版9.1的补丁包存在实体元数据处理bug,导致SalesOrderDetail的默认属性识别错误。建议安装官方最新的累积更新补丁,修复此类已知问题。
内容的提问来源于stack exchange,提问作者a-x-i
相关产品推荐
相关产品推荐

