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

Oracle JDeveloperのADFタスク・フローを使用して、ヒューマン・タスクのタスク・フォームを設計してカスタマイズする方法を学習します。ヒューマン・タスクを使用すると、ユーザーはビジネス・プロセスと相互作用できます。それぞれのタスクには、タスク・メタデータとタスク・フォームという2つの部分があります。タスク・フォームは、タスクのコンテンツをユーザーのワークリストに表示するために使用されます。

Oracle BPM Worklistには、ユーザーまたはグループに割り当てられているすべてのワークリスト・タスクが表示されます。ワークリスト・ユーザーが特定のタスクにドリルダウンすると、タスク・フォームにはそのタスクの詳細が表示されます。

ヒューマン・ワークフロー問題のトラブルシューティングの詳細は、『Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理』ヒューマン・ワークフローのトラブルシューティングに関する項を参照してください。

30.1 タスク・フォームの概要

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

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

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

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

図30-1の説明が続きます
「図30-1 Oracle JDeveloperの「ヒューマン・タスクに基づいたADFタスク・フロー」」の説明

30.1.1 タスク・フォームに関する必知事項: タイムゾーン変換

タスク・フォームの作成時には、タスク・ペイロードの日時要素に対してタイムゾーン変換が自動的に行われません。日時要素でタイムゾーン変換を有効にするには、<af:convertDateTime>タグを追加する必要があります。標準的なタスク・ヘッダーの時間ラベルを例として参照してください。次の例はヘッダーのサンプルです。

<af:outputText value="#{bindings.createdDate.inputValue}"
                        id="ot15">
         <f:convertDateTime type="#{pageFlowScope.dt}"
                              timeZone="#{pageFlowScope.tz}"
                              dateStyle="#{pageFlowScope.df}"
                              timeStyle="#{pageFlowScope.tf}"/>
         </af:outputText> 

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

ヒューマン・タスクに基づいてADFタスク・フローを作成する場合は、タスク・メタデータ・ファイルを選択して、データ・コントロールを生成する必要があります。データ・コントロールは、ページ内のコンテンツのレイアウトを行うために使用され、実行時にはワークフロー・サービス・エンジンに接続して、タスク・コンテンツを取得し、タスクを操作します。

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

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

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

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

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

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

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

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

ADFタスク・フォームでは、ユーザー入力は検証されません。実行されるのは、必須入力に値があるかどうかの検証のみです。タスク・フォームを確認して、必要に応じて追加のバリデータを追加する必要があります。

30.3.1 ヒューマン・タスク・エディタからADFタスク・フローを作成する方法

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

ヒューマン・タスクに対してADFタスク・フローを作成するには:

  1. SOAコンポジット・アプリケーション内でBPELプロセスを開きます。
  2. ヒューマン・タスク・アクティビティをダブルクリックし、「編集」をクリックします。

    図30-2に、「Human Task」ダイアログを示します。

    図30-2 ヒューマン・タスクの編集

    図30-2の説明が続きます
    「図30-2 ヒューマン・タスクの編集」の説明
  3. 「.task」タブ(図30-3を参照)で、「フォーム」をクリックして「タスク・フォームの自動生成」を選択します。

    図30-3 ヒューマン・タスク・エディタでのタスク・フローの作成

    図30-3の説明が続きます
    「図30-3 ヒューマン・タスク・エディタでのタスク・フローの作成」の説明
  4. プロジェクト名とディレクトリ・パスを入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。

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

    図30-4 「taskDetails1_jspx」アイコン

    図30-4の説明が続きます
    「図30-4 「taskDetails1_jspx」アイコン」の説明

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

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

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

ヒューマン・タスクに基づいてADFタスク・フローを作成するには:

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

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

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

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

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

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

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

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

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

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

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

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

    図30-4に示すように、「taskDetails1_jspx」アイコンがデザイナに表示されます。このタスク・フローには、ビュー、コントロール・フローおよびタスク・リターンがあります。

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

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

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

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

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

図30-5に示すように、ヒューマン・タスクを意識したデータ・コントロールがOracle JDeveloperの「アプリケーション」ウィンドウの「データ・コントロール」パネルに表示されます。

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

図30-5の説明が続きます
「図30-5 「データ・コントロール」パネルのタスク・コレクション」の説明

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

30.3.4 異なるメタ属性が指定された同じ要素を含む複数のADFタスク・フローに関する必知事項

同じ要素を含むが異なるメタ属性が指定されている(たとえば、編集可能と編集不可)ADFタスク・フローを複数作成する場合は、それぞれを個別に作成する必要があります。

たとえば、次のタスクを実行するとします。

  1. SOAコンポジット・アプリケーションのタスク・フォーム・アプリケーションを2つ作成します。

    • 1つのタスク・フォーム・アプリケーション(たとえば、銀行詳細入力タスクの「EnterBankDetails.task」)には、1つの編集可能ペイロード(たとえば、BankDetails)と1つの編集不可ペイロード(たとえば、Employee)が含まれます。

    • もう1つのタスク・フォーム・アプリケーション(たとえば、個人情報検証タスクの「ValidatePersonalInformation.task」)には、1つの編集可能ペイロード(たとえば、Employee)が含まれます。

    タスク・フォームを作成するとき、ウィザードでは、ペイロードEmployeeのADF表を定義するオプションが提示されます。

  2. ウィザードを完了し、プロセスをデプロイします。

  3. プロセスを起動します。

  4. Oracle BPM Worklistにログインします。

    個人情報検証タスク(ValidatePersonalInformation.task)があります。

  5. タスクを選択します。

    Employeeの詳細は変更可能です。

  6. 新規レコードを追加し、タスクを承認します。

  7. 次に、銀行詳細入力タスク(EnterBankDetails.task)を選択します。Employeeは編集不可のペイロードですが、タスク・フォームでは、Employeeデータに対して「新規挿入」ボタンと「削除」ボタンが表示されます。

  8. 「削除」をクリックし、「承認」を選択します。ペイロードが削除されます。

