camunda-bpm-platform 使用手册
📄字数 4.7K
👁️阅读量 加载中...
本文档将介绍如何使用 camunda-bpm-platform v7.18.0 在 spring-boot-web 应用中连接 XuguDB,并部署 BPMN 和 DMN 模型,开启、处理流程实例等功能。
框架名称 | 适配起始版本 | 官网地址 | 源框架下载地址 | XuguDB框架下载 | demo程序地址 |
---|---|---|---|---|---|
camunda-bpm-platform | 7.18.0 | camunda 官网 | camunda 源码 | 版本发布 | xugu-camunda-bpm-platform |
提示
其他支持版本可详见版本发布列表
一、使用说明
1.1 下载 camunda-bpm-platform 虚谷适配源码
访问虚谷数据库开放源代码仓库,选择所需版本分支。
图 1.1 虚谷camunda-bpm-platform仓库分支选择
直接下载当前分支源码(本地未安装 Git)。
图 1.2 虚谷camunda-bpm-platform分支代码下载
1.2 安装 camunda-bpm-platform 到本地 Maven 仓库
推荐使用 JDK-11 和 Maven-3.6.x 运行环境,ui 模块编译需要 Node.js-16。
图 1.3 camunda-bpm-platform源码编译环境
使用 Maven 命令
mvn clean install -Dmaven.test.skip=true -pl !webapps
安装 camunda-bpm-platform 到本地 Maven 仓库,出现BUILD SUCCESS
即安装成功。图 1.4 camunda-bpm-platform本地maven仓库部署
图 1.5 camunda-bpm-platform本地maven仓库部署成功
二、连接示例
2.1 前提条件
- 计算机已安装 JDK 1.8 和 Maven。
- 计算机已安装 IntelliJ IDEA。
- 计算机已安装 DBManager 或者 xgconsole。
- 计算机已部署 XuguDB 12.0.0 或有能连接访问的虚谷数据库实例。
- 桌面建模器(非必需):Camunda Desktop Modeler
提示
本文档示例程序运行使用的软件为 IntelliJ IDEA 2025.1.2 (Community Edition),也可以按照自己的喜好选择其它开发工具运行此示例程序。
2.2 操作步骤
- 导入
xugu-camunda-bpm-platform
项目到 IDEA 中。 - 修改
xugu-camunda-bpm-platform
项目中数据库连接信息。 - 运行
xugu-camunda-bpm-platform
项目。
提示
本文是在 Windows 环境中进行操作说明的,如果使用的是其它操作环境,那么与本文中的步骤可能存在不同。
2.2.1 导入 xugu-camunda-bpm-platform
项目到 IDEA 中
参考 IntelliJ IDEA 官方文档,导入项目。
- 启动 IntelliJ IDEA。 如果欢迎屏幕打开,请选择左侧栏目中项目(Projects)-> 右侧选项打开(Open)。 否则,请转到左上角主菜单的 文件(File)-> 打开(Open)。
- 在打开的对话框中,选择下载的源代码、库目录下的二级目录
xugu-camunda-bpm-platform7.18.0
,然后点击 Select Folder 打开。
项目结构设置
更改项目 SDK 设置:参考 SDK | IntelliJ IDEA 文档,请点击右上角工具栏上的齿轮⚙设置按钮并选择项目结构按钮(Project Structure...)。 或者,前往 文件(File)-> 项目结构(Project Structure...) 或按
Ctrl
+Alt
+Shift
+S
。图 2.1 xugu-camunda-bpm-platform项目JDK设置
项目 Maven 设置:参考 Maven | IntelliJ IDEA 文档,文件 -> 设置 -> 构建、执行、部署 -> 构建工具 -> Maven。
图 2.2 xugu-camunda-bpm-platform项目Maven设置
检查
pom.xml
依赖设置图 2.3 xugu-camunda-bpm-platform项目依赖设置
camunda-bpm-platform
需要使用适配虚谷版,在示例项目根目录中执行以下 Maven 命令,并刷新/重新加载 Maven 项目。shellmvn install:install-file -Dfile=./lib/camunda-engine-7.18.0.jar -DgroupId=org.camunda.bpm -DartifactId=camunda-engine -Dversion=7.18.0 -Dpackaging=jar
提示
已执行过步骤 1.2 不再需要执行此步骤
2.2.2 修改 xugu-camunda-bpm-platform
项目中数据库连接信息
执行示例项目中
xugu-camunda-bpm-platform7.18.0/sql/
目录中xugu.sql
,创建数据库和表结构。sql-- system库中执行 CREATE DATABASE `camunda` CHARACTER SET 'utf8_general_ci' TIME ZONE 'GMT+08:00'; USE camunda; CREATE USER `camunda_demo` IDENTIFIED BY 'camunda_demo'; GRANT CREATE ANY TABLE IN SCHEMA `camunda_demo` TO `camunda_demo`;
修改
xugu-camunda-bpm-platform7.18.0/src/main/resources/application.yml
文件中的数据库连接信息。图 2.4 xugu-camunda-bpm-platform项目配置详情
yamlspring: datasource: # 数据库url连接。关键字过滤:SELF url: jdbc:xugu://127.0.0.1:5138/camunda?KEYWORD_FILTER=SELF # 数据库用户名 username: camunda_demo # 数据库密码 password: camunda_demo # 数据库驱动类名 driver-class-name: com.xugu.cloudjdbc.Driver # 数据库连接池类名称 type: com.alibaba.druid.pool.DruidDataSource druid: # 初始化连接池大小 initialSize: 5 # 最小连接数 minIdle: 10 # 最大连接数 maxActive: 20 # 获取连接时的最大等待时间,超过该时间则抛出异常 maxWait: 6000 # 间隔多久才进行一次检测,检测需要关闭的空闲连接 time-between-eviction-runs-millis: 2000 # 连接在被清理前的最小空闲时间 # 如果此时minEvictableIdleTimeMillis还没有赋值,则使用默认值1800000 min-evictable-idle-time-millis: 600000 max-evictable-idle-time-millis: 1800000 # 心跳检测语句 validationQuery: SELECT 1 testWhileIdle: true # 申请连接时执行validationQuery检测连接是否有效,默认true,开启后会降低性能 testOnBorrow: false # 归还连接时执行validationQuery检测连接是否有效,默认false,开启后会降低性能 testOnReturn: false keep-alive: true camunda: bpm: # 将创建管理员用户 “admin” 并提供的密码和名字 admin-user: id: admin password: 123456 firstName: w # 将为 Tasklist 创建名为 “All tasks” 的默认筛选器 filter: create: All tasks # 禁止自动部署resources下面的bpmn文件 auto-deployment-enabled: false
提示
官方文档链接:camunda-engine-properties
2.2.3 运行 xugu-camunda-bpm-platform
项目
2.2.3.1 运行路径
在项目路径
xugu-camunda-bpm-platform7.18.0/src/main/java/com/example/camundaDemo/CamundaBpmPlatformDemoApplication.java
中运行主启动类。第一次运行,在数据库创建表结构需要等待一段时间。待完全启动后访问本地 webapp 监控页面,用户名、密码配置在
application.yml
。图 2.5 xugu-camunda-bpm-platform项目运行路径
图 2.6 camunda-webapp用户密码设置
图 2.7 camunda-webapp登录界面
测试类文件存放于
xugu-camunda-bpm-platform7.18.0/src/test/java/com/example/camundaDemo
目录中。图 2.8 xugu-camunda-bpm-platform项目测试入口
按照
CamundaDemoTest.java
和CamundaDemoTest2.java
中注释信息引导,依次测试流程部署、流程实例创建、任务查询与完成等方法。
2.2.3.2 测试流程定义部署与流程实例启动
运行方法
com.example.camundaDemo.CamundaDemoTest#testDeploy
,通过org.camunda.bpm.engine.RepositoryService
部署流程实例:报销申请流程
。图 2.9 xugu-camunda-bpm-platform项目测试流程部署
提示
官方文档链接:BPMN 2.0 实现参考
官方文档链接:DMN 1.3 实现参考
桌面建模器下载:Camunda Desktop Modeler访问本地webapp监控页面,依次点击
Cockpit » Processes » Name:报销申请流程
,即可查看部署的流程相关信息及流程图。图 2.10 webapps选择cockpit
图 2.11 webapps选择已部署的流程
提示
官方文档链接:webapps
运行方法
com.example.camundaDemo.CamundaDemoTest#runProcinst
开启三个流程实例。图 2.12 xugu-camunda-bpm-platform项目测试启动流程实例
本地 webapp 监控页面点击
Dashboard » Processes » 报销申请流程
,即可浏览已开启的3个流程实例。图 2.13 webapps查看流程实例
其它流程 API
org.camunda.bpm.engine
:Camunda 平台引擎的公共 API。API 的典型使用从创建一个ProcessEngineConfiguration
开始(通常基于配置文件),然后可以从中获取一个ProcessEngine
。- 通过从该
ProcessEngine
获取的服务,可以执行 BPM 和工作流操作:RepositoryService
:管理部署。RuntimeService
:用于启动和查询流程实例。TaskService
:提供管理人工(独立)任务的操作,如认领、完成和分配任务。IdentityService
:用于管理用户、组及其之间的关系。ManagementService
:提供引擎管理和维护操作,这些操作与业务流程的运行时执行无关。HistoryService
:提供有关正在进行和过去的流程实例的信息。FormService
:访问表单数据和渲染的表单,以启动新的流程实例和完成任务。
三、常见问题&解决办法
出现报错
[E19260 L9 C26] 期待符号: syntax error, unexpected SELF, expecting ')'
- 数据源链接参数加
KEYWORD_FILTER=SELF
,参考步骤2.2.2。 - 示例代码:
url: jdbc:xugu://127.0.0.1:5138/camunda?KEYWORD_FILTER=SELF
- 数据源链接参数加
因 XuguDB 没有 MySQL 的
nullCatalogMeansCurrent=true
类似参数控制,所以需要手动创建用户并授权仅访问自己的 schema,避免未初始化表结构导致启动报错表或视图不存在。