在流程实例执行的过程中,会不断触发事件。
从那些事件中,运行和完成流程的历史信息会被收集到历史表中。
HistoryService
提供了
对那些信息的访问功能。
如果想查找某一特定流程定义的所有流程实例,
可以像这样操作:
List<HistoryProcessInstance> historyProcessInstances = historyService
.createHistoryProcessInstanceQuery()
.processDefinitionId("ICL-1")
.orderAsc(HistoryProcessInstanceQuery.PROPERTY_STARTTIME)
.list();
单独的活动流程也可以作为HistoryActivityInstance
保存到历史信息中。
List<HistoryActivityInstance> histActInsts = historyService
.createHistoryActivityInstanceQuery()
.processDefinitionId("ICL-1")
.activityName("a")
.list();
也可以使用简易方法avgDurationPerActivity
和
choiceDistribution
。
可以通过javadocs获得这些方法的更多信息。
有时,我们需要获得指定流程实例已经过的节点的完整列表。
下面的查询语句可以用来获得所有已经执行的节点列表:
List<HistoryActivityInstance> histActInsts = historyService
.createHistoryActivityInstanceQuery()
.processInstanceId("ICL.12345")
.list();
上面的查询与通过execution id查询有一些不同。有时execution id和流程实例id是不同的,
当一个节点中使用了定时器,execution id中就会使用额外的后缀,
这就会导致当我们通过execution id查询时,
这个节点不会出现在结果列表中。
列出执行的过程:
// 根据任务开始的时间进行排序,列出来
List<HistoryActivityInstance> haInstance = historyService
.createHistoryActivityInstanceQuery().processInstanceId(instanceId)
.orderAsc(HistoryProcessInstanceQuery.PROPERTY_STARTTIME)
.list();
// 显示每一步骤任务的名称
Iterator<HistoryActivityInstance> it = haInstance.iterator();
while( it.hasNext() ) {
HistoryActivityInstance ha = it.next();
system.out.println( ha.getActivityName() );
}
分享到:
相关推荐
JBPM4.4 是一款强大的工作流管理系统,用于构建和管理业务流程。在这个系统中,有几个核心的对象和服务,它们构成了JBPM的核心功能。 1. **ProcessEngine对象**:ProcessEngine 是整个jbpm的核心,它是从 ...
- **历史服务(HistoryService)**:记录流程和任务的历史数据,便于审计和分析。 - **知识服务(KnowledgeService)**:集成规则引擎(如Drools),支持动态决策。 **3. jbpm4.4项目结构** - **jbpmTest**:这...
**JBPM4.4工作流用户手册概述** JBPM4.4是一款强大的开源工作流引擎,它基于GNU Lesser General Public License(LGPL)和JBoss End User License Agreement(EULA)发布。用户手册主要面向初学者,提供了一个逐步...
`HistoryService.getVariable()` 用于检索历史追踪变量的最新值。 - **任务管理**:`ManagementService.deleteJob()` 支持删除特定任务。 #### 三、PDL改进与新特性 在PDL方面,jBPM 4.4增加了多种活动类型和功能...
它还介绍了jBPM的几个关键服务,包括ProcessEngine流程引擎、TaskService任务服务、HistoryService历史服务和ManagementService管理服务,并且提供了查询API的使用方法。 核心的jPDL(jBPM Process Definition ...
Activiti 5.13版本包括23张数据库表,而JBPM 4.4基于Hibernate操作数据库,有18张表。相比之下,Activiti使用MyBatis进行数据库操作。 【Activiti流程设计器插件安装】 要安装Activiti流程设计器插件,首先获取...
- **HistoryService**:用于操作历史数据,包括历史流程实例、变量、任务等。 #### 八、Activiti框架的对象与表的关系 Activiti框架中的对象与数据库表之间存在一一对应的关系,例如: - **Deployment** 对应 `act_...