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

戻る
戻る
次へ
次へ
 

3 非同期サービスの呼出し

この章では、非同期サービスの呼出し方法について説明します。

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

3.1 概要

チュートリアルのこのフェーズでは、第2章「同期サービスの呼出し」で作成したOrderBookingプロセスに処理を追加します。このフェーズを実行する前に、前のフェーズが正常に完了したことを確認してください。このフェーズでは、単純な非同期BPELプロセスを作成します。次の主要タスクを実行します。

3.2 注文に対するサプライヤ価格を受け取る非同期サービスの呼出し

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

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

このチュートリアルで設計するBPELプロセスは、Rapid DistributorsおよびSelect Manufacturingサービスと通信します。まずこれらのサービスを開始し、実行されていることをテストする必要があります。

  1. 「スタート」「すべてのプログラム」「Oracle - Oracle_Home「Oracle BPEL Process Manager」Developer Promptを選択して、SOA_Oracle_Home\bpel\samplesディレクトリでオペレーティング・システムのコマンド・プロンプトを開きます。


    注意:

    このOrder Bookingチュートリアルのすべてのフェーズにおいて、オペレーティング・システムのコマンド・プロンプトを起動する場合は、常にDeveloper Promptを使用してください。他の方法でオペレーティング・システムのコマンド・プロンプトを開いて、チュートリアルのコマンドを実行することはできません。

  2. tutorials\127.OrderBookingTutorial\PriceQuoteサブディレクトリに移動します。

    cd tutorials\127.OrderBookingTutorial\PriceQuote
    
    
  3. 次のコマンドを入力します。

    ant
    
    

    これで、チュートリアルのこのフェーズを使用するために必要なRapid Distributorsサービスがデプロイされ、開始されます。成功すると、最後に次のようなメッセージが表示されます。

    BUILD SUCCESSFUL
    
    

    Select Manufacturingサービスおよびユーザー・アプリケーションも作成されます。これらのサービスは、第4章「パラレル・フローの追加」で使用します。

  4. 「スタート」「すべてのプログラム」「Oracle - Oracle_Home「Oracle BPEL Process Manager」「BPEL Control」を選択して、Oracle BPEL Controlにアクセスし、必要なすべてのサービスが実行されていることを確認します。

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

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

    passwordは、インストール時に入力した値です。

    「ダッシュボード」タブに、「RapidDistributors」および「SelectManufacturing」が表示されている場合、このフェーズのサービスは実行されています。

3.2.2 Rapid Distributorsパートナ・リンクの作成


概要:

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

  1. Oracle JDeveloperに戻ります。

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

  3. 「コンポーネント・パレット」セクションからDesignerウィンドウの右側にPartnerLinkアクティビティをドラッグ・アンド・ドロップします。

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


    注意:

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

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

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

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

    パートナ・リンク・タイプ RapidDistributors
    パートナ・ロール RapidDistributorsProvider
    マイ・ロール RapidDistributorsRequester

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

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

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

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

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

    obph2dnd1.gifの説明
    図obph2dnd1.gifの説明

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

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

    フィールド
    名前 invokeRD
    パートナ・リンク RapidDistributors

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

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

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

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

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

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

    obph2dnd2.gifの説明
    図obph2dnd2.gifの説明

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

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

    フィールド
    名前 receiveRD
    パートナ・リンク RapidDistributors

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

  11. 「変数」フィールドの右側にある最初のアイコンをクリックします。

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

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

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

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

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

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

    obph2dnd3.gifの説明
    図obph2dnd3.gifの説明

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

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

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

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

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

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

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

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

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

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

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

  10. 「ファイル」メイン・メニューから「保存」を選択します。チュートリアルのこのフェーズでは、invokeRD_initiate_InputVariableの受信データを別の変数に明示的にコピーする追加のAssignアクティビティは作成しません。

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

    obph2.gifの説明
    図obph2.gifの説明

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


注意:

このチュートリアルでは、Oracle JDeveloperでBPELプロセスをデプロイする方法を説明しています。 名前とバージョンが同じプロセスをデプロイする際、現在デプロイされているBPELプロセスを上書きするか、新しいバージョン番号にデプロイするかを求めるプロンプトが表示されます。 (このチュートリアルの説明にあるとおり)常に新しいバージョン番号にデプロイするのが最もよい方法です。 同じバージョンのプロセスを再デプロイすると、インスタンスが失効としてとマークされるといった結果になることがあります。

このチュートリアルで、コマンドラインからantを使用してBPELプロセスをデプロイすると、プロンプトは表示されず、プロセスは自動的に上書きされます。 次の手順に従って、プロセスを新しいバージョンにデプロイしてください。

  1. SOA_Oracle_Home\bpel\utilities\ant-orabpel.propertiesファイルを開きます。

  2. revプロパティ値を変更します。 たとえば、rev = 1.0rev = 2.0に変更します。

  3. antコマンドを使用してプロセスをデプロイします。


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

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

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

    デプロイメント・プロパティ・ウィンドウが表示されます。

  4. プロジェクトのバージョン番号を増分(たとえば、1.1と入力)し、「OK」をクリックします。 Oracle BPEL Controlにアクセスすると、OrderBookingプロセスの新しいバージョンが「Order Bookingプロセスの検証、コンパイルおよびデプロイ」で作成したフェーズ1のOrderBookingプロセスのバージョンとともに表示されます。

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

3.2.6 Order Bookingプロセスの実行

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

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

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

    Oracle BPEL Controlの「ダッシュボード」タブが表示されます。OrderBookingプロセスの2つのバージョン、1.01.1が表示されます。 新しいバージョン1.1がデフォルトのバージョンとなるため、右にアスタリスクが表示されます。

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

  4. 「HTMLフォーム」のすべてのフィールドに詳細を入力します。 テキスト・エディタを使用して、手順16OrderBookingディレクトリにコピーしたOrderBookingPO_1.xmlファイルの内容からこれらの詳細をコピーして貼り付ける方法もあります。


    注意:

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

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

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

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

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

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

  7. OrderBookingCreditRatingServiceおよびRapidDistributorsインスタンスが作成されたことを確認します。これらはすべて「インスタンス」リストに表示されます。「最終更新日時」リストには、作成日時が表示されます。

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

  9. 「監査」および「フロー」リンクをクリックして、インスタンスの実行プロセスを調べます。

  10. OrderBookingインスタンスの「監査」リンクの下にあるreceiveRDの右側の「MORE」をクリックします。

  11. 「XML文書の表示」をクリックして、返されたサプライヤ価格(変数receiveRD_onResult_InputVariableに返されます)を確認します。

    obph2onres.gifの説明
    図obph2onres.gifの説明

  12. 異なる段階での他のプロセスの状態および変数値を確認します。


注意:

このチュートリアルでは、RapidDistributorsは常に5000という見積り額を出します。

3.3 まとめ

ここでは、サービスから注文に対するサプライヤ価格を受け取る単純な非同期BPELプロセスを作成しました。次の主要タスクを実行しました。