流程历史记录查询

简介: 流程历史记录查询

流程历史记录查询

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

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

目录
打赏
0
0
0
0
0
分享
相关文章
|
18天前
【YashanDB知识库】如何更改自动统计信息收集任务
【YashanDB知识库】如何更改自动统计信息收集任务
DataWorks产品使用合集之如何完成更新完自动推送到外部系统触发更新
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
一次性解决文档、任务、进度管理!
在团队合作日益依赖高效工具的背景下,在线文档协作软件如Google Docs、Notion、Trello及板栗看板等,成为提升生产力的关键。这些工具不仅支持文档编辑,还具备项目管理和任务跟踪功能,尤其板栗看板集成了在线文档与看板管理,适合任务跟踪和进度管理,为团队提供一站式解决方案,显著提高工作效率。
|
7月前
创建逻辑表单,信息收集更智能
设置显隐规则,可以实现 选择不同选项显示不同内容 的效果。适用于问卷、评价或巡检巡查场景使用,一份表单,得到两种甚至多种反馈。
评审不通过开发者的提交工具一直显示推送状态,必须通过后推送的信息才会消失
在使用sourcetree时,开发者提交推送代码后,评审不通过,sourcetree上边一直显示推送的状态,只有通过评审推送状态才会消失。
如何进行需求评审后续跟踪和更新?附模板
如何进行需求评审后续跟踪和更新?附模板
214 0
百度统计:页面代码安装状态:代码未生效
百度统计:页面代码安装状态:代码未生效
187 0
流程定义查询和删除
流程定义查询流程定义查询和删除
BSTestRunner增加历史执行记录展示和重试功能
之前对于用例的失败重试,和用例的历史测试记录存储展示做了很多的描述呢,但是都是基于各个项目呢,不方便使用,为了更好的使用,我们对这里进行抽离,抽离出来一个单独的模块,集成到BSTestRunner中,以后我们使用BSTestRunner直接就可以使用里面的失败重试和展示历史记录了。
BSTestRunner增加历史执行记录展示和重试功能
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等