ヘッダーをスキップ
Oracle BPEL Process Manager Order Bookingチュートリアル
10g (10.1.3.1.0)
B31877-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

4 パラレル・フローの追加

この章では、サプライヤ価格を受け取るために別の非同期サービスをコールするパラレル・フロー・ロジックの作成方法について説明します。

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

4.1 概要

チュートリアルのこのフェーズでは、第3章「非同期サービスの呼出し」で設計したOrderBookingプロセスに処理を追加します。このフェーズを実行する前に、前のフェーズが正常に完了したことを確認してください。チュートリアルのこのフェーズでは、非同期BPELプロセスをコールして、2つのサービスからクライアントの注文に対するサプライヤ価格を受け取るパラレル・フロー・ロジックを作成します。次の主要タスクを実行します。

4.2 Order Bookingチュートリアルへのパラレル・フローの追加

この項では次のタスクを実行します。

4.2.1 サービスの開始およびテスト

Select Manufacturingサービスは、「サービスの開始およびテスト」でRapid Distributorsサービスを開始したときに自動的に開始されました。Select Manufacturingサービスが現在実行されていない場合は、前述の項で開始の手順を確認してください。

  1. Internet ExplorerまたはMozilla Firefoxを使用してSelect Manufacturingユーザー・アプリケーションにアクセスし、デプロイされていることを確認します。

    http://localhost:8888/SelectManufacturingUI
    
    
  2. jcooper/welcome1としてログインします。

    Orders for Reviewウィンドウが表示されます。

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

4.2.2 Select Manufacturingパートナ・リンクの作成


概要:

ここでは、Select Manufacturingサービスのパートナ・リンクを作成します。

  1. Oracle JDeveloperに戻ります。

  2. 「コンポーネント・パレット」セクションから「Services」を選択します。

  3. 「コンポーネント・パレット」セクションから、Designerウィンドウの左側(「サービス」ヘッダーの下で「client」パートナ・リンクの上)にPartnerLinkアクティビティをドラッグ・アンド・ドロップします。

    obph3dnd.gifの説明
    図obph3dnd.gifの説明

  4. 次の値を入力して、Select Manufacturingサービスのパートナ・リンクを作成します。


    注意:

    下側の「WSDLファイル」フィールドでは、「サービスの開始およびテスト」でデプロイしたSelect Manufacturingサービスを自動的に選択するために、懐中電灯(左から2番目の「サービス・エクスプローラ」という名前のアイコン)をクリックして、サービス・エクスプローラ・ウィンドウにアクセスします。

    フィールド
    名前 SelectManufacturing
    WSDLファイル 「サービス・エクスプローラ」の懐中電灯アイコンをクリックし、BPELサービスmy_ integration_server_connection「プロセス」「デフォルト」→「SelectManufacturing」の順に開いて選択することで次のURLにアクセスします。

    http://localhost:8888/orabpel/default/SelectManufacturing/SelectManufacturing?wsdl

    関連項目: サービス・エクスプローラ・ウィンドウでWSDLファイルを追加しようとして解析エラーが表示された場合は、「Oracle JDeveloperのWebブラウザ設定でのホスト名の設定」を参照してください。

    パートナ・リンク・タイプ SelectManufacturing
    パートナ・ロール SelectManufacturingProvider
    マイ・ロール SelectManufacturingRequester

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

  6. 「ファイル」メイン・メニューから「保存」を選択します。

4.2.3 Flowアクティビティの作成


概要:

ここでは、Flowアクティビティを作成します。このアクティビティにRapid DistributorsおよびSelect Manufacturingの両サプライヤに対するInvokeアクティビティとReceiveアクティビティを配置します。Flowアクティビティは、2つのサプライヤを並行して呼び出すために必要です。価格の見積りのために、注文の明細項目が2つのサプライヤに渡されます。

  1. 「コンポーネント・パレット」セクションから「Process Activities」を選択します。

  2. 「コンポーネント・パレット」セクションから「GetCreditRating」Scopeアクティビティの下にFlowアクティビティをドラッグ・アンド・ドロップします。

  3. 「+」記号をクリックして、Flowアクティビティを開きます。

    obph3dnd1.gifの説明
    図obph3dnd1.gifの説明

  4. 菱形をダブルクリックしてFlowウィンドウを表示します。

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

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

  7. 第3章「非同期サービスの呼出し」で作成した次のアクティビティを、「GetPriceQuote」Flowアクティビティの右パネルにドラッグ・アンド・ドロップします。一度に1つのアクティビティをドラッグし、次の順序で配置します。

    • assignRDIn

    • invokeRD

    • receiveRD

    obph3dnd2.gifの説明
    図obph3dnd2.gifの説明

  8. 「ファイル」メイン・メニューから「保存」を選択します。

