Show Table of Contents
8.2.2. タスクインスタンスとグラフ実行
タスクインスタンスは、アクターのタスクリストにある項目です。Signalling タスクインスタンスはタスクインスタンスの1つで、完了時にトークンへシグナルを送信しプロセス実行を継続します。また、別のタスクインスタンスに、Blocking タスクインスタンスというのがあり、 関係のあるトークン(=実行パス) はこのタスクインスタンス終了前に、
task-nodeを退場することはできません。デフォルトでは、タスクインスタンスはsignallingおよび non-blockingとなっています。
複数のタスクインスタンスが1つの
task-nodeに関連付けられている場合、プロセス開発者は、タスクインスタンスが完了することでプロセスの継続にどのような影響与えるか指定することができます。task-nodeのsignal-propertyにこれらの値を渡します。
- last
- デフォルトです。最後のタスクインスタンスが終了しても実行を続けます。 このノードに入った際にタスクが作成されない場合、実行は継続されます。
- last-wait
- 最後のタスクインスタンスが終了しても実行を続けます。 このノードに入った際にタスクが作成されない場合、タスクノードにてタスクが作成されるまで実行を待機します。
- first
- 最初のタスクインスタンスが終了しても実行を続けます。 このノードに入った際にタスクが作成されない場合、実行は継続されます。
- first-wait
- 最初のタスクインスタンスが終了しても実行を続けます。 このノードに入った際にタスクが作成されない場合、タスクノードにてタスクが作成されるまで実行を待機します。
- unsynchronized
- この場合タスクの作成あるいは、未完了に拘らず常に実行は継続されます。
- never
- この場合、タスクの作成、あるいは未完了に拘らず、実行は継続されません。
タスクインスタンス作成はランタイムの計算に基づいている場合があります。その場合、
task-nodeの node-enterイベント上の ActionHandler へ追加し、create-tasks="false"に設定します。 以下に例を示します。
public class CreateTasks implements ActionHandler {
public void execute(ExecutionContext executionContext) throws Exception {
Token token = executionContext.getToken();
TaskMgmtInstance tmi = executionContext.getTaskMgmtInstance();
TaskNode taskNode = (TaskNode) executionContext.getNode();
Task changeNappy = taskNode.getTask("change nappy");
// now, 2 task instances are created for the same task.
tmi.createTaskInstance(changeNappy, token);
tmi.createTaskInstance(changeNappy, token);
}
}
ここでは、作成されるタスクは、
task-nodeに指定されます。 それらは、 process-definitionでも指定ができ TaskMgmtDefinitionからも取得できます (TaskMgmtDefinition は、タスク管理情報を追加することで、プロセス定義をを継承します)。
TaskInstance.end() を使い、タスクインスタンスの完了をマークします。任意で、endメソッドに遷移を指定できます。 タスクインスタンス完了が実行プロセスの継続を引き起こす場合、 指定された遷移を通るため、そのtask-node から退場します。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.