ヘッダーをスキップ
Oracle Fusion Middleware Oracle SOA Suiteアプリケーションの作成および実行のためのチュートリアル
11g リリース1(11.1.1)
B56240-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

8 注文を更新するフローの追加

この章では、更新済の注文に対する機能を提供します。 ビジネス・イベントOrderUpdateEventをパブリッシュし、注文のIDをOrderProcessor BPELプロセスに送信する、メディエータ・サービス・コンポーネントを作成します。 ビジネス・イベントをサブスクライブし、StoreFrontServiceサービスに注文IDを送信し、StoreFrontServiceサービスが更新済の注文情報を返信するまで待機する、2つ目のメディエータ・サービス・コンポーネントを作成します。

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

8.1 タスク1: ビジネス・イベントに必要なスキーマ・ファイルのコピー

スキーマを取得する手順は、次のとおりです。

  1. OrderProcessor.xsdを、ディレクトリDEMO_DOWNLOAD_HOME\CompositeServices\OrderBookingComposite\xsdからMY_FOD_HOME\CompositeServices\OrderBookingComposite\xsdにコピーします。 このスキーマ・ファイルには、ビジネス・イベントを作成するための追加のupdateOrderStatusスキーマ要素が含まれています。

  2. アプリケーション・ナビゲータで、「リフレッシュ」アイコンをクリックします。

8.2 タスク2: OrderUpdateEventビジネス・イベントをパブリッシュするUpdateOrderStatusメディエータ・サービス・コンポーネントの作成

ビジネス・イベントOrderUpdateEventを作成し、ビジネス・イベントをパブリッシュするメディエータを作成する手順は、次のとおりです。

  1. 「メディエータ」サービス・コンポーネントを、SOAコンポジット・エディタにドラッグします。このサービス・コンポーネントを使用して、ビジネス・イベントをサブスクライブできます。

  2. 「名前」フィールドにUpdateOrderStatusと入力します。

  3. 「テンプレート」から、「WSDLからのインタフェース定義」を選択します。

  4. 「SOAPバインディングを持つコンポジット・サービスの作成」を選択します。

  5. 「WSDL URL」フィールドで、WSDLファイルを生成します。

    1. 「スキーマからWSDLを生成します。」アイコンをクリックします。

    2. 「WSDLの作成」ダイアログから、「URL」フィールドで、「スキーマ・ファイルを参照」アイコンをクリックします。

    3. 「タイプ・チューザ」ダイアログで、「プロジェクトのスキーマ・ファイル」「OrderProcessor.xsd」の順に開き、「updateOrderStatus」を選択します。

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

    5. 「WSDLの作成」ダイアログに戻り、「ネームスペース」フィールドに「http://www.globalcompany.example.com/ns/OrderBookingService」と入力します。

    6. 「OK」をクリックして「メディエータの作成」ダイアログに戻ります。

  6. 「メディエータの作成」ダイアログに戻り、「OK」をクリックして、この設定でメディエータを作成します。

    updateorder.gifの説明は次にあります。
    図版updateorder.gifの説明

    UpdateOrderStatus_ep SOAPサービスおよびUpdateOrderStatusメディエータが、SOAコンポジット・エディタのコンポジットに表示されます。

    updateorder2.gifの説明は次にあります。
    図版updateorder2.gifの説明

8.3 タスク3: ビジネス・イベントを開始するルーティング・ルールの作成

