Activiti7(流程引擎)简单笔记,附带作者执行的Demo代码文件

文章目录

  • 一、Activiti7流程基础
    • 1、最简单的流程
    • 2、流程值表达式
    • 3、方法表达式
    • 4、节点监听器
    • 5、流程变量
    • 6、候选人
    • 7、候选人组
    • 8、流程网关
      • 排他网关
      • 并行网关
      • 包容网关
      • 事件网关
  • 二、Activiti7流程事件
    • 1、定时器事件
      • 定时器开始事件
      • 定时器中间事件
      • 定时器边界事件
    • 2、消息事件
      • 消息开始事件
      • 消息中间事件
      • 边界事件
    • 3、错误事件
      • 错误开始事件
      • 错误边界事件
      • 错误结束事件
    • 4、信号事件
      • 信号开始事件
      • 信号中间事件
      • 信号边界事件
    • 5、其他事件
      • 终止结束事件
      • 取消结束事件
      • 补偿事件
  • 参考文档

一、Activiti7流程基础

1、最简单的流程

  • 审批人直接在流程中写死,每次启动流程同一个节点,审批人都是一样的
  • 局限:审批人不可更改
    在这里插入图片描述

2、流程值表达式

  • 需要设置流程变量
  • 解决流程启动时,设置审批人的作用。每次启动流程都需要给每个审批节点设置审批
  • 局限:流程启动之后,审批人就不可更改
    在这里插入图片描述
    在这里插入图片描述

3、方法表达式

  • 当流程走到该节点会立即调用该方法,该方法的返回值就是审批人
  • 优点:审批人更灵活,流程可以走到该节点再设置审批人。在java程序中判定审批人是谁
    在这里插入图片描述
    在这里插入图片描述

4、节点监听器

  • 监听器的主要作用是,当该节点触发了事件之后,会触发java对应的方法
  • 优点:原来的节点有设置默认审批人了,通过监听器修改为新的审批人,同时可以操作流程变量,流程变量可以给【流程值表达式】赋值的
  • TaskListern主要用于节点的监听,共有四个事件:分别是:“create”、“assignment”、“complete”、“delete”,当流转到这个节点是触发create事件,当被委托是触发assignment事件,当事件完成时, 因为activity会删除相应数据表中的节点信息所以会同时触发complete和delete事件。
    在这里插入图片描述

在这里插入图片描述

5、流程变量

  • 可以给流程值表达式赋值,监听器可以获取到该变量
  • 全局变量:可以在流程启动的时候赋予变量,作用在整个所有流程实例中,流程完全走完才会被删除。
  • 局部变量:主要是针对流程节点和子流程实例,当流程节点结束,或者子流程实例结束时局部变量会被删除。当给主流程实例赋予局部变量时,等同于全局变量。
  • activiti变量 全局变量和局部变量

在这里插入图片描述

6、候选人

  • 候选人可以拾起任务,拾起之后其他候选人就不能再拾起这个任务了,只有拾起的人才可以审批。拾起的人在这个节点中变成了审批人。
  • 候选人拾起之后,也可以归还,归还之后当前节点可以由其他候选人拾起
  • 优点:单个审批节点只能有一个审批人,解决多人审批的问题

在这里插入图片描述
在这里插入图片描述

7、候选人组

  • 通过候选人组直接查询审批任务,选择候选人组中的候选人拾起该任务,拾起之后即可审批任务
  • 优点:解决一个节点需要配置多个候选人的问题
  • 候选人组下的候选人并不是存在流程中,而是存在外部业务中。

在这里插入图片描述

在这里插入图片描述

8、流程网关

  • 可控制流程的执行流向,常用于拆分或合并复杂的流程场景。
  • 优点:解决流程单向流动的问题,可以让流程通过逻辑判断,走向不同的节点。

排他网关

  • 用于在流程中进行条件判断,根据不同的条件选择不同的分支路径。只有满足条件的分支会被执行,其他分支会被忽略。
  • 多条路只会走一条路
    在这里插入图片描述

并行网关

  • 用于将流程分成多个并行的分支,这些分支可以同时执行。当所有分支都执行完毕后,流程会继续向下执行。
  • 不用设置条件,需要所有子流程走完才能走到下一个节点
  • 该网关一定是成双成对出现的,少一个要么缺少开始,要么缺少结束,少一个流程启动就会报错。
    在这里插入图片描述

包容网关

  • 用于根据多个条件的组合情况选择分支路径。可以选择满足任意一个条件的分支执行,或者选择满足所有条件的分支执行。
  • 排他网关和并行网关的结合体。单条线可以设置条件,也可以不设置条件,不设置条件=满足条件。
  • 满足条件的所有子流程走完,才会走到下一个节点。
  • 该网关也一定是成双成对的
    在这里插入图片描述

事件网关

  • 用于根据事件的触发选择分支路径。当指定的事件触发时,流程会选择对应的分支执行。

二、Activiti7流程事件

1、定时器事件

  • SpringBoot整合Activiti7——定时器事件(九)

