| Oracle Fusion Middleware Oracle SOA Suiteアプリケーションの作成および実行のためのチュートリアル 11g リリース1(11.1.1) B56240-01 |
|
![]() 戻る |
![]() 次へ |
第5章「OrderProcessor BPELプロセスの前半の作成」では、OrderProcessor BPELプロセスを作成しました。 このプロセスのCheckIfRequiresApprovalスイッチでは、ヒューマン・タスクを使用して、「ApprovalHumanTask」human taskアクティビティに制御を渡します。 このhuman taskアクティビティを使用すると、jsteinというマネージャが、合計金額$2,000を超える注文を承認または却下できるようになります。この章では、jstein用のタスク・フォームを作成します。
この章の内容は次のとおりです。
タスク・フォームは、jsteinがApprovalHumanTaskヒューマン・タスクと対話するための手段となります。タスク・フォームには、ユーザーのワークリストにタスクの内容が表示されます。 第2章で前述したように、Fusion Order Demoをデプロイして実行する際に、Oracle BPM Worklistを使用して、すべてのワークリスト・タスクを表示し、合計金額が$2,000を超える注文を承認または却下できます。
Oracle JDeveloperでOracle Application Development Framework(Oracle ADF)を使用して、タスク・フォームを作成します。Oracle ADFを使用すると、SOAコンポジットでヒューマン・タスクを表現するタスク表示フォームを設計できます。
タスク・フォームは、WebLogicFusionOrderDemoアプリケーションの新規プロジェクトで作成するJava Server Page XML(.jspx)ファイルです。 図9-1に、サンプル・ワークリストを示します。
ヒューマン・タスクに基づいてタスク・フォームを作成する場合、Oracle JDeveloperではタスクフロー作成中に次の処理が実行されます。
タスク・パラメータおよび結果に基づいてデータ・コントロールを作成する
ペイロードを含む初期タスク・フォームを作成する
ApprovalHumanTaskヒューマン・タスクに基づいてタスク・フォームを作成する手順は、次のとおりです。
SOAコンポジット・アプリケーション内でOrderProcessor BPELプロセスを開きます。
「Scope_CheckApprovalLimit」スコープまでスクロールして開きます。
シーケンスを開きます。
次の図に示すように、「ApprovalHumanTask_1」human taskアクティビティを右クリックし、「タスク・フォームの自動生成」を選択します。

「プロジェクトの作成」ダイアログが表示されます。
プロジェクト名にOrderApprovalHumanTaskと入力し、「OK」をクリックします。
「ApprovalHumanTask_TaskFlow.xml」タブにはタスク・フロー定義が表示され、「taskDetails1.jspx」タブにはペイロードを含むJSPページが表示されます。

ADF Business Componentsサービス・ランタイム・ライブラリを追加する手順は、次のとおりです。
アプリケーション・ナビゲータで、「OrderApprovalHumanTask」を右クリックして「プロジェクト・プロパティ」を選択します。
「ライブラリとクラスパス」を選択し、「ライブラリとクラスパス」ページで「ライブラリの追加」をクリックします。
「ライブラリの追加」ダイアログで、「BC4Jサービス・ランタイム」を選択して「OK」をクリックします。
「ライブラリとクラスパス」ページで「OK」をクリックします。
タスク・フォームの「コンテンツ」showDetailHeaderでStoreFrontServiceサービスからの入力を提供する手順は、次のとおりです。
StoreFrontServiceサービスのデータ・コントロールを追加します。
アプリケーション・ナビゲータで、「OrderApprovalHumanTask」プロジェクトを右クリックして「新規」を選択します。
「新規ギャラリ」ダイアログで「すべてのテクノロジ」タブをクリックします。
「カテゴリ」ツリーで、「ビジネス層」、「データ・コントロール」の順に選択します。
「Webサービス・データ・コントロール」を選択して「OK」をクリックします。
「Webサービス・データ・コントロールの作成 - ステップ1/5」ページが表示されます。
「名前」フィールドにStoreFrontServiceと入力します。
「URL」フィールドで「参照」をクリックし、MY_FOD_HOME\CompositeServices\OrderBookingComposite\services\oracle\fodemo\storefront\store\service\common\serviceinterfaceにあるStoreFrontService.wsdlを選択します。
様々な面で、このプロセスはSOAコンポジット・エディタでサービスへの参照を作成するプロセスに似ています。
「Webサービス・データ・コントロールの作成 - ステップ1/5」ページで「次へ」をクリックします。
「Webサービス・データ・コントロールの作成 - ステップ2/5」ページで、「選択可能」リストから「getOrderInfoVOSDO」操作を選択し、「追加」ボタンをクリックします。 「次へ」をクリックしてウィザードの次のページに進みます。
「Webサービス・データ・コントロールの作成 - ステップ3/5」ページで、デフォルトを受け入れて「終了」をクリックします。
アプリケーション・ナビゲータの「データ・コントロール」パネルに「StoreFrontService」データ・コントロールが表示されます。
アプリケーション・ナビゲータの「データ・コントロール」パネルで、「StoreFrontService」→「getOrderInfoVOSDO」→「RETURN」→「result」の順に開き、フォームに組み込めるデータ・コントロールを表示します。

