流程历史记录查询

简介: 流程历史记录查询

流程历史记录查询

其实就是根据不同的查询条件查询act_hi_actinst表

网络异常,图片无法展示
|

首先需要把流程执行完,调用之前的根据当前人审批,挨个执行

// 查看流程审批的历史信息
@Test
public void getHistoryInfo(){
    // 获取流程引擎
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    // 获取HistortService
    HistoryService historyService = processEngine.getHistoryService();
    // 获取instanceQuery
    HistoricActivityInstanceQuery instanceQuery = historyService.createHistoricActivityInstanceQuery();
    // 查询act_hi_actinst表 查询条件 根据InstanceID查询
    // instanceQuery.processInstanceId("5001");
    // 查询act_hi_actinst表 查询条件 根据DefinitionId查询
    instanceQuery.processDefinitionId("myEvection:1:2504");
    // 增加排序操作 根据开始时间去排序
    instanceQuery.orderByHistoricActivityInstanceStartTime().asc();
    List<HistoricActivityInstance> list = instanceQuery.list();
    // 输出结果
    for (HistoricActivityInstance hi : list) {
        System.out.println(hi.getActivityId());
        System.out.println(hi.getActivityName());
        System.out.println(hi.getProcessDefinitionId());
        System.out.println(hi.getProcessInstanceId());
        System.out.println("------------------------------------------");
    }
}

执行结果

_2

StartEvent

myEvection:1:2504

5001

------------------------------------------

_3

创建出差申请

myEvection:1:2504

5001

------------------------------------------

_4

经理审批

myEvection:1:2504

5001

------------------------------------------

_5

总经理审批

myEvection:1:2504

5001

------------------------------------------

_6

财务审批

myEvection:1:2504

5001

------------------------------------------

_7

EndEvent

myEvection:1:2504

5001

------------------------------------------

Process finished with exit code 0

17 Activiti进阶(与业务关联)

流程实例

网络异常,图片无法展示
|

把整个流程节点走完才算一个实例的结束

一个流程可以有多个实例,比如张三出差,李四出差

Activiti与业务系统整合分析

由于我们使用AC的时候只能进行流程审批,但是不知道流程内容是什么,所以我们需要和业务相关的表进行结合

网络异常,图片无法展示
|

进阶就是讲的AC和业务系统进行数据关联交互,才能真正的实现工作流,我们刚才写的代码全是demo,像下一个审批人我们不能写死成jack,应该从数据库里面获取,我们通常使用表中的一个字段(businessKey 业务key)让业务表和流程表关联,比如业务表的id为1,那么businessKey也应该为1,我们查询的时候就会把业务信息和AC表信息一起查出来,这是最简单的一种实现方式

Activiti实现businessKey关联

上述已经说了需要新增businessKey(业务key)进行AC和业务表的关联,下面我们就是用代码实现

首先新建一个测试类,添加businessKey的代码如下,这是一个demo级别的,因为我们都是写死的内容

网络异常,图片无法展示
|

package com.wyh.test;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.runtime.ProcessInstance;
import org.junit.Test;
/**
 * @description: Activiti整合BusinessKey(业务key)
 * @author: 魏一鹤
 * @createDate: 2022-07-18 22:13
 **/
public class ActivitiBusinessDemo {
    // 添加业务key到Activiti的表里面
    @Test
    public void addBusinessKey(){
        // 获取流程引擎
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        // 获取service RuntimeService
        RuntimeService runtimeService = processEngine.getRuntimeService();
        // 启动流程的过程中添加业务key
        // 参数1 String processDefinitionKey  流程定义的key
        // 参数2 String businessKey 业务key,业务表的id 也就是1001,目前是一个demo级别先写死
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myEvection", "1001");
        // 输出内容
        System.out.println("businessKey:"+processInstance.getBusinessKey());
    }
}

运行方法,的确是我们存入的业务表ID,1001

网络异常,图片无法展示
|

在数据库act_ru_execution表里面查询到业务key,我们以后就通过查询这张表获取流程信息

网络异常,图片无法展示
|

相关文章
|
存储 安全 Linux
TiDB安装准备工作与基础环境搭建
【2月更文挑战第28天】TiDB安装前需满足硬件(足够CPU、内存、存储)和软件(Linux,推荐CentOS 7+)要求,确保网络稳定性。配置包括设置唯一主机名,关闭防火墙和SELinux,同步NTP,创建TiDB用户和目录。下载官方安装包并验证后,解压,配置环境变量,初始化集群,启动服务并验证运行状态。稳定的环境对发挥TiDB性能至关重要。
1007 1
|
JavaScript 前端开发 开发者
哇塞!Vue.js 与 Web Components 携手,掀起前端组件复用风暴,震撼你的开发世界!
【8月更文挑战第30天】这段内容介绍了Vue.js和Web Components在前端开发中的优势及二者结合的可能性。Vue.js提供高效简洁的组件化开发,单个组件包含模板、脚本和样式,方便构建复杂用户界面。Web Components作为新兴技术标准,利用自定义元素、Shadow DOM等技术创建封装性强的自定义HTML元素,实现跨框架复用。结合二者,不仅增强了Web Components的逻辑和交互功能,还实现了Vue.js组件在不同框架中的复用,提高了开发效率和可维护性。未来前端开发中,这种结合将大有可为。
394 0
|
安全 Java 测试技术
Windows电脑安装Apache JMeter的详细教程
本文介绍了在Windows上安装Apache JMeter的步骤。首先,需确保安装Java JDK并配置环境变量。然后,从JMeter官网下载ZIP文件,解压至指定目录,并同样配置JMeter的环境变量。验证安装成功后,可通过命令行以GUI或非GUI模式启动JMeter,进行性能测试。
|
存储 分布式计算 负载均衡
什么是 HBase?其组件起什么作用?
【8月更文挑战第12天】
1568 4
|
SQL 算法 数据可视化
LeetCode题目92:反转链表ll 【python 递归与迭代方法全解析】
LeetCode题目92:反转链表ll 【python 递归与迭代方法全解析】
|
数据可视化
【word visio绘图】关闭visio两线交叉的跳线(跨线)
【word visio绘图】关闭visio两线交叉的跳线(跨线)
778 0
|
Kubernetes 负载均衡 监控
在K8S中,kube-proxy 作用是什么?
在K8S中,kube-proxy 作用是什么?
|
网络协议 API 开发者
无线通信模块通过TCP/IP协议实现与PC端的数据传输
本文介绍了无线通信模块借助TCP/IP协议向PC端传输数据的过程,包括数据封装、发送和接收,并以WIFI模块为例,讨论了在QT平台下实现无线数据传输的方法。通过QTcpSocket类,开发者能轻松建立WIFI模块与PC间的连接。随着无线通信技术的进步,未来将有更多创新应用出现。
275 2
|
SQL 存储 关系型数据库
关系型数据库涉及到的问题
深入了解特定数据库系统的特性和最佳实践是非常重要的。
169 4
|
人工智能 开发者
Kimi Chat:国内AI新星,20万字超长文本处理的突破者
【2月更文挑战第12天】Kimi Chat:国内AI新星,20万字超长文本处理的突破者
3136 2
Kimi Chat:国内AI新星,20万字超长文本处理的突破者