spring cloud activiti 审批流的用法

demo的搭建及使用

1、创建activiti审批流需要安装bpmn插件,新的idea版本支持的这个bpmn插件只有下图这个,并不好用,所以我这里使用eclipse来创建bpmn流程

eclipse的连接如下:链接:https://pan.baidu.com/s/1mSoKprN-TqcoGCG5CWBSTw?pwd=nb1o 
这个eclipse已经安装了bpmn插件并且是绿色版的,下载即可使用

2、eclipse创建审批流程,在eclipse中新建activiti project项目,然后右击resource下的diagrams文件夹,new-->activiti diagram,即可创建bpmn文件

         见下图,Start event指定流程的开始,End event指定流程的结束,Task指定流程的任务节点,Connection 这只节点之间的箭头(即流程的走向),除此之外还有网关等

         (1)、鼠标点在流程面板的空白区域可以对整个流程进行编辑;

         (2)、鼠标选中某个节点可以对节点进行编辑,对节点可以指定节点的操作人、候选人等,节点的候选人在后面会介绍到,操作人可以写死也可以通过el表达式指定;

         (3)、鼠标选中某个箭头可以对箭头进行编辑,每个箭头就是一个分支,可以对分支指定条件,条件通过el表达式指定,比如下面的请假流程对 人事经理 发出的两个分支指定条件;

                  1、如果一个节点出来的多个分支,并且这些分支有多个为true,则流程会执行所有为true的分支,且每个分支都会产生一个后续任务;如以下人事经理审批 后 同时满足高级经理和大区经理两个分支条件,高级经理和大区经理审批后各自产生一条 总经理 任务,会有两个总经理任务;

                  2、如果一个节点出来的多个分支,并且这些分支全部为false,则会抛异常:流程无法继续执行,参考demo中的Test02中的test2流程模板;

3、流程创建好之后,保存,生成一个bpmn和png文件

         如果没有生成png图片,在windows-->preferences中执行下面操作

4、在idea中创建activiti project 项目后,使用的activiti版本是7.0.0.Beta1,将3中创建的bpmn和png图片拷到项目中就可以使用这个流程创建流程定义和任务了

5、在idea中可以打开bpmn文件,可以看到就是xml文件,在代码中通过bpmn和png文件创建流程定义时会自动创建25张表,并且将bpmn文件解析保存到流程定义表中 ACT_RE_PROCDEF;

      activiti的表说明,activiti的表全部是act开头的,然后是表示用途的两个字母

          re:repository,表包含了流程定义和流程静态资源;

          ru:runtime,运行时的表,包含流程实例,任务,变量,异步任务等。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除。 这样表数据可以一直很小速度很快。

          hi:history,这些表包含历史数据,比如历史流程实例, 变量,任务等等。

          ge:general, 通用数据

          

activiti的功能介绍:

     1、候选人:一个任务可以设置多个候选人,此时任务属于候选组任务而不属于某个候选人,候选人拾取任务后这个任务就属于候选人了,然后候选人可以操作这个任务了。候选人拾取任务后也可以归还任务,归还后的任务是组任务;参考代码中的Test06Group;

2,网关,网关也是用于节点之间数据流转的条件判断的,比 箭头的条件判断功能更强大,有以下几种网关:

         (1)、排他网关ExclusiveGateway:当流程流转到排他网关,从排他网关出来的分支有多个为true时只会选择taskId最小的执行,从排他网关出来的分支全部为false时抛出异常;参考demo中的Test07Exclusive

         (2)、并行网关ParallelGateway:从并行网关出来的所有分支都会执行,这些分支上如果有条件也会失效,这些分支执行完成后再执行后面的流程;参考demo中的Test08ParallelGateway

         (3)、包含网关InclusiveGateway:从包含网关出来的分支如果为true的都会执行,没有条件的分支也会执行,执行完之后再走后面的流程;参考demo中的Test09InclusiveGateway

         (4)、事件网关EventGateway:根据事件判断流向, 具体怎么判断我也不清楚,找了一些资料也没有看到使用方法,有人知道怎么使用请在评论补充,非常感谢;

