流程历史记录查询

简介: 流程历史记录查询

流程历史记录查询

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

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

相关文章
|
数据库
30activiti - 流程执行历史记录
30activiti - 流程执行历史记录
80 0
[3.17更新日志]项目全新的仪表盘,让工作流状态一目了然
在本次更新中,我们升级了项目首页,让工作流的状态在首页可以一目了然。 首次使用CRP的用户还可以点击“三”图标展开合并项目左侧菜单栏,了解每个图标用途。
2074 0
工单更改历史记录
一、自定义表结构 二、生产工单出口增强 三、查询报表 一、自定义表结构 表ZPCO02 MANDT MANDT CLNT 3 0 客户端 AUFNR AUFNR CHAR 12 0 订单号 MATNR MATNR CHAR 18 0 物料号 FILED...
943 0
如何进行需求评审后续跟踪和更新?附模板
如何进行需求评审后续跟踪和更新?附模板
177 0
|
SQL Java Spring
如何查询已经执行过的流程信息?
如何查询已经执行过的流程信息?
|
中间件 关系型数据库 MySQL
记一次保留订单历史记录的方案讨论
记一次保留订单历史记录的方案讨论
289 0
|
3月前
|
项目管理
一次性解决文档、任务、进度管理!
在团队合作日益依赖高效工具的背景下,在线文档协作软件如Google Docs、Notion、Trello及板栗看板等,成为提升生产力的关键。这些工具不仅支持文档编辑,还具备项目管理和任务跟踪功能,尤其板栗看板集成了在线文档与看板管理,适合任务跟踪和进度管理,为团队提供一站式解决方案,显著提高工作效率。
|
弹性计算 前端开发 网络安全
给学生提交作业的网站-自动化记录
正在搭建一个给学生提交作业的网站。于是发现了这个活动。
596 0
给学生提交作业的网站-自动化记录

热门文章

最新文章