Activiti7 工作流引擎学习

news2024/11/19 7:49:22

目录

一. 什么是 Activiti 工作流引擎

二. Activiti 流程创建步骤

三. Activiti 数据库表含义

四. BPMN 建模语言

五. Activiti 使用步骤

六. 流程定义与流程实例

一. 什么是 Activiti 工作流引擎

        Activiti 是一个开源的工作流引擎,用于业务流程管理(BPM)。它允许开发者以 BPMN 2.0 标准定义业务流程,通过 Activiti 的 API 将流程定义内容存储起来,并在 Activiti 执行过程中可以查询定义的内容。Activiti 执行把流程定义内容存储在数据库中,使得业务系统中的复杂业务流程可以被 Activiti 管理,从而提高系统的健壮性和减少系统开发维护成本。

二. Activiti 流程创建步骤

  1. 流程定义:使用 Activiti 的流程建模工具(如 Activiti Designer)定义业务流程,并生成 BPMN 文件。
  2. 流程部署:将 BPMN 文件部署到 Activiti 引擎中,Activiti 会将流程定义内容存储在数据库中。
  3. 流程实例:启动一个流程实例表示开始一次业务流程的运行,每个流程实例的执行互相不影响。
  4. 任务管理:用户可以通过 Activiti 查询待办任务并办理任务。
  5. 流程结束:当任务办理完成且没有下一个任务节点时,流程实例完成。

三. Activiti 数据库表含义

        Activiti 支持多种数据库,如 MySQL、Oracle、PostgreSQL 等。它通过创建多个表来存储流程定义、流程实例、任务、历史数据等信息。这些表通常以 ACT_ 为前缀,并且分为几个类别(25张表)

  • ACT_RE_*存储流程定义和流程静态资源
  • ACT_RU_*存储流程实例、任务、变量等运行时数据
  • ACT_HI_*存储历史数据
  • ACT_GE_*通用数据

四. BPMN 建模语言

        BPMN(Business Process Model and Notation)是一种业务流程建模符号,它是一种图形化的语言,用于设计、执行、监控、改进和讨论业务流程。BPMN 2.0 是当前的国际标准,由 OMG(Object Management Group)组织维护。

        整个BPMN是用一组符号来描述业务流程中发生的各种事件的。BPMN通过在这些符号事件之间连线来描述一个完整的务流程。

如图所示

一个简单的请假流程图

五. Activiti 使用步骤

通常使用Activiti时包含以下几个步骤:

  1. 定义流程:使用Activiti的建模工具定义业务流程.bpmn文件。
  2. 部署流程定义:使用Activiti提供的API把流程定义内容存储起来,在Acitivti执行过程汇总可以査询定义的内容,Activit是通过数据库来存储业务流程的。
  3. 启动流程实例:流程实例也叫Processinstance。启动一个流程实例表示开始一次业务流程的运作。例如员工提交请假申请后,就可以开启一个流程实例,从而推动后续的审批等操作。
  4. 用户查询待办任务(task):因为现在系统的业务流程都交给了activiti管理,通过activiti就可以查询当前流程执行到哪个步骤。当前用户需要办理哪些任务也就同样可以由activiti帮我们管理,开发人员不需要自己编写sql语句进行査询了。
  5. 用户办理任务:用户查询到自己的待办任务后,就可以办理某个业务,如果这个业务办理完成还需要其他用户办理,就可以由activiti帮我们把工作流程往后面的步骤推动。
  6. 流程结束:当任务办理完成没有下一个任务节点后,这个流程实例就执行完成了。

六. 流程定义与流程实例

        流程定义 ProcessDefinition 和流程实例 Processinstance是Activiti中非常重要的两个概念,他们的关系其实类似于JAVA中类和对象的概埝。
        流程定义ProcessDefinition是以BPMN文件定义的一个工作流程,是一组工作规范。例如我们之前定义的请假流程。流程实例Processinstance则是指一个具体的业务流程。例如某个员工发起一次请假,就会实例化一个请假的流程实例,并且每个不同的流程实例之间是互不影响的。
