ヘッダーをスキップ
Oracle Fusion Middleware Oracle SOA Suite開発者ガイド
11g リリース1(11.1.1)
B56238-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

26 ヒューマン・タスク用のタスク表示フォームの設計

ユーザーがビジネス・プロセスと相互作用するためのタスクは、ヒューマン・ワークフロー・サービスによって作成されます。それぞれのタスクには、タスク・メタデータとタスク・フォームという2つの部分があります。タスク・フォームは、タスクのコンテンツをユーザーのワークリストに表示するために使用されます。

Oracle BPM Worklistには、ユーザーまたはグループに割り当てられているすべてのワークリスト・タスクが表示されます。 ワークリスト・ユーザーが特定のタスクにドリルダウンすると、タスク表示フォームにはそのタスクの詳細が表示されます。 たとえば、経費承認タスクでは様々な経費の明細項目が記載されたフォームが表示され、ヘルプ・デスク・タスク・フォームでは重大度や問題の場所などの詳細が表示されます。

この章では、Oracle JDeveloperのADFタスク・フローを使用したタスク表示フォームの設計およびカスタマイズの方法を説明します。

項目は次のとおりです。

26.1 タスク表示フォームの概要

SOAコンポジットにヒューマン・タスクが含まれている場合は、ユーザーがタスクと相互作用する方法が必要です。このため、Oracle SOA Suiteの統合開発環境には、Oracle Application Development Framework (Oracle ADF)が含まれています。Oracle ADFを使用すると、SOAコンポジットのヒューマン・タスクを表すタスク表示フォームを設計できます。

タスク表示フォームは、Java Server Page XML(.jspx)ファイルです。このファイルは、ヒューマン・タスクが含まれるSOAコンポジットを作成したOracle JDeveloper Designerで作成します。 Java Server Page XMLファイルを作成するには、その前に、Oracle JDeveloperでページのエンコーディングをUTF-8に設定する必要があります。 設定するには、Oracle JDeveloperで「ツール」→「プリファレンス」→「環境」の順に選択し、「エンコーディング」ドロップダウン・リストから「UTF-8」を選択します。

図26-1に、タスク表示フォームの作成を開始する、Oracle JDeveloperの「ヒューマン・タスクに基づいたADFタスク・フロー」オプションを示します。

図26-1 Oracle JDeveloperの「ヒューマン・タスクに基づいたADFタスク・フロー」

図26-1の説明は次にあります。
「図26-1 Oracle JDeveloperの「ヒューマン・タスクに基づいたADFタスク・フロー」」の説明

26.2 タスク・フローとタスク・サービスの関連付け

ヒューマン・タスクに基づいてADFタスク・フローを作成する場合は、タスク・メタデータ・ファイルを選択して、データ・コントロールを生成する必要があります。データ・コントロールは、ページ内のコンテンツのレイアウトを行うために使用され、実行時にはワークフロー・サービス・エンジンに接続して、タスク・コンテンツを取得し、タスクを操作します。 詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の第14章「ADFタスク・フローの概要」を参照してください。

hwtaskflow.xmlファイルは、サービス・エンジンとの接続時に詳細を取得するために使用されます。デフォルトでは、リモートEJBを使用してワークフロー・サーバーに接続します。 SOAサーバーのURLとポートは、WebLogic Serverの実行時MBeanを使用して自動的に決定されます。ただし、その内容は、ここでURLとポート情報を明示的に指定することで上書きできます。

タスク詳細アプリケーションがワークフロー・サービスに接続できるように、ORMI権限があるユーザーをシードしてください。 このユーザーは、Oracle Enterprise Manager Fusion Middleware Controlを使用してシードできます。

26.3 ヒューマン・タスクに基づいたADFタスク・フローの作成

ADFタスク・フローは、「タスクの詳細」ページのユーザー・インタフェースをモデリングするために使用されます。 このタスク・フローは、ヒューマン・タスクが含まれている同じアプリケーション、または別のアプリケーションで作成できます。

タスク・フローを作成するには、その前に、ヒューマン・タスク(.taskファイル)をSOAコンポジットの一部として作成する必要があります。 .taskファイルの作成方法の詳細は、第25章「ヒューマン・タスクの設計」を参照してください。

タスク・フローがヒューマン・タスクと同じアプリケーションにある場合は、そのタスク・フローに対して別のプロジェクトを作成します。 SOAコンポジットに複数のヒューマン・タスクが含まれている場合は、各ヒューマン・タスクに関連付けられているADFタスク・フローごとに個別のプロジェクトを作成します。 データ・コントロールは、ADFタスク・フローを使用し、タスクのパラメータと結果に基づいて作成します。

ADFタスク・フォームを自動生成するには、SOAコンポジット・アプリケーション内のヒューマン・タスクにアクセスします(フォームとタスクは同じアプリケーション内にあります)。 詳細は、第26.3.1項「ヒューマン・タスクに対してADFタスク・フローを自動生成する方法」を参照してください。

別のアプリケーションにADFタスク・フォームを作成するには、新規のアプリケーションとプロジェクトを作成し、ヒューマン・タスクの.taskファイルを参照します。 詳細は、第26.3.2項「ヒューマン・タスクに基づいたADFタスク・フローの作成方法」を参照してください。

26.3.1 ヒューマン・タスクに対してADFタスク・フローを自動生成する方法

ヒューマン・タスクとタスク・フローが同じアプリケーションにある場合、ヒューマン・タスクを指定する.taskファイルは、簡単にタスク・フローに関連付けられます。

ヒューマン・タスクに対してADFタスク・フローを自動生成する手順は、次のとおりです。

  1. SOAコンポジット・アプリケーション内でBPELプロセスを開きます。

  2. ヒューマン・タスク・アクティビティを右クリックし、図26-2に示すように、「タスク・フォームの自動生成」を選択します。

    図26-2 タスク表示フォームの自動生成

    図26-2の説明は次にあります。
    「図26-2 タスク表示フォームの自動生成」の説明

  3. プロジェクト名とディレクトリ・パスを入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。

    フォームが「taskDetails1.jspx」タブのデザイナに表示されます。

