ヘッダーをスキップ
Oracle BPEL Process Manager開発者ガイド
10g(10.1.3.1.0)
B31874-03
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

14 Oracle BPEL Process Manager通知サービス

Oracle BPEL Process Managerの通知サービスでは、様々なチャネルを使用してBPELプロセスから通知を送信できます。Oracle BPEL Process Managerでは、電子メール、ボイス・メッセージ、FAX、ポケットベルまたはショート・メッセージ・サービス(SMS)を通じてこれらの通知を配信します。

この章の内容は次のとおりです。

14.1 通知サービスのユースケース

様々なシナリオで、プロセス・フローの一環として電子メール・メッセージやその他のタイプの通知をユーザーに送信する必要があります。たとえば、自動で処理できない特定タイプの例外は、手動による操作を必要とする場合があります。この場合、Oracle JDeveloperでは、通知サービスを使用してボイス、SMS、FAX、ポケットベルまたは電子メールでユーザーに警告を送信します。承認ワークフロー(経費報告書の承認など)では、特定のタスクに対するアクションを必要とする場合にタスク割当て先に通知を送信することや、承認が完了したときに電子メールでタスク作成者に通知を送信することが可能です。連絡先情報(電子メール・アドレスまたは電話番号)は、プロセスの一環として動的に取得される場合と、ユーザー・ディレクトリでルックアップされる場合があります。

チュートリアル130.SendEmailWithAttachmentsは、Oracle JDeveloperにおける通知のモデル方法、および添付ファイル付き電子メールの送信方法を示します。


関連項目:

SOA_Oracle_Home¥bpel¥samples¥tutorials¥130.SendEmailWithAttachments

OrderBookingチュートリアルは、POAcknowledgeプロセスに電子メール通知を付加する方法を示します。


関連項目:

『Oracle BPEL Process Manager Order Bookingチュートリアル』

14.2 通知サービスの概念の概要

通知サービスで使用される用語は、次のとおりです。

図14-1は、通知サービス・インタフェースとサポートされるサービス・タイプを示しています。

図14-1 通知サービス・インタフェースとサポートされるサービス・タイプ

図bpmdg021.gifの説明が続きます
図bpmdg021.gifの説明

14.2.1 信頼性のある通知サービス

Oracle BPEL Process Managerでは、信頼性のある通知サービスをサポートしています。アウトバウンド通知サービスでは、一意の通知IDを使用して通知メッセージが作成され、メッセージと一意IDがデハイドレーション・ストアに格納されます。次に、この一意IDがJMSキューにエンキューされ、トランザクションがコミットされます。このキューをリスニングしているMessage-Driven Bean(MDB)は、メッセージをデキューしてユーザーに通知を送信します。通知に失敗すると、通知サービスは3回再試行します。すべての再試行に失敗すると、この通知がエラー発生としてマークされます。

問題解決後にエラー通知を送信するには、BPELNotification表のステータスをSENDに更新するためのスクリプトを記述する必要があります。たとえば、次のようになります。

UPDATE BPELNotification
     SET status = 'RETRY',
         ATTEMPTEDNUMBER = 0
     WHERE ID = <notification id>

デフォルトでは、通知サービスは3回再試行します。再試行回数を増やす場合(5など)は、SOA_Oracle_Home/bpel¥system¥services¥config¥wf_config.xmlに次のプロパティを追加してOracle BPEL Serverを再起動します。

<property name="oracle.bpel.services.notification.maxattempt" value="5" />

実行中の通知スレッドは、15分ごとに通知を送信しようとします。この間隔は、wf_config.xmlに次のプロパティを追加することで変更できます。たとえば、10分ごとに再試行するには、次のようにします。

<property name="oracle.bpel.services.notification.publisher_interval" value="10" />

14.3 Oracle JDeveloperでの通知サービスの構成

図14-2のように、Oracle JDeveloperの「ダイアグラム」ウィンドウでは、コンポーネント・パレットに通知チャネルが表示されます。