在后台的表结构中,有很多张表都包含了流程定义ProcessDefinetion和流程实例Processinstance的字段。流程定义的字段通常是PROC DEF ID,而流程实例的字段通常是PROC INST ID。

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

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

相关文章

SpringCloud源码:服务端分析(二)- EurekaServer分析

背景 从昨日的两篇文章:SpringCloud源码:客户端分析(一)- SpringBootApplication注解类加载流程、SpringCloud源码:客户端分析(二)- 客户端源码分析。 我们理解了客户端的初始化,其实…

车辆种类分类识别数据集,可以识别7种汽车类型,已经按照7:2:1比 例划分数据集,训练集1488张、验证集507张,测试集31张, 共计2026张。

车 车辆种类分类识别数据集,可以识别7种汽车类型,已经按照7:2:1比 例划分数据集,训练集1488张、验证集507张,测试集31张, 共计2026张。 数据集分为一类客车(tinycar) ,类客车(midcar) ,三类 客车(bigcar) ,…

数据库重建索引的作用?

重建索引是数据库管理中的一个重要操作,主要用于优化数据库性能和提高查询效率。以下是重建索引的一些主要用途: 提高查询性能:随着时间的推移,数据的插入、更新和删除会导致索引碎片化,重建索引可以减少碎片&#xf…

C语言_内存函数

内存函数是 C 标准库中的一组函数&#xff0c;用于管理和操作内存。使用时需要包含头文件<string.h>。 1. memcpy的使用和模拟实现 函数形式如下&#xff1a; void* memcpy(void* destination, const void* source, size_tnum);函数解析和注意事项&#xff1a; memcp…

【有啥问啥】SimAM(Similarity-Aware Activation Module)注意力机制详解

SimAM&#xff08;Similarity-Aware Activation Module&#xff09;注意力机制详解 引言 在计算机视觉领域&#xff0c;注意力机制通过引导模型关注图像中的关键区域&#xff0c;显著提升了模型处理和理解图像的能力。SimAM&#xff08;Similarity-Aware Activation Module&a…

【网络安全 | 渗透工具】自动化 .env/.git文件检测

原创文章,禁止转载。 文章目录 1. 安装 DotGit2. 配置 DotGit3. 使用 DotGit 检测 .env / .git 文件1. 安装 DotGit 在谷歌应用商店中搜索 DotGit 并进行安装: 2. 配置 DotGit 安装完成后,可以在设置中开启或关闭相关功能: 3. 使用 DotGit 检测 .env / .git 文件 接下来…

音悦 1.5.1 完全免费,无广告,纯净听歌体验

音悦是一款完全免费的听歌应用&#xff0c;汇聚全网多平台曲库&#xff0c;拥有排行榜、MV、个性电台、我的歌单、收藏喜欢等功能。无需会员&#xff0c;没有广告&#xff0c;免费听歌下歌&#xff0c;是一款非常纯净小巧但功能齐全的听歌神器。 大小&#xff1a;27.6M 百度网…

【Linux 24】网络基础概念

文章目录 &#x1f308; 一、计算机网络的发展⭐ 1. 独立模式⭐ 2. 网络互联⭐ 3. 局域网 LAN⭐ 4. 广域网 WAN &#x1f308; 二、计算机网络的协议⭐ 1. 协议的概念⭐ 2. 协议分层⭐ 3. OSI 七层参考模型⭐ 4. TCP / IP 五层模型 &#x1f308; 三、网络传输基本流程⭐ 1. 同…

【计算机毕业设计】springboot企业客户信息反馈平台

摘 要 网络的广泛应用给生活带来了十分的便利。所以把企业客户信息反馈管理与现在网络相结合&#xff0c;利用java技术建设企业客户信息反馈平台&#xff0c;实现企业客户信息反馈的信息化。则对于进一步提高企业客户信息反馈管理发展&#xff0c;丰富企业客户信息反馈管理经验…

软考-高级系统分析师知识点合集记录

一、计算机基础知识 存储系统 计算机指令&#xff1a; 复杂指令&#xff0c;精简指令 指令的流水线周期计算方式 计算机系统体系结构&#xff1a; flynn方法 根据指令流和数据流的并行程度对计算机体系结构进行分类&#xff1a; 冯.诺依曼结构 &#xff0c;哈佛结构 根据指…

获取和解析JWT令牌

一、JWT令牌介绍 JWT&#xff08;JSON Web Tokens&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑且自包含的方式&#xff0c;用于在各方之间以JSON对象的形式安全地传输信息。每个JWT令牌由三部分组成&#xff1a;Header&#xff0…

U盘恢复数据工具全解析:助力找回丢失信息

不论是工作还是学习都需要一些电子设备来存储短期数据吧&#xff0c;优盘已经成为我们存储重要数据的常用工具之一。然而&#xff0c;由于各种原因&#xff0c;我们可能会遭遇优盘数据丢失的困扰。接下来&#xff0c;让我们一起深入了解u盘恢复数据软件的强大功能。 1.福晰恢复…

算法竞赛:Online Judge 工作原理 常见报错分析 如何判断算法是否超时 知己知彼 方能骗分

一、在线评测系统运行原理及各种报错常见原因 电脑只是处理数据验证最后答案与期望答案是否相同&#xff0c;大部分的思考都由人来完成。 OJ一般有一组或者多组input文件与output文件&#xff0c;比如1.in 1.out 2.in 2.out等 OJ先运行你的程序&#xff0c;同时在后台开始计时&…

废物利用,三百块电脑如何升级并安装双系统便携使用

文章目录 引言最初的配置开始改装更换内存升级硬盘2.5 英寸 sata 固态msata 加装 升级电池其他的升级娱乐大师跑分 双系统安装前提条件设置 Bios安装 win 10安装 Manjaro时间同步问题 屏幕问题黑屏难开 引言 最近浏览 b 站的二手笔记本信息&#xff0c;想要整个二手笔记本玩玩…

构建现代化社区医疗服务:SpringBoot平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理社区医院信息平台的相关信息成为必然。开发…

链表的实现(go语言)

摘要&#xff1a; 本文记录使用go语言对链表的实现。 链表的实现 节点结构 type Node struct {Data intNext *Node }新建节点 func NewNode(Data int) *Node {return &Node{Data: Data,Next: nil,} }尾部添加节点 // 尾部插入 func Append(head *Node, Data int) *Node…

信息安全工程师(28)机房安全分析与防护

前言 机房安全分析与防护是一个复杂而细致的过程&#xff0c;涉及到物理安全、环境控制、电力供应、数据安全、设备管理、人员管理以及紧急预案等多个方面。 一、机房安全分析 1. 物理安全威胁 非法入侵&#xff1a;未经授权的人员可能通过门窗、通风口等进入机房&#xff0c;…

【Java数据结构】 ArrayList 顺序表

一、什么是List 在集合框架中&#xff0c;List是一个接口&#xff0c;继承自Collection Collection也是一个接口&#xff0c;该接口中规范了后序容器中常用的一些方法&#xff0c;具体如下所示&#xff1a; Iterable 也是一个接口&#xff0c;表示实现该接口的类是可以逐个元素…

Unity Asset Store的默认下载位置及更改下载路径的方法

修改Unity Asset Store的默认下载路径 Unity Asset Store默认下载位置 Unity Asset Store里下载资源&#xff0c;默认是下载到C盘里的&#xff0c;如果你不想做C盘战士的话&#xff0c;记得将下载的资源转移到其他盘。 Unity商城默认下载路径是C:\用户\用户名&#xff08;一般…

电脑扬声器无法识别,没有声音处理

原因感觉就是前几天安装Realtek Audio Control驱动的时候&#xff0c;没有关闭360&#xff0c;导致的问题。 音量那里一直是 解决方法 开始菜单搜索“设备管理器” 在“声音、视频和游戏控制器”找到识别错的设备 右键“卸载设备” 右键扫描一下设备 此时一般就好了 …