ETL软件无法检索联系人的所有者

时间:2013-03-26 07:50:00

标签: dynamics-crm-2011 data-migration

第一个问题,使用我的ETL软件,我可以映射所有GM联系人字段并将其迁移到MCRM联系人实体。我不能拥有的唯一字段是所有者(所有者则始终是联系人的创建者)。

我发现他们是此实体字段prvAssignContact的权限。

他们是一个删除这种安全性的技巧,或者我可以通过我刚刚开始使用的SDK工具包做的事情吗?

在SO上,我找到了这个话题,Can I update the owner id of a Contact using LINQ?但是根本不知道它对我是否有用,如果是,那么放置代码。

P:S:我一定要独自完成......所以我会喜欢用户友好的建议!

2 个答案:

答案 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,它会自动将所有者设置为模拟用户。