如何在CRM 2011中查找任何实体的未使用/非依赖字段?

Fur*_*dar 1 dynamics-crm dynamics-crm-2011

我试图找出任何未使用的或非依赖字段实体的Microsoft Dynamics CRM 2011.未使用或非依赖我指的是未在任何实体形式中使用的字段.

我用谷歌搜索找到相同的主题,但无法得到理想的结果.我遇到的一个链接也没有解决这个问题: 查找未使用的CRM字段

Got*_*bbs 6

首先我要注意,只是检查表单上是否有字段并不意味着它没有在某处使用.如果您有第三方集成,或者在实体上运行的其他逻辑可能正在更新隐藏字段,则有可能.如果您不确定是否存在为属性存储的数据,则可以执行检索请求,其中条件是该属性不为null.如果没有回来,则没有为该属性存储数据.

假设已经很清楚,您要做的是利用Dynamics CRM的依赖关系跟踪来检查各个属性的依赖关系.

以下是有关CRM 2011的依赖性跟踪的完整文章:http://msdn.microsoft.com/en-us/library/gg309749.aspx

听起来最像您正在寻找的请求是RetrieveDependentComponentsRequest.根据您要查找的内容和文档,此请求似乎是最接近的匹配:

返回直接依赖于解决方案组件的解决方案组件的依赖关系列表.例如,将此消息用于全局选项集解决方案组件时,将返回表示引用全局选项集解决方案组件的任何选项集属性的解决方案组件的依赖关系记录.将此消息用于帐户实体的解决方案组件记录时,将返回表示用于该实体的属性,视图和表单的所有解决方案组件的依赖关系记录.

完成你正在寻找的东西的基本步骤是:

  1. 执行a RetrieveEntityRequest以检索特定实体的所有属性
  2. 对于在响应每个属性,执行RetreiveDependentComponentsRequest在其中设置了ObjectIdMetadataId所述属性的,并且ComponentType为2(属性).
  3. 解析EntityCollection响应中的属性以查看是否有任何依赖项具有ComponentType24(表单).