工作流引擎需要解决的常见问题:顺序执行/并发分支执行/子流程/嵌套流程等。这些概念怎么落地呢?
在flowable中.执行流对象用简单的嵌套关系优雅解决了这类问题。当我们打开flowable数据库时,ACT_RU_EXECUTION表中可以找到如下信息:
select a.id_,a.ACT_ID_,a.BUSINESS_KEY_,a.PROC_DEF_ID_,a.PROC_INST_ID_,a.ROOT_PROC_INST_ID_,a.PARENT_ID_,a.SUPER_EXEC_,a.*from ACT_RU_EXECUTION a;
这些字段存储的信息,构成了一个流程实例的完整现状,流程实例、执行流(单分支/并行分支),子流程等,都使用了这些内容进行构建。
在运行期,流程实例执行流/分支执行流/并行执行流/子流程执行流(完整包含流程实例执行流/分支执行流/并行执行流/子流程执行流等),都会存储在当前表中。所以,当一个简单的流程启动时,当前表中至少存在两条数据,一条对应的是业务实例执行流,还有一条就是运行分支执行流。
当由单一执行流进入并行分支时,将会添加并行执行流进入,也就是大于2条执行流,并且处于激活状态的执行流有多个。
大家在运行流程是,不防监测下运行过程中数据的变化。
弄清楚了执行流/执行树,flowable工作流引擎也就初步入门了.........希望有意向改造或使用的同事们自行跟踪下运行数据变化...
6月11日,将迎来flowable版工作流封装一周年之际,希望在这之前能完成阶段性总结.....