図14-2 Oracle JDeveloperの「ダイアグラム」ウィンドウ: 通知アクティビティ

図notif1.gifの説明が続きます
図notif1.gifの説明

通知チャネルを使用する手順は、次のとおりです。

  1. 「コンポーネント・パレット」から「プロセス・アクティビティ」を選択します。

  2. 通知チャネルを「コンポーネント・パレット」リストからドラッグ・アンド・ドロップします。

    • Email

    • Fax

    • Pager

    • SMS

    • Voice

  3. 選択した通知チャネルに基づいて、次の項を参照してください。

    選択内容 参照先
    Email 「電子メール通知チャネル」(電子メール通知の構成)
    Fax 「FAX通知チャネル」(FAX通知の構成)
    Pager 「ポケットベル通知チャネル」(ポケットベル通知の構成)
    SMS 「SMS通知チャネル」(SMS通知の構成)
    Voice 「ボイス通知チャネル」(ボイス・メッセージ通知の構成)

14.3.1 電子メール通知チャネル

コンポーネント・パレットから「Email」を選択すると、編集Emailウィンドウが表示されます。図14-3は、電子メール通知の必須パラメータを示しています。

図14-3 編集Emailウィンドウ

図notif3.gifの説明が続きます
図notif3.gifの説明

  1. 表14-1の説明に従って、各フィールドに情報を入力します。

  1. 表14-1 電子メール通知パラメータ

    名前 説明
    送信元アカウント このメッセージの送信に使用するアカウント名。この電子メール・アカウント名の構成の詳細は、Oracle BPEL Serverに存在している必要があります。
    宛先 メッセージの配信先となる電子メール・アドレス。これには、a)メッセージ作成時に入力された静的な電子メール・アドレス、b)アイデンティティ・サービスを使用してルックアップされた電子メール・アドレス、c)ペイロードに基づく動的なアドレスのいずれかを使用できます。XPath式ビルダーを使用すると、入力から動的に電子メール・アドレスを取得できます。詳細は、「電子メール・アドレスおよび電話番号の動的設定」を参照してください。
    Cc/Bcc メッセージのコピー先およびブラインド・コピー先となる電子メール・アドレス。これには、「宛先」で説明した静的アドレスまたは動的アドレスを使用できます。
    返信先 返信に使用する電子メール・アドレス。これには、「宛先」で説明した静的アドレスまたは動的アドレスを使用できます。
    件名 電子メール・メッセージの件名。フリー・テキストまたは動的テキストを入力できます。XPath式ビルダーを使用すると、指定したプロセス変数のデータに基づいて動的にテキストを設定できます。
    本文 電子メール・メッセージのメッセージ本文。これには、プレーン・テキスト、XML、または「件名」パラメータで説明したフリー・テキストか動的テキストを使用できます。
    マルチパート・メッセージ添付ファイル数n 電子メール添付を指定します。詳細は、「電子メール添付の設定」を参照してください。

    「マルチパート・メッセージ」を選択する場合、添付の数を指定します。この数には、本文も含まれます。たとえば、本文と1つの添付ファイルがある場合、ここに2を指定します。


  1. 「OK」をクリックします。

    これで、電子メール・メッセージを送信する通知サービスを起動するBPELコードが生成されます。


    関連項目:

    Oracle JDeveloper外部で電子メールを構成する手順の詳細は、『Oracle BPEL Process Manager管理者ガイド』を参照してください。

14.3.1.1 電子メール添付の設定

電子メール添付を送信する場合、電子メールをマルチパート・メッセージとしてマークし、送信する添付の数を設定します。添付の数は、本文と添付の合計です。たとえば、1ファイルが添付された電子メール・メッセージを送信する場合、この数を2に設定します。添付を送信する場合、添付数と同じ数のBodyPart要素を含むMultiPart要素を持つようコンテンツ本体を設定します。各BodyPartには、ContentBodyMimeTypeBodyPartNameという3つの要素があります。これら3つの要素は、すべて添付ごとに設定する必要があります。

