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 tasks

3.官方脚手架提供了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?