Camunda实战教程
简介
camunda工作流源自activity5,是德国一家工作流程自动化软件开发商提供的、现在同时提供camunda7(组件方式)与LAcamunda8(基于云原生)两种平台。
支持
BPMN:业务流程模型和标记。
FROM:表单。
DMN:模型决策。
安装
后端
可通过camunda提供的自动生成的网页工具初始化工程。

需要注意的是:
1.官方提供的工具默认是jdk17版本,因此初始化完工程后,要求版本是jdk1.8的,在本地进行修改即可。
2.脚手架默认提供的数据库是用的H2,可在配置文件中修改为常用的mysql数据库。
spring:
datasource:
#配置mysql数据看
url: jdbc:mysql://localhost:3306/camunda?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
username: root
password: 123456
camunda:
bpm:
#配置admin用户
admin-user:
id: demo
password: demo
first-name: demo
filter:
create: All tasks3.官方脚手架提供了spring security拦截,会导致无法登录,可把pom里面的spring security依赖进行注释,来启动工程。
前端流程设计器
web端可根据https://github.com/camunda/camunda-bpmn-js 来打包部署。
桌面端,官方提供了客户端下载地址。https://camunda.com/download/modeler/

实战
请假流程
第一步,发起请假流程。在开始处增加变量:user。

第二步,拖动一个用户任务,分配人为第一步指定的用户。

同时增加from表单输入,增加姓名,原因,请假天数字段。

第三步,设置上级审批人。

增加审批意见表单。

部署

部署之后,在驾驶舱就可以看到请假的流程和当前流程进度了。

开启一个流程
增加开启流程的接口:
@GetMapping("/start/{processKey}")
public void start(@PathVariable(value = "processKey") String processKey,String name) {
identityService.setAuthenticatedUserId("user");
HashMap<String, Object> map = new HashMap<>();
map.put("user",name);
runtimeService.startProcessInstanceByKey(processKey,map);
}通过postman请求,开启一个流程。

可以看到,任务分给了dcx用户。
dcx填写姓名,原因,天数进行请假申请后,流程会流转到demo用户。
切换到demo用户,进行上级审批。

流程结束。
Last updated
Was this helpful?