2

完了日でフィルター処理して、Activiti で完了したタスクを照会するソリューションを探しています。それらが完了すると、完了したタスク エントリがact_hi_taskinstBPMN エンジンによってテーブルに移動されるため、必要なフィルターがHistoricTaskInstanceQueryクラスにあると予想されます。ただし、./ のようなstartedAfter/startedBeforeおよびfinishedAfter/finishedBeforeメソッドのようなものはありませんHistoricProcessInstanceQuery。テーブルにはstart_time_end_time_列があるため、この種のクエリが不可能になる理由はありません。

これらのプロパティでフィルター処理する他の方法はありますか、それとも現在これを回避する唯一の方法はact_hi_tasks、Activiti エンジンをバイパスしてテーブルを直接クエリすることですか?

4

1 に答える 1

5

Activiti はクエリ APIact_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 に答える