Activiti工作流開源引擎是國外組件,設計者沒有考慮國內大部分中國式的流程場景,其中對於並行流程分支,單分支退回其他分支仍在運行是我們不能理解的;
我們希望看到是,並行網關流程分支中,只要有人退回,即認為總流程被退回;即某一分支退回,最終的結果是撤銷總流程中所有人的待辦,同時殺掉該流程進程;

以下為基本設計思路
數據庫工作流相關核心表:
所有流程實例:(對應數據庫中表:act_hi_procinst)
所有流程實例節點(對應數據庫中表:act_hi_actinst)
所有運行任務(對應數據庫中表:act_hi_taskinst)
當前運行任務(對應數據庫中表:act_ru_task)
執行實例表(對應數據庫中表:act_ru_execution)
並行網關退回實現思路:
1. 所有相關實例任務核心表,都有共同根實例‘PROC_INST_ID_’
2. 執行退回動作時,
a. 記錄根流程實例狀態;
b. 記錄根實例下所有歷史實例、任務狀態;
c. 刪除根實例下所有當前運行任務、執行實例;

參考資料:
Activiti 並行網關實現撤回功能_程序員劉先生的博客-CSDN博客
