Flowable-1.入门学习
Flowable框架学习笔记-01-入门学习
Springboot+Flowable快速实现工作流
参考学习链接:
https://blog.csdn.net/puhaiyang/article/details/79845248?utm_source=blogxgwz8
【1】项目启动测试
a.先启动项目,然后创建一个流程:
访问:http://localhost:8080/expense/add?userId=haha&money=13888
返回:提交成功.流程Id为:36 (此处生成的流程id可以用于查看指定的流程图)
b.查询待办列表:(返回指定用户相关的所有待办列表)
访问:http://localhost:8080/expense/list?userId=haha
输出:Task[id=51, name=出差报销]、Task[id=42, name=出差报销]
c.同意:(同意申请,此时再次查看指定用户的待办则可看到该流程已结束不会出现在待办中)
访问:http://localhost:8080/expense/apply?taskId=51
返回:processed ok!
d.生成流程图:(实时监测当前流程状态)
访问:http://localhost:8080/expense/processDiagram?processId=2501
【2】启动项目问题解决
项目启动连接数据库报错:
如果是数据库连接时区不正确:需要在数据库连接url中引入如下参数
?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
如果是flowable相关的数据库建表语句出错,则在数据库连接url中引入如下参数,并相应清空残余的数据表
在数据库连接utl添加指定参数:&nullCatalogMeansCurrent=true
如果是xml配置则指定:&nullCatalogMeansCurrent=true
问题分析:在springboot集成flowable中,springboot启动的时候就会自动创建流程所有依赖的表,但是连接mysql数据库的时候报错,初步考虑是msyql8以上的版本,在本机建过相同的表(Activi相关)的时候,就会报这个错误
在初始化现有flowable项目启动失败报错:
Caused by: org.flowable.common.engine.api.FlowableException: couldn't create
在url中指定参数&nullCatalogMeansCurrent=true
之后尝试启动报错(此前已经引入flowable相关的数据表),再次尝试启动则报数据表已经存在的错误,此时再次去除参数&nullCatalogMeansCurrent=true
,项目正常启动
Flowable和Mysql的版本问题:
MYSQL 5.5以前的版本和5.6.4以上的在dump sql语句的时候会在TIMESTAMP中会有区别,5.5以前的是timestamp,而5.6.4以上的是timestamp(0)后面有跟时间戳,则可通过升级MYSQL到5.6以上版本解决
个人任务查询查询日志配置:
引入日志相关依赖
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
log4j.properties配置内容如下(自定义配置:Task类,IDEA快捷键Ctrl+H,找到TaskEntity)
log4j.rootLogger=ERROR, CA
# ConsoleAppender
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n
log4j.logger.org.flowable.form.engine=DEBUG
#custom
log4j.logger.org.flowable.task.service.impl.persistence.entity=DEBUG
如果配置完成日志不打印,则考虑是jar冲突