Show Table of Contents
8.3. 割り当て
プロセス定義はタスクノードを含みます。
task-node には0個または1個以上のタスクが含まれます。タスクは、プロセス定義の一部であり静的な記述です。 実行時、タスクはタスクインスタンス作成の結果として発生します。 タスクインスタンスはユーザのタスクリストにおける1エントリに対応しています。
JBPM で、タスク管理のプッシュ (パーソナルタスクリスト) とプル (グループタスクリスト)のモデルの組み合わせが適用できます。プロセスは、タスクへの責務を導出して、ユーザのタスクリストにそれをプッシュすることができます。または、別の方法として、タスクはアクタープールに割り当てることができ、プールにある各アクターがタスクをプルして、それをアクターのタスクリストに置くことができます (詳細は 「パーソナルタスクリスト」 と 「グループタスクリスト」 を参照してください)。
8.3.1. Assignment インターフェース
タスクインスタンスの割り当ては、
AssignmentHandler インターフェース経由で行われます。
public interface AssignmentHandler extends Serializable {
void assign( Assignable assignable, ExecutionContext executionContext );
}
Assignment Handler実装はタスクインスタンスが作成されると呼び出されます。 その時、タスクインスタンスは1つ以上のアクターに割り当てられます。
AssignmentHandler 実装は、 タスクを割り当てるために 割り当て可能なメソッド ( setActorId あるいはsetPooledActors )を呼びだします。 割り当て可能なアイテムは、TaskInstance あるいは SwimlaneInstance (つまり、プロセスロール)です。
public interface Assignable {
public void setActorId(String actorId);
public void setPooledActors(String[] pooledActors);
}TaskInstanceとSwimlaneInstance の両方を指定されたユーザか、アクターのプールに割り当てることができます。ユーザに TaskInstanceを割り当てるには、Assignable.setActorId(String actorId) を呼び出します。 TaskInstanceをプールのアクター候補に割り当てるために、 Assignable.setPooledActors(String[] actorIds)を呼び出します。
プロセス定義の各タスクはhandler実装と関連付け、実行時に割り当てを行うことができます。
プロセス内で複数のタスクが同じ人、もしくはアクターのグループに割り当てられると、 スイムレーンの使用を考慮します。 「スイムレーン」 を参照してください。
再利用可能な
AssignmentHandler を作成するには、processdefinition.xmlファイルを使いそれぞれ設定します。割り当てハンドラへの設定を追加する方法については、 「委譲」 を参照してください。

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.