4.2.4 InvokeおよびReceiveアクティビティの作成

  1. 「コンポーネント・パレット」セクションから「GetPriceQuote」Flowアクティビティの左パネルにInvokeアクティビティをドラッグ・アンド・ドロップします。

    obph3dnd3.gifの説明
    図obph3dnd3.gifの説明

  2. Invokeアイコンをダブルクリックして、Invokeウィンドウを表示します。

  3. 次の詳細を入力します。

    フィールド
    名前 invokeSM
    パートナ・リンク SelectManufacturing

    「操作」フィールドには、値(initiate)が自動的に入力されます。

  4. 「入力変数」フィールドの右側にある最初のアイコンをクリックします。これは変数自動作成アイコンです。

    autocreate.gifの説明
    図autocreate.gifの説明

  5. 表示される変数の作成ウィンドウで「OK」をクリックします。

    「入力変数」フィールドに、invokeSM_initiate_InputVariableという名前の変数が自動的に作成されます。この変数には、自動的にSelectManufacturingRequestMessageメッセージ・タイプが割り当てられます。

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

  7. 作成した「invokeSM」Invokeアクティビティの下にReceiveアクティビティをドラッグ・アンド・ドロップします。

    obph3dnd4.gifの説明
    図obph3dnd4.gifの説明

  8. Receiveアイコンをダブルクリックして、Receiveウィンドウを表示します。

  9. 次の詳細を入力します。

    フィールド
    名前 receiveSM
    パートナ・リンク SelectManufacturing

    「操作」フィールドには、値(onResult)が自動的に入力されます。

  10. 「変数」フィールドの右側にある最初のアイコンをクリックします。これは変数自動作成アイコンです。

  11. 表示される変数の作成ウィンドウで「OK」をクリックします。

    「変数」フィールドに、receiveSM_onResult_InputVariableという名前の変数が自動的に作成されます。この変数には、自動的にSelectManufacturingResponseMessageメッセージ・タイプが割り当てられます。

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

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

4.2.5 Assignアクティビティの作成


概要:

ここでは、価格見積りのために、Select Manufacturingサプライヤに顧客の注文明細項目を渡すAssignアクティビティを作成します。

  1. 「コンポーネント・パレット」セクションから「GetPriceQuote」Flowアクティビティの左パネルにある「invokeSM」Invokeアクティビティの上に、Assignアクティビティをドラッグ・アンド・ドロップします。

    obph3dnd5.gifの説明
    図obph3dnd5.gifの説明

  2. assignアイコンをダブルクリックして、割当てウィンドウを表示します。

  3. 「一般」タブをクリックします。

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

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

  6. 「コピー操作」タブをクリックします。

  7. 「作成」をクリックし「コピー操作」を選択して、コピー操作の作成ウィンドウを表示します。

  8. 次の詳細を入力します。

    フィールド
    送信元
    • タイプ
    変数
    • 変数
    「変数」「inputVariable」「ペイロード」「ns1:PurchaseOrder」「ns1:OrderItems」の順に開いて選択します。

    注意: このネームスペースの数値(ns1ns2など)は変わる場合があります。自動的に表示されるネームスペース値を使用してください。

    宛先
    • タイプ
    変数
    • 変数
    「変数」「invokeSM_initiate_InputVariable」「ペイロード」「ns1:OrderItems」の順に開いて選択します。

  9. 「OK」をクリックして、コピー操作の作成ウィンドウおよび割当てウィンドウを閉じます。

    Designerのウィンドウには次のように表示されます。

    obph3flowex.gifの説明
    図obph3flowex.gifの説明

  10. -記号をクリックして「GetPriceQuote」Flowアクティビティを閉じます。チュートリアルのこのフェーズでは、recieveSM_onResult_InputVariableの受信データを別の変数に明示的にコピーする追加のAssignアクティビティは作成しません。

  11. 「ファイル」メイン・メニューから「保存」を選択します。

    完了後、Designerのウィンドウには次のように表示されます。

    obph3.gifの説明
    図obph3.gifの説明

4.2.6 Order Bookingプロセスの検証、コンパイルおよびデプロイ

  1. 「アプリケーション・ナビゲータ」セクションに移動します。

  2. 「OrderBooking」を右クリックします。

  3. 「デプロイ」my_integration_server_connection「defaultドメインにデプロイ」の順に選択します。

  4. プロンプトが表示されたら、プロジェクトのバージョン番号を増分(たとえば、1.2と入力)し、「OK」をクリックします。

    これでBPELプロセスがコンパイルされます。 ウィンドウ下部のボタンをクリックしてエラーの有無を確認します。エラーが発生していなければ、デプロイは成功しています。 デプロイに失敗した場合は、手順4を参照してください。

