我一直在尝试让 Dynamics CRM 2011 SDK 中的 Merge 示例正常工作。 http://msdn.microsoft.com/en-us/library/hh547408.aspx
我稍微修改了一下。我创建了两个联系人而不是帐户(尽管代码中的一些变量名称可能另有说明。例如 _account1Id 实际上是联系人 1 的 GUID。)
第一个联系人记录已填写姓名、姓氏和电话字段。第二个联系人记录填写了姓名、姓氏和电子邮件字段。
发生合并的部分如下。原始代码可以从顶部的链接中看到。
当我通过以下修改运行示例时,电子邮件地址不会合并到新的联系人记录中。我得到的是一个合并的联系人,其中包含来自其中一条记录的值,添加了地址数据,但没有电子邮件。我认为这应该用第二条记录中的非空字段填充主记录的空字段。
作为 Dynamics CRM 的新手,经过大量谷歌搜索和调试后,我无法理解原因。如果有人能给我一些关于问题可能是什么的反馈,我会很高兴。
提前致谢。
_serviceProxy.EnableProxyTypes();
CreateRequiredRecords(); // created two contacts with same name, surname. first record has telephone1 filled, second record has emailaddress filled.
EntityReference target = new EntityReference();
target.Id = _account1Id;
target.LogicalName = Contact.EntityLogicalName;
MergeRequest merge = new MergeRequest();
merge.SubordinateId = _account2Id;
merge.Target = target;
merge.PerformParentingChecks = false;
Contact updateContent = new Contact();
updateContent.Address1_Line1 = "test";
merge.UpdateContent = updateContent;
MergeResponse merged = (MergeResponse)_serviceProxy.Execute(merge);
Contact mergeeAccount =
(Contact)_serviceProxy.Retrieve(Contact.EntityLogicalName,
_account2Id, new ColumnSet(allColumns: true));
if (mergeeAccount.Merged == true)
{
Contact mergedAccount =
(Contact)_serviceProxy.Retrieve(Contact.EntityLogicalName,
_account1Id, new ColumnSet(allColumns: true));
}