電子メール・メッセージに1つの添付を追加するには、次の手順を実行します。

  1. コンポーネント・パレットから通知チャネルとして「Email」を選択します。

  2. 「宛先」「件名」および「本文」に値を指定します。

  3. 「マルチパート・メッセージ」を選択し、添付の数として2を入力します。(添付数には本体パートが含まれている点に注意してください。)

    2つの本体パートを含むMultiPart要素が生成されます。最初の本体パートはメッセージ本文に、次の本体パートは添付に使用されます。複数のcopyルールを含むassignアクティビティで構成されたBPELコードが生成されます。次のように、copyルールの1つによって添付がコピーされます。

    <assign name="Assign">
      <copy>
        <from expression="string('Default')"/>
        <to variable="varNotificationReq" part="EmailPayload"
     query="/EmailPayload/ns1:FromAccountName"/>
      </copy>
    ...
    <!--   copy statements relate to body and attachment -->
      <copy>
        <from>
          <Content xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService">
            <MimeType
     xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService">multipart/mixed
            </MimeType>
            <ContentBody
     xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService">
              <MultiPart
     xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService">
                <BodyPart
     xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService">
                  <MimeType
     xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService"/>
                  <ContentBody
     xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService"/>
                  <BodyPartName
     xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService"/>
                </BodyPart>
                <BodyPart
     xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService">
                  <MimeType
     xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService"/>
                  <ContentBody
     xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService"/>
                  <BodyPartName
     xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService"/>
                </BodyPart>
              </MultiPart>
            </ContentBody>
          </Content>
        </from>
        <to variable="varNotificationReq" part="EmailPayload"
     query="/EmailPayload/ns1:Content"/>
      </copy>
      <copy>
        <from expression="string('text/html')"/>
        <to variable="varNotificationReq" part="EmailPayload"
     query="/EmailPayload/ns1:Content/ns1:ContentBody/ns1:
    MultiPart/ns1:BodyPart[1]/
    ns1:MimeType"/>
      </copy>
      <copy>
        <from expression="string('NotificationAttachment1.html')"/>
        <to variable="varNotificationReq" part="EmailPayload"
     query="/EmailPayload/ns1:Content/ns1:ContentBody/ns1:
    MultiPart/ns1:BodyPart[1]/ns1:BodyPartName"/>
      </copy>
      <copy>
        <from expression="string('This is a test message from John Cooper')"/>
        <to variable="varNotificationReq" part="EmailPayload"
     query="/EmailPayload/ns1:Content/ns1:ContentBody/ns1:
    MultiPart/ns1:BodyPart[1]/
    ns1:ContentBody"/>
      </copy>
      <copy>
        <from expression="string('text/html')"/>
        <to variable="varNotificationReq" part="EmailPayload"
     query="/EmailPayload/ns1:Content/ns1:ContentBody/ns1:
    MultiPart/ns1:BodyPart[2]/
    ns1:MimeType"/>
      </copy>
      <copy>
        <from expression="string('NotificationAttachment2.html')"/>
        <to variable="varNotificationReq" part="EmailPayload"
     query="/EmailPayload/ns1:Content/ns1:ContentBody/ns1:
    MultiPart/ns1:BodyPart[2]/
    ns1:BodyPartName"/>
      </copy>
      <copy>
        <from expression="string('message2')"/>
        <to variable="varNotificationReq" part="EmailPayload"
     query="/EmailPayload/ns1:Content/ns1:ContentBody/ns1:
    MultiPart/ns1:BodyPart[2]/
    ns1:ContentBody"/>
      </copy>
    </assign>
    
    
  4. BodyPart[2]を検索して必要な値を設定します。たとえば、添付ファイルMyImage.gifを送信するには、次の手順を実行します。

    1. BodyPart[2] MimeTypeを検索し、MimeTypeとして(自動生成された'text/html'のかわりに)'image/gif'をコピーするようfrom expressionを変更します。

    2. BodyPart[2] BodyPartNameを検索し、(自動生成された'NotificationAttachment2.html'のかわりに)'MyImage.gif'をコピーするようfrom expressionを変更します。

    3. BodyPart[2] ContentBodyを検索し、(自動生成された式string('message2')のかわりに)MyImage.gifのコンテンツをコピーするようfrom expressionを変更します。

      ファイルのコンテンツを読み取る場合、readFile XPath関数を使用できます。

      ora:readFile('<name of the file in the project | HTTP URL | File URL>')
      
      

      たとえば、次のようになります。

      ora:readFile('MyImage.gif') will read the file from the bpel project directory
      ora:readFile('file:///c:/MyImage.gif') will read file from c:¥ directory
      ora:readFile('http://www.oracle.com/MyImage.gif')
      
      