これで、2つのADFタスク・フロー・アプリケーションが作成され、両方にEmployee要素が含まれるが、異なるメタ属性が指定されている(編集可能と編集不可)ことを確認してください。

30.4 タスク・フォームの作成

タスク・フォームは、「タスク・フォームの自動生成」オプション、「タスク・フォーム・ウィザードの起動」オプション、またはヒューマン・タスクのドロップ・ハンドラを使用して作成できます。

ノート:

タスク・フォーム名は、大文字か小文字の英字で始まる必要があります。使用できるのは、英字とゼロ(0)から9までの数字のみです。

30.4.1 自動生成タスク・フォームの作成方法

タスク・フォームを自動生成すると、デフォルト・テンプレートが開き、その後、このテンプレートを変更できます。

自動生成タスク・フォームを作成するには:

  1. SOAコンポジット・アプリケーション内でBPELプロセスを開きます。
  2. ヒューマン・タスク・アクティビティをダブルクリックし、「編集」をクリックします。
  3. 図30-6に示すように、「.task」エディタで、「フォームの作成」をクリックして「タスク・フォームの自動生成」を選択します。

    図30-6 タスク・フォームの作成

    図30-6の説明が続きます
    「図30-6 タスク・フォームの作成」の説明
  4. プロジェクト名とディレクトリ・パスを入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。

    デフォルトのフォームが「taskDetails1.jspx」タブに開きます。ApprovalHumanTaskのデフォルトのフォームを図30-7に示します。

    図30-7 ApprovalHumanTaskの自動生成タスク・フォーム

    図30-7の説明が続きます
    「図30-7 ApprovalHumanTaskの自動生成タスク・フォーム」の説明

30.4.2 カスタム・ページ・テンプレートにライブラリJARファイルを登録する方法

必要に応じて、カスタム・タスク・フォーム・ウィザードで独自のカスタム・ページ・テンプレートを指定できます。「カスタム・タスク・フォーム・ウィザードを使用したタスク・フォームの作成方法」の説明に従って、カスタム・タスク・フォーム・ウィザードの「名前および定義」ページで「カスタム」を選択し、ライブラリおよび.jspxテンプレートを選択します。

前提条件として、まずOracle JDeveloperにライブラリJARファイルを登録する必要があります。

カスタム・ページ・テンプレートにライブラリJARファイルを作成するには:

  1. 「ツール」メニューから、「ライブラリの管理」を選択します。
  2. 「新規」をクリックします。

    「ライブラリの作成」ダイアログが表示されます。

  3. 「クラスパス」をハイライトして、「エントリの追加」をクリックします。

    「パス・エントリの選択」ダイアログが表示されます。

  4. ライブラリのクラス・パスを選択して、「選択」をクリックします。

    「クラスパス」の下にクラス・パスが表示され、「ライブラリ名」フィールドにライブラリJARファイル名が表示されます。選択したライブラリ名が接尾辞.jarで終わることを確認してください。図30-8に詳細を示します。

    図30-8 カスタム・ライブラリJARファイル

    図30-8の説明が続きます
    「図30-8 カスタム・ライブラリJARファイル」の説明
  5. 「デフォルトでデプロイ済」チェック・ボックスを選択します。
  6. 「OK」をクリックします。

    カスタム・タスク・フォーム・ウィザードの実行時に、「名前および定義」ページで「カスタム」ラジオ・ボタンを選択してから、登録するライブラリおよびテンプレートを選択します。

30.4.3 カスタム・タスク・フォーム・ウィザードを使用したタスク・フォームの作成方法

このウィザードでは、ADFページ・テンプレートおよび標準化されたタスク・リージョンを使用してタスク・フォームを作成できます。次のいずれかのページ・テンプレートを使用できます。

  • 次の場所で自動的に提供されるデフォルト・ページ・テンプレート:

    [JDeveloper_Home}/jdeveloper/soa/modules/oracle.soa.worklist_11.1.1/adflibWorklistComponents.jar
    

    デフォルトのページ・テンプレートは次のとおりです。

    • 非タブ付きのデフォルト・テンプレート: taskDetailsTemplate.jspx

    • ペイロードとコメント、添付および履歴セクションが別個のタブに表示されるタブ付きテンプレート: taskDetailsTemplate2.jspx

    カスタム・タスク・フロー・ウィザードの「名前および定義」ページで、「パッケージ済」を選択し、「デフォルト」または「タブ付き」のいずれかを選択します。

  • ユーザーが定義するカスタム・ページ・テンプレート。カスタム・タスク・フロー・ウィザードの「名前および定義」ページで、「カスタム」を選択し、ライブラリ名およびテンプレート名を選択します。

    ページ・テンプレートとそのアーティファクトをADFライブラリJARファイルにパッケージします。これらのJARファイルは、他のOracleライブラリ・コンポーネントと同様にパッケージ化、デプロイ、検出および使用できます。ウィザードで、JAR名およびJARでのテンプレートの場所を指定するように求められます。

ページ・テンプレートでは、ページの特定の属性値など、ページ・レイアウト全体を定義できます。テンプレートを使用してページを作成すると、定義したレイアウトがすべて継承されます。テンプレートのレイアウトを変更すると、テンプレートを使用するすべてのページでレイアウト変更が自動的に反映されます。

ウィザードで使用されるテンプレートでは、次の6つのファセットのコンテンツが生成されます。

  • アクション

  • 添付

  • 本文

  • コメント

  • ヘッダー

  • 履歴

アクション、ヘッダーおよび本文のファセットでは、表示するコンテンツと属性を選択し、レイアウトを微調整できます。

