在Activiti中查询任务开始和结束日期

时间:2013-04-19 09:13:07

标签: java activiti bpmn

我正在寻找一种解决方案,通过过滤完成日期来查询Activiti中已完成的任务。因为一旦完成任务条目被BPMN引擎移入act_hi_taskinst表,我希望所需的过滤器在HistoricTaskInstanceQuery类中。但是,HistoricProcessInstanceQuery中没有类似startedAfter / startedBeforefinishedAfter / finishedBefore方法的内容。该表包含start_time_end_time_列,因此无法进行此类查询。

是否有其他方法可以按这些属性进行过滤,或者目前解决此问题的唯一方法是直接绕过Activiti引擎查询act_hi_tasks表?

1 个答案:

答案 0 :(得分:2)

Activiti提供Query API,因此无需直接查询act_hi_taskinst 您的查询可能看起来像这个

NativeHistoricTaskInstanceQuery taskQuery = historyService.createNativeHistoricTaskInstanceQuery();
taskQuery.sql("SELECT * FROM "+ managementService.getTableName(HistoricTaskInstance.class)+" WHERE start_time_=#{startTime} AND end_time_=#{endTime}");
taskQuery.parameter("startTime", startTime).parameter("endTime", end_time);
List<HistoricTaskInstance> tasks = taskQuery.list();