これで、タスク・フローおよびタスク表示フォームが完成し、デプロイする準備ができました。

26.3.2 ヒューマン・タスクに基づいたADFタスク・フローの作成方法

デプロイメントを容易にするには、図26-1に示す「ヒューマン・タスクに基づいたADFタスク・フロー」オプションを使用して、ADFタスク・フローおよび追加のアーチファクトを作成します。 .taskファイルを選択してADFタスク・フローに関連付けると、タスクのパラメータと結果に基づいてヒューマン・タスク・データ・コントロールが作成されます。 これらのデータ・コントロールは、JSPXページで使用可能になります。 タスク・フロー・プロジェクトを作成するときは、SOAコンポジット・プロジェクトへのアクセス権が必要です。

ヒューマン・タスクに基づいてADFタスク・フローを作成する手順は、次のとおりです。

  1. 「ファイル」メイン・メニューから「新規」「アプリケーション」「SOAアプリケーション」の順に選択します。

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

  3. アプリケーション名およびディレクトリ情報を入力(または、デフォルトをそのまま使用)して、「終了」をクリックします。

  4. プロジェクト名を右クリックし、「新規」を選択します。

  5. 「Web層」の下にある「JSF」を選択します。

  6. 「ヒューマン・タスクに基づいたADFタスク・フロー」を選択し、「OK」をクリックします。

  7. 「SOAリソース・ブラウザ」で、ヒューマン・タスクを定義した.taskファイルを検索して選択し、「OK」をクリックします。

    1. ヒューマン・タスクがタスク定義と同じアプリケーションにある場合は、「ファイル」をクリックしてファイル・ブラウザを使用し、通常はコンポジット・ディレクトリにある.taskファイルに移動します。

    2. ヒューマン・タスクが別のアプリケーションにある場合は、「リソース・パレット」をクリックしてMDSリソース・カタログを使用し、コンポジット・アプリケーションにある.taskファイルを検索します。

    3. .taskファイルが現在のアプリケーション内にある場合は、「アプリケーション」をクリックします。

    これにより、データ・コントロールを作成する「タスク・フローの作成」ダイアログが表示されます。

  8. 「タスク・フローの作成」ダイアログでは、デフォルトをそのまま使用し、「OK」をクリックします。

    図26-3に示すように、「taskDetails1_jspx」アイコンがデザイナに表示されます。

    図26-3 「taskDetails1_jspx」アイコン

    図26-3の説明は次にあります。
    「図26-3 「taskDetails1_jspx」アイコン」の説明

    このタスク・フローには、ビュー、コントロール・フローおよびタスク・リターンがあります。

タスク表示フォームの作成を継続するには、次の項を参照してください。

または、

26.3.3 ヒューマン・タスクに基づいたADFタスク・フロー作成時の処理内容

ヒューマン・タスクに基づいたADFタスク・フローの場合、タスク・フロー・アプリケーションにはタスク・フォームをワークフロー・サービスに接続するタスク・データ・コントロールがあります。データ・コントロールは次を提供します。

  • タスク・データにアクセスして操作を行う様々なパラメータおよび操作

  • インタフェース・リージョンを作成して、タスクの内容を表示できるドロップ・ハンドラ

図26-4に示すように、ヒューマン・タスクを意識したデータ・コントロールがOracle Jdeveloperの「アプリケーション・ナビゲータ」の「データ・コントロール」パネルに表示されます。

図26-4 「データ・コントロール」パネルのタスク・コレクション

図26-4の説明は次にあります。
「図26-4 「データ・コントロール」パネルのタスク・コレクション」の説明

タスクのデータ・コントロール(図の「タスク」ノードに表示)には、タスク表示フォームを表示するドロップ・ハンドラがあります。 詳細は、第26.4項「タスク表示フォームの作成」を参照してください。

26.4 タスク表示フォームの作成

タスク表示フォームは、ヒューマン・タスクのドロップ・ハンドラを使用して作成します。 このヒューマン・タスクのドロップ・ハンドラは、次を自動生成するように設計されています。

ヒューマン・タスクのドロップ・ハンドラは、図26-5に示すように、デザイナのコンテキスト・メニューに表示されます。

図26-5 タスク表示フォームを作成するためのヒューマン・タスクのドロップ・ハンドラ

図26-5の説明は次にあります。
「図26-5 タスク表示フォームを作成するためのヒューマン・タスクのドロップ・ハンドラ」の説明

タスク表示フォームの作成には、他のADFドロップ・ハンドラ(図26-5に示すフォーム、表、ツリーなど)を使用することもできます。 標準ADFドロップ・ハンドラの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。

ペイロードを持つ完了済タスク

このオプションでは、前述のタスク表示フォーム・コンポーネント(タスク・ヘッダー、タスク履歴、タスク・アクション、およびタスクのコメントと添付ファイル)すべての組合せが作成され、さらにペイロードのインタフェースが作成されます。ペイロード・インタフェースは次のように作成されます。

ペイロードのない完了済タスク

このオプションでは、前述のタスク表示フォーム・コンポーネント(タスク・ヘッダー、タスク履歴、タスク・アクション、およびタスクのコメントと添付ファイル)すべての組合せが作成されます。

電子メールのタスク詳細

このオプションでは、電子メールによる送信時に表示されるADFリージョンが作成されます。 図26-6に示すフォームが生成されます。

図26-6 電子メール通知のタスク表示フォーム

図26-6の説明は次にあります。
「図26-6 電子メール通知のタスク表示フォーム」の説明

詳細は、第26.7項「電子メール通知の作成」を参照してください。

タスク・ヘッダー

タスク表示フォームには、すべての標準ヘッダー・フィールドが追加されます。これには、タスク番号とタイトル、BPELプロセスの状態、結果および優先度、タスクの作成者、更新者、申告者またはタスクに割り当てられているユーザーに関する情報が含まれます。ここには、タスク作成、最終更新および有効期限に関する日時も表示されます。ヘッダー・フィールドは、タスク表示の必要性に応じて追加または削除できます。