6つのファセットはすべてデフォルト・ページ・テンプレートで定義されます。カスタム・テンプレートの場合は、これらの正確なファセット名をテンプレートで使用します。テンプレートにこれらのファセットが含まれていない場合は、JSPXファイルでファセットのコンテンツが生成されません。

カスタム・タスク・フォームを作成するには:

  1. SOAコンポジット・アプリケーション内でBPELプロセスを開きます。
  2. ヒューマン・タスク・アクティビティをダブルクリックし、「編集」アイコンをクリックします。

    ヒューマン・タスク・エディタが表示されます。

  3. エディタの上にある「フォーム」をクリックし、「タスク・フォーム・ウィザードの起動」を選択します。
  4. プロジェクト名とディレクトリ・パスを入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。図30-9に示すように、カスタム・フォーム・ウィザードに「名前および定義」画面が表示されます。

    図30-9 カスタム・タスク・フォーム・ウィザード: フォーム名および定義

    図30-9の説明が続きます
    「図30-9 カスタム・タスク・フォーム・ウィザード: フォーム名および定義」の説明
  5. 「フォーム名」フィールドに、ウィザードの最後に生成されるフォーム(.jspxファイル)の名前を指定します。名前を指定しない場合は、デフォルト名(Humantasknumber_Form)が指定されます。有効な文字が名前に使用されていることを確認してください。空白は許可されていません。
  6. 「タスク・フロー名」(つまり、ウィザードの最後に生成されるADFタスク・フローの名前)を指定します。デフォルトの名前であるHumantasknumber_TaskFlowを受け入れるか、別の名前を指定します。
  7. 「ページ・テンプレート」セクションで、次のいずれかを選択します。

    「次へ」をクリックします。「ヘッダー・ページ」が表示されます。

  8. 図30-10に示すように、「ヘッダー・ページ」で次の手順を実行し、「次へ」をクリックします。
    • 「Actionsファセット」セクションで、タスク・フォームのタイトル・バーに含める次のオプションを選択します。

      他のアクション(メニュー): タスクに対して可能なシステム・アクションがリストされます。たとえば、「情報のリクエスト」「再割当て」「期限更新」「一時停止」「エスカレート」「保存」などです。

      結果(ボタン): ヒューマン・タスクで定義したタスク・アクション(タスクの結果の設定など)のボタンが表示されます。

    • 「Headerファセット」セクションで、表示列の数を入力します。各ヘッダー・ラベルを個別の列に表示する場合は、「選択済」リストに移動するヘッダーの数と同じ数を入力します。ここで「1」と入力し、7つのヘッダーを選択すると、7つすべてのヘッダーが1つの列に表示されます。

    • ヘッダー・ラベルを「選択済」リストに移動し、必要に応じて順序を変更します。

      図30-10 カスタム・タスク・フォーム・ウィザード: ヘッダーの設定

      図30-10の説明が続きます
      「図30-10 カスタム・タスク・フォーム・ウィザード: ヘッダーの設定」の説明
  9. 図30-11に示すように、「本文」ページの「Bodyファセット」セクションで、次の手順を実行してフォームを設定し、「次へ」をクリックします。
    • 本文パネルを説明するタイトルを入力します。

    • 行1の列数を入力します。単純なフォームの場合は、ヘッダー列の数として入力したのと同じ数を入力できます。

    • 「追加」(+)ボタンをクリックして、行を追加します。新しい行ごとに、列の数を指定することもできます。行ごとに独自の列レイアウトを設定できます。たとえば、各行の列ごとに本文ページを作成して、「行1」、「列1」のようにラベルを付けることができます。

      図30-11 カスタム・タスク・フォーム・ウィザード: 本文の設定

      図30-11の説明が続きます
      「図30-11 カスタム・タスク・フォーム・ウィザード: 本文の設定」の説明

      ノート:

      ペイロード・データが表示されていない行または列を指定すると、空のパネル・グループが表示されます。この空のセクションでは、後でデータ・コントロールを使用してコンテンツをフォームに追加できます。

  10. 図30-12に示すように、「行1 列1」ページで、ペイロードの全部または一部を「選択済」リストに移動して、「次へ」をクリックします。

    図30-12 カスタム・タスク・フォーム・ウィザード: 本文フィールドの選択

    図30-12の説明が続きます
    「図30-12 カスタム・タスク・フォーム・ウィザード: 本文フィールドの選択」の説明
  11. 「行1 列1」ページの後の「行nn」ページでは、ステップ10を繰り返して「次へ」をクリックします。

    表示される「フッター」ページは、ステップ6で「名前および定義」ページで選択したページ・テンプレート(デフォルト・ページ・テンプレートまたはカスタム・ページ・テンプレートのいずれか)に応じて異なります。

    「デフォルト・ページ・テンプレート」を選択した場合は、図30-13に示される「フッター」ページが表示されます。フッターに含めないコメント、添付または履歴のファセットの選択を解除し、「次へ」をクリックします。デフォルトで、コメント、添付および履歴のファセットはすべて選択されています。

    図30-13 カスタム・タスク・フォーム・ウィザード: デフォルト・ページ・テンプレートのフッター・フィールドの選択

    図30-13の説明が続きます
    「図30-13 カスタム・タスク・フォーム・ウィザード: デフォルト・ページ・テンプレートのフッター・フィールドの選択」の説明
  12. 図30-14に示すように、「サマリー」ページで選択内容を確認します。「戻る」をクリックして変更を行うか、「終了」をクリックします。

    このフォームはADFタスク・フローとして作成され、プロジェクトに追加されます。

    図30-14 カスタム・タスク・フォーム・ウィザード: サマリー

    図30-14の説明が続きます
    「図30-14 カスタム・タスク・フォーム・ウィザード: サマリー」の説明

    図30-15(タブ上部)および図30-16(タブ下部)に示すように、デザイナが初期化され、「form_name.jspx」タブが表示されます。

    図30-15 カスタム・タスク・フォーム(タブ上部)

    図30-15の説明が続きます
    「図30-15 カスタム・タスク・フォーム(タブ上部)」の説明

    図30-16 カスタム・タスク・フォーム(タブ下部)

    図30-16の説明が続きます
    「図30-16 カスタム・タスク・フォーム(タブ下部)」の説明

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

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

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

