CRM 中的重复记录

Duplicate Records within CRM

我们最近有一个严重错误的迁移项目,我们现在有 1000 条重复记录。该公司一直在与他们合作,这使问题变得更糟,因为我们现在拥有名称和地址相同但联系信息可能不同的记录。少数是完全重复的。我们已经开始手动合并记录的整个过程,但这非常慢。有人可以建议另一种解决问题的方法吗?

您可以快速编写一个控制台应用程序来合并它们并参考 MSDN 示例代码。

Sample: Merge two records

            // Create the target for the request.
            EntityReference target = new EntityReference();

            // Id is the GUID of the account that is being merged into.
            // LogicalName is the type of the entity being merged to, as a string
            target.Id = _account1Id;
            target.LogicalName = Account.EntityLogicalName;

            // Create the request.
            MergeRequest merge = new MergeRequest();
            // SubordinateId is the GUID of the account merging.
            merge.SubordinateId = _account2Id;
            merge.Target = target;
            merge.PerformParentingChecks = false;

            // Execute the request.
            MergeResponse merged = (MergeResponse)_serviceProxy.Execute(merge);

When merging two records, you specify one record as the master record, and Microsoft Dynamics CRM treats the other record as the child record or subordinate record. It will deactivate the child record and copies all of the related records (such as activities, contacts, addresses, cases, notes, and opportunities) to the master record.

Read more

基于@Arun Vinoth 的回答,您可能想看看您可以利用开箱即用的东西 duplicate detection 来获取重复集以应用合并自动化。

或者,您可以构建自己的欺骗检测来匹配您知道存在欺骗的各个字段上的记录。我做过类似的事情来比较系统间的记录,包括创建匹配代码来模仿 Microsoft 如何在 CRM 中进行欺骗检测。

例如,联系人的匹配代码可能是 1. 电子邮件地址 2. 名字、姓氏和公司连接在一起,没有空格。

如果您需要匹配公司,您可以实施类似 Scribe 的算法 stripcompany 以根据公司名称生成匹配代码。

由于这似乎是一个大问题,您可能需要考虑彻底的解决方案,例如停用整个受污染的数据集并重新进行数据导入清理,然后找到在此期间触及的任何停用记录以合并它们,然后删除整个污染(停用)数据集。

归根结底,所有路径似乎都会导致严重的头痛,唯一的安慰是您可以选择要遵循的路径。