図26-7に、ヘッダー情報の例を示します。

図26-7 ヘッダー情報

図26-7の説明は次にあります。
「図26-7 ヘッダー情報」の説明

図26-8に示すように、ヘッダーにはタスク・アクションに関連するボタンも作成されます。

図26-8 タスク・ヘッダー: タスク・アクションのボタン

図26-8の説明は次にあります。
「図26-8 タスク・ヘッダー: タスク・アクションのボタン」の説明

タスク・アクション

次のタスク・アクションは、「アクション」ドロップダウン・リストから表示されたり、ボタンとして表示されます。 表示されるタスクは、タスクの状態(「割当て済」、「完了」など)と、そのタスクを表示するユーザーに付与されている権限によって異なります。 たとえば、タスクがグループに割り当てられている場合は、「申告」ボタンのみが表示されます。 タスクが申告されると、「却下」「承認」など他のアクションが表示されます。

最初の3つのカスタム・アクション(「申告」「終了」および「再開」)は、ボタンとしてタスク・フォームに表示されます。 表示されるのは、タスクに適用可能なボタンのみです。 他のアクションは、「情報のリクエスト」「再割当て」「ルート」の順に「アクション」リストに表示されます。 カスタム・アクションの後には、システム・アクションの「取消」「プッシュバック」「エスカレート」「リリース」「一時停止」および「期限更新」が続き、その後に「保存」ボタンが続きます。 これらのアクションの場合、入力するダイアログはありません。

タスク表示フォームを作成している間は、可能なシステム・アクション・ボタンがすべて表示されますが、ワークリストに表示されるのは、タスク状態に適応していて、ユーザーの権限に対応したアクションのみです。

タスク履歴

タスク・アクションの履歴は、「タスクの詳細」ページに表示され、ワークリストにも履歴表として表示されます。 履歴には、次のフィールドがあります。

Oracle BPM Worklistでのタスク履歴の表示方法(履歴スナップショットの取得、今後の参加者のリスト表示、およびフル・タスク・アクションのリスト表示を実行するオプションを含む)については、「図27-19 履歴: グラフィカル・ビュー」および「図27-20 履歴: フル・タスク・アクション」を参照してください。

タスクのコメントと添付ファイル

コメントの追跡情報(コメントの日付およびコメント作成者のユーザー名を含む)は、タスクのライフ・サイクル全体を通じて保持されます。

タスクに関連付けられているファイルや参照URLは、すべてのヒューマン・タスク参加者が追加できます。

図26-9に、「コメント」リージョンと「添付ファイル」リージョンの例を示します。

図26-9 「コメント」リージョンと「添付ファイル」リージョン

図26-9の説明は次にあります。
「図26-9 「コメント」リージョンと「添付ファイル」リージョン」の説明

26.4.1 「ペイロードを持つ完了済タスク」ドロップ・ハンドラを使用したタスク表示フォームの作成方法

次のステップでは、タスク表示フォームを、ペイロード付きで、各リージョンを個別作成せずに作成するドロップ・ハンドラの使用方法を説明します。 各リージョンを個別に作成する場合は、第26.4.2項「個別のドロップ・ハンドラを使用したタスク表示フォーム・リージョンの作成方法」を参照してください。

「ペイロードを持つ完了済タスク」ドロップ・ハンドラを使用してタスク表示フォームを作成する手順は、次のとおりです。

  1. デザイナで、「taskDetails1_jspx」をダブルクリックします。

  2. 「JSFページの作成」ダイアログで、ファイル名およびディレクトリ情報を入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。

  3. 「アプリケーション・ナビゲータ」の「データ・コントロール」パネルで、「ヒューマン・タスク」ノード、「getTaskDetails」ノード、「戻る」ノードの順に展開します。

  4. 「タスク」アイコンを「taskDetails.jspx」ウィンドウにドラッグします。

  5. 「ヒューマン・タスク」を選択し、次に「ペイロードを持つ完了済タスク」を選択します。

  6. 図26-10に示すように、「アクション・バインディングの編集」ダイアログで「OK」をクリックします。

    図26-10 アクション・バインディングの編集

    図26-10の説明は次にあります。
    「図26-10 アクション・バインディングの編集」の説明

  7. 図26-11に示すように、次の「アクション・バインディングの編集」ダイアログではデータ・コレクションが選択されています。「OK」をクリックします。

    図26-11 データ・コレクションおよびアクションの選択

    図26-11の説明は次にあります。
    「図26-11 データ・コレクションおよびアクションの選択」の説明

    図26-12に示すように、タスク表示フォームが表示されます。

    図26-12 タスク表示フォーム

    図26-12の説明は次にあります。
    「図26-12 タスク表示フォーム」の説明

26.4.2 個別のドロップ・ハンドラを使用したタスク表示フォーム・リージョンの作成方法

複数のリージョンを持つ表示フォームは、図26-13に示すように、「タスク・ヘッダー」「タスク・アクション」「タスク履歴」およびタスクのコメントと添付ファイルドロップ・ハンドラを個別に使用して作成できます。

図26-13 ヒューマン・タスクのドロップ・ハンドラの使用

図26-13の説明は次にあります。
「図26-13 ヒューマン・タスクのドロップ・ハンドラの使用」の説明

「タスク・ヘッダー」では、ヘッダーとタスク・アクションの両方が表示されるため、「タスク・ヘッダー」を使用する際は「タスク・アクション」ドロップ・ハンドラは必要ありません。 「タスク・アクション」は、「アクション」ドロップダウン・メニューとボタンは必要だが、ヘッダー詳細は不要の場合に使用します。

各リージョンを個別に作成せずにタスク表示フォームを作成する場合は、第26.4.1「「ペイロードを持つ完了済タスク」ドロップ・ハンドラを使用したタスク表示フォームの作成方法」を参照してください。

このタスク表示フォームを作成するには、その前に、次を作成する必要があります。

