8.2. タスクインスタンス

タスクインスタンスは、actorId (java.lang.String) に割り当てることができます。 すべてのタスクインスタンスは、データベースの1つのテーブル (JBPM_TASKINSTANCE) に 保存されます。 特定のactorId における全タスクインスタンスについて、このテーブルをクエリーすることで、その特定ユーザのタスクリストが取得できます。
タスクがプロセス実行と関係ない場合でも JBPM タスクリストのメカニズムを使うとJBPM タスクと他のタスクの結合が可能です。こうすることで、1 つの集約リポジトリで、容易に JBPM プロセスタスクと他のアプリケーションのタスクを組み合わせることができます。

8.2.1. タスクインスタンスのライフサイクル

タスクインスタンスライフサイクルは分かりやすく簡単です。作成後、タスクインスタンスを起動可能です。 次に、タスクインスタンスは終了でき、タスクインスタンスが完了としてマークされます。

注記

柔軟性を保つため、Assignmentはライフサイクルの一部に含まれていません。
  1. タスクインスタンスは通常、プロセス実行で (TaskMgmtInstance.createTaskInstance(...)メソッドを使い) task-node を入力すると作成されます
  2. その後、ユーザーインターフェースのコンポーネントは、データベースをクエリし、タスクリストを入手します。TaskMgmtSession.findTaskInstancesByActorId(...) を使うことでクエリの実行ができます。
  3. 次に、ユーザーからの入力を集め、UIコンポーネントはTaskInstance.assign(String)TaskInstance.start()、あるいはTaskInstance.end(...)を呼び出します。
タスクインスタンスは、3つのdate-property により状態を管理します。
  1. create
  2. start
  3. end
TaskInstanceにある該当の"getter"でこれらのプロパティにアクセスします。
現在は、完了タスクインスタンスは終了日がマークされ、 その結果、以降のタスクリストのクエリ検索で取得されません。 しかし、これらの完了タスクインスタンスは、JBPM_TASKINSTANCE テーブルには残っています。