2013-04-04 77 views
1

因此,Dynamics CRM中的連接提供了將事物連接在一起的通用方法。Dynamics Crm:通過API創建連接實體

Connections實體內部具有Record1Id屬性和Record2Id屬性等等。

當你創建一個connection via the UI,CRM實際上是「在數據庫中創建連接表的兩個條目,每個條目可以搜索來自始發記錄或相關記錄的相關記錄。

也就是說,如果連接A和B,這樣可以節省兩行的(幕後)表:

  • 一個與Record1Id = A和Record2Id = B
  • 和一個與Record1Id = B和Record2Id = A

這是爲了使搜索連接更容易。如果您在連接上進行高級查找,則只需執行「單向搜索」即可。

所以我的問題是:

當通過API(後期綁定),它是這樣創建的連接:

Entity connection = new Entity("connection"); 
connection["record1id"] = new EntityReference("contact", someContactId); 
connection["record1objecttypecode"] = new OptionSetValue(2); 
connection["record1roleid"] = new EntityReference("connectionrole", someConnectionRoleId); 
connection["record2id"] = new EntityReference("incident", someCaseId); 
connection["record2objecttypecode"] = new OptionSetValue(122); 
connection["record2roleid"] = new EntityReference("connectionrole", someOtherConnectionRoleId); 
var newId = service.Create(connection); 

...是足以創造他們'單向「,然後幕後CRM將創建雙向連接?
...或者你需要在兩個方向上手動創建它們嗎? (通過節省兩次並交換record1id record2id值等)

或換言之,用於Connections的CRM API封裝了「其背後的實際兩個連接」功能,還是您需要手動處理你自己?

+1

這似乎喜歡的事,你可以測試速度比你可以問... – Daryl 2013-04-04 13:32:51

+1

我使用CRM Online中的StackOverflow的問題 - 我沒有對數據庫的任何訪問在幕後。另外,如果其他人想知道同樣的事情,這個問題將希望有一個答案... – codeulike 2013-04-04 13:35:58

回答

3

你只需要創建一個連接記錄。有一點需要注意的是,我認爲你不需要像上面那樣設置typecode。只需在實體引用中設置邏輯名就夠了。下面是從SDK樣本:

Connection newConnection = new Connection 
{ 
    Record1Id = new EntityReference(Account.EntityLogicalName, 
     _accountId), 
    Record1RoleId = new EntityReference(ConnectionRole.EntityLogicalName, 
     _connectionRoleId),        
    Record2RoleId = new EntityReference(ConnectionRole.EntityLogicalName, 
     _connectionRoleId),        
    Record2Id = new EntityReference(Contact.EntityLogicalName, 
     _contactId) 
}; 
_connectionId = _serviceProxy.Create(newConnection); 
+0

好的,謝謝。您的示例使用早期綁定API,並使用延遲綁定。你認爲創建一個連接對於後期API還是足夠的嗎? – codeulike 2013-04-04 15:05:19

+3

早期和晚期應該沒有區別。無論如何,早期的界限只是使用被覆蓋的實體類。使用類型代碼也是一個壞主意,因爲如果你有一個測試環境,或者你有一個實體,然後刪除,然後重新添加,類型代碼將不再匹配。 – Daryl 2013-04-04 16:06:32

相關問題