Activiti_并行网关_退回实现案例

Activiti工作流开源引擎是国外组件,设计者没有考虑国内大部分中国式的流程场景,其中对于并行流程分支,单分支退回其他分支仍在运行是我们不能理解的;

我们希望看到是,并行网关流程分支中,只要有人退回,即认为总流程被退回;即某一分支退回,最终的结果是撤销总流程中所有人的待办,同时杀掉该流程进程;

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_并行网关_退回实现案例

 

 

参考资料:

Activiti 并行网关实现撤回功能_程序员刘先生的博客-CSDN博客

 activiti之并行网关,驳回_勤奋写代码的人-CSDN博客_activiti并行网关驳回

Activiti 数据库表结构 | 开发文档

上一篇:activiti与实际业务关联


下一篇:Activiti6简明教程