前言:並行審批是比較常見的流程模式,在工作流模式介紹中,通常是多個分支通過網關(Gateway)來控制實現。預設的分支類型是靜態定義好的。本文擴展了並行網關的控制方式,實現了動態多實例的並行分支網關,便於用戶業務流程的審批過程實現。 1. 業務過程描述 並行評審需求是在多個部門同時發生,此時會有多個 ...
前言:並行審批是比較常見的流程模式,在工作流模式介紹中,通常是多個分支通過網關(Gateway)來控制實現。預設的分支類型是靜態定義好的。本文擴展了並行網關的控制方式,實現了動態多實例的並行分支網關,便於用戶業務流程的審批過程實現。
1. 業務過程描述
並行評審需求是在多個部門同時發生,此時會有多個並行分支的實例【員工填表->組長審批】。各個分支序列獨立執行,直到所有並行分支序列全部執行完畢後才達到匯合條件。然後流程經過匯合網關繼續向下執行流程。
並行評審的實例數據:
A部門:員工填表-->組長審批
B部門:員工填表-->組長審批
C部門:員工填表-->組長審批
...
在Split網關階段,根據員工填表節點上定義的角色數據,獲取人員列表,然後動態產生並行分支數據。即同時產生多個員工填表的實例數據,以此實現多實例模式。分支的數目就是選取員工填表節點上的人員數目。
2. 模式說明
模式名稱:並行分支多實例
1) 與分支(多實例):AndSplitMI
表示可以產生多實例的並行分支數據。
2) 與合併(多實例):AndJoinMI
表示需要合併並行多實例分支數據。
屬性定義:在網關屬性頁面完成分支和合併節點的類型定義。
3. 程式開發實踐
增加NodeMediator的子類型,用於實現並行分支網關的業務邏輯。程式架構設計類圖如下:
4. 總結
Slickflow 引擎產品遵循工作流模式架構設計的原則,編碼實踐始終保持產品新功能的可控開發,這樣實踐的好處是:產品功能擴展邏輯清晰,現有代碼重構目標明確,降低引擎功能擴展帶來的程式複雜性。