ヘッダーをスキップ
Oracle Fusion Middleware Oracle SOA Suiteアプリケーションの作成および実行のためのチュートリアル
11g リリース1(11.1.1)
B56240-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

2 サンプル・アプリケーションの実行

この章では、Fusion Order Demoのデプロイ方法、注文の発行方法およびWebLogic Fusion Order Demoアプリケーションで処理中の注文の監視方法について説明します。 Webクライアントに関する2つの異なる注文シナリオと、ビジネス・フローを通じて処理される注文の監視方法について説明します。

この章の指示に従う前に、第1章の手順をすべて実行してください。

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

2.1 Fusion Order Demoアプリケーションのデプロイ

デモを実行するには、ストアフロント・モジュールのアプリケーションとWebLogic Fusion Order Demoアプリケーションをデプロイし、次のタスクを実行します。

2.1.1 タスク1: Fusion Order Demoアプリケーションのスキーマのインストール

サンプル・アプリケーションのスキーマをインストールする手順は、次のとおりです。

  1. Oracle JDeveloper 11gを起動し、メイン・メニューから「ファイル」「開く」の順に選択します。

  2. 「開く」ダイアログで、DEMO_DOWNLOAD_HOME/Infrastructureを参照し、「Infrastructure.jws」を選択します。「開く」をクリックします。

  3. ファイルを11.1.1.1.0フォーマットに移行するように求めるプロンプトが表示された時点で、「はい」をクリックします。 移行が完了した時点で、「OK」をクリックします。

  4. 「アプリケーション・ナビゲータ」で、「MasterBuildScript」「リソース」を順番に開いて「build.properties」をダブルクリックします。

  5. エディタで、次のプロパティを環境にあわせて変更します。

    要素
    jdeveloper.home Oracle JDeveloper 11gがインストールされているルート・ディレクトリ。次に例を示します。

    C:/JDeveloper/11

    jdbc.urlBase データベースのベースJDBC URL(書式はjdbc:oracle:thin:@<yourhostname>)。次に例を示します。

    jdbc:oracle:thin:@foddb-server

    jdbc.port データベースのポート。次に例を示します。

    1521

    jdbc.sid データベースのSID。次に例を示します。

    ORCLまたはXE

    db.adminUser データベースの管理ユーザー。次に例を示します。

    system

    db.demoUser.tablespace Fusion Order Demoユーザー用の表領域名。次に例を示します。

    USERS


  6. JDeveloperのメイン・メニューから、「ファイル」「すべて保存」の順に選択します。

  7. 「アプリケーション・ナビゲータ」で、「リソース」ノードの「build.xml」を右クリックし、「Antターゲットの実行」「buildAll」の順に選択します。

  8. プロンプトに対して、データベースの管理ユーザーのパスワードを入力します。

    buildAllコマンドによりFODユーザーが作成され、FODスキーマに表が移入されます。 「Apache Ant - ログ」に、一連のSQLスクリプトに続いて次のように表示されます。

    buildAll:
    BUILD SUCCESSFUL
    Total time: nn minutes nn seconds
    

    デモ・スキーマおよびスクリプトの詳細は、MasterBuildScriptプロジェクトのREADME.txtファイルを参照してください。

2.1.2 タスク2: ストアフロント・モジュールのデプロイ

ストアフロント・モジュールのStoreFrontUIプロジェクトで、home.jspxページを実行して注文を発行します。 StoreFrontUIプロジェクトでは、表示テクノロジとしてJavaServer Faces(JSF)を使用し、Oracle ADF Modelレイヤーに依存してStoreFrontServiceプロジェクト内のOracle ADF Business Componentsと相互作用します。

図2-1 StoreFrontUIのホーム・ページ

図2-1の説明は次にあります。
「図2-1 StoreFrontUIのホーム・ページ」の説明

このホーム・ページから、匿名ユーザーとしてWebサイトを参照し、登録済顧客としてログインして注文を発行できます。

Fusion Order Demoアプリケーションには、事前定義済の顧客データが付属しています。 Fusion Order DemoアプリケーションにはOracle ADFリソースへのアクセスを管理するOracle ADF Securityが実装されているため、認証済ユーザーのみが自分のカートにある注文を参照できます。 次の表に、事前登録済の顧客を示します。 この章の後半では、ngreenbeとして注文を発行します。

