這部分是我工作流程設計論文裡的核心,摘出來分享給大家。
商務程序管理模組是本平台的重要組成部分,要實現將已經發布的標準中正常化的流程轉化為具體電腦中的流程從而實現流程的自動運轉,將標準化成果與員工的日常工作緊密結合起來,具有重要意義。
商務程序管理模組主要包括流程建模、工作流程執行服務、流程監控等部分。其中流程建模是用來定義一個流程,具體主要包括流程定義、流程的活動定義等;工作流程執行服務用於解釋流程流程定義,並控制其運轉,工作流程執行服務中最重要的就是工作流程引擎;流程監控用於使用者監控流程的運轉情況。商務程序管理模組3-5所示:
圖3-5 流程管理
3.2.2.1
流程建模
流程建模用於流程的建立、修改、刪除等操作,每一個商務程序通常包含若干個活動,而在流程圖中,每個節點則對應一個活動。根據業務需要,我們將節點的類型分為了七類,對於不同類型的節點,我們也應該對其進行不同的設定。
(1)開始節點和結束節點
開始類型節點和結束類型節點均屬於自動活動類型,但他們是比較特殊的,一個流程只能有一個開始節點,可以有多個結束節點。
(2) Node類型節點
Node類型節點屬於自動活動類型,當執行個體執行到這裡時候,會自動根據配置處理,處理後繼續向下運行。
(3) Task類型節點
Task類型節點是一種手工活動類型,非常重要。流程運轉到此類型節點的時候,會自動暫停流程的運轉並等待參與者做相應的操作(如填寫表單),並觸發相應操作後才會繼續執行。
(4) Decision類型節點
Decision類型節點屬於決策節點。例如在一個流程中,如果時間大於某個界限時,需要某種操作。這時,使用Decision類型節點,電腦會自動根據規則判斷,並轉向對應的流轉路由。
Decision節點還需要設定自動跳轉規則,用於電腦自動判斷流程流向如何跳轉。
(5) Fork類型節點
Fork類型節點是分支類型節點,用於流程的分支運轉。當流程需要分支執行時,就會用到此類型的節點使流程會順著其分支同時流轉。
(6) Join類型節點
Join類型節點屬於匯聚類型節點,用於結束分支流程,使其回到主流程上。Join類型節點與Fork類型節點成對出現,分支節點運行完畢後會進入Join節點,Join節點觸發流程回到主流程上繼續運行。
(7) SubProcess類型節點
SubProcess類型節點表示子流程類型的節點,用於實現子流程的嵌套運轉。當流程運轉到SubProcess類型節點時,會啟用該節點綁定的子流程,並使其自動開始運轉,此時主流程掛起,等到子流程結束後主流程繼續執行。
3.2.2.2
工作流程執行服務的詳細設計
工作流程執行服務主要就是指工作流程引擎,是為工作流程運轉執行提供運轉服務環境的軟體,是工作流程執行服務的核心組件。它的主要功能有:
(1)根據流程定義對流程進行執行個體化,即按照預先建立的流程定義,處理相關資料,產生一個流程執行個體;
(2)對流程執行個體運轉進行控制,包括流程的啟動、停止、掛起和啟用等;
(3)活動(任務)的處理,使參與者能夠參與具體的任務,例如進行填寫申請表、審批等操作;
(4)維護和處理工作流程的相關資料,例如流程運轉中的控制資料或者業務資料等;
(5)對外提供介面,用於其它調用。
在工作流程引擎的設計中,令牌(Token)機制被引入。令牌可以記錄流程正在執行的節點,從而隨著令牌的傳遞以此控制流程程的運轉。當使用者開啟一個流程的時候,工作流程引擎會根據流程定義來建立一個流程執行個體,並進行資料的處理。
其次工作流程引擎會找到所開啟的流程的開始節點,並建立一個根令牌,使跟令牌與開始節點關聯。接著引擎會根據路由規則推進流程的運轉與執行。在流程的運轉和執行過程中,工作流程引擎會根據節點的類型,來調用不同的演算法進行控制。其設計思路如3-6所示:
圖3-6 工作流程引擎設計思路
各種類型的節點根據其配置和效能不同,進行不同的處理,當節點流轉到結束類型節點的時候,說明流程已經運轉完畢,從而結束一個流程執行個體的運轉。