ヘッダーをスキップ
Oracle SOA Suiteチュートリアル
10g (10.1.3.1.0)
B31831-01
  目次へ
目次

前へ
前へ
 
次へ
次へ
 

7 SelectManufacturerプロジェクトの作成

この章では、SelectManufacturerプロジェクトの作成方法について説明します。 項目は次のとおりです。

7.1 SelectManufacturerプロジェクトの概要

SelectManufacturerプロジェクトは、Select Manufacturerというサプライヤを表します。 顧客が注文を発行すると、その注文はSelect ManufacturerとRapid Distributorsの2社のサプライヤに送信され、両方のサプライヤから見積りが取得されます。 低い見積り金額を提示したサプライヤが、その顧客の注文を履行します。

SelectManufacturerプロジェクトは、非同期のBPELプロセスです。 これは、このプロジェクトに、BPELプロセス・フローを開始するreceiveアクティビティと、フローの最終点で結果(見積り)を使用して非同期でクライアントをコールバックするinvokeアクティビティが含まれていることを意味します。

7.2 SelectManufacturer用の新規BPELプロジェクトの作成

  1. アプリケーション・ナビゲータで、「SOADEMO」アプリケーションを右クリックし、「新規プロジェクト」を選択して新規ギャラリを表示します。

  2. 新規ギャラリの「カテゴリ」セクションで、「General」を開き、「Projects」を選択します。 「項目」の下にある「BPELプロセス・プロジェクト」を選択します。

    図7-1 SelectManufacturerプロジェクト用の新規ギャラリ

    図7-1の説明は次にあります。
    「図7-1 SelectManufacturerプロジェクト用の新規ギャラリ」の説明

    「OK」をクリックします。 BPELプロジェクト作成ウィザードが表示されます。

  3. BPELプロジェクト作成ウィザードのプロジェクトの設定ページで、次の操作を実行します。

    • 名前: 「SelectManufacturer」と入力します。

    • ネームスペース: 「http://www.globalcompany.com/ns/selectservice」と入力します。

    • デフォルトのプロジェクト設定を使用: このオプションを選択します。

    • テンプレート: 「空のBPELプロセス」を選択します。

    図7-2 BPELプロジェクト作成ウィザード - プロジェクトの設定ページ

    図7-2の説明は次にあります。
    「図7-2 BPELプロジェクト作成ウィザード - プロジェクトの設定ページ」の説明

    「終了」をクリックします。

7.3 SelectServiceパートナ・リンクの作成

  1. SelectManufacturer¥bpel¥SelectManufacturer.wsdlファイルを、soademo_101310_prod.zipファイルからSOADEMO¥SelectManufacturer¥bpelディレクトリにコピーします。

  2. 「表示」→「コンポーネント・パレット」の順に選択して、コンポーネント・パレットを表示します。 コンポーネント・パレットは、BPELのアクティビティとサービスを、作成するSelectManufacturerのBPELフローにドラッグ・アンド・ドロップするために必要です。

  3. コンポーネント・パレットのドロップダウンから「Services」を選択します。

  4. コンポーネント・パレットから「Partner Link」アイコンをドラッグして、「サービス」スイムレーンにドロップします。 このアイコンは、左側または右側のいずれにもドロップできます。

  5. パートナ・リンクのダイアログで、次の操作を実行します。

    • 名前: 「SelectService」と入力します。

    • WSDL: 「サービス・エクスプローラ」アイコン(左から2番目)をクリックして、「サービス・エクスプローラ」ダイアログを表示します。 「サービス・エクスプローラ」ダイアログで「プロジェクトのWSDLファイル」を開き、「SelectManufacturer.wsdl」を選択します。

      図7-3 SelectServiceに関する「サービス・エクスプローラ」ダイアログ

      図7-3の説明は次にあります。
      「図7-3 SelectServiceに関する「サービス・エクスプローラ」ダイアログ」の説明

      「サービス・エクスプローラ」ダイアログで、「OK」をクリックします。

    • パートナ・リンク・タイプ: 「SelectService_PL」を選択します(自動的に表示されます)。

    • パートナ・ロール: 「SelectServiceRequester」を選択します。

    • マイ・ロール: 「SelectServiceProvider」を選択します。

    図7-4 SelectServiceに関する「パートナ・リンクの作成」ダイアログ

    図7-4の説明は次にあります。
    「図7-4 SelectServiceに関する「パートナ・リンクの作成」ダイアログ」の説明

  6. 「パートナ・リンクの作成」ダイアログで、「OK」をクリックします。

