3

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

我发现他们是这个实体字段prvAssignContact的特权。

他们是消除这种安全性的技巧,还是我可以通过我昨天刚开始使用的 SDK 工具包做的事情?

在 SO 上,我找到了这个主题,我可以使用 LINQ 更新联系人的所有者 ID 吗?但根本不知道它是否对我有用,如果是的话,该代码放在哪里。

P:S: 我一定要一个人做……所以我会喜欢用户友好的建议!

4

2 回答 2

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);
于 2013-03-26T08:21:02.687 回答
0

除了 Guido 的回答之外,如果您在 IOrganizationService 上使用模拟,它会自动将所有者设置为模拟用户。

于 2013-03-26T12:22:50.083 回答