定时器开始事件

  • 不用发起,部署直接运行
  • 定时启动,持续时间启动(timeDuration),一般使用方式。部署之后,持续时间到了启动流程
  • 作者定义了30个3秒启动一次的服务任务(循环启动),因为Activiti7是隔一段时间执行定时任务,所以可能会导致并不是3秒输出一次。因为Activiti7扫描的时间可能大于3秒
  • 主要是解决一个定时启动的业务问题
    在这里插入图片描述

定时器中间事件

  • 持续时间(timeDuration),一般使用方式
  • 解决审批之后,不是立马到下一个节点,有缓冲的时间。
  • 在这缓冲的时间可以做一系列防错处理

在这里插入图片描述

定时器边界事件

  • 解决审批人长时间不处理审批任务的问题。
  • 中断事件:当触发了事件之后,流程走向中断流程。中断流程一般设置为其他人审批。定时任务一般设置为持续时间,持续时间到了之后直接触发。
  • 非中断事件:当触发了事件之后,原流程不受影响,新增一个子流程走中断流程。中断流程一般设置为通知事件。循环通知用户审批。定时任务一般设置为循环事件。
    在这里插入图片描述

2、消息事件

消息开始事件

  • 部署之后,发送消息,触发流程启动
    在这里插入图片描述

消息中间事件

  • 只有接收了消息之后,才会流向下一个节点
    在这里插入图片描述

边界事件

  • 发送消息之后,会发生对应的流程事件
  • 非中断事件,接收消息之后,会通知用户审批
    在这里插入图片描述

3、错误事件

错误开始事件

  • 错误事件不能启动流程实例
  • 错误事件一定是中断的
    在这里插入图片描述

错误边界事件

  • 当前流程报错之后,进行兜底处理
    在这里插入图片描述

错误结束事件

在这里插入图片描述

4、信号事件

  • 作用:并行流程实例之间的协作,动态流程控制,异常处理。

信号开始事件

  • 通过全局信号启动
    在这里插入图片描述

信号中间事件

  • 抛出信号不会中断流程
  • 接收到信号的流程启动执行
    在这里插入图片描述

信号边界事件

在这里插入图片描述

5、其他事件

终止结束事件

  • 子流程控制结束

在这里插入图片描述
在这里插入图片描述

取消结束事件

  • 处理事务子流程
  • 触发取消边界事件,并自动触发补偿任务,补偿任务需要在审批人下面
  • 流程设计器可能有问题需要自己在【补偿自动任务】手动加上isForCompensation=“true”
    在这里插入图片描述

补偿事件

  • 用于处理流程中发生异常或错误的特殊事件
  • 作用,作者目前也没看懂
    在这里插入图片描述

参考文档

  • 2023全新讲解Activiti7工作流框架-手把手教学-快来学习起来吧
  • 工作流-流程实例【ProcessInstance】与执行实例【Execution】

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【EAI 015】CLIPort: What and Where Pathways for Robotic Manipulation

论文标题:CLIPort: What and Where Pathways for Robotic Manipulation 论文作者:Mohit Shridhar1, Lucas Manuelli, Dieter Fox1 作者单位:University of Washington, NVIDIA 论文原文:https://arxiv.org/abs/2109.12098 论文出处…

问题:重热现象可使多级汽轮机的理想焓降增加,重热系数越大,多级汽轮机的内效率就越低。 #学习方法#微信#媒体

问题:重热现象可使多级汽轮机的理想焓降增加,重热系数越大,多级汽轮机的内效率就越低。 参考答案如图所示

FL Studio如何改变轨道颜色 FL Studio波形颜色如何自定义 flstudio21中文版下载 FL Studio 设置颜色

FL Studio如何改变轨道颜色?FL Studio的轨道颜色可以在播放列表或混音台界面进行修改。FL Studio波形颜色如何自定义?FL Studio的波形文件颜色、名称、图标等信息都是可以自定义的,下文将给大家详细讲述。 一、FL Studio如何改变轨道颜色 在…

05-编码篇-H264文件分析

通过前面的分析,我们可以看出常规情况下,是将视频以帧的单位进行处理,比如I帧,P帧,B帧等。 但是这些帧是如何以文件方式保存的呢,这节我们主要对H264的保存方式作一个了解。 一帧图片通过编码后&#xff0c…

【教3妹学编程-算法题】价值和小于等于 K 的最大数字

3妹:2哥,新年好鸭~ 2哥 : 新年好,3妹这么早啊 3妹:是啊,新年第一天要起早,这样就可以起早一整年 2哥 :得,我还不了解你,每天晒到日上三竿 3妹:嘿嘿嘿嘿,一年是…

CTFshow-WEB入门-信息搜集

