2013-08-20 74 views
1

我正在編寫一個插件,它在發票的PostCreation上觸發。這個插件創建一個佣金記錄,應該在佣金記錄上設置一個指向新創建的發票的查詢字段。然而,當插件運行時,發票Guid似乎沒有任何價值 - 我認爲一旦它被提交到數據庫,它只會得到一個Guid。Dynamics CRM插件 - 設置相關記錄

有沒有辦法讓我可以得到新發票的Guid,甚至手動設置它,以便我知道插件結束之前會是什麼?

感謝

回答

1

只要你在發票的帖子創建步驟,將GUID應該在那裏。

你在找什麼?您是否嘗試過這樣的:

Guid id = (Guid)context.OutputParameters["id" ]; 
+0

謝謝你的快速回復,但是這個代碼似乎是給了我一個「鍵不存在」錯誤 – user2463758

+0

ID必須是「ID」。案件事宜!我已經編輯了上面的答案。 http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.messages.createresponse_properties.aspx –

2

裏面一個插件就可以訪問到,只有當步驟在異步模式或同步模式後事件註冊的OutputParameters

MSDN - Understand the Data Context Passed to a Plug-In

然而,只有同步後事件和異步註冊 插件具有填充OutputParameters作爲響應,是因爲你註冊的核心平臺操作

的結果 作爲事後步驟,您可以使用Daryl的代碼(正確的財產是id小寫)

MSDN - Sample: Basic Plug-In

註冊該插件用於賬戶實體,在創建消息時, 和在異步模式。或者,您可以在沙盒中的後期事件中註冊插件 。

在基本插件示例中,由於代碼使用OutputParameters集合,因此代碼使用OutputParameters集合,但它沒有解釋爲什麼。

在這個例子中的代碼是:

Guid regardingobjectid = new Guid(context.OutputParameters["id"].ToString()); 
+0

謝謝你,就這樣做了! – user2463758

+0

+1表示它正在同步執行...... – Daryl

+0

與異步與同步無關。達里爾的回答是正確的,只有一個案例錯誤。 –