Flowable工作流是一款基于Java的轻量级开源工作流引擎,它支持BPMN2.0规范、CMMN规范,同时也提供REST API以及JavaAPI,支持Spring,Spring Boot等框架。借助Flowable工作流,企业可以快速构建出符合自己实际业务的工作流。
一、工作流概念
工作流(Workflow),是指对于一项业务,按照规定的流程,逐级传递、申请、执行等,并且受到了严格控制的一种业务过程。
而BPM(Business Process Management)是指对于某项业务的整个生命周期进行全面管理的一种模式,最核心的内容包括了工作流、决策、交互等。在这些管理过程中,人员、系统等资源都是可以被自动调度的,以致达到更高效、完善的管理目的。
二、为什么选择Flowable工作流
1、轻量级:Flowable工作流是一款轻量级的工作流引擎,启动快、体积小,且可以嵌入Java应用中使用。
2、开放源代码:Flowable工作流是一个开源的工作流引擎,保证企业在使用过程中不会受到第三方的监控与限制。
3、商用友好:Flowable工作流允许企业在商业环境下进行使用,并且提供Flowable Task一类的额外服务。
三、Flowable工作流入门
1、下载安装:Flowable工作流可以在Flowable官网下载。下载完成后,可以解压缩后即可使用。
2、工作流模型:使用Flowable工作流进行流程管理,需要先定义出流程模型。这部分可以通过BPMN2.0规范进行定义。比如一个简单的流程模型可以是这样的:
3、引入依赖:在Java代码中使用Flowable工作流,需要引入相关的依赖。具体可以参见pom.xml如下:
<dependencies> <dependency> <groupId>org.flowable</groupId> <artifactId>flowable-spring-boot-starter</artifactId> <version>6.6.0</version> </dependency> </dependencies>
4、启动流程实例:在Java代码中启动流程实例,可以使用如下代码:
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); RuntimeService runtimeService = processEngine.getRuntimeService(); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess");
四、Flowable工作流高级应用
1、自定义任务表:默认情况下,Flowable工作流使用Act_RU_TASK表进行任务存储。如果需要使用自定义任务表,则可以像下面的代码一样配置流程引擎:
ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration() .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP) .setJdbcUrl("jdbc:h2:mem:flowable;DB_CLOSE_DELAY=-1") .setJdbcUsername("sa") .setJdbcPassword("") .setJdbcDriver("org.h2.Driver") .setCustomMybatisMappers(Collections.singletonList(UserTaskMapper.class)) .setCustomMybatisXMLMappers(Collections.singletonList("mappings/userTaskMapper.xml")); ProcessEngine processEngine = cfg.buildProcessEngine();
2、定时任务:在Flowable工作流中,定时任务可以通过继承JobHandler接口来实现,具体可以参考下面的代码实现:
public class MyJob implements JobHandler { @Override public void execute(JobEntity jobEntity, String s, CommandContext commandContext) { // do sth } }
3、多租户:Flowable工作流引擎可以支持多租户环境,即根据不同租户来区分流程管理等。具体操作可以参考官方文档实现。
五、总结
本文主要介绍了Flowable工作流的基本概念、选择优势、入门介绍以及高级应用。Flowable工作流作为一款轻量级的工作流引擎,可以帮助企业高效构建出符合自己实际业务的工作流,值得我们深入学习与应用。