ヘッダーをスキップ
Oracle® Fusion Middleware Oracle SOA Suite開発者ガイド
11g リリース1 (11.1.1.6.2)
B56238-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

J Oracle User Messaging Serviceアプリケーション

この付録では、提供されているプロシージャおよびコードを使用して、独自のOracle User Messaging Serviceアプリケーションを作成する方法について説明します。

項目は次のとおりです。

J.1 SOAおよびUser Messaging Serviceのインストールおよび構成

SOAおよびUser Messaging Serviceは、ホストされたインスタンスにすでにインストールされており、サンプル・ユーザーは設定済です。soa-infraでの通知を可能にするには、次の手順を実行します(実行していない場合)。

  1. Enterprise Managerを使用して「SOAインフラストラクチャ」メニューに移動し、「SOA管理」「ワークフロー構成」「メーラー」タブの順に選択して、「通知モード」「すべて」に設定します。

  2. 必要な場合は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のドライバの構成に関する項の説明に従って、User Messagingドライバを構成します。

  3. ユーザーweblogicの電子メール・アドレスは、JXplorer LDAPブラウザを使用して設定します。「LDAPユーザー・プロファイルのアドレスの更新」を参照してください。

  4. サーバーを再起動します。

J.1.1 LDAPユーザー・プロファイルのアドレスの更新

ユーザーweblogicの電子メール・アドレスをJXplorer LDAPブラウザを使用して設定するには、次の手順を実行します。

J.1.1.1 インストール

http://www.jxplorer.orgからJXplorerをダウンロードしてインストールします。

J.1.1.2 接続

  1. 組込みLDAPサーバー管理パスワードを次のように設定します。

    • Oracle WebLogic Server管理コンソールにログインします。

    • ドメイン名のリンク→「セキュリティ」「組込みLDAP」の順にクリックします。

    • 新しい「資格証明」「資格証明の確認」(例: weblogic)を入力します。

    • 「保存」をクリックします。

  2. 表J-1に示す各フィールドに値を指定し、JXplorerから接続します。

表J-1 JXplorerの接続に関するフィールド

フィールド

ホスト

Oracle WebLogic管理サーバーのホスト名

ポート

Oracle WebLogic管理サーバーのポート

プロトコル

LDAP v3

セキュリティ・レベル

ユーザーおよびパスワード

ユーザーDN

cn=Admin

パスワード

パスワード


J.1.1.3 LDAPのユーザー・メッセージング・デバイス・アドレスの設定

次の例では、ユーザーweblogicを使用します。追加のユーザーを作成して使用できます。

  1. ドメイン「myrealm」「people」「weblogic」の順にLDAPツリーを開きます。

  2. ユーザー・エントリをクリックします。

  3. 右側で「HTML view」タブを選択します。

  4. 必須の「Email Address」と「Mobile Phone Number」を入力します。

  5. 「Submit」をクリックします。

J.2 ユーザー指定のチャネルへのメッセージの送信

この項では、Oracle User Messaging Serviceで提供されている、SendMessageアプリケーションを作成して実行する方法を説明します。

アプリケーションを作成および実行する前に、J.1項「SOAおよびUser Messaging Serviceのインストールおよび構成」の説明に従って、SOAおよびUser Messaging Serviceをインストールして構成する必要があります。


注意:

Oracle User Messaging Serviceのアーキテクチャとコンポーネントの詳細は、『Oracle Fusion Middleware Oracle SOA Suiteスタート・ガイド』を参照してください。


この項は、次のトピックで構成されています。

J.2.1 SendMessageアプリケーションの概要

SendMessageアプリケーションでは、BPELプロセスによって、ユーザー・メッセージング・プリファレンスで指定されたメッセージング・チャネルを経由して、ユーザーにメッセージを送信できることを具体的な例で示します。サポートされるチャネルおよびデフォルト・デバイスのそれぞれに対してデバイスおよびメッセージ・チャネルのアドレスを構成すると、Oracle User Messaging Serviceは、構成された優先チャネルの設定に基づいて、メッセージをユーザーにルーティングします。

J.2.1.1 提供されるファイル