新しいBPELのコピー文は、次のようになります。

<copy>
    <from expression="string('image/gif')"/>
    <to variable="varNotificationReq" part="EmailPayload" query=
"/EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ns1:BodyPart[2]/ns1:MimeType"/>
  </copy>
  <copy>
    <from expression="string('MyImage.gif')"/>
    <to variable="varNotificationReq" part="EmailPayload" query=
"/EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ns1:BodyPart[2]/ns1:BodyPartName"/>
  </copy>
  <copy>
    <from expression="ora:readFile('file:///c:/MyImage.gif')"/>
    <to variable="varNotificationReq" part="EmailPayload" query=
"/EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ns1:BodyPart[2]/ns1:ContentBody"/>
  </copy>

関連項目:

電子メールを使用して添付を送信する例は、SOA_Oracle_Home¥bpel¥samples¥tutorials¥130.SendEmailWithAttachmentsを参照してください。

14.3.1.2 電子メール・メッセージ本体のHTMLとしての書式設定

電子メール・メッセージの本文を、プレーン・テキストではなくHTMLとして書式設定できます。そのためには、XSLT transformを適用して電子メール本体を生成します。使用するXSLTタグを追加します。XMLSpyなどのツールを使用すると、XSLTの記述とテストが容易になります。MIMEタイプはstring('text/html;charset=UTF-8')にする必要があります。

電子メール通知の割当ては次のようにします。

<copy>
 <from
expression="ora:processXSLT('TransformPositionSummary7.xslt',bpws:
getVariableData('ClientPositionSummary'))"/>
 <to variable="varNotificationReq" part="EmailPayload"
query="/EmailPayload/ns9:Content/ns9:ContentBody"/>
</copy>

14.3.2 FAX通知チャネル

コンポーネント・パレットから「Fax」を選択すると、編集Faxウィンドウが表示されます。図14-4は、FAX通知の必須パラメータを示しています。

図14-4 編集Faxウィンドウ

図notif6.gifの説明が続きます
図notif6.gifの説明

  1. 表14-2の説明に従って、各フィールドに情報を入力します。

表14-2 FAX通知パラメータ

名前 説明
FAX番号 メッセージの配信先となるFAX番号。これには、a)メッセージ作成時に入力された静的なFAX番号、b)アイデンティティ・サービスを使用してルックアップされたFAX番号、c)ペイロードに基づく動的なFAX番号のいずれかを使用できます。XPath式ビルダーを使用すると、入力から動的にFAX番号を取得できます。
表紙 表紙の名前。表紙の詳細がサーバー上に存在する必要があります。表紙には、PDF、Microsoft Word、HTMLまたはプレーン・テキストのいずれかのファイル形式を使用できます。(このフィールドはオプションです。)XPath式ビルダーを使用すると、指定したプロセス変数のデータに基づいて動的にテキストを設定できます。
本文 FAXメッセージ本文。これには、プレーン・テキストまたはHTMLを使用する必要があります。この場合、「表紙」パラメータで説明したフリー・テキストか動的テキストを使用できます。

  1. 「OK」をクリックします。

    これで、FAX通知のための通知サービスを起動するBPELコードが生成されます。


