1

我正在尝试识别Microsoft Dynamics CRM 2011中任何实体的未使用或非依赖字段。未使用或非依赖是指未在任何实体表单中使用的字段。

我已经用谷歌搜索了相同的主题,但无法获得所需的结果。我遇到的一个链接也没有解决这个问题: 查找未使用的 CRM 字段

4

1 回答 1

6

首先我应该注意,仅仅检查一个字段是否不在表单上并不意味着它没有在某处使用。如果您有第三方集成或在实体上运行的其他逻辑,则可能会更新隐藏字段。如果您不确定是否为某个属性存储了数据,您可以在您的条件是该属性不为空的情况下执行检索请求。如果没有返回,则没有为该属性存储数据。

假设这已经很清楚,您想要做的是利用 Dynamics CRM 的 Dependency Tracking 来检查各个属性的依赖关系。

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

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

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

完成您正在寻找的基本步骤将是:

  1. 执行 aRetrieveEntityRequest以检索特定实体的所有属性
  2. 对于响应中的每个属性,执行一个RetreiveDependentComponentsRequest您将 设置ObjectIdMetadataId属性的位置,并将 设置ComponentType为 2(属性)。
  3. 解析EntityCollection响应上的属性以查看是否有任何依赖项具有ComponentType24(形式)。
于 2013-06-10T11:10:47.717 回答