この時点で、SelectManufacturer.bpelページが次のように表示されていることを確認します。

図7-5 JDeveloperでのSelectManufacturer.bpelページ

図7-5の説明は次にあります。
「図7-5 JDeveloperでのSelectManufacturer.bpelページ」の説明

7.4 SelectManufacturerプロジェクトに対する変数の定義

このステップでは、SelectManufacturerプロジェクトに対してinputVariableoutputVariableという2つの変数を作成します。 プロジェクト・レベルで定義した変数には、プロジェクト内のすべてのアクティビティがアクセスできます。

  1. 「SelectManufacturer」スコープをダブルクリックして、「Process」ダイアログを表示します。 横に表示されている「SelectManufacturer」テキストをダブルクリックすることもできます。

  2. 「Process」ダイアログで、「変数」タブをクリックします。

    図7-6 SelectManufacturerに関する「Process」ダイアログ、「変数」タブ

    図7-6の説明は次にあります。
    「図7-6 SelectManufacturerに関する「Process」ダイアログ、「変数」タブ」の説明

  3. inputVariableという変数を作成します。

    1. 「作成」をクリックして、「変数の作成」ダイアログを表示します。

    2. 「変数の作成」ダイアログで次の値を設定します。

      • 名前: 「inputVariable」と入力します。

      • タイプ: 「メッセージ・タイプ」を選択して懐中電灯アイコンをクリックします。 「タイプの選択」ダイアログが表示されます。

        「タイプの選択」で、「タイプ・エクスプローラ」「メッセージ・タイプ」「パートナ・リンク」「SelectService」「SelectManufacture.wsdl」「メッセージ・タイプ」「RequestQuote_processRequestQuote」の順に開きます。

        図7-7 inputVariableに関する「タイプの選択」

        図7-7の説明は次にあります。
        「図7-7 inputVariableに関する「タイプの選択」」の説明

      「タイプの選択」で「OK」をクリックします。 「変数の作成」ダイアログは次のように表示されます。

      図7-8 inputVariableに関する「変数の作成」ダイアログ

      図7-8の説明は次にあります。
      「図7-8 inputVariableに関する「変数の作成」ダイアログ」の説明

    3. 「変数の作成」ダイアログで、「OK」をクリックします。 「Process」ダイアログに戻ります。 このダイアログに「inputVariable」が表示されていることを確認します。

  4. outputVariableという2番目の変数を作成します。

    1. 「作成」をクリックして、「変数の作成」ダイアログを表示します。

    2. 「変数の作成」ダイアログで次の値を設定します。

      • 名前: 「outputVariable」と入力します。

      • タイプ: 「メッセージ・タイプ」を選択して懐中電灯アイコンをクリックします。 「タイプの選択」ダイアログが表示されます。

        「タイプの選択」で、「タイプ・エクスプローラ」「メッセージ・タイプ」「パートナ・リンク」「SelectService」「SelectManufacture.wsdl」「メッセージ・タイプ」「RequestQuote_processRequestQuoteResponse」の順に開きます。

        図7-9 outputVariableに関する「タイプの選択」

        図7-9の説明は次にあります。
        「図7-9 outputVariableに関する「タイプの選択」」の説明

      「タイプの選択」で、「OK」をクリックします。 「変数の作成」ダイアログは次のように表示されます。

      図7-10 outputVariableに関する「変数の作成」ダイアログ

      図7-10の説明は次にあります。
      「図7-10 outputVariableに関する「変数の作成」ダイアログ」の説明

    3. 「変数の作成」ダイアログで、「OK」をクリックします。

  5. 「Process」ダイアログに、次の2つの変数が表示されていることを確認します。

    図7-11 inputVariableとoutputVariableが表示された「Process」ダイアログ

    図7-11の説明は次にあります。
    「図7-11 inputVariableとoutputVariableが表示された「Process」ダイアログ」の説明

  6. 「Process」ダイアログで、「OK」をクリックします。

  7. 「ファイル」→「保存」の順に選択して、作業内容を保存します。

