3

taskQuery でタスクのリストを読み込んだ後

taskService.createTaskQuery()
            .processDefinitionKey(PROCESSKEY)
            .taskCandidateGroupIn(list).initializeFormKeys().list()

すべてのタスクの候補グループを見つける最良の方法は何ですか? JSF ビューで表示したいのですが、Task クラスに対応するフィールドがありません。

4

3 に答える 3

6

タスク サービスを使用して、タスクの 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
  }
}
于 2015-02-13T12:51:50.000 に答える
3

最善の方法は、選択時に必要な方法ですべてのタスク情報を提供するカスタム クエリを作成することです。結果リストのループを開始したり、項目ごとに 1 つ以上のクエリを送信したりしたくない場合は、特にタスク リストのような高性能アプリケーションではそうではありません。

詳細については、カスタム クエリのドキュメントを確認してください。

于 2015-02-14T17:39:57.997 に答える