個別のドロップ・ハンドラを使用してタスク表示フォーム・リージョンを作成する手順は、次のとおりです。

  1. デザイナで、「taskDetails1.jspx」をダブルクリックします。

  2. 「JSFページの作成」ダイアログで、ファイル名およびディレクトリ情報を入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。

  3. 「アプリケーション・ナビゲータ」の「データ・コントロール」パネルで、「ヒューマン・タスク」ノード、「getTaskDetails」ノード、「戻る」ノードの順に展開します。

  4. 「タスク」アイコンを「taskDetails.jspx」ウィンドウにドラッグします。

  5. 「ヒューマン・タスク」を選択し、次に「タスク・ヘッダー」を選択します。

    これにより、図26-14に示すように、タスク・アクションの「アクション」ドロップダウン・リストとボタンが作成され、さらに、図26-15に示すように、ヘッダー詳細が作成されます。

    図26-14 タスク表示フォームの設計: タスク・アクションのボタン

    解決、未解決
    「図26-14 タスク表示フォームの設計: タスク・アクションのボタン」の説明

    図26-15 タスク表示フォームの設計: タスク・ヘッダー

    図26-15の説明は次にあります。
    「図26-15 タスク表示フォームの設計: タスク・ヘッダー」の説明

  6. 「タスク」アイコンをJSPXデザイナに追加ドラッグします。この作業を行うたびに次のオプションを選択します。

    • 「ヒューマン・タスク」、次に「タスク履歴」

    • 「ヒューマン・タスク」、次にタスクのコメントと添付ファイル

    これで、タスク表示フォームには、タスク・アクションのドロップダウン・リストとボタン、タスク・ヘッダー詳細、タスク履歴およびコメントと添付ファイル対する複数のリージョンが設定されます。

タスク表示フォームの作成を続行するには、第26.4.3項「タスク表示フォームへのペイロードの追加方法」の手順1を参照してください。

26.4.3 タスク表示フォームへのペイロードの追加方法

ペイロードの追加に加えて、タスク表示フォーム・リージョンを作成できます。 第26.4.2項「個別のドロップ・ハンドラを使用したタスク表示フォーム・リージョンの作成方法」の手順1を参照してください。

ペイロードをタスク表示フォームに追加する手順は、次のとおりです。

  1. 「コンポーネント・パレット」から「ADF Faces」を選択します。

  2. 「レイアウト」を展開します。

  3. 「パネル・グループ・レイアウト」「ヘッダー」「コメント」セクションの間にドラッグします。

  4. 「データ・コントロール」パネルで「タスク」を展開し、次に「ペイロード」を展開します。

  5. ペイロード・データ・コレクションを「パネル・グループ・レイアウト」領域の左にドラッグします。

    「ペイロード」ノードをフォームにドロップするかわりに、「ペイロード」ノードを展開して必要な子要素をフォームにドロップすることもできます。 たとえば、VacationRequestペイロードの読取り専用フォームを作成するには、「ペイロード」ノードを展開し、休暇申請プロセス・リクエスト・ノードをフォームにドラッグして、「フォーム」「ADF読取り専用フォーム」の順に選択します。

  6. 図26-16に示すように、コンテキスト・メニューから「フォーム」を選択し、次に「ADF読取り専用フォーム」を選択します。

    図26-16 タスク表示フォームのペイロード・リージョンへのADF読取り専用フィールドの追加

    図26-16の説明は次にあります。
    「図26-16 タスク表示フォームのペイロード・リージョンへのADF読取り専用フィールドの追加」の説明

  7. 「フォーム・フィールドの編集」ダイアログで、デフォルトをそのまま使用し、「OK」をクリックします。

    これで、「詳細」「履歴」の間のペイロード・リージョンに、読取り専用フィールドが作成されます。

    図26-17に示すように、ペイロード・リージョンが表示されます。

    図26-17 タスク表示フォームのペイロード・リージョン

    図26-17の説明は次にあります。
    「図26-17 タスク表示フォームのペイロード・リージョン」の説明

図26-18に示すタスク表示フォームは完成しており、デプロイする準備ができています。

図26-18 タスク表示フォーム(taskDetails.jspx)

図26-18の説明は次にあります。
「図26-18 タスク表示フォーム(taskDetails.jspx)」の説明

26.4.4 タスク表示フォーム作成時の処理内容

設計したフォームはtaskDetails.jspxファイルに保存されます。ファイルの場所は次のとおりです。

JDev_Oracle_Home\mywork\task_form_application_name\project_name\public_html

このタスク表示フォームはデプロイできます。 第26.8項「タスク・フローを使用したコンポジット・アプリケーションのデプロイ」を参照してください。

26.5 タスクXSD変更時のデータ・コントロールのリフレッシュ

タスク・メタデータが変更されると、そのタスク・メタデータに基づいて「データ・コントロール」ビューがリフレッシュされます(XSDの変更はリフレッシュされません)。 リフレッシュ機能によって、データ・コントロールが再作成されます。 図26-19に、「リフレッシュ」オプションを示します。

図26-19 データ・コントロールのリフレッシュ

図26-19の説明は次にあります。
「図26-19 データ・コントロールのリフレッシュ」の説明

データ・コントロールをリフレッシュする手順は、次のとおりです。

  1. データ・コントロールを右クリックします。

  2. 図26-20に示すように、「定義の編集」オプションを選択し、「データ・コントロールのリフレッシュ」ダイアログを表示します。

    図26-20 「データ・コントロールのリフレッシュ」ボタン

    図26-20の説明は次にあります。
    「図26-20 「データ・コントロールのリフレッシュ」ボタン」の説明

26.6 タスク・フロー・アプリケーションの保護

タスク・フローは、コンテナベースのセキュリティを使用して保護できます。 詳細は、第29.6.2.1.2項「アイデンティティ伝播のためのクライアント・アプリケーションの要件」を参照してください。 Webセキュリティには、フォームベース認証およびSSOベース認証を使用できます。

通知を電子メールで送信している場合は、「/notification/secure」を含むURLを取得してコンテナベースのセキュリティを使用しないでください。これには、SOA外部では作成できない内部コンテキストを使用してSOA APIがアクセスするためです。 URLパターンの内部セキュリティに、「/」(すべてのURL)および「//notification」を含めることはできません。