web1(查看注释1) wp 右键查看源代码即可找到flag web2(查看注释2) wp 【CtrlU】快捷键查看源代码即可找到flag web3(抓包与重发包) wp 抓包后重新发包,在响应包中找到flag web4(robo…

OpenAI---提示词工程的6大原则

OpenAI在官方的文档里上线了Prompt engineering,也就是提示词工程指南,其中OpenAI有提到写提示词的6条大的原则,它们分别是: (1)Write clear instructions(写出清晰的指令) &#xf…

基于PHP网上图书销售商城系统qo85w

软件体系结构方案:由于本系统需要在不同设备上都能运行,而且电脑配置要求也要越低越好,为了实现这一要求,经过考虑B/S结构成为最佳之选。使用B/S结构的系统可以几乎在任何电脑上运行,只要浏览器可以正常工作就可以正常…

锐捷(十九)锐捷设备的接入安全

1、PC1的IP地址和mac地址做全局静态ARP绑定; 全局下:address-bind 192.168.1.1 mac(pc1) G0/2:ip verify source port-securityarp-check 2、PC2的IP地址和MAC地址做全局IPMAC绑定: Address-bind 192.168.1.2 0050.7966.6807Ad…

MVVM模型

MVVM模型M模型(Model)对应data中的数据(普通的JS对象)V视图(View)对应模板(Vue的模板经过解析形成的页面,页面生成的DOM结构)VMVue实例对象(ViewModel&#x…

SpringBoot3整合Knife4j

前置&#xff1a; 官网&#xff1a;快速开始 | Knife4j gitee&#xff1a;swagger-bootstrap-ui-demo: knife4j 以及swagger-bootstrap-ui 集成框架示例项目 - Gitee.com 1.依赖引入&#xff1a; ps&#xff1a;json处理需要引入相关包 <dependency><groupId>c…

基于Java (spring-boot)的电子商城管理系统

一、项目介绍 &#xff08;1&#xff09;商品管理模块&#xff1a;实现了商品的基本信息录入、图片上传、状态管理等相关功能。 &#xff08;2&#xff09;商品分类模块&#xff1a;实现了分类的增删改查、分类层级管理、商品分类的关联等功能。 &#xff08;3&#xff09;订…

【Unity】实用功能开发(一)实现在UI中用RawImage实时展示3D模型(背景透明,并通过UI防止3D场景遮挡)并可以通过分层完成:游戏中的人物状态展示界面,小地图,人物实时头像状态等功能

有时由于项目效果需要&#xff0c;部分功能的实现受到阻碍&#xff0c;这里收集一些已实现的思路和方法&#xff0c;每次会记录大致需求和遇到的问题&#xff0c;如果有更好的想法&#xff0c;欢迎评论区讨论&#xff01;&#xff01;&#xff01; 目录 功能描述&#xff1a;…

Mac 版 Excel 和 Windows 版 Excel的区别

Excel是一款由微软公司开发的电子表格程序&#xff0c;广泛应用于数据处理、分析和可视化等领域。它提供了丰富的功能和工具&#xff0c;包括公式、函数、图表和数据透视表等&#xff0c;帮助用户高效地处理和管理大量数据。同时&#xff0c;Excel还支持与其他Office应用程序的…

C#实现矩阵乘法

目录 一、使用的方法 1.矩阵 2.矩阵的乘法原理 二、实例 1.源码 2.生成效果 一、使用的方法 矩阵相当于一个数组&#xff0c;主要用来存储一系列数&#xff0c;例如&#xff0c;mn矩阵是排列在m行和n列中的一系列数&#xff0c;mn矩阵可与一个np矩阵相乘&#xff0c;结果…

Java:集合以及集合进阶 --黑马笔记

一、集合概述和分类 1.1 集合的分类 除了ArrayList集合&#xff0c;Java还提供了很多种其他的集合&#xff0c;如下图所示&#xff1a; 我想你的第一感觉是这些集合好多呀&#xff01;但是&#xff0c;我们学习时会对这些集合进行分类学习&#xff0c;如下图所示&#xff1a;…

中科大计网学习记录笔记(九):DNS

前言&#xff1a; 学习视频&#xff1a;中科大郑烇、杨坚全套《计算机网络&#xff08;自顶向下方法 第7版&#xff0c;James F.Kurose&#xff0c;Keith W.Ross&#xff09;》课程 该视频是B站非常著名的计网学习视频&#xff0c;但相信很多朋友和我一样在听完前面的部分发现信…

刘知远LLM——神经网络基础

文章目录 神经网络基础基本构成如何训练&#xff1f; Word2Vec例子负采样&#xff1a; 循环神经网络 RNN门控计算单元 GRU长短时记忆网络 LSTM遗忘门输入门输出门双向RNN卷积神经网络 CNNpytorch实战 神经网络基础 基本构成 全称&#xff1a;人工神经网络。启发于生物神经细胞…

【前端web入门第五天】02 盒子模型基础

文章目录: 1.盒子模型的组成 1.1盒子模型重要组成部分1.2 盒子模型-边框线1.3 盒子模型–内边距 1.3.1 盒子模型–内边距-多值写法 1.4 盒子模型–尺寸计算 1.5 盒子模型-版心居中 1.盒子模型的组成 不同组件之间的空白就是盒子模型的功劳 作用:布局网页&#xff0c;摆放盒子…

模型 PMF(产品市场契合度)

系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。产品与市场高度契合。 1 PMF(Product Market Fit)产品市场契合度 的应用 1.1 PMF在创业过程中的应用-Vincy公司的产品PartnerShare 实现PMF需要企业深入了解目标市场的需求和用户的反馈&…