関連項目:

Oracle JDeveloper外部でFAXを構成する手順の詳細は、『Oracle BPEL Process Manager管理者ガイド』を参照してください。

14.3.3 ポケットベル通知チャネル

コンポーネント・パレットから「Pager」を選択すると、編集Pagerウィンドウが表示されます。図14-5は、ポケットベル通知の必須パラメータを示しています。

図14-5 編集Pagerウィンドウ

図notif7.gifの説明が続きます
図notif7.gifの説明

  1. 表14-3の説明に従って、各フィールドに情報を入力します。

表14-3 ポケットベル通知パラメータ

名前 説明
送信元番号 メッセージの送信元となるポケットベル番号。これには、a)メッセージ作成時に入力された静的なポケットベル番号、またはb)ペイロードに基づく動的なポケットベル番号を使用できます。XPath式ビルダーを使用すると、入力から動的にポケットベル番号を取得できます。
ポケットベルの番号 このメッセージの受信者の番号。これには、a)メッセージ作成時に入力された静的なポケットベル番号、b)アイデンティティ・サービスを使用してルックアップされたポケットベル番号、c)ペイロードに基づく動的なポケットベル番号のいずれかを使用できます。XPath式ビルダーを使用すると、入力から動的にポケットベル番号を取得できます。
本文 ポケットベル・メッセージ本文。これには、プレーン・テキストを使用する必要があります。この場合、「送信元番号」パラメータで説明したフリー・テキストか動的テキストを使用できます。

  1. 「OK」をクリックします。

    これで、ポケットベル通知のための通知サービスを起動するBPELコードが生成されます。


関連項目:

Oracle JDeveloper外部でポケットベルを構成する手順の詳細は、『Oracle BPEL Process Manager管理者ガイド』を参照してください。

14.3.4 SMS通知チャネル

コンポーネント・パレットから「SMS」を選択すると、編集SMSウィンドウが表示されます。図14-6は、SMS通知の必須パラメータを示しています。

図14-6 編集SMSウィンドウ

図notif5.gifの説明が続きます
図notif5.gifの説明

  1. 表14-4の説明に従って、各フィールドに情報を入力します。

表14-4 SMS通知パラメータ

名前 説明
送信元番号 SMS通知の送信元となる電話番号。これには、メッセージ作成時に入力された静的な電話番号、またはペイロードに基づく動的な電話番号を使用できます。XPath式ビルダーを使用すると、入力から動的に電話番号を取得できます。詳細は、「電子メール・アドレスおよび電話番号の動的設定」を参照してください。
電話番号 メッセージの配信先となる電話番号。これには、a)メッセージ作成時に入力された静的な電話番号、b)アイデンティティ・サービスを使用してルックアップされた電話番号、c)ペイロードに基づく動的な電話番号のいずれかを使用できます。XPath式ビルダーを使用すると、入力から動的に電話番号を取得できます。
件名 SMSメッセージの件名。フリー・テキストまたは動的テキストを入力できます。XPath式ビルダーを使用すると、指定したプロセス変数のデータに基づいて動的にテキストを設定できます。
本文 SMSメッセージ本文。これには、プレーン・テキストを使用する必要があります。この場合、「件名」パラメータで説明したフリー・テキストか動的テキストを使用できます。

  1. 「OK」をクリックします。

    これで、SMS通知のための通知サービスを起動するBPELコードが生成されます。


関連項目:

Oracle JDeveloper外部でSMSを構成する手順の詳細は、『Oracle BPEL Process Manager管理者ガイド』を参照してください。

14.3.5 ボイス通知チャネル

コンポーネント・パレットから「Voice」を選択すると、編集Voiceウィンドウが表示されます。図14-7は、ボイス通知の必須パラメータを示しています。