このアプリケーションには、次のファイルが含まれています。

  • SendMessage.pdf – このドキュメント

  • Project – Oracle JDeveloperプロジェクト・ファイルを含むディレクトリ

  • Readme.txt

  • リリース・ノート

J.2.2 サンプルの作成

次の手順を実行してサンプルを新規に作成すると、SOAコンポジット・アプリケーションにメッセージを追加して、ユーザー・メッセージング・プリファレンスを使用する方法を学習できます。


注意:

SOAコンポジット・アプリケーションとプロジェクトを作成してデプロイするには、Oracle SOA Suite拡張機能をインストールしておく必要があります。この拡張機能をOracle JDeveloper用にインストールする手順は、『Oracle Fusion Middleware Oracle JDeveloperインストレーション・ガイド』を参照してください。


  1. Oracle JDeveloper 11gを開きます。

  2. 「File」「新規」「一般」「アプリケーション」「SOAアプリケーション」を選択して、新規アプリケーションを作成します。「OK」をクリックします。

  3. 「アプリケーション名」を入力し、「次へ」をクリックします(図J-1)。

    図J-1 新規アプリケーションおよび新規プロジェクトの作成(1/3)

    図J-1の説明が続きます
    「図J-1 新規アプリケーションおよび新規プロジェクトの作成(1/3)」の説明

  4. プロジェクトの名前を入力し、「次へ」をクリックします(図J-2)。

  5. 図J-2 新規アプリケーションおよび新規プロジェクトの作成(2/3)

    図J-2の説明が続きます
    「図J-2 新規アプリケーションおよび新規プロジェクトの作成(2/3)」の説明

  6. コンポジット・テンプレートとして、BPELプロセスを使用するコンポジットを選択します(図J-3)。「終了」をクリックします。

    図J-3 新規アプリケーションおよび新規プロジェクトの作成(3/3)

    図J-3の説明が続きます
    「図J-3 新規アプリケーションおよび新規プロジェクトの作成(3/3)」の説明

  7. 「BPELプロセスの作成」ダイアログで、BPELプロセス名としてSendMessageと入力します(図J-4)。「OK」をクリックします。

    図J-4 BPELプロセスの作成

    図J-4の説明が続きます
    「図J-4 BPELプロセスの作成」の説明

  8. 「SOAPサービスとして公開」が選択されていることを確認します。「OK」をクリックします。

  9. これで、空のデフォルトBPELアプリケーションが作成されました(図J-5)。

    「Oracle JDeveloper」メイン・ウィンドウの「Composite.xml」タブの下に、次のようなアプリケーションのコンポーネントが表示されます。

    • 左のボックスは、アプリケーションを初期化するために使用するWebサービス・クライアントの定義です。

    • 中央のボックスは、メッセージを作成して書式設定し、メッセージ・サービスをコールするBPELプロセスです。


    注意:

    User Notification BPELプロセスの作成時にメッセージ送信に使用するメッセージ・サービス・リソースは、後で作成します(ステップ13から19)。


    図J-5 空のデフォルトBPELアプリケーション

    図J-5の説明が続きます
    「図J-5 空のデフォルトBPELアプリケーション」の説明

  10. 「アプリケーション・ナビゲータ」の「xsd」フォルダを開き、「SendMessage.xsd」をダブルクリックして開きます。

  11. 「ソース」タブをクリックします(図J-6)。

  12. このBPELアプリケーションの入力に対して次の変更を行います。

    プロジェクトの「アプリケーション・ナビゲータ」の「xsd」フォルダ内に生成されたファイルSendMessage.xsdには、次のinput要素定義がデフォルトで作成されます。

    <element name="input" type="string"/>

    このXSD要素は、BPELプロセスの入力を定義します。

    「ソース」タブ(図J-6)を選択し、前述の行を次の3行に置換します。

    <element name="to" type="string"/>
    <element name="subject" type="string"/>
    <element name="body" type="string"/>
    

    図J-6 SendMessage.xsdファイルの入力内容の変更

    図J-6の説明が続きます
    「図J-6 SendMessage.xsdファイルの入力内容の変更」の説明

  13. 「ファイル」メニューから「すべて保存」を選択します。

  14. 展開されたプロセス要素を表示します(図J-7)。

    図J-7 展開されたプロセス要素の表示

    図J-7の説明が続きます
    「図J-7 展開されたプロセス要素の表示」の説明

  15. このプロセスでメッセージングを可能にするには、「コンポーネント・パレット」にある「Oracle Extensions」から「User Notification」を、receiveInputアクティビティとcallbackClientアクティビティの間にドラッグ・アンド・ドロップします(図J-8)。

    図J-8 「コンポーネント・パレット」から「ユーザー通知」アイコンをドラッグ・アンド・ドロップ

    図J-8の説明が続きます
    「図J-8 「コンポーネント・パレット」から「ユーザー通知」アイコンをドラッグ・アンド・ドロップ」の説明

    user notificationアクティビティが表示されます(図J-9)。

    図J-9 入力構成前のuser notificationアクティビティ

    図J-9の説明が続きます
    「図J-9 入力構成前のuser notificationアクティビティ」の説明

  16. 「To」入力ボックスの右側にある「XPath式ビルダー」アイコンをクリックします。

  17. 「To」受信者の式を次のように変更します。

  18. 「件名」入力ボックスの右側にある「XPath式ビルダー」アイコンをクリックします。

  19. 「件名」の式を次のように変更します。

    • 「BPEL変数」ペインで、「変数」「InputVariable」「payload」「clientprocess」「client:subject」の順に選択します(図J-11)。

    • 「式に挿入」をクリックします。

    • 「OK」をクリックします。

      図J-11 件名式の定義

      図J-11の説明が続きます
      「図J-11 件名式の定義」の説明

  20. 「通知メッセージ」入力ボックスの右にある「XPath式ビルダー」アイコンをクリックします。

  21. 通知メッセージの式を次のように変更します。

  22. 「ファイル」→「すべて保存」の順にクリックします。