taskDetails1.jpsxページで、「CONTENTS」の「showDetailHeader」を選択し、メニューから「このコンテナの設計」を選択します。
「CONTENTS」の「showDetailHeader」を選択したまま、メニューからShow Detail Headerの公開を選択します。

「CONTENTS」ヘッダーは、注文IDが含まれることを示しています。

「orderID」入力ラベルを含む「panelFormLayout」を選択し、「Enter」をクリックします。
次の図は、panelgroupLayoutが選択されている状態を示しています。

「Enter」をクリックすると、新しいラベルが表示されます。

StoreFrontServiceサービスからタスク・フォームにパラメータを追加します。
アプリケーション・ナビゲータの「データ・コントロール」パネルで、「結果」アイコンを空の入力フィールドにドラッグします。
次の図に示すように、「作成」メニューから「フォーム」を選択し、「ADF読取り専用フォーム」を選択します。

「ApprovalHumanTask_ApprovalHumanTask」データ・コントロールが選択された状態で、「アクションの編集」ダイアログが表示されます。
「フォーム・フィールドの編集」ダイアログで、次を除くすべてのフィールドを選択して「削除」アイコンをクリックします。
- OrderStatusCode
- OrderTotal
- ShipToName
- ShipToPhoneNumber
- Address1
- Address2
- City
- PostalCode
- StateProvince
- CountyId
「フォーム・フィールドの編集」ダイアログは次の図のようになります。

「OK」をクリックします。
「StoreFrontService」データ・コレクションが選択された状態で「アクションの編集」ダイアログが表示されます。
「パラメータ」セクションの「値」フィールドで、「EL式ビルダーの表示」を選択します。
「変数」ダイアログが表示されます。
「ADFバインディング」→「bindings」の順に開き、「orderId」を選択し、「OK」を選択します。

「アクションの編集」ダイアログで、「OK」をクリックします。
「CONTENTS」ヘッダーに選択した入力パラメータが表示されます。

「ファイル」メイン・メニューから「すべて保存」を選択して、作業内容を保存します。
OrderApprovalHumanTaskフォームをデプロイする手順は、次のとおりです。
アプリケーション・ナビゲータで、「OrderApprovalHumanTask」を右クリックし、「デプロイ」→「OrderApprovalHumanTask」→「デプロイ先」→「MyAppServerConnection」の順に選択します。
「SOAデプロイメントと構成ダイアログ」が表示されます。
デフォルト設定を受け入れて「OK」をクリックします。
「認証リクエスト」ダイアログのプロンプトに対して、「Username」フィールドにweblogicと入力し、「Password」フィールドにパスワードを入力します。
「SOA - ログ」に、一連の検証に続いて次のように表示されます。
BUILD SUCCESSFULTotal time: nn seconds