アイデンティティ伝播に必要な追加ステップはありません。 アイデンティティはサーバーEJBに自動的に伝播されます。

26.7 電子メール通知の作成

電子メール通知がヒューマン・タスクの一部として定義されている場合は、その電子メール通知を表示するためにタスク表示フォームが使用されます。 電子メール通知には、次のオプションがあります。

ヒューマン・タスク定義(.taskファイル)の一部として通知設定を確認するには、第29.2項「ヒューマン・ワークフローからの通知」を参照してください。

26.7.1 電子メール通知の作成方法

デフォルト・ページを送信せずに、コンテンツとレイアウトを指定したカスタム電子メール通知を送信するには、他のJSPXファイルを作成して、電子メール通知ページを設計します。 通知ページの作成には、カスタムおよび標準ドロップ・ハンドラを使用するか、電子メール通知ドロップ・ハンドラを使用します。さらに、次を実行します。

  • ルーターをタスク・フローに追加します。 このルーターは、タスク・フローに対して、bpmClientTypeページ・フロー・スコープ値に基づいた制御フローに従って、電子メール通知ページまたはデフォルト・ページのいずれかを送信するように指示します。

  • 生成されたインラインCSSを編集して、ページをカスタマイズします。 実行時には、追加のCSSは含まれておらず、ADF CSSは使用できません。 次の場所にあるサンプルのnotification-101およびnotification-102を参照してください。

    http://www.oracle.com/technology/sample_code/products/hwf
    
    
  • 画像をHTMLまたはJSFページから直接参照します(間接参照、たとえば、画像を順番に追加するJSFは許可されません)。

26.7.1.1 ルーターを使用したタスク・フローの作成

ルーターを使用した制御フロー・ケースでは、特定のパラメータに基づいて、特定ページにリクエストを渡すことができます。 ヒューマン・タスクに基づいたADFタスク・フローでは、電子メール通知用に特別なページが必要です。 この項では、電子メール通知用に特別なページを作成する方法を説明します。

ルーターを使用してタスク・フローを作成する手順は、次のとおりです。

  1. 「アプリケーション・ナビゲータ」でタスク・フロー・プロジェクトを展開し、project_name _TaskFlow.xmlをダブルクリックします。

    デザイナでXMLファイルが開きます。 ダイアグラム・ビューに、「taskDetails1.jspx」アイコンが表示されます。

  2. 「コンポーネント・パレット」から「ADFタスク・フロー」を選択し、「表示」アイコンをデザイナにドラッグします。

  3. アイコンの下にある「view1」をクリックし、電子メール通知ページの名前を入力します。

    図26-21に、「EmailPage」という名前の例を示します。

    図26-21 電子メール・ページの作成

    ビュー・アイコンの名前をEmailPageに変更
    「図26-21 電子メール・ページの作成」の説明

  4. 「コンポーネント・パレット」から「ルーター」をデザイナにドラッグします。

  5. アイコンの下の「router1」をクリックし、ルーター名を入力します。

    図26-23に、「PageRouter」という名前の例を示します。

  6. ルーターがコールされることを確認するには、図26-22に示すように、ルーター・アイコンを右クリックし、「アクティビティのマーク」「デフォルト・アクティビティ」の順にクリックします。

    図26-22 ルーターをデフォルト・アクティビティとしてマーク

    図26-22の説明は次にあります。
    「図26-22 ルーターをデフォルト・アクティビティとしてマーク」の説明

  7. 「ルーター」、「router_name」、「プロパティ・インスペクタ」タブの順にクリックします。

  8. 「デフォルト結果」フィールドにdefaultと入力します。

  9. 「追加」をクリックして、「結果」フィールドに電子メール通知ページの名前を入力します。

  10. 式ビルダを使用して、#{pageFlowScope.bpmClientType=="notificationClient"}「式」フィールドに入力します。

  11. 「コンポーネント・パレット」「制御フロー・ケース」をクリックします。

  12. デザイナで、ルーター・ページ・アイコンから「taskDetails1.jspx」にドラッグします。

    図26-23に示すように、制御フローには、「デフォルト」というラベルが自動的に付けられます。

    図26-23 制御フローの接続

    デフォルトのフロー制御
    「図26-23 制御フローの接続」の説明

  13. 「コンポーネント・パレット」「制御フロー・ケース」をクリックします。

  14. デザイナで、ルーター・ページ・アイコンから電子メール通知ページ・アイコンにドラッグします。

  15. control-flow-case、「email_page_name」、「プロパティ・インスペクタ」タブの順にクリックします。

  16. 「結果(自)」リストに、電子メール通知ページの名前を入力します。

    図26-24に、完成した制御フローを示します。

    図26-24 電子メール通知の完成した制御フロー

    EmailPageのプロパティ・インスペクタ
    「図26-24 電子メール通知の完成した制御フロー」の説明

電子メール通知ページの作成を続行するには、第26.7.1.2項「電子メール通知ページの作成」の手順1を参照してください。

26.7.1.2 電子メール通知ページの作成

電子メール通知ページの作成は、タスク表示フォームの作成と類似していますが、レイアウトとインライン・スタイルの定義が必要です。 デザイン情報については、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』を参照してください。