J.2.3 新規アプリケーション・サーバー接続の作成

次の手順を実行し、アプリケーション・サーバー接続を作成します。

  1. プロジェクトを右クリックし、「新規」「接続」「アプリケーション・サーバー接続」の順に選択して、新規アプリケーション・サーバー接続を作成します(図J-15)。

    図J-15 新規アプリケーション・サーバー接続

    図J-15の説明が続きます
    「図J-15 新規アプリケーション・サーバー接続」の説明

  2. 「接続名」フィールドで接続の名称を指定します(たとえば、Figure J-16に示すSOA_managed_serverなど)。

  3. 「接続タイプ」「WebLogic 10.3」を選択します。

    図J-16 新規アプリケーション・サーバー接続

    図J-16の説明が続きます
    「図J-16 新規アプリケーション・サーバー接続」の説明

  4. 認証情報を入力します。ユーザー名の一般的な値はweblogicです。

  5. 「接続」ダイアログで、SOA管理サーバーのホスト名、ポートおよびSSLポートを入力し、Oracle WebLogic Serverドメインのドメイン名を入力します。

  6. 「次へ」をクリックします。

  7. 「テスト」ダイアログで、「接続のテスト」をクリックします。

  8. メッセージSuccess!が表示されていることを確認します。

    アプリケーション・サーバー接続が作成されました。

J.2.4 プロジェクトのデプロイ

次の手順を実行し、プロジェクトをデプロイします。

  1. 「アプリケーション・ナビゲータ」で、SOAプロジェクトを右クリックします。

  2. 「デプロイ」→「project_name」の順に選択します。

    project_nameの値は、SOAプロジェクト名です。

    「Project_Nameのデプロイ」ウィザードの「デプロイメント・アクション」ページ」が表示されます。

  3. 「アプリケーション・サーバーへのデプロイ」を選択し、「次へ」をクリックします。

  4. デフォルトのリビジョンを入力し、「次へ」をクリックします。

  5. リストからアプリケーション・サーバーへの既存の接続を選択します(たとえば、J.2.3項「新規アプリケーション・サーバー接続の作成」の説明に従って作成した接続SOA_managed_serverを選択します)。

  6. 「終了」をクリックします。

  7. メッセージBuild Successfulがログに表示されていることを確認します。

  8. メッセージDeployment Finishedがデプロイメント・ログに表示されていることを確認します(図J-17)。

    図J-17 デプロイメント成功の確認

    図J-17の説明が続きます
    「図J-17 デプロイメント成功の確認」の説明

    アプリケーションが正常にデプロイされました。

    サンプルを実行するには、その前に、次の項の説明に従って、Oracle User Messaging Serviceの追加ドライバを構成し、ユーザー・メッセージング・プリファレンスでメッセージを受信するユーザー用のデフォルト・デバイスを構成する必要があります。


    注意:

    詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。


