流程历史记录查询

简介: 流程历史记录查询

流程历史记录查询

其实就是根据不同的查询条件查询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,我们以后就通过查询这张表获取流程信息

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

相关文章
|
2月前
|
API 数据库
Activiti 流程资源文件下载及历史信息查询
Activiti 流程资源文件下载及历史信息查询
29 0
|
9月前
|
数据库
30activiti - 流程执行历史记录
30activiti - 流程执行历史记录
33 0
|
10月前
如何进行需求评审后续跟踪和更新?附模板
如何进行需求评审后续跟踪和更新?附模板
|
SQL Java Spring
如何查询已经执行过的流程信息?
如何查询已经执行过的流程信息?
|
程序员 测试技术 数据库
实战! 项目单据确认状态未更新排查
实战! 项目单据确认状态未更新排查
|
消息中间件 存储 数据库
回退库存流程分析|学习笔记
快速学习回退库存流程分析
144 0
回退库存流程分析|学习笔记
|
存储 测试技术 开发工具
BSTestRunner增加历史执行记录展示和重试功能
之前对于用例的失败重试,和用例的历史测试记录存储展示做了很多的描述呢,但是都是基于各个项目呢,不方便使用,为了更好的使用,我们对这里进行抽离,抽离出来一个单独的模块,集成到BSTestRunner中,以后我们使用BSTestRunner直接就可以使用里面的失败重试和展示历史记录了。
BSTestRunner增加历史执行记录展示和重试功能
|
弹性计算 前端开发 网络安全
给学生提交作业的网站-自动化记录
正在搭建一个给学生提交作业的网站。于是发现了这个活动。
517 0
给学生提交作业的网站-自动化记录
|
中间件 关系型数据库 MySQL
记一次保留订单历史记录的方案讨论
记一次保留订单历史记录的方案讨论
233 0
|
Oracle 关系型数据库 Shell
[自制工具]批量后台更新统计信息
Oracle数据库有时需要批量收集数据库的统计信息,如在大量数据迁移或大量数据更新以后,但是收集的时间可能会较长,为了避免网络中断等意外情况可能引起的麻烦,今天调试了这个小脚本,可以分用户批量执行,同时记录执行时间等日志信息,比较实用。
188 0