3、流程的挂起:可以对流程定义和流程实例进行挂起,挂起后的流程不能再被审批,参考demo中的Test02;

         流程实例挂起更新ACT_RU_TASK、ACT_RU_EXECUTION 的 SUSPENSION_STATE_为2,流程定义挂起多更新一张表ACT_RE_PROCDEF,挂起后的流程可以激活,激活时更新SUSPENSION_STATE_为1;

使用demo:链接:https://pan.baidu.com/s/1NmTq2T9zap1x8eyP-mnc7g?pwd=bcye 

demo中也包含了整合spring、springboot的代码


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/357628.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Java SSM框架实现药品销售系统项目【项目源码+论文说明】

基于java的SSM框架实现药品销售系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个药品销售系统 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述药品销…

原生table样式

HTML <div><table style"width: 100%;"><thead><tr><th style"width:25%;">董事会</th><th style"width:25%;">监事会</th><th style"width:25%;">股东</th><th sty…

【Vue】前端项目引入阿里图标

【Vue&React】前端项目引入阿里图标 1、登录自己的iconfont-阿里巴巴矢量图标库&#xff0c;把需要的图标加入到自己的项目中去&#xff1b;2、加入并进入到项目中去选择Font class 并下载到本地3、得到的文件夹如下4. 把红框中的部分粘贴到自己的项目中&#xff08; stati…

CRG设计之复位