4.2.7 Order Bookingプロセスの実行

  1. 「スタート」「すべてのプログラム」「Oracle - Oracle_Home「Oracle BPEL Process Manager」「BPEL Control」の順に選択し、Oracle BPEL Controlにアクセスします(すでに開いている場合はページをリフレッシュします)。

  2. Oracle BPEL Controlにログインするために次の情報を入力して「ログイン」をクリックします。

    フィールド
    ユーザー名 oc4jadmin
    パスワード password

    passwordは、インストール時に「Oracle Application Server SOA Suiteのインストール」で入力した値です。

    Oracle BPEL Controlの「ダッシュボード」タブが表示されます。

  3. 「デプロイ済のBPELプロセス」リストで、手順4で増分したOrderBookingバージョンをクリックします。

  4. 「HTMLフォーム」のすべてのフィールドに詳細を入力します。テキスト・エディタを使用して、OrderBookingPO_1.xmlファイルの内容からこれらの詳細をコピーし、貼り付けることもできます。


    注意:

    Internet ExplorerまたはMozilla Firefoxからコピーして貼り付けないでください。このタスクは、テキスト・エディタを使用して実行する必要があります。

    1. 「XMLソース」ラジオ・ボタンをクリックします。

    2. 表示されたフィールドに、OrderBookingPO_1.xmlの内容をコピーして貼り付けます。

  5. 「XMLメッセージの転送」をクリックします。

    「BPELプロセス」タブに次のようなメッセージが表示されます。

    テスト・インスタンスが開始されました
    
    
  6. 画面上部の「インスタンス」タブをクリックします。

  7. OrderBookingCreditRatingServiceSelectManufacturingおよびRapidDistributorsインスタンスが作成されたことを確認します。これらはすべて「インスタンス」リストに表示されます。「最終更新日時」リストには、作成日時が表示されます。CreditRatingServiceおよびRapidDistributorsインスタンスは自動化されたサービスであるため、比較的早く完了します。 SelectManufacturingは実行後、ユーザー入力の完了まで待機します。

  8. 「インスタンス」リストで、手順4で増分したOrderBookingインスタンスをクリックします。

    次のようなメッセージが表示されます。

    The state of this instance is Active
    
    
  9. 「監査」リンクをクリックして、インスタンスの実行プロセスを調べます。SelectManufacturingサービスが保留されています。RapidDistributorsサービスは完了しています。

  10. 「フロー」リンクをクリックします。パラレル・フロー・ロジックは、RapidDistributorsブランチでは完了し、SelectManufacturingブランチでは待機中です(次の図で強調表示されています)。

    obph3sel.gifの説明
    図obph3sel.gifの説明

    アクティビティのこの部分にアクセスし、価格設定のためユーザーにこの部分を公開し、タスク完了のためユーザー・データを使用してプロセスを実行するには、ブラウザからタスクを呼び出す必要があります。

    サンプルJSPページとユーザー・プレゼンテーションが事前に作成され、SelectManufacturingUIとしてデプロイされています。JSPページには、ユーザー・アクションを待機中のタスクのリストが表示されます。

  11. Internet ExplorerまたはMozilla Firefoxを使用して、事前作成済のJSP Select Manufacturingアプリケーションにアクセスします。

    http://localhost:8888/SelectManufacturingUI
    
    
  12. jcooper/welcome1としてログインします。

  13. 「Title」の下の注文をクリックします。

    obph3selui.gifの説明
    図obph3selui.gifの説明

  14. 「Price」フィールドに価格を入力し、「Quote」をクリックします。これで、JSPのフォーム送信メッセージが送信され、タスクが完了します。処理後、タスクが完了したことを知らせるメッセージが表示されます。

  15. 「Logout」をクリックします。

  16. Oracle BPEL Controlに戻ります。

  17. 画面上部の「インスタンス」タブをクリックします。

  18. OrderBookingインスタンスをクリックします。

    次のようなメッセージが表示されます。

    The state of this instance is Completed
    
    
  19. 「監査」および「フロー」リンクをクリックし、OrderBookingプロセス・インスタンスの実行を最後まで確認します(各サプライヤの価格見積りを確認します)。

4.3 まとめ

ここでは、非同期BPELプロセスをコールして、2つのサービスからクライアントからの注文に対するサプライヤ価格を受け取るパラレル・フロー・ロジックを作成しました。次の主要タスクを実行しました。