J.2.5 ユーザー・メッセージング・プリファレンスの構成

通知を受信するユーザーは、ユーザー・メッセージング・プリファレンスを介してメッセージにアクセスする際に使用するデバイスを登録する必要があります。次の手順を実行します。

  1. 次のいずれかのURLで、ユーザー・メッセージング・プリファレンス・アプリケーションにログインします。

    • http://server:port/sdpmessaging/userprefs-uiで直接ログインします。

    • http://server:port/integration/worklistappで、ワークリスト・アプリケーションの「プリファレンス」→「通知」タブを介してログインします。

    ユーザー・メッセージング・プリファレンス・アプリケーションが表示されます。

  2. 「メッセージング・チャネル」タブをクリックします(図J-18)。

    図J-18 「メッセージング・チャネル」タブ

    図J-18の説明が続きます
    「図J-18 「メッセージング・チャネル」タブ」の説明

    ログイン資格証明の入力を求められます。

  3. 「メッセージング・チャネル」タブで、チャネルを選択します。

  4. デバイス・フォルダを開いてから、選択したチャネルの横の「デフォルトとして設定」をクリックして、デフォルトとしてチャネルを設定します。

    選択したチャネルの横にチェックマークが表示され、デフォルトの通知受信方法として指定されます。そのユーザーに送信されるすべてのメッセージが、そのチャネルに送信されます。

J.2.6 サンプルのテスト

次に、Oracle Enterprise Manager Fusion Middleware Controlを介してテスト・メッセージを転送する方法を説明します。

次の手順を実行し、サンプルを実行およびテストします。

  1. Webブラウザ・ウィンドウを開き、SOAドメインのOracle Enterprise Managerにログインします。たとえば、http://host:port/emなどです。

  2. Enterprise Managerで、ナビゲーション・ツリーの「SOA」フォルダを開いて、デプロイされた「SendMessageProj」コンポジット・アプリケーションをクリックします。「テスト」ボタンをクリックして、テスト・クライアント・ページを起動します。

  3. 「引数を入力」セクションでは、SendMessageProjを起動するための入力値が提供されます。

    次の値を入力します。

    • to: weblogic(ユーザー)

    • subject: 通知テスト(件名)

    • body: メッセージ・コンテンツ

  4. 「Webサービスのテスト」をクリックします。

J.2.6.1 電子メール送信実行の確認

ヒューマン・ワークフロー・エンジンにログインします。送信通知とそのステータスを「通知管理」タブから確認します(図J-19)。

図J-19 送信通知の表示

図J-19の説明が続きます
「図J-19 送信通知の表示」の説明

J.3 添付ファイル付き電子メールの送信

この項では、Oracle User Messaging Serviceで提供されている、添付ファイル付き電子メールの送信アプリケーションを作成して実行する方法を説明します。


注意:

Oracle User Messaging Serviceのアーキテクチャとコンポーネントの詳細は、『Oracle Fusion Middleware Oracle SOA Suiteスタート・ガイド』を参照してください。


この項は、次のトピックで構成されています。

J.3.1 SendEmailWithAttachmentアプリケーションの概要

