Springboot +Flowable,各种历史信息如何查询(一)

这篇具有很好参考价值的文章主要介绍了Springboot +Flowable,各种历史信息如何查询(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.简介

正在执行的流程信息是保存在以 ACT_RU_ 为前缀的表中,执行完毕的流程信息则保存在以 ACT_HI_ 为前缀的表中,也就是流程历史信息表。

假设有一个流程,流程图如下:
Springboot +Flowable,各种历史信息如何查询(一)
当这个流程执行完毕后,以 ACT_RU_ 为前缀的表中的数据均已清空,现在如果想查看刚刚执行过的流程信息,就得去以 ACT_HI_ 为前缀的表中。

下面看下各种历史信息如何查询。

二.历史流程信息

历史流程信息查看,代码如下:

@Test
void test05() {
    List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery().finished().list();
    for (HistoricProcessInstance hpi : list) {
        logger.info("name:{},startTime:{},endTime:{}",hpi.getName(),hpi.getStartTime(),hpi.getEndTime());
    }
}

调用的时候执行的 finished() 方法表示查询已经执行完毕的流程信息(对于未执行完毕的流程信息也会保存在历史表中)。

这个查询对应的 SQL语句如下:

SELECT RES.* , DEF.KEY_ as PROC_DEF_KEY_, DEF.NAME_ as PROC_DEF_NAME_, DEF.VERSION_ as PROC_DEF_VERSION_, DEF.DEPLOYMENT_ID_ as DEPLOYMENT_ID_ from ACT_HI_PROCINST RES left outer join ACT_RE_PROCDEF DEF on RES.PROC_DEF_ID_ = DEF.ID_ WHERE RES.END_TIME_ is not NULL order by RES.ID_ asc

从这个 SQL 中可以看到,这个查询本质上就是查询的 ACT_HI_PROCINST 表。截图如下:
Springboot +Flowable,各种历史信息如何查询(一)
如果在查询的时候不限制流程是否执行完毕,那么查询的代码如下:

@Test
void test05() {
    List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery().list();
    for (HistoricProcessInstance hpi : list) {
        logger.info("name:{},startTime:{},endTime:{}",hpi.getName(),hpi.getStartTime(),hpi.getEndTime());
    }
}

对应的查询 SQL语句如下:

SELECT RES.* , DEF.KEY_ as PROC_DEF_KEY_, DEF.NAME_ as PROC_DEF_NAME_, DEF.VERSION_ as PROC_DEF_VERSION_, DEF.DEPLOYMENT_ID_ as DEPLOYMENT_ID_ from ACT_HI_PROCINST RES left outer join ACT_RE_PROCDEF DEF on RES.PROC_DEF_ID_ = DEF.ID_ order by RES.ID_ asc

和前面的 SQL 相比,后面的 SQL 少了 WHERE RES.END_TIME_ is not NULL 条件,也就是说,判断一个流程是否执行完毕,就看它的 END_TIME_ 是否为空,不为空就表示流程已经执行结束了,为空就表示流程尚在执行中

三.历史任务查询

刚刚查询的是历史流程,接下来看下历史任务,也就是查询一个流程中执行过的 Task 信息,下面代码表示查询所有的历史流程任务,代码如下:

@Test
void test06() {
    List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery().list();
    for (HistoricTaskInstance hti : list) {
        logger.info("name:{},assignee:{},createTime:{},endTime:{}",hti.getName(),hti.getAssignee(),hti.getCreateTime(),hti.getEndTime());
    }
}

这个查询对应的 SQL语句如下:

SELECT RES.* from ACT_HI_TASKINST RES order by RES.ID_ asc

可以看到,历史任务表就是 ACT_HI_TASKINST,截图如下:
Springboot +Flowable,各种历史信息如何查询(一)

查询某一个流程已经执行完毕的历史任务,代码如下:

@Test
void test07() {
    List<HistoricProcessInstance> instanceList = historyService.createHistoricProcessInstanceQuery().list();
    for (HistoricProcessInstance hpi : instanceList) {
        List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery().processInstanceId(hpi.getId()).finished().list();
        for (HistoricTaskInstance hti : list) {
            logger.info("name:{},assignee:{},createTime:{},endTime:{}", hti.getName(), hti.getAssignee(), hti.getCreateTime(), hti.getEndTime());
        }
    }
}

查询历史任务的 SQL语句如下:

SELECT RES.* from ACT_HI_TASKINST RES WHERE RES.PROC_INST_ID_ = ? and RES.END_TIME_ is not null order by RES.ID_ asc

可以看到,跟前面相比,多了两个条件:文章来源地址https://www.toymoban.com/news/detail-441081.html

  1. 流程实例 ID
  2. 流程结束时间不为 null

到了这里,关于Springboot +Flowable,各种历史信息如何查询(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 安卓玩机搞机技巧综合资源----手机各种代码 查询信息 开启端口 调试选项【十】

    接上篇 安卓玩机搞机技巧综合资源------如何提取手机分区 小米机型代码分享等等 【一】 安卓玩机搞机技巧综合资源------开机英文提示解决dm-verity corruption your device is corrupt. 设备内部报错 AB分区等等【二】 安卓玩机搞机技巧综合资源------EROFS分区格式 小米红米机型分区类型

    2024年02月11日
    浏览(37)
  • Elasticsearch8.8.0 SpringBoot实战操作各种案例(索引操作、聚合、复杂查询、嵌套等)

    Elasticsearch8.8.0 全网最新版教程 从入门到精通 通俗易懂 引入依赖 添加配置文件 application.yaml 导入ca证书到项目中 从任意一个es容器中,拷贝证书到resources目录下 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EXytUrDp-1691330960034)(media/16912196423122/16

    2024年02月13日
    浏览(48)
  • SpringBoot操作ES进行各种高级查询(值得收藏),阿里P7大佬手把手教你

    for(SearchHit hit:searchHits){ // 文档的主键 String id = hit.getId(); // 源文档内容 MapString, Object sourceAsMap = hit.getSourceAsMap(); String name = (String) sourceAsMap.get(“name”); // 由于前边设置了源文档字段过虑,这时description是取不到的 String description = (String) sourceAsMap.get(“description”

    2024年04月24日
    浏览(34)
  • (1)Flowable基础操作-部署、创建、查询、完成

    Flowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据,等等。 Flowable不仅仅包括BPMN,还有DMN决策表和CMMNase管理引擎,

    2024年02月10日
    浏览(27)
  • 如何一键批量查询全部物流信息?

    在日常工作中,快递物流信息的查询是一项常规任务。然而,这个过程往往既耗时又费力,尤其是在面对大量单号的情况下。为了解决这个问题,我们推荐使用固乔快递查询助手,一款能够快速、准确地查询快递物流信息的软件。 首先,你需要在浏览器中搜索“固乔科技”,

    2024年02月10日
    浏览(32)
  • SpringBoot 集成Flowable设计器(Flowable-ui)

    提示:使用版本6.7.0 公司使用前后端项目分离,前端使用bpmn插件生成bpmn xml文件,后端解析处理数据。今天主要介绍后端集成flowable设计器的过程中遇到的问题。 如需了解flowable框架集成请参考文档 Flowable BPMN 用户手册 (v 6.3.0) 提示:项目中遇到的问题: 为什么需要自己集成

    2023年04月09日
    浏览(27)
  • HRS--人力资源系统(Springboot+vue)--打基础升级--(三)查询用户信息

    接上一集已经写了好导航侧界面,现在写个导航侧功能中的查询用户信息 1. 首先写一个员工信息vue,嗯 就叫employee.vue  2. 特地预留了右边的空白位置是用来展示数据的,所以我们要做子目录的一个关联,其次记得做地址的路由 3. Vue 安装axios,封装request npm i axios -S 安装成功

    2024年02月11日
    浏览(32)
  • Linux如何在终端查询显卡信息

    在Linux终端中查看显卡信息是非常直观的。以下是一份详细的教程,介绍如何使用不同的命令和工具来获取各种显卡的信息: 方法1:常规方法 1 使用 lspci lspci 是一个常用的命令行工具,用于显示系统上的PCI设备信息,包括显卡。 步骤: 打开终端。 输入以下命令: bashlspci

    2024年02月22日
    浏览(27)
  • Springboot整合Flowable流程引擎

    Flowable是一个开源的工作流引擎,它基于Activiti引擎进行发展,Flowable主要用于为业务流程管理(BPM)和工作流的设计、操作、监控提供支持。 这类表在Flowable中主要提供存储通用类型数据的功能,如流程名称,创建时间等。如下是通用表的主要成员: act_ge_bytearray:存储二进

    2024年02月05日
    浏览(27)
  • SpringBoot集成Flowable工作流

    官方文档: https://tkjohn.github.io/flowable-userguide/#_introduction Flowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据,等等

    2024年02月15日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包