我正在尝试在 Microsoft Dynamics CRM 2011 中标识任何实体的未使用或非依赖字段。未使用或非依赖我指的是未在任何实体表单中使用的字段。
我已经用谷歌搜索同一主题,但无法获得理想的结果。我遇到的一个链接也没有解决这个问题: Finding unused CRM fields
答案 0 :(得分:6)
首先我应该注意,只是检查表单上是否有字段并不意味着它没有在某处使用。如果您有第三方集成,或者在实体上运行的其他逻辑可能正在更新隐藏字段,则有可能。如果您不确定是否存在为属性存储的数据,则可以执行检索请求,其中条件是该属性不为null。如果没有任何回复,那么就没有为该属性存储数据。
假设已经很清楚,您要做的是利用Dynamics CRM的依赖关系跟踪来检查各个属性的依赖关系。
以下是关于CRM 2011的依赖性跟踪的完整文章:http://msdn.microsoft.com/en-us/library/gg309749.aspx
听起来最像您正在寻找的请求是RetrieveDependentComponentsRequest
。根据您要查找的内容和文档,此请求似乎是最接近的匹配:
返回直接依赖于解决方案组件的解决方案组件的依赖关系列表。 例如,将此消息用于全局选项集解决方案组件时,将返回表示引用全局选项集解决方案组件的任何选项集属性的解决方案组件的依赖关系记录。 将此消息用于帐户实体的解决方案组件记录时,将返回表示用于该实体的属性,视图和表单的所有解决方案组件的依赖关系记录。
完成你正在寻找的东西的基本步骤是:
RetrieveEntityRequest
以检索特定实体的所有属性RetreiveDependentComponentsRequest
,将ObjectId
设置为属性的MetadataId
,将ComponentType
设置为2(属性) EntityCollection
属性,以查看是否有任何依赖项的ComponentType
为24(表单)。