「SendEmailWithAttachment」アプリケーションでは、電子メールを添付ファイルとともに送信するBPELプロセスを具体的な例で示します。BPELプロセスは、アイデンティティ・ストアからユーザーの電子メール・アドレスを参照し、ファイル・システムからファイルを読み取り、電子メールのコンテンツを作成してから、電子メールをそのユーザーに送信します。J.3.4項「サンプルの作成」では、添付ファイル付き電子メールをSOAコンポジット・アプリケーションに追加し、使用しているアプリケーションでメッセージングに対応できるようにする方法を説明します。このアプリケーションを最初からモデル化する場合は、「サンプルの作成」の項に進んでください。あるいは、このチュートリアルで提供されている事前作成のプロジェクトを直接使用できます。事前作成のサンプルを実行したり、アプリケーションを最初から作成するには、その前に、J.1項「SOAおよびUser Messaging Serviceのインストールおよび構成」の説明に従って、サーバーをインストールして構成する必要があります。デフォルトでは、soa-infraによる通知の送信はありません。次に、電子メール・サーバーとの通信に必要な電子メール・ドライバをインストールして構成する手順を説明します。

J.3.1.1 提供されるファイル

サンプル・アプリケーションには、次のファイルが含まれています。

  • ns_sendemail.pdf – このドキュメント

  • Project – Oracle JDeveloperプロジェクト・ファイルを含むディレクトリ

  • Readme.txt

  • リリース・ノート

J.3.2 事前作成されたサンプルの実行

次の手順を実行して、事前作成されたサンプル・アプリケーションを実行し、デプロイします。

アプリケーションを作成および実行する前に、J.1項「SOAおよびUser Messaging Serviceのインストールおよび構成」の説明に従って、SOAおよびUser Messaging Serviceをインストールして構成する必要があります。

  1. Oracle JDeveloperで、SendEmailWithAttachmentsApp.jws(.zipファイルに含まれています)を開きます。

    「Oracle JDeveloper」メイン・ウィンドウの「Composite.xml」タブの下に、次のようなサンプル・アプリケーションのコンポーネントが表示されます。

    図J-20 Oracle JDeveloperのメイン・ウィンドウ

    図J-20の説明が続きます
    「図J-20 Oracle JDeveloperのメイン・ウィンドウ」の説明

    • 左のボックスは、アプリケーションを初期化するために使用するWebサービス・クライアントの定義です。

    • 中央のボックスは、メッセージを作成して書式設定し、メッセージ・サービスをコールするBPELプロセスです。

    • 右のボックスは、メッセージの送信に使用するメッセージ・サービス・リソースです。

  2. ナビゲーション・ペインでプロジェクトを右クリックし、「新規」を選択して、アプリケーション・サーバー接続を作成します。J.2.3項「新規アプリケーション・サーバー接続の作成」の説明に従います。

  3. J.2.4項「プロジェクトのデプロイ」の説明に従ってプロジェクトをデプロイします。

  4. メッセージBuild Successfulがログに表示されていることを確認します。

  5. メッセージDeployment Finishedがデプロイメント・ログに表示されていることを確認します。

    アプリケーションが正常にデプロイされました。

    サンプルを実行するには、その前に、次の項の説明に従って、Oracle User Messaging Serviceの追加ドライバを構成し、ユーザー・メッセージング・プリファレンスでメッセージを受信するユーザー用のデフォルト・デバイスを構成する必要があります。


    注意:

    詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。


J.3.3 サンプルのテスト

次に、Oracle Enterprise Managerを介してテスト・メッセージを転送する方法を説明します。

次の手順を実行し、サンプルを実行およびテストします。

  1. Webブラウザ・ウィンドウを開き、SOAドメインのOracle Enterprise Managerにログインします。たとえば、http://host:port/emなどです。

  2. Enterprise Managerで、ナビゲーション・ツリーの「SOA」フォルダを開いて、デプロイされた「SendEmailWithAttachmentsProj」コンポジット・アプリケーションをクリックします。「テスト」ボタンをクリックして、テスト・クライアント・ページを起動します。

  3. 「引数を入力」セクションでは、SendEmailWithAttachmentsProjを起動するための入力値が提供されます。

    次の値を入力します。

    • to: weblogic(ユーザー)

    • subject: 通知テスト(件名)

    • body: メッセージ・コンテンツ

    • attachmentName: 拡張子も含めた添付ファイルの名前

    • attachmentMimeType: たとえば、image/gif

      PDF、DOC、GIF、JPEGなどのバイナリ・ファイルを送信する場合、attachmentMimeTypeエントリには、次の値を使用できます。

      • file-name.doc – attachmentMimeType: application/msword

      • file-name.pdf – attachmentMimeType: application/pdf

      • file-name.jpg – attachmentMimeType: image/jpeg

      • file-name.gif – attachmentMimeType: image/gif

      HTML、XML、プレーン・テキストなどのテキスト・ファイルを送信する場合、attachmentMimeTypeエントリには、次の値を使用できます。

      • file-name.txt – attachmentMimeType: text/plain

      • file-name.html – attachmentMimeType: text/html


      注意:

      ASCII以外の文字がUTF-8でエンコードされて含まれているテキスト・ファイルの場合は、attachmentMimeTypeでcharset属性(「text/plain;charset=UTF-8」など)を指定する必要があります。また、コンテンツ自体はbase64エンコーディングを使用して送信する必要があります。この手順については、「base64エンコーディングでのテキスト・コンテンツの送信」を参照してください。


    • attachmentURI: SOAサーバーがファイルをダウンロードするURL

  4. 「Webサービスのテスト」をクリックします。

J.3.3.1 実行の確認

weblogic電子メール・アカウントを確認します。添付ファイル付きの電子メールを受信しているはずです。

J.3.4 サンプルの作成

次の手順を実行してサンプルを新規に作成すると、SOAコンポジット・アプリケーションにメッセージを追加して、ユーザー・メッセージング・プリファレンスを使用する方法を学習できます。

  1. Oracle JDeveloper 11gを開きます。

  2. 「File」→「新規」「アプリケーション」「SOAアプリケーション」を選択して、新規アプリケーションを作成します。「@OK」をクリックします。

  3. 「アプリケーション名」を入力し、「次へ」をクリックします(図J-21)。

    図J-21 新規アプリケーションおよび新規プロジェクトの作成(1/3)

    図J-21の説明が続きます
    「図J-21 新規アプリケーションおよび新規プロジェクトの作成(1/3)」の説明

  4. プロジェクトの名前を入力し、「次へ」をクリックします(図J-22)。

    図J-22 新規アプリケーションおよび新規プロジェクトの作成(2/3)

    図J-22の説明が続きます
    「図J-22 新規アプリケーションおよび新規プロジェクトの作成(2/3)」の説明

  5. コンポジット・テンプレートとして、BPELプロセスを使用するコンポジットを選択します(図J-23)。「終了」をクリックします。

    図J-23 新規アプリケーションおよび新規プロジェクトの作成(3/3)

    図J-23の説明が続きます
    「図J-23 新規アプリケーションおよび新規プロジェクトの作成(3/3)」の説明

  6. 「BPELプロセスの作成」ダイアログで、BPELプロセス名としてSendEmailWithAttachmentsと入力します(図J-24)。「OK」をクリックします。

    図J-24 BPELプロセスの作成

    図J-24の説明が続きます
    「図J-24 BPELプロセスの作成」の説明

  7. 「SOAPサービスとして公開」が選択されていることを確認します。「OK」をクリックします。

  8. これで、空のデフォルトBPELアプリケーションが作成されました。

    「Oracle JDeveloper」メイン・ウィンドウの「Composite.xml」タブの下に、次のようなサンプル・アプリケーションのコンポーネントが表示されます。

    • 左のボックスは、アプリケーションを初期化するために使用するWebサービス・クライアントの定義です。

    • 中央のボックスは、メッセージを作成して書式設定し、メッセージ・サービスをコールするBPELプロセスです。


      注意:

      User Notification BPELプロセスの作成時にメッセージ送信に使用するメッセージ・サービス・リソースは、後で作成します(ステップ13から19)。


  9. 「アプリケーション・ナビゲータ」の「xsd」フォルダを開き、「SendEmailWithAttachments.xsd」をダブルクリックして開きます(図J-25)。

    図J-25 SendEmailWithAttachments.xsdファイルへのアクセス

    図J-25の説明が続きます
    「図J-25 SendEmailWithAttachments.xsdファイルへのアクセス」の説明

  10. 「ソース」タブをクリックします(図J-25)。

  11. このBPELアプリケーションの入力に対して次の変更を行います。

    プロジェクトの「アプリケーション・ナビゲータ」のxsdフォルダ内に生成されたファイルSendEmailWithAttachments.xsdには、次のprocess要素定義がデフォルトで作成されます。

    <element name="process">
      <complexType>
        <sequence>
          <element name="input" type="string"/>
    </sequence> </complexType> </element>

    「ソース」タブを選択し、前述の行を次の内容で置換します。

    <element name="process">
    <complexType>
         <sequence>
           <element name="to" type="string"/>
           <element name="subject" type="string"/>
           <element name="body" type="string"/>
           <element name="attachmentName" type="string"/>
           <element name="attachmentMimeType" type="string"/>
           <element name="attachmentURI" type="string"/>
         </sequence>
       </complexType>
     </element>
    

    このxsd要素は、BPELプロセスの入力を定義します。

  12. プロジェクトを保存します。

  13. SendEmailWithAttachments.bpelのエディタ画面を選択します。

  14. 「コンポーネント・パレット」にある「Oracle Extensions」からemailアクティビティを、receiveInputアクティビティとcallbackClientアクティビティの間にドラッグ・アンド・ドロップします(図J-26)。

    図J-26 Emailの編集

    図J-26の説明が続きます
    「図J-26 Emailの編集」の説明

  15. 「Emailの編集」ウィンドウでは、「送信元アカウント」を「Default」のままにします。

    図J-27 「Emailの編集」ウィンドウ

    図J-27の説明が続きます
    「図J-27 「Emailの編集」ウィンドウ」の説明

  16. 「To」に対して式を作成するには、「XPath式ビルダー」を選択して、次の手順を実行します。

    • 関数のドロップダウン・リストから「Identity Service Functions」を選択します。

    • getUserProperty()関数を選択して「式に挿入」を選択します。

    • 「BPEL変数」で、「変数」「プロセス」「変数」「inputVariable」
      「payload」「client:process」「client:to」の順に選択します。

    • 「式に挿入」をクリックします。

    • 文字列mailを手動で入力します。

    • カッコを適切に修正します。

    • 「OK」をクリックします。

    この式(図J-28を参照)は、Webサービスからデータを取得し、そのデータをローカルSOAユーザーのビジネス電子メールにマップします。

    図J-28 Toパスに対する式ビルダー

    図J-28の説明が続きます
    「図J-28 Toパスに対する式ビルダー」の説明

    式は、次のように表示されます。

    ids:getUserProperty(  bpws:getVariableData('inputVariable','payload', '/client:process/client:to'),'mail')
    
  17. 「件名」に対して式ビルダーを選択します。「BPEL拡張関数」から「getVariableData」を選択し、「式に挿入」をクリックします。

  18. 「BPEL変数」で、「変数」「プロセス」「変数」「inputVariable」
    「payload」「client:process」「client:subject」の順に選択します。

    式は、次のように表示されます。

    bpws:getVariableData( 'inputVariable', 'payload','/client:process/ client:subject')
    
  19. 「本体」に対して式ビルダーを選択します。「BPEL拡張関数」から「getVariableData」を選択し、「式に挿入」をクリックします。

  20. 「BPEL変数」で、「変数」「プロセス」「変数」「inputVariable」
    「payload」「client:process」「client:body」の順に選択します。

    式は、次のように表示されます。

    bpws:getVariableData('inputVariable','payload','/client:process/client:body')
    
  21. 「電子メールの編集」ダイアログ(図J-29)で、「添付ファイル」タブを選択し、追加アイコン(プラス・アイコン)を使用して、添付ファイルを追加します。

    電子メールに複数のパートがある場合、添付ファイルの件数には、前述のウィザードで設定した本体が含まれます。前述のウィザードで指定した本体は、最初の本体部分として設定されます。たとえば、1つの添付ファイルがあるマルチパート・メールを表現するには、2つの本体部分を指定します。添付ファイルが1つある場合は、本体部分を1つ指定します。

    各添付ファイルには、名前、MIMEタイプおよび値の3つの要素があります。各添付ファイルの3つの要素すべてに対して式を設定する必要があります。

    図J-29 「Emailの編集」ウィンドウ

    図J-29の説明が続きます
    「図J-29 「Emailの編集」ウィンドウ」の説明

  22. 添付ファイルの「名前」要素に対して式を作成するには、「名前」フィールドの近くにある「参照」ボタンをクリックして「XPath式ビルダー」を開き、次の手順を実行します。

    1. 「BPEL拡張関数」から「getVariableData」を選択し、「式に挿入」をクリックします。

    2. 「BPEL変数」で、「変数」「プロセス」「変数」「inputVariable」
      「payload」「client:process」「client:attachmentName」の順に選択します。

    3. 「式に挿入」をクリックします。カッコが一致していることを確認します。

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

    式は、次のように表示されます。

    bpws:getVariableData('inputVariable','payload','/client:process/client:attachmentName')
    
  23. 添付ファイルの「MIMEタイプ」要素に対して式を作成するには、「名前」フィールドの近くにある「参照」ボタンをクリックして「XPath式ビルダー」を開き、次の手順を実行します。

    1. 「BPEL拡張関数」から「getVariableData」を選択し、「式に挿入」をクリックします。

    2. 「BPEL変数」で、「変数」「プロセス」「変数」「inputVariable」
      「payload」「client:process」「client:attachmentMimeType」の順に選択します。

    3. 「式に挿入」をクリックします。カッコが一致していることを確認します。

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

    式は、次のように表示されます。

    bpws:getVariableData('inputVariable','payload','/client:process/client:attachmentMimeType')
    
  24. 添付ファイルの「値」要素に対して式を作成するには、「名前」フィールドの近くにある「参照」ボタンをクリックして「XPath式ビルダー」を開き、次の手順を実行します。

    1. 「BPEL XPath拡張関数」から「readFile」を選択し、「式に挿入」をクリックします。

    2. 「BPEL変数」で、「変数」「プロセス」「変数」「inputVariable」
      「payload」「client:process」「client:attachmentURI」の順に選択します。

    3. 「式に挿入」をクリックします。カッコが一致していることを確認します。

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

    式は、次のように表示されます。

    ora:readFile(  bpws:getVariableData('inputVariable','payload', '/client:process/client:attachmentURI'))
    
  25. プロジェクトを保存します。