ビジネス・イベントを開始するルーティング・ルールを作成する手順は、次のとおりです。

  1. 「UpdateOrderStatus」メディエータをダブルクリックします。

  2. 「メディエータ」エディタの「ルーティング・ルール」セクションで、「作成」ドロップダウン・リストから「静的ルーティング・ルール」を選択して、ビジネス・イベントを開始するルーティング・ルールを作成します。

    updateorder3.gifの説明は次にあります。
    図版updateorder3.gifの説明

  3. 「ターゲット・タイプ」メッセージ・ダイアログで、「イベント」をクリックします。

  4. 「イベント・チューザ」ダイアログで、「新規イベント定義(edl)ファイルを作成します。」アイコンをクリックします。 このアイコンは、フィールドの右側にある2番目のアイコンです。

  5. 「イベント定義名」フィールドにOrderEventsDefinitionと入力します。

  6. 「ネームスペース」フィールドに「http://www.globalcompany.example.com/ns/OrderBookingService」と入力します。

  7. ビジネス・イベントOrderUpdateEventを作成します。

    1. 「イベント」テーブルから「イベントの追加」アイコンをクリックしてイベントを追加します。

      「イベントの追加」ダイアログが表示されます。

    2. 次の値を入力および選択します。

      要素
      要素
      1. 「参照」アイコンをクリックしてペイロードを選択します。

        「タイプ・チューザ」ダイアログが表示されます。

      2. 「プロジェクトのスキーマ・ファイル」「OrderProcessor.xsd」の順に開き、「updateOrderStatus」を選択します。

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

      名前 OrderUpdateEvent

    3. 「OK」をクリックして「イベント定義」ダイアログを表示します。

    4. 「OK」をクリックして設定を保存します。

      OrderUpdateEventイベントがある「イベント・チューザ」ダイアログが表示されます。

    5. 「イベント・チューザ」ダイアログで「OK」をクリックします。

      ルーティング・ルールが更新され、ビジネス・イベントOrderUpdateEventを開始するルーティング・ルールが表示されます。

      updateorder5.gifの説明は次にあります。
      図版updateorder5.gifの説明

  8. UpdateOrderStatusメディエータ・サービス・コンポーネントに使用されるトランスフォーメーションを変更し、このイベントをサブスクライブするサービスがOrderUpdateEventビジネス・イベントから入力を受信するようにします。

    1. 「次を使用して変換」フィールドの隣のトランスフォーメーション・アイコンをクリックします。

    2. 「リクエスト・トランスフォーメーション・マップ」ダイアログで、「新規マッパー・ファイルの作成」を選択し、デフォルトのファイル・エントリを「updateOrderStatus_To_OrderUpdateEvent.xsl」のままにして、「OK」をクリックします。

      データ・マッパーが表示されます。

    3. 「ソース: UpdateOrderStatus.wsdl」(左)側の「tns:orderId」をクリックし、「XSLTファイル: OrderProcessor.xsd」(右)側の「orderId」にドラッグします。

    4. 「ソース: UpdateOrderStatus.wsdl」(左)側の「tns:orderStatus」をクリックし、「XSLTファイル: OrderProcessor.xsd」(右)側の「orderStatus」にドラッグします。 実際の環境でのネームスペースは異なる場合があります。

      データ・マッパー・ダイアログは、次のように表示されます。

      updateorder6.gifの説明は次にあります。
      図版updateorder6.gifの説明

    5. 「ファイル」メイン・メニューから「すべて保存」を選択して、作業内容を保存します。

    6. 「updateOrderStatus_To_OrderUpdateEvent.xsl」タブの「X」をクリックして、データ・マッパーを閉じます。

    7. 「UpdateOrderStatus.mplan」タブに戻ると、「ルーティング・ルール」セクションでは、「次を使用して変換」フィールドに「updateOrderStatus_To_OrderUpdateEvent.xsl」ファイルが表示されています。

  9. 「UpdateOrderStatus.mplan」タブの「X」をクリックして、「メディエータ」エディタを閉じます。

8.4 タスク4: OrderUpdateEventビジネス・イベントをサブスクライブするOrderUpdateEventMediatorメディエータ・サービス・コンポーネントの作成

OrderUpdateEventビジネス・イベントをサブスクライブしてStoreFrontServiceサービスを開始するメディエータを作成する手順は、次のとおりです。

  1. 「メディエータ」サービス・コンポーネントを、SOAコンポジット・エディタにドラッグします。このサービス・コンポーネントを使用して、ビジネス・イベントをサブスクライブできます。

  2. 「名前」フィールドに、「OrderUpdateEventMediator」と入力します。

  3. 「テンプレート」リストから、「イベントのサブスクライブ」を選択します。

    ウィンドウがリフレッシュされ、イベント・テーブルが表示されます。

  4. 「新規イベントのサブスクライブ」アイコンをクリックして、「イベント・チューザ」ダイアログを表示します。

  5. OrderUpdateEventイベントが選択されている状態で、「OK」をクリックします。

    「メディエータの作成」ダイアログに戻ります。

    orderupdate.gifの説明は次にあります。
    図版orderupdate.gifの説明

  6. 「メディエータの作成」ダイアログで、「OK」をクリックします。

    SOAコンポジット・エディタにOrderUpdateEventMediatorメディエータが表示されます。左側のアイコンは、メディエータがイベント・サブスクリプションに対して構成されていることを示しています。

    updateorder7.gifの説明は次にあります。
    図版updateorder7.gifの説明

8.5 タスク5: StoreFrontServiceサービスに注文更新を送信するルーティング・ルールの作成

