共用方式為


Dynamics 365 程序架構

 

發行︰ 2017年1月

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

Microsoft Dynamics 365 中的程序管理系統包括 Microsoft Dynamics 365 SDK、外掛程式、表單和其他元件。

本主題內容

程序架構圖

程序和統一事件模型

程序週期

程序和非同步服務:僅適用工作流程

程序持續時間和關閉:僅適用工作流程

程序架構圖

下圖說明 Microsoft Dynamics 365 的高階系統架構,並強調程序專屬的系統部分。

處理架構

這個圖中顯示 Microsoft Dynamics 365 的程序架構,包括內部元件、外部元件、基礎結構和資料。

內部元件。 支援 Microsoft Dynamics 365 程序程式設計模型的內部元件包括 Web 服務、共用平台及商務邏輯。 共用平台包含一般 Microsoft Dynamics 365 元件,可提供註冊、中繼資料快取和資料存取服務。 商務邏輯包含 Microsoft Dynamics 365 商務實體的商務邏輯實作。

外部元件。 外部元件如下:

  • Windows Workflow Foundation 物件模型,包含一組用來建立和剖析 XAML 格式的工作流程程序定義的類別。

  • Windows Workflow Foundation 執行,包含一組用來執行工作流程程序的類別。

程序基礎結構。Microsoft Dynamics 365 程序基礎結構包含下列元件:

  • 程序實體模型,其中包含一組類別,會使用 Windows Workflow Foundation 物件模型和公開 Microsoft Dynamics 365 工作流程活動。

  • 程序商務邏輯,負責實作程序特定實體的商務邏輯。

  • 程序執行,負責提供工作流程執行服務,例如工作流程託管和保留。

程序資料。 下列資料支援 Microsoft Dynamics 365 程序程式設計模型:

  • 商務資料,包含與 Microsoft Dynamics 365 實體相關聯的資訊。

  • 程序設定資料,包括工作流程程序定義、編譯的工作流程程序,以及工作流程程序設定。

  • 程序執行階段資料,為執行工作流程程序和實作工作流程程序功能時所需,例如保留和通知。

程序和統一事件模型

Microsoft Dynamics 365 使用同樣會在外掛程式 (標註) 以及程序中使用的統一事件模型。 此事件處理子系統在執行程序和外掛程式方面增添了更大的彈性,因為採用了準銷售案源執行模型。

使用此模型時,程序和外掛程式會依據其註冊、訊息類型和一組預先定義的可設定參數執行。 核心平台作業會參與執行順序,形成更可靠且可延伸的執行模型。

程序週期

程序的週期說明了從建立到執行的狀態轉換。 程序可以擁有下列其中一種狀態:就緒、已暫停、已鎖定和已完成。 整個程序週期內發生的事件會導致從某一種狀態轉換成另一種狀態。

工作流程

工作流程週期如下:

  1. 當您建立工作流程時,它會處於「草稿」狀態。 您必須先啟用,工作流程才能執行。 當您啟用工作流程時,它會訂閱特定 Microsoft Dynamics 365 事件。 當這些事件在平台中觸發時,就會建立工作流程相依性和輸入參數的快照集,並且會將新的非同步作業新增至非同步服務佇列管理員。 非同步作業代表工作流程執行工作,並且會等候佇列中「就緒」狀態的執行。

  2. 處理非同步作業時,Windows Workflow Foundation 執行階段引擎會建立與此作業相關的工作流程執行個體,而且其狀態會從「就緒」變更為「已鎖定」。

  3. 非同步作業會更新為每次轉換的工作流程執行個體狀態。 當非同步作業遭到封鎖時,Windows Workflow Foundation 執行階段引擎會讓工作流程執行個體進入「已暫停」狀態,並且從記憶體中將它移除。 當「已暫停」狀態條件獲得滿足時,工作流程執行個體就會重新載入記憶體中。

  4. 工作流程會繼續執行,這是藉由讓工作流程執行個體進入「就緒」狀態,然後轉換成「已鎖定」狀態。 在此簡易案例中,工作流程執行個體會在所有工作流程活動順利完成時轉換成「已完整」狀態。

    使用者也可以變更非同步作業的狀態。 例如,處於「已暫停」狀態的非同步作業可由使用者明確重新啟動。

對話方塊

對話方塊週期如下:

  1. 當您建立對話方塊時,它會處於「草稿」狀態。 您必須先啟用,才能執行對話方塊。 對話方塊可從其主要實體表單和格線執行,或是使用對話方塊的 URL 直接執行。 如需詳細資訊,請參閱使用 URL,啟動對話方塊

  2. 每次執行對話方塊時,都會建立該對話方塊的程序工作階段執行個體。 當您繼續執行對話方塊時,程序工作階段實體會隨著對話方塊執行期間所執行的動作更新。

  3. 如果您順利完成執行對話方塊,就會建立對應的程序工作階段記錄,且其狀態為「完成」。 如果您取消對話方塊而未將它完成,就會建立狀態為「未完成」的對應程序工作階段記錄。

程序和非同步服務:僅適用工作流程

非同步服務可讓您執行、監控和管理各種不同的長時間執行作業,例如大量匯入、大量電子郵件和工作流程程序。 為了改善 Microsoft Dynamics 365 的效能、延展性與可靠性,這些作業會以非同步方式執行。 這表示,要求的作業不會立即處理,而是新增至佇列,並由 Microsoft Dynamics 365 在適當時間處理。

當 Microsoft Dynamics 365 平台準銷售案源中引發事件時,所有與事件相關聯的工作流程都會由非同步服務執行。 工作流程事件處理常式會新增至非同步佇列,並根據事件執行順序進行處理。

注意

如果非同步系統作業 (工作流程) 連續失敗數次,Dynamics 365 會開始延遲執行該特殊工作,且時間間隔會越来越長,讓 Dynamics 365 管理員調查並解決問題。 當工作再次成功執行時,就會恢復正常執行。

程序持續時間和關閉:僅適用工作流程

工作流程可能是長時間執行的企業營運,可能需要數小時、數週甚至數個月才能完成。 它可能會有效閒置一段很長的時間,等候使用者或其他系統的輸入。

為了改善 Microsoft Dynamics 365 的效能、延展性與可靠性,長時間執行的作業 (例如工作流程) 會使用非同步服務。

非同步服務 (就像 Windows Workflow Foundation 執行階段引擎的主機) 無法一直快取在持續的工作流程活動期間累積的所有物件,並將其保持使用中狀態。 當工作流程執行過程中發生特定情況 (像是重新啟動或關閉) 時,工作流程執行階段引擎就會使用持續性服務將工作流程執行個體的狀態儲存到磁碟上。 持續性服務也會在其他情況發生時叫用,例如,當工作流程閒置並等候某項外部事件發生時。 保存這些閒置的工作流程執行個體可節省記憶體並大幅提高延展性。 如果執行非同步服務的伺服器關閉,或是工作流程在執行時失敗,工作流程可在伺服器重新啟動後,從其上一個保存點重新啟動。 當工作流程不再處於閒置狀態時,工作流程執行個體的狀態就會在記憶體中環元為上一個保存點的狀態。

其他資訊:工作流程持續性

另請參閱

Microsoft Dynamics 365 的非同步服務
事件執行準銷售案源
事件架構簡介
使用 Dynamics 365 程序自動化商務程序

Microsoft Dynamics 365

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