ユーザー名 パスワード アプリケーション・ロール
ngreenbe welcome1 顧客(CUST
sking welcome1 スタッフ(STAFF
pbrown welcome1 サプライヤ(SUPP

ストアフロント・モジュールとその実装の詳細は、『Oracle Fusion Middleware Oracle Application Development FrameworkのためのFusion開発者ガイド』を参照してください。

ストアフロント・モジュールをデプロイする手順は、次のとおりです。

  1. 「ファイル」「開く」の順に選択します。

  2. 「開く」ダイアログで、DEMO_DOWNLOAD_HOME/StoreFrontModuleを参照し、「StoreFrontModule.jws」を選択します。「開く」をクリックします。

  3. ファイルを11.1.1.1.0フォーマットに移行するように求めるプロンプトが表示されたら、「はい」をクリックします。 移行が完了した後、「OK」をクリックします。

    次の図は、アプリケーション・ワークスペースのファイルを開いた後のアプリケーション・ナビゲータを示しています。

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

  4. ストアフロント・モジュールでOrderBookingCompositeコンポジットへの注文の送信に使用されるサービスをデプロイします。

    1. 「アプリケーション・ナビゲータ」で、「StoreFrontModule」を右クリックして「デプロイ」「StoreFrontModule_SDOServices」「デプロイ先」「MyAppServerConnection」の順に選択します。 これは、第1.2.4項「タスク4: Oracle WebLogic Serverへの接続の作成」で作成した接続です。

    2. 「デプロイメント・ターゲットの選択」ダイアログで、Oracle WebLogic Serverの管理対象サーバー(例: soa_server)を選択して「OK」をクリックします。

    3. 「デプロイメント構成」ダイアログで、デフォルトのMDSリポジトリ名とパーティション名を受け入れて「デプロイ」をクリックします。

  5. ストアフロント・モジュールをデプロイします。 「アプリケーション」メニューから、「デプロイ」「StoreFrontModule」「デプロイ先」「MyAppServerConnection」の順に選択します。

2.1.3 タスク3: WebLogic Fusion Order Demoアプリケーションのデプロイ

管理サーバーと管理対象サーバーのあるOracle WebLogic Serverドメインを含んだOracle SOA SuiteインストールにWebLogic Fusion Order Demoアプリケーションをデプロイする手順は、次のとおりです。

  1. 「アプリケーション・ナビゲータ」で「WebLogicFusionOrderDemo」を選択します。

  2. 「bin」「リソース」を順番に開いて「build.properties」をダブルクリックします。

  3. エディタで、次のプロパティを環境にあわせて変更します。

    パラメータ
    oracle.home Oracle JDeveloper 11gがインストールされているルート・ディレクトリ。次に例を示します。

    C:\\Oracle\\Middleware\\jdeveloper\\

    soa.only.deployment false

    注文の発行にOrderSDOCompositeコンポジットを使用する場合は、このプロパティをtrueに設定します。 このチュートリアルでは、注文の発行にストアフロント・モジュールを使用することを前提としています。 したがって、このプロパティをfalseに変更する必要があります。

    admin.server.host アプリケーションをホストするOracle SOA Suiteの管理サーバーのDNS名またはIPアドレス。次に例を示します。

    soahost

    admin.server.port 管理サーバーのポート。次に例を示します。

    7001

    managed.server アプリケーションをホストするOracle SOA Suiteの管理対象サーバーのDNS名またはIPアドレス。次に例を示します。

    soahost

    managed.server.port アプリケーションをホストするOracle SOA Suiteの管理対象サーバーのポート。次に例を示します。

    8001

    server.user Oracle WebLogic Server管理者。次に例を示します。

    weblogic

    server.password Oracle WebLogic Server管理者のパスワード。次に例を示します。

    welcome1

    server.targets 管理対象サーバー名。次に例を示します。

    soa_server

    soa.server.oracle.home アダプタのデプロイメント計画の格納場所。次に例を示します。

    C:\\AS11gR1SOA

    foreign.mds.type Oracleメタデータ・リポジトリの場所。

    デフォルト値jdevのままにしておきます。 次のパラメータの値を指定する必要はありません。

    • jdbc-userid

    • jdbc-password

    • jdbc.url

    値がjdevに設定されている場合、これらのパラメータは無視されます。

    Oracle JDeveloperがインストールされていないサーバーからデプロイする環境では、dbを指定し、jdbc-useridjdbc-passwordおよびjdbc.urlパラメータの値を入力してMDSリポジトリの場所を指定します。


  4. JDeveloperのメイン・メニューから、「ファイル」「すべて保存」の順に選択します。

  5. 「アプリケーション・ナビゲータ」で、「リソース」ノードの「build.xml」を右クリックして「Antターゲットの実行」を選択し、次のantターゲットを順番に選択します。

    ターゲット 説明
    1. setupWorkspaceForJDeveloperUse このスクリプトでは、Oracle JDeveloperにアプリケーション・ワークスペースが設定されます。
    2. seedFodJmsResources このスクリプトでは、Fulfillmentメディエータ用のJMSリソースが移入されます。
    3. seedDemoUsers このスクリプトでは、$2,000を超える注文を承認するユーザーとしてjsteinが追加されます。デモの実行時には、$2,000の注文を発行し、jsteinとしてOracle BPM Worklistにログインして注文を承認します。

    このスクリプトを実行しない場合、OrderProcessor BPELプロセスによりリカバリ可能なエラーが生成され、タスクがweblogic管理者に割り当てられます。

    4. compile-build-all このスクリプトでは、すべてのSOAコンポジットがコンパイルされて構築されます。
    5. compile-deploy-all このスクリプトでは、すべてのSOAコンポジットがコンパイルされて構築され、Oracle SOA Suiteの管理対象サーバーにデプロイされます。

    各ターゲットは、1つ前の順番のターゲットが正常に完了するまで実行しないでください。 次のスクリプトに進む前に、「Apache Ant - ログ」で次のメッセージが表示されることを確認します。

    BUILD SUCCESSFUL
    Total time: nn minutes nn seconds
    

    antターゲットの詳細は、次のリソースを参照してください。

2.2 ストアフロントでの2つの注文の発行

注文処理は、ユーザーが製品の閲覧と注文に使用するストアフロントUIで始まります。 注文が発行されると、Application Development Framework Business Componentsによって注文がデータベースに書き込まれ、Events Delivery Network (EDN)を使用してNewOrderSubmittedビジネス・イベントが発生します。 このイベントがOrderPendingEventメディエータによりサブスクライブされ、メインBPELプロセスOrderProcessorが開始されて注文が処理されます。

このタスクでは、2つの注文を発行します。一方は$2,000未満で、他方は$2,000を超えています。これらの注文を発行すると、$2,000を超える総額の発注に承認を要求する方法を確認できます。

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

  1. 次のURLからストアフロントにアクセスします。

    http://hostname:port/StoreFrontModule/faces/home.jspx
    

    hostnameはOracle SOA Suite用Oracle WebLogic ServerのDNS名またはIPアドレスで、portはOracle WebLogic Serverの管理対象サーバーがリクエストをリスニングするポート(デフォルトでは8001)です。

    製品カタログを参照することで注文処理を開始します。 製品の横にある「Add」をクリックすると、サイトのショッピング・カート・リージョンが更新されて品目が表示されます。

  2. $2,000未満の注文を発行します。

    1. $149.95の「Ipod Nano 1 Gb」をクリックし、「Add」をクリックします。

    2. $199.95の「Ipod Nano 2 Gb」をクリックし、「Add」をクリックします。

      次の図に、2つの製品が追加されたカート要約を示します。 要約には、カートに表示される2つの品目の購入小計が$349.90と表示されています。

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

    3. メニュー・バーの中央にある「Checkout」リンクをクリックします。

      ログイン・ダイアログが表示されます。

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

    4. 「Username」フィールドにngreenbe「Password」フィールドにwelcome1と入力します。

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

      Shipping Detailsページが表示されます。

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

    6. 「Order Information #order_idセクションで、注文IDをメモします。このIDは後のタスクで必要になります。 この例では、注文IDは1179です。

    7. 「Shipping Information」セクションで、次のデフォルト設定をメモします。

      - 100 N Peach St Philadelphia PA 19139 US

      - 536267 MSTR

    8. 「Order Summary」セクションで、注文合計($353.86)をメモし、「Submit Order」をクリックして第1の注文を完了します。

      Invoice Detailsページが表示されます。

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

  3. メニュー・バーにある「Exit and Continue Shopping」リンクをクリックしてホーム・ページに戻ります。

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

  4. $2,000を超える注文を発行します。

    1. $1,999.99の「Plasma HD Television」をクリックし、「Add」をクリックします。

    2. $199.95の「Playstation 2 Video Game」をクリックし、「Add」をクリックします。

      「Shopping Cart Summary」セクションに、カートに表示される2つの品目の購入小計が$2,199.94と表示されます。

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

      Shipping Detailsページが表示されます。

    4. 「Order Information #order_idセクションで、注文IDをメモします。このIDは後のタスクで必要になります。 この例では、注文IDは1180です。

    5. 「Shipping Information」セクションのオプションのいずれか(例: 「Shipping Address」フィールドの住所)と「Payment Options」セクションのクレジット・カードを変更します。 選択した設定をメモします。

      - 2100 S Casino Dr. Laughlin NV 89029 US

      - 4111111111111111 VISA

    6. 「Order Summary」セクションで、注文合計($2,219.42)をメモし、「Submit Order」をクリックして第2の注文を完了します。

      Invoice Detailsページが表示されます。

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

  5. メニュー・バーの右にある「Logout」リンクをクリックしてngreenbeのセッションからログアウトします。

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

2.3 注文を監視するためのFusion Middleware Controlの起動

Oracle Enterprise Manager Fusion Middleware Controlを起動して注文を監視する手順は、次のとおりです。

  1. バージョン2.0以降のMozilla FireFoxまたはバージョン7.0以降のInternet Explorerを使用して、次のURLにアクセスします。

    http://hostname:port/em
    

    hostnameはホスト名で、portはOracle SOA Suiteインストール用Fusion Middleware Controlのポートです。

    ログイン・ダイアログが表示されます。

  2. weblogic/passwordを入力して「ログイン」をクリックします。

    各項目の意味は次のとおりです。

    • weblogic: Fusion Middleware Controlコンソールの管理者ユーザー名

    • password: インストール時にweblogic管理者用に入力したパスワード

  3. ナビゲーション・ペインから、「SOA」「soa-infra」を開いてデプロイ済アプリケーションを表示します。

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

    OrderBookingCompositeおよびPartnerSupplierCompositeは、WebLogic Fusion Order Demoアプリケーションの2つのメイン・コンポジットです。

2.4 第1の注文の監視

ここでは、ストアフロント・モジュールからOrderBookingCompositeコンポジットに送信された第1の注文をFusion Middleware Controlで監視します。 この注文は$353.86分で、Nancy Greenbergによって発行されました。

第1の注文を監視する手順は、次のとおりです。

  1. ナビゲーション・ペインから、「SOA」「soa-infra」を開いてデプロイ済アプリケーションを表示します。

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

    OrderBookingCompositeおよびPartnerSupplierCompositeは、WebLogic Fusion Order Demoアプリケーションの2つのメイン・コンポジットです。

  2. 「OrderBookingComposite」コンポジットをクリックします。

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

    SOAインフラストラクチャ・ホーム・ページが表示されます。 このページの上部には、最新のSOAコンポジット・アプリケーション・インスタンス、最新のフォルトおよび拒否メッセージの詳細が表示されます。 「最新のインスタンス」表の上位2つのインスタンスは、第2.2項「ストアフロントでの2つの注文の発行」で注文を発行する際に作成したSOAコンポジット・アプリケーションのインスタンスです。

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

  3. 「最新のインスタンス」セクションで、$353.86分の注文を表す第2のインスタンスをクリックします。 インスタンス番号をメモします。

    フローのトレース・ページが表示されます。 「トレース」セクションに、SOAコンポジット・アプリケーションを構成するサービス、サービス・コンポーネントおよび参照を介したメッセージ・フローの順序が表示されます。

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

    「トレース」セクションに、OrderBookingCompositeコンポジット内の各サービス・コンポーネントの状態が表示されます。 すべてのサービス・コンポーネントのステータスが「完了」であることがわかります。これは、注文が正常に処理されたことを示しています。

  4. 「インスタンス」列で「OrderProcessor」 BPELプロセス・サービス・コンポーネントをクリックし、さらに慎重にインスタンスを確認します。

    「OrderProcessorのインスタンス」ウィンドウの「監査証跡」タブに、BPELプロセスのアクティビティに関する実行詳細が表示されます。 選択したインスタンスが右側の「インスタンスID」フィールドに表示されることもわかります。

    flow_auditorderbook.gifの説明は次にあります。
    flow_auditorderbook.gifの説明

  5. 「フロー」タブをクリックし、インスタンスのビジュアル表現を表示します。

    BPELプロセス・アクティビティのビジュアル表現が表示されます。 フロー内のアイコンをアクティビティと呼びます。 これらのアイコンをクリックすると、その詳細を表示できます。

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

  6. 最初のアクティビティ(receiveInputというラベルが付いた青い円形のreceiveアクティビティ)をクリックします。

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

    「アクティビティの詳細」ダイアログに、このBPELプロセス・インスタンスへのXML入力が表示されます。 この入力は、ストアフロント・モジュールを介して注文を発行する際に与えられた注文ID(orderID)を示します。 この例では、注文IDは1179です。

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

  7. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

  8. プロセス内でさらに「Scope_RetrieveOrder」アクティビティにスクロールして「findOrderById」をクリックし、変数gOrderInfoVariableへの入力として注文IDを指定します。

    bpelx:bindEntity is executed on variable gOrderInfoVariable with the following key values:
    {{/oracle/fodemo/storefront/store/queries/common/}OrderId=1179}
    
    
    
  9. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

  10. 「Scope_RetrieveCustomerForOrder」スコープにスクロールして「InvokeFindCustomer」アクティビティをクリックし、起動されて顧客情報を戻すStoreFrontServiceサービスを表示します。 「アクティビティの詳細」ウィンドウでは、次のことに注意してください。

    • lFindCustomerInfo_InputVariableは、StoreFrontServiceサービスへの入力変数を表します。 CustIdパラメータは、顧客ngreenbeの顧客IDを表します。

    • gCustomerInfoVariableは、顧客情報をBPELプロセスに戻すStoreFrontServiceサービスからの出力を表します。

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

  11. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

  12. 「Scope_AuthorizeCreditCard」スコープにスクロールして「InvokeCheckCreditCard」をクリックし、起動されてクレジット・カードのステータスを戻すCreditCardAuthorizationサービスを表示します。

    「アクティビティの詳細」ウィンドウでは、次のことに注意してください。

    • lCreditInputは、CreditCardAuthorizationServiceサービスへの入力変数を表します。 パラメータCCTypeCCNumberおよびPurchaseAmountは、入力のクレジット・カード・タイプ、番号および注文合計を表します。 これらの値は次のように設定されています。

      <CCType>MSTR</CCType>
      <CCNumber>536267</CCNumber>
      <PurchaseAmount>353.86</PurchaseAmount>
      
    • lCreditCardOuputは、サービスがAPPROVEDステータスを戻したことを示しています。 したがって、OrderProcessor BPELプロセスは続行されます。

  13. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

  14. 「Scope_CheckApprovalLimit」スコープにスクロールして「BusinessRule_ApprovalRequired」の下の「呼出し」リンクをクリックし、起動される「RequiresApprovalRule」ビジネス・ルールを表示します。

    「アクティビティの詳細」ウィンドウでは、次のことに注意してください。

    • dsInは、ビジネス・ルールに送信された入力変数を表します。 approveパラメータは、実行時のルール・エンジンの起動を示します。 priceパラメータは、注文合計が$353.86だったことを示します。 ルール・エンジンでは、承認を必要とするかどうかを判別するにはこの入力が必須です。

    • dsOutは、ビジネス・ルールからの出力を示します。 approvalRequiredパラメータの値はfalseです。 この注文は$2,000未満のため、承認は不要です。 したがって、戻り値はfalseに設定されています。

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

  15. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

  16. 「Scope_RetrieveQuotes」スコープ内で、次の手順を実行します。

    1. 「Invoke_PartnerSupplier」リンクをクリックし、PartnerSupplierMediatorメディエータに送信される注文情報を表示します。 PartnerSupplierMediatorにより、注文情報がPartnerSupplierCompositeコンポジット内のExternalPartnerSupplier BPELプロセスにルーティングされます。

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

    2. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

    3. 「Invoke_InternalWarehouse」リンクをクリックし、lInternalWarehouseInputVariable変数を介してInternalWarehouseService BPELプロセスに送信される注文IDを表示します。

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

    4. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

  17. 「Scope_SelectPreferredSupplier」スコープ内で、「BusinessRule_SelectPreferredSupplier」の下の「呼出し」リンクをクリックし、起動される「EvaluatePreferredSupplierRule」ビジネス・ルールを表示します。

    「アクティビティの詳細」ウィンドウでは、次のことに注意してください。

    • dsInは、ビジネス・ルールに送信された入力変数を表します。 warehousedeliveryDateおよびorderTotalパラメータの値は、ビジネス・ルールへの入力となります。 ルール・エンジンでは、この入力を使用して最も購入価格の低いサプライヤが選択され、注文が履行されます。

      2つの倉庫のサプライヤについて戻された入力データは、次のとおりです。

      <warehouse>InternalWarehouse</warehouse>
      <deliveryDate>2009-02-13</deliveryDate>
      <orderTotal>1000</orderTotal>
      ...
      
      <warehouse>PartnerWarehouse</warehouse>
      <deliveryDate>2009-02-13</deliveryDate>
      <orderTotal>353.86</orderTotal>
      

      InternalWarehouseサプライヤは、すべての注文について静的な値$1,000を戻します。

    • dsOutは、ビジネス・ルールからの出力を示します。 warehouseパラメータの値は、選択された倉庫のサプライヤを示します。 最低の見積を提供したためPartnerWarehouseサプライヤが選択されています。

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

  18. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

  19. 「Scope_FulfillOrder」スコープで、「Invoke_FulfillOrder」リンクをクリックしてFulfillOrderメディエータに送信される注文情報を表示します。 FulfillOrderメディエータでは注文が一時キューに格納されて出荷のためにUSPSにルーティングされます。

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

  20. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

  21. 「Scope_NotifyCustomerOfCompletion」スコープにスクロールして「InvokeNotificationService」リンクをクリックし、Nancy Greenbergに送信された出力電子メール通知を表示します。

  22. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

  23. 「フローのトレース」ウィンドウを閉じます。

2.5 第2の注文の監視

ここでは、Nancy Greenbergとして発行した$2,219.42分の第2の注文を監視します。 この注文は注文金額が$2,000を超えているため、第1の注文とは処理が異なります。したがって、承認が必要です。 このタスクでは、注文をFusion Middleware Controlで監視してOracle BPM Worklistで承認し、注文の完了をFusion Middleware Controlで確認します。

第2の注文を監視するには、次のタスクを完了します。

2.5.1 タスク1: Fusion Middleware Controlでの注文の表示

  1. SOAインフラストラクチャ・ホーム・ページの「最新のインスタンス」セクションで、$2,219.42分の注文を表す第1のインスタンスをクリックします。

    フローのトレース・ページが表示されます。

  2. 「インスタンス」列で「OrderProcessor」 BPELプロセス・サービス・コンポーネントをクリックします。

    「フローのトレース」ウィンドウの「監査証跡」タブに、BPELプロセスのアクティビティに関する実行詳細が表示されます。

  3. 「最新のインスタンス」セクションで、$2,219.42分の注文を表す第1のインスタンスをクリックします。 インスタンス番号をメモします。

    フローのトレース・ページが表示されます。

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

    第1の注文とは異なり、「トレース」セクションは、「OrderBookingComposite」コンポジット内のサービス・コンポーネントがすべて完了したわけではなく、プロセスが「ApprovalHumanTask」コンポーネントで停止していることを示しています。

  4. 「インスタンス」列で「OrderProcessor」 BPELプロセス・サービス・コンポーネントをクリックし、「OrderProcessorのインスタンス」ウィンドウでさらに慎重にインスタンスを調べます。

  5. 「フロー」タブをクリックし、インスタンスのビジュアル表現を表示します。

  6. 「receiveInput」アクティビティをクリックし、発行した注文IDを確認します。

    「アクティビティの詳細」ダイアログに、このBPELプロセス・インスタンスへのXML入力が表示されます。 この入力は、ストアフロント・モジュールを介して注文を発行する際に与えられた注文ID(orderID)を示します。 この例では、注文IDは1180です。

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

  7. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

  8. 「Scope_CheckApprovalLimit」スコープにスクロールして「BusinessRule_ApprovalRequired」の下の「呼出し」リンクをクリックし、起動される「RequiresApprovalRule」ビジネス・ルールを表示します。

    「アクティビティの詳細」ウィンドウでは、次のことに注意してください。

    • dsInは、ビジネス・ルールに送信された入力変数を表します。 approveパラメータは、実行時のルール・エンジンの起動を示します。 priceパラメータは、注文合計が$2,219.42だったことを示します。

    • dsOutは、ビジネス・ルールからの出力を示します。 approvalRequiredパラメータの値はtrueです。 この注文は$2,000を超えているため、承認が必須です。 したがって、戻り値はtrueに設定されています。

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

  9. 「BusinessRule_ApprovalRequired」「閉じる」「-」)アイコンをクリックして閉じます。

  10. 「Scope_CheckApprovalLimit」スコープの下方へスクロールし、ビジネス・ルールの後にApprovalHumanTaskヒューマン・タスクが開始されたことを確認します。 ビジネス・ルールでのswitchは、他のプログラミング言語のif-then-elsecaseまたはswitch文に相当します。 この場合、承認が必須であれば、このswitchによりデータがApprovalHumanTaskヒューマン・タスクに発行されます。

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

  11. 「initiateTask_ApprovalHumanTask_1」アクティビティをクリックします。

  12. 「アクティビティの詳細」ダイアログで、initiateTaskResponseMessages変数にスクロールしてassigneeUsersパラメータを表示します。 このパラメータは、ヒューマン・タスクがユーザーjsteinに割り当てられたことを示しています。

    - <assigneeUsers>
       <id>jstein</id>
       <type>user</type>
    </assigneeUsers>
    
  13. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

  14. 「receiveCompletedTask_ApprovalHumanTask_1」アクティビティをクリックし、ヒューマン・タスクが承認待ちになっていることを確認します。

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

  15. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。ただし、完了時の注文処理の確認に必要なため、フローのトレース・ページは閉じないでください。

2.5.2 タスク2: Oracle BPM Worklistを使用した注文の承認

注文を承認するには、Oracle BPM Worklistを使用します。

  1. Internet Explorer 7またはMozilla Firefox 2.0.0.2を使用して、次のURLにアクセスします。

    http://hostname:port/integration/worklistapp/faces/home.jspx
    

    hostnameはOracle SOA Suite用Oracle WebLogic ServerのDNS名またはIPアドレスで、portはOracle WebLogic Serverの管理対象サーバーがリクエストをリスニングするポートのアドレス(デフォルトでは8001)です。

    ログイン・ダイアログが表示されます。

  2. 「ユーザー名」フィールドにjstein「パスワード」フィールドにwelcome1と入力して、「ログイン」をクリックします。

  3. 「受信ボックス」に、注文番号1180が承認待ちになっていることが表示されます。

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

  4. 表から注文を選択し、「アクション」メニューから「承認」を選択します。

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

  5. 「OK」をクリックして承認メッセージを確認します。

    「ユーザー・タスク」タブが更新され、jsteinに割り当てられているワークリスト・タスクがなくなります。

    注文承認が完了し、注文処理が完了しました。

2.5.3 タスク3: Fusion Middleware Controlでの承認の表示

処理が完了した注文をFusion Middleware Controlで確認する手順は、次のとおりです。

  1. フローのトレース・ページに戻り、右上隅にある「リフレッシュ」アイコンをクリックします。

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

  2. 「Scope_CheckApprovalLimit」スコープの下方へスクロールし、ApprovalHumanTaskヒューマン・タスクが処理されたことを確認します。

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

  3. 「receiveCompletedTask_ApprovalHumanTask_1」アクティビティをクリックし、ヒューマン・タスクを確認します。

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

  4. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

  5. 「Scope_SelectPreferredSupplier」スコープ内で、「BusinessRule_SelectPreferredSupplier」の下の「呼出し」リンクをクリックし、起動される「EvaluatePreferredSupplierRule」ビジネス・ルールを表示します。

    「アクティビティの詳細」ウィンドウでは、次のことに注意してください。

    • dsInは、ビジネス・ルールに送信された入力変数を表します。 warehousedeliveryDateおよびorderTotalパラメータの値は、ビジネス・ルールへの入力となります。 ルール・エンジンでは、この入力を使用して最も購入価格の低いサプライヤが選択され、注文が履行されます。

      2つの倉庫のサプライヤについて戻された入力データは、次のとおりです。

      <warehouse>InternalWarehouse</warehouse>
      <deliveryDate>2009-03-13</deliveryDate>
      <orderTotal>1000</orderTotal>
      ...
      
      <warehouse>PartnerWarehouse</warehouse>
      <deliveryDate>2009-03-13</deliveryDate>
      <orderTotal>2219.42</orderTotal>
      
    • warehouseパラメータの値は、選択された倉庫のサプライヤを示します。 低い方の見積を提供したためInternalWarehouseサプライヤが選択されています。

  6. 「X」または「閉じる」をクリックして「アクティビティの詳細」ダイアログを閉じます。

  7. 「OrderProcessorのインスタンス」ウィンドウで、「フローのトレース」ブレッドクラムをクリックして「フローのトレース」メイン・ウィンドウに戻ります。

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

    「トレース」セクションでは、「OrderBookingComposite」コンポジットの全サービス・コンポーネントがどのように完了しているかがわかります。

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

  8. 「フローのトレース」ウィンドウを閉じます。

2.6 WebLogic Fusion Order Demoアプリケーションのコンポジットのアンデプロイ

このチュートリアルの残りの部分では、WebLogic Fusion Order Demoアプリケーションのコンポジット・アプリケーションの構築方法について説明します。 コンポジット・アプリケーションはデプロイメント・プロセス中にデプロイしているため、ここでは完成したアプリケーションをアンデプロイできます。

コンポジット・アプリケーションをアンデプロイする手順は、次のとおりです。

  1. 次のオプションを通じて、Fusion Middleware ControlのSOAコンポジットのアンデプロイ・ウィザードにアクセスします。

    「SOAインフラストラクチャ」メニューから ナビゲータの「SOA」フォルダから SOAインフラストラクチャ・ホーム・ページから 「SOAコンポジット」メニューから
    1. 「SOAデプロイ」「アンデプロイ」の順に選択します。

      コンポジットの選択ページが表示されます。

    2. 「SOAコンポジット・デプロイ」セクションで、「OrderBookingComposite」「PartnerSupplierComposite」を選択してアンデプロイし、「次へ」をクリックします。

    1. 「soa-infra」を右クリックします。
    2. 「SOAデプロイ」「アンデプロイ」の順に選択します。

      コンポジットの選択ページが表示されます。

    3. 「SOAコンポジット・デプロイ」セクションで、「OrderBookingComposite」「PartnerSupplierComposite」を選択してアンデプロイし、「次へ」をクリックします。

    1. 「デプロイ済コンポジット」タブをクリックします。
    2. 「コンポジット」表で「OrderBookingComposite」「PartnerSupplierComposite」の両方を選択します。

    3. 「コンポジット」表の上にある「アンデプロイ」をクリックします。

    「SOAデプロイ」「アンデプロイ」の順に選択します。

    確認ページが表示されます。

  2. 「アンデプロイ」をクリックします。 デプロイ済コンポジット・アプリケーションの最後に残ったリビジョンをアンデプロイしようとすると、警告が表示されることに注意してください。

    処理中メッセージが表示されます。

  3. アンデプロイが完了したら、「閉じる」をクリックします。