2010-04-27 42 views
1

我需要實現Microsoft Dynamics CRM和第三方服務器之間的雙向通信。理想的情況如下:實施Microsoft Dynamics CRM和第三方應用程序之間的雙向通信

  1. 用戶試圖在CRM中創建一個實體
  2. 在預先創建掛鉤第三方庫函數被調用(或Web服務或其他),填寫相關信息,這嘗試將服務器
  3. 上創建相應的實體如果調用失敗,創作CRM
  4. 如果調用成功,該實體在CRM 附加字段創建從呼叫
  5. 充滿返回值失敗

更具體地說,我想,當用戶嘗試創建一個新的實體實例做這樣的事情:

try { 
    ExternalWebService.CreateTrade(ref TradeInfo info) 
    //this was initialized on the external server 
    myCRM_Trade_Entity.SerialNo = info.SerialNo; 
    CreateNew(myCRM_Trade_Entity); 

} catch (whatever) { 
    fail; 
} 

什麼是建議的方式做到這一點?我是Dynamics新手,已經閱讀過關於Workflows和Plugins的內容,但我不知道該如何正確執行此操作。

回答

2

這樣做的方法顯然是一個插件,除非Web服務調用的進程很長並且可能超時。

避免創建實體的唯一方法是創建一個插件,並將其掛在預創建事件上,就像您所說的那樣。

使用工作流程時,必須在執行工作流程之前保存實體。

我認爲你是一個很好的方式。但是,我會避免包含一個庫,web服務解決方案應該更好,因爲在註冊插件程序集之前不需要註冊其他庫。

+0

我看着插件,但從我看到的是,除了成功/失敗之外,我無法獲得反饋信息。問題是實體必須在第三方服務器中創建的主鍵,因此我必須使用從Web服務執行接收到的值更新實體。有沒有辦法通過插件做到這一點? – CxDoo 2010-04-27 13:05:51

+1

註冊插件後,在實體在CRM中創建之前觸發預創建事件,並且您可以訪問完整的實體圖像。所以你可以調用web服務並修改這個圖片或者拋出一個會避免創建實體的異常。 – BeardinaSuit 2010-04-27 16:44:03

+0

謝謝!這是我需要某人確認的。 – CxDoo 2010-04-28 11:19:13

相關問題