公司準備開發一套工作流引擎,以前沒有什麼OA開發經驗,也是第一次設計工作流引擎,我把我的一些思路分享一下,希望得到些幫助或者能幫助到一些人。 產品的定位: 1、能夠做到前後端分離 2、可以做到項目的分離使用,通過介面來實現 3、支持複雜流程邏輯 例如: 填寫加班表單-》多人審核=》退回=》填寫證明人
公司準備開發一套工作流引擎,以前沒有什麼OA開發經驗,也是第一次設計工作流引擎,我把我的一些思路分享一下,希望得到些幫助或者能幫助到一些人。
產品的定位:
1、能夠做到前後端分離
2、可以做到項目的分離使用,通過介面來實現
3、支持複雜流程邏輯 例如: 填寫加班表單-》多人審核=》退回=》填寫證明人=》指定人審核=》通過
或者
等等。
設計思想
一、通過對審批流程的分解可以得到三個動作 ,然後對這三個動作進行更細的分析得出結果如下:
1、提寫表單
表單表:例如加班單
表單元素表:加班單裡面需要填寫的輸入框和下拉框等
表單存儲表:加班單點擊提交存儲的值
表單事件表:如驗證件,提交事件等
2、選擇審核人
審核表:存儲上一次動作的審核信息
審核用戶表:所需要的審核人
審核組織架構表:查詢所需要用的組織架構
3、條件判定
判定表:複雜的工作流中會對流程的結果進行判定,例如請假天數超過N天進行XXX動作
從填寫【表單】開始,後面可以是 【判定】 也以是【審核】也可以是繼續填寫表單,這樣就型成了一個工作流
二、動作通用表,考慮到良好的用戶體驗添加了附件、回覆和@功能
主貼表:可以進行回覆
從貼表:可以對回覆進行跟貼
附件表:可以對動作添加多個附件
三、動作歷史表
動作記錄:在一種特殊情況下會用的到,就是你的操作被撤回到上一個動作, 這個時候就需要一個歷史記錄進行查看。