図14-7 編集Voiceウィンドウ

図notif4.gifの説明が続きます
図notif4.gifの説明

  1. 表14-5の説明に従って、各フィールドに情報を入力します。

    表14-5 ボイス通知パラメータ

    名前 説明
    電話番号 メッセージの配信先となる電話番号。これには、a)メッセージ作成時に入力された静的な電話番号、b)アイデンティティ・サービスを使用してルックアップされた電話番号、c)ペイロードに基づく動的な電話番号のいずれかを使用できます。XPath式ビルダーを使用すると、入力から動的に電話番号を取得できます。
    本文 メッセージ本文。これには、プレーン・テキストまたはXMLを使用できます。フリー・テキストまたは動的テキストも使用できます。XPath式ビルダーを使用すると、指定したプロセス変数のデータに基づいて動的にテキストを設定できます。

  1. 「OK」をクリックします。

    これで、ボイス通知のための通知サービスを起動するBPELコードが生成されます。


関連項目:

Oracle JDeveloper外部でボイスを構成する手順の詳細は、『Oracle BPEL Process Manager管理者ガイド』を参照してください。

14.3.6 電子メール・アドレスおよび電話番号の動的設定

状況によっては、特定のプロセス変数に基づいて動的に電子メール・アドレスまたは電話番号を設定する必要があります。また、アイデンティティ・サービス用の組込みXPath関数を使用して、特定ユーザーの連絡先情報をルックアップすることも可能です。

  • 電子メール・アドレスまたは電話番号をペイロードから直接取得するには、次のXPathを使用します。

    bpws:getVariableData('<variable name>', '<part>','<input xpath to get an address>')
    
    

    たとえば、XPath /client/BPELProcessRequest/client/mailに基づいて変数inputVariableおよびパートpayloadから電子メール・アドレスを取得するには、次のようにします。

    <%bpws:getVariableData('inputVariable','payload','/client:BPELProcessRequest/client:email')%>
    
    

    XPath式ビルダーを使用して関数を選択し、入力変数からアドレスを取得するXPath式を入力することが可能です。

  • 電子メール・アドレスまたは電話番号をペイロードから動的に取得するには、次のXPathを使用します。

    ids:getUserProperty(userName, attributeName, realmName)
    
    

    第1引数は、ユーザーIDに評価されます。第2引数は、プロパティ名です。第3引数はレルム名です。表14-6に、このXPath関数で使用できるプロパティ名をリストします。

    表14-6 動的ユーザーXPath関数のプロパティ

    プロパティ名 説明
    mail ユーザーの電子メール・アドレスのルックアップ
    telephoneNumber ユーザーの電話番号のルックアップ
    mobile ユーザーの携帯電話番号のルックアップ
    homephone ユーザーの自宅電話番号のルックアップ

    次の例では、変数inputVariable、パートpayload、問合せ/client:BPELProcessRequest/client:userIDで識別されるユーザーの電子メール・アドレスが取得されます。

    ids:getUserProperty(bpws:getVariableData('inputVariable',
    'payload','/client:BPELProcessRequest/client:userid'), 'mail')
    
    

    realmNameが未指定の場合は、デフォルトのレルム名が使用されます。たとえば、デフォルトのレルム名がjazn.comであれば、次のXPath式ではjazn.comレルム内でユーザーが検索されます。

    ids:getUserProperty('jcooper', 'mail');
    
    

    次のXPath式は、前述の式と同じ機能を提供します。ただし、この場合はレルム名jazn.comが明示的に指定されています。

    ids:getUserProperty('jcooper', 'mail', 'jazn.com');
    

14.3.7 ユーザー・ディレクトリの参照による通知受信者の選択

通知を送信するユーザーやグループは、Oracle BPEL Process Managerで使用するよう構成されたユーザー・ディレクトリ(OID、JAZN/XML、LDAPなど)を参照することで選択できます。いずれかの割当て先ウィンドウに含まれる「宛先」(または任意の受信者フィールド)の右側にある最初のアイコン(懐中電灯)をクリックすると、「アイデンティティ・ルックアップ・ダイアログ」が表示されます。


