2

我正在寻找一种通过过滤完成日期来查询 Activiti 中已完成任务的解决方案。因为一旦完成act_hi_taskinst,BPMN 引擎会将已完成的任务条目移动到表中,因此我预计所需的过滤器会在HistoricTaskInstanceQuery类中。但是,没有像. startedAfter_ 该表具有和列,因此没有理由不能进行这种查询。startedBeforefinishedAfterfinishedBeforeHistoricProcessInstanceQuerystart_time_end_time_

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

4

1 回答 1

5

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();
于 2013-04-20T08:17:09.903 回答