30 ヒューマン・タスク用のタスク・フォームの設計
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 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タスク・フローを作成するには:
これで、タスク・フローおよびタスク・フォームが完成し、デプロイする準備ができました。
30.3.2 ヒューマン・タスクに基づいたADFタスク・フローの作成方法
デプロイメントを容易にするには、図30-1に示す「ヒューマン・タスクに基づいたADFタスク・フロー」オプションを使用して、ADFタスク・フローおよび追加のアーティファクトを作成します。.task
ファイルを選択してADFタスク・フローに関連付けると、タスクのパラメータと結果に基づいてヒューマン・タスク・データ・コントロールが作成されます。これらのデータ・コントロールは、JSPXページで使用可能になります。タスク・フロー・プロジェクトを作成するときは、SOAコンポジット・プロジェクトへのアクセス権が必要です。
ヒューマン・タスクに基づいてADFタスク・フローを作成するには:
-
「ファイル」メイン・メニューから、「新規」→「アプリケーション」→「カスタム・アプリケーション」の順に選択します。
-
「OK」をクリックします。
-
アプリケーション名およびディレクトリ情報を入力(または、デフォルトをそのまま使用)して、「終了」をクリックします。
-
プロジェクト名を右クリックし、「新規」を選択します。
-
「Web層」の下にある「JSF」を選択します。
-
「ヒューマン・タスクに基づいたADFタスク・フロー」を選択し、「OK」をクリックします。
-
「SOAリソース・ブラウザ」で、ヒューマン・タスクを定義した
.task
ファイルを検索して選択し、「OK」をクリックします。-
ヒューマン・タスクがタスク定義と同じアプリケーションにある場合は、「ファイル・システム」をクリックし、ファイル・ブラウザを使用して
.task
ファイル(通常はコンポジット・ディレクトリにあります)に移動します。 -
ヒューマン・タスクが別のアプリケーションにある場合は、「SOA-MDS」をクリックし、MDSリソース・カタログを使用してコンポジット・アプリケーションにある
.task
ファイルを検索します。 -
.task
ファイルが現在のアプリケーション内にある場合は、「アプリケーション」をクリックします。
これにより、データ・コントロールを作成する「タスク・フローの作成」ダイアログが表示されます。
-
-
「タスク・フローの作成」ダイアログでは、デフォルトをそのまま使用し、「OK」をクリックします。
図30-4に示すように、「taskDetails1_jspx」アイコンがデザイナに表示されます。このタスク・フローには、ビュー、コントロール・フローおよびタスク・リターンがあります。
タスク・フォームの作成を継続するには、次の項を参照してください。
30.3.3 ヒューマン・タスクに基づいたADFタスク・フロー作成時の処理内容
ヒューマン・タスクに基づいたADFタスク・フローの場合、タスク・フロー・アプリケーションにはタスク・フォームをワークフロー・サービスに接続するタスク・データ・コントロールがあります。データ・コントロールは次を提供します。
-
タスク・データにアクセスして操作を行う様々なパラメータおよび操作
-
インタフェース・リージョンを作成して、タスクの内容を表示できるドロップ・ハンドラ
図30-5に示すように、ヒューマン・タスクを意識したデータ・コントロールがOracle JDeveloperの「アプリケーション」ウィンドウの「データ・コントロール」パネルに表示されます。
タスクのデータ・コントロール(図30-5の「タスク」ノードに表示)には、タスク・フォームを表示するドロップ・ハンドラがあります。詳細は、「タスク・フォームの作成」を参照してください。
30.3.4 異なるメタ属性が指定された同じ要素を含む複数のADFタスク・フローに関する必知事項
同じ要素を含むが異なるメタ属性が指定されている(たとえば、編集可能と編集不可)ADFタスク・フローを複数作成する場合は、それぞれを個別に作成する必要があります。
たとえば、次のタスクを実行するとします。
-
SOAコンポジット・アプリケーションのタスク・フォーム・アプリケーションを2つ作成します。
-
1つのタスク・フォーム・アプリケーション(たとえば、銀行詳細入力タスクの「EnterBankDetails.task」)には、1つの編集可能ペイロード(たとえば、BankDetails)と1つの編集不可ペイロード(たとえば、Employee)が含まれます。
-
もう1つのタスク・フォーム・アプリケーション(たとえば、個人情報検証タスクの「ValidatePersonalInformation.task」)には、1つの編集可能ペイロード(たとえば、Employee)が含まれます。
タスク・フォームを作成するとき、ウィザードでは、ペイロードEmployeeのADF表を定義するオプションが提示されます。
-
-
ウィザードを完了し、プロセスをデプロイします。
-
プロセスを起動します。
-
Oracle BPM Worklistにログインします。
個人情報検証タスク(ValidatePersonalInformation.task)があります。
-
タスクを選択します。
Employeeの詳細は変更可能です。
-
新規レコードを追加し、タスクを承認します。
-
次に、銀行詳細入力タスク(EnterBankDetails.task)を選択します。Employeeは編集不可のペイロードですが、タスク・フォームでは、Employeeデータに対して「新規挿入」ボタンと「削除」ボタンが表示されます。
-
「削除」をクリックし、「承認」を選択します。ペイロードが削除されます。
これで、2つのADFタスク・フロー・アプリケーションが作成され、両方にEmployee要素が含まれるが、異なるメタ属性が指定されている(編集可能と編集不可)ことを確認してください。
30.4 タスク・フォームの作成
タスク・フォームは、「タスク・フォームの自動生成」オプション、「タスク・フォーム・ウィザードの起動」オプション、またはヒューマン・タスクのドロップ・ハンドラを使用して作成できます。
-
「タスク・フォームの自動生成」オプションの使用方法は、「自動生成タスク・フォームの作成方法」を参照してください。
-
「タスク・フォーム・ウィザードの起動」オプションの使用方法は、「カスタム・タスク・フォーム・ウィザードを使用したタスク・フォームの作成方法」を参照してください。
-
ヒューマン・タスクのドロップ・ハンドラの使用方法については、次の各項を参照してください。
ノート:
タスク・フォーム名は、大文字か小文字の英字で始まる必要があります。使用できるのは、英字とゼロ(0)から9までの数字のみです。
30.4.2 カスタム・ページ・テンプレートにライブラリJARファイルを登録する方法
必要に応じて、カスタム・タスク・フォーム・ウィザードで独自のカスタム・ページ・テンプレートを指定できます。「カスタム・タスク・フォーム・ウィザードを使用したタスク・フォームの作成方法」の説明に従って、カスタム・タスク・フォーム・ウィザードの「名前および定義」ページで「カスタム」を選択し、ライブラリおよび.jspx
テンプレートを選択します。
前提条件として、まずOracle JDeveloperにライブラリJARファイルを登録する必要があります。
カスタム・ページ・テンプレートにライブラリJARファイルを作成するには:
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ファイルでファセットのコンテンツが生成されません。
カスタム・タスク・フォームを作成するには:
30.4.4 「ペイロードを持つ完了済タスク」ドロップ・ハンドラを使用したタスク・フォームの作成方法
ヒューマン・タスクのドロップ・ハンドラは、図30-17に示すように、デザイナのコンテキスト・メニューに表示されます。
タスク・フォームの作成には、他のADFドロップ・ハンドラ(図30-17に示すフォーム、表、ツリーなど)を使用することもできます。
「ペイロードを持つ完了済タスク」ドロップ・ハンドラを使用してタスク・フォームを作成するには:
30.4.4.1 ペイロードを持つ完了済タスク
このオプションでは、前述のタスク・フォーム・コンポーネント(タスク・ヘッダー、タスク履歴、タスク・アクション、およびタスクのコメントと添付)すべての組合せが作成され、さらにペイロードのインタフェースが作成されます。ペイロード・インタフェースは次のように作成されます。
-
すべてのテキスト・ノードはテキスト入力フィールドとして作成されます。
-
要素に
maxOccurs="unbounded"
がある場合は、表として表示されます。 -
ネストされた表は表示されません。つまり、要素が
maxOccurs="unbounded"
でmaxOccurs="unbounded"
の子がある場合、子要素は表示されません。 -
ネストのレベルが複数ある場合は、個々のセクションをドラッグ・アンド・ドロップして、標準ADFドロップ・ハンドラの1つを使用します。
30.4.4.2 ペイロードのない完了済タスク
このオプションでは、前述のタスク・フォーム・コンポーネント(タスク・ヘッダー、タスク履歴、タスク・アクション、およびタスクのコメントと添付)すべての組合せが作成されます。
30.4.4.3 電子メールのタスク詳細
このオプションでは、電子メールによる送信時に表示されるADFリージョンが作成されます。図30-21に示すフォームが生成されます。
詳細は、「電子メール通知の作成」を参照してください。
30.4.4.4 タスク・ヘッダー
30.4.4.5 タスク・アクション
次のタスク・アクションは、「アクション」ドロップダウン・リストから表示されたり、ボタンとして表示されます。表示されるタスクは、タスクの状態(「割当て済」、「完了」など)と、そのタスクを表示するユーザーに付与されている権限によって異なります。たとえば、タスクがグループに割り当てられている場合は、「申告」ボタンのみが表示されます。タスクが申告されると、「却下」や「承認」など他のアクションが表示されます。
最初の3つのカスタム・アクション(「申告」、「終了」および「再開」)は、ボタンとしてタスク・フォームに表示されます。表示されるのは、タスクに適用可能なボタンのみです。他のアクションは、「情報のリクエスト」、「再割当て」、「ルート」の順に「アクション」リストに表示されます。カスタム・アクションの後には、システム・アクションの「取消」、「プッシュバック」、「エスカレート」、「リリース」、「一時停止」および「期限更新」が続き、その後に「保存」ボタンが続きます。これらのアクションの場合、入力するダイアログはありません。
-
申告—グループまたは複数のユーザーに割り当てられているタスクが最初に申告されます。「申告」は、グループまたは複数ユーザー割当ての「タスク・アクション」リストで選択可能な唯一のアクションです。タスクが申告されると、すべての適用可能なアクションがリストされます。
ノート:
-
FYIタスクが複数のユーザーに送信される場合、タスクを終了するには、最初に「申告」ボタンを選択してタスクを申告する必要があります。
-
プッシュバックは、グループ投票ではなく単一承認者で機能するように設計されています。グループ投票(またはパラレル)シナリオを含むステージから別ステージへのプッシュバックは、許可されません。同様に、単一の割当て先からグループ投票(またはパラレル)シナリオにプッシュバックすることもできません。
-
-
終了—このアクションは、ユーザーはタスクで受信を確認する必要があるが、アクションは実行しないタスク(FYIなど)で使用します。
-
再開—「一時停止」アクションによって停止したタスクを再開できます。「一時停止」を参照してください。
-
情報のリクエスト—タスク作成者や前の割当て先に詳細情報をリクエストできます。再承認が不要な場合、タスクは次の承認者か、ビジネス・プロセスの次のステップに割り当てられます。
-
再割当て—マネージャは報告先にタスクを再割当てできます。「再割当て」オプションでは、「委任」機能も提供されます。この機能を使用すると、タスクを他のユーザーまたはグループに委任できます。委任されたタスクは、元のユーザーと委任されたユーザーの両方のワークリストに表示されます。委任先ユーザーは、元の割当て先のかわりにタスクを操作でき、そのタスクに対しては元の割当て先と同じ権限を持ちます。
-
ルート—承認者の順序が事前に決定されていない場合や、ワークフローが非定型ルーティングを許可するように設計されている場合は、タスクを非定型方式でルーティングできます。このようなタスクの場合は、「タスクの詳細」ページに「ルート」ボタンが表示されます。「ルーティング」ページから、ルーティングに使用する1人以上のユーザーをルックアップできます。複数の割当て先を指定する場合は、割当て先リストの対象として、単純割当て(ユーザー全員へのグループ割当て)、順次割当てまたはパラレル割当てのいずれかを選択できます。パラレル割当ての場合は、承認に必要な得票率を指定します。
-
取消—タスクをキャンセルできるのは、タスク作成者のみです。オプションのコメントがある場合は、「コメント」領域を使用できます。この場合は、ビジネス・プロセスによって、次の処理内容が決定されます。
-
プッシュバック—このアクションは、ワークフロー内で1レベル上のタスクを前の割当て先に送信します。ノート: プッシュバックは、グループ投票ではなく単一承認者で機能するように設計されています。グループ投票(またはパラレル)シナリオを含むステージから別ステージへのプッシュバックは、許可されません。同様に、単一の割当て先からグループ投票(またはパラレル)シナリオにプッシュバックすることもできません。
-
エスカレート—エスカレートされたタスクはユーザーのマネージャに割り当てられます。オプションのコメントがある場合は、「コメント」領域を使用できます。
-
リリース—タスクをリリースすると、他の割当て先が利用できるようになります。グループまたは複数のユーザーに割り当てられているタスクは、他の割当て先が申告できるようになります。
-
一時停止—このアクションは、タスクが再開されるまで、有効期限を延期します。タスクの一時停止と再開を実行できるのは、
BPMWorkflowSuspend
ロールを付与されているユーザーのみです。その他のユーザーは、タスク・フィルタで「前へ」を選択するか、「一時停止」ステータスのタスクを検索することで、このタスクにアクセスできます。タスクを更新する各種ボタンは、一時停止後は無効になります。 -
期限更新—タスクを更新すると、タスクの有効期限が7日間延長されます(デフォルトは
P7D
)。更新期間は、Oracle Enterprise Manager Grid Controlから制御されます。期限更新は、タスク履歴に表示されます。オプションのコメントがある場合は、「コメント」領域を使用できます。 -
保存—タスクへの変更が保存されます。
タスク・フォームを作成している間は、可能なシステム・アクション・ボタンがすべて表示されますが、ワークリストに表示されるのは、タスク状態に適応していて、ユーザーの権限に対応したアクションのみです。
30.4.4.7 タスクのコメントと添付
コメントの追跡情報(コメントの日付およびコメント作成者のユーザー名を含む)は、タスクのライフ・サイクル全体を通じて保持されます。
タスクに関連付けられているファイルや参照URLは、すべてのヒューマン・タスク参加者が追加できます。
図30-24に、「コメント」リージョンと「添付」リージョンの例を示します。
30.4.5 個別のドロップ・ハンドラを使用したタスク・フォーム・リージョンの作成方法
複数のリージョンを持つ表示フォームは、図30-25に示すように、「タスク・ヘッダー」、「タスク・アクション」、「タスク履歴」および「タスク・コメントおよび添付」ドロップ・ハンドラを個別に使用して作成できます。
「タスク・ヘッダー」では、ヘッダーとタスク・アクションの両方が表示されるため、「タスク・ヘッダー」を使用する際は「タスク・アクション」ドロップ・ハンドラは必要ありません。「タスク・アクション」は、「アクション」ドロップダウン・メニューとボタンは必要だが、ヘッダー詳細は不要の場合に使用します。
各リージョンを個別に作成せずにタスク・フォームを作成するには、「「ペイロードを持つ完了済タスク」ドロップ・ハンドラを使用したタスク・フォームの作成方法」を参照してください。
このタスク・フォームを作成するには、その前に、次を作成する必要があります。
-
新しいアプリケーション、SOAプロジェクトおよびヒューマン・タスク・サービス。
-
ヒューマン・タスクに基づいたADFタスク・フロー。詳細は、「ヒューマン・ワークフローのチュートリアルの概要」を参照してください。
個別のドロップ・ハンドラを使用してタスク・フォーム・リージョンを作成するには:
タスク・フォームの作成を続行するには、「タスク・フォームへのペイロードの追加方法」のステップ1を参照してください。
30.4.6 タスク・フォームへのペイロードの追加方法
ペイロードの追加に加えて、タスク・フォーム・リージョンを作成できます。「個別のドロップ・ハンドラを使用したタスク・フォーム・リージョンの作成方法」のステップ1を参照してください。
ペイロードをタスク・フォームに追加するには:
図30-30に示すタスク・フォームは完成しており、デプロイする準備ができています。
30.4.7 タスク・フォーム作成時の処理内容
設計したフォームは.jspx
ファイルに保存されます。ファイルの場所は次のとおりです。
JDev_Oracle_Home\mywork\task_form_application_name\project_name\public_html
このタスク・フォームはデプロイできます。「タスク・フローを使用したコンポジット・アプリケーションのデプロイ」を参照してください。
30.5 タスクXSD変更時のデータ・コントロールのリフレッシュ
タスク・メタデータが変更された場合、そのタスク・メタデータに基づく「データ・コントロール」ビューをリフレッシュします(XSD変更はリフレッシュされません)。
リフレッシュ機能により、データ・コントロールが再作成されます。図30-31に「リフレッシュ」オプションを示します。
データ・コントロールをリフレッシュするには:
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を参照してください。
30.7.2 電子メール通知ページ作成時の処理内容
電子メール通知ページは、電子メールのメッセージ本文にHTMLコンテンツとして送信されます。ページ上の画像は添付としてインラインされています。相対URLは絶対URLに変換されます。
フォームのフィールドに使用されているスタイルが電子メールに対して有効でない場合は、電子メールに通知が正しく表示されない場合があります。このため、生成されたインラインCSSを編集して、ページをカスタマイズする必要がある場合があります。詳細は、「電子メール通知の作成方法」を参照してください。
セキュリティの問題によって、フォームが正しく表示されない場合もあります。詳細は、「タスク・フロー・アプリケーションの保護」を参照してください。
30.8 タスク・フローを使用したコンポジット・アプリケーションのデプロイ
ワークリスト・アプリケーションでタスク・フォームを使用するには、タスク・フローが含まれているコンポジット・アプリケーションをデプロイしておく必要があります。
タスク・フローを使用してアプリケーションをデプロイするプロセスは、「タスク・フローを使用したコンポジット・アプリケーションのデプロイ方法」で説明するように、SOAコンポジット・アプリケーションのデプロイと基本的に同じです。詳細は、「SOAコンポジット・アプリケーションのデプロイ」を参照してください。
30.8.1 タスク・フローを使用したコンポジット・アプリケーションのデプロイ方法
次の手順を実行するには、アプリケーション・サーバー接続が必要です。
タスク・フローを使用してコンポジット・アプリケーションをデプロイするには:
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 JDeveloperのwf_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 WorklistやOracle 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をデプロイするには:
「非SOAのOracle WebLogic Serverでの外部JNDIプロバイダの定義」を参照して続行してください。
30.8.4.4 非SOAのOracle WebLogic Serverでの外部JNDIプロバイダの定義
Oracle WebLogic Server管理コンソールを使用して、次のタスクを実行します。
外部JNDIプロバイダを定義するには:
「非SOAのOracle WebLogic Serverでの外部JNDIプロバイダ・リンクの定義」を参照して続行してください。
30.8.4.5 非SOAのOracle WebLogic Serverでの外部JNDIプロバイダ・リンクの定義
Oracle WebLogic Server管理コンソールを使用して、次のタスクを実行します。
外部JNDIプロバイダ・リンクを定義するには:
「bpm-services.jarに対する権限付与を含める方法」を参照して続行してください。
30.8.4.6 bpm-services.jarに対する権限付与を含める方法
bpm-services.jarに対する権限付与を含めるには、system-jazn-data.xml
ファイルを編集し、非SOAのOracle WebLogic Serverを再起動します。
bpm-services.jarに対する権限付与を含めるには:
「アプリケーションのデプロイ」を参照して続行してください。
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に、ワークリスト・アプリケーションの「タスクの詳細」ページに表示されるヘルプ・デスク・リクエスト例のタスク・フォームを示します。
タスク・フォームは、ログイン後にOracle BPM Worklistで使用可能になります。手順は、「ワークリストへのログイン方法」を参照してください。
30.10 電子メール通知でのタスクの表示
電子メール通知でのタスクの表示方法を学習します。
図30-48に、電子メールに表示される電子メール・タスク通知を示します。
選択可能なアクションとして「解決済」または「未解決」をクリックするか、「ワークリスト・アプリケーション」リンクをクリックすると、ワークリストにログインできます。アクションをクリックすると電子メール作成ウィンドウが表示され、このウィンドウでは、コメントを追加して、電子メールを送信できます。
デフォルトでは、タスク通知のテキストには「ワークリスト・アプリケーション」と書かれていますが、そのテキストと、関連付けられるURLは変更できます。
30.10.1 タスク通知におけるワークリスト・アプリケーションのテキストの変更
デフォルトでは、タスク通知のテキストには「ワークリスト・アプリケーション」と書かれていますが、そのテキストは変更できます。これを変更するには、カスタム・リソース・バンドルを作成し、適切な文字列を変更します。
タスク通知のテキストを変更するには: