3

最初の質問は、ETLソフトウェアを使用して、すべてのGM連絡先フィールドをマップし、それらをMCRM連絡先エンティティに移行することができました。私ができない唯一のフィールドは所有者です(所有者は常に連絡先の作成者です)。

これらは、このエンティティフィールドprvAssignContactに対する特権であることがわかりました。

彼らはこのセキュリティを取り除くためのトリックですか、それとも昨日使い始めたばかりのSDK Toolkitを介してできることですか?

SOで、このトピックを見つけました。LINQを使用して連絡先の所有者IDを更新できますか?しかし、それが私にとって役立つかどうか、もしそうなら、そのコードをどこに置くかはわかりません。

追伸:私は間違いなく一人でやらなければなりません...だから私はユーザーフレンドリーなアドバイスを楽しみます!

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 に答える