ヘッダーをスキップ
Oracle SOA Suiteクイック・スタート・ガイド
10g(10.1.3.1.0)
B31832-01
  目次へ
目次
索引へ
索引

前へ
前へ
 
次へ
次へ
 

3 SOA Order Bookingアプリケーションの実行と監視

この章では、SOA Order Bookingアプリケーションの使用方法について説明します。 Webクライアントに関する3つの異なる注文シナリオと、SOA Order Bookingビジネス・フローを介した注文プロセスの監視方法についても説明します。

項目は次のとおりです。

3.1 $1000を超える注文の発行

このシナリオでは、事前定義されたユーザーskingとして、$1000を超える注文を発行し、その注文が処理される様子を監視します。 デフォルトでは、skingような「Gold」ステータスの顧客による$1000を超える注文には、手動による承認が必要です。 この承認は、承認権限を持つGlobal Companyの社内スーパーバイザーであるjcooperにルーティングされます。

このシナリオでは、次のタスクを実行します。

3.1.1 タスク1: Oracle BPELワークリスト・アプリケーションの起動

$1000を超える注文の場合、Order Booking BPELプロセス(SOAOrderBooking)は、注文を入力した人のマネージャにメッセージをルーティングするためにヒューマン・ワークフローを起動します。 ここでは、Oracle BPELワークリスト・アプリケーションを介して、承認がjcooperにルーティングされます。

ワークリスト・アプリケーションを起動する手順は、次のとおりです。

  1. 「スタート」「すべてのプログラム」「Oracle - Oracle - soademo」「Oracle BPEL Process Manager」「Worklist Application」の順に選択します。

  2. プロンプトが表示された場合は、「ユーザー名」フィールドに「jcooper」、「パスワード」フィールドに「welcome1」と入力します。

    jcooperは、定義済のOracle BPEL Process Manager管理者です。

  3. 「ログイン」をクリックします。

    「ユーザー・タスク」タブに、現在割り当てられているワークリスト・タスクがないことが示されます。

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

  4. 今後のタスクで必要になるため、ワークリスト・アプリケーションは実行中のままにします。

3.1.2 タスク2: Webクライアントでの注文の発行

注文プロセスは、ユーザーが参照して製品を注文するWebクライアントアプリケーションから開始されます。 このWebアプリケーションによって、Order Booking ESB(OrderBookingESB)フローが開始され、SOAOrderBookingプロセス・フローが起動されます。 BPELフローによって、実際の注文プロセスが処理されます。

新規の注文を発行するには、Webクライアントを次の手順で実行します。

  1. 次のURLを指定します。

    http://localhost:8888/soademo
    
    

    Webクライアント用のApplication Loginページが表示されます。

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

  2. 「Email」フィールドに「sking@soademo.org」、「Password」フィールドに「welcome1」と入力します。

    skingは、事前定義された「Gold」ステータスのユーザーです。 「Gold」ステータスの顧客の場合、$1000を超える注文に対して手動による承認が必要です。

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

    ようこそページが表示されます。

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

  4. 「Browse products and create a new order」リンクをクリックします。

    Browse and Select Itemsページが表示されます。

  5. 「Next 10」をクリックし、「Ipod Mini 2 Gb」を選択します。

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

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

    Item Detailsページが表示されます。 製品に関する詳細情報が表示されます。ユーザーは、数量を選択し、その製品をカートに追加できます。

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

  7. 「Quantity」リストから「10」を選択し、「Add to cart」をクリックします。

  8. 「Go to Shopping Cart」をクリックします。

    Shopping Cart Contentsページが表示されます。

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

  9. 「Place Order」をクリックし、注文を発行します。

    ようこそページが更新され、「Order Submitted」メッセージが表示されます。

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

3.1.3 タスク3: Oracle Enterprise Manager 10g BPEL Control(Oracle BPEL Control)での注文の表示

注文を発行した後、メッセージは、SOAOrderBookingプロセスを開始したOrderBookingESBに送信されています。 そのBPELプロセスの進行状況は、Oracle Enterprise Manager 10g BPEL Control(Oracle BPEL Control)から監視できます。

SOAOrderBookingプロセスのモニターを表示する手順は、次のとおりです。

  1. 「スタート」「すべてのプログラム」「Oracle - Oracle - soademo」「Oracle BPEL Process Manager」「BPEL Control」の順に選択して、Oracle BPEL Controlにログインします。

  2. プロンプトが表示された場合は、「ユーザー名」フィールドに「oc4jadmin」、「パスワード」フィールドに「welcome1」と入力します。

    Oracle BPEL Controlの「ダッシュボード」タブが表示されます。 「名前」列には、このサーバーにデプロイされているすべてのBPELプロセスがリストされます。 これらのプロセスをクリックすることで、テストの目的でプロセスを起動する管理アクティビティを実行できます。 ここでは、これらのプロセスのうち、実行中の特定インスタンスを表示します。

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

  3. 「インスタンス」タブをクリックします。

    このタブには、すべてのインスタンスがリストされます。 緑色のチェックマークが付いたインスタンスは完了しています。付いていないインスタンスは進行中です。 発行した注文は、完了していません。

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

  4. 「最終更新日時」列のタイムスタンプを使用して、SOAOrderBookingの最新インスタンスを検索し、「インスタンス」列の「nnn : Instance #nnn of SOAOrderBooking」(nnnは特定の番号)をクリックしてインスタンスを選択します。 以前に他の注文が発行されている場合は、複数のインスタンスが表示されます。

    リンクが表示されない場合は、ページをリフレッシュします。 サーバーの起動後、BPELプロセスを初めて実行する際は、すべてを初期化する必要があるため、サーバーの速度が低下することがあります。

    選択したインスタンスのインスタンス情報が表示されます。 インスタンスでは、様々なタスクおよび処理を実行できます。

  5. このインスタンスを視覚的に表現するには、「フロー」サブタブをクリックします。

    このビューを使用すると、プロセスの進行状況を表示できます。

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

    フローの各アイコンは、アクティビティと呼ばれます。 アクティビティをクリックすると、その詳細を表示できます。

  6. 最初のアクティビティである、青色の円の「receiveInput」receiveアクティビティをクリックします。

    アクティビティ監査証跡ウィンドウに、このアクティビティに関連付けられているXMLが表示されます。

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

    この監査証跡には、クライアントのWebページからESBを介して取得されたBPELプロセス・インスタンスへのXML入力が表示されます。 次の点に注意してください。

    • CustIdの10: 注文を発行した顧客のIDを表しています。

    • EmailAddresssking@soademo.org: ログインで使用した電子メール・アドレスを示します。

    • <OrderItems>要素: 注文した品目が表示されます。

    使用されているXMLネームスペースが緑色のテキストで表示されます。これは無視してかまいません。

  7. アクティビティ監査証跡ウィンドウを閉じて、フロー・ダイアグラムに戻ります。

    「receiveInput」の下に、灰色のボックスの「InsertOrderIntoDB」が表示されます。このボックスには、複数のアクティビティが格納されています。 InsertOrderIntoDBは1つのスコープで、複数のアクティビティを論理的なチャンクにグループ化します。 これによりInsertOrderIntoDBのすべてのアクティビティは、データベースへの注文の書込みに関連付けられています。

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

  8. 「GetOrderId」invokeアクティビティをクリックして、アクティビティ監査証跡ウィンドウでXML情報を表示します。

    invokeアクティビティは、サービスを起動するために使用します。 ここでは、この注文に対する一意の注文番号を生成するためにサービスがコールされます。 番号は、<order_seq_id_gen.nextval>要素に戻されます。 この番号が、生成された注文IDになります。

  9. アクティビティ監査証跡ウィンドウを閉じて、フロー・ダイアグラムに戻ります。

  10. 「InsertOrder」invokeアクティビティをクリックして、アクティビティ監査証跡ウィンドウでXML情報を表示します。

    このinvokeアクティビティは、データベースにレコードを実際に書き込むデータベース・アダプタを起動しています。 データベース・アダプタは、invokeアクティビティを使用して、この機能をサービスとして公開します。

    アクティビティ監査証跡ウィンドウに表示されるXMLは、データベースに書き込まれるデータを示しています。 <ordid>は、前の手順で表示した番号に設定されていることを確認してください。 また、入力データから取得した他のデータも、このプロセスに受信されていることを確認してください。

  11. アクティビティ監査証跡ウィンドウを閉じて、フロー・ダイアグラムに戻ります。

  12. 「CustomerService」スコープで、「GetCustInfo」invokeアクティビティをクリックします。

    <customerServiceRequest>要素には、サービスにそのサービスの入力として渡されたデータが表示されます。 ここでの<custid>は、この注文を発行した顧客のIDである10です。

    このサービスは同期(非同期ではなく)で起動されているため、入力と出力の両方が表示されます。

  13. アクティビティ監査証跡ウィンドウを閉じて、フロー・ダイアグラムに戻ります。

  14. 「CreditService」スコープで、「InvokeCreditService」invokeアクティビティをクリックします。

    ビジネス・プロセスの定義にはBPELが使用されることを思い出してください。 このサービスは、クレジット・カード情報を入力として取得し、クレジット・カードの有効性に応じて、trueまたはfalseを戻します。

    このサービスは同期起動のため、リクエスト・データとレスポンス・データが表示されます。 リクエスト・データは、<validateRequest>要素内にあります。 前の手順で取得したクレジット・カード情報が発行されます。

    <validateResponse>要素には、サービスによって、この顧客のクレジット・カードが有効であることを意味するtrueが戻されています。

  15. アクティビティ監査証跡ウィンドウを閉じて、フロー・ダイアグラムに戻ります。

  16. フロー・ダイアグラムの終わり近くにある「DecisionService」アクティビティまでスクロールします。

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

    このデシジョン・サービス・アクティビティは、実行時の動的な決定に対してルール・エンジンを起動することを示しています。 以前に説明したように、この顧客が「Platinum」ステータスの顧客でないかぎり、$1000を超える注文には、マネージャの承認が必要です。 skingは「Gold」ステータスの顧客であるため、手動による承認が必要です。

  17. 「+」アイコンをクリックしてデシジョン・サービス・スコープを開き、「起動」アイコンをクリックします。これにより、ルール・エンジン・サービスが実際に起動されます。

    <dsIn>要素には、サービスに送信された入力データが格納されています。 この要素内には、価格と顧客のステータスを示す<approve>というサブ要素が表示されます。 この情報は、デシジョン・サービスが決定を下すために必要です。

    注文価格が$1000を超え、この顧客は「Platinum」ステータスの顧客ではないため、デシジョン・サービスは、承認が必要であることを示すtrueを戻します。 この戻り値は、<dsOut>要素内のサービスから表示できます。

    <approvalRequired>true</approvalRequired>

    後のタスクでは、この動作を変更するために、ビジネス・ルールを変更します。

  18. アクティビティ監査証跡ウィンドウを閉じて、フロー・ダイアグラムに戻ります。

  19. プロセス・フローの下部までスクロールし、「ApproveOrder」アクティビティをクリックします。

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

    アクティビティ監査証跡ウィンドウには、XMLのかわりに、このヒューマン・ワークフロー・アクティビティに関する情報が表示されます。

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

    「割当て先」フィールドで、このタスクがSupervisorグループに割り当てられていることに注意してください。

  20. アクティビティ監査証跡ウィンドウを閉じて、フロー・ダイアグラムに戻ります。

    次のタスクでは、承認権限があるユーザーに作業を引き継いで、この注文を承認します。

  21. 今後のタスクで必要になるため、Oracle BPEL Controlは実行中のままにします。

3.1.4 タスク4: Oracle BPELワークリスト・アプリケーションを使用した注文の承認

注文を承認するには、Oracle SOA Suiteのインストール時に提供されたワークリスト・アプリケーションを使用します。

Oracle SOA Suiteの理解が深まると、多機能なAPIを備えたワークフロー・エンジンを使用して、ユーザーが承認および管理タスクを実行できるように、独自のカスタムGUIを作成することもできます。

ワークリスト・アプリケーションを使用して注文を承認する手順は、次のとおりです。

  1. ワークリスト・アプリケーションを実行しているブラウザに移動し、ブラウザの「リフレッシュ」ボタンをクリックします。

    「ユーザー・タスク」タブには、Supervisorグループに割り当てられた注文の承認タスクが表示されます。jcooperは、そのグループに定義されたメンバーです。

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

    ユーザーは、ワークリスト・アプリケーションを使用して、各自のタスク管理、エスカレーションの作成、タスクを自動的に処理するルーティング・ルールの設定、休暇中のタスクの処理方法を伝えるための休暇ルールの作成、レポートの実行などを行うことができます。 この機能のすべては、エンジンAPIに基づいています。 したがって、この機能は、作成したカスタマイズ画面に追加することもできます。

    このタスクはグループに割り当てられているため、グループのユーザーにより取得されることが必要で、同時に複数のユーザーが変更を加えることはできません。

  2. 右側にある「アクション」リストから「申告」を選択し、「実行」をクリックします。

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

    タスクの詳細ページが表示され、承認するかどうかの判断に役立つ注文の詳細が表示されます。 コメントまたは添付ファイルを追加できます。 このシナリオの場合、他のフィールドは編集できませんが、これはこのアプリケーションの場合のみです。 データ・フィールドは編集可能にできます。

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

  3. ページの左上部にある「タスク・アクション」リストから「APPROVE」を選択し、「実行」をクリックします。

    「ユーザー・タスク」タブが更新され、現在割り当てられているワークリスト・タスクがないことが示されます。

3.1.5 タスク5 Oracle BPEL Controlでの承認の表示

  1. Oracle BPEL Controlブラウザ・ウィンドウに戻り、ブラウザの「リフレッシュ」ボタンをクリックします。

  2. 「インスタンス」タブの「フロー」ビューで、以前プロセスを中断した「ApproveOrder」ヒューマン・タスクまでスクロールします。

    このタスクの下には、BPELプロセスが進行したことを示す多くのアクティビティがあることに注意してください。

  3. 「ApproveOrder」アクティビティをクリックし、ワークフロー情報を再度表示します。

    アクティビティ監査証跡ウィンドウには、XMLのかわりに、このヒューマン・ワークフロー・アクティビティに関する情報が表示されます。

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

    タスクで実行されたアクティビティの監査証跡を確認してください。 ここでは、簡潔な承認タスクでした。 ただし、高度なルーティング・ルールと承認チェーンを含む、非常に複雑なワークフロー・タスクも設定できます。 ワークフローの進行状況は、Oracle BPEL Controlまたはワークリスト・アプリケーションから監視できます。

  4. アクティビティ監査証跡ウィンドウを閉じて、フロー・ダイアグラムに戻ります。

  5. 大きいスコープの「SelectSupplier」までスクロールします。

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

    このスコープには、BPELがパラレルで実行できるタスクのフロー・アクティビティが格納されています。 ここでは、必要な品目を最も低い価格で販売できるパートナを判断するために、Rapid ManufacturerとSelect Manufacturerに依頼します。 あるパートナをコールしてレスポンスを待機し、次に、別のパートナをコールしてレスポンスを待機するのでは、意味がありません。 1つのレスポンスの遅れが、プロセスの遅延の原因になる可能性があります。

    フロー・アクティビティを使用すると、BPELでは、これらのリクエストをパラレルで実行し、処理を続行する前にすべてのレスポンスを待機できます。 この場合、フローには2つのパラレル・グループがあります。

    Rapid Manufacturerサービスは同期であるため、使用するinvokeは1つのみです。 Select Manufacturerサービスは非同期です。これは、レスポンスに比較的長い時間がかかる可能性があるためです。 非同期サービスは、同期サービスと同じ方法で起動されますが、戻されるデータは、receiveアクティビティを使用して受信されます。

  6. 「InvokeSelectManufacturer」invokeアクティビティをクリックして、アクティビティ監査証跡ウィンドウでXML情報を表示します。

    アクティビティ監査証跡ウィンドウでは、起動されているサービスへの入力のみが表示されることに注意してください。 さらに、そのサービスに必要な最小限の情報である購入品目と数量のみが送信されます。 顧客の個人的なデータは外部パートナには送信されません。 パートナが見積りを提示するために必要な情報は、数量と品目のみです。

  7. アクティビティ監査証跡ウィンドウを閉じて、フロー・ダイアグラムに戻ります。

  8. 「ReceiveSelectManufacturer」invokeアクティビティをクリックして、アクティビティ監査証跡ウィンドウでXML情報を表示し、「XML文書の表示」リンクをクリックします。

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

    Select Manufacturerサービスから戻されたデータには、サプライヤの名前と価格が表示されています。 次の手順で、Rapid Manufacturerサービスから戻された価格と比較するため、この$1,200という価格を確認しておいてください。

  9. XMLウィンドウを閉じ、アクティビティ監査証跡ウィンドウを閉じてフロー・ダイアグラムに戻ります。

  10. 「InvokeRapidManufacturer」invokeアクティビティをクリックして、アクティビティ監査証跡ウィンドウでXML情報を表示します。

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

    <manufacturerRequest>要素内のサービスへの入力に注目してください。 ここでも、パートナが見積りを提示するために必要な情報のみが示されます。レスポンス・データは<rapidManufacturerResponse>要素内にあります。 Rapid Manufacturerサービスの値は$1,100で、Select Manufacturerよりも低い価格です。

  11. アクティビティ監査証跡ウィンドウを閉じて、フロー・ダイアグラムに戻ります。

  12. フロー・アクティビティの下にある「Switch」アクティビティを参照します。

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

    BPELのswitchアクティビティは、他のプログラム言語でのif-then-elsecaseswitch文に類似しています。 ここで、switchアクティビティは2つの価格を比較して低い価格を選択します。

  13. 次のスコープの「PostFulfillmentReq」までスクロールします。

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

    注文が承認され、製造パートナが選択されたので、ビジネス・プロセスの次のステップは、注文の履行です。これにより実際に製品が顧客に送られます。

    SOAOrderBookingプロセスには、注文を適切な履行先にルーティングするのはFulfillmentESBであることが定義されています。 FulfillmentESBは、「PostFulfillmentReq」アクティビティによって起動されます。

  14. 「PostFulfillmentReq」アクティビティをクリックして、アクティビティ監査証跡ウィンドウでXML情報を表示し、起動されているESBを参照します。

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

    ここで「ここをクリックして、ESBコンソールでこのインスタンスを表示します。」リンクをクリックすることもできますが、このシナリオでは、SOAOrderBookingプロセス・フローの表示を完了することが重要です。

  15. アクティビティ監査証跡ウィンドウを閉じて、フロー・ダイアグラムに戻ります。

  16. 次のスコープの「SetFinalOrderStatus」「NotifyCustomer」までスクロールします。

    これらのスコープでは、データベースがサプライヤ情報によって更新され、注文の詳細を電子メールで顧客に送信する通知サービスが起動されます。

  17. 「callbackClient」invokeアクティビティまでスクロールします。

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

    このアクティビティが最終ステップです。 BPELプロセスがあるときは、サービスもあることに注意してください。 サービスには、データを戻すサービスと戻さないサービスがあります。 ここでのBPELプロセスは、データを戻しません。 ただし、データを戻すBPELプロセスもあり、そのデータは最終アクティビティをクリックすることで表示できます。

3.1.6 タスク6: Oracle Enterprise Manager 10g ESB Controlでのインスタンスの表示

  1. Oracle Enterprise Manger 10g ESB Control(Oracle ESB Control)には、「スタート」「すべてのプログラム」「Oracle - Oracle - soademo」「Oracle ESB」「ESB Console」の順に選択してログインします。

  2. プロンプトが表示された場合は、「ユーザー名」フィールドに「oc4jadmin」、「パスワード」フィールドに「welcome1」と入力します。

    最初の画面には、使用可能なサービスとその定義が表示されます。 これらのサービスは、複数の論理グループにグループ化されています。

  3. 「OrderBooking」の下にある「OrderBookingProcess」をクリックします。

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

    Oracle ESB Controlには、開始されたBPELプロセスが表示されます。 灰色のボックスの「OrderBooking」は、メッセージをルーティングするルーティング・サービスを表しています。 ここでは、ルーティング・サービスは、青色のボックスの「OrderBooking」で示された、BPELプロセスを開始する1つのメッセージのみをルーティングします。

  4. 「Fulfillment」の下にある「OrderFulfillment」をクリックします。

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

    このサービスは、さらに複雑です。 メッセージは、注文を処理するSOAOrderBookingのBPELプロセスから来ます。 「OrderFulfillment」は、そのメッセージを「Shipment」ルーティング・サービスと「FulfillmentBatch」の2つ場所にルーティングします。 「FulfillmentBatch」は、夜間バッチ処理の履行注文すべてを格納するためのJMSキューです。

    「Shipment」ルーティング・サービスは、適切な出荷サービスが使用されていることを確認します。 $500を超える注文では、Fedex(「FedexShipment」)が使用されます。 それ以外の場合は、USPS(「USPSShipment」)が使用されます。 Oracle ESBでは、コンテンツ・ベースのルーティングがサポートされているので、メッセージを調査し、その注文価格を使用してメッセージを適切な宛先にルーティングすることができます。

  5. 画面上部の右側にある「インスタンス」アイコンをクリックします。

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

    「インスタンス」ペインが左側に表示されます。

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

  6. リストの1番上のインスタンスをクリックします。

    Fulfillmentフローが表示されます。 ESBサービスのランタイム・インスタンスと、メッセージが通ったパスが緑色で表示されます。 ここでは、「OrderFulfillment」が、「FulfillmentBatch」「FedexShipment」サービスの両方を起動していることに注意してください。

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

  7. USPS用の「Shipment」ルーティング・サービスのフィルタ・アイコン上にマウスを置きます。

    OrderPrice < 500」が表示されます。これは、このサービスが、注文価格が$500未満の場合に起動されることを意味します。この注文価格は$500以上だったため、このサービスは起動されず、灰色で表されています。

  8. 「Shipment」ルーティング・サービスのトランスフォーメーション・アイコンのいずれかの上にマウスを置きます。

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

    このアイコンは、データ・トランスフォーメーションを表しています。 ESBがメッセージをFedexShipmentまたはUSPSShipmentにルーティングする場合、そのデータは特定の書式であることを想定しています。 データは、Global Companyの書式からターゲット・サービスが想定している書式に変換されます。 ここでは、その書式はXSLです。

    XSLはXMLスタイルシートを表し、XMLデータ・トランスフォーメーションを実行する標準的な方法です。 XSLファイルは、JDeveloperまたはサード・パーティのツールを使用して作成できます。

  9. Webクライアント、Oracle BPEL ControlおよびOracle ESB Controlの各ブラウザ・ウィンドウは、実行したままにします。

    これらのアプリケーションは次のタスクで使用します。

3.2 $1000から$2000への承認注文額の引上げと注文の再発行

第1.3項「SOA Order Bookingアプリケーションの概要」で説明したように、SOAOrderBookingプロセスは、デシジョン・サービスを使用して、注文に対して手動による管理者の承認が必要かどうかを判断します。 このデシジョン・サービスは、Oracle Rules Engineのルールを使用して、承認が必要かどうかを判断します。

このシナリオでは、SOA Order Bookingアプリケーションを再デプロイせずに承認金額を$1000から$2000に引き上げます。 $1000を超える注文を発行し、手動による承認なしでその注文が処理される様子を監視します。

このシナリオでは、次のタスクを実行します。

3.2.1 タスク1: Rule Authorを使用した承認注文金額の引上げ

このタスクでは、Oracle Business Rules Rule Authorで承認金額を$1000から$2000に変更します。 Rule Authorを使用すると、ルールを作成または変更して、ルールとともに使用するビジネス・オブジェクトを記述するデータ・モデルを作成できます。

  1. 次のURLを指定して、Rule Authorを開きます。

    http://localhost:8888/ruleauthor
    
    
  2. プロンプトが表示された場合は、「ユーザー名」フィールドに「oc4jadmin」、「パスワード」フィールドに「welcome1」と入力します。

    ようこそページが表示されます。

  3. 「リポジトリ」タブをクリックします。

  4. 「リポジトリ・タイプ」に「File」を選択し、「ファイルの場所」を次の場所に設定します。

    ORACLE_HOME¥j2ee¥home¥applications¥rules_default_SOAOrderBooking_1_0_DecisionService¥DecisionService-web¥WEB_INF¥repository¥sample_repository
    
    
  5. 「接続」をクリックします。

    確認メッセージに、接続の詳細が表示されます。

  6. 「ロード」サブタブをクリックします。

    ディクショナリをロード・ページが表示されます。

  7. 「既存のディクショナリ」リストから「OrderBookingRules」を、「バージョン」リストから「INITIAL」を選択します。

    ディクショナリをロード・ページが表示されます。

  8. 「ロード」をクリックします。

    確認メッセージに、ロードされたディクショナリの詳細が表示されます。

  9. 「ルールセット」タブをクリックします。

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

    「ApproveOrderRequired」という単一のルール・セットが表示されます。このルール・セットには、「platinumMember」「overLimit」および「belowLimit」の3つのルールがあります。

  10. 左側のマージンから「platinumMember」リンクを選択します。

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

    「ルール」セクションには、「platinumMember」のルール定義が指定されています。 「if」セクションでは条件が指定され、「then」セクションではその結果が指定されています。 ここでは、顧客のステータスが「Platinum」の場合、「approvalRequired」false(承認は不要)となります。

  11. 左側のマージンから「overLimit」リンクを選択します。

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

    「ルール」セクションでは、価格が特定の制限を超え、顧客のステータスが「Platinum」でない場合は、承認が必要であることが指定されています。 この制限は、定数のAUTOMATED_ORDER_LIMITで指定されています。

  12. 左側のマージンから「belowLimit」リンクを選択します。

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

    このルールでは、価格が特定の制限より低い場合は承認が不要であることが指定されています。 定数のAUTOMATED_ORDER_LIMITは、overLimitルールで使用されている定数と同じです。

  13. 「定義」タブをクリックします。

    ナビゲーション・ツリーには、使用可能な定義が格納された「定義」フォルダが表示されます。

  14. 「変数(1)」フォルダをクリックします。

    変数サマリー・ページが表示されます。

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

  15. 「DM.AUTOMATED_ORDER_LIMIT」の横にある「編集」アイコンをクリックします。

  16. 「式」テキスト入力領域で、金額を1000から2000に変更します。

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

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

    確認メッセージに、更新ステータスが表示されます。

  18. Rule Authorウィンドウの上部にある「ディクショナリの保存」をクリックします。

  19. ディクショナリの保存を確認するプロンプトに対して、「保存」をクリックします。

    確認メッセージに、ディクショナリの保存ステータスが表示されます。

  20. Rule Authorウィンドウを閉じます。

3.2.2 タスク2: Webクライアントでの注文の発行

注文を発行する手順は、次のとおりです。

  1. ようこそページで、「Browse products and create a new order」リンクをクリックします。

    Browse and Select Itemsページが表示されます。

  2. 「Next 10」リンクをクリックし、「Ipod Mini 2 Gb」を選択します。

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

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

    Item Detailsページが表示されます。 製品に関する詳細情報が表示されます。ユーザーは、数量を選択し、その製品をカートに追加できます。

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

  4. 「Quantity」リストで「10」を選択し、「Add to cart」をクリックします。

  5. 「Go to Shopping Cart」をクリックします。

    Shopping Cart Contentsページが表示されます。

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

  6. 「Place Order」をクリックし、注文を発行します。

    ようこそページが更新され、「Order Submitted」メッセージが表示されます。

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

3.2.3 タスク3: Oracle BPEL Controlでの注文承認の表示

  1. Oracle BPEL Controlブラウザ・ウィンドウに戻ります。

  2. ブラウザの「リフレッシュ」ボタンをクリックします。

    「ダッシュボード」タブには、手動による承認なしで完了したSelectManufacturerフローとSOAOrderBookingフローが表示されます。

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