背景
最近在做一个关于审批的项目,审批流程需要动态管理,自己从零开发成本很大,于是决定使用Flowable流程引擎来进行开发。第一次使用工作流进行开发,完全是在摸索中进行,网上资料很少,所以,我在这里分享一下我使用到的关于Flowable的知识。大家一起进步!
介绍
官方地址:https://flowable.com/open-source/
Flowable项目提供了一组紧凑且高效的开源业务流程引擎核心。它们为开发人员,系统管理员和业务用户提供了工作流和业务流程管理(BPM)平台。
它的核心是闪电般的,经过实践检验的动态BPMN流程引擎,以及随附的DMN决策表和CMMN案例管理引擎,所有这些都是用Java编写的。它们是Apache 2.0许可的开放源代码,拥有一个致力于的社区。
所有引擎都可以嵌入Java应用程序中运行,也可以作为服务器,集群和云中的服务运行。它们可以作为独立的引擎或服务运行,也可以集成在一起以提供丰富的业务流程管理套件。它们与Spring完美集成。凭借丰富的Java和REST API,它们是编排人或机器人自动化处理的理想基础。它们启用微服务编排或对微服务本身进行软连接。
简单来说:Flowable是一个流行的轻量级的采用Java开发的业务流程引擎。通过Flowable流程引擎,我们可以部署BPMN2.0的流程定义(一般为XML文件),通过流程定义创建流程实例,查询和访问流程相关的实例与数据,等等。
Flowable可以灵活地添加到我们的服务、应用、架构中,可以通过引入Flowable jar包,或者直接使用Flowable的Rest API来进行业务流程引擎的操作。
Flowable是基于Activity5.0的一个分支开发的,因此内部的很多概念都相似。
spring boot集成flowable
pom引入
<properties>
<java.version>1.8</java.version>
<flowable.version>6.6.0</flowable.version>
</properties>
<dependencies>
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter-process</artifactId>
<version>${flowable.version}</version>
</dependency>
<!-- flowable UI集成,项目前端使用到了流程设计器所以整合了flowable modeler-->
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-ui-modeler-rest</artifactId>
<version>${flowable.version}</version>
</dependency>
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-ui-modeler-conf</artifactId>
<version>${flowable.version}</version>
</dependency>
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-ui-modeler-logic</artifactId>
<version>${flowable.version}</version>
</dependency>
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-form-spring-configurator</artifactId>
<version>${flowable.version}</version>
</dependency>
</dependencies>
yml配置
flowable:
common:
app:
idm-url: http://localhost/flowable-idm
idm-admin:
user: admin
password: test
async-executor-activate: false #关闭定时任务JOB
database-schema-update: true # 将databaseSchemaUpdate设置为true。当Flowable发现库与数据库表结构不一致时,会自动将数据库表结构升级至新版本。
flowable类介绍
❤ RepositoryService: 操作和管理流程的定义和部署,deployment(部署)是ProcessEngine的基本单元。
❤ RuntimeService:每一个流程都可以创建许多的运行实例,RuntimeService启动流程的实例,检索和存储实例的变量信息。
❤ IdentityService:管理组和用户的身份认证信息。
❤ FormService:可选的服务。
❤ HistoryService:检索ProcessEngine的历史数据。
❤ ManagementService:检索数据库的元数据和表的信息,在编程的时候一般用不到。
❤ DynamicBpmnService:动态的改变流程的定义,并且不需要重新部署,在生产环境很少使用。
最后
今天先做一下简单的认识,以后会更新一些flowable我在项目中用到的功能。敬请期待!
功能预览: