Activiti7 学习总结
什么是工作流?
就是通过计算机对业务流程进行自动化处理,实现多个参与者按照预定义的流程去自动执行业务流程
什么是Activiti?
Activiti是一个工作流引擎,开源的架构,基于BPMN2.0标准进行流程定义,他的前身是JBPM
Activiti通常是要嵌入到业务系统开发使用
如何使用Activiti开发?
第一步:
环境包括:jar包和数据库(25张表)
业务系统通过Spring和Activiti整合进行开发
第二步:
使用Activiti提供的流程设计器(IDEA或者Eclipse actBPMN插件)工具进行流程定义
流程定义生成两个文件:.bpmn和.png(不是必须的)
第三步:
将流程定义文件部署到activiti数据库
select * from act_re_deployment #流程定义部署表
一次部署插入一条记录,记录流程定义的部署信息
select * from act_re_procdef #流程定义表
一次部署流程定义信息,如果一次部署两个流程定义,插入两条记录
建议:一次只部署一个流程定义,这样act_re_depolyment和act_re_procdef一对一关系
常用两个方法:
单个文件部署和zip部署
建议单个文件部署
第四步:
启动一个流程实例
业务系统就可以按照流程定义去执行业务流程,执行前需要启动一个流程实例
根据流程定义来启动一个流程实例
指定一个流程定义的key启动一个流程实例,activiti根据Key找最新版本的流程定义
指定一个流程定义的ID启动一个流程实例
启动一个流程实例需要指定 businessKey(业务标识),businessKey是Activiti和业务系统整合时的桥梁
比如:请假流程,businessKey就是请假单ID
启动一个流程实例还可以指定流程变量,流程变量一般使用全局变量(生命周期是整个流程实例,流程实例结束,变量消失)
第五步:
查询待办任务
查询个人任务:使用taskService,根据assignee查询用户的待办任务
查询组任务:使用taskService,根据candidateUser查询候选用户当前的待办组任务
第六步:
办理任务
办理个人任务:调用taskService的complete方法完成任务
办理组任务:如果是组任务,需要先拾取任务,调用taskService的claim方法拾取任务,拾取任务之后组任务变成个人任务(该任务就有负责人了)
网关:
排他网关:任务执行后的分支,经过排他网关的分支只有一条
并行网关:任务执行后,可以多条分支,多条分支总会汇聚,汇聚完成,并行网关结束
包含网关:是排他网关和并行网关的结合体
作者:彼岸舞
时间:2020\09\08
内容关于:Activiti工作流
本文来源于网络,只做技术分享,一概不负任何责任
Activiti7 学习总结的更多相关文章
- Springboot2.1.x配置Activiti7单独数据源问题
Springboot2.1.x配置Activiti7单独数据源问题 简介 最近基于最新的Activiti7配置了SpringBoot2. 简单上手使用了一番.发现市面上解决Activiti7的教程很少 ...
- Activiti7工作流+SpringBoot
文章目录 一. Activiti相关概念 1. Activiti介绍 2. 核心类 2.1 ProcessEngine 2.2 服务(Service)类 2.2.1 TaskService 2.2.2 ...
- Activiti7新的API介绍
一.Activiti7 的组成部分 Activiti Core 作为Activiti 的核心部分,Activiti Cloud 主要是利用云服务来实现分布式业务流程开发. 二.Activiti 新的 ...
- activiti工作流入门学习
工作流一般在OA系统用的比较多,当然,只要有流程审批的地方都会用到,activiti只是开源的工作流中比较流行的一个,还有其他的开源的工作流,这里学习activiti工作流:前面部分是关于activi ...
- activiti学习笔记一
activiti学习笔记 在讲activiti之前我们必须先了解一下什么是工作流,什么是工作流引擎. 在我们的日常工作中,我们会碰到很多流程化的东西,什么是流程化呢,其实通俗来讲就是有一系列固定的步骤 ...
- activiti7 导出bpmn文件
最近在学习springboot+activiti7整合,想做一个导出bpmn文件的功能,查了相关资料,最后没有实现.最后查看了一下代码 找到了方法 如下所示 @GetMapping("exp ...
- Activiti7 入门篇
1. 工作流 简单地来讲,工作流就是在计算机的协助下实现流程的自动化控制.目前,笔者熟知的主流的框架有:Camunda .Flowable .Activiti .jBPM.还有我们国产的盘古BPM. ...
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
随机推荐
- Windows聚焦失效问题的解决办法
1. 设置Windows聚焦 步骤:任务栏右键 → 任务栏设置 → 锁屏界面 → 背景选择Windows聚焦 2. 解决Windows聚焦失效问题 设置完Windows聚焦之后,锁屏界面却没有变. 尝 ...
- Java高级篇 JVM
JVM是什么? JVM起了什么作用? JVM包含了什么? JVM中, 一个类 程序是怎么加载的? JVM中垃圾回收机制?
- Java对象与类—对象与类
1.类 类(class)是构造对象的模板,具体点说类就是对具有相同性质,相同行为的一群对象的抽象说明.由类构造(construst)对象的过程称为创建类的实例(instance). 2.对象 对象是类 ...
- CornerNet
论文 CornerNet: Detecting Objects as Paired Keypoint
- 2020-08-01:MySQL 的数据如何恢复到任意时间点?
福哥答案2020-08-01: 恢复到任意时间点以定时的做全量备份,以及备份增量的 binlog 日志为前提.恢复到任意时间点首先将全量备份恢复之后,再此基础上回放增加的 binlog 直至指定的时间 ...
- 阙乃祯:网龙在教育领域Cassandra的使用
网龙是一家游戏公司,以前是做网络在线游戏的,现在开始慢慢转型,开始从事在线教育. 在线教育已经做了5-6年时间了.为什么我们会用Cassandra呢?那我们就来介绍今天的议题. 首先介绍我们的业务背景 ...
- Mybatis-05-使用注解开发
使用注解开发 1 面向接口编程 原因: 解耦.可扩展性.提高复用性 关于接口的理解 定义与实现的分离 两类接口 一个个体的抽象,abstract class 一个个体某个方面的抽象,interface ...
- 记一次mysql数据库被勒索(中)
背景在上一篇文章里面已经提过了. 现在面临的问题是nextcloud没有mysql数据库,用不起来了. 因为文件没丢,一种方法是启动新的mysql数据库,把文件重新提交一次. 为了程序员的面子,没有选 ...
- Jmeter 常用函数(15)- 详解 __StringFromFile
如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.htm 作用 从文本文件读取字符串,每次一行 需要注意 ...
- python中a, b = a, a + b这条语句是如何执行的?
a,b=b,a+b,这条语句在"理解"上还是与C语言有些差别的.在Python中,可以做下面的方式理解:首先,把等号右边的算式分别算完再说,然后按照一一对应的关系把值赋给等号左边的 ...