図30-17の説明が続きます
「図30-17 タスク・フォームを作成するためのヒューマン・タスクのドロップ・ハンドラ」の説明

タスク・フォームの作成には、他のADFドロップ・ハンドラ(図30-17に示すフォーム、表、ツリーなど)を使用することもできます。

「ペイロードを持つ完了済タスク」ドロップ・ハンドラを使用してタスク・フォームを作成するには:

  1. デザイナで、「taskDetails1_jspx」をダブルクリックします。
  2. 「JSFページの作成」ダイアログで、ファイル名およびディレクトリ情報を入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。
  3. 「アプリケーション」ウィンドウの「データ・コントロール」パネルで、ヒューマン・タスク・ノード、「getTaskDetails」ノード、「戻る」ノードの順に開きます。
  4. 「タスク」アイコンを「taskDetails.jspx」ウィンドウにドラッグします。
  5. 「ヒューマン・タスク」を選択し、次に「ペイロードを持つ完了済タスク」を選択します。
  6. 図30-18に示すように、「アクション・バインディングの編集」ダイアログで「OK」をクリックします。

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

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

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

    図30-19の説明が続きます
    「図30-19 データ・コレクションおよびアクションの選択」の説明

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

    図30-20 タスク・フォーム

    図30-20の説明が続きます
    「図30-20 タスク・フォーム」の説明
30.4.4.1 ペイロードを持つ完了済タスク

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

  • すべてのテキスト・ノードはテキスト入力フィールドとして作成されます。

  • 要素にmaxOccurs="unbounded"がある場合は、表として表示されます。

  • ネストされた表は表示されません。つまり、要素がmaxOccurs="unbounded"maxOccurs="unbounded"の子がある場合、子要素は表示されません。

  • ネストのレベルが複数ある場合は、個々のセクションをドラッグ・アンド・ドロップして、標準ADFドロップ・ハンドラの1つを使用します。

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

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

30.4.4.3 電子メールのタスク詳細

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

図30-21 電子メール通知のタスク・フォーム

図30-21の説明が続きます
「図30-21 電子メール通知のタスク・フォーム」の説明

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

30.4.4.4 タスク・ヘッダー

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

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

図30-22 ヘッダー情報

図30-22の説明が続きます
「図30-22 ヘッダー情報」の説明

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

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

図30-23の説明が続きます
「図30-23 タスク・ヘッダー: タスク・アクションのボタン」の説明
30.4.4.5 タスク・アクション

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

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

  • 申告—グループまたは複数のユーザーに割り当てられているタスクが最初に申告されます。「申告」は、グループまたは複数ユーザー割当ての「タスク・アクション」リストで選択可能な唯一のアクションです。タスクが申告されると、すべての適用可能なアクションがリストされます。

    ノート:

    • FYIタスクが複数のユーザーに送信される場合、タスクを終了するには、最初に「申告」ボタンを選択してタスクを申告する必要があります。

    • プッシュバックは、グループ投票ではなく単一承認者で機能するように設計されています。グループ投票(またはパラレル)シナリオを含むステージから別ステージへのプッシュバックは、許可されません。同様に、単一の割当て先からグループ投票(またはパラレル)シナリオにプッシュバックすることもできません。

  • 終了—このアクションは、ユーザーはタスクで受信を確認する必要があるが、アクションは実行しないタスク(FYIなど)で使用します。

  • 再開「一時停止」アクションによって停止したタスクを再開できます。「一時停止」を参照してください。

  • 情報のリクエスト—タスク作成者や前の割当て先に詳細情報をリクエストできます。再承認が不要な場合、タスクは次の承認者か、ビジネス・プロセスの次のステップに割り当てられます。

  • 再割当て—マネージャは報告先にタスクを再割当てできます。「再割当て」オプションでは、「委任」機能も提供されます。この機能を使用すると、タスクを他のユーザーまたはグループに委任できます。委任されたタスクは、元のユーザーと委任されたユーザーの両方のワークリストに表示されます。委任先ユーザーは、元の割当て先のかわりにタスクを操作でき、そのタスクに対しては元の割当て先と同じ権限を持ちます。

  • ルート—承認者の順序が事前に決定されていない場合や、ワークフローが非定型ルーティングを許可するように設計されている場合は、タスクを非定型方式でルーティングできます。このようなタスクの場合は、「タスクの詳細」ページに「ルート」ボタンが表示されます。「ルーティング」ページから、ルーティングに使用する1人以上のユーザーをルックアップできます。複数の割当て先を指定する場合は、割当て先リストの対象として、単純割当て(ユーザー全員へのグループ割当て)、順次割当てまたはパラレル割当てのいずれかを選択できます。パラレル割当ての場合は、承認に必要な得票率を指定します。

  • 取消—タスクをキャンセルできるのは、タスク作成者のみです。オプションのコメントがある場合は、「コメント」領域を使用できます。この場合は、ビジネス・プロセスによって、次の処理内容が決定されます。

  • プッシュバック—このアクションは、ワークフロー内で1レベル上のタスクを前の割当て先に送信します。ノート: プッシュバックは、グループ投票ではなく単一承認者で機能するように設計されています。グループ投票(またはパラレル)シナリオを含むステージから別ステージへのプッシュバックは、許可されません。同様に、単一の割当て先からグループ投票(またはパラレル)シナリオにプッシュバックすることもできません。

  • エスカレート—エスカレートされたタスクはユーザーのマネージャに割り当てられます。オプションのコメントがある場合は、「コメント」領域を使用できます。

  • リリース—タスクをリリースすると、他の割当て先が利用できるようになります。グループまたは複数のユーザーに割り当てられているタスクは、他の割当て先が申告できるようになります。

  • 一時停止—このアクションは、タスクが再開されるまで、有効期限を延期します。タスクの一時停止と再開を実行できるのは、BPMWorkflowSuspendロールを付与されているユーザーのみです。その他のユーザーは、タスク・フィルタで「前へ」を選択するか、「一時停止」ステータスのタスクを検索することで、このタスクにアクセスできます。タスクを更新する各種ボタンは、一時停止後は無効になります。

  • 期限更新—タスクを更新すると、タスクの有効期限が7日間延長されます(デフォルトはP7D)。更新期間は、Oracle Enterprise Manager Grid Controlから制御されます。期限更新は、タスク履歴に表示されます。オプションのコメントがある場合は、「コメント」領域を使用できます。

  • 保存—タスクへの変更が保存されます。

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

