電子メールによるBPELプロセス起動

Oracle BPEL Process Managerで、電子メール受信をトリガーにしてBPELプロセスを起動する方法を紹介します。

まず、/bpel/domains/<ドメイン名>/metadata/MailServiceディレクトリを作成し、このディレクトリに新規ファイル <アカウント名>.xml を作成します。<アカウント名>には、適当な英文字を選択します。

JDeveloperでは、「非同期BPELプロセス」テンプレートでBPELプロジェクトを新規作成し、入力スキーマ要素として、XML Schema定義 /bpel/system/xmllib/Mail.xsd で定義されたmailMessage要素を指定します。プロジェクト作成後、/bpel/system/xmllib/common.xsdもインポートしておきます。

BPELプロセスのデプロイメント・ディスクリプタ bpel.xml に、アクティベーション・エージェント com.collaxa.cube.activation.mail.MailActivationAgent を追加し、heartBeatInterval (ポーリングの間隔の秒数) やaccountName (MailServiceディレクトリに作成したXMLファイル名の一部) を指定します。

BPELプロセスの入力変数 inputVariable は、Mail.xsd で定義されたmailMessage要素であり、電子メールの各種情報 (差出人、宛先、題名、本文、添付ファイルなど) を含んでいます。アクティビティの後に、アクティビティを追加して、inputVariable変数からデータを取り出すことで、任意の処理を追加できます。

BPELプロセスが完成したら、BPELサーバーにデプロイします。

BPELプロセスのアクティベーション・エージェントに指定したメール・アドレスに対してメールを送ります。管理ツール BPEL ControlでBPELプロセスのインスタンスが新規作成されていることを確認したり、アクティビティで受信したXMLデータに、電子メールの内容が含まれていることを確認します。

ここでは概要だけを紹介しましたが、詳しくは下記のブログ・エントリを見てみてください。スクリーン・ショット付きで解説されています。