flowable实战(十)flowable 启动流程到完成所有任务之间的数据库变化

来写一下Activiti 5.18版本从启动流程到整个流程结束之间数据库表的变化

先给出流程图,很简单的流程,就是两个UserTask:

在这里插入图片描述代码如下:

DeploymentBuilder builder=repositoryService.createDeployment();
Deployment deployment=builder.addClasspathResource(“bpmn/simple_process.bpmn”).deploy();
以上代码是部署这个流程,部署完毕后,act_re_deployment表中会有一条部署记录,记录这次部署的基本信息,然后是act_ge_bytearray表中有两条记录,记录的是本次上传的bpmn文件和对应的图片文件,每条记录都有act_re_deployment表的外键关联,然后是act_re_procdef表中有一条记录,记录的是该bpmn文件包含的基本信息,包含act_re_deployment表外键。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意看这个5001就是act_re_deployment表外键

ProcessDefinition pd=repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).singleResult();
ProcessInstance pi=runtimeService.startProcessInstanceById(pd.getId());

以上代码是搜索此次部署对应的流程定义信息,也就是act_re_procdef表的信息查询。然后启动这个流程。

首先向act_ru_execution表中插入一条记录,记录的是这个流程定义的执行实例,其中id和proc_inst_id相同都是流程执行实例id,也就是本次执行这个流程定义的id,包含流程定义的id外键(simpleProcess:1:5004)。
在这里插入图片描述
然后向act_ru_task插入一条记录,记录的是第一个任务的信息,也就是开始执行第一个任务。包括act_ru_execution表中的execution_id外键和proc_inst_id外键,也就是本次执行实例id。
在这里插入图片描述
然后向act_hi_procinst表和act_hi_taskinst表中各插入一条记录,记录的是本次执行实例和任务的历史记录:在这里插入图片描述
在这里插入图片描述Task task1=taskService.createTaskQuery().processInstanceId(pi.getId()).taskDefinitionKey(“task1”).singleResult();
taskService.setVariable(task1.getId(), “var1”, “var1”);
taskService.complete(task1.getId());
以上代码是查询流程本次执行实例下名为task1的任务,然后给任务设置全局变量,如果调用的是taskService.setVariableLocal方法,则任务执行完毕后,相关变量数据就会删除,然后再完成任务。

首先向act_ru_variable表中插入变量信息,包含本次流程执行实例的两个id外键,但不包括任务的id,因为setVariable方法设置的是全局变量,也就是整个流程都会有效的变量:
在这里插入图片描述
执行完task1后,act_ru_task表中task1的记录被删除,新插入task2的记录:
在这里插入图片描述
同时向act_hi_var_inst和act_hi_taskinst插入历史记录
在这里插入图片描述
在这里插入图片描述
Task task2=taskService.createTaskQuery().processInstanceId(pi.getId()).taskDefinitionKey(“task2”).singleResult();
taskService.complete(task2.getId());
以上代码是查询本流程执行实例下的task2并完成task2。

此时整个流程执行完毕,act_ru_task,act_ru_execution和act_ru_variable表全被清空
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其实全程有一个表一直在记录所有动作,就是act_hi_actinst表:
在这里插入图片描述

List<HistoricVariableInstance> vars=historyService.createHistoricVariableInstanceQuery().processInstanceId(pi.getId()).list();
for(HistoricVariableInstance var:vars){
System.out.println(var.getVariableName());
System.out.println(var.getValue());
}

以上这段代码是查询act_hi_varinst表中变量历史记录的。因为流程执行完毕act_ru_variable表被清空。

讲解完毕

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

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

相关文章

阿里敏捷教练如何优化优酷需求分析流程?

摘要&#xff1a; 如何帮助优酷迅速融合到阿里研发体系&#xff1f;如何优化优酷的需求分析流程&#xff1f;针对需求信息不明确&#xff0c;开发出来的功能不是产品想要的痛点如何解决&#xff1f; 点此查看原文&#xff1a;http://click.aliyun.com/m/41381/ 导读&#xff1a…

java float 高效加减_java Double 进行加减乘除

