更新時間:2022-11-01 09:55:56 來源:動力節(jié)點 瀏覽5120次
該流程引擎完全開源免費,致力于打造與平臺組織架構(gòu)無關(guān)、高擴(kuò)展的工作流引擎。
通過自定義用戶選擇器和條件處理器實現(xiàn)既有業(yè)務(wù)的組織架構(gòu)關(guān)聯(lián)和審批過程處理。



直接從git下載源碼編譯。
建議以分布式子系統(tǒng)或者微服務(wù)形式部署。
項目自帶流程編輯器,以及 簡單的流程模擬功能.

WorkFlowCore
是整個引擎的核心,核心通過抽象,允許 部分功能通過外部擴(kuò)展
WorkFlowCore.Framework
是抽象的其中一個擴(kuò)展,默認(rèn)實現(xiàn)了以json文件為持久化的倉儲 Repository和兩個事件處理demo
WorkFlowCore.Host
是web服務(wù)的啟動項目,在這里寫接口代碼
WorkFlowCore.Selector
是抽象的其中一個擴(kuò)展,默認(rèn)實現(xiàn)兩個 用戶選擇器和條件處理器,
WorkFlowCore.Test
單元測試
Repository
框架默認(rèn)實現(xiàn)的只是一個以json文件為持久化的倉儲,實際使用應(yīng)該實現(xiàn)自己的持久化程序,實現(xiàn) IBasicRepository 接口,將程序注冊到容器服務(wù)中。



不同項目的組織架構(gòu)不同,這也是為什么要寫這個框架,就是要把用戶的選擇從框架中抽取出來。
實現(xiàn)自定義用戶選擇器需要實現(xiàn) IUserSelector 接口:
GetSelections 方法返回用戶的選項類型,可以返回一些類型(比如角色,職位等組織架構(gòu)信息)也可以直接返回用戶列表
GetUsers 方法是在流程審批過程中,結(jié)合流程的各項參數(shù)去解析獲取實際的用戶數(shù)據(jù),這里返回的是根據(jù)條件匹配到的用戶列表。

自己實現(xiàn)的選擇器需要注冊到容器服務(wù)中

一般的條件處理使用默認(rèn)的條件處理可以完成,但是需要復(fù)雜的條件處理就需要自定義實現(xiàn)。比如需要根據(jù)表單中某個值去獲取其它信息進(jìn)行判斷,就需要自己解析。
具體解析要看表單數(shù)據(jù)格式,具體問題具體分析。
要自定義 條件處理器 需要實現(xiàn) ICondition 接口,該接口只有一個方法 CanAccept,結(jié)合流程數(shù)據(jù)判斷某個路徑是否能走。

注冊選擇器到容器服務(wù)中

目前系統(tǒng)提供 流程推送事件和流程結(jié)束事件,需要實現(xiàn)更多擴(kuò)展功能比如通知處理流程,流程結(jié)束后推送消息之類的需求,需要自己實現(xiàn)ISendTaskEventHandler 和 ITaskFinishedEventHandler
實現(xiàn)的事件擴(kuò)展需要注冊到服務(wù)中
