前言
项目用到工作流,写一篇使用流程,让大家看一篇博客就能上手Flowable,因为网上有很多文档或多或少说的七七八八,所以本文不再赘述
官网地址:https://www.flowable.org/
Flowable6.3中文教程:https://tkjohn.github.io/flowable-userguide/#_introduction
GitHub:https://github.com/flowable
可以在官网下载对应的jar包在本地部署运行,官方提供了下面的五个应用程序:
Flowable 简介
用户名/密码:admin/test
甲、安装
安装tomcat
有了不用装
Tomcat安装与配置教程(图文教学)
安装Flowable
整合数据库
首次链接数据库会创建流程所用的表,想知道创建了什么数据库可看 丙
ACT_RE_ *:RE代表repository。具有此前缀的表包含静态信息,例如流程定义和流程资源(图像,规则等)。
ACT_RU_ *:RU代表runtime。这些是包含运行时的流程实例,用户任务,变量,作业等的运行时数据的运行时表。Flowable仅在流程实例执行期间存储运行时数据,并在流程实例结束时删除记录。这使运行时表保持小而快。
ACT_HI_ *:HI代表history。这些是包含历史数据的表,例如过去的流程实例,变量,任务等。
ACT_GE_ *:general数据,用于各种用例。
ACT_ID_*:Idm的用户、组
=====================================================
ACT_HI_ACTINST 流程实例的历史运行节点表
ACT_HI_TASKINST 流程实例的历史任务表
ACT_HI_VARINST 流程实例的历史运行节点的变量表
ACT_HI_PROCINST 流程历史部署记录
ACT_HI_IDENTITYLINK 对应ACT_RU_IDENTITYLINK的历史记录表
ACT_RE_DEPLOYMENT 流程部署
ACT_RE_PROCDEF 流程定义表
ACT_RU_EXECUTION 流程实例执行过程的所有节点记录
ACT_RU_IDENTITYLINK 流程实例运行过程中,各节点对应的用户
ACT_RU_TASK 流程实例运行时的任务表
ACT_RU_VARIABLE 流程实例运行时节点的变量表
ACT_GE_BYTEARRAY 资源文件表
这地方注意个点 需要下载JDBC,还要注意使用驱动,默认是注释的
# 修改前
#spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:~
# 修改后
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost/flowable
进入官网下载MySql地址:https://dev.mysql.com/downloads/connector/j/
整合Spring
Flowable实战(一)启动第一个完整流程
springboot整合flowable框架入门步骤
乙、画图
上边安装的这篇文章有论述
flowable-ui的简单使用
说几个注意点来补充
注: 绘图常见报错
①连线
想要直角线,先点加转折点,然后在需要加点的地方直接点
②名称
${depManager}
③条件
${handleCode=="disagree"}
④ 单节点多人
一个节点多人参与审批配置
⑤跳过
需要动态跳过某个节点时配置${skip}
变量名可修改 赋值为true即可跳过
//开启跳过节点
map.put("_FLOWABLE_SKIP_EXPRESSION_ENABLED",true);
//是否跳过
map.put("skip", true);
注意不要放在完成、创建事件中,放在提交事件前,然后执行 完成、创建事件。
想放在完成、创建事件则需要调用提交
⑥校验
保存之前先检验,修改完错误再保存
导出
丙、拓展
自动创建多张表,自己并不知道具体是那些,查看SQL
mysql查看表的创建时间
总结:查看新建表
SELECT *
FROM `information_schema`.`TABLES`
WHERE `information_schema`.`TABLES`.`TABLE_SCHEMA` = 'test' -- database
and `information_schema`.`TABLES`.`CREATE_TIME` > '2022-10-10 14:36:01' -- 从这里开始
AND `information_schema`.`TABLES`.`TABLE_NAME` LIKE 'a_%' -- 表名c_开头
order by `information_schema`.`TABLES`.`CREATE_TIME`; -- 创建时间正序**
丁、报错
后端
- 版本
springjar包版本和数据库版本不一致会报错
Could not update Flowable database schema: unknown version from database: ‘xxx‘
- 字段
Unknown property used in expression:
org.flowable.common.engine.api.FlowableException: Unknown property used in expression: ${assignee}
at org.flowable.common.engine.impl.el.JuelExpression.getValue(JuelExpression.java:50)
at org.flowable.engine.impl.bpmn.behavior.UserTaskActivityBehavior.handleAssignments(UserTaskActivityBehavior.java:272)
at org.flowable.engine.impl.bpmn.behavior.UserTaskActivityBehavior.execute(UserTaskActivityBehavior.java:232)
at org.flowable.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior.execute(MultiInstanceActivityBehavior.java:130)
工作流文件配置的人员,和后端传入的人员名称不一样就会报错,或者不一致也会。比如下个节点是netWork
传network
和depManager
都是错误,多检查
绘图
单独写篇文章汇集报错
flowable-ui绘图常见错误