我们最近有一个迁移项目,该项目发生了严重错误,现在有1000条重复记录。业务部门一直在与他们合作,这使问题变得更糟,因为我们现在拥有名称和地址相同但联系信息可能不同的记录。一小部分是完全重复的。我们已经开始了手动合并记录的繁琐过程,但这非常慢。有人可以建议其他解决问题的方法吗?
答案 0 :(得分:0)
您可以快速编写一个控制台应用程序以合并它们,并参考相同的MSDN示例代码。
// 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);
合并两个记录时,可以将一个记录指定为主记录,而Microsoft Dynamics CRM会将另一个记录视为子记录或下级记录。它将停用子记录,并将所有相关记录(例如活动,联系人,地址,案例,注释和机会)复制到主记录中。
答案 1 :(得分:0)
在@Arun Vinoth的答案的基础上,您可能想看看您可以利用现成的duplicate detection来利用哪些功能来获取重复项集,以将合并自动化应用于其中。
或者,您可以构建自己的重复检测,以匹配您知道存在重复的各个字段上的记录。我做了类似的事情来比较整个系统的记录,包括创建匹配代码以模仿Microsoft如何在CRM中进行重复检测。
例如,联系人的匹配代码可能是 1.电子邮件地址 2.名字,姓氏和公司串联在一起,没有空格。
如果需要匹配公司,则可以实现Scribe的stripcompany之类的算法,以根据公司名称生成匹配代码。
由于这似乎是一个巨大的问题,因此您可能需要考虑采用严厉的解决方案,例如停用整个受污染的数据集并重新做干净的数据导入,然后找到在过渡期间接触过的任何停用记录合并它们,然后删除整个污染(停用)的数据集。
最重要的是,所有路径似乎都会引起严重的头痛,唯一的安慰就是您可以选择要遵循的路径。