Oracle Fusion Middleware Oracle SOA Suiteアプリケーションの作成および実行のためのチュートリアル 11g リリース1(11.1.1) B56240-01 |
|
戻る |
次へ |
この章では、更新済の注文に対する機能を提供します。 ビジネス・イベントOrderUpdateEvent
をパブリッシュし、注文のIDをOrderProcessor
BPELプロセスに送信する、メディエータ・サービス・コンポーネントを作成します。 ビジネス・イベントをサブスクライブし、StoreFrontService
サービスに注文IDを送信し、StoreFrontService
サービスが更新済の注文情報を返信するまで待機する、2つ目のメディエータ・サービス・コンポーネントを作成します。
この章の内容は次のとおりです。
第8.2項「タスク2: OrderUpdateEventビジネス・イベントをパブリッシュするUpdateOrderStatusメディエータ・サービス・コンポーネントの作成」
第8.4項「タスク4: OrderUpdateEventビジネス・イベントをサブスクライブするOrderUpdateEventMediatorメディエータ・サービス・コンポーネントの作成」
スキーマを取得する手順は、次のとおりです。
ビジネス・イベントOrderUpdateEvent
を作成し、ビジネス・イベントをパブリッシュするメディエータを作成する手順は、次のとおりです。
「メディエータ」サービス・コンポーネントを、SOAコンポジット・エディタにドラッグします。このサービス・コンポーネントを使用して、ビジネス・イベントをサブスクライブできます。
「テンプレート」から、「WSDLからのインタフェース定義」を選択します。
「SOAPバインディングを持つコンポジット・サービスの作成」を選択します。
「WSDL URL」フィールドで、WSDLファイルを生成します。
「スキーマからWSDLを生成します。」アイコンをクリックします。
「WSDLの作成」ダイアログから、「URL」フィールドで、「スキーマ・ファイルを参照」アイコンをクリックします。
「タイプ・チューザ」ダイアログで、「プロジェクトのスキーマ・ファイル」→「OrderProcessor.xsd」の順に開き、「updateOrderStatus」を選択します。
「OK」をクリックします。
「WSDLの作成」ダイアログに戻り、「ネームスペース」フィールドに「http://www.globalcompany.example.com/ns/OrderBookingService
」と入力します。
「OK」をクリックして「メディエータの作成」ダイアログに戻ります。
「メディエータの作成」ダイアログに戻り、「OK」をクリックして、この設定でメディエータを作成します。
UpdateOrderStatus_ep
SOAPサービスおよびUpdateOrderStatus
メディエータが、SOAコンポジット・エディタのコンポジットに表示されます。
ビジネス・イベントを開始するルーティング・ルールを作成する手順は、次のとおりです。
「UpdateOrderStatus」メディエータをダブルクリックします。
「メディエータ」エディタの「ルーティング・ルール」セクションで、「作成」ドロップダウン・リストから「静的ルーティング・ルール」を選択して、ビジネス・イベントを開始するルーティング・ルールを作成します。
「ターゲット・タイプ」メッセージ・ダイアログで、「イベント」をクリックします。
「イベント・チューザ」ダイアログで、「新規イベント定義(edl)ファイルを作成します。」アイコンをクリックします。 このアイコンは、フィールドの右側にある2番目のアイコンです。
「イベント定義名」フィールドにOrderEventsDefinition
と入力します。
「ネームスペース」フィールドに「http://www.globalcompany.example.com/ns/OrderBookingService
」と入力します。
ビジネス・イベントOrderUpdateEvent
を作成します。
「イベント」テーブルから「イベントの追加」アイコンをクリックしてイベントを追加します。
「イベントの追加」ダイアログが表示されます。
次の値を入力および選択します。
要素 | 値 |
---|---|
要素 |
|
名前 | OrderUpdateEvent |
「OK」をクリックして「イベント定義」ダイアログを表示します。
「OK」をクリックして設定を保存します。
OrderUpdateEvent
イベントがある「イベント・チューザ」ダイアログが表示されます。
「イベント・チューザ」ダイアログで「OK」をクリックします。
ルーティング・ルールが更新され、ビジネス・イベントOrderUpdateEvent
を開始するルーティング・ルールが表示されます。
UpdateOrderStatus
メディエータ・サービス・コンポーネントに使用されるトランスフォーメーションを変更し、このイベントをサブスクライブするサービスがOrderUpdateEvent
ビジネス・イベントから入力を受信するようにします。
「次を使用して変換」フィールドの隣のトランスフォーメーション・アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログで、「新規マッパー・ファイルの作成」を選択し、デフォルトのファイル・エントリを「updateOrderStatus_To_OrderUpdateEvent.xsl
」のままにして、「OK」をクリックします。
データ・マッパーが表示されます。
「ソース: UpdateOrderStatus.wsdl」(左)側の「tns:orderId」をクリックし、「XSLTファイル: OrderProcessor.xsd」(右)側の「orderId」にドラッグします。
「ソース: UpdateOrderStatus.wsdl」(左)側の「tns:orderStatus」をクリックし、「XSLTファイル: OrderProcessor.xsd」(右)側の「orderStatus」にドラッグします。 実際の環境でのネームスペースは異なる場合があります。
データ・マッパー・ダイアログは、次のように表示されます。
「ファイル」メイン・メニューから「すべて保存」を選択して、作業内容を保存します。
「updateOrderStatus_To_OrderUpdateEvent.xsl」タブの「X」をクリックして、データ・マッパーを閉じます。
「UpdateOrderStatus.mplan」タブに戻ると、「ルーティング・ルール」セクションでは、「次を使用して変換」フィールドに「updateOrderStatus_To_OrderUpdateEvent.xsl」ファイルが表示されています。
「UpdateOrderStatus.mplan」タブの「X」をクリックして、「メディエータ」エディタを閉じます。
OrderUpdateEvent
ビジネス・イベントをサブスクライブしてStoreFrontService
サービスを開始するメディエータを作成する手順は、次のとおりです。
「メディエータ」サービス・コンポーネントを、SOAコンポジット・エディタにドラッグします。このサービス・コンポーネントを使用して、ビジネス・イベントをサブスクライブできます。
「名前」フィールドに、「OrderUpdateEventMediator
」と入力します。
「テンプレート」リストから、「イベントのサブスクライブ」を選択します。
ウィンドウがリフレッシュされ、イベント・テーブルが表示されます。
「新規イベントのサブスクライブ」アイコンをクリックして、「イベント・チューザ」ダイアログを表示します。
OrderUpdateEventイベントが選択されている状態で、「OK」をクリックします。
「メディエータの作成」ダイアログに戻ります。
「メディエータの作成」ダイアログで、「OK」をクリックします。
SOAコンポジット・エディタにOrderUpdateEventMediator
メディエータが表示されます。左側のアイコンは、メディエータがイベント・サブスクリプションに対して構成されていることを示しています。
StoreFrontService
サービスに注文IDを送信し、StoreFrontService
サービスが更新済の注文情報を返信するまで待機するルーティング・ルールを作成する手順は、次のとおりです。
「OrderUpdateEventMediator」メディエータをダブルクリックします。
「メディエータ」エディタの「ルーティング・ルール」セクションで、「作成」ドロップダウン・リストから「静的ルーティング・ルール」を選択して、ビジネス・イベントを開始するルーティング・ルールを作成します。
「ターゲット・タイプ」メッセージ・ダイアログで、「サービス」をクリックします。
「ターゲット・サービス」ダイアログで、「参照」→「StoreFrontService」の順に開き、「getOrderInfoVOSDO」を選択して、「OK」をクリックします。
StoreFrontService
サービスがメディエータから注文ID情報を受信するように、パラメータ・トランスフォーメーションを変更します。
「次を使用して変換」フィールドの隣のトランスフォーメーション・アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログで、「新規マッパー・ファイルの作成」を選択し、デフォルトのファイル・エントリを「OrderUpdateEvent_To_getOrderInfoVOSDO.xsl
」のままにして、「OK」をクリックします。
データ・マッパーが表示されます。
「ソース: OrderProcessor.xsd」(左)側の「orderId」をクリックし、「StoreFrontService.wsdl」(右)側の「types:orderId」にドラッグします。
データ・マッパー・ダイアログは、次のように表示されます。
「ファイル」メイン・メニューから「すべて保存」を選択して、作業内容を保存します。
「OrderUpdateEvent_To_getOrderInfoVOSDO.xsl」タブの「X」をクリックして、データ・マッパーを閉じます。
「OrderUpdateEventMediator.mplan」タブに戻ると、「ルーティング・ルール」セクションでは、「次を使用して変換」フィールドに「OrderUpdateEvent_To_getOrderInfoVOSDO.xsl」ファイルが表示されています。
「メディエータ」エディタの「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」アイコンをクリックします。
「ターゲット・タイプ」メッセージ・ダイアログで、「サービス」をクリックします。
「ターゲット・サービス」ダイアログで、「参照」→「StoreFrontService」の順に開き、「updateOrderInfoVOSDO」を選択して、「OK」をクリックします。
StoreFrontService
サービスがメディエータから正しい情報を受信するように、パラメータ・トランスフォーメーションを変更します。
「次を使用して変換」フィールドの隣のトランスフォーメーション・アイコンをクリックします。
「リクエスト・トランスフォーメーション・マップ」ダイアログで、「新規マッパー・ファイルの作成」を選択し、デフォルトのファイル・エントリを「getOrderInfoVOSDOResponse_To_updateOrderInfoVOSDO.xsl
」のままにして、「OK」をクリックします。
データ・マッパーが表示されます。
「ソース」(左)側の「types:getOrderInfoVOSDOResponse」→「types:result」をクリックし、「XSLTファイル」(右)側の「types:updateOrderInfoVOSDO」→「types:orderInfoVO1」にドラッグします。
「自動マップ・プリファレンス」ダイアログに、ノードの自動マッピングを実行することを確認するプロンプトが表示されます。
オプション「祖先名を考慮した要素の一致」の選択を解除します。
他のオプションはデフォルト設定のままにして、「OK」をクリックします。
「ソース: StoreFrontService.wsdl」側で、「types:results」→「ns4:OrderItemsInfoVO」を開きます。
「XSLTファイル: StoreFrontService.wsdl」側で、「types:orderInfoVO1」→「for-each」→「ns4:OrderItemsInfoVO」を開きます。 ネームスペース番号の値(例: ns1、ns2)は異なる場合があります。
データ・マッパーで、更新済の注文のデータがどのように変換されるかを確認できます。
「ファイル」メイン・メニューから「すべて保存」を選択して、作業内容を保存します。
「getOrderInfoVOSDOResponse.xsl」タブの「X」をクリックして、データ・マッパーを閉じます。
「OrderUpdateEventMediator.mplan」タブに戻ると、「ルーティング・ルール」セクションでは、「次を使用して変換」フィールドに「getOrderInfoVOSDOResponse_To_updateOrderInfoVOSDO.xsl」ファイルが表示されています。
「OrderUpdateEventMediator.mplan」タブの「X」をクリックして、「メディエータ」エディタを閉じます。
OrderBookingComposite
コンポジットを再デプロイする手順は、次のとおりです。
アプリケーション・ナビゲータで、「OrderBookingComposite」を右クリックし、「デプロイ」→「OrderBookingComposite」→「デプロイ先」→「MyAppServerConnection」の順に選択します。
「SOAデプロイメントと構成ダイアログ」が表示されます。
「同じリビジョンIDで既存のコンポジットを上書きします。」を選択して、前にデプロイしたコンポジットを上書きします。
「認証リクエスト」ダイアログのプロンプトに対して、「Username
」フィールドにweblogic
と入力し、「Password
」フィールドにパスワードを入力します。
「SOA - ログ」に、一連の検証に続いて次のように表示されます。
BUILD SUCCESSFUL
Total time: nn seconds
前述の手順に従って、OrderBookingComposite
コンポジットのテスト・インスタンスを開始します。 テスト・インスタンスの作成の詳細は、第5.7.6項「タスク6: OrderBookingCompositeコンポジットのテスト・インスタンスの開始」を参照してください。 このテスト・インスタンスについて、次の調整を行います。
「テスト」ドロップダウン・リストから、テスト・サービスとして「UpdateOrderStatus_ep」を選択します。
「引数を入力」セクションで、次の値を入力します。
「orderID」フィールドに、1000
未満のIDを入力します。
「orderStatus」フィールドに、任意の値を入力します。