関連項目:

「アイデンティティ・ルックアップ・ダイアログ」の使用方法の詳細は、第15章「Oracle BPEL Process Managerワークフロー・サービス」を参照してください。

14.3.8 電子メール・アクティブ化エージェントによるビジネス・プロセスの開始

プロセスを開始するプロセス・エージェントは、アクティブ化エージェントにより定義されます。電子メール・アクティブ化エージェント要素activationAgentsを使用し、ビジネス・プロセスを電子メールで開始します。電子メールで開始するビジネス・プロセスの設計は、次の手順で行います。

  1. ビジネス・プロセスを作成します。

  2. 電子メール・アクティブ化エージェントのactivationAgents要素をbpel.xmlに追加します。

  3. 対応するアカウント名構成ファイルをプロジェクトに含めます。

表14-7で、bpel.xmlファイルに含まれるアクティブ化コードのactivationAgents要素とactivationAgent属性について説明します。

表14-7 bpel.xmlでの電子メール・アクティブ化要素と各属性

要素/属性名 説明
/activationAgents/activationAgent[className] アクティブ化エージェント・クラスの名前。アクティブ化エージェントとしてcom.collaxa.cube.activation.mail.MailActivationAgentクラスを使用します。
/activationAgents/activationAgent[heartBeatInterval] メッセージのポーリング間隔(秒単位)。
/activationAgents/activationAgent/property name="accountName" 電子メール構成ファイルの名前。たとえば、アカウント名がtest_accountの場合、すべての電子メール関連情報はtest_account.xmlファイルに含まれます。

bpel.xmlでのactivationAgents要素の構造

次のコード例は、bpel.xmlに含まれるactivationAgents要素の構造を示しています。

<activationAgents>
  <activationAgent

className="com.collaxa.cube.activation.mail.MailActivationAgent"
      heartBeatInterval="60">
     <property name="accountName">test_account</property>
  </activationAgent>
</activationAgents>

accountName XMLファイルの構造

次のコード例は、accountName XMLファイルの構造を示しています。

<mailAccount xmlns="http://services.oracle.com/bpel/mail/account">
   <userInfo>
         <displayName>[display name]</displayName>
         <organization>[organization name]</organization>
         <replyTo>[replyTo email address]</replyTo>
   </userInfo>

   <outgoingServer>
         <protocol>smtp</protocol>
         <host>[outgoing smtp server]</host>
         <authenticationRequired>false</authenticationRequired>
   </outgoingServer>

   <incomingServer>
         <protocol>pop3</protocol>
         <host>[incoming pop3 server]</host>
         <email>[pop user name]</email>
         <password>[plain text email password]</password>
   </incomingServer>

   <!-- IMAP server config -->
   <!--
    <incomingServer>
        <protocol>imap</protocol>
        <host>[incoming imap server]</host>
        <email>[imap user name]</email>
        <password>[plain text email password]</password>
        <folderName>InBox</folderName>
    </incomingServer>
    -->

</mailAccount>

14.3.9 通知サービスにおけるXML検証エラー

Oracle BPEL Controlの「BPELドメインの管理」ウィンドウで、validateXMLプロパティをtrue(デフォルトはfalse)に設定すると、各Webサービスとの間で交換されるメッセージが、スキーマに対して検証されます。ただし、通知サービスは実行時にXML妥当性チェックで失敗します。これは、通知サービスに渡されたBPEL変数が、BPELプロセス内で完全に初期化されていないことが原因です。初期化の一部がサービス自体の内部で実行されます。

14.4 まとめ

この章では、電子メール、ボイス、FAX、ポケットベルまたはショート・メッセージ・サービス(SMS)を使用してOracle BPEL Process Managerからメッセージを送信する方法について説明しました。