7.5 receiveアクティビティを経由したクライアントからの注文データの受信

このBPELプロセスの起点として、receiveアクティビティを作成します。 receiveアクティビティは、クライアントからリクエストを受信します(この場合、クライアントは別のBPELプロセスであるSOAOrderBookingプロジェクトです)。このリクエストにはパラメータが含まれています。

  1. コンポーネント・パレットのドロップダウンから「Process Activities」を選択します。

  2. コンポーネント・パレットから「Receive」アクティビティ・アイコンをドラッグして、ページ上の「アクティビティをここにドロップ」ボックス内にドロップします。

  3. 矢印を、新規に作成したreceiveアクティビティからドラッグして、SelectServiceパートナ・リンクにドロップします。 ドラッグすると、receiveアクティビティとパートナ・リンクを接続する線が表示されます。 マウスを放すと、「Receive」ダイアログが表示されます。

  4. 「Receive」ダイアログで、次の操作を実行します。

    • 名前: 「Receive_1」と入力します。

    • パートナ・リンク: 「SelectService」に設定されていることを確認します。 この値は自動的に表示されます。

    • 操作: 「processRequestQuote」に設定されていることを確認します。 この値は自動的に表示されます。

    • 変数: 「変数の参照」アイコン(右側にあるアイコン)をクリックして、「変数の選択」ダイアログを表示します。 「inputVariable」を選択します。

      図7-12 「変数の選択」ダイアログ

      図7-12の説明は次にあります。
      「図7-12 「変数の選択」ダイアログ」の説明

      「変数の選択」で、「OK」をクリックします。

    • インスタンスの作成: このオプションを選択します。

    「Receive」ダイアログは次のように表示されます。

    図7-13 「Receive」ダイアログ

    図7-13の説明は次にあります。
    「図7-13 「Receive」ダイアログ」の説明

  5. 「Receive」ダイアログで、「OK」をクリックします。

    SelectManufacturer.bpelページには、SelectServiceパートナ・リンクからreceiveアクティビティへのリンクが表示されます。

    図7-14 SelectServiceパートナ・リンクからreceiveアクティビティへのリンクが表示されたSelectManufacturer.bpel

    図7-14の説明は次にあります。
    「図7-14 SelectServiceパートナ・リンクからreceiveアクティビティへのリンクが表示されたSelectManufacturer.bpel」の説明

  6. 「ファイル」→「保存」の順に選択して、作業内容を保存します。

7.6 戻す値の割当て

このassignアクティビティでは、Select Manufacturerが見積りを依頼された場合に戻す値を設定します。 このSOA Order Bookingアプリケーションでは処理を簡素化するために、SelectManufacturerのBPELプロセスは、次の2つの値を戻します。

