この付録では、サンプルの手順とコードを利用して独自の Oracle User Messaging Service アプリケーションを作成する方法について説明します。
この章は以下の節で構成されています。
注意 : 詳細およびサンプル コードについては、Oracle Technology Network (http://otn.oracle.com) を参照してください。 |
この章では、Oracle User Messaging Service を使用して付属の Send Message to User Specified Channel アプリケーションをビルドおよび実行する方法について説明します。
注意 : Oracle User Messaging Service のアーキテクチャとコンポーネントの詳細については、『Oracle Fusion Middleware Getting Started with Oracle SOA Suite』を参照してください。 |
この章の内容は以下のとおりです。
Send Message to User Specified Channel アプリケーションでは、User Messaging Preferences で指定したメッセージング チャネルを使用してユーザにメッセージを送信する BPEL プロセスの例を示します。デバイスのコンフィグレーションおよびサポートされる各チャネルのメッセージング チャネル アドレスとそのデフォルト デバイスのコンフィグレーションが完了すると、コンフィグレーションした優先チャネル設定に基づいてユーザにメッセージがルーティングされます。
SOA および User Messaging Service はホスト インスタンスにインストール済みで、サンプル ユーザもシード済みです。soa-infra の通知が有効になっていない場合は、次の手順に従って有効にします。
Enterprise Manager で [soa-infra|(Menu)|Workflow Notification Properties] を選択し、[Notification Mode] を ALL に設定します。
必要に応じて『Oracle Fusion Middleware SOA Administrator's Guide』の「Configuring Drivers」の説明にあるように、User Messaging ドライバをコンフィギュレーションします。
JXplorer LDAP ブラウザで、ユーザ「weblogic」の電子メール アドレスを設定します。「LDAP ユーザ プロファイルのアドレスの更新」を参照してください。
サーバを再起動します。
以下の手順に従って、JXplorer LDAP ブラウザで、ユーザ「weblogic」の電子メール アドレスを設定します。
次の手順に従って、組み込みの LDAP サーバの管理パスワードを設定します。
WLS 管理コンソールにログインします。
ドメイン名のリンクをクリックし、[セキュリティ|組み込み LDAP] をクリックします。
新しい [資格] と [Confirm Credential] (例 : 「weblogic」) を入力します。
[保存] をクリックします。
表 A-1 のフィールドを指定して JXplorer から接続します。
以下の手順に従ってサンプルを最初から作成すると、SOA 複合アプリケーションへのメッセージの追加方法と User Messaging Preferences の使い方がわかります。
Oracle JDeveloper 11g を開きます。
[ファイル|新規|一般|アプリケーション|SOA アプリケーション] を選択して、新規アプリケーションを作成します。[OK] をクリックします。
[アプリケーション名] を入力し、[次へ] をクリックします (図 A-1)。
プロジェクト名を入力し、[次へ] をクリックします (図 A-2)。
[Composite With BPEL] 複合テンプレートを選択します (図 A-3)。[Finish] をクリックします。
[Create BPEL Process] ウィンドウで、BPEL プロセス名に「SendMessage」と入力します (図 A-4)。[OK] をクリックします。
[Expose as a SOAP service] がチェックされていることを確認します。[OK] をクリックします。
空のデフォルト BPEL アプリケーションが作成されます (図 A-5)。
Oracle JDeveloper メイン ウィンドウの [Composite.xml] タブに以下のアプリケーション コンポーネントが表示されます。
左側のボックスには、アプリケーションの起動に使用する Web サービス クライアントの定義が表示されます。
中央のボックスには、メッセージの作成と書式設定を行い、メッセージング サービスを呼び出す BPEL プロセスが表示されます。
注意 : 後で、User Notification BPEL プロセスを作成する際のメッセージ送信に使用するメッセージング サービス リソースを作成する必要があります (ステップ 13 ~ 19)。 |
アプリケーション ナビゲータで xsd フォルダを展開し、このフォルダをダブルクリックして BPELProcess1.xsd を開きます (図 A-6)。
[ソース] タブをクリックします (図 A-7)。
この BPEL アプリケーションの入力を次のように変更します。
アプリケーション ナビゲータのプロジェクトの xsd フォルダに生成される SendMessage.xsd ファイルに、デフォルトで次の要素定義が作成されます。
<element name="input" type="string"/>
この xsd 要素は BPEL プロセスの入力を定義します。
[ソース] タブ (図 A-7) を選択し、この行を次の 3 行で置き換えます。
<element name="to" type="string"/> <element name="subject" type="string"/> <element name="body" type="string"/>
[ファイル|すべて保存] を実行します。
展開したプロセス要素を表示します (図 A-8)。
このプロセスのメッセージングを有効にするには、コンポーネント パレットの [BPEL Activities and Components] から receiveInput アクティビティと callbackClient アクティビティの間に [User Notification] をドラッグ アンド ドロップします。
User Notification アクティビティが表示されます (図 A-9)。
図 A-9 入力をコンフィグレーションする前の User Notification アクティビティ
[To:] 入力ボックスの右にある XPath 式ビルダのアイコンをクリックします。
受信者「to」の式を次のように変更します。
[BPEL Variables] ペインで、[変数|inputVariable|ペイロード|clientprocess|client:to] を選択します (図 A-10)。
[式に挿入] をクリックします。
[OK] をクリックします。
[subject:] 入力ボックスの右にある XPath 式ビルダのアイコンをクリックします。
subject の式を次のように変更します。
[BPEL Variables] ペインで、[変数|InputVariable|ペイロード|clientprocess|client:subject] を選択します (図 A-11)。
[式に挿入] をクリックします。
[OK] をクリックします。
[body:] 入力ボックスの右にある XPath 式ビルダのアイコンをクリックします。
body の式を次のように変更します。
[BPEL Variables] ペインで、[変数|InputVariable|ペイロード|clientprocess|client:body] を選択します (図 A-12)。
[式に挿入] をクリックします。
[OK] をクリックします。
[Apply]、[OK] の順にクリックして、変更を適用します (図 A-13)。
入力の変更が保存され、User Notification アクティビティのコンフィグレーションが完了します。 これで、BPEL アプリケーションで User Notification アクティビティを表示できるようになります (図 A-14)。 SOA 複合アプリケーションは完成です。
図 A-14 入力のコンフィグレーションが完了した後の User Notification アクティビティ
新しいアプリケーション サーバ接続を作成するには、以下の手順に従います。
新しいアプリケーション サーバ接続を作成するには、プロジェクトを右クリックし、[新規|接続|Application Server Connection] を選択します (図 A-15)。
接続名に「SOA_server」を指定して [次へ] をクリックします (図 A-16)。
[接続タイプ] に「WebLogic 10.3」を指定します。
認証情報を入力します。一般的な値は次のとおりです。
ユーザ名 : weblogic
、パスワード : weblogic
[接続] 画面で、ホスト名、ポート、SOA 管理サーバの SSL ポート、WLS ドメインのドメイン名を入力します。
[次へ] をクリックします。
[テスト] 画面で、[接続のテスト] をクリックします。
「Success!」というメッセージが表示されることを確認します。
アプリケーション サーバ接続の作成は完了しました。
プロジェクトをデプロイするには、以下の手順に従います。
プロジェクトをデプロイするには、[SendMessage project|Deploy|SendMessageProj|to|SOA_server] を選択します (図 A-17)。
ログに「Build Successful」というメッセージが表示されることを確認します。
デフォルトのリビジョンを入力し、[OK] をクリックします。
デプロイメント ログに「Deployment Finished」というメッセージが表示されることを確認します (図 A-18)。
これで、アプリケーションのデプロイは完了です。
サンプルを実行するには、次の節で説明するように、Oracle User Messaging Service の追加ドライバをコンフィグレーションし、User Messaging Preferences でメッセージを受信するユーザのデフォルト デバイスもコンフィグレーションする必要があります。
注意 : 詳細については、『Oracle Fusion Middleware SOA Developer's Guide』の「Configuring Notifications」を参照してください。 |
ユーザが通知を受け取るには、User Messaging Preferences を使用して、メッセージへのアクセスに使うデバイスを登録する必要があります。 その手順は次のとおりです。
次のいずれかの URL で User Messaging Preferences アプリケーションにログインします。
http://<サーバ>:<ポート>/sdpmessaging/userprefs-ui への直接アクセス
Worklist アプリケーションの [Preferences] の [Notification] タブ (http://<サーバ>:<ポート>/integration/worklistapp)
User Messaging Preferences アプリケーションが表示されます。
[Messaging Channels] タブをクリックします (図 A-19)。
ログイン資格情報の入力を要求されます。
[Messaging Channels] タブで、チャネルを選択します。
デバイスのフォルダを展開し、選択したチャネルの横にある [Set as Default] をクリックして、デフォルト チャネルとして設定します。
選択したチャネルの横に、デフォルトの通知受信手段であることを示すチェックマークが表示されます。 このユーザ宛てのすべてのメッセージがこのチャネルに送信されます。
Enterprise Manager でメッセージ送信をテストするには、以下の手順に従います。
以下の手順に従って、サンプルを実行し、テストします。
Web ブラウザ ウィンドウを開き、SOA ドメインの Enterprise Manager にログインします (例 : http://<ホスト>:<ポート>/em
)。
Enterprise Manager のナビゲーション ツリーで SOA フォルダを展開し、デプロイ済みの SendMessageProj 複合アプリケーションをクリックします。 [テスト] ボタンをクリックして、テスト クライアント ページを起動します。
[Input Arguments] セクションに SendMessageProj·を呼び出すための入力値が表示されます。
以下の値を入力します。
to : weblogic (ユーザ)
subject : notification test (件名)
body : メッセージ本文
[Test Web Service] をクリックします。
Human Workflow Engine にログインします。 発信される通知とそのステータスを [Notification Manager] タブで確認します (図 A-20)。
この章では、Oracle User Messaging Service に付属している Send Email with Attachments アプリケーションをビルドして実行する方法について説明します。
注意 : Oracle User Messaging Service のアーキテクチャとコンポーネントの詳細については、『Oracle Fusion Middleware Getting Started with Oracle SOA Suite』を参照してください。 |
この章の内容は以下のとおりです。
Send Email With Attachment アプリケーションでは、添付ファイルのある電子メールを送信する BPEL プロセスの例を示します。 BPEL プロセスはユーザの電子メール アドレスを ID ストアからルックアップし、ファイル システムからファイルを読み込み、電子メールのコンテンツを作成してユーザに送信します。節 A.2.5「サンプルのビルド」では、添付ファイルのある電子メールを SOA 複合アプリケーションに追加し、アプリケーションのメッセージング機能を利用できるようにする方法について説明します。アプリケーションのモデルを一から作成する場合は、「サンプルのビルド」を参照してください。 このチュートリアルに付属しているビルド前のプロジェクトを直接使用することもできます。ビルド前のサンプルを実行する場合も、アプリケーションを最初から作成する場合も、まず、節 A.2.2「SOA および User Messaging Service のインストールとコンフィグレーション」の説明に従ってサーバをインストールし、コンフィグレーションする必要があります。 デフォルトでは、soa-infra は通知を送信しません。 次に、電子メール サーバとの通信に必要な電子メール ドライバのインストールおよびコンフィグレーションの手順を説明します。
SOA および User Messaging Service はホスト インスタンスにインストール済みで、サンプル ユーザ「weblogic」も作成済みです。soa-infra の通知が有効になっていない場合は、次の手順に従って有効にします。
Enterprise Manager で [soa-infra|(Menu)|Workflow Notification Properties] を選択し、[Notification Mode] を ALL に設定します。
必要に応じて『Oracle Fusion Middleware SOA Administrator's Guide』の「Configuring Drivers」の説明にあるように、User Messaging ドライバをコンフィギュレーションします。
JXplorer LDAP ブラウザで、ユーザ「weblogic」の電子メール アドレスを設定します。「LDAP ユーザ プロファイルのアドレスの更新」を参照してください。
サーバを再起動します。
以下の手順に従って、JXplorer LDAP ブラウザで、ユーザ「weblogic」の電子メール アドレスを設定します。
次の手順に従って、組み込みの LDAP サーバの管理パスワードを設定します。
WLS 管理コンソールにログインします。
ドメイン名のリンクをクリックし、[セキュリティ|組み込み LDAP] をクリックします。
新しい [資格] と [Confirm Credential] (例 : 「weblogic」) を入力します。
[保存] をクリックします。
表 A-2 のフィールドを指定して JXplorer から接続します。
以下の手順に従って、ビルド前のサンプルを実行し、デプロイします。
Oracle JDeveloper の zip ファイルに含まれている SendEmailWithAttachmentsApp.jws を開きます。
Oracle JDeveloper メイン ウィンドウの [Composite.xml] タブにサンプル アプリケーションの以下のコンポーネントが表示されます。
左側のボックスには、アプリケーションの起動に使用する Web サービス クライアントの定義が表示されます。
中央のボックスには、メッセージの作成と書式設定を行い、メッセージング サービスを呼び出す BPEL プロセスが表示されます。
右側のボックスには、メッセージの送信に使用するメッセージング サービス リソースが表示されます。
ナビゲーション ペインでプロジェクトを右クリックし、[新規] を選択してアプリケーション サーバ接続を作成します。 節 A.2.6「新しいアプリケーション サーバ接続の作成」の手順に従います。
プロジェクトをデプロイするには、[SendMessage project|Deploy|SendMessageProj|to|SOA_server] を選択します (図 A-22)。
ログに「Build Successful」というメッセージが表示されることを確認します。
デフォルトのリビジョンを入力し、[OK] をクリックします。
デプロイメント ログに「Deployment Finished」というメッセージが表示されることを確認します。
これで、アプリケーションのデプロイは完了です。
サンプルを実行するには、次の節で説明するように、Oracle User Messaging Service の追加ドライバをコンフィグレーションし、User Messaging Preferences でメッセージを受信するユーザのデフォルト デバイスもコンフィグレーションする必要があります。
注意 : 詳細については、『Oracle Fusion Middleware SOA Developer's Guide』の「Configuring Notifications」を参照してください。 |
Enterprise Manager でメッセージ送信をテストするには、以下の手順に従います。
以下の手順に従って、サンプルを実行し、テストします。
Web ブラウザ ウィンドウを開き、SOA ドメインの Enterprise Manager にログインします (例 : http://<ホスト>:<ポート>/em
)。
Enterprise Manager のナビゲーション ツリーで SOA フォルダを展開し、デプロイ済みの SendEmailWithAttachmentsProj 複合アプリケーションをクリックします。 [テスト] ボタンをクリックして、テスト クライアント ページを起動します。
[Input Arguments] セクションに SendMessageProj を呼び出すための入力値が表示されます。
以下の値を入力します。
to : weblogic (ユーザ)
subject : notification test (件名)
body : メッセージ本文
attachmentName : 拡張子を含めた添付ファイルの名前
attachmentMimeType : 例 : image/gif
pdf、doc、gif、jpeg などのファイルを送信するには、attachmentMimeType のエントリに以下の値を指定します。
ファイル名.doc – attachmentMimeType : application/msword
ファイル名.pdf – attachmentMimeType : application/pdf
ファイル名.jpg – attachmentMimeType : image/jpeg
ファイル名.gif – attachmentMimeType : image/gif
attachmentURI : 添付ファイルの URI
[Test Web Service] をクリックします。
以下の手順に従ってサンプルを最初から作成すると、SOA 複合アプリケーションへのメッセージの追加方法と User Messaging Preferences の使い方がわかります。
Oracle JDeveloper 11g を開きます。
[ファイル|新規|アプリケーション|SOA アプリケーション] を選択して、新規アプリケーションを作成します。[OK] をクリックします。
[アプリケーション名] を入力し、[次へ] をクリックします (図 A-23)。
プロジェクト名を入力し、[次へ] をクリックします (図 A-24)。
[Composite With BPEL] 複合テンプレートを選択します (図 A-25)。[Finish] をクリックします。
[Create BPEL Process] ウィンドウで、BPEL プロセス名に「SendEmailWithAttachments」と入力します (図 A-26)。[OK] をクリックします。
[Expose as a SOAP service] がチェックされていることを確認します。[OK] をクリックします。
空のデフォルト BPEL アプリケーションが作成されます。
Oracle JDeveloper メイン ウィンドウの [Composite.xml] タブにサンプル アプリケーションの以下のコンポーネントが表示されます。
左側のボックスには、アプリケーションの起動に使用する Web サービス クライアントの定義が表示されます。
中央のボックスには、メッセージの作成と書式設定を行い、メッセージング サービスを呼び出す BPEL プロセスが表示されます。
注意 : 後で、User Notification BPEL プロセスを作成する際のメッセージ送信に使用するメッセージング サービス リソースを作成する必要があります (ステップ 13 ~ 19)。 |
アプリケーション ナビゲータで xsd フォルダを展開し、このフォルダをダブルクリックして SendEmailWithAttachments.xsd を開きます (図 A-27)。
[ソース] タブをクリックします (図 A-27)。
この BPEL アプリケーションの入力を次のように変更します。
アプリケーション ナビゲータのプロジェクトの xsd フォルダに生成される SendEmailWithAttachments.xsd ファイルに、デフォルトで次の要素定義が作成されます。
<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 プロセスの入力を定義します。
プロジェクトを保存します。
SendEmailWithAttachments.bpel エディタ画面を選択します。
コンポーネント パレットの [BPEL Activities and Components] から receiveInput アクティビティと callbackClient アクティビティの間に Email アクティビティをドラッグ アンド ドロップします (図 A-28)。
[電子メールの編集] ウィンドウの [送信元アカウント] を「Default」のままにしておきます。
[To] の式を作成するには、式ビルダ (2 番目のアイコン 図 A-30) を選択し、以下の手順に従います。
関数ドロップ ダウン リストから [Identity Service Functions] を選択します。
getUserProperty() 関数を選択し、[式に挿入] を選択します。
[BPEL Variables] ペインで、[変数|プロセス|inputVariable|ペイロード|client:process|client:to] を選択します。
[式に挿入] をクリックします。
「mail」という文字列を手動で入力します。
括弧を対応するように修正します。
[OK] をクリックします。
この式 (図 A-30) は、Web サービスからデータを受け取り、ローカル SOA ユーザのビジネス電子メールにマップします。
式は次のようになります。
ids:getUserProperty( bpws:getVariableData('inputVariable','payload', '/client:process/client:to'),'mail')
[Subject] に式ビルダを選択します。 [Functions] から getVariableData を選択し、[式に挿入] をクリックします。
図 A-31 に [Subject] の式ビルダを示します。
式は次のようになります。
bpws:getVariableData( 'inputVariable', 'payload','/client:process/client:subject')
[Body] に式ビルダを選択し、式を図 A-32 のように設定します。
式は次のようになります。
bpws:getVariableData('inputVariable','payload','/client:process/client:body')
[電子メールの編集] ウィンドウ (図 A-33) で、[Multipart Message with attachments] ボックスがチェックされていることを確認します。
電子メールがマルチパートである場合、添付ファイルの数には前述のウィザードで設定した本文が含まれます。前述のウィザードで指定した本文が本文の最初のパートとして設定されます。たとえば、添付ファイルが 1 件あるマルチパート メールを表す場合は、本文パートの数を「2」と入力します。 添付ファイルが 1 件の場合は、本文パートの数を「1」と入力します。
添付ファイルを設定します。
本文の各パートには MimeType、BodyPartName、ContentBody の 3 つの属性があります。 デフォルトでは、ウィザードは各添付ファイルにデフォルトの名前、MIME タイプ、コンテンツを生成します。 通知のスコープで assign アクティビティのコピー ルールを変更することによってこれらの本文パートの割り当てを変更し、適切なデータを設定する必要があります。 [コピー操作] タブで指定したコピー ルールによって、各割り当てが次の順序でグループ化されます (コピー先の構造も示しています)。
MimeType - <to variable="varNotificationReq" part="EmailPayload" query="/EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ns1:BodyPart[2]/ ns1:MimeType"/> Name - <to variable="varNotificationReq" part="EmailPayload" query="/EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ns1:BodyPart[2]/ ns1:BodyPartName"/> Contents - <to variable="varNotificationReq" part="EmailPayload" query="/EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ns1:BodyPart[2]/ ns1:ContentBody"/>
+ 記号アイコンを選択して Email ノードを展開します (図 A-34)。
EmailParamAssign ノードをダブルクリックします (図 A-35)。
EmailParamAssign ノードで XPath 変数の編集などの変更を行う場合、変更の完了後に [ファイル|すべて保存] を実行します。 これによって変更が .bpel ファイルに反映されます。
本文の 2 番目のパートの mimeType を編集するには (本文の最初のパートはウィザードで設定したコンテンツ)、2 番目のパートの変数として「MimeType」で終わる変数をダブルクリックして選択します (図 A-36)。
XPath を次のように編集します (図 A-37)。
From: /client:process/client:attachmentMimeType, To: /EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ ns1:BodyPart[2]/ns1:MimeType
プロジェクトを保存します。
2 番目の添付ファイルの名前を編集するには、2 番目のパートの変数として「BodyPartName」で終わる変数をダブルクリックして選択します (図 A-38)。
XPath を次のように編集します。
From: /client:process/client:attachmentName To: /EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart /ns1:BodyPart[2]/ns1:BodyPartName
プロジェクトを保存します。
2 番目の添付ファイルのコンテンツを編集するには、本文の 2 番目のパートの変数として「ContentBody」で終わる変数をダブルクリックして選択します (図 A-40)。
XPath を次のように編集します (図 A-41)。
From: ora:readFile(bpws:getVariableData('inputVariable','payload','/client: process/client:attachmentURI')) To:/EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ ns1:BodyPart[2]/ns1:ContentBody
ora:readFile() xpath 関数は [BPEL Xpath Extension Functions] にあります。
[Edit Copy Operation] 画面で [OK] をクリックします。
assign アクティビティで [OK] をクリックします。 プロジェクトを保存します。
プロセスのモデリング手順はこれで完了です。この手順の説明に従って、添付ファイル付きの通知を SOA 複合アプリケーションに追加することもできます。これで、節 A.2.3 「ビルド前のサンプルの実行」の説明に従って、アプリケーションをデプロイおよび実行することができます。
新しいアプリケーション サーバ接続を作成するには、以下の手順に従います。
新しいアプリケーション サーバ接続を作成するには、プロジェクトを右クリックし、[新規|接続|Application Server Connection] を選択します (図 A-43)。
接続名に「SOA_server」を指定して [次へ] をクリックします (図 A-44)。
[接続タイプ] に「WebLogic 10.3」を指定します。
認証情報を入力します。一般的な値は次のとおりです。
ユーザ名 : weblogic
、パスワード : weblogic
[接続] 画面で、ホスト名、ポート、SOA 管理サーバの SSL ポート、WLS ドメインのドメイン名を入力します。
[次へ] をクリックします。
[テスト] 画面で、[接続のテスト] をクリックします。
「Success!」というメッセージが表示されることを確認します。
アプリケーション サーバ接続の作成は完了しました。