共用方式為


事件執行準銷售案源

 

發行︰ 2017年1月

適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

處理子系統的 Microsoft Dynamics 365 事件執行根據訊息準銷售案源執行模型的外掛程式。 在 Microsoft Dynamics 365 Web 應用程式,或一個外掛程式 SDK 方法呼叫的使用者動作,或其他導致訊息送出至組織 Web 服務的訊息。 訊息包含商務實體資訊與核心作業資訊。 此訊息會通過事件執行銷售管道,可以透過平台核心作業和任何註冊過的外掛程式來閱讀或修改。

注意

當有由 Microsoft Dynamics 365 種控的多個 Web 服務平台時,只有組織與 OData 終端觸發的事件會造成資料執行。

本主題內容

結構和相關元件

準銷售案源階段

訊息處理

外掛程式註冊

資料庫交換中的內容

結構和相關元件

下圖說明關於同步處理和非同步事件處理的所有 Microsoft Dynamics 365 平台結構。

事件處理架構

同步與非同步事件處理圖表

事件執行準銷售案源處理事件會是同步或非同步。 平台核心作業以期任何針對同步執行註冊的外掛程式會立即執行。 為事件註冊的同步處理資料,會在完善定義的順序中執行。 註冊為非同步執行的外掛程式會由非同步佇列代理程式加入佇列並在稍後由非同步服務執行。

重要

不論外掛程式是否執行同步或非同步處理,在執行 (訊息) 請求時有兩分鐘的限制。 如果您的外掛程式邏輯執行超過時間限制,會出現 System.TimeoutException 訊息。 如果外掛程式需要兩分鐘以上的處理時間,請考慮使用工作流程或其他背景程序完成想要的工作。 這兩分鐘的時間限制僅適用於註冊在部分信任 (也稱為沙箱) 下執行的外掛程式。其他資訊:外掛程式隔離、信任和統計資料

準銷售案源階段

事件準銷售案源分割成多個階段,4 個可用於註冊客戶開發或協力外掛程式。 多個註冊多個階段的外掛程式,可以在外掛程式註冊階段內進一步接受命令 (範圍)。

事件

階段名稱

階段號碼

描述

前置事件

在交易外主要作業之前

10

外掛程式的準銷售案源中的階段準備在主系統作業前執行。 此階段記錄的外掛程式可能在資料庫外部交換時執行。

System_CAPS_security 安全性 注意

前置驗證階段會在安全性檢查前發生,以驗證呼叫或登入的使用者具備正確執行所要作業的權限。

前置事件

在交易內主要作業之前

20

外掛程式的準銷售案源中的階段準備在主系統作業前執行。 此階段記錄的外掛程式會在資料庫內部交換時執行。

平台核心作業

MainOperation

30

系統的交換主要工作,例如建立,更新,刪除,依此類推。 在此階段中沒有自訂外掛程式可以註冊。僅供內部使用。

後置事件

在交易內主要作業之後

40

外掛程式的準銷售案源中的階段準備在主系統作業後執行。 此階段記錄的外掛程式會在資料庫內部交換時執行。

訊息處理

當應用程式碼或工作流程啟動 Microsoft Dynamics 365 Web 服務方法,系統中的狀態改變發生,會引起事件。 資訊以參數型態傳送至 Web 服務方法,並內部封裝進 OrganizationRequest 訊息並由準銷售案源處理。OrganizationRequest 訊息內的資訊會傳送到第一個外掛程式為該事件註冊,事件在傳送到下一個註冊的外掛程式之前可以針對事件或其他項目讀取或修改。 外掛程式在內容表單中接受訊息,傳送到 Execute 方法中的內容表單。 訊息也會傳遞至平台核心作業。

外掛程式註冊

外掛程式可以在核心平台作業之前或之後註冊來執行。 前置作業註冊的外掛程式會先收到 OrganizationRequest 訊息且可在訊息傳到核心作業前修改。 在核心平台作業完成後,訊息將會稱為 OrganizationResponse。 回覆會傳送到已註冊的後置事件外掛程式中。 後置事件外掛程式在回覆的複本傳送到任何註冊的非同步外掛程式前,有機會修改訊息。 最後,回覆會回傳到觸發原始 Web 服務方法呼叫。

因為單一 Microsoft Dynamics 365 伺服器可以主控一個以上的組織,執行準銷售案源是組織特定動作。 在每個組織的都有一個虛擬準銷售案源。 註冊在準銷售案源的外掛程式只能處理單一組織的商務資料。 設計使用多個組織的外掛程式必須已在每個組織執行準銷售案源註冊。

資料庫交換中的內容

外掛程式也許不會在 Microsoft Dynamics 365 平台資料庫交換中執行。 無論外掛程式是否為交換中的一部分,都會取決於訊息請求的方法 (由準銷售案源處理)。 您可以透過讀取由 IPluginExecutionContext 繼承的 IsInTransaction 屬性 (傳送至外掛程式) 來確認外掛程式是否正在執行。 如果外掛程式正在資料庫交換中執行,且允許例外傳送回平台中,則整個交換會回溯。 階段 20 和 40 一定會為資料庫交換的一部分,而階段 10 會是交換的一部分。

所有在資料庫交換中執行的已註冊外掛程式,會傳送例外回到平台,並取消核心作業。 這會導致核心作業回溯。 此外,任何尚未執行的前置事件或後置事件的已註冊外掛程式,以及任何由相同事件觸發的工作流程,已註冊的外掛程式將不會執行。

另請參閱

事件架構簡介
外掛程式隔離、信任和統計資料
註冊和部署外掛程式
Microsoft Dynamics 365 的非同步服務

Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權