これらの値は、outputVariable変数に設定され、クライアントに戻されます。

  1. コンポーネント・パレットのドロップダウンから「Process Activities」を選択します。

  2. コンポーネント・パレットから「Assign」アクティビティ・アイコンをドラッグして、「Receive_1」アクティビティの下にドロップします。

  3. 新規のAssignインスタンスをダブルクリックして、「Assign」ダイアログを表示します。

  4. 「Assign」ダイアログで、「コピー操作」タブをクリックします。

  5. 「コピー操作」タブで、1番目のコピー操作を作成します。 このコピー操作では、戻す見積りの値を設定します。

    1. 「作成」ドロップダウンから「コピー操作」を選択します。 「コピー操作の作成」ダイアログが表示されます。

    2. 「コピー操作の作成」ダイアログで、次の操作を実行します。

      • 「From」側では、「タイプ」ドロップダウンから「式」を選択します。 「式」ボックスに次のコードを入力します。

        120 * bpws:getVariableData('inputVariable','parameters',
        '/client:processRequestQuoteElement/client:param0/client:quantity')
        
        

        この計算式では、注文の品目数に120を乗算して、見積り価格を算出しています。

      • 「To」側では、「タイプ」ドロップダウンから「Variable」を選択します。 「変数」「プロセス」「変数」「outputVariable」「parameters」「client:processRequestQuoteResponseElement」「client:return」「client:supplierPrice」の順に選択します。 接頭辞(client)がマシンによって異なる場合があることに注意してください。

      「コピー操作の作成」ダイアログが次のように表示されていることを確認します。

      図7-15 サプライヤ価格を戻すための「コピー操作の作成」ダイアログ

      図7-15の説明は次にあります。
      「図7-15 サプライヤ価格を戻すための「コピー操作の作成」ダイアログ」の説明

    3. 「コピー操作の作成」ダイアログで、「OK」をクリックします。

  6. 2番目のコピー操作を作成します。 このコピー操作では、戻す名前を設定します。

    1. 「作成」ドロップダウンから「コピー操作」を選択します。 「コピー操作の作成」ダイアログが表示されます。

    2. 「コピー操作の作成」ダイアログで、次の操作を実行します。

      • 「From」側では、「タイプ」ドロップダウンから「式」を選択します。 「式」ボックスに次のコードを入力します。

        string('SelectDistributors')
        
        
      • 「To」側では、「タイプ」ドロップダウンから「Variable」を選択します。 「変数」「プロセス」「変数」「outputVariable」「parameters」「client:processRequestQuoteResponseElement」「client:return」「client:supplierName」の順に選択します。

      「コピー操作の作成」ダイアログが次のように表示されていることを確認します。

      図7-16 サプライヤ名を戻すための「コピー操作の作成」ダイアログ

      図7-16の説明は次にあります。
      「図7-16 サプライヤ名を戻すための「コピー操作の作成」ダイアログ」の説明

    3. 「コピー操作の作成」ダイアログで、「OK」をクリックします。

      「Assign」ダイアログが次のように表示されていることを確認します。

      図7-17 「Assign」ダイアログ

      図7-17の説明は次にあります。
      「図7-17 「Assign」ダイアログ」の説明

  7. 「Assign」ダイアログで、「OK」をクリックします。

  8. 「ファイル」→「保存」の順に選択して、作業内容を保存します。

SelectManufacturer.bpelページが次のように表示されていることを確認します。

図7-18 assignアクティビティが表示されたSelectManufacturer.bpelページ

図7-18の説明は次にあります。
「図7-18 assignアクティビティが表示されたSelectManufacturer.bpelページ」の説明

7.7 invokeアクティビティを使用したクライアントへの値の戻し

invokeアクティビティでは、outputVariableの値をクライアントに戻します。

  1. コンポーネント・パレットのドロップダウンから「Process Activities」を選択します。

  2. コンポーネント・パレットから「Invoke」アクティビティ・アイコンをドラッグして、「Assign_1」アクティビティの下にドロップします。

  3. 矢印を、新規に作成したinvokeアクティビティからドラッグして、SelectServiceパートナ・リンクにドロップします。 「Invoke」ダイアログが表示されます。

  4. 「Invoke」ダイアログで、次の操作を実行します。

    • 名前: 「Invoke_1」と入力します。

    • パートナ・リンク: 「SelectService」に設定されていることを確認します。

    • 操作: 「processRequestQuoteResponse」を選択します。 この値は自動的に設定されます。

    • 入力変数: 「変数の参照」アイコン(右側にあるアイコン)をクリックして、「変数の選択」ダイアログを表示します。 「変数の選択」で、「変数」→「プロセス」「変数」「outputVariable」の順に選択します。

      図7-19 「入力変数」に関する「変数の選択」

      図7-19の説明は次にあります。
      「図7-19 「入力変数」に関する「変数の選択」」の説明

      「変数の選択」で、「OK」をクリックします。

    「Invoke」ダイアログが次のように表示されていることを確認します。

    図7-20 「Invoke」ダイアログ

    図7-20の説明は次にあります。
    「図7-20 「Invoke」ダイアログ」の説明

  5. 「Invoke」ダイアログで、「OK」をクリックします。

  6. 「ファイル」→「保存」の順に選択して、作業内容を保存します。

SelectManufacturer.bpelページは次のように表示されます。

図7-21 invokeアクティビティが表示されたSelectManufacturer.bpelページ

図7-21の説明は次にあります。
「図7-21 invokeアクティビティが表示されたSelectManufacturer.bpelページ」の説明