Double 工具类package org.fh.util;import java.io.Serializable;import java.math.BigDecimal;import java.math.RoundingMode;/*** double的计算不精确&#xff0c;会有类似0.0000000000000002的误差&#xff0c;正确的方法是使用BigDecimal或者用整型* 整型地方法适合于货币…

Gartner预计2019年全球半导体收入将下滑9.6%;苹果中国用户正流向华为;Facebook将支付50亿美元与FTC和解...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周五第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

PostgreSQL 多重含义数组检索与条件过滤 (标签1:属性, 标签n:属性) - 包括UPSERT操作如何修改数组、追加数组元素

摘要&#xff1a; 标签 PostgreSQL , 多重函数数组 , UDF索引 , 过滤 , 文本处理 背景 PG的数组类型&#xff0c;被广泛应用于 画像系统 &#xff0c; 标签系统。 在一些业务重建中&#xff0c;对数组内容的定义往往包含了多重含义&#xff0c;例如即包含了标签本身&#xff0c…

flowable实战(十一)flowable 删除数据库表先后顺序

工作流表删除顺序 drop table act_evt_log; drop table act_hi_actinst; drop table act_hi_attachment; drop table act_hi_comment; drop table act_hi_detail; drop table act_hi_identitylink; drop table act_hi_procinst; drop table act_hi_taskinst; drop table act_hi…

从MapReduce的执行来看如何优化MaxCompute(原ODPS) SQL

摘要&#xff1a; SQL基础有这些操作&#xff08;按照执行顺序来排列&#xff09;&#xff1a; from join(left join, right join, inner join, outer join ,semi join) where group by select sum distinct count order by 如果我们能理解mapreduce是怎么实现这些SQL中的基本操…

mysql getline_getMessage(),getFile,getLine获取异常用法

try {$param $request->all();$param[building_id] 0;$param[sync] 2; // 1小程序2App$param[user_id] $receiveUser->id ?? 0;$follow FollowTool::follow($param);if ($follow[status] ! 200) {empty($follow[msg]) ? $msg "未知错误 follow" : $ms…

flowable实战(十二)flowable 核心表ACT_RU_EXECUTION 详解(初学者误解的一张表)

一、ACT_RU_EXECUTION 表(很多初学者迷惑的一张表&#xff0c;以为是流程实例表&#xff0c;其实它叫执行实例表&#xff09;&#xff1a;这个表和act_run_task表&#xff0c;一起控制了用户任务的产生与完成等。 这个表是工作流程的核心表&#xff0c;这个表会体现主干与分支…

阿里云大数据MaxCompute计算资源分布以及LogView分析优化

摘要&#xff1a; MaxCompute(原ODPS&#xff09;的概念 海量数据处理平台&#xff0c;服务于批量结构化数据的存储和计算&#xff0c;提供海量数据仓库的解决方案以及针对大数据的分析建模服务.(官方文档有这里就不多做介绍了)官方文档链接 优势 用户不必关心分布式计算细节&a…

计算机视觉领域还能耍什么花样?

从移动支付的自动贩卖机到刷脸支付的智能货柜&#xff1b;从亲自到柜台验证到人脸核身远程开卡&#xff1b;从排队买票、排队进门的糟糕旅游体验到提前预约&#xff0c;刷脸入园的智慧旅游&#xff1b;……从计算机视觉应用的产业板块上分析&#xff0c;以视频应用为基础的视频…

MaxCompute MapReduce

摘要&#xff1a; 大数据计算服务(MaxCompute)的功能详解和使用心得 点此查看原文&#xff1a;http://click.aliyun.com/m/41384/ 前言 MapReduce已经有文档&#xff0c;用户可以参考文档使用。本文是在文档的基础上做一些类似注解及细节解释上的工作。 功能介绍 MapReduce 说起…

Flowable springboot项目自定义中文字体

Flowable springboot项目自定义中文字体 摘要&#xff1a;在flowable框架中&#xff0c;当我们想要集成springboot框架的时候&#xff0c;可能要设置中文字体&#xff0c;flowable6.4之前的版本因为没有可以设置字体的属性&#xff0c;所以我们没法进行中文字体的设置&#xff…

java中怎么判断数组下标越界_初学java遇到疑惑,数组下标越界,求解答!

一个学生考试成绩录入程序的模块化设计&#xff0c;在编译时出现了数组下标越界错误提示&#xff1a;Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0&#xff1b;at Ch3Demo7.main(Ch3Demo7.java:26)class Ch3Demo7 //example{public stat…

漫画 | Kubernetes带你一帆风顺去远航

戳蓝字“CSDN云计算”关注我们哦&#xff01;来源 | Google Cloud如果你是一个狂立学习flag却屡屡打脸的懒癌晚期&#xff0c;或者是一个对云计算方面云里雾里&#xff0c;不知所措的好学者&#xff0c;亦或是一位资深行业专家&#xff0c;都欢迎关注【CSDN云计算公众号】&…

java 连接已重置_Bitronix连接重置问题

我在部署到linux环境时似乎遇到了这个错误&#xff0c;不确定这是什么意思请有人帮我解释一下可能的解决办法吗&#xff1f;java.sql.SQLException&#xff1a;无法从bitronix.tm.resource.jdbc.PoolingDataSource.getConnection获取包含资源actdb的XAPool的PoolingDataSource的…

Kubernetes与Docker基本概念与常用命令对照

摘要&#xff1a; Docker是众多用户上手入门的基础容器和编排工具&#xff0c;提供了良好的开发者体验。Kubernetes是强大的容器编排平台&#xff0c;功能丰富。它们有很多概念和操作都有类似之处。我们今天会和大家对比基本概念与常用命令&#xff0c;可以方便熟悉Docker的用户…

flowable 设置流程跟踪高亮线的颜色

背景&#xff1a;在实际情况下&#xff0c;很多人对这个红色的高亮有意见&#xff0c;所以这里我把我的修改颜色的代码分享出来&#xff0c;希望对大家有帮助。&#xff08;如果有问题可以加QQ群&#xff1a;633168411 里面很多高手&#xff0c;人也都非常善良&#xff09; 效果…

连续启动 crash 自修复技术实现与原理解析

摘要&#xff1a; 如果 app 连续 crash 两次无法启动&#xff0c;用户往往会选择卸载。本文介绍如何该类 crash 的自修复技术。 点此查看原文&#xff1a;http://click.aliyun.com/m/41487/ 作者&#xff1a;阿里云-移动云-大前端团队 前言 如果 app 连续 crash 两次无法启动…

设计java application程序_下面哪些步骤是Java Application程序的建立及运行的步骤( )...

【判断题】运用定量模型进行优化控制是提高管理科学性的要求。【多选题】下列有关数组的声明中,正确的是( )【填空题】是一种特殊的方法,它是在对象被创建时初始化对象的成员的方法。【判断题】数量化、模型化、最优化的方法并不是系统控制所特有的方法,但却是系统控制的必要条…

Flowable设置流程发起人

第一种方式 直接调用原生的api设置流程的启动人 // set Flowable authenticated Authentication.setAuthenticatedUserId("123"); runtimeService.startProcessInstanceByKey("ceshi"); Authentication.setAuthenticatedUserId(null);设置该流程启动人是和…