2013-03-26 28 views
2

第一個問題,使用我的ETL軟件,我可以映射所有GM聯繫人字段並將其遷移到MCRM聯繫人實體。我唯一不能的領域是業主(業主始終是聯繫人的創造者)。ETL Software無法檢索聯繫人的所有者

我發現他們對這個實體字段prvAssignContact有特權。

他們是否可以通過我剛剛開始使用的SDK Toolkit去除這種安全性或者我可以做的事情?

在SO上,我找到了這個話題,Can I update the owner id of a Contact using LINQ?,但根本不知道它是否對我有用,如果是的話,該放哪些代碼。

P:S:我一定要單獨做...所以我會享受用戶友好的建議!

回答

0

除了Guido的回答,如果您在IOrganizationService上使用impersonation,它會自動將所有者設置爲模擬用戶。

+0

對不起,我似乎不得不使用SDK工具包來做到這一點,我還沒有那麼遠! – 2013-04-03 12:54:08

3

瞭解您正在使用哪個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); 
+0

你好,我正在使用StarFish ETL,我可以使用C#或VBScript在所有者上創建一個函數域,謝謝你能給我帶來一些細節! – 2013-04-03 12:52:45

相關問題