背景
業務場景涉及到流程審覈的地方,大多在業務數據上耦合 yes和no的字段區分完成審覈,但是在複雜流程下並不適應(會籤、加簽、並行、分支),開發人員可自行以對接開源流程引擎,但是面臨以下問題
1.學習成本、開發成本
2.控制流程的代碼耦合在業務代碼裏難以維護。
3.各個業務線項目大量重複繁瑣的流程控制代碼
複雜流程如下圖:
分支
目標
通過對接流程中心,開發人員不需要關注流程中心內部流程節點走向如何控制,不需要知道BPMN規範。
只需要針對各個流程節點的相關狀態做自己的業務邏輯處理,達到業務和流程控制隔離。
對接流程中心只需要完成以下步驟
1.通過流程中心提供的modeler設計器繪製流程圖
2.配置各節點的審覈人、http監聽回調、審覈頁、審覈按鈕(審覈通過、駁回、流程終止、轉辦、加簽等)
3.通過流程中心提供的openAPI發起流程
4.在監聽器回調處理自己的業務邏輯,如:審覈通過修改 業務單號狀態
一個簡單流程的生命週期
注:並不是所有用戶都是使用後臺管理有的用戶可能使用的是小程序,以下流程列表相關接口也是提供OpenAPI對外暴露,對接方根據自己業務需求自行設計入口
UI交互 以傳統後臺爲例 會多出這幾個菜單項
我們以商品價格審覈流程爲例
1.通過流程中心提供的modeler設計器繪製流程圖,並配置各個節點的審覈人、監聽回調、審覈頁、審覈按鈕
2.對接方在指定業務節點觸發流程中心發起流程接口,後續流程控制都在流程中心 對接方只需要關注流程到達指定節點或者各個節點對應狀態自身業務邏輯處理
flowable擴展
1.全局事件監聽器、任務監聽器、任務執行監聽器 擴展支持http回調
2.自定義userTask擴展增加支持審覈按鈕、url處理表單、url詳情表單、自動完成任務、是否是發起人節點配置
3.利用全局監聽器和任務執行監聽器完成流程狀態和任務狀態的定義(如發起流程流程狀態進行中、任務狀態待審覈)
4.流程進度圖繪製支持兼容自定義userTask和StartEvent
5.自動完成任務配置擴展
7.是否是發起人節點配置擴展
8.流程中心支持配置url回調 支持動態解析參數返回url?taskId=${taskId}&taskName=${taskName}&taskStatus=${taskStatus}