複数のコピー・ルールを含むassignアクティビティで構成されたBPELフラグメントが生成されます。コピー・ルールの1つによって添付ファイルがコピーされます。

生成されたデフォルトのコピー・ルールを表示し、新しいコピー・ルールを作成してデータを変換するには、次の手順を実行します。

  1. プラス記号アイコンを選択して、Emailノードを展開します(図J-30)。

    図J-30 Emailノードの展開

    図J-30の説明が続きます
    「図J-30 Emailノードの展開」の説明

  2. EmailParamsAssignノードをダブルクリックします(図J-31)。

    図J-31 EmailParamsAssignノード

    図J-31の説明が続きます
    「図J-31 EmailParamsAssignノード」の説明

J.3.4.1 base64エンコーディングでのテキスト・コンテンツの送信

ASCII以外の文字(UTF-8エンコードなど)が含まれたテキスト・ファイルの添付ファイルを送信するには、base64エンコーディングでテキスト・コンテンツを送信する必要があります。次の追加手順を実行します。

  1. SendEmailWithAttachments.bpelファイルのソース・エディタを開きます。

  2. マルチパート・コンテンツの適切な本体部分(<MultiPart>内の適切な<BodyPart>タグを検索)に次を追加します。

    <ContentEncoding 
    xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService"/>

    例J-1 マルチパートへのContentEncodingタグの追加

    <copy xml:id="id33">
       <from xml:id="id31">
          <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"/>
                 <ContentEncoding xmlns="http://xmlns.oracle.com/ias/pcbpel/
                       NotificationService"/>  
                 </BodyPart>
              </MultiPart>
           </ContentBody>
        </Content
    
  3. base64エンコーディングでテキストを送信するには、次の<copy>要素を追加します。

    <copy>
      <from expression="string('base64')"/>
      <to variable="varNotificationReq" part="EmailPayload"
    query="/EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ns1:BodyPart[2]/ns1:ContentEncoding"/>
    </copy>
  4. 「OK」をクリックしてプロジェクトを保存します。

これで、J.3.2項「事前作成されたサンプルの実行」の説明に従って、アプリケーションをデプロイして実行できます。