イベント定義
イベント定義
プロセス定義とカスタムJavaクラスができましたのでいよいよ、イベントの定義になります。今回はstateNodeを出た後にJavaクラスが呼び出される様にイベントを定義します。
jBPMグラフィカルデザイナのプロセス定義フィールド上のstateNodeを選択し、下段のPropertiesウィンドウで Eventsを右クリックで選択肢、New Eventを作成します。Event Typeには「after-signal」を選びます。再度、右クリックでNew Actionを選択し、GeneralタブのNameフィールドで適当なAction名を指定します。今回は「afterStateNode」とします。 これでイベントの定義が完了しました。
続いてこのイベントから先ほど作成したTestActionHanderを呼び出すように設定します。
Propertiesウィンドウで先ほど作成した「afterStateNode」を選択し、Detailsタブをクリックします。 Detailsタブ上のセレクトボックスでHanderを選択し、ClassNameに先ほど作成した、test.TestHandlerクラスを指定します(図3)。これでSimpleProcessからTestHandlerクラスを呼び出すことができるようになりました。
実行
では、いよいよ定義できたSimpleProcessを動かしてみることにしましょう。
最初に記載したとおり、今回はJava SE環境でjBPMを動かしますので、このSimpleProcessを読み込んで操作するProcessWorkerクラスを実装することにします。
このProcessWorkerクラスはプロセス定義を読み込み、そこに定義されているノードを進めていくだけの簡単なプログラムです。
TestHandlerクラスを定義した要領でリスト2のProcessWorkerクラスを定義し、jBPMグラフィカルデザイナの 「Run→Run→Java Aplication」でProcessWorkerクラスを実行します。うまく実行された場合、jBPMグラフィカルデザイナ下段のConsoleウィンドウにデバッグ情報と共に、各ノード名とTestHandlerクラスから出力されたメッセージが表示されます。
今回はシンプルなプロセス定義とjavaクラスを利用してjBPMのプロセス定義からJavaクラスを呼び出す方法を解説しました。本記事を理解いた方々は、ぜひさらに複雑なプロセス定義から、複雑なJavaクラスを呼び出すことにチャレンジしてみてください。その際、今回プロセス定義の実行に利用したProcessWorkerクラスは便利なテストツールとなるはずです。
バックナンバー
この記事の筆者
JBossグループ ソリューション・アーキテクト
株式会社SRAを経て、2002年に日本BEAシステムズ入社。カスタマーサポートチームにて、アプリケーションサーバおよびJava VM(JRockit)のサポートを担当。その後、プリセールスチームにてSIP Servlet関連の製品に携わる。2007年よりレッドハット JBossグループにてプリセールスを担当。
音楽(聴く&演奏)大好き。最近はJazzyなベースとリズムに魅了されてます。
筆者の人気記事
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。
