源码
https://gitee.com/pingfanrenbiji/flowable-springboot-demo
安装mysql 8
docker pull mysql
docker ps|grep mysql # 查看镜像id
docker run -id --name=mysql8 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 3218b38490ce(镜像id)
# 创建flowable-springboot数据库、编码utf8mb4
启动服务
会自动生成表结构
创建报销单
查看流程状态
此时是未审批时候的报销流程图
创建报销单接口
通过runtimeService.startProcessInstanceByKey方法发起一个流程,指定报销单流程模版xml文件,该xml模版可以由flowable web ui生成
经理审批流程
再查看流程状态
这是到达经理审批的流程图
审批接口
taskService.addComment # 任务评论
taskService.getTaskFormModel # 获取表单
taskService.completeTaskWithForm # 通过或驳回
原理简介
Flowable有五大引擎,每个之间都是相互独立互不影响
Flowable引擎在使用前需要先通过配置来初始化ProcessEngine。
初始化ProcessEngineConfiguration一般有两种方式:
- 通过Spinrg配置文件进行依赖注入,通过flowable.cfg.xml文件来初始化ProcessEngineConfiguration(这里的文件名必须为flowable.cfg.xml,否则Flowable识别不到)
- 通过编写程序的方式来构造ProcessEngineConfiguration对象
ProcessEngineConfiguration在初始化过程中会同时初始化数据库,如果数据库已经存在,则不会做创建更新操作,如果数据库不存在,则会默认执行数据库创建脚本。