JBoss jBPMを試そう!
第4回:プロセス定義からJavaクラスを呼び出す仕組み
著者:レッドハット 三木 雄平
公開日:2008/02/21(木)
Let's try it!
「第3回:15分でプロセスアプリケーションの開発」ではjBPMでEclipseのプラグインを使い、プロセスの定義を行いました。簡単にできることをご理解いただけたと思います。今回は前回までと趣向を少し変えて、Java SE環境でjBPMを利用していきます。よりシンプルな環境でjBPMを使うことで、その柔軟性を実感していただると思います。
前半はプロセス定義からjavaクラスをどのようにして呼び出すのかについて解説し、後半はハンズオン形式で進めていきます。ぜひ読者の皆様もトライしてみてください。
(画像をクリックすると別ウィンドウに拡大図を表示します)
イベントとActionHandler
jBPMのプロセス定義から前回作成したjavaクラスを呼び出すには、プロセス定義に新たに「イベント」を定義する必要があります。その定義したイベントから「ActionHandlerインターフェースを実装したJavaクラス」を呼び出します。「イベント」はプロセス上の遷移や、ノード入場、退場など、文字通りイベントを発生させたい箇所に定義するものです(図1)。
このイベントにActionHandlerを実装したJavaクラスを配置すると、プロセス実行の際、イベントを通過したタイミングでJavaクラスが呼び出されることになります。
ActionHandlerを実装したJavaクラスでは、リスト1のようにexecute()メソッドを実装することになります。引数として渡されるExecutionContextクラスに値をバインドすることで、プロセスからクラス、クラスからクラスの値の引渡しを行うことが可能です。なお、このイベントにはJavaクラスの他に、スクリプトやタイマ、およびe-mailによる通知など、jBPMで利用できるさまざまな機能も設定できます。 次のページ