Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >项目实践工作流之Activiti学习(四十一)

项目实践工作流之Activiti学习(四十一)

作者头像
用户1289394
发布于 2023-11-22 05:48:53
发布于 2023-11-22 05:48:53
4160
举报
文章被收录于专栏:Java学习网Java学习网

5.3.2流程定义:

企业体检流程,公司全体员工进行常规项检查、抽血化验,公司管理层除常规检查和抽血化验还要进行增加项检查。

图标:

员工类型:

通过流程变量 userType 来表示,如果等于 1 表示普通员工,如果等于 2 表示领导

注意:通过包含网关的每个分支的连线上设置 condition 条件。

5.3.3测试

如果包含网关设置的条件中,流程变量不存在,报错;

org.activiti.engine.ActivitiException: Unknown property used in expression: ${userType=='1' || userType=='2'}

需要在流程启动时设置流程变量 userType

当执行到包含网关:

流程实例执行表:SELECT * FROM act_ru_execution

第一条记录:包含网关分支。

后两条记录:两个分支:常规项体检,抽血化验

当前任务表:ACT_RU_TASK_

上图中,常规项体检,抽血化验都是当前的任务,在并行执行。

如果有一个分支执行到汇聚:

先走到汇聚结点的分支,要等待其它分支走到汇聚。

等所有分支走到汇聚,包含网关就执行完成。

包含网关执行完成,分支和汇聚就从 act_ru_execution 删除。

小结:在分支时,需要判断条件,符合条件的分支,将会执行,符合条件的分支最终才进行汇聚。

总结

什么是工作流?

就是通过计算机对业务流程进行自动化管理,实现多个参与者按照预定义的流程去自动执行业务流程。

什么 activiti?

Activiti 是一个工作流的引擎,开源的架构,基本 bpmn2.0 标准进行流程定义,它的是前身是 jbpm。

Activiti 通过是要嵌入到业务系统开发使用。

如何使用 activiti 开发?

 第一步:部署 activiti 的环境。

环境包括:jar 包和数据库(25 张表)

业务系统通过 spring 和 activiti 整合进行开发。

 第二步:使用 activiti 提供流程设计器(和 idea 或 eclipse 集成的 designer)工具进行流程定义

流程定义生成两个文件:.bpmn 和.png(不是必须的)。

 第三步;将流程定义文件部署到 activiti 的数据库

SELECT * FROM act_re_deployment #流程定义部署表

一次部署插入一条记录,记录流程定义的部署信息

SELECT * FROM act_re_procdef #流程定义表一次部署流程定义信息,如果一次部署两个流程定义,插入两条记录

建议:一次部署只部署一个流程定义,这样 act_re_deployment 和 act_re_procdef 一对一关系

常用两个方法:单个文件部署和 zip 文件部署。

建议单个文件部署。

 第四步: 启动一个流程实例

业务系统就可以按照流程定义去执行业务流程,执行前需要启动一个流程实例

根据流程定义来启动一个流程实例。

指定一个流程定义的 key 启动一个流程实例,activiti 根据 key 找最新版本的流程定义。

指定一个流程定义的 id 启动一个流程实例。

启动一个实例需要指定 businesskey(业务标识),businessKey 是 activiti 和业务系统整合时桥梁。

比如:请假流程,businessKey 就是请假单 id。

启动一个实例还可以指定流程变量,流程变量是全局变量(生命期是整个流程实例,流程实例结束,变量就消失)

 第五步:查询待办任务

查询个人任务:使用 taskService,根据 assignee 查询该用户当前的待办任务。

查询组任务:使用 taskService,根据 candidateuser 查询候选用户当前的待办组任务。

 第六步:办理任务

办理个人任务:调用 taskService 的 complete 方法完成任务。

如果是组任务,需要先拾取任务,调用 taskService 的 claim 方法拾取任务,拾取任务之后组任务就变成了个人任务(该任务就有负责人)。

网关:

排他网关:任务执行之后的分支,经过排他网关分支只有一条有效。

并行网关:任务执行后,可以多条分支,多条分支总会汇聚,汇聚完成,并行网关结束。