電子メール通知ページを作成する手順は、次のとおりです。

  1. デザイナで、「EmailPage」をダブルクリックします。

  2. 「JSFページの作成」ダイアログで、ファイル名およびディレクトリ情報を入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。

    デザイナで「EmailPage.jspx」タブが開きます。

  3. 「コンポーネント・パレット」からデザイナに共通コンポーネント(たとえば画像など)やレイアウト・コンポーネントのいずれかをドラッグします。

  4. レイアウト・コンポーネントを選択した場合は、位置合せやその他の詳細を「プロパティ・インスペクタ」タブで指定してください。

    図26-25に、「パネル・グループ・レイアウト」が選択されているときに使用できるレイアウト・フィールドを示します。

    図26-25 レイアウトの指定

    パネル・グループ・レイアウト
    「図26-25 レイアウトの指定」の説明

    パネル・グループ・レイアウトの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』を参照してください。

  5. 「外観」「スタイルおよびテーマ」「動作」「詳細」「カスタマイズ」および「注釈」を展開し、図26-26に示すように、その他の詳細を指定します。

    図26-26 レイアウトの指定: 詳細

    図26-26の説明は次にあります。
    「図26-26 レイアウトの指定: 詳細」の説明

    『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』のコンポーネント属性の設定方法に関する項を参照してください。

  6. 「データ・コントロール」パネルで、「ヒューマン・タスク」ノード、「getTaskDetails」ノード、「戻る」ノードの順に展開します。

  7. パネル・グループ・レイアウト領域に「タスク」をドラッグします。

  8. 図26-27に示すように、「ヒューマン・タスク」を選択し、次に「電子メールのタスク詳細」を選択します。

    図26-27 ヒューマン・タスクのドロップ・ハンドラ

    図26-27の説明は次にあります。
    「図26-27 ヒューマン・タスクのドロップ・ハンドラ」の説明

    このドロップ・ハンドラには、ヘッダーとともに、インライン・スタイル、ADFを使用するペイロード、およびインライン・スタイルを使用するコメントが含まれます。 ペイロードは動的に生成されるため、インライン・スタイルは含まれていません。

    通常、各コンポーネントの「ヘッダー」セクションにはインライン・スタイルがあるため、それぞれのコンポーネントの「コンテンツ」セクションでは同じスタイルを使用できます。

  9. 「アクション・バインディングの編集」ダイアログで、データ・コレクションを選択し、「OK」をクリックします。

これで、電子メール・タスク・フォームが完了し、デプロイする準備ができました。

26.7.2 電子メール通知ページ作成時の処理内容

電子メール通知ページは、電子メールのメッセージ本文にHTMLコンテンツとして送信されます。ページ上の画像は添付ファイルとしてインラインされています。相対URLは絶対URLに変換されます。

26.7.3 電子メール通知ページの作成に関する注意事項

フォームのフィールドに使用されているスタイルが電子メールに対して有効でない場合は、電子メールに通知が正しく表示されない場合があります。 このため、生成されたインラインCSSを編集して、ページをカスタマイズする必要がある場合があります。 詳細は、第26.7.1項「電子メール通知の作成方法」を参照してください。

セキュリティの問題によって、フォームが正しく表示されない場合もあります。 詳細は、第26.6項「タスク・フロー・アプリケーションの保護」を参照してください。

26.8 タスク・フローを使用したコンポジット・アプリケーションのデプロイ

ワークリスト・アプリケーションでタスク表示フォームを使用するには、その前に、タスク・フローが含まれているコンポジット・アプリケーションをデプロイする必要があります。 タスク・フローを使用してアプリケーションをデプロイするプロセスは、第26.8.2項「タスク・フローを使用したコンポジット・アプリケーションのデプロイ方法」で説明するように、SOAコンポジット・アプリケーションのデプロイと基本的に同じです。 詳細は、第43章「SOAコンポジット・アプリケーションのデプロイ」を参照してください。

26.8.1 タスク表示フォームをデプロイする前に: ポートの変更

RMIまたはHTTPポートのデフォルト値を使用していない場合は、Oracle JDeveloperのhwtaskflow.xmlファイルを開いて、値を変更します。 図26-28に、「アプリケーション・ナビゲータ」のファイルを示します。

図26-28 hwtaskflow.xmlファイル

図26-28の説明は次にあります。
「図26-28 hwtaskflow.xmlファイル」の説明

例26-1に、変更できる値とできない値に関するコメントがあるhwtaskflow.xmlファイルのサンプルを示します。

例26-1 hwtaskflow.xmlファイルのサンプル

<!--Sample hwtaskflow.xml file. This is required for successful deployment of an
ADF Task Flow Based on Human Task application. -->

<?xml version = '1.0' encoding = 'UTF-8'?>
<hwTaskFlows xmlns="http://xmlns.oracle.com/bpel/workflow/hwTaskFlowProperties">

   <!-- Name of the client application used to view the tasks, defaults to
 'worklist' -->

   <ApplicationName>worklist</ApplicationName>

   <!-- Type of ejb lookup used. If not specified, remote lookup is used. Values
 - LOCAL, REMOTE, SOAP -->
   <LookupType>LOCAL</LookupType>

   <!-- Do not modify this element. Value must be 'false' for deployment to
 complete successfully -->


   <TaskFlowDeploy>false</TaskFlowDeploy>

   <!-- Connection details for soa server for remote ejb lookup.
If not specified, default values for ejbProviderUrl is http://localhost/soa-infra
        , aliasKeyName is BPM_SERVICES, keyName is BPM_SERVICES  -->

   <SoaServer>
      <ejbProviderUrl/>
      <aliasKeyName/>
      <keyName/>
      <connectionName/>
   </SoaServer>

   <!-- Connection details for server on which task flow is deployed.
If not specified, default values for hostname is localhost,
        httpPort is 8888 and httpsPort is 443 --> -->

   <TaskFlowServer>
      <hostName/>
      <httpPort/>
      <httpsPort/>
   </TaskFlowServer>

    <!-- Task Flow specific properties -->

<hwTaskFlow>
  <WorkflowName></WorkflowName>
 <TaskDefinitionNamespace></TaskDefinitionNamespace>
  <TaskFlowId></TaskFlowId>
  <TaskFlowFileName></TaskFlowFileName>
 </hwTaskFlow>
</hwTaskFlows>

26.8.2 タスク・フローを使用したコンポジット・アプリケーションのデプロイ方法

次の手順を実行するには、アプリケーション・サーバー接続が必要です。

タスク・フローを使用してコンポジット・アプリケーションをデプロイする手順は、次のとおりです。

  1. コンポジット・アプリケーション名を右クリックし、「デプロイ」→「application_name」→「デプロイ先」→「application_server_connection」の順に選択します。

    接続していない場合は、「新規接続」を選択し、アプリケーション・サーバー接続ウィザードを使用します。

  2. 「デプロイメント・ターゲットの選択」ダイアログで、サーバー・インスタンスを選択します。

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

