ユーザーがビジネス・プロセスと相互作用するためのタスクは、ヒューマン・ワークフロー・サービスによって作成されます。それぞれのタスクには、タスク・メタデータとタスク・フォームという2つの部分があります。タスク・フォームは、タスクのコンテンツをユーザーのワークリストに表示するために使用されます。
Oracle BPM Worklistには、ユーザーまたはグループに割り当てられているすべてのワークリスト・タスクが表示されます。ワークリスト・ユーザーが特定のタスクにドリルダウンすると、タスク・フォームにはそのタスクの詳細が表示されます。たとえば、Fusion Order Demoの「ApprovalHumanTask」用のタスク・フォームには、注文合計などの注文情報や配送先情報が表示されます。
この章では、Oracle JDeveloperのADFタスク・フローを使用したタスク・フォームの設計およびカスタマイズの方法を説明します。
項目は次のとおりです。
ヒューマン・ワークフローの問題のトラブルシューティングの詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のヒューマン・ワークフローのトラブルシューティングに関する項を参照してください。
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」を選択します。
図28-1に、タスク・フォームの作成を開始する、Oracle JDeveloperの「ヒューマン・タスクに基づいたADFタスク・フロー」オプションを示します。
図28-1 Oracle JDeveloperの「ヒューマン・タスクに基づいたADFタスク・フロー」
タスク・フォームの作成時には、タスク・ペイロードの日時要素に対してタイムゾーン変換が自動的に行われません。日時要素でタイムゾーン変換を有効にするには、<af:convertDateTime>
タグを追加する必要があります。標準的なタスク・ヘッダーの時間ラベルを例として参照してください。例28-1にサンプルのヘッダーを示します。
ヒューマン・タスクに基づいてADFタスク・フローを作成する場合は、タスク・メタデータ・ファイルを選択して、データ・コントロールを生成する必要があります。データ・コントロールは、ページ内のコンテンツのレイアウトを行うために使用され、実行時にはワークフロー・サービス・エンジンに接続して、タスク・コンテンツを取得し、タスクを操作します。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「ADFタスク・フローの概要」を参照してください。
hwtaskflow.xml
ファイルは、サービス・エンジンとの接続時に詳細を取得するために使用されます。デフォルトでは、リモートEJBを使用してワークフロー・サーバーに接続します。SOAサーバーのURLとポートは、WebLogic Serverの実行時MBeanを使用して自動的に決定されます。ただし、その内容は、ここでURLとポート情報を明示的に指定することで上書きできます。
タスク詳細アプリケーションがワークフロー・サービスに接続できるように、ORMI権限があるユーザーをシードしてください。このユーザーは、Oracle Enterprise Manager Fusion Middleware Controlを使用してシードできます。
ADFタスク・フローは、「タスクの詳細」ページのユーザー・インタフェースをモデリングするために使用されます。このタスク・フローは、ヒューマン・タスクが含まれている同じアプリケーション、または別のアプリケーションで作成できます。
タスク・フローを作成するには、その前に、ヒューマン・タスク(.task
ファイル)をSOAコンポジットの一部として作成する必要があります。.task
ファイルの作成方法の詳細は、第27章「ヒューマン・タスクの設計」を参照してください。
タスク・フローがヒューマン・タスクと同じアプリケーションにある場合は、そのタスク・フローに対して別のプロジェクトを作成します。SOAコンポジットに複数のヒューマン・タスクが含まれている場合は、各ヒューマン・タスクに関連付けられているADFタスク・フローごとに個別のプロジェクトを作成します。データ・コントロールは、ADFタスク・フローを使用し、タスクのパラメータと結果に基づいて作成します。
ADFタスク・フォームを自動生成するには、SOAコンポジット・アプリケーション内のヒューマン・タスクにアクセスします(フォームとタスクは同じアプリケーション内にあります)。詳細は、第28.3.1項「ヒューマン・タスク・エディタからADFタスク・フローを作成する方法」を参照してください。
別のアプリケーションにADFタスク・フォームを作成するには、新規のアプリケーションとプロジェクトを作成し、ヒューマン・タスクの.task
ファイルを参照します。詳細は、第28.3.2項「ヒューマン・タスクに基づいたADFタスク・フローの作成方法」を参照してください。
ヒューマン・タスクとタスク・フローが同じアプリケーションにある場合、ヒューマン・タスクを指定する.task
ファイルは、簡単にタスク・フローに関連付けられます。
ヒューマン・タスクに対してADFタスク・フローを作成する手順は、次のとおりです。
SOAコンポジット・アプリケーション内でBPELプロセスを開きます。
ヒューマン・タスク・アクティビティをダブルクリックし、「編集」をクリックします。
図28-2に、「Human Task」ダイアログを示します。
「.task」タブ(図28-3)で、「フォームの作成」をクリックして「タスク・フォームの自動生成」を選択します。
プロジェクト名とディレクトリ・パスを入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。
図28-4に示すように、「taskDetails1_jspx」アイコンがデザイナに表示されます。
これで、タスク・フローおよびタスク・フォームが完成し、デプロイする準備ができました。
デプロイメントを容易にするには、図28-1に示す「ヒューマン・タスクに基づいたADFタスク・フロー」オプションを使用して、ADFタスク・フローおよび追加のアーチファクトを作成します。.task
ファイルを選択してADFタスク・フローに関連付けると、タスクのパラメータと結果に基づいてヒューマン・タスク・データ・コントロールが作成されます。これらのデータ・コントロールは、JSPXページで使用可能になります。タスク・フロー・プロジェクトを作成するときは、SOAコンポジット・プロジェクトへのアクセス権が必要です。
ヒューマン・タスクに基づいてADFタスク・フローを作成する手順は、次のとおりです。
「ファイル」メイン・メニューから「新規」→「アプリケーション」→「SOAアプリケーション」の順に選択します。
「OK」をクリックします。
アプリケーション名およびディレクトリ情報を入力(または、デフォルトをそのまま使用)して、「終了」をクリックします。
プロジェクト名を右クリックし、「新規」を選択します。
「Web層」の下にある「JSF」を選択します。
「ヒューマン・タスクに基づいたADFタスク・フロー」を選択し、「OK」をクリックします。
「SOAリソース・ブラウザ」で、ヒューマン・タスクを定義した.task
ファイルを検索して選択し、「OK」をクリックします。
ヒューマン・タスクがタスク定義と同じアプリケーションにある場合は、「ファイル」をクリックしてファイル・ブラウザを使用し、通常はコンポジット・ディレクトリにある.task
ファイルに移動します。
ヒューマン・タスクが別のアプリケーションにある場合は、「リソース・パレット」をクリックしてMDSリソース・カタログを使用し、コンポジット・アプリケーションにある.task
ファイルを検索します。
.task
ファイルが現在のアプリケーション内にある場合は、「アプリケーション」をクリックします。
これにより、データ・コントロールを作成する「タスク・フローの作成」ダイアログが表示されます。
「タスク・フローの作成」ダイアログでは、デフォルトをそのまま使用し、「OK」をクリックします。
図28-4に示すように、「taskDetails1_jspx」アイコンがデザイナに表示されます。このタスク・フローには、ビュー、コントロール・フローおよびタスク・リターンがあります。
タスク・フォームの作成を継続するには、次の項を参照してください。
または、
ヒューマン・タスクに基づいたADFタスク・フローの場合、タスク・フロー・アプリケーションにはタスク・フォームをワークフロー・サービスに接続するタスク・データ・コントロールがあります。データ・コントロールは次を提供します。
タスク・データにアクセスして操作を行う様々なパラメータおよび操作
インタフェース・リージョンを作成して、タスクの内容を表示できるドロップ・ハンドラ
図28-5に示すように、ヒューマン・タスクを意識したデータ・コントロールがOracle Jdeveloperの「アプリケーション・ナビゲータ」の「データ・コントロール」パネルに表示されます。
タスクのデータ・コントロール(図28-5の「タスク」ノードに表示)には、タスク・フォームを表示するドロップ・ハンドラがあります。詳細は、第28.4項「タスク・フォームの作成」を参照してください。
同じ要素を含むが異なるメタ属性が指定されている(例: 編集可能と編集不可)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要素が含まれるが、異なるメタ属性が指定されている(編集可能と編集不可)ことを確認してください。
タスク・フォームは、「タスク・フォームの自動生成」オプション、「タスク・フォーム・ウィザードの起動」オプション、またはヒューマン・タスクのドロップ・ハンドラを使用して作成できます。
「タスク・フォームの自動生成」オプションの使用方法については、第28.4.1項「自動生成タスク・フォームの作成方法」を参照してください。
「タスク・フォーム・ウィザードの起動」オプションの使用方法については、第28.4.3項「カスタム・タスク・フォーム・ウィザードを使用したタスク・フォームの作成方法」を参照してください。
ヒューマン・タスクのドロップ・ハンドラの使用方法については、次の各項を参照してください。
必要に応じて、カスタム・タスク・フォーム・ウィザードで独自のカスタム・ページ・テンプレートを指定できます。第28.4.3項「カスタム・タスク・フォーム・ウィザードを使用したタスク・フォームの作成方法」の説明に従って、カスタム・タスク・フォーム・ウィザードの「名前および定義」ページで「カスタム・ページ・テンプレート」を選択し、ライブラリJARファイルの名前とJARファイル内の.jspx
テンプレート・ファイルへのパスを指定します。
前提条件として、まずOracle JDeveloperにライブラリJARファイルを登録する必要があります。
カスタム・ページ・テンプレートにライブラリJARファイルを作成する手順は、次のとおりです。
「ツール」メニューから、「ライブラリの管理」を選択します。
「新規」をクリックします。
「ライブラリの作成」ダイアログが表示されます。
「クラスパス」をハイライトして、「エントリの追加」をクリックします。
「パス・エントリの選択」ダイアログが表示されます。
ライブラリのクラス・パスを選択して、「選択」をクリックします。
「クラスパス」の下にクラス・パスが表示され、「ライブラリ名」フィールドにライブラリJARファイル名が表示されます。選択したライブラリ名が接尾辞.jar
で終わることを確認してください。図28-8に詳細を示します。
「デフォルトでデプロイ済」チェック・ボックスを選択します。
「OK」をクリックします。
カスタム・タスク・フォーム・ウィザードの実行時に、「名前および定義」ページで「カスタム・ページ・テンプレート」を選択し、「ライブラリの作成」ダイアログで登録した次の情報を入力します。
「ライブラリの作成」ダイアログの「ライブラリ名」フィールドで入力したものと同じライブラリ名(これらの名前は一致する必要があります)。
「テンプレート・パス」フィールド内のライブラリJARファイルの.jspx
テンプレート・ファイルへのパス。
このウィザードでは、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つ以上の本文、およびフッターを含むタスク・フォームがウィザードで生成され、表形式で列と行が表示されます。任意のタスク(システム)アクションを選択してフォームに表示したり、ヒューマン・タスクに対して定義したカスタム・アクションをフォーム上にボタンとして表示するように指定できます。また、添付ファイルおよびコメントとともに、ペイロードの一部または全部を選択して表示できます。
ファセットの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』を参照してください。
カスタム・タスク・フォームを作成する手順は、次のとおりです。
SOAコンポジット・アプリケーション内でBPELプロセスを開きます。
ヒューマン・タスク・アクティビティをダブルクリックし、「編集」アイコンをクリックします。
ヒューマン・タスク・エディタが表示されます。
エディタの上にある「フォームの作成」をクリックし、「タスク・フォーム・ウィザードの起動」を選択します。
プロジェクト名とディレクトリ・パスを入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。
図28-9に示すように、「名前および定義」ページの「フォーム名」フィールドに、ウィザードの最後に生成されるフォームの名前(.jspx
ファイル)を入力します。名前を入力しない場合は、デフォルト名Humantask
number
_Form
が使用されます。有効な文字が名前に使用されていることを確認してください。空白は許可されていません。
詳細な定義を指定する場合は、「詳細」を開きます。
次の情報を指定して、「次へ」をクリックします。このフォームはADFタスク・フローとして作成され、プロジェクトに追加されます。
タスク・フロー名: ウィザードの最後に生成されるADFタスク・フローの名前。デフォルトの名前であるHumantask
number
_TaskFlow
を受け入れるか、別の名前を指定します。
ページ・テンプレート: 使用するページ・テンプレート。
なし: ページ・テンプレートを使用しないタスク・フォームを作成する場合に選択します。これがデフォルトの選択です。
デフォルト・ページ・テンプレート: デフォルト・ページ・テンプレートを使用する場合に選択します。
カスタム・ページ・テンプレート: 使用するライブラリ名(たとえば、MyTemplatesLibrary.jar
)およびJARファイルのテンプレート・クラス・パス(たとえば、templates/MyTemplate.jspx
)を指定します。これは、第28.4.2項「カスタム・ページ・テンプレートにライブラリJARファイルを登録する方法」の「ライブラリの作成」ダイアログで指定したライブラリ名およびテンプレート・クラス・パスです。
ウィザード終了後にテンプレートが見つからない場合は、テンプレートが見つからなかったことと、テンプレートを使用しないでタスク・フォームの生成が続行されることを示すメッセージが表示されます。
図28-10に示すように、「ヘッダー・ページ」で次の手順を実行し、「次へ」をクリックします。
「Actionsファセット」セクションで、タスク・フォームのタイトル・バーに含める次のオプションを選択します。
他のアクション(メニュー): タスクに対して可能なシステム・アクションがリストされます。たとえば、「情報のリクエスト」、「再割当て」、「期限更新」、「一時停止」、「エスカレート」、「保存」などです。
結果(ボタン): ヒューマン・タスクで定義したタスク・アクション(タスクの結果の設定など)のボタンが表示されます。
「Headerファセット」セクションで、表示列の数を入力します。各ヘッダー・ラベルを個別の列に表示する場合は、「選択済」リストに移動するヘッダーの数と同じ数を入力します。ここで「1」と入力し、7つのヘッダーを選択すると、7つすべてのヘッダーが1つの列に表示されます。
ヘッダー・ラベルを「選択済」リストに移動し、必要に応じて順序を変更します。
図28-11に示すように、「本文ページ」の「Bodyファセット」セクションで、次の手順を実行してフォームを設定し、「次へ」をクリックします。
本文パネルを説明するタイトルを入力します。
行1の列数を入力します。単純なフォームの場合は、ヘッダー列の数として入力したのと同じ数を入力できます。
「追加」(+)ボタンをクリックして、行を追加します。新しい行ごとに、列の数を指定することもできます。行ごとに独自の列レイアウトを設定できます。たとえば、各行の列ごとに本文ページを作成して、「行1」、「列1」のようにラベルを付けることができます。
注意: ペイロード・データが表示されていない行または列を指定すると、空のパネル・グループが表示されます。この空のセクションでは、後でデータ・コントロールを使用してコンテンツをフォームに追加できます。 |
図28-12に示すように、「行1 列1」ページで、ペイロードの全部または一部を「選択済」リストに移動して、「次へ」をクリックします。
「行1 列1」ページの後の「行n 列n」ページでは、ステップ10を繰り返して「次へ」をクリックします。
表示される「フッター」ページは、ステップ7で「名前および定義」ページで選択したページ・テンプレート(デフォルト・ページ・テンプレートまたはカスタム・ページ・テンプレートのいずれか)に応じて異なります。
「デフォルト・ページ・テンプレート」を選択した場合は、図28-13に示される「フッター」ページが表示されます。フッターに含めないコメント、添付ファイルまたは履歴のファセットの選択を解除し、「次へ」をクリックします。デフォルトで、コメント、添付ファイルおよび履歴のファセットはすべて選択されています。
図28-13 カスタム・タスク・フォーム・ウィザード: デフォルト・ページ・テンプレートのフッター・フィールドの選択
「カスタム・ページ・テンプレート」を選択した場合は、図28-14に示される「フッター」ページが表示されます。「選択済」リストに移動するコメント、添付ファイルまたは履歴のファセットを選択し、「次へ」をクリックします。
図28-14 カスタム・タスク・フォーム・ウィザード: カスタム・ページ・テンプレートのフッター・フィールドの選択
図28-15に示すように、「サマリー」ページで選択内容を確認します。「戻る」をクリックして変更を行うか、「終了」をクリックします。
図28-16 (タブ上部)および図28-17 (タブ下部)に示すように、デザイナが初期化され、「form_name.jspx」タブが表示されます。
ヒューマン・タスクのドロップ・ハンドラは、図28-18に示すように、デザイナのコンテキスト・メニューに表示されます。
タスク・フォームの作成には、他のADFドロップ・ハンドラ(図28-18に示すフォーム、表、ツリーなど)を使用することもできます。標準ADFドロップ・ハンドラの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。
ペイロードを持つ完了済タスク
このオプションでは、前述のタスク・フォーム・コンポーネント(タスク・ヘッダー、タスク履歴、タスク・アクション、およびタスクのコメントと添付ファイル)すべての組合せが作成され、さらにペイロードのインタフェースが作成されます。ペイロード・インタフェースは次のように作成されます。
すべてのテキスト・ノードはテキスト入力フィールドとして作成されます。
要素にmaxOccurs="unbounded"
がある場合は、表として表示されます。
ネストされた表は表示されません。つまり、要素がmaxOccurs="unbounded"
でmaxOccurs="unbounded"
の子がある場合、子要素は表示されません。
ネストのレベルが複数ある場合は、個々のセクションをドラッグ・アンド・ドロップして、標準ADFドロップ・ハンドラの1つを使用します。
ペイロードのない完了済タスク
このオプションでは、前述のタスク・フォーム・コンポーネント(タスク・ヘッダー、タスク履歴、タスク・アクション、およびタスクのコメントと添付ファイル)すべての組合せが作成されます。
電子メールのタスク詳細
このオプションでは、電子メールによる送信時に表示されるADFリージョンが作成されます。図28-19に示すフォームが生成されます。
詳細は、第28.7項「電子メール通知の作成」を参照してください。
タスク・ヘッダー
タスク・フォームには、すべての標準ヘッダー・フィールドが追加されます。これには、タスク番号とタイトル、BPELプロセスの状態、結果および優先度、タスクの作成者、更新者、申告者またはタスクに割り当てられているユーザーに関する情報が含まれます。ここには、タスク作成、最終更新および有効期限に関する日時も表示されます。ヘッダー・フィールドは、タスク表示の必要性に応じて追加または削除できます。
図28-20に、ヘッダー情報の例を示します。
図28-21に示すように、ヘッダーにはタスク・アクションに関連するボタンも作成されます。
タスク・アクション
次のタスク・アクションは、「アクション」ドロップダウン・リストから表示されたり、ボタンとして表示されます。表示されるタスクは、タスクの状態(「割当て済」、「完了」など)と、そのタスクを表示するユーザーに付与されている権限によって異なります。たとえば、タスクがグループに割り当てられている場合は、「申告」ボタンのみが表示されます。タスクが申告されると、「却下」や「承認」など他のアクションが表示されます。
最初の3つのカスタム・アクション(「申告」、「終了」および「再開」)は、ボタンとしてタスク・フォームに表示されます。表示されるのは、タスクに適用可能なボタンのみです。他のアクションは、「情報のリクエスト」、「再割当て」、「ルート」の順に「アクション」リストに表示されます。カスタム・アクションの後には、システム・アクションの「取消」、「プッシュバック」、「エスカレート」、「リリース」、「一時停止」および「期限更新」が続き、その後に「保存」ボタンが続きます。これらのアクションの場合、入力するダイアログはありません。
申告: グループまたは複数のユーザーに割り当てられているタスクが最初に申告されます。「申告」は、グループまたは複数ユーザー割当ての「タスク・アクション」リストで選択可能な唯一のアクションです。タスクが申告されると、すべての適用可能なアクションがリストされます。
終了: このアクションは、タスクを操作するユーザーは受信を確認する必要があるが、アクションは実行しないタスク(FYIと同様)で使用します。
再開: 「一時停止」アクションによって停止したタスクを再開できます。「一時停止」を参照してください。
情報のリクエスト: タスク作成者や前の割当て先に詳細情報をリクエストできます。再承認が不要な場合、タスクは次の承認者か、ビジネス・プロセスの次のステップに割り当てられます。
再割当て: マネージャは報告先にタスクを再割当てできます。「再割当て」オプションでは、「委任」機能も提供されます。この機能を使用すると、タスクを他のユーザーまたはグループに委任できます。委任されたタスクは、元のユーザーと委任されたユーザーの両方のワークリストに表示されます。委任先ユーザーは、元の割当て先のかわりにタスクを操作でき、そのタスクに対しては元の割当て先と同じ権限を持ちます。
ルート: 承認者の順序が事前に決定されていない場合や、ワークフローが非定型ルーティングを許可するように設計されている場合は、タスクを非定型方式でルーティングできます。このようなタスクの場合は、「タスクの詳細」ページに「ルート」ボタンが表示されます。「ルーティング」ページから、ルーティングに使用する1人以上のユーザーをルックアップできます。複数の割当て先を指定する場合は、割当て先リストの対象として、単純割当て(ユーザー全員へのグループ割当て)、順次割当てまたはパラレル割当てのいずれかを選択できます。パラレル割当ての場合は、承認に必要な得票率を指定します。
取消: タスクをキャンセルできるのは、タスク作成者のみです。オプションのコメントがある場合は、「コメント」領域を使用できます。この場合は、ビジネス・プロセスによって、次の処理内容が決定されます。
プッシュバック: このアクションは、ワークフロー内で1レベル上のタスクを前の割当て先に送信します。
エスカレート: エスカレートされたタスクはユーザーのマネージャに割り当てられます。オプションのコメントがある場合は、「コメント」領域を使用できます。
リリース: タスクをリリースすると、他の割当て先が利用できるようになります。グループまたは複数のユーザーに割り当てられているタスクは、他の割当て先が申告できるようになります。
一時停止: このアクションは、タスクが再開されるまで、有効期限を延期します。タスクの一時停止と再開を実行できるのは、BPMWorkflowSuspend
ロールを付与されているユーザーのみです。その他のユーザーは、タスク・フィルタで「前へ」を選択するか、「一時停止」ステータスのタスクを検索することで、このタスクにアクセスできます。タスクを更新する各種ボタンは、一時停止後は無効になります。
期限更新: タスクを更新すると、タスクの有効期限が7日間延長されます(デフォルトはP7D
)。更新期間は、Oracle Enterprise Manager Grid Controlから制御されます。期限更新は、タスク履歴に表示されます。オプションのコメントがある場合は、「コメント」領域を使用できます。
保存: タスクへの変更が保存されます。
タスク・フォームを作成している間は、可能なシステム・アクション・ボタンがすべて表示されますが、ワークリストに表示されるのは、タスク状態に適応していて、ユーザーの権限に対応したアクションのみです。
タスク履歴
タスク・アクションの履歴は、「タスクの詳細」ページに表示され、ワークリストにも履歴表として表示されます。履歴には、次のフィールドがあります。
バージョン番号
参加者名: タスクを操作したユーザー
アクション: たとえば、タスクが承認済または割当て済かどうか
更新者: 最後にタスクを更新したユーザーの名前
アクション日
Oracle BPM Worklistでのタスク履歴の表示方法(履歴スナップショットの取得、今後の参加者のリスト表示、およびフル・タスク・アクションのリスト表示を実行するオプションを含む)については、「図29-20 履歴: グラフィカル・ビュー」および「図29-21 履歴: フル・タスク・アクション」を参照してください。
タスクのコメントと添付ファイル
コメントの追跡情報(コメントの日付およびコメント作成者のユーザー名を含む)は、タスクのライフ・サイクル全体を通じて保持されます。
タスクに関連付けられているファイルや参照URLは、すべてのヒューマン・タスク参加者が追加できます。
図28-22に、「コメント」リージョンと「添付ファイル」リージョンの例を示します。
次のステップでは、タスク・フォームを、ペイロード付きで、各リージョンを個別作成せずに作成するドロップ・ハンドラの使用方法を説明します。各リージョンを個別に作成する場合は、第28.4.5項「個別のドロップ・ハンドラを使用したタスク・フォーム・リージョンの作成方法」を参照してください。
「ペイロードを持つ完了済タスク」ドロップ・ハンドラを使用してタスク・フォームを作成する手順は、次のとおりです。
デザイナで、「taskDetails1_jspx」をダブルクリックします。
「JSFページの作成」ダイアログで、ファイル名およびディレクトリ情報を入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。
「アプリケーション・ナビゲータ」の「データ・コントロール」パネルで、「ヒューマン・タスク」ノード、「getTaskDetails」ノード、「戻る」ノードの順に展開します。
「タスク」アイコンを「taskDetails.jspx」ウィンドウにドラッグします。
「ヒューマン・タスク」を選択し、次に「ペイロードを持つ完了済タスク」を選択します。
図28-23に示すように、「アクション・バインディングの編集」ダイアログで「OK」をクリックします。
図28-24に示すように、次の「アクション・バインディングの編集」ダイアログではデータ・コレクションが選択されています。「OK」をクリックします。
図28-25に示すように、タスク・フォームが表示されます。
複数のリージョンを持つ表示フォームは、図28-26に示すように、「タスク・ヘッダー」、「タスク・アクション」、「タスク履歴」および「タスク・コメントおよび添付ファイル」ドロップ・ハンドラを個別に使用して作成できます。
「タスク・ヘッダー」では、ヘッダーとタスク・アクションの両方が表示されるため、「タスク・ヘッダー」を使用する際は「タスク・アクション」ドロップ・ハンドラは必要ありません。「タスク・アクション」は、「アクション」ドロップダウン・メニューとボタンは必要だが、ヘッダー詳細は不要の場合に使用します。
各リージョンを個別に作成せずにタスク・フォームを作成する場合は、第28.4.4「「ペイロードを持つ完了済タスク」ドロップ・ハンドラを使用したタスク・フォームの作成方法」を参照してください。
このタスク・フォームを作成するには、その前に、次を作成する必要があります。
新しいアプリケーション、SOAプロジェクトおよびヒューマン・タスク・サービス。
ヒューマン・タスクに基づいたADFタスク・フロー。詳細は、第26.3.2.2項「休暇申請プロセスの作成方法」を参照してください。
個別のドロップ・ハンドラを使用してタスク・フォーム・リージョンを作成する手順は、次のとおりです。
デザイナで、「taskDetails1.jspx」をダブルクリックします。
「JSFページの作成」ダイアログで、ファイル名およびディレクトリ情報を入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。
「アプリケーション・ナビゲータ」の「データ・コントロール」パネルで、「ヒューマン・タスク」ノード、「getTaskDetails」ノード、「戻る」ノードの順に展開します。
「タスク」アイコンを「taskDetails.jspx」ウィンドウにドラッグします。
「ヒューマン・タスク」を選択し、次に「タスク・ヘッダー」を選択します。
これにより、図28-27に示すように、タスク・アクションの「アクション」ドロップダウン・リストとボタンが作成され、さらに、図28-28に示すように、ヘッダー詳細が作成されます。
「タスク」アイコンをJSPXデザイナに追加ドラッグします。この作業を行うたびに次のオプションを選択します。
「ヒューマン・タスク」、次に「タスク履歴」。
「ヒューマン・タスク」、次に「タスク・コメントおよび添付ファイル」。
これで、タスク・フォームには、タスク・アクションのドロップダウン・リストとボタン、タスク・ヘッダー詳細、タスク履歴およびコメントと添付ファイル対する複数のリージョンが設定されます。
タスク・フォームの作成を続行するには、第28.4.6項「タスク・フォームへのペイロードの追加方法」の手順1を参照してください。
ペイロードの追加に加えて、タスク・フォーム・リージョンを作成できます。第28.4.5項「個別のドロップ・ハンドラを使用したタスク・フォーム・リージョンの作成方法」の手順1を参照してください。
ペイロードをタスク・フォームに追加する手順は、次のとおりです。
「コンポーネント・パレット」から「ADF Faces」を選択します。
「レイアウト」を展開します。
「パネル・グループ・レイアウト」を「ヘッダー」と「コメント」セクションの間にドラッグします。
「データ・コントロール」パネルで「タスク」を展開し、次に「ペイロード」を展開します。
ペイロード・データ・コレクションを「パネル・グループ・レイアウト」領域の左にドラッグします。
「ペイロード」ノードをフォームにドロップするかわりに、「ペイロード」ノードを展開して必要な子要素をフォームにドロップすることもできます。たとえば、VacationRequestペイロードの読取り専用フォームを作成するには、「ペイロード」ノードを展開し、休暇申請プロセス・リクエストノードをフォームにドラッグして、「フォーム」→「ADF読取り専用フォーム」の順に選択します。
図28-29に示すように、コンテキスト・メニューから「フォーム」を選択し、次に「ADF読取り専用フォーム」を選択します。
「フォーム・フィールドの編集」ダイアログで、デフォルトをそのまま使用し、「OK」をクリックします。
これで、「詳細」と「履歴」の間のペイロード・リージョンに、読取り専用フィールドが作成されます。
図28-30に示すように、ペイロード・リージョンが表示されます。
図28-31に示すタスク・フォームは完成しており、デプロイする準備ができています。
設計したフォームは.jspx
ファイルに保存されます。ファイルの場所は次のとおりです。
JDev_Oracle_Home\mywork\task_form_application_name\project_name\public_html
このタスク・フォームはデプロイできます。第28.8項「タスク・フローを使用したコンポジット・アプリケーションのデプロイ」を参照してください。
タスク・メタデータが変更された場合、そのタスク・メタデータに基づく「データ・コントロール」ビューをリフレッシュします(XSD変更はリフレッシュされません)。リフレッシュ機能により、データ・コントロールが再作成されます。図28-32に「リフレッシュ」オプションを示します。
データ・コントロールをリフレッシュする手順は、次のとおりです。
データ・コントロールを右クリックします。
図28-33に示すように、「定義の編集」オプションを選択し、「データ・コントロールのリフレッシュ」ダイアログを表示します。
タスク・フローは、コンテナベースのセキュリティを使用して保護できます。詳細は、第31.6.2.1.2項「アイデンティティ伝播のためのクライアント・アプリケーションの要件」を参照してください。Webセキュリティには、フォームベース認証およびSSOベース認証を使用できます。
通知を電子メールで送信している場合は、「/notification/secure」を含むURLを取得してコンテナベースのセキュリティを使用しないでください。これには、SOA外部では作成できない内部コンテキストを使用してSOA APIがアクセスするためです。URLパターンの内部セキュリティに、「/」(すべてのURL)および「//notification」を含めることはできません。
アイデンティティ伝播に必要な追加ステップはありません。アイデンティティはサーバーEJBに自動的に伝播されます。
電子メール通知がヒューマン・タスクの一部として定義されている場合は、その電子メール通知を表示するためにタスク・フォームが使用されます。電子メール通知には、次のオプションがあります。
デフォルト電子メール通知: ヒューマン・タスク用に作成するタスク・フォームの最初のページを使用します。コンテンツはHTMLベースの電子メールとして送信されます。タスク・フローの画像は、接続切断モードでも通知を表示できるように添付ファイルに含まれています。「ペイロードを持つ完了済タスク」および「ペイロードのない完了済タスク」ドロップ・ハンドラを含むすべてのドロップ・ハンドラが電子メールに適しています。
カスタム電子メール通知: 電子メールのタスク表示ドロップ・ハンドラを使用して、カスタム電子メール通知タスク・ページを作成します。
ヒューマン・タスク定義(.task
ファイル)の一部として通知設定を確認するには、第31.2項「ヒューマン・ワークフローからの通知」を参照してください。
コンテンツとレイアウトを指定したカスタム電子メール通知を送信するには、他のJSPXファイルを作成して、電子メール通知ページを設計します(ただし、通知のデフォルト・ページを変更なしで使用することもできます)。カスタム通知ページの作成には、カスタムおよび標準ドロップ・ハンドラを使用するか、電子メール通知ドロップ・ハンドラを使用します。さらに、次を実行します。
ルーターをタスク・フローに追加します。このルーターは、タスク・フローに対して、bpmClientType
ページ・フロー・スコープ値に基づいた制御フローに従って、電子メール通知ページまたはデフォルト・ページのいずれかを送信するように指示します。
生成されたインラインCSSを編集して、ページをカスタマイズします。実行時には、追加のCSSは含まれておらず、ADF CSSは使用できません。次の場所にあるサンプルのnotification-101およびnotification-102を参照してください。
https://soasamples.samplecode.oracle.com
画像をHTMLまたはJSFページから直接参照します(間接参照、たとえば、画像を順番に追加するJSFは許可されません)。
ルーターを使用した制御フロー・ケースでは、特定のパラメータに基づいて、特定ページにリクエストを渡すことができます。ヒューマン・タスクに基づいたADFタスク・フローでは、電子メール通知用に特別なページが必要です。この項では、電子メール通知用に特別なページを作成する方法を説明します。
ルーターを使用してタスク・フローを作成する手順は、次のとおりです。
「アプリケーション・ナビゲータ」でタスク・フロー・プロジェクトを展開し、project_name _TaskFlow.xmlをダブルクリックします。
デザイナでXMLファイルが開きます。ダイアグラム・ビューに、「taskDetails1.jspx」アイコンが表示されます。
「コンポーネント・パレット」から「ADFタスク・フロー」を選択し、「表示」アイコンをデザイナにドラッグします。
アイコンの下にある「view1」をクリックし、電子メール通知ページの名前を入力します。
図28-34に、「EmailPage」という名前の例を示します。
「コンポーネント・パレット」から「ルーター」をデザイナにドラッグします。
アイコンの下の「router1」をクリックし、ルーター名を入力します。
図28-36に、「PageRouter」という名前の例を示します。
ルーターがコールされることを確認するには、図28-35に示すように、ルーター・アイコンを右クリックし、「アクティビティのマーク」→「デフォルト・アクティビティ」の順にクリックします。
「ルーター」、「router_name」、「プロパティ・インスペクタ」タブの順にクリックします。
「デフォルト結果」フィールドにdefault
と入力します。
「追加」をクリックして、「結果」フィールドに電子メール通知ページの名前を入力します。
式ビルダーを使用して、#{pageFlowScope.bpmClientType=="notificationClient"}
を「式」フィールドに入力します。
「コンポーネント・パレット」で「制御フロー・ケース」をクリックします。
デザイナで、ルーター・ページ・アイコンから「taskDetails1.jspx」にドラッグします。
図28-36に示すように、制御フローには、「デフォルト」というラベルが自動的に付けられます。
「コンポーネント・パレット」で「制御フロー・ケース」をクリックします。
デザイナで、ルーター・ページ・アイコンから電子メール通知ページ・アイコンにドラッグします。
control-flow-case、「email_page_name」、「プロパティ・インスペクタ」タブの順にクリックします。
「結果(自)」リストに、電子メール通知ページの名前を入力します。
図28-37に、完成した制御フローを示します。
電子メール通知ページの作成を続行するには、第28.7.1.2項「電子メール通知ページの作成」のステップ1を参照してください。
電子メール通知ページの作成は、タスク・フォームの作成と類似していますが、レイアウトとインライン・スタイルの定義が必要です。デザイン情報については、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』を参照してください。
電子メール通知ページを作成する手順は、次のとおりです。
デザイナで、「EmailPage」をダブルクリックします。
「JSFページの作成」ダイアログで、ファイル名およびディレクトリ情報を入力(または、デフォルトをそのまま使用)して、「OK」をクリックします。
デザイナで「EmailPage.jspx」タブが開きます。
「コンポーネント・パレット」からデザイナに共通コンポーネント(たとえば画像など)やレイアウト・コンポーネントのいずれかをドラッグします。
レイアウト・コンポーネントを選択した場合は、位置合せやその他の詳細を「プロパティ・インスペクタ」タブで指定してください。
図28-38に、「パネル・グループ・レイアウト」が選択されているときに使用できるレイアウト・フィールドを示します。
パネル・グループ・レイアウトの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』を参照してください。
「外観」、「スタイルおよびテーマ」、「動作」、「詳細」、「カスタマイズ」および「注釈」を展開し、図28-39に示すように、その他の詳細を指定します。
『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』のコンポーネント属性の設定方法に関する項を参照してください。
「データ・コントロール」パネルで、「ヒューマン・タスク」ノード、「getTaskDetails」ノード、「戻る」ノードの順に展開します。
パネル・グループ・レイアウト領域に「タスク」をドラッグします。
図28-40に示すように、「ヒューマン・タスク」を選択し、次に「電子メールのタスク詳細」を選択します。
このドロップ・ハンドラには、ヘッダーとともに、インライン・スタイル、ADFを使用するペイロード、およびインライン・スタイルを使用するコメントが含まれます。ペイロードは動的に生成されるため、インライン・スタイルは含まれていません。
通常、各コンポーネントの「ヘッダー」セクションにはインライン・スタイルがあるため、それぞれのコンポーネントの「コンテンツ」セクションでは同じスタイルを使用できます。
「アクション・バインディングの編集」ダイアログで、データ・コレクションを選択し、「OK」をクリックします。
これで、電子メール・タスク・フォームが完了し、デプロイする準備ができました。
電子メール通知ページは、電子メールのメッセージ本文にHTMLコンテンツとして送信されます。ページ上の画像は添付ファイルとしてインラインされています。相対URLは絶対URLに変換されます。
フォームのフィールドに使用されているスタイルが電子メールに対して有効でない場合は、電子メールに通知が正しく表示されない場合があります。このため、生成されたインラインCSSを編集して、ページをカスタマイズする必要がある場合があります。詳細は、第28.7.1項「電子メール通知の作成方法」を参照してください。
セキュリティの問題によって、フォームが正しく表示されない場合もあります。詳細は、第28.6項「タスク・フロー・アプリケーションの保護」を参照してください。
ワークリスト・アプリケーションでタスク・フォームを使用するには、その前に、タスク・フローが含まれているコンポジット・アプリケーションをデプロイする必要があります。タスク・フローを使用してアプリケーションをデプロイするプロセスは、第28.8.1項「タスク・フローを使用したコンポジット・アプリケーションのデプロイ方法」で説明するように、SOAコンポジット・アプリケーションのデプロイと基本的に同じです。詳細は、第40章「SOAコンポジット・アプリケーションのデプロイ」を参照してください。
次の手順を実行するには、アプリケーション・サーバー接続が必要です。
タスク・フローを使用してコンポジット・アプリケーションをデプロイする手順は、次のとおりです。
コンポジット・アプリケーション名を右クリックし、「デプロイ」→「application_name」→「デプロイ先」→「application_server_connection」の順に選択します。
接続していない場合は、「新規接続」を選択し、アプリケーション・サーバー接続ウィザードを使用します。
「デプロイメント・ターゲットの選択」ダイアログで、サーバー・インスタンスを選択します。
「OK」をクリックします。
タスク・フォームを変更して再度デプロイするときは、デプロイメント手順を繰り返します(タスク・フォーム・アプリケーション名を右クリックし、「デプロイ」→「application_name」→「デプロイ先」→「application_server_connection」の順に選択します)。フォームをアンデプロイするかどうかのメッセージが表示されます。「OK」をクリックし、再度タスク・フォームをデプロイします。
タスク・フローを別のアプリケーションとしてSOAコンポジット・アプリケーション外にデプロイする場合は、新しいアプリケーションとプロジェクトをそのタスク・フローのコンテナとして作成します。SOAコンポジット・アプリケーションをデプロイした後に、タスク・フロー・アプリケーションをデプロイします。
この項では、非SOAのOracle WebLogic Serverにタスク・フォームをデプロイする方法について説明します。
RMIまたはHTTPポートのデフォルト値を使用していない場合は、Oracle JDeveloperのwf_client_config.xml
ファイルを開いて、値を変更します。
タスク詳細を非SOAサーバーにデプロイする場合は、wf_client_config.xml
ファイルを構成する必要があります。このファイルが作成されてタスク詳細プロジェクトに追加されるのは、タスク詳細をSOAサーバーではない別の管理対象サーバーにデプロイする場合のみです。ファイルの<serverURL>
と<rootEndpointURL>
には、SOAサーバーのホスト名とポート番号を指定します。
例28-2に、wf_client_config.xml
ファイルの例を示します。
例28-2 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.oracle.com:8001</serverURL> <initialContextFactory>weblogic.jndi.WLInitialContextFactory</initialContextFactory> <participateInClientTransaction>false</participateInClientTransaction> </remoteClient> <soapClient> <rootEndPointURL>http://my_host.us.oracle.com:8001</rootEndPointURL> </soapClient> </server> </workflowServicesClientConfiguration>
非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
非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をデプロイする手順は、次のとおりです。
Oracle WebLogic Server管理コンソールに移動します。
http://remote_hostname:remote_portnumber/console
「ドメイン構造」領域で、「デプロイメント」をクリックします。
図28-41に示すように、「インストール」をクリックします。
図28-41 Oracle WebLogic Server管理コンソール: 「デプロイメント」リスト
「パス」フィールドに次のパスを入力し、「次へ」をクリックします。
ORACLE_JDEV_HOME/jdeveloper/soa/modules/oracle.soa.workflow_11.1.1/oracle.soa.workflow.jar
図28-42に示すように、同じデプロイメントの名前を維持し、「次へ」をクリックします。
図28-42 Oracle WebLogic Server管理コンソール: 「アプリケーション・インストール・アシスタント」
ライブラリとしてデプロイ・オプションを選択し、「終了」をクリックします。
図28-43に示すように、oracle.soa.workflow(11.1.1,11.1.1)ライブラリが「アクティブ」状態であることを確認します。
図28-43 Oracle WebLogic Server管理コンソール: 「アクティブ」状態のoracle.soa.workflow
第28.8.4.4項「非SOAのOracle WebLogic Serverでの外部JNDIプロバイダの定義」を参照して続行してください。
Oracle WebLogic Server管理コンソールを使用して、次のタスクを実行します。
外部JNDIプロバイダを定義する手順は、次のとおりです。
「ドメイン構造」領域で、「サービス」を展開し、「外部JNDIプロバイダ」をクリックします。
「新規」をクリックします。
図28-44に示すように、「名前」フィールドにForeignJNDIProvider-SOA
と入力し、「OK」をクリックします。
「ForeignJNDIProvider-SOA」リンクをクリックします。
次のように入力し、「保存」をクリックします。
「初期コンテキスト・ファクトリ」に、weblogic.jndi.WLInitialContextFactory
と入力します。
「プロバイダURL」に、t3://
soa_hostname
:
soa_portnumber
/soa-infra
と入力します。
クラスタ化された環境では、「プロバイダURL」にhttp://
soa_hostname
:
soa_portnumber
/soa-infra
と入力します。
「ユーザー」に、weblogic
と入力します。
「パスワード」に、weblogic
と入力します。
図28-45に、これらの情報を入力するページを示します。
第28.8.4.5項「非SOAのOracle WebLogic Serverでの外部JNDIプロバイダ・リンクの定義」を参照して続行してください。
Oracle WebLogic Server管理コンソールを使用して、次のタスクを実行します。
外部JNDIプロバイダ・リンクを定義する手順は、次のとおりです。
「ドメイン構造」領域で、「サービス」を展開し、「外部JNDIプロバイダ」をクリックします。
「ForeignJNDIProvider-SOA」リンクをクリックします。
「リンク」タブをクリックします。
「新規」をクリックします。
図28-46に、「リンク」タブを示します。
次のように入力し、「OK」をクリックします。
「名前」に、RuntimeConfigService
と入力します。
「ローカルJNDI名」に、RuntimeConfigService
と入力します。
「リモートJNDI名」に、RuntimeConfigService
と入力します。
図28-47に、これらを入力するページを示します。
次のように入力し、「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
と入力します。
第28.8.4.6項「bpm-services.jarに対する権限付与を含める方法」を参照して続行してください。
bpm-services.jarに対する権限付与を含めるには、system-jazn-data.xml
ファイルを編集し、非SOAのOracle WebLogic Serverを再起動します。
bpm-services.jarに対する権限付与を含める手順は、次のとおりです。
ドメイン・ディレクトリ「soa-infra」に移動し、次の場所に移動して、system-jazn-data.xml
ファイルを検索します。
ORACLE_WEBLOGIC_INSTALL/user_projects/domains/your_domain_name/config/fmwconfig
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>
非SOAのOracle WebLogic Serverを再起動します。
第28.8.4.7項「アプリケーションのデプロイ」を参照して続行してください。
タスク・フォームを含むアプリケーションは、他のアプリケーションをデプロイする方法と同じ方法で非SOAのOracle WebLogic Serverにデプロイします。アプリケーション・サーバー接続を設定するときは、非SOAサーバー上のドメイン(第28.8.4.6項「bpm-services.jarに対する権限付与を含める方法」のステップ1で指定したドメイン)を指定します。アプリケーションのデプロイについては、第40章「SOAコンポジット・アプリケーションのデプロイ」を参照してください。
タスク・フォームがデプロイされると、タスク・メタデータとタスク・フロー・アプリケーションURL間の関連付けが自動的に作成されます。このマッピングを更新するには、Oracle Enterprise Manager 11g Fusion Middleware Controlを使用します。特定のSOAコンポジット・アプリケーションについては、「コンポーネント・メトリック」表のタスク・フロー・コンポーネントにアクセスします。「管理」タブに、タスク・フォームのURIが表示されます。詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。タスク・フローがHTTPSアクセス用に構成されている場合は、Enterprise Managerでの追加設定が必要になる場合があります。
タスクの操作方法については、第29章「Oracle BPM Worklistの使用」を参照してください。
注意:
|
タスク・フローのWebアプリケーションがデプロイされると、タスク・フローのURLがデータベースに登録されます。タスクをクリックしてタスク詳細を表示すると、Oracle BPM WorklistにこのURLが表示されます。後でタスク・フローのWebアプリケーションをアンデプロイまたは停止した場合、データベース内のタスク・フローのURLはアンデプロイ時に削除されません。その結果、ワークリスト内のタスクをクリックしてタスク詳細を表示するときに、メッセージ「このタスクでは詳細を使用できません」
ではなく
「404 見つかりません」
エラーが表示されます。
「404 見つかりません」
エラーを回避するには、Oracle Enterprise Manager Fusion Middleware Controlコンソールを使用して、アプリケーション・ホームページからタスク・フロー・アプリケーションをアンデプロイします。
タスク・フォームは、Oracle BPM Worklistに表示されており、ユーザーが割り当てられたヒューマン・タスクを操作するWebベースのインタフェースです。ユーザーの権限によって特定のアクションが使用可能または不可能となります。
図28-48に、ワークリスト・アプリケーションの「タスクの詳細」ページに表示されるヘルプ・デスク・リクエスト例のタスク・フォームを示します。
タスク・フォームは、ログイン後にOracle BPM Worklistで使用可能になります。手順については、第29.2.1項「ワークリストへのログイン方法」を参照してください。
図28-49に、電子メールに表示される電子メール・タスク通知を示します。
選択可能なアクションとして「解決済」または「未解決」をクリックするか、「ワークリスト・アプリケーション」リンクをクリックすると、ワークリストにログインできます。アクションをクリックすると電子メール作成ウィンドウが表示され、このウィンドウでは、コメントを追加して、電子メールを送信できます。
デフォルトでは、タスク通知のテキストには「ワークリスト・アプリケーション」と書かれていますが、そのテキストと、関連付けられるURLは変更することができます。
デフォルトでは、タスク通知のテキストには「ワークリスト・アプリケーション」と書かれていますが、そのテキストは変更することができます。そのためには、カスタム・リソース・バンドルを作成し、該当する文字列を変更します。
タスク通知のテキストを変更する手順は、次のとおりです。
サンプルのworkflow-110-workflowCustomizationsでWorkflowLabels.properties
リソース・バンドルを開きます。
WorkflowLabels.properties
ファイルで、次の文字列を変更します。
TASK_NOTIF_MSG.WORKLIST_APPLICATION=Worklist Application TASK_NOTIF_MSG.WORKSPACE_APPLICATION=Workspace Application
リソース・バンドル文字列の変更方法については、workflow-110-workflowCustomizationsのサンプルを参照してください。
インスタンスの「ワークフロー・カスタム・クラスパスURL」構成パラメータを更新します。
アプリケーションが動作するために、WorkflowLabels.properties
ファイルをデプロイする必要はありません。かわりに、次のいずれかを行います。
file:///
で始まるURLを使用して適切な場所を指し、ファイル・システム上でホストします。
oramds:///...
で始まるURLを使用し、MDSでファイルをホストします。
タスク通知のテキストを変更する手順は、次のとおりです。
Oracle Enterprise Manager Fusion Middleware Controlにログインします。
ナビゲータで、「SOA」フォルダを開きます。
SOAインフラを右クリックし、「SOA管理」→「ワークフロー・タスク・サービス・プロパティ」 の順に選択します。
「ワークフロー・タスク・サービス・プロパティ」ページが表示されます。
「拡張」を展開します。
「ワークリスト・アプリケーション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の表示と非表示については、第27.3.10.6項「Oracle BPM Worklist URLを通知に表示」を参照してください。
複数のヒューマン・タスクを含む単一のタスク・フロー・アプリケーションを再利用できます。この機能を使用するには、すべてのヒューマン・タスクに同一のペイロード要素が必要です。
TASKFLOW_PROJ_DIR
\adfmsrc\hwtaskflow.xml
ファイルを開きます。
ヒューマン・タスクを追加するたびに、ファイル内(ファイルの最後で</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>
要素をコピーします。