包含网关:是排他网关和并行网关结合体。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java&Activiti7实战:轻松构建你的第一个工作流
将工作流的定义文件(如BPMN文件、流程图等)发布到Activiti引擎中的过程,使流程定义能够被系统识别和使用。
JavaEdge
2025/04/23
1140
Java&Activiti7实战:轻松构建你的第一个工作流
项目实践工作流之Activiti学习(二十三)
参与者(可以是用户也可以是程序)按照流程定义内容发起一个流程,这就是一个流程实例。是动态的。
用户1289394
2023/11/06
1990
项目实践工作流之Activiti学习(二十三)
Activiti7 学习总结
就是通过计算机对业务流程进行自动化处理,实现多个参与者按照预定义的流程去自动执行业务流程
彼岸舞
2020/12/01
6370
史上最全的工作流引擎 Activiti 学习教程(值得收藏)
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/05/23
2.5K0
史上最全的工作流引擎 Activiti 学习教程(值得收藏)
Activiti7笔记(二)Activiti7一共涉及到25张表,哪些操作会涉及哪些表,每张表的作用是什么
第二部分是表示表的用途的两个字母标识。 用途也和服务的 API 对应。 ACT_RE :'RE’表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。 ACT_RU:'RU’表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti 只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。 ACT_HI:'HI’表示 history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。 ACT_GE : GE 表示 general。 通用数据, 用于不同场景下
一写代码就开心
2022/05/09
2.9K0
Activiti7笔记(二)Activiti7一共涉及到25张表,哪些操作会涉及哪些表,每张表的作用是什么
项目实践工作流之Activiti学习(四十)
通过流程实例执行表:SELECT * FROM act_ru_execution #流程实例的执行表
用户1289394
2023/11/21
2290
项目实践工作流之Activiti学习(四十)
Activiti工作流的详细介绍[通俗易懂]
1、工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现。
全栈程序员站长
2022/11/08
3.9K0
Activiti工作流的详细介绍[通俗易懂]
工作流引擎之activiti入门
在解释activiti之前我们看一下什么是工作流。 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。 我的理解是,工作流将一套大的业务逻辑分解成业务逻辑段, 并统一控制这些业务逻辑段的执行条件,执行顺序以及相互通信。 实现业务逻辑的分解和解耦。 Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度。 BPMN即业务流程建模与标注(Business Process Model and Notation,BPMN) ,描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)。
lyb-geek
2018/07/26
9.3K0
工作流引擎之activiti入门
七万字掌握热门工作流引擎框架Activiti7,附带视频讲解哦
  工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。文章中涉及的相关软件资料扫左侧哦。
用户4919348
2022/01/07
1.5K0
七万字掌握热门工作流引擎框架Activiti7,附带视频讲解哦
项目实践工作流之Activiti学习(三十九)
在部门经理审核后,走排他网关,从排他网关出来的分支有两条,一条是判断请假天数是否大于 3天,另一条是判断请假天数是否小于等于 3 天。
用户1289394
2023/11/23
2690
项目实践工作流之Activiti学习(三十九)
【云+社区年度征文】Activiti7流程框架基础功能详细讲解
但是阿里云的Maven仓库里面是有的,只是名字不同而已,所以我们需要去重新导入这些依赖.并且M5的版本存在一个bug就是每次项目之后都会在 act_re_deployment表里面插入一条数据SpringAutoDeployment ,所以建议大家使用M4的版本
萌萌哒的瓤瓤
2020/12/18
1.5K0
【云+社区年度征文】Activiti7流程框架基础功能详细讲解
搭建单体SpringBoot项目 集成Activiti7 进阶
一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。
郭顺发
2023/07/17
6660
搭建单体SpringBoot项目 集成Activiti7 进阶
Activiti工作流框架学习笔记(一)「建议收藏」
对于第一次接触工作流的小伙伴来说,觉得难以理解,也无可厚非,说得好像我自己就能深刻理解一样,我也只是将学习Activiti工作流框架中的一些知识点记录下来而已,也希望能和大家讨论。
全栈程序员站长
2022/11/08
2.7K0
Activiti工作流框架学习笔记(一)「建议收藏」
项目实践工作流之Activiti学习(三十八)
SELECT * FROM act_ru_task #任务执行表,记录当前执行的任务,由于该任务当前是组任务,所有assignee 为空,当拾取任务后该字段就是拾取用户的 id
用户1289394
2023/11/20
2210
项目实践工作流之Activiti学习(三十八)
Activiti工作流杂谈-工作机制详解
以下内容为博主在公司内部分享的一个小文档,谈到了activiti的各方面内容,有需要的可留言要word原文件 
kl博主
2018/04/13
3.7K2
Activiti工作流杂谈-工作机制详解
项目实践工作流之Activiti学习(二十)
SELECT * FROM act_re_deployment #流程定义部署表,记录流程部署信息
用户1289394
2023/11/02
1930
项目实践工作流之Activiti学习(二十)
activiti6.0工作流引擎深度解析_自定义工作流引擎
工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。
全栈程序员站长
2022/09/27
2.9K0
activiti6.0工作流引擎深度解析_自定义工作流引擎
flowable工作流所有业务概念
说起flowable还来自于activiti,因为activiti内部工作人员不合,一大堆小伙伴相约出去创业了。但是锅还是原来的锅,只不过做饭的方式不同了。所以在思想上,flowable与activiti相差不大。只不过功能更加强大了。
全栈程序员站长
2022/08/25
3.9K0
flowable工作流所有业务概念
activiti工作流框架_springboot工作流框架
Activiti是一个项目的名称,Alfresco软件在2010年5月17日宣布Activiti业务流程管理(BPM)开源项目的正式启动,其首席架构师由业务流程管理BPM的专家 Tom Baeyens担任。
全栈程序员站长
2022/09/27
8610
activiti工作流框架_springboot工作流框架
Spring Boot + Activiti 完美结合,快速实现工作流~
关于工作流之前分享过一篇flowable,今天分享一下另外一个实现:Activiti
码猿技术专栏
2023/05/01
1.3K0
Spring Boot + Activiti 完美结合,快速实现工作流~
推荐阅读
相关推荐
Java&Activiti7实战:轻松构建你的第一个工作流
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档