zoukankan      html  css  js  c++  java
  • 【转】JBPM4 HistoryService

    在流程实例执行的过程中,会不断触发事件。从那些事件中,运行和完成流程的历史信息会被收集到历史表中。

    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查询时, 这个节点不会出现在结果列表中。

  • 相关阅读:
    Python面向对象
    Python
    05、Win7上openSSH的安装与配置
    关于C++中的类型转换
    正确地使用智能指针
    为多态基类声明多态析构函数
    透视校正插值(Perspective-Correct Interpolation)
    保持const和non-const函数代码的一致
    第二章 信息的表示和处理
    《Linux内核分析》课程总结
  • 原文地址:https://www.cnblogs.com/minideas/p/2022011.html
Copyright © 2011-2022 走看看