1. 前言 CRG(Clock and Reset Generation&#xff0c;时钟复位生成模块) 模块扮演着关键角色。这个模块负责为整个系统提供稳定可靠的时钟信号&#xff0c;同时在系统上电或出现故障时生成复位信号&#xff0c;确保各个模块按预期运行。简而言之&#xff0c;CRG模块就像是SoC系…

nginx无法启动,win10占用80端口 (注册表方式解决)

参考&#xff1a;https://blog.csdn.net/qq_39523111/article/details/128853509 改为4 重启后 不再占用 pid 不是4了 已经变为nginx了 改为0 没起作用

蓝桥杯2024/1/26笔记-----基于PCF8591的电压采集装置

功能实现要求&#xff1a; 每次建好工程文件夹&#xff0c;里边包含User&#xff08;放工程文件&#xff0c;mian.c&#xff0c;可以在这里写如同我这个文章的文本文档&#xff09;、Driver&#xff08;存放底层文件如Led.c&#xff0c;Led.h等&#xff09; 新建的工程先搭建框…

STM32——中断系统和外部中断EXTI

一、中断 1.1中断系统 中断系统是管理和执行中断的逻辑结构&#xff1b; 1.2中断 系统在执行主程序过程中&#xff0c;出现了特定的触发条件&#xff08;触发源&#xff09;&#xff0c;系统停止执行当前程序&#xff0c;转而去执行中断程序&#xff0c;执行完毕后&#xf…

windows系统下启动redis命令

windows系统下启动redis命令 进入redis安装目录 cd redis 输入 redis-server.exe redis.windows.conf 启动redis命令&#xff0c;看是否成功 可能会启动失败&#xff0c;报[1696] 30 Jan 09:46:07.518 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No erro…

云计算底层技术、磁盘技术揭秘虚拟化管理、公有云概述

查看本机是否具备虚拟化支持 硬件辅助虚拟化 处理器里打开 虚拟化Inter VT-x/EPT 或AMD-V 构建虚拟化平台工具软件包 yum 与 dnf Yum和DNF都是用于管理Linux系统中的软件包的工具&#xff0c;但它们在许多方面存在一些差异。以下是一些可能的区别&#xff1a; 依赖解…

运行VUE提示找不到模块validate-engines.js...

原来好好的&#xff0c;突然提示找不到模块validate-engines.js&#xff0c;CMD命令行输入npm -v不是内部或外部命令&#xff0c;node -v可以查看到版本号。 解决&#xff1a; 1. 卸载nodejs&#xff0c;重新下载安装文件&#xff1a;下载nodejs 2. 到目录&#xff1a;C:\Us…

成功解决AttributeError: ‘str‘ object has no attribute ‘decode‘

成功解决AttributeError: ‘str’ object has no attribute ‘decode’. &#x1f335;文章目录&#x1f335; &#x1f333;引言&#x1f333;&#x1f333;报错分析及解决方案&#x1f333;&#x1f333;参考文章&#x1f333;&#x1f333;结尾&#x1f333; &#x1f333;引…

Chiplet,汽车“芯”风向

异构集成、高速互联、算力灵活可扩展正在成为新一轮汽车芯片竞争的焦点。尤其是随着以ChatGPT为代表的大数据、大模型产品在车端的落地&#xff0c;对于芯片的要求还在持续提升。 本周&#xff0c;12家日本汽车制造商&#xff08;包括丰田、日产、本田等&#xff09;、零部件制…

Redis 面试题 | 20.精选Redis高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

三、防御保护---防火墙安全策略篇

三、防御保护---防火墙安全策略篇 一、什么是安全策略二、安全策略的组成1.匹配条件2.动作3.策略标识 三、防火墙的状态检测和会话表1.会话表2.状态检测技术 四、ASPF--隐形通道五、用户认证1.用户认证的分类2.认证方式3.认证策略4.认证域 一、什么是安全策略 传统的包过滤防火…

ORBSLAM3 运行流程 以rgbd_tum.cc函数为例进行分析

一、运行 使用的是D435i相机自己录制的数据。 运行命令&#xff1a; ./Examples/RGB-D/rgbd_tum /opt/vslam/ORB_SLAM3_detailed_comments-dense_map_new/Vocabulary/ORBvoc.txt /opt/vslam/ORB_SLAM3_detailed_comments-dense_map_new/Examples/RGB-D/TUM1.yaml /opt/vsl…

医美诊疗前后要注意的八大诀窍

【记者许家源/综合报导】 随着年龄的增长&#xff0c;许多人都想保持年轻美丽&#xff0c;因此寻求医美诊疗的帮助。然而&#xff0c;进入医美诊所后&#xff0c;你可能会发现&#xff0c;想要打肉毒、除毛等&#xff0c;实际花费和广告中的金额相差甚远。为了避免上当受骗&am…

C# 使用WMI监听进程的启动和关闭

写在前面 Windows Management Instrumentation&#xff08;WMI&#xff09;是用于管理基于 Windows 操作系统的数据和操作的基础结构。具体的API可以查看 WMI编程手册。 WMIC 是WMI的命令行管理工具&#xff0c;使用 WMIC&#xff0c;不但可以管理本地计算机&#xff0c;还可…

Layui + Echarts 5.0

Layui 怎么整合最新版本的 Echarts 5.0&#xff0c;Echarts 4 升级到 5后&#xff0c;有了很大改变&#xff0c;新的配置项4是无法兼容的&#xff0c;所以想要使用新的功能&#xff0c;都需要升级&#xff01; 新建一个echarts.js文件 layui.define(function (exports) {// 这…

【教程】iOS如何抓取HTTP和HTTPS数据包经验分享

&#x1f4f1; 在日常的App开发和研发调研中&#xff0c;对各类App进行深入的研究分析时&#xff0c;我们需要借助专业的抓包应用来协助工作。本文将介绍如何使用iOS手机抓包工具来获取HTTP和HTTPS数据包&#xff0c;并推荐一款实用的抓包应用——克魔助手&#xff0c;希望能够…

Spring: 实体类转换工具总结

文章目录 一、MapStruct1、介绍2、原理3、使用4、问题处理&#xff08;1&#xff09;IDEA编译报错&#xff1a;NullPointerException 一、MapStruct 1、介绍 MapStruct是一个实体类属性映射工具&#xff0c;通过注解的方式实现将一个实体类的属性值映射到另外一个实体类中。在…