26.8.3 タスク表示フォームの再デプロイ方法

タスク表示フォームを変更して再度デプロイするときは、デプロイメント手順を繰り返します(タスク・フォーム・アプリケーション名を右クリックし、「デプロイ」)→「application_nameapplication_server_connection」の順に選択します)。フォームをアンデプロイするかどうかのメッセージが表示されます。「OK」をクリックし、再度タスク・フォームをデプロイします。

26.8.4 タスク・フローを別のアプリケーションとしてデプロイする方法

タスク・フローを別のアプリケーションとしてSOAコンポジット・アプリケーション外にデプロイする場合は、新しいアプリケーションとプロジェクトをそのタスク・フローのコンテナとして作成します。SOAコンポジット・アプリケーションをデプロイした後に、タスク・フロー・アプリケーションをデプロイします。

26.8.5 非SOAのOracle WebLogic Serverにタスク表示フォームをデプロイする方法

次の各項で説明する手順に従って、非SOAのOracle WebLogic Serverにタスク表示フォームをデプロイします。

26.8.5.1 非SOAのOracle WebLogic Serverへのoracle.soa.workflow.jarのデプロイ

非SOAのOracle WebLogic Serverには、oracle.soa.workflow.jar共有ライブラリが必要です。 このライブラリは、次の場所から入手できます。

ORACLE_JDEV_HOME\jdeveloper\soa\modules\oracle.soa.workflow_11.1.1

Oracle WebLogic Server管理コンソールを使用して、JARファイルをデプロイします。

oracle.soa.workflow.jarをデプロイする手順は、次のとおりです。

  1. Oracle WebLogic Server管理コンソールに移動します。

    http://remote_hostname:remote_portnumber/console
    
  2. 「ドメイン構造」領域で、「デプロイメント」をクリックします。

  3. 図26-29に示すように、「インストール」をクリックします。

    図26-29 Oracle WebLogic Server管理コンソール: 「デプロイメント」リスト

    図26-29の説明は次にあります。
    「図26-29 Oracle WebLogic Server管理コンソール: 「デプロイメント」リスト」の説明

  4. 「パス」フィールドに次のパスを入力し、「次へ」をクリックします。

    ORACLE_JDEV_HOME/jdeveloper/soa/modules/oracle.soa.workflow_11.1.1/oracle.soa.workflow.jar
    
  5. 図26-30に示すように、同じデプロイメントの名前を維持し、「次へ」をクリックします。

    図26-30 Oracle WebLogic Server管理コンソール: 「アプリケーション・インストール・アシスタント」

    図26-30の説明は次にあります。
    「図26-30 Oracle WebLogic Server管理コンソール: 「アプリケーション・インストール・アシスタント」」の説明

  6. ライブラリとしてデプロイ・オプションを選択し、「終了」をクリックします。

  7. 図26-31に示すように、oracle.soa.workflow(11.1.1,11.1.1)ライブラリが「アクティブ」状態であることを確認します。

    図26-31 Oracle WebLogic Server管理コンソール: 「アクティブ」状態のoracle.soa.workflow

    図26-31の説明は次にあります。
    「図26-31 Oracle WebLogic Server管理コンソール: 「アクティブ」状態のoracle.soa.workflow」の説明

第26.8.5.2項「非SOAのOracle WebLogic Serverでの外部JNDIプロバイダの定義」を参照して続行してください。

26.8.5.2 非SOAのOracle WebLogic Serverでの外部JNDIプロバイダの定義

Oracle WebLogic Server管理コンソールを使用して、次のタスクを実行します。

外部JNDIプロバイダを定義する手順は、次のとおりです。

  1. 「ドメイン構造」領域で、「サービス」を展開し、「外部JNDIプロバイダ」をクリックします。

  2. 「新規」をクリックします。

  3. 図26-32に示すように、「名前」フィールドにForeignJNDIProvider-SOAと入力し、「OK」をクリックします。

    図26-32 外部JNDIプロバイダの作成

    図26-32の説明は次にあります。
    「図26-32 外部JNDIプロバイダの作成」の説明

  4. 「ForeignJNDIProvider-SOA」リンクをクリックします。

  5. 次のように入力し、「保存」をクリックします。

    • 「初期コンテキスト・ファクトリ」に、weblogic.jndi.WLInitialContextFactoryと入力します。

    • 「プロバイダURL」に、t3://soa_hostname:soa_portnumber/soa-infraと入力します。

    • 「ユーザー」に、weblogicと入力します。

    • 「パスワード」に、weblogicと入力します。

    図26-33に、これらの情報を入力するページを示します。

    図26-33 外部JNDIプロバイダの定義

    図26-33の説明は次にあります。
    「図26-33 外部JNDIプロバイダの定義」の説明

第26.8.5.3項「非SOAのOracle WebLogic Serverでの外部JNDIプロバイダ・リンクの定義」を参照して続行してください。

26.8.5.3 非SOAのOracle WebLogic Serverでの外部JNDIプロバイダ・リンクの定義

Oracle WebLogic Server管理コンソールを使用して、次のタスクを実行します。

