作者:微信小助手
发布时间:2023-06-25T18:05:49
项目中需要用到工作流引擎来设计部分业务流程,框架选型最终选择了 Camunda7,关于 Camunda以及 Activity 等其他工作流 引擎的介绍及对比不再介绍,这里只介绍与现有Springboot项目的集成以及具体使用及配置 流程(PROCESS): 通过工具建模最终生成的BPMN文件,里面有整个流程的定义 流程实例(Instance):流程启动后的实例 流程变量(Variables):流程任务之间传递的参数 任务(TASK):流程中定义的每一个节点 流程部署:将之前流程定义的.bpmn文件部署到工作流平台 Process Engine-流程引擎 Web Applicatons- 基于web的管理页面 官方文档 下面是官网的一些文档,有时间可以看看,下面说一些核心的东西。 为流程引擎,可以通过他获取相关service,里面集成了很多相关service,默认实现如下: 此服务提供用于管理和操作部署和流程定义的操作,使用camunda的第一要务 运行相关,启动流程实例、删除、搜索等 所有围绕任务相关的操作,如完成、分发、认领等 提供引擎搜集的历史数据服务 用户相关,实际中用不太到 maven 可以根据需要引用版本,我这边用的是 7.18 需要3个maven依赖,分别是对应 流程引擎、Web管理平台、提供rest api操作接口包 数据库 我这边使用的是mysql,建了个新库 camunda(可自定义),启动后会自动生成所需表结构 POM文件 application.yml 准备好前置工作,启动后效果如下: 数据库表结构 启动后自动生成的表结构如下 大概有这么几个表模块,重要的详细介绍下: 这部分表示用户模块,配置文件里面的用户,信息就在此模块 表示流程历史记录 ACT_RE_ 表示流程资源存储 ACT_RU_ 表示流程运行时表数据,流程结束后会删除 ACT_GE_ 流程通用数据 登录界面 登录地址为 前言
概念
核心组件
API介绍
ProcessEngine
RepositoryService
RuntimeService
TaskService
HistoryService
IdentityService
Springboot集成
依赖集成
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter</artifactId>
<version>7.18.0</version>
</dependency>
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
<version>7.18.0</version>
</dependency>
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
<version>7.18.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>camunda-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>camunda-demo</name>
<description>camunda-demo</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter</artifactId>
<version>7.18.0</version>
</dependency>
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
<version>7.18.0</version>
</dependency>
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
<version>7.18.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.32</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>server:
port: 8081
# camunda登录信息配置
camunda.bpm:
admin-user:
id: admin #用户名
password: 123456 #密码
firstName: yu
filter:
create: All tasks
# mysql连接信息
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:8101/camunda
username: root
password: 123456
type: com.mysql.cj.jdbc.MysqlDataSource启动效果
act_hi_actinst
: 执行的活动历史act_hi_taskinst
:执行任务历史act_hi_procinst
:执行流程实例历史act_hi_varinst
:流程变量历史表
act_re_procdef
:流程定义存储act_re_deployment
: 自动部署,springboot每次启动都会重新部署,生成记录
act_ru_execution
:运行时流程实例act_ru_task
:运行时的任务act_ru_variable
:运行时的流程变量
act_ge_bytearray
:每次部署的文件2进制数据,所以如果文件修改后,重启也没用,因为重新生成了记录,需要清掉数据库,或者这个表记录