Flowable 是什么
Flowable 是一个流行的轻量级的采用 Java 开发的业务流程引擎。
通过 Flowable 流程引擎,我们可以部署 BPMN 2.0 的流程定义(一般为XML文件),通过流程定义创建流程实例,查询和访问流程相关的实例与数据,等等。
Flowable 可以灵活地添加到我们的服务、应用、架构中,可以通过引入Flowable jar 包,或者直接使用 Flowable 的 Rest API 来进行业务流程引擎的操作。
Flowable 是基于 Activity5.0 的一个分支开发的,因此内部的很多概念都相似。
为什么使用 Flowable
假如要开发一个公司请假流程,员工填写请假单,然后提交给组长,之后提交给经理,最后提交给老板。这样的逻辑自己可以简单写代码实现,这个实现的版本的称为 1.0。
后来需求发生变更,如果请假天数较少可以直接提交给经理,不用提交给老板审批,可以在 1.0 的基础上进行修改,这个版本称为 2.0。
然后需求在次发生变更,需要在组长之前加入副组长审批,在 2.0 的基础进行修改,版本更新到 3.0。
每次从 1.0 到 3.0 里面的代码逻辑都要发生较大的变化,修改的工作量也是逐渐递增。在每次需求变更的过程中,其实最为复杂的逻辑是员工、组长、经理等各个用户办理自己任务的时机,无论是员工或是领导其做的事情其实都是查看请假单然后签字,因此如果能将各个用户办理自己任务的时机这个复杂的逻辑抽取出来,在每次需求变更后修改起来简单很多。
流程引擎就是对上面用户办理任务时机的这个逻辑进行高度抽象的成果。
Flowable 是如何减少工作量
可以类比于 3D 打印,将 3D 打印机连上电脑,然后在电脑上画好图纸,打印机就会按照图纸打印模型。Flowable 也是类似的原理,只要画好流程的图纸,Flowable 会按照每个用户输入,并结合图纸,控制不同的用户何时该办理自己的任务。一般请假的流程发生变更,需要做的事情就是重新绘制图纸。
将 Flowable 引入到项目中,做少量配置工作,就可以适应复杂且多变的业务场景。
参考资料
Flowable 也分商业版和开源版。
开源版的网址是 https://www.flowable.com/open-source/
商业版的网址是 https://www.flowable.com/
后面文章均基于开源版。