外部JNDIプロバイダ・リンクを定義する手順は、次のとおりです。

  1. 「ドメイン構造」領域で、「サービス」を展開し、「外部JNDIプロバイダ」をクリックします。

  2. 「ForeignJNDIProvider-SOA」リンクをクリックします。

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

  4. 「新規」をクリックします。

    図26-34に、「リンク」タブを示します。

    図26-34 外部JNDIプロバイダ・リンクの定義: 「リンク」タブ

    図26-34の説明は次にあります。
    「図26-34 外部JNDIプロバイダ・リンクの定義: 「リンク」タブ」の説明

  5. 次のように入力し、「OK」をクリックします。

    • 「名前」に、RuntimeConfigServiceと入力します。

    • 「ローカルJNDI名」に、RuntimeConfigServiceと入力します。

    • 「リモートJNDI名」に、RuntimeConfigServiceと入力します。

    図26-35に、これらを入力するページを示します。

    図26-35 外部JNDIプロバイダ・リンクの定義: リンクのプロパティ

    図26-35の説明は次にあります。
    「図26-35 外部JNDIプロバイダ・リンクの定義: リンクのプロパティ」の説明

  6. 次のように入力し、「OK」をクリックします。

    • 「名前」、「ローカルJNDI名」、「リモートJNDI名」に、ejb/bpel/services/workflow/TaskServiceBeanと入力します。

    • 「名前」、「ローカルJNDI名」、「リモートJNDI名」に、ejb/bpel/services/workflow/TaskMetadataServiceBeanと入力します。

    • 「名前」、「ローカルJNDI名」、「リモートJNDI名」に、TaskReportServiceBeanと入力します。

    • 「名前」、「ローカルJNDI名」、「リモートJNDI名」に、TaskEvidenceServiceBeanと入力します。

    • 「名前」、「ローカルJNDI名」、「リモートJNDI名」に、TaskQueryServiceと入力します。

    • 「名前」、「ローカルJNDI名」、「リモートJNDI名」に、UserMetadataServiceと入力します。

第26.8.5.4項「bpm-services.jarに対する権限付与を含める方法」を参照して続行してください。

26.8.5.4 bpm-services.jarに対する権限付与を含める方法

bpm-services.jarに対する権限付与を含めるには、system-jazn-data.xmlファイルを編集し、非SOAのOracle WebLogic Serverを再起動します。

bpm-services.jarに対する権限付与を含める手順は、次のとおりです。

  1. ドメイン・ディレクトリ「soa-infra」に移動し、次の場所に移動して、system-jazn-data.xmlファイルを検索します。

    ORACLE_WEBLOGIC_INSTALL/user_projects/domains/your_domain_name/config/fmwconfig
    
  2. system-jazn-data.xmlに、次の権限付与を追加します (全部または一部の権限付与が存在する場合は、欠落している部分のみ追加します)。

    <grant>
      <grantee>
       <codesource>
        <url>file: ORACLE_JDEV_HOME/jdeveloper/soa/modules/oracle.soa.workflow_
    11.1.1/bpm-services.jar</url>
       </codesource>
      </grantee>
      <permissions>
       <permission>
        <class>oracle.security.jps.JpsPermission</class>
        <name>VerificationService.createInternalWorkflowContext</name>
       </permission>
      <permission>
      <class>oracle.security.jps.service.credstore.CredentialAccessPermission
      </class>
      <name>credstoressp.credstore.BPM-CRYPTO.BPM-CRYPTO</name>
      <actions>read,write</actions>
      </permission>
      <permission>
       <class>oracle.security.jps.JpsPermission</class>
       <name>IdentityAssertion</name>
       <actions>*</actions>
      </permission>
     </permissions>
    </grant>
    
  3. 非SOAのOracle WebLogic Serverを再起動します。

第26.8.5.5項「アプリケーションのデプロイ」を参照して続行してください。

26.8.5.5 アプリケーションのデプロイ

タスク表示フォームを含むアプリケーションは、他のアプリケーションをデプロイする方法と同じ方法で非SOAのOracle WebLogic Serverにデプロイします。 アプリケーション・サーバー接続を設定するときは、非SOAサーバー上のドメイン(第26.8.5.4項「bpm-services.jarに対する権限付与を含める方法」の手順1で指定したドメイン)を指定します。 アプリケーションのデプロイについては、第43章「SOAコンポジット・アプリケーションのデプロイ」を参照してください。

26.8.6 タスク表示フォームのデプロイ時の処理内容

タスク・フォームがデプロイされると、タスク・メタデータとタスク・フロー・アプリケーションURL間の関連付けが自動的に作成されます。 このマッピングを更新するには、Oracle Enterprise Manager 11g Fusion Middleware Controlを使用します。 特定のSOAコンポジット・アプリケーションについては、「コンポーネント・メトリック」表のタスク・フロー・コンポーネントにアクセスします。 「管理」タブに、タスク・フォームのURIが表示されます。 詳細は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』を参照してください。 タスク・フローがHTTPSアクセス用に構成されている場合は、Enterprise Managerでの追加設定が必要になる場合があります。

タスクの操作方法については、第27章「Oracle BPM Worklistの使用」を参照してください。


注意:

Oracle WebLogic Server管理コンソールで以前設定したホスト名とポート番号とは異なるポート番号を持つ別のURLからタスク表示フォームにアクセスする場合、タスクの詳細をワークリストに正しく表示するには、Oracle WebLogic Server管理コンソールでフロント・エンドのポート番号を変更し、タスク表示フォームを再デプロイする必要があります。

26.9 ワークリストでのタスク表示フォームの表示

タスク表示フォームは、Oracle BPM Worklistに表示されており、ユーザーが割り当てられたヒューマン・タスクを操作するWebベースのインタフェースです。ユーザーの権限によって特定のアクションが使用可能または不可能となります。

図26-36に、ワークリスト・アプリケーションの「タスクの詳細」ページに表示されるヘルプ・デスク・リクエスト例のタスク表示フォームを示します。

図26-36 ワークリストの「タスクの詳細」ページ

図26-36の説明は次にあります。
「図26-36 ワークリストの「タスクの詳細」ページ」の説明

26.9.1 ワークリストでのタスク表示フォームの表示方法

タスク表示フォームは、ログイン後にOracle BPM Worklistで使用可能になります。手順については、第27.2.1項「ワークリストへのログイン方法」を参照してください。

26.10 電子メール通知でのタスクの表示

図26-37に、電子メールに表示される電子メール・タスク通知を示します。

図26-37 電子メール・タスク通知

図26-37の説明は次にあります。
「図26-37 電子メール・タスク通知」の説明

選択可能なアクションとして「解決済」または「未解決」をクリックするか、「ワークリスト・アプリケーション」リンクをクリックすると、ワークリストにログインできます。 アクションをクリックすると電子メール作成ウィンドウが表示され、このウィンドウでは、コメントを追加して、電子メールを送信できます。