Activiti入门程序-查看历史实例信息

2016-03-24|来源:

HistoryService:查询历史信息的服务。在一个流程执行完成后,这个对象为我们提供查询历史信息。


历史实例查询包括:
1、历史流程实例查询 HistoricProcessInstanceQuery
HistoricProcessInstanceQuery hpiQuery = service.createHistoricProcessInstanceQuery();
2、查看历史活动实例 HistoricActivityInstanceQuery
HistoricActivityInstanceQuery haiq=service.createHistoricActivityInstanceQuery();
3、查看历史任务实例 HistoricTaskInstanceQuery
HistoricTaskInstanceQuery htiq = service.createHistoricTaskInstanceQuery();
以上历史实例对象可以设置流程定义的key或ID、人员、排序、分页查询等。获取相关历史流程的信息


实例:以下是刚启动了流程执行的结果

查看历史流程实例:

/** 查看历史流程实例 */
@Test
public void queryHistoricProcessInstanceTest() throws Exception {
    HistoryService service = processEngine.getHistoryService();
 
    // 获取历史流程实例的查询对象
    HistoricProcessInstanceQuery hpiQuery = service.createHistoricProcessInstanceQuery();
    // 设置流程定义KEY
    hpiQuery.processDefinitionKey("hello");
    // 分页条件
    //hpiQuery.listPage(firstResult, maxResults);
    // 排序
    hpiQuery.orderByProcessInstanceStartTime().desc();
 
    // 执行查询
    List<HistoricProcessInstance> hpis = hpiQuery.list();
    // 遍历查看结果
    for (HistoricProcessInstance hpi : hpis) {
        System.out.print("pid:" + hpi.getId() + ",");
        System.out.print("pdid:" + hpi.getProcessDefinitionId() + ",");
        System.out.print("startTime:" + hpi.getStartTime() + ",");
        System.out.print("endTime:" + hpi.getEndTime() + ",");
        System.out.print("duration:" + hpi.getDurationInMillis() + ",");
        System.out.println("vars:" + hpi.getProcessVariables());
    }
}

pid:2501,pdid:hello:1:4,startTime:Thu Mar 24 20:43:07 CST 2016,endTime:null,duration:null,vars:{}


查看历史活动实例


/** 查看历史活动实例 */
@Test
public void queryHistoricActivityInstanceTest() throws Exception {
    HistoryService service = processEngine.getHistoryService();
    HistoricActivityInstanceQuery haiq=service.createHistoricActivityInstanceQuery();
    //过滤条件
    haiq.processInstanceId("2501");
    // 分页条件
    //haiq.listPage(firstResult, maxResults);
    //排序
    haiq.orderByHistoricActivityInstanceEndTime().asc();
    List<HistoricActivityInstance> hais = haiq.list();
 
    for (HistoricActivityInstance hai : hais) {
        System.out.print("activitiId:" + hai.getActivityId() + ",");
        System.out.print("name:" + hai.getActivityName() + ",");
        System.out.print("type:" + hai.getActivityType() + ",");
        System.out.print("pid:" + hai.getProcessInstanceId() + ",");
        System.out.print("assignee:" + hai.getAssignee() + ",");
        System.out.print("startTime:" + hai.getStartTime() + ",");
        System.out.print("endTime:" + hai.getEndTime() + ",");
        System.out.println("duration:" + hai.getDurationInMillis());
    }
}

activitiId:usertask1,name:提交申请,type:userTask,pid:2501,assignee:张三,startTime:Thu Mar 24 20:43:07 CST 2016,endTime:null,duration:null
activitiId:startevent1,name:Start,type:startEvent,pid:2501,assignee:null,startTime:Thu Mar 24 20:43:07 CST 2016,endTime:Thu Mar 24 20:43:07 CST 2016,duration:16


查看历史任务实例


/** 查看历史任务实例 */
@Test
public void queryHistoricTaskInstanceTest() throws Exception {
    HistoryService service = processEngine.getHistoryService();
    HistoricTaskInstanceQuery htiq = service.createHistoricTaskInstanceQuery();
    htiq.taskAssignee("张三");
    List<HistoricTaskInstance> tasks = htiq.list();
 
    for (HistoricTaskInstance hti : tasks) {
        System.out.print("pid:" + hti.getProcessInstanceId() + ",");
        System.out.print("assignee:" + hti.getAssignee() + ",");
        System.out.print("startTime:" + hti.getStartTime() + ",");
        System.out.print("endTime:" + hti.getEndTime() + ",");
        System.out.println("duration:" + hti.getDurationInMillis());
    }
}

pid:2501,assignee:张三,startTime:Thu Mar 24 20:43:07 CST 2016,endTime:null,duration:null

示例程序参考于网络


相关问答

更多

请问哪里有Activiti5工作流实战教程下载?

Activiti5应该是最新版本的吧,目前网上完整的 课程非常少,个人感觉比较好的一套 教程应该是Adam老师的《基于Activiti5 工作流 实战企业 协同OA办公系统》,是基于Activiti5的OA 办公系统,比较具有代表性的一套实战 案例教程。一共51讲,课程中采用了Spring-data-jpa来完成,spring-data-jpa是spring组织提供的,针对于jpa规范的一套持久化 框架,所有的查询均使用方法命名规则去解析, 开发人员只需要 定义 接口的方法而不需要写任何一句实现 ...

请问哪里有Activiti5工作流实战教程下载?

Activiti5应该是最新版本的吧,目前网上完整的 课程非常少,个人感觉比较好的一套 教程应该是Adam老师的《基于Activiti5 工作流 实战企业 协同OA办公系统》,是基于Activiti5的OA 办公系统,比较具有代表性的一套实战 案例教程。一共51讲,课程中采用了Spring-data-jpa来完成,spring-data-jpa是spring组织提供的,针对于jpa规范的一套持久化 框架,所有的查询均使用方法命名规则去解析, 开发人员只需要 定义 接口的方法而不需要写任何一句实现 ...

请问哪里有Activiti5工作流实战教程下载?

Activiti5应该是最新版本的吧,目前网上完整的课程非常少,个人感觉比较好的一套教程应该是Adam老师的《基于Activiti5工作流实战企业协同OA办公系统》,是基于Activiti5的OA办公系统,比较具有代表性的一套实战案例教程。一共51讲,课程中采用了Spring-data-jpa来完成,spring-data-jpa是spring组织提供的,针对于jpa规范的一套持久化框架,所有的查询均使用方法命名规则去解析,开发人员只需要定义接口的方法而不需要写任何一句实现代码。 以下是课程大纲, ...

linux系统 如何切换到后台运行程序的控制台 以查看printf()信息?

用fg number(后台程序编号)恢复到前台运行,jobs 可以查看后台运行的程序。

查看redis数据库实例对应的配置文件。

查看redis数据库实例对应的配置文件 执行 ps -ef | grep redis-server ,确定redis的安装目录,一般配置文件都是 安装目录/etc/redis.conf ;

专题教程

JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征
Gson教程
快速了解 jdk8 新特征

相关文章

更多

最近更新

更多