30.4.4.6 タスク履歴

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

  • バージョン番号

  • 参加者名—タスクを操作したユーザー

  • アクション—たとえば、タスクが承認済または割当て済かどうか

  • 更新者—最後にタスクを更新したユーザーの名前

  • アクション日

Oracle BPM Worklistでのタスク履歴の表示方法(履歴スナップショットの取得、今後の参加者のリスト表示、およびフル・タスク・アクションのリスト表示を実行するオプションを含む)は、図32-20および図32-21を参照してください。

30.4.4.7 タスクのコメントと添付

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

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

図30-24に、「コメント」リージョンと「添付」リージョンの例を示します。

図30-24 「コメント」リージョンと「添付」リージョン

図30-24の説明が続きます
「図30-24 「コメント」リージョンと「添付」リージョン」の説明

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

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

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

図30-25の説明が続きます
「図30-25 ヒューマン・タスクのドロップ・ハンドラの使用」の説明

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

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

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

個別のドロップ・ハンドラを使用してタスク・フォーム・リージョンを作成するには:

  1. デザイナで、「taskDetails1.jspx」をダブルクリックします。
  2. 「JSFページの作成」ダイアログで、ファイル名およびディレクトリ情報を入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。
  3. 「アプリケーション」ウィンドウの「データ・コントロール」パネルで、ヒューマン・タスク・ノード、「getTaskDetails」ノード、「戻る」ノードの順に開きます。
  4. 「タスク」アイコンを「taskDetails.jspx」ウィンドウにドラッグします。
  5. 「ヒューマン・タスク」を選択し、次に「タスク・ヘッダー」を選択します。

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

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

    図30-26の説明が続きます
    「図30-26 タスク・フォームの設計: タスク・アクションのボタン」の説明

    図30-27 タスク・フォームの設計: タスク・ヘッダー

    図30-27の説明が続きます
    「図30-27 タスク・フォームの設計: タスク・ヘッダー」の説明
  6. 「タスク」アイコンをJSPXデザイナに追加ドラッグします。この作業を行うたびに次のオプションを選択します。
    • 「ヒューマン・タスク」、次に「タスク履歴」

    • 「ヒューマン・タスク」、次に「タスク・コメントおよび添付」

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

タスク・フォームの作成を続行するには、「タスク・フォームへのペイロードの追加方法」のステップ1を参照してください。

30.4.6 タスク・フォームへのペイロードの追加方法

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

ペイロードをタスク・フォームに追加するには:

  1. 「コンポーネント」ウィンドウから、「ADF Faces」を選択します。
  2. 「レイアウト」を展開します。
  3. 「パネル・グループ・レイアウト」「ヘッダー」「コメント」セクションの間にドラッグします。
  4. 「データ・コントロール」パネルで「タスク」を展開し、次に「ペイロード」を展開します。
  5. ペイロード・データ・コレクションを「パネル・グループ・レイアウト」領域の左にドラッグします。

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

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

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

    図30-28の説明が続きます
    「図30-28 タスク・フォームのペイロード・リージョンへのADF読取り専用フィールドの追加」の説明
  7. 「フォーム・フィールドの編集」ダイアログで、デフォルトをそのまま使用し、「OK」をクリックします。

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

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

    図30-29 タスク・フォームのペイロード・リージョン

    図30-29の説明が続きます
    「図30-29 タスク・フォームのペイロード・リージョン」の説明

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

図30-30 タスク・フォーム(taskDetails.jspx)

図30-30の説明が続きます
「図30-30 タスク・フォーム(taskDetails.jspx)」の説明

30.4.7 タスク・フォーム作成時の処理内容

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

JDev_Oracle_Home\mywork\task_form_application_name\project_name\public_html

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

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

タスク・メタデータが変更された場合、そのタスク・メタデータに基づく「データ・コントロール」ビューをリフレッシュします(XSD変更はリフレッシュされません)。

リフレッシュ機能により、データ・コントロールが再作成されます。図30-31「リフレッシュ」オプションを示します。

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

図30-31の説明が続きます
「図30-31 データ・コントロールのリフレッシュ」の説明

データ・コントロールをリフレッシュするには:

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

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

    図30-32の説明が続きます
    「図30-32 「データ・コントロールのリフレッシュ」ボタン」の説明

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

タスク・フローは、コンテナベースのセキュリティを使用して保護できます。

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

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

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

30.7 電子メール通知の作成

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

