首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
物联网/工业互联网
›
物联网
›
详解SpringCloud集成Camunda7.19实现工作流审批(三) ...
返回列表
发新帖
详解SpringCloud集成Camunda7.19实现工作流审批(三)
[复制链接]
发表于 2024-12-6 03:13:02
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
之前第(一)篇我们已经演示过了怎么从官网天生一个camunda的spring boot项目demo,这篇我们解说camunda怎样集成到真实的springboot或springcloud项目中,并通过camunda自带的bpm平台走通简朴的流程
参考资料:
Camunda Cockpit plugin 404,require.js:1 Uncaught Error: Script error for “admin-plugin-adminPlugins_camunda cockpit 加载不出来-CSDN博客
一、新建Spring Boot项目
新建一个Spring Boot项目,项目结构可以参考下图。
由于我这里是将camunda集成到一个Spring Cloud项目中,所以这里创建的其实是属于整个项目中的一个
微服务
,他可以被其他的业务服务所调用。
二、引入依靠
1.指明
版本
在最外层的pom文件的<dependencyManagement></dependencyManagement>中加入camunda
版本
管理,指定后面引入的camunda依靠
版本
为7.19.0
<dependency>
<groupId>org.camunda.bpm</groupId>
<artifactId>camunda-bom</artifactId>
<version>7.19.0</version>
<scope>import</scope>
<type>pom</type>
</dependency>
复制
代码
2.引入camunda依靠
由于我们和camunda接口相关的service层实现都是放在service模块下的,所以这里我们在service模块的pom文件引入camunda依靠
<dependency>
<groupId>org.camunda.connect</groupId>
<artifactId>camunda-connect-core</artifactId>
</dependency>
<dependency>
<groupId>org.camunda.bpm</groupId>
<artifactId>camunda-engine-plugin-connect</artifactId>
</dependency>
<dependency>
<groupId>org.camunda.bpm</groupId>
<artifactId>camunda-engine-plugin-spin</artifactId>
</dependency>
<dependency>
<groupId>org.camunda.spin</groupId>
<artifactId>camunda-spin-dataformat-all</artifactId>
</dependency>
<dependency>
<groupId>org.camunda.bpm</groupId>
<artifactId>camunda-engine</artifactId>
</dependency>
复制
代码
启动类需要加注解@EnableProcessApplication,才会在首次启动的时候去自动建表
,所以在web模块加入下面的依靠
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
</dependency>
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
</dependency>
复制
代码
三、新建mysql
数据库
本项目中用的是mysql
数据库
,我们先新建一个空的
数据库
四、修改设置文件
由于是spring cloud项目,这里我们的设置文件分为远程设置文件和本地设置文件
1.本地
本地只留一些基础设置,大部分的设置,特别是可能会动态修改的设置,都放到了远程nacos举行管理
bootstarp.yml
# Tomcat
server:
port: 20491
# Spring
spring:
application:
# 应用名称
name: apaas-camunda
profiles:
# 环境
配置
active: @profileActive@
复制代码
2.远程
剩下的一些关于springboot、数据源、mybatis、redis、swagger等各种基本的设置都放在远程设置文件,这里就不外多先容。
主要注意:
mysql的毗连设置里,要加下面这段设置,原因在之前第(一)篇里有说
camunda设置
camunda.bpm:
admin-user:
id: xxx
password: xxx
# 自动部署resources下面的bpmn文件
auto-deployment-enabled: true
复制代码
五、启动项目
1.问题一:mybatis版本冲突
这里启动的时候报了如下的错
大概的意思就是说mybatis和mybatis-plus的版本冲突了
这里我们使用Dependency Analyzer插件举行分析
可以看到camunda7.19里自带了mybatis 3.5.6依靠,然后我们又引入了mybatis-plus 3.5.3.2的依靠,结合报错,我们这里尝试低落mybatis-plus的版本为3.5.1
先排除原来我们引入的mybatis-plus 3.5.3.2
<exclusions>
<exclusion>
<artifactId>mybatis-plus-boot-starter</artifactId>
<groupId>com.baomidou</groupId>
</exclusion>
<exclusion>
<artifactId>mybatis-plus-extension</artifactId>
<groupId>com.baomidou</groupId>
</exclusion>
<exclusion>
<artifactId>mybatis-spring-boot-starter</artifactId>
<groupId>org.mybatis.spring.boot</groupId>
</exclusion>
<exclusion>
<artifactId>mybatis-plus-core</artifactId>
<groupId>com.baomidou</groupId>
</exclusion>
</exclusions>
复制代码
引入3.5.1
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-core</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<artifactId>mybatis-plus-boot-starter</artifactId>
<groupId>com.baomidou</groupId>
<version>3.5.1</version>
</dependency>
<dependency>
<artifactId>mybatis-spring-boot-starter</artifactId>
<groupId>org.mybatis.spring.boot</groupId>
</dependency>
复制代码
2.问题二:camunda页面有些静态资源报错404
启动乐成后,我们直接访问后端端口,就可以进入camunda bpm页面,默认用户的账号密码是我们前面设置文件设置的。
但是进入后,我们再点击比如流程管理页面后,可能会一片空白,看控制台报了404的错,如下图所示
然后这个问题其实目前我发现只在本地用idea启动的时候会如许,由于我部署到
服务器
后并不会报错
解决办法,参考:Camunda Cockpit plugin 404,require.js:1 Uncaught Error: Script error for “admin-plugin-adminPlugins_camunda cockpit 加载不出来-CSDN博客
修改下启动设置即可,如下图所示
六、认识bpm平台
登录完后我们看到首页是下图如许,关于这三个板块的先容在第(一)篇中已经有大致先容,现在我们再具体解说一下。
1.用户管理(系统管理)
我们点击Admin模块,即可进入用户管理页面
1.用户列表
点击List of Users,查看camunda的用户列表
这里就可以看到当前系统是存在一个用户,这个用户就是我们前面设置文件里配的默认用户
这个列表对应的数据库表是 ACT_ID_USER 如下图所示
之后这个表需要把我们springcloud项目里的用户表的数据对应同步过来,如许camunda服务和我们整个项目里的系统管理服务就能共用一份用户数据了
2.新建用户
点击Create New User ,即可新建用户,如下图所示,表单的字段对应数据库表里的字段
由于我们后面要直接同步系统服务的用户,所以就不在这个bpm页面里去新增了。同步的方案就是通过写定时使命调用camunda新增用户的api实现。
2.流程管理(驾驶舱)
点击Cockpit,即可进入流程管理页面
进入后,我们可以看到下图的页面。现在由于还没部署流程,所以全都是0
接下来我们先画一个简朴的流程图【第(二)篇有讲怎么使用camunda modeler工具画图】,然后放到camunda服务里部署
如下图所示,使命节点我们设置一个定量,直接设置成默认用户
将bpmn文件放到resource下,重启项目,流程图便会自动部署
注意:
这里自动部署我开始是失败了,检查了设置文件设置的都配问题,后来我去撤除启动类的@EnableProcessApplication注解后,就乐成了
对应的数据库表是 ACT_RE_DEPLOYMENT 和 ACT_RE_PROCDEF
页面继承往下查看流程可以看到流程具体信息,如下图所示
3.使命管理
点击 Tasklist 进入使命管理页面
这里我们可以看到当前没有流程正在举行。我们可以点击右上角的 Start process 启动一个流程实例
选择我们刚刚部署的流程来启动,Business Key 是业务唯一标识,用来唯一标识一个流程实例的,后续我们与业务服务结合的时候,这个属性就很紧张,这里我们只是测试走流程,所以可以随意填写
然后下面另有 Add a variable ,可以设置流程变量,我们可以暂时不填
点击 Start启动 ,看到右下角出现启动乐成的提醒
然后我们还需要设置一下使命列表的过滤规则,我们直接点击创建一个简朴的过滤规则,如下图所示,如果点击后报错500,重启一下camunda服务应该就可以解决
然后我们就可以看到刚刚启动的流程当前的使命,当前节点走到了 使命节点 这个节点,等待 znak用户去审批
对应的数据库表有
当前使命表 ACT_RU_TASK
当前流程实例表 ACT_RE_PROCDEF
历史使命表 ACT_HI_TASKINST
历史流程实例表 ACT_HI_PROCINST
由于当前用户就是登录的znak,所以我们可以直接去完成使命,如下图所示
在完成使命前,我们还可以针对这个使命,添加批评,如下图所示,对应的数据库表是 ACT_HI_COMMENT
点击 Complete 按钮后,使命完成,同时由于后面接着的就是流程竣事节点,所以可以看到使命列表已经没有使命了,然后看数据库表里 带 RU的当前表,数据都已经清空,而带 HI的历史表,数据里的状态字段都修改为已完成了。
如许,我们就算走通刚刚部署的这个流程图了
回复
使用道具
举报
返回列表
浏览过的版块
DevOps与敏捷开发
SQL-Server
涛声依旧在
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表