taskQuery でタスクのリストを読み込んだ後
taskService.createTaskQuery()
.processDefinitionKey(PROCESSKEY)
.taskCandidateGroupIn(list).initializeFormKeys().list()
すべてのタスクの候補グループを見つける最良の方法は何ですか? JSF ビューで表示したいのですが、Task クラスに対応するフィールドがありません。
taskQuery でタスクのリストを読み込んだ後
taskService.createTaskQuery()
.processDefinitionKey(PROCESSKEY)
.taskCandidateGroupIn(list).initializeFormKeys().list()
すべてのタスクの候補グループを見つける最良の方法は何ですか? JSF ビューで表示したいのですが、Task クラスに対応するフィールドがありません。
タスク サービスを使用して、タスクの ID リンクを取得できます。他の関係の中で、候補グループの関係は同一性リンクとして表現されます。次のコードは、候補グループを表すタスクの ID リンクをフィルター処理します。
List<IdentityLink> identityLinks = taskService.getIdentityLinksForTask(task.getId());
for (IdentityLink identityLink : identityLinks) {
String type = identityLink.getType();
/* type corresponds to the constants defined in IdentityLinkType.
"candidate" identitifies a candidate relation */
String groupId = identityLink.getGroupId();
if (IdentityLinkType.CANDIDATE.equals(type) && groupId != null) {
// we have found a candidate group; do something
}
}
最善の方法は、選択時に必要な方法ですべてのタスク情報を提供するカスタム クエリを作成することです。結果リストのループを開始したり、項目ごとに 1 つ以上のクエリを送信したりしたくない場合は、特にタスク リストのような高性能アプリケーションではそうではありません。
詳細については、カスタム クエリのドキュメントを確認してください。