電子メール通知には、次のオプションがあります。

  • デフォルト電子メール通知—ヒューマン・タスク用に作成するタスク・フォームの最初のページを使用します。コンテンツはHTMLベースの電子メールとして送信されます。タスク・フローの画像は、接続切断モードでも通知を表示できるように添付に含まれています。「ペイロードを持つ完了済タスク」および「ペイロードのない完了済タスク」ドロップ・ハンドラを含むすべてのドロップ・ハンドラが電子メールに適しています。

  • カスタム電子メール通知—「電子メールのタスク表示」ドロップ・ハンドラを使用して、カスタム電子メール通知タスク・ページを作成します。

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

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

コンテンツとレイアウトを指定したカスタム電子メール通知を送信するには、他のJSPXファイルを作成して、電子メール通知ページを設計します。(ただし、通知のデフォルト・ページを変更なしで使用することもできます。)カスタム通知ページの作成には、カスタムおよび標準ドロップ・ハンドラを使用するか、電子メール通知ドロップ・ハンドラを使用します。また、次の操作を行います。

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

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

  • 画像をHTMLまたはJSFページから直接参照します。(間接参照、たとえば、画像を順番に追加するJSFは許可されません。)

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

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

ルーターを使用してタスク・フローを作成するには:

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

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

  2. 「コンポーネント」ウィンドウで、「ADFタスク・フロー」を選択し、「View」アイコンをデザイナにドラッグします。
  3. アイコンの下にある「view1」をクリックし、電子メール通知ページの名前を入力します。

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

    図30-33 電子メール・ページの作成

    図30-33の説明が続きます
    「図30-33 電子メール・ページの作成」の説明
  4. 「コンポーネント」ウィンドウで、「ルーター」をデザイナにドラッグします。
  5. アイコンの下の「router1」をクリックし、ルーター名を入力します。

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

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

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

    図30-34の説明が続きます
    「図30-34 ルーターをデフォルト・アクティビティとしてマーク」の説明
  7. 「ルーター」「router_name」「プロパティ・インスペクタ」タブの順にクリックします。
  8. 「デフォルト結果」フィールドにdefaultと入力します。
  9. 「追加」をクリックして、「結果」フィールドに電子メール通知ページの名前を入力します。
  10. 式ビルダーを使用して、#{pageFlowScope.bpmClientType=="notificationClient"}「式」フィールドに入力します。
  11. 「コンポーネント」ウィンドウで、「制御フロー・ケース」をクリックします。
  12. デザイナで、ルーター・ページ・アイコンから「taskDetails1.jspx」にドラッグします。

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

    図30-35 制御フローの接続

    図30-35の説明が続きます
    「図30-35 制御フローの接続」の説明
  13. 「コンポーネント」ウィンドウで、「制御フロー・ケース」をクリックします。
  14. デザイナで、ルーター・ページ・アイコンから電子メール通知ページ・アイコンにドラッグします。
  15. 「制御フロー・ケース」「email_page_name」「プロパティ・インスペクタ」タブの順にクリックします。
  16. 「結果(自)」リストから、電子メール通知ページの名前を選択します。

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

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

    図30-36の説明が続きます
    「図30-36 電子メール通知の完成した制御フロー」の説明

電子メール通知ページの作成を続行するには、「電子メール通知ページの作成」のステップ1を参照してください。

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

電子メール通知ページの作成は、タスク・フォームの作成と類似していますが、レイアウトとインライン・スタイルの定義が必要です。

電子メール通知ページを作成するには:

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

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

  3. 「コンポーネント」ウィンドウで、「共通コンポーネント」(画像など)または「レイアウト」コンポーネントのいずれかをデザイナにドラッグします。
  4. レイアウト・コンポーネントを選択した場合は、位置合せやその他の詳細を「プロパティ・インスペクタ」タブで指定してください。

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

    図30-37 レイアウトの指定

    図30-37の説明が続きます
    「図30-37 レイアウトの指定」の説明
  5. 「外観」「スタイルおよびテーマ」「動作」「詳細」「カスタマイズ」および「注釈」を展開し、図30-38に示すように、その他の詳細を指定します。

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

    図30-38の説明が続きます
    「図30-38 レイアウトの指定: 詳細」の説明
  6. 「データ・コントロール」パネルで、「ヒューマン・タスク」ノード、「getTaskDetails」ノード、「戻る」ノードの順に展開します。
  7. パネル・グループ・レイアウト領域に「タスク」をドラッグします。
  8. 図30-39に示すように、「ヒューマン・タスク」を選択し、次に「電子メールのタスク詳細」を選択します。

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

    図30-39の説明が続きます
    「図30-39 ヒューマン・タスクのドロップ・ハンドラ」の説明

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

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

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

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

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

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

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

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

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

ワークリスト・アプリケーションでタスク・フォームを使用するには、タスク・フローが含まれているコンポジット・アプリケーションをデプロイしておく必要があります。

タスク・フローを使用してアプリケーションをデプロイするプロセスは、「タスク・フローを使用したコンポジット・アプリケーションのデプロイ方法」で説明するように、SOAコンポジット・アプリケーションのデプロイと基本的に同じです。詳細は、「SOAコンポジット・アプリケーションのデプロイ」を参照してください。

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

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

タスク・フローを使用してコンポジット・アプリケーションをデプロイするには:

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

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

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

30.8.2 タスク・フォームの再デプロイ方法

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

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

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

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

この項では、非SOAのOracle WebLogic Serverにタスク・フォームをデプロイする方法について説明します。

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

RMIまたはHTTPポートのデフォルト値を使用していない場合は、Oracle JDeveloperwf_client_config.xmlファイルを開いて、値を変更します。

タスク詳細を非SOAサーバーにデプロイする場合は、wf_client_config.xmlファイルを構成する必要があります。このファイルが作成されてタスク詳細プロジェクトに追加されるのは、タスク詳細をSOAサーバーではない別の管理対象サーバーにデプロイする場合のみです。ファイルの<serverURL><rootEndpointURL>には、SOAサーバーのホスト名とポート番号を指定します。

