第一个问题,使用我的ETL软件,我可以映射所有GM联系人字段并将其迁移到MCRM联系人实体。我不能拥有的唯一字段是所有者(所有者则始终是联系人的创建者)。
我发现他们是此实体字段prvAssignContact的权限。
他们是一个删除这种安全性的技巧,或者我可以通过我刚刚开始使用的SDK工具包做的事情吗?
在SO上,我找到了这个话题,Can I update the owner id of a Contact using LINQ?但是根本不知道它对我是否有用,如果是,那么放置代码。
P:S:我一定要独自完成......所以我会喜欢用户友好的建议!答案 0 :(得分:5)
了解您正在使用的ETL会很有用,但是在进行数据迁移时需要考虑一些重要事项。 如果要创建新记录,指定所有者就足以使用EntityReference
设置字段 Entity contact = new Entity("contact");
contact["firstname"] = "John";
Guid ownerId = new Guid("BFC777ED-5E79-E111-8489-00166D63156F");
contact["ownerid"] = new EntityReference("systemuser", ownerId);
service.Create(contact);
如果您要更新联系人,则需要按照其他主题
中的说明使用AssignRequest Guid contactId = new Guid("90F8889F-EB95-E781-8417-000C44420CBC");
Guid newOwnerId = new Guid("BFCAA4ED-5E79-E781-8349-00155BB3156F");
AssignRequest assignRequest = new AssignRequest
{
Assignee = new EntityReference("systemuser", newOwnerId),
Target = new EntityReference("contact", contactId)
};
service.Execute(assignRequest);
答案 1 :(得分:0)
除了Guido的答案之外,如果您在IOrganizationService上使用impersonation,它会自动将所有者设置为模拟用户。