StoreFrontServiceサービスに注文IDを送信し、StoreFrontServiceサービスが更新済の注文情報を返信するまで待機するルーティング・ルールを作成する手順は、次のとおりです。

  1. 「OrderUpdateEventMediator」メディエータをダブルクリックします。

  2. 「メディエータ」エディタの「ルーティング・ルール」セクションで、「作成」ドロップダウン・リストから「静的ルーティング・ルール」を選択して、ビジネス・イベントを開始するルーティング・ルールを作成します。

  3. 「ターゲット・タイプ」メッセージ・ダイアログで、「サービス」をクリックします。

  4. 「ターゲット・サービス」ダイアログで、「参照」「StoreFrontService」の順に開き、「getOrderInfoVOSDO」を選択して、「OK」をクリックします。

  5. StoreFrontServiceサービスがメディエータから注文ID情報を受信するように、パラメータ・トランスフォーメーションを変更します。

    1. 「次を使用して変換」フィールドの隣のトランスフォーメーション・アイコンをクリックします。

    2. 「リクエスト・トランスフォーメーション・マップ」ダイアログで、「新規マッパー・ファイルの作成」を選択し、デフォルトのファイル・エントリを「OrderUpdateEvent_To_getOrderInfoVOSDO.xsl」のままにして、「OK」をクリックします。

      データ・マッパーが表示されます。

    3. 「ソース: OrderProcessor.xsd」(左)側の「orderId」をクリックし、「StoreFrontService.wsdl」(右)側の「types:orderId」にドラッグします。

      データ・マッパー・ダイアログは、次のように表示されます。

      updateorder8.gifの説明は次にあります。
      図版updateorder8.gifの説明

    4. 「ファイル」メイン・メニューから「すべて保存」を選択して、作業内容を保存します。

    5. 「OrderUpdateEvent_To_getOrderInfoVOSDO.xsl」タブの「X」をクリックして、データ・マッパーを閉じます。

    6. 「OrderUpdateEventMediator.mplan」タブに戻ると、「ルーティング・ルール」セクションでは、「次を使用して変換」フィールドに「OrderUpdateEvent_To_getOrderInfoVOSDO.xsl」ファイルが表示されています。

  6. 「メディエータ」エディタの「同期リプライ」セクションで、「ターゲット・サービス操作を参照します。」アイコンをクリックします。

    updateorder9.gifの説明は次にあります。
    図版updateorder9.gifの説明

  7. 「ターゲット・タイプ」メッセージ・ダイアログで、「サービス」をクリックします。

  8. 「ターゲット・サービス」ダイアログで、「参照」「StoreFrontService」の順に開き、「updateOrderInfoVOSDO」を選択して、「OK」をクリックします。

  9. StoreFrontServiceサービスがメディエータから正しい情報を受信するように、パラメータ・トランスフォーメーションを変更します。

    1. 「次を使用して変換」フィールドの隣のトランスフォーメーション・アイコンをクリックします。

    2. 「リクエスト・トランスフォーメーション・マップ」ダイアログで、「新規マッパー・ファイルの作成」を選択し、デフォルトのファイル・エントリを「getOrderInfoVOSDOResponse_To_updateOrderInfoVOSDO.xsl」のままにして、「OK」をクリックします。

      データ・マッパーが表示されます。

    3. 「ソース」(左)側の「types:getOrderInfoVOSDOResponse」「types:result」をクリックし、「XSLTファイル」(右)側の「types:updateOrderInfoVOSDO」「types:orderInfoVO1」にドラッグします。

      「自動マップ・プリファレンス」ダイアログに、ノードの自動マッピングを実行することを確認するプロンプトが表示されます。

    4. オプション「祖先名を考慮した要素の一致」の選択を解除します。

    5. 他のオプションはデフォルト設定のままにして、「OK」をクリックします。

    6. 「ソース: StoreFrontService.wsdl」側で、「types:results」「ns4:OrderItemsInfoVO」を開きます。

    7. 「XSLTファイル: StoreFrontService.wsdl」側で、「types:orderInfoVO1」「for-each」「ns4:OrderItemsInfoVO」を開きます。 ネームスペース番号の値(例: ns1ns2)は異なる場合があります。

      データ・マッパーで、更新済の注文のデータがどのように変換されるかを確認できます。

      updateorder10.gifの説明は次にあります。
      図版updateorder10.gifの説明

    8. 「ファイル」メイン・メニューから「すべて保存」を選択して、作業内容を保存します。

    9. 「getOrderInfoVOSDOResponse.xsl」タブの「X」をクリックして、データ・マッパーを閉じます。

    10. 「OrderUpdateEventMediator.mplan」タブに戻ると、「ルーティング・ルール」セクションでは、「次を使用して変換」フィールドに「getOrderInfoVOSDOResponse_To_updateOrderInfoVOSDO.xsl」ファイルが表示されています。

      updateorder11.gifの説明は次にあります。
      図版updateorder11.gifの説明

  10. 「OrderUpdateEventMediator.mplan」タブの「X」をクリックして、「メディエータ」エディタを閉じます。

8.6 タスク6: OrderBookingCompositeコンポジットの再デプロイ

OrderBookingCompositeコンポジットを再デプロイする手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、「OrderBookingComposite」を右クリックし、「デプロイ」「OrderBookingComposite」→「デプロイ先」→「MyAppServerConnection」の順に選択します。

    「SOAデプロイメントと構成ダイアログ」が表示されます。

  2. 「同じリビジョンIDで既存のコンポジットを上書きします。」を選択して、前にデプロイしたコンポジットを上書きします。

  3. 「認証リクエスト」ダイアログのプロンプトに対して、「Username」フィールドにweblogicと入力し、「Password」フィールドにパスワードを入力します。

    「SOA - ログ」に、一連の検証に続いて次のように表示されます。

    BUILD SUCCESSFUL
    Total time: nn seconds
    

8.7 タスク7: OrderBookingCompositeコンポジットのテスト・インスタンスの開始

前述の手順に従って、OrderBookingCompositeコンポジットのテスト・インスタンスを開始します。 テスト・インスタンスの作成の詳細は、第5.7.6項「タスク6: OrderBookingCompositeコンポジットのテスト・インスタンスの開始」を参照してください。 このテスト・インスタンスについて、次の調整を行います。