この章では、通知の追加方法について説明します。
この章の内容は次のとおりです。
チュートリアルのこのフェーズでは、POAcknowledgeプロセスに通知を追加します。このフェーズを実行する前に、第9章「ファイル・アダプタの書込み機能の使用」および第12章「センサーの使用」の各フェーズが正常に完了していることを確認してください。通知機能により、イベントに関する通知をユーザー、グループまたは指定するアドレスに送信できます。通知は、電子メール、ボイス・メールまたはショート・メッセージ・サービス(SMS)のいずれかで送信できます。このフェーズでは、注文の受領を確認する電子メール通知を送信します。ここで実行するタスクは、次のとおりです。
企業の電子メール環境を構成します。
POAcknowledgeプロセス内にnotificationアクティビティを作成します。
POAcknowledge BPELプロセスをデプロイします。
Oracle BPEL ControlからPOAcknowledgeを実行して、電子メール通知を送信します。
この項では次のタスクを実行します。
SOA_Oracle_Home
\bpel\system\services\config
ディレクトリに移動します。
ns_emails.xml
ファイルのバックアップ・コピーを作成します。
テキスト・エディタを開きます。
ns_emails.xml
を開いて、NotificationMode
パラメータのNONE
をEMAIL
に置き換えます。 太字で表示されたその他のパラメータ値を、使用中のコンピュータの環境に適した値に置き換えます。
<EmailAccounts xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService" EmailMimeCharset="" NotificationMode="NONE"> <EmailAccount> <Name>Default</Name> <GeneralSettings> <FromName>Oracle BPM</FromName> <FromAddress>accountId@yourdomain.com</FromAddress> </GeneralSettings> <OutgoingServerSettings> <SMTPHost>yourdomain.com</SMTPHost> <SMTPPort>25</SMTPPort> </OutgoingServerSettings> <IncomingServerSettings> <Server>yourdomain.com</Server> <Port>110</Port> <Protocol>pop3</Protocol> <UserName>accountId</UserName> <Password ns0:encrypted="false" xmlns:ns0="http://xmlns.oracle.com/ias/pcbpel/NotificationService"> password</Password> <UseSSL>false</UseSSL> <Folder>Inbox</Folder> <PollingFrequency>1</PollingFrequency> <PostReadOperation> <MarkAsRead/> </PostReadOperation> </IncomingServerSettings> </EmailAccount> <!--EmailAccount>
ユーザーjcooperおよびjsteinの電子メール・アドレスを、アクセス可能な電子メール・アカウントに変更します。 XMLベースのJAZNプロバイダが使用されている場合、これらのパラメータは次のファイルで変更できます。
SOA_Oracle_Home\bpel\system\services\config\users-properties.xml
次のコード例は、電子メールを変更する箇所を示しています。
<userObject>
<name>jstein</name>
<description>Demo User</description>
<email>user2@hotmail.us.com</email>
<title>Manager2</title>
<firstName>John</firstName>
<lastName>Steinback</lastName>
<manager>wfaulk</manager>
<timeZone>America/Los_Angeles</timeZone>
<languagePreference>en-US</languagePreference>
<notificationPreferences>Mail</notificationPreferences>
</userObject>
変更内容を保存し、ファイルを閉じます。
Oracle JDeveloperを再起動します。
「アプリケーション・ナビゲータ」で「POAcknowledge.bpel」をダブルクリックします。
「コンポーネント・パレット」セクションから「Process Activities」を選択します。
「コンポーネント・パレット」セクションから「InvokeFileOut」Invokeアクティビティの下にEmailサービスをドラッグ・アンド・ドロップします。
次の詳細を入力します。
フィールド | 説明 |
---|---|
送信元アカウント | Default |
宛先 | 有効な電子メール・アドレスを入力します。 |
Cc: | 有効な電子メール・アドレスを入力します。 |
Bcc: | 有効な電子メール・アドレスを入力します。 |
返信先: | 有効な電子メール・アドレスを入力します。 |
件名 | PO Acknowledgment for Items Ordered and Price |
本文: | このフィールドの右側のアイコンをクリックし、XPath式ビルダー・ウィンドウを表示します。このウィンドウを使用して次の式を作成し、完了したら「OK」をクリックします。
concat(string('Dear Customer, Your order number '),bpws:getVariableData('inputVariable','payload','/ns1:PurchaseOrder/ns1:ID'),string(' for customer '),bpws:getVariableData('inputVariable','payload','/ns1:PurchaseOrder/ns1:CustID'),string(' has been confirmed.The order status is "'),bpws:getVariableData('inputVariable','payload','/ns1:PurchaseOrder/ns1:OrderInfo/ns1:OrderStatus'),string('". Thanks for using Order Booking Application from Oracle BPEL Process Manager. Administrator.')) |
「OK」をクリックします。
「アプリケーション・ナビゲータ」セクションに移動します。
「POAcknowledge」を右クリックします。
「デプロイ」→「my_integration_server_connection」→「defaultドメインにデプロイ」の順に選択します。
プロンプトが表示されたら、プロジェクトのバージョン番号を増分(たとえば、1.1と入力)し、「OK」をクリックします。
これでBPELプロセスがコンパイルされます。 ウィンドウ下部のボタンをクリックしてエラーの有無を確認します。エラーが発生していなければ、デプロイは成功しています。 デプロイに失敗した場合は、手順4を参照してください。
「スタート」→「すべてのプログラム」→「Oracle - Oracle_Home」→「Oracle BPEL Process Manager」→「BPEL Control」の順に選択し、Oracle BPEL Controlにログインします(すでに開いている場合はページをリフレッシュします)。
Oracle BPEL Controlにログインするために次の情報を入力して「ログイン」をクリックします。
フィールド | 値 |
---|---|
ユーザー名 | oc4jadmin
|
パスワード | password
|
password
は、インストール時に入力した値です。
Oracle BPEL Controlの「ダッシュボード」タブが表示されます。作業中のBPELプロセスであるPOAcknowledgeが、「デプロイ済のBPELプロセス」リスト内に表示されます。
「デプロイ済のBPELプロセス」リストで、手順4で増分したPOAcknowledgeバージョンをクリックします。
「HTMLフォーム」のすべてのフィールドに詳細を入力し、「XMLメッセージの転送」をクリックします。
Oracle BPEL Controlをリフレッシュします。
「インスタンス」タブをクリックします。
POAcknowledgeインスタンスをクリックします。
電子メールのアカウント宛てに電子メールが送信されているかどうか確認します(電子メール・サーバー・ベースの配信遅延がある場合があります)。