7.8 BPELプロセスのデプロイ

  1. アプリケーション・ナビゲータで、「SelectManufacturer」「リソース」の下にある「build.properties」をダブルクリックします。 このファイルには、BPELプロジェクトをデプロイするときに、build.xmlで使用する値が定義されています。

  2. build.propertiesファイルにある次の行を(#文字を削除して)非コメント化します。

    platform=ias_10g
    domain=default
    rev=1.0
    admin.user=oc4jadmin
    admin.password=welcome99
    http.hostname=myAppServerMachine.mydomain.com
    http.port=8888
    j2ee.hostname=myAppServerMachine.mydomain.com
    rmi.port=23793
    opmn.requestport=6005
    oc4jinstancename=home
    
    
  3. 必要に応じて編集します。 太字イタリック体の値は一般的な値であり、変更が必要です。

    rmi.portの値を確認するには、次のコマンドを実行します。

    ORACLE_HOME¥opmn¥bin¥opmnctl status -l
    
    

    ORACLE_HOMEには、Oracle Application ServerのOracleホームを指定します。

    opmn.requestportの値を確認するには、手順6を参照してください。

  4. 「ファイル」→「保存」の順に選択して、変更内容をbuild.propertiesに保存します。

  5. 「SelectManufacturer」「リソース」の下にある)「build.xml」を右クリックし、「Antを実行」を選択します。

  6. 「Antを実行」ダイアログで、「プロパティ」タブをクリックします。

  7. 「プロパティ・ファイル」セクションで、「追加」をクリックします。 「Antプロパティ・ファイルの追加」ダイアログで、SelectManufacturerディレクトリの「build.properties」ファイルを選択して、「開く」をクリックします。

    「Antを実行」ダイアログが次のように表示されていることを確認します。

    図7-22 「プロパティ」タブに、ロードされたbuild.propertiesファイルが表示された「Antを実行」ダイアログ

    図7-22の説明は次にあります。
    「図7-22 「プロパティ」タブに、ロードされたbuild.propertiesファイルが表示された「Antを実行」ダイアログ」の説明

  8. 「OK」をクリックします。 JDeveloperによってAntが実行され、プロジェクトがコンパイルおよびデプロイされます。 エラーが発生した場合は、次の項第7.8.1項「Antを使用したDeveloper Promptからのデプロイ」を参照してください。

7.8.1 Antを使用したDeveloper Promptからのデプロイ

エラーが発生した場合は、build.propertiesファイルに入力した値が正しいことを確認します。

値は正しいが、エラーが発生する場合は、Developer Promptからantを実行してプロジェクトをデプロイできます。

  1. Oracle Application Serverを実行しているマシンで、「スタート」「プログラム」「Oracle - instanceName「Oracle BPEL Process Manager」「Developer Prompt」の順に選択します。 Oracle BPEL Process Manager用に構成されたシェル・ウィンドウが表示されます。

    SelectManufacturerプロジェクトをデプロイするには、Developer Promptのシェル・ウィンドウからantを実行する必要があることに注意してください。 プロジェクトをデプロイするために、通常のオペレーティング・システム・シェルからantを実行することは、サポートされていません。

  2. 「Developer Prompt」ウィンドウで、ディレクトリをSOADEMO¥SelectManufacturerディレクトリに変更します。SOADEMOは、SOA Order Bookingアプリケーションを作成したディレクトリを表します。

    > cd SOADEMO
    > cd SelectManufacturer
    
    

    JDeveloperとOracle Application Serverを異なるマシンで実行している場合は、JDeveloperマシンからOracle Application ServerマシンにSelectManufacturerディレクトリをコピーできます。 このディレクトリは、Oracle Application Serverマシンの任意の場所に配置できます。 Developer Promptでは、このディレクトリに簡単に移動できます。

  3. antを実行します。

    > ant
    
    

7.8.2 Oracle BPEL ControlでのSelectManufacturerの表示

デプロイした後のSelectManufacturerは、Oracle BPEL Controlに表示されます。 Oracle BPEL Controlは、ブラウザに次のURLを入力して表示します。

http://hostname:port/BPELConsole

oc4jadminユーザーでログインします。

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

図7-23 SelectManufacturerが表示されたOracle BPEL Control

図7-23の説明は次にあります。
「図7-23 SelectManufacturerが表示されたOracle BPEL Control」の説明