Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


camunda-bpm-platform 使用手册

📄字数 4.7K
👁️阅读量 加载中...

本文档将介绍如何使用 camunda-bpm-platform v7.18.0 在 spring-boot-web 应用中连接 XuguDB,并部署 BPMN 和 DMN 模型,开启、处理流程实例等功能。

框架名称适配起始版本官网地址源框架下载地址XuguDB框架下载demo程序地址
camunda-bpm-platform7.18.0camunda 官网camunda 源码版本发布xugu-camunda-bpm-platform

提示

其他支持版本可详见版本发布列表

一、使用说明

1.1 下载 camunda-bpm-platform 虚谷适配源码

  1. 访问虚谷数据库开放源代码仓库,选择所需版本分支。

    虚谷camunda-bpm-platform仓库分支选择图 1.1 虚谷camunda-bpm-platform仓库分支选择
  2. 直接下载当前分支源码(本地未安装 Git)。

    虚谷camunda-bpm-platform分支代码下载图 1.2 虚谷camunda-bpm-platform分支代码下载

1.2 安装 camunda-bpm-platform 到本地 Maven 仓库

  1. 推荐使用 JDK-11 和 Maven-3.6.x 运行环境,ui 模块编译需要 Node.js-16。

    camunda-bpm-platform源码编译环境图 1.3 camunda-bpm-platform源码编译环境
  2. 使用 Maven 命令 mvn clean install -Dmaven.test.skip=true -pl !webapps 安装 camunda-bpm-platform 到本地 Maven 仓库,出现 BUILD SUCCESS 即安装成功。

    camunda-bpm-platform本地maven仓库部署图 1.4 camunda-bpm-platform本地maven仓库部署
    camunda-bpm-platform本地maven仓库部署成功图 1.5 camunda-bpm-platform本地maven仓库部署成功

二、连接示例

2.1 前提条件

  • 计算机已安装 JDK 1.8Maven
  • 计算机已安装 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 中

  1. 参考 IntelliJ IDEA 官方文档,导入项目。

    1. 启动 IntelliJ IDEA。 如果欢迎屏幕打开,请选择左侧栏目中项目(Projects)-> 右侧选项打开(Open)。 否则,请转到左上角主菜单的 文件(File)-> 打开(Open)。
    2. 在打开的对话框中,选择下载的源代码、库目录下的二级目录 xugu-camunda-bpm-platform7.18.0 ,然后点击 Select Folder 打开。
  2. 项目结构设置

    1. 更改项目 SDK 设置:参考 SDK | IntelliJ IDEA 文档,请点击右上角工具栏上的齿轮⚙设置按钮并选择项目结构按钮(Project Structure...)。 或者,前往 文件(File)-> 项目结构(Project Structure...) 或按 Ctrl+Alt+Shift+S

      xugu-camunda-bpm-platform项目JDK设置图 2.1 xugu-camunda-bpm-platform项目JDK设置
    2. 项目 Maven 设置:参考 Maven | IntelliJ IDEA 文档,文件 -> 设置 -> 构建、执行、部署 -> 构建工具 -> Maven。

      xugu-camunda-bpm-platform项目Maven设置图 2.2 xugu-camunda-bpm-platform项目Maven设置
  3. 检查 pom.xml 依赖设置

    xugu-camunda-bpm-platform项目依赖设置图 2.3 xugu-camunda-bpm-platform项目依赖设置
  4. camunda-bpm-platform 需要使用适配虚谷版,在示例项目根目录中执行以下 Maven 命令,并刷新/重新加载 Maven 项目。

    shell
    mvn 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 项目中数据库连接信息

  1. 执行示例项目中 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`;
  2. 修改 xugu-camunda-bpm-platform7.18.0/src/main/resources/application.yml 文件中的数据库连接信息。

    xugu-camunda-bpm-platform项目配置详情图 2.4 xugu-camunda-bpm-platform项目配置详情
    yaml
    spring:
       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 运行路径
  1. 在项目路径 xugu-camunda-bpm-platform7.18.0/src/main/java/com/example/camundaDemo/CamundaBpmPlatformDemoApplication.java 中运行主启动类。

  2. 第一次运行,在数据库创建表结构需要等待一段时间。待完全启动后访问本地 webapp 监控页面,用户名、密码配置在 application.yml

    xugu-camunda-bpm-platform项目运行路径图 2.5 xugu-camunda-bpm-platform项目运行路径
    camunda-webapp用户密码设置图 2.6 camunda-webapp用户密码设置
    camunda-webapp登录界面图 2.7 camunda-webapp登录界面
  3. 测试类文件存放于 xugu-camunda-bpm-platform7.18.0/src/test/java/com/example/camundaDemo 目录中。

    xugu-camunda-bpm-platform项目测试入口图 2.8 xugu-camunda-bpm-platform项目测试入口
  4. 按照 CamundaDemoTest.javaCamundaDemoTest2.java 中注释信息引导,依次测试流程部署、流程实例创建、任务查询与完成等方法。

2.2.3.2 测试流程定义部署与流程实例启动
  1. 运行方法 com.example.camundaDemo.CamundaDemoTest#testDeploy,通过 org.camunda.bpm.engine.RepositoryService 部署流程实例:报销申请流程

    xugu-camunda-bpm-platform项目测试流程部署图 2.9 xugu-camunda-bpm-platform项目测试流程部署

    提示

    官方文档链接:BPMN 2.0 实现参考
    官方文档链接:DMN 1.3 实现参考
    桌面建模器下载:Camunda Desktop Modeler

  2. 访问本地webapp监控页面,依次点击 Cockpit » Processes » Name:报销申请流程,即可查看部署的流程相关信息及流程图。

    webapps选择cockpit图 2.10 webapps选择cockpit
    webapps选择已部署的流程图 2.11 webapps选择已部署的流程

    提示

    官方文档链接:webapps

  3. 运行方法 com.example.camundaDemo.CamundaDemoTest#runProcinst 开启三个流程实例。

    xugu-camunda-bpm-platform项目测试启动流程实例图 2.12 xugu-camunda-bpm-platform项目测试启动流程实例
  4. 本地 webapp 监控页面点击 Dashboard » Processes » 报销申请流程,即可浏览已开启的3个流程实例。

    webapps查看流程实例图 2.13 webapps查看流程实例
  5. 其它流程 API

    1. org.camunda.bpm.engine:Camunda 平台引擎的公共 API。API 的典型使用从创建一个 ProcessEngineConfiguration 开始(通常基于配置文件),然后可以从中获取一个 ProcessEngine
    2. 通过从该 ProcessEngine 获取的服务,可以执行 BPM 和工作流操作:
      • RepositoryService:管理部署。
      • RuntimeService:用于启动和查询流程实例。
      • TaskService:提供管理人工(独立)任务的操作,如认领、完成和分配任务。
      • IdentityService:用于管理用户、组及其之间的关系。
      • ManagementService:提供引擎管理和维护操作,这些操作与业务流程的运行时执行无关。
      • HistoryService:提供有关正在进行和过去的流程实例的信息。
      • FormService:访问表单数据和渲染的表单,以启动新的流程实例和完成任务。

三、常见问题&解决办法

  1. 出现报错 [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
  2. 因 XuguDB 没有 MySQL 的 nullCatalogMeansCurrent=true 类似参数控制,所以需要手动创建用户并授权仅访问自己的 schema,避免未初始化表结构导致启动报错表或视图不存在。