次の例は、wf_client_config.xmlファイルのサンプルを示しています。

<?xml version="1.0" encoding="UTF-8" ?>
xmlns="http://xmlns.oracle.com/bpel/services/client">
    <server default="true" name="default">
        <localClient>

<participateInClientTransaction>false</participateInClientTransaction>
        </localClient>
        <remoteClient>
            <serverURL>t3://my_host.us.example.com:8001</serverURL>

<initialContextFactory>weblogic.jndi.WLInitialContextFactory</initialContextFactory>

<participateInClientTransaction>false</participateInClientTransaction>
        </remoteClient>
        <soapClient>

<rootEndPointURL>http://my_host.us.example.com:8001</rootEndPointURL>
        </soapClient>
    </server>
</workflowServicesClientConfiguration>
30.8.4.2 セッション・トラッキングCookieの一意のCookieコンテキスト・パスの構成

非SOAのOracle WebLogic Serverにタスク・フォームをデプロイする前に、タスク・フォームWebアプリケーションのセッション・トラッキングCookieにアプリケーション固有のCookieトリガー・パスが構成されていることを確認してください。これによって、タスク・フォーム・アプリケーションは一意のセッション・トラッキングCookieを持ち、Oracle BPM WorklistOracle Business Process Management Workspaceなどの他のOracle BPMアプリケーション用に作成されるセッション・トラッキングCookieによって上書きできません。

セッションCookieトリガー・パスを構成するには、JDeveloperで、Webプロジェクトのweblogic.xmlファイルを開きます。.xmlファイル・エディタで概要タブを選択し、セッションを選択します。「Cookieトリガー・パス」フィールドに、Webアプリケーションのアプリケーション・コンテキスト・パスを入力します。たとえば、アプリケーションのURLがhttp://host:port/my-application-context-rootで、my-application-context-rootがアプリケーション・コンテキスト・ルートの名前である場合、Cookieトリガー・パスを次のように設定します。

/my-application-context-root
30.8.4.3 非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. 図30-40に示すように、「インストール」をクリックします。

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

    図30-40の説明が続きます
    「図30-40 Oracle WebLogic Server管理コンソール: 「デプロイメント」リスト」の説明
  4. 「パス」フィールドに次のパスを入力し、「次」をクリックします。
    ORACLE_JDEV_HOME/jdeveloper/soa/modules/oracle.soa.workflow_11.1.1/oracle.soa.workflow.jar
    
  5. 図30-41に示すように、同じデプロイメントの名前を維持し、「次」をクリックします。

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

    図30-41の説明が続きます
    「図30-41 Oracle WebLogic Server管理コンソール: 「アプリケーション・インストール・アシスタント」」の説明
  6. 「ライブラリとしてデプロイ」オプションを選択し、「終了」をクリックします。
  7. 図30-42に示すように、oracle.soa.workflow(11.1.1,11.1.1)ライブラリが「アクティブ」状態であることを確認します。

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

    図30-42の説明が続きます
    「図30-42 Oracle WebLogic Server管理コンソール: 「アクティブ」状態のoracle.soa.workflow」の説明
30.8.4.4 非SOAのOracle WebLogic Serverでの外部JNDIプロバイダの定義

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

外部JNDIプロバイダを定義するには:

  1. 「ドメイン構造」領域で、「サービス」を展開し、「外部JNDIプロバイダ」をクリックします。
  2. 「新規」をクリックします。
  3. 図30-43に示すように、「名前」フィールドに「ForeignJNDIProvider-SOA」と入力して「次」をクリックします。

    図30-43 外部JNDIプロバイダの作成

    図30-43の説明が続きます
    「図30-43 外部JNDIプロバイダの作成」の説明
  4. 「ForeignJNDIProvider-SOA」リンクをクリックします。
  5. 次のように入力し、「保存」をクリックします。
    • 「初期コンテキスト・ファクトリ」に、weblogic.jndi.WLInitialContextFactoryと入力します。

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

      クラスタ化された環境では、「プロバイダURL」http://soa_hostname:soa_portnumber/soa-infraと入力します。

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

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

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

    図30-44 外部JNDIプロバイダの定義

    図30-44の説明が続きます
    「図30-44 外部JNDIプロバイダの定義」の説明
30.8.4.5 非SOAのOracle WebLogic Serverでの外部JNDIプロバイダ・リンクの定義

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

外部JNDIプロバイダ・リンクを定義するには:

  1. 「ドメイン構造」領域で、「サービス」を展開し、「外部JNDIプロバイダ」をクリックします。
  2. 「ForeignJNDIProvider-SOA」リンクをクリックします。
  3. 「リンク」タブをクリックします。
  4. 「新規」をクリックします。

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

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

    図30-45の説明が続きます
    「図30-45 外部JNDIプロバイダ・リンクの定義: 「リンク」タブ」の説明
  5. 次のように入力し、「OK」をクリックします。
    • 「名前」に、RuntimeConfigServiceと入力します。

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

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

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

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

    図30-46の説明が続きます
    「図30-46 外部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と入力します。

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

30.8.4.6 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を再起動します。

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

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

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

30.8.5 タスク・フォームのデプロイ時の処理内容

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

ノート:

タスク・フォームの関連付けが自動的に実行されるためには、SOAサーバーが実行中である必要があります。関連付けが実行されていない場合に、ワークリスト・アプリケーションまたはOracle Business Process Management Workspaceでそのタスクのタスク・フォームにアクセスしようとすると、このタスクのタスク詳細が見つかりませんというメッセージが表示されます。この場合は、アプリケーションを再起動するか、Oracle Enterprise Managerに移動してタスク・フォームのURLを手動で登録できます。

タスクの操作方法の詳細は、「使用方法」を参照してください。

ノート:

  • タスク・フォームが正しく機能するために、常に、タスク・フローがデプロイされているホストの完全名を使用してURLを指定してください。

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

30.8.6 タスク・フローのアンデプロイに関する必知事項

タスク・フローのWebアプリケーションがデプロイされると、タスク・フローのURLがデータベースに登録されます。タスクをクリックしてタスク詳細を表示すると、Oracle BPM WorklistにこのURLが表示されます。後でタスク・フローのWebアプリケーションをアンデプロイまたは停止した場合、データベース内のタスク・フローのURLはアンデプロイ時に削除されません。その結果、ワークリスト内のタスクをクリックしてタスク詳細を表示するときに、メッセージ「このタスクでは詳細を使用できません」ではなく「404 見つかりません」エラーが表示されます。「404 見つかりません」エラーを回避するには、Oracle Enterprise Manager Fusion Middleware Controlを使用して、アプリケーション・ホームページからタスク・フロー・アプリケーションをアンデプロイします。

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

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

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

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

図30-47の説明が続きます
「図30-47 ワークリストの「タスクの詳細」ページ」の説明

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

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

電子メール通知でのタスクの表示方法を学習します。

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

図30-48 電子メール・タスク通知

図30-48の説明が続きます
「図30-48 電子メール・タスク通知」の説明

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

デフォルトでは、タスク通知のテキストには「ワークリスト・アプリケーション」と書かれていますが、そのテキストと、関連付けられるURLは変更できます。

30.10.1 タスク通知におけるワークリスト・アプリケーションのテキストの変更

デフォルトでは、タスク通知のテキストには「ワークリスト・アプリケーション」と書かれていますが、そのテキストは変更できます。これを変更するには、カスタム・リソース・バンドルを作成し、適切な文字列を変更します。

タスク通知のテキストを変更するには:

  1. サンプルのworkflow-110-workflowCustomizationsでWorkflowLabels.propertiesリソース・バンドルを開きます。
  2. WorkflowLabels.propertiesファイルで、次の文字列を変更します。
    TASK_NOTIF_MSG.WORKLIST_APPLICATION=Worklist Application
    TASK_NOTIF_MSG.WORKSPACE_APPLICATION=Workspace Application
    

    リソース・バンドル文字列の変更方法については、workflow-110-workflowCustomizationsのサンプルを参照してください。

  3. インスタンスの「ワークフロー・カスタム・クラスパスURL」構成パラメータを更新します。

    アプリケーションが動作するために、WorkflowLabels.propertiesファイルをデプロイする必要はありません。かわりに、次のいずれかを行います。

    • file:///で始まるURLを使用して適切な場所を指し、ファイル・システム上でホストします。

    • oramds:///...で始まるURLを使用し、MDSでファイルをホストします。

30.10.2 タスク通知におけるワークリスト・アプリケーションのURLの変更

タスク通知のテキストを変更するには:

  1. Oracle Enterprise Manager Fusion Middleware Controlにログインします。
  2. ナビゲータで、「SOA」フォルダを開きます。
  3. 「soa-infra」を右クリックして、「SOA管理」「ワークフロー構成」「タスク」タブを選択します。

    「ワークフロー・タスク・サービス・プロパティ」ページが表示されます。

  4. 「拡張」を展開します。
  5. ワークリスト・アプリケーションURL」を変更します。たとえば、次のような既存のエントリを変更できます。
    http://[HTTP_HOST]:[HTTP_PORT]/integration/worklistapp/TaskDetails?taskId=PC_HW_TASK_ID_TAG
    

    次のように変更できます。

    http://[HTTP_HOST]:[HTTP_PORT]/patch/info/page.jspx?taskId=PC_HW_TASK_ID_TAG
    
    

ワークリスト・アプリケーションのURLの表示または非表示の詳細は、「通知でのURLの表示方法」を参照してください。

30.11 複数のヒューマン・タスクを含むタスク・フロー・アプリケーションの再利用

複数のヒューマン・タスクを含む単一のタスク・フロー・アプリケーションを再利用できます。この機能を使用するには、すべてのヒューマン・タスクに両方のペイロード要素が含まれている必要があり、さらに、それらの結果が同一である必要があります。

30.11.1 複数のヒューマン・タスクを含むタスク・フロー・アプリケーションの再利用方法

  1. TASKFLOW_PROJ_DIR\adfmsrc\hwtaskflow.xmlファイルを開きます。
  2. ヒューマン・タスクを追加するたびに、ファイル内(ファイルの最後で</hwTaskFlows>の直前)に次の要素を追加します。
    <hwTaskFlow>
      <WorkflowName>$TASK_NAME</WorkflowName>
      <TaskDefinitionNamespace>$TASK_NAMESPACE</TaskDefinitionNamespace>
      <TaskFlowId>$TASK_FLOW_NAME</TaskFlowId>
      <TaskFlowFileName>$TASK_FLOW_FILENAME</TaskFlowFileName>
    </hwTaskFlow
    

    説明:

    • $TASK_NAMEは、.taskファイル内のヒューマン・タスク名(<name>要素の値)に置き換えます。

    • $TASK_NAMESPACEは、.taskファイル内のヒューマン・タスクのネームスペース(要素<taskDefinition>の属性targetNameSpaceの値)に置き換えます。

    • $TASK_FLOW_NAMEは、既存の<hwTaskFlow>/<TaskFlowId>要素をコピーします。

    • $TASK_FLOW_FILENAMEは、既存の<hwTaskFlow>/<TaskFlowFileName>要素をコピーします。

30.11.2 様々なアクションを含むタスク・フロー・アプリケーションの再利用方法

様々なタスクのための様々なアクションを含む単一のタスク・フローを再利用できます。これを行うには:

  1. タスクフローを生成するために使用するタスク内のすべてのアクションを定義します。
  2. それらのタスクの中で、除外するアクションを無効化します。