实例代码
Demo环境
idea 2020.1 + Maven + Mysql
使用步骤
1.下载好代码,通过idea或者eclipse 编译,初始化环境
2.安装mysql ,注意Camunda对应的Mysql版本是有限制的,支持的Mysql 版本为 5.1 ,5.5, 5.6,使用的mysql 驱动类,一般为5.1,和8.0
网上有说 5.5,5.6,5.7的mysql-connector-java不支持,具体没有验证,本项目用的是8.0版本的表示没有什么问题。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
3.默认的H2数据库是不用手动初始化数据库的,下面讲的是 MySQL初始化数据库,Resources目录下面有个,comunda_init_sql.sql文件,直接执行里面的sql 应该就能还原一个完整的库,还有一种初始化库的方法,在camunda-engine包下面有一个engine–>db–>create目录下有很多库的初始化sql,这样就可以很方便的找到相应的初始化sql了,但是这些sql执行的时候有可能会报错(大部分是数据库版本问题)具体想要查camunda对应的数据库支持版本,还是需要去官网找的。
https://docs.camunda.org/enterprise/announcement/
初始化完之后的数据库是这样的:
OK,上代码讲解了,
代码演示
1.首先注意我自定义的Resources文件夹下面的DZJY.bpmn文件,
划重点:ID 字段配置, Camunda 会自动扫描资源目录下面的.bpmn文件,并且会解析这些文件的合法性,后面会讲不合法会报啥错,系统在调用流程的时候也会通过这个ID去找对应的BPMN流程
2.启动项目
正常启动是这个样子,如果bpmn文件里面有错误,这里会直接解析失败。
访问camunda网站:
http://localhost:8080/app/cockpit/default/#/login
最初是0,0,0
演示如何启动自定义的bpmn
启动流程
代码:
通过Swagger-Ui调用
http://localhost:8080/swagger-ui.html#/rwgk-controller/ParticipatingProjectUsingPOST_1
流程成功启动
启动配置细节
配置流程节点的分组,${department} 表示,引用系统中的变量属性值
对应的代码里面这个参数:
调用的上面提到的流程ID对应的是PROCESS_ID这个参数:
获取流程TaskId
1.调用
获取预处理流程节点任务ID
流程图配置:
代码逻辑:
主要是通过之前流程节点设置的属性去查找的(建议最好不要有中文,时不时就给你乱码,都找不到原因的那种),
taskName对应的是“预处理”
${department}对应的是启动流程时设置的“武汉大学”
获取到预处理流程的ID
执行预处理操作:
process 对应的属性是预处理流程节点上的一个变量
逻辑代码
执行成功后,流程图就会变成这样,进入下一步
进入的条件是:
就是这个finish_process变量值大于25 ,刚刚设置的是26,满足条件,如果不满足条件就会走下面这条:
自循环了,
大概Demo讲解就到这了。后期慢慢完善。