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

戻る
戻る
次へ
次へ
 

5 条件分岐ロジックの追加

この章では、条件分岐ロジックの作成方法について説明します。

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

5.1 概要

チュートリアルのこのフェーズでは、第4章「パラレル・フローの追加」で設計したOrderBookingプロセスに処理を追加します。このフェーズを実行する前に、前のフェーズが正常に完了したことを確認してください。チュートリアルのこのフェーズでは、最低価格を提示したサプライヤを選択する条件分岐ロジックを作成します。次の主要タスクを実行します。

5.2 Order Bookingチュートリアルへの条件分岐ロジックの追加

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

5.2.1 Switchアクティビティの作成


概要:

2つの提示額を比較し、その比較に基づいて決定を下すには、BPELフローにSwitchアクティビティが必要です。 Switchアクティビティには、2つのブランチ(<case><otherwise>)が含まれます。 最初のブランチは、(<case>ブランチ内で)定義された条件が満たされた場合に実行されます。 満たされなかった場合は、<otherwise>ブランチが実行されます。

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

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

  3. Switchアクティビティの疑問符をダブルクリックして、Switchウィンドウを表示します。

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

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

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

  7. <case>をダブルクリックして、Switch Caseウィンドウを表示します。

  8. 「名前」フィールドに次の文字列を入力します。

    'Is the Rapid Distributors price less than the Select Manufacturing price?'
    
    
  9. 「式」フィールドで[Ctrl]キー、スペース・バーの順に押して、表示されるリストから次の構文を選択(ダブルクリック)します。必要に応じて編集します。情報を入力すると、末尾にスラッシュが表示される場合があります。これは、追加情報の入力が求められていることを意味します。追加情報を入力するか、[Esc]キーを押して末尾のスラッシュを削除し、情報の入力を終了します。

    bpws:getVariableData('receiveRD_onResult
    _InputVariable','payload','/ns1:SupplierInfo/ns1:SupplierPrice')
    < bpws:getVariableData('receiveSM_onResult&#
    095;InputVariable','payload','/ns1:SupplierInfo/ns1:SupplierPrice')
    
    
  10. 「OK」をクリックします。

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

5.2.2 Rapid DistributorsサービスのCaseブロックの下にAssignアクティビティを作成


概要:

このAssignアクティビティは、入力する注文の変数のサプライヤ部分にRapid Distributorsサプライヤを割り当てます。

  1. 「コンポーネント・パレット」セクションから、「SelectSupplier」Switchアクティビティの<case>セクションの下にAssignアクティビティをドラッグ・アンド・ドロップします。

  2. Assignアクティビティをダブルクリックします。

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

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

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

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

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

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


    注意:

    式を手動で入力するかわりに、「式」フィールドで[Ctrl]キーを押しながら[Space]バーを押して入力することもできます。表示される値のリストをスクロールし、該当する値をダブルクリックします。必要に応じて値を編集します。情報を入力すると、末尾にスラッシュが表示される場合があります。これは、追加情報の入力が求められていることを意味します。追加情報を入力するか、[Esc]キーを押して末尾のスラッシュを削除し、情報の入力を終了します。

    フィールド
    送信元
    • タイプ
    concat(bpws:getVariableData('inputVariable','payload','/ns1:PurchaseOrder/ns1:OrderInfo/ns1:OrderComments'), ' - Selected: Rapid Distributors')

    注意: [Ctrl]キー、スペース・バーの順に押して、表示されるリストからこの構文を選択(ダブルクリック)します。ネームスペースの数値(ns1ns2など)は変わる場合があります。
    自動的に表示されるネームスペース値を使用してください。末尾のスラッシュ(/)を削除します。

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

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

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

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

  12. 次の詳細を入力して、2番目の文を作成します。

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

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

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

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

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

5.2.3 Select ManufacturingのOtherwiseブロックの下にAssignアクティビティを作成


概要:

このAssignアクティビティは、入力する注文の変数のサプライヤ部分にSelect Manufacturingサプライヤを割り当てます。

  1. 「コンポーネント・パレット」セクションから、「SelectSupplier」Switchアクティビティの<otherwise>セクションの下にAssignアクティビティをドラッグ・アンド・ドロップします。

  2. Assignアクティビティをダブルクリックします。

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

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

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

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

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

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


    注意:

    式を手動で入力するかわりに、「式」フィールドで[Ctrl]キーを押しながら[Space]バーを押して入力することもできます。表示される値のリストをスクロールし、該当する値をダブルクリックします。必要に応じて値を編集します。情報を入力すると、末尾にスラッシュが表示される場合があります。これは、追加情報の入力が求められていることを意味します。追加情報を入力するか、[Esc]キーを押して末尾のスラッシュを削除し、情報の入力を終了します。

    フィールド
    送信元
    • タイプ
    concat(bpws:getVariableData('inputVariable','payload','/ns1:PurchaseOrder/ns1:OrderInfo/ns1:OrderComments'), ' - Selected: SelectManufacturing')

    注意: [Ctrl]キー、スペース・バーの順に押して、表示されるリストからこの構文を選択(ダブルクリック)します。ネームスペースの数値(ns1ns2など)は変わる場合があります。
    自動的に表示されるネームスペース値を使用してください。末尾のスラッシュ(/)を削除します。

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

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

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

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

  12. 次の詳細を入力して、2番目の文を作成します。

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

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

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

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

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

    obph4.gifの説明
    図obph4.gifの説明

  14. 「-」記号をクリックして Switchアクティビティを閉じます。

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

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

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

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

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

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

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

5.2.5 Order Bookingプロセスの実行

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

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

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

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

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

  3. 次のいずれかの方法で、手順4で増分したOrderBookingインスタンス・バージョンを起動します。

    • 「デプロイ済のBPELプロセス」リストで「OrderBooking」をクリックし、HTMLフォームのすべてのフィールドに詳細を入力して「XMLメッセージの転送」をクリックします。

    • 「デプロイ済のBPELプロセス」リストで「OrderBooking」をクリックし、「XMLソース」ラジオ・ボタンをクリックします。テキスト・エディタを使用して、OrderBookingPO_1.xmlファイルの内容をコピーし、表示されるフィールドに貼り付けます。「XMLメッセージの転送」をクリックします。


      注意:

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

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

    テスト・インスタンスが開始されました
    
    
  4. 手順11で説明したグラフィカル・ユーザー・インタフェースJSPページを使用して、SelectManufacturingの手動価格見積りタスクを完了します。

  5. Oracle BPEL Controlに戻ります。

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

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

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

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

  10. アクティビティの詳細を表示するには、各シーケンスの「MORE」リンクをクリックします。

  11. 条件分岐の結果、見積り価格の値、条件ロジックの実行パスを確認します。(同様のインスタンス管理は、「フロー」リンクの下でグラフィカルに行うこともできます。)

5.3 まとめ

ここでは、最低価格を提示したサプライヤを選択する条件分岐ロジックを作成しました。次の主要タスクを実行しました。