9.3. Seam のビジネスプロセス管理
任意のタスクを行う実行者、およびそのタスクを実行するタイミングに関して明確に定義したルールに従い、ユーザーまたはソフトウェアシステムにより実行する必要がある一連のタスクがビジネスプロセスです。Seam の jBPM 統合によりユーザーによるタスク一覧の表示や管理が容易になります。 またビジネスプロセスに関連付けられた状態を
BUSINESS_PROCESS コンテキストに格納し、 jBPM 変数でその状態を永続にすることもできます。
<page> ノードではなく <task-node> ノードを使用するという点以外、 シンプルなビジネスプロセス定義はページフロー定義によく似ています。 長期実行のビジネスプロセスでは、 ユーザーによりログインが行われタスクが実行されるのをシステムが待っている場合に待ち状態が起こります。
<process-definition name="todo">
<start-state name="start">
<transition to="todo"/>
</start-state>
<task-node name="todo">
<task name="todo" description="#{todoList.description}">
<assignment actor-id="#{actor.id}"/>
</task>
<transition to="done"/>
</task-node>
<end-state name="done"/>
</process-definition>
jPDL ビジネスプロセス定義と jPDL ページフロー定義は同じプロジェクトで使用することができます。 この場合、 ビジネスプロセスにある 1 つの
<task> は <pageflow-definition> ページフロー全体に該当します。