32 Oracle BPM Worklistの使用
-
Oracle BPM Worklistへのログイン
-
ワークリスト・アプリケーションでカスタマイズされたアプリケーションを有効化するJavaコード
ワークフロー・サービスによって公開されるAPIの使用方法については、「カスタム・ワークリスト・クライアントの作成」を参照してください。
ヒューマン・ワークフロー問題のトラブルシューティングの詳細は、『Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理』のヒューマン・ワークフローのトラブルシューティングに関する項を参照してください。
32.1 Oracle BPM Worklistの概要
Oracle BPM Worklistを使用すると、ビジネス・ユーザーは自分に割り当てられたタスクにアクセスして操作できます。たとえば、ワークリストから、融資エージェントは融資申請を確認し、マネージャは従業員の休暇申請を承認できます。
Oracle BPM Worklistは、ユーザー・プロファイルに基づいて様々な機能を提供します。標準的なユーザー・プロファイルには、タスク割当て先、監督者、プロセス所有者、レビューアおよび管理者が含まれます。たとえば、ワークリスト・ユーザーは、承認や却下などの結果を提供してタスクを完了することに加えて、ペイロードやビジネス・データの更新、文書やコメントの添付、他のユーザーへのタスクのルーティングも実行できます。監督者やグループ管理者は、ワークリストを使用して、グループに割り当てられたタスクを分析し、そのタスクを適切にルーティングできます。
ユーザーは、ビューや保存済の検索を作成することによって、タスクをフィルタできます。
タスク割当て先は、Oracle BPM Worklistを使用して次の操作を実行できます。
-
ワークリスト内のタスクに対して認可されているアクションの実行、共有タスクの獲得およびチェックアウト、個人のToDoタスクの定義、およびサブタスクの定義を実行できます。
-
様々な基準に基づいてワークリスト・ビューでタスクをフィルタできます。
-
高優先度のタスク、期日の近いタスクなどの標準作業キューを使用できます。作業キューを使用すると、ユーザーは、カスタム・ビューを作成してワークリスト内のタスクのサブセット(高優先度のタスク、24時間以内に期限があるタスク、経費承認タスクなど)をグループ化できます。
-
カスタム作業キューを定義できます。
-
別のユーザーのワークリストの一部に対するプロキシ・アクセスを取得できます。
-
カスタムの休暇ルールおよび委任ルールを定義できます。
-
グループ所有者による、共有タスクのタスク・ディスパッチ・ルールの定義を可能にします。
-
完全なワークフロー履歴と監査証跡を収集できます。
-
タスクのためのデジタル署名を使用できます。
図32-1に、Oracle BPM Worklistを示します。
図32-1 Oracle BPM Worklist—タスク、フォーム、添付およびレポートへのアクセス
「図32-1 Oracle BPM Worklist—タスク、フォーム、添付およびレポートへのアクセス」の説明
ワークリストはタスクのリストです。タスク・フォームでは、タスクの詳細を表示および更新します。Oracle JDeveloperのADFタスク・フローを使用して、タスク・フォームを作成できます。詳細は、「ヒューマン・タスク用のタスク・フォームの設計」を参照してください。
ワークフロー・サービスのクライアントは、ワークフロー・サービスで公開されたAPIを使用して作成できます。このAPIにより、クライアントは、ローカルとリモートのEJB、SOAPおよびHTTPを使用してワークフロー・サービスと通信できるようになります。
32.2 Oracle BPM Worklistへのログイン
次に、Oracle BPM Worklistが認識する様々なタイプのユーザーを、割り当てられている権限に基づいて示します。
表32-1 ワークリスト・ユーザー・タイプ
ユーザーのタイプ | アクセス |
---|---|
エンド・ユーザー(ユーザー) |
自分または所属グループに割り当てられたタスクを操作し、システム・アクションとカスタム・アクション、ルーティング・ルールおよびカスタム・ビューにアクセスできます。 |
スーパーバイザ(マネージャ) |
自分のエンド・ユーザー・アクセスの他に、報告先のタスク、レポートおよびカスタム・ビューを操作します。 |
プロセス所有者 |
自分のエンド・ユーザー・アクセスの他に、プロセスには属しているが他のユーザーに割り当てられているタスクを操作します。 |
グループ管理者 |
自分のエンド・ユーザー・アクセスの他に、グループ・ルールと動的割当てを管理します。 |
ワークフロー管理者 |
エラー状態のタスク、たとえば再割当てまたは一時停止が必要なタスクを管理します。また、自身のエンド・ユーザーとしてのアクセス以外に、アプリケーションのプリファレンス変更および属性のマッピング、すべてのユーザーまたはグループに対するルール管理が可能です。 |
割当て先 |
自分のエンド・ユーザー・アクセスの他に、自分に割り当てられているタスクを操作します。 |
レビューア |
自分のエンド・ユーザー・アクセスの他に、レビューに割り当てられているタスクを操作します。 |
ノート:
複数の認証プロバイダ(たとえば、SSOとフォーム)はサポートされていません。
32.2.1 ワークリストへのログイン方法
ログインするには、Oracle SOA Suiteがインストールされている必要があり、SOAサーバーが実行中である必要があります。詳細は、『Oracle SOA SuiteおよびBusiness Process Managementのインストールと構成』を参照してください。
サポートされている次のWebブラウザを使用してください。
ブラウザ | 最小バージョン |
---|---|
Microsoft Edge | 103 |
Google Chrome | 103 |
Mozilla Firefox | 102 |
Apple Safari | 14 |
ログインするには:
32.2.2 ワークリストへのログイン時の処理内容
アイデンティティ・サービス・ワークフローAPIは、ユーザー名、パスワードおよびレルム・セット(オプション、複数のレルムが組織に定義されている場合)を使用してログインを認証および認可します。管理者がインタフェースに表示されるレルム・ラベルを変更するためにプリファレンスを設定する方法、またはログイン・ページのイメージのソースの場所を変更する方法の詳細は、「ログイン・ページ・レルムのラベルを指定する方法」を参照してください。
図32-2に、「ホーム」ページの例を示します。
このページは、ユーザーのロールに応じて、ユーザーに割り当てられたすべてのタスクと作業アイテムの一覧を表示します。たとえば、「ユーザー・タスク」ページと「開始済のタスク」ページはすべてのユーザーがアクセスできます。マイ・スタッフ・ページにはスーパーバイザのみがアクセスでき、「管理タスク」ページにはプロセス・ワークスペース管理者のみがアクセスできます。
図32-3のように、左端には、「ユーザー・タスク」が選択されているビューのリストがあります。このリストを展開して、次を選択します:
-
特定のビューに、各ビューで開かれているタスクの数が表示されます。特定のビューを選択すると、タスク・カウントが最新の数値にリフレッシュされます。
-
プロセス・ワークスペースにデプロイされているアプリケーションのリスト
-
指定したお気に入りのリンクまたはアプリケーション。
タスクでの作業中にこのリストを表示するには、「固定」をクリックします。非表示にするには「固定解除」をクリックします。
表32-2では、「ホーム」(タスク・リスト)ページのコンポーネントについて説明します。
表32-2 「ホーム」(タスク・リスト)ページのコンポーネント
コンポーネント | 説明 |
---|---|
「ビュー」リスト |
受信ボックス、標準ビュー、ユーザー・ビュー。詳細は、「ワークリスト・ビューを作成、削除およびカスタマイズする方法」を参照してください。 表示される「受信ボックス」ビューは、ログイン・ユーザーに付与されているロールに応じて異なります。
詳細は、次を参照してください:
|
ワークリスト・ビュー |
- |
タスク・ステータス |
棒グラフは、現在のビューのタスク・ステータスを示します。詳細は、「タスク・ステータス・グラフのカスタマイズ方法」を参照してください。 |
表示フィルタ |
「割当て先」または「状態」フィールドから検索条件を指定します。使用可能なカテゴリ・フィルタは、選択しているタブに応じて異なります。
「検索」を使用してキーワードを入力するか、「拡張検索」を使用します詳細は、「タスクのフィルタ方法」を参照してください。 |
「アクション」リスト |
ヒューマン・タスクに対して定義したグループ・アクション(「申告」)またはカスタム・アクション(「承認」、「却下」など)を選択します。タスクがFYIタスクであっても、「申告」は、グループまたは複数のユーザーに割り当てられているタスクに対して表示されます。タスクを操作する前に、1人のユーザーがタスクを申告する必要があります。タスクに対して可能な他のアクション(システム・アクションなど)は、特定のタスクの「タスクの詳細」ページに表示されます。ここでは、To Doタスクやサブタスクも作成できます。 ノート:
|
デフォルト列 |
タイトル—ヒューマン・タスクの作成時に指定したタイトル。パージまたはアーカイブされたプロセス・インスタンスに関連付けられていたタスクは表示されません。 番号—タスクに割り当てられている一意のID番号。 作成者—タスクを作成したユーザー。 割当て済—対象のタスクが割り当てられた日付。 優先度—ヒューマン・タスクの作成時に指定した優先度。最も高い優先度は1、最低は5です。 |
タスクの詳細 |
受信ボックスのタスクを選択すると、タスクの詳細がワークリストの下半分に表示されます。「受信ボックス設定の編集」の「タスクの詳細」ペインを非表示にすることで、同じウィンドウまたは新しいウィンドウで詳細を確認することもできます。タスクを完了すると、次のようになります。
詳細は、「タスクの処理: タスクの詳細ページ」を参照してください。 |
図32-2には、「管理」、「レポート」および「プリファレンス」の各リンクも表示されています(右上隅)。表32-3に、「ホーム」、「管理」、「レポート」および「プリファレンス」の各ページの要約を示します。
表32-3 ワークリストの主要ページのサマリー
ページ | 説明 |
---|---|
ホーム |
表32-2に示すように、ログイン・ユーザーのタスク・リスト、選択したタスクの詳細、およびタスク操作の開始に必要なすべての機能が表示されます。 |
管理 |
使用可能な管理機能は、次のとおりです。
|
レポート |
次のレポートを使用できます。「不参加タスク・レポート」、「タスクの優先度レポート」、「タスクのサイクル・タイム・レポート」、「タスクの生産性レポート」および「タスク時間分布レポート」。詳細は、「レポートの作成方法」を参照してください。 |
プリファレンス |
次のプリファレンス設定が含まれます。
|
32.2.3 ユーザーがOracle BPM Worklistにログイン中にユーザーの権限を変更した場合の処理内容
Oracle BPM Worklistにログイン中のユーザーの権限をOracle Enterprise Manager Fusion Middleware Controlで変更した場合、その変更はそのユーザーがそれ以降にログインした後でのみ適用されます。2つのアクティブなワークリスト・セッションがあり、同じユーザーがその1つに権限変更前にログインし、もう1つには権限変更後にログインした場合も同様になります。最初のケースでは、ユーザーのログイン中はユーザーの権限変更が有効になりません。2番目のケースでは、ユーザーがワークリスト・アプリケーションの2番目のインスタンスにログインすると、ユーザーの権限変更が有効になります。
32.3 タスク・リスト・ページのカスタマイズ
タスク・リストは、ワークリスト・ビューの追加、表示する列の選択、「タスクの詳細」ペインの表示または非表示の設定、フィルタ基準に基づいたタスクのサブセットの表示など、様々な方法でカスタマイズできます。フェッチするタスクの数を増やすには、タスク・リストの表示領域のサイズを大きくします。
ノート:
ヒューマン・タスクを含むSOAコンポジット・アプリケーションをパーティションにデプロイした場合、Oracle BPM Worklist内のパラメータとしてパーティションを使用し、それらのコンポジットに対して作成されたタスクをフィルタ処理することができません。たとえば、特定のパーティションに対応するタスク・タイプを選択することはできますが(同じタスク・タイプでパーティションが異なる)、拡張検索、カスタム・ビュー、カスタム・ルールおよびマップ済属性の各機能ではフィルタ処理が機能しません。たとえば、VacationRequestAppがパーティション1とパーティション2にデプロイされているとします。「拡張検索」を使用して、パーティション1にデプロイされたコンポジットに対応するタスクを選択しようとしても、検索結果にそれらのタスクは表示されません。
32.3.1 タスクのフィルタ方法
図32-4に、フィルタの各フィールドを示します。
タスクのサブセットを表示するには、次のフィルタ基準に基づいてフィルタを使用します。
-
割当て先
「割当て先」ドロップダウン・リストで、次のものから選択します。
-
自分—ログイン・ユーザーに直接割り当てられているタスクを取得します。
-
グループ: 次のものを取得します。
-
ログイン・ユーザーが属するグループに割り当てられたタスク
-
ログイン・ユーザーに割り当てられたアプリケーション・ロールに割り当てられているタスク
-
複数のユーザー(その中の1人はログイン・ユーザー)に割り当てられているタスク
-
-
自分および自分のグループ—ユーザーに直接、またはグループ、アプリケーション・ロール、ユーザー・リストのいずれかによって割り当てられた全タスクを取得します。
-
自分(過去)—ログイン・ユーザーによって以前に更新または閉じられたタスクを取得します。
-
自分(確認のみ)—ログイン・ユーザーがレビューアであるタスクを取得します。
「スタッフのタスク」タブで、「報告先」を選択します。
-
-
状態: 次の中から選択します。「任意」、「割当て済」、「完了」、「一時停止」(後で再開可能)、「取消し済」、「期限切れ」、「エラー発生」(処理中)、「アラート済」、「情報のリクエスト中」。
-
検索—キーワードを入力して、タスクのタイトル、コメント、識別キー、および指定のフィルタ基準を満たすタスクのフレックス文字列フィールドを検索します。
-
詳細—詳細な検索フィルタを指定します。
ノート:
1つのタスクが複数の報告先に個別に割り当てられている場合は、マネージャが「スタッフのタスク」リストを表示すると、そのタスクが割り当てられている報告先の数と同じ数のタスクのコピーが表示されます。
32.3.1.1 割当て先または状態に基づいてタスクをフィルタ処理する手順
割当て先または状態に基づいてタスクをフィルタ処理するには:
「割当て先」および「状態」リストからオプションを選択します。タスク・リストは、フィルタの選択内容に基づいて自動的に更新されます。
32.3.1.2 キーワード検索に基づいてタスクをフィルタ処理する手順
キーワード検索に基づいてタスクをフィルタ処理するには:
- キーワードを入力して、タスクのタイトル、コメント、識別キー、および指定のフィルタ基準を満たすタスクのフレックス文字列フィールドを検索します。
- [Enter]を押すか、「リフレッシュ」をクリックします。
32.3.1.3 拡張検索に基づいてタスクをフィルタ処理する手順
拡張検索に基づいてタスクをフィルタ処理するには:
マップ済属性マッピングが定義済のタスク・タイプを選択すると、マップ済属性のラベルを拡張検索で使用できます。
詳細は、「属性のマップ方法」を参照してください。
32.3.2 ワークリスト・ビューを作成、削除およびカスタマイズする方法
図32-11に示す「ビュー」メニューには、次のものが表示されます。
-
受信ボックス—使用したフィルタの結果によるすべてのタスクが表示されます。デフォルトでは、すべてのタスクが表示されます。
-
標準ビュー—標準ビューと自分が定義したビューが表示されます。
-
ユーザー・ビュー—作成したビューが表示されます。
ビューを作成、共有およびカスタマイズするには、「ビュー」を使用します。
ワークリスト・ビューを作成するには:
-
「ビュー」セクションで「ビューの追加」をクリックします。図に示すように、「ユーザー・ビューの作成」ダイアログ・ボックスが表示されます。
-
次のことを実行するには、図32-12に示すように、「ユーザー・ビューの作成」ダイアログ・ボックスの「定義」タブを使用します。
-
名前—ビューの名前を指定します。
-
標準ビューに追加—このオプションは管理者のみに適用されます。管理者はこのオプションを選択して、ビューを標準ビューとして作成します。作成された標準ビューは、すべてのワークリスト・ユーザーの「標準ビュー」リストに表示されます。
-
割当て先—「自分」、「グループ」、「自分および自分のグループ」、「自分(過去)」、「自分(確認のみ)」、「作成者」、「報告先」、「管理者」、「所有者」から選択します。
-
一致—追加した条件に一致するのが「すべて」か「任意」かを選択します。
-
条件の追加(プラス記号)—ビューに適用する条件を選択します。
-
ビューの共有—他のユーザーに、このビューの定義へのアクセス権を付与したり(この場合は、ビュー条件が権限受領者のデータに適用されます)、データ自体へのアクセス権を付与することができます(この場合、権限受領者は、データも含めて権限付与者のワークリスト・ビューを参照できます)。ビューを別のユーザーと共有することは、そのビューに対応する全タスクを他のユーザーに委任することに類似しています。つまり、共有相手のユーザーは自分のかわりにタスクを操作できます。共有ビューは「ユーザー・ビュー」の下に表示されます。
-
ユーザー—ビューを共有できるユーザー(権限受領者)を指定します。
-
グループ—ビューを共有できるグループを指定します。
-
-
図32-13に示す「ユーザー・ビューの作成」ダイアログの「表示」タブを使用して、ビューに表示するフィールドをカスタマイズします。
-
ビュー列の選択—タスク・リストに表示する列を指定します。特定のタスク・タイプにマップされている標準タスク属性またはマップ済属性を指定できます。デフォルト列は、受信ボックスの列と同じです。
-
ソート基準—ソートする列を選択します。
-
次の基準—2番目にソートする列を選択します。
-
次の基準—3番目にソートする列を選択します。
-
次の基準—4番目にソートする列を選択します。
-
ソート順—昇順または降順を選択します。
-
-
「OK」をクリックします。
保存済のビューは、「ユーザー・ビュー」の下の「ビュー」パネルに表示されます。
ビューを削除するには:
ノート:
管理者が事前にシードされている標準ビューを誤って削除しても、これらのビューは完全に削除された状態のままにはなりません。これらは、サーバーの再起動時に再作成されます。
- 「ビュー」パネルで、ビューを選択します。
- 「削除」アイコンをクリックします。
- 「削除の確認」ダイアログ・ボックスで、ビューを削除することを確認するように求められます。
- 「はい」をクリックします。ビューが削除されます。
32.3.3 タスク・ステータス・グラフのカスタマイズ方法
棒グラフには、ステータス別にタスクが表示され、各ステータス・カテゴリのタスク数が示されます。このグラフは、現行ビュー内のフィルタ処理された一連のタスクに適用されます。
タスク・ステータス・グラフをカスタマイズするには:
32.3.4 To Doタスクの作成方法
自分または他のユーザーの最上位レベルのTo Doタスクを作成するには、図32-16に示す「To Doタスクの作成」ダイアログを使用します。このタスクはビジネス・タスクと関連していません。
To Doタスクは、割当て先の「受信ボックス」に表示されます。
他のTo Doタスクまたはビジネス・タスクの子であるTo Doタスクを作成できます。1つのTo Doタスクに作成できるのは、1レベルの子のTo Doタスクのみです。子のTo Doタスクが100%完了すると、その親のTo Doタスクも完了済としてマークされます。親のTo Doタスクが完了すると、ワークフロー・システム内では子のTo Doタスクが100%となります。ただし、親がビジネス・タスクの場合、その子のTo Doは完了済としてマークされません。この場合は、結果を設定して完了する必要があります。To Doタスクを明示的に100%に設定すると、親タスクでの集計はありません。
To Doタスクは、再割当て、エスカレートなどに加えて、削除(論理的な削除)やパージ(物理的な削除)も可能です。親タスクの再割当てやエスカレートなどが、子のTo Doタスクの割当てに影響を与えることはありません。To Doタスクが完了した後は、その完了率を100%未満にリセットできます。
割当てルール(休暇ルールなど)は、To Doタスクに適用されません。また、To Doタスクに対するビジネス・ルールの指定はできません。
To Doタスクを作成するには:
32.3.5 ワークリスト・アプリケーションでのサブタスクの作成方法
サブタスクとは、親タスクの子です。たとえば、注文書に複数の明細項目が含まれ、それぞれに別個の承認プロセスが必要な場合、サブタスクを作成すると便利です。
ノート:
ToDoタスクに対してサブタスクを作成することはできません。32.3.5.1 サブタスクの作成に関する必知事項
サブタスクを作成する際、次のような点に注意する必要があります。
-
親がビジネス・タスクでそのタスクが完了した場合、そのタスクのサブタスクは取り消されます。
-
使用しているOracle Business Process Managementのリリースが11gリリース1 (11.1.1.7.0)より前の場合、サブタスクを作成するタスクのタスク・フォームを再作成する必要があります。ただし、以前のリリースでデプロイされたプロセスは継続して使用できます。
タスク・フォームを再作成しなかった場合、タスク・フォーム自体の「アクション」リストではサブタスクを作成するオプションを選択できません。ただし、「ワークリスト」の上の「アクション」リストから「サブタスクの作成」を選択することによってサブタスクを作成できます。
-
BPMNサービス・エンジンの管理者である場合、Oracle Enterprise Manager Fusion Middleware Controlにはサブタスクが表示されないため、注意してください。
サブタスクを作成するには:
32.4 Microsoft Excelへのタスクのエクスポート
選択したビューに基づいて、タスクをExcelにエクスポートできます。
32.5 タスクの操作: 「タスクの詳細」ページ
優先度の変更、コメントや添付の追加など、「タスクの詳細」ページで変更を行った場合は、他の変更を行う前に変更内容を保存する必要があります。
タスクの詳細は、インライン(図32 -2の下部セクションを参照)、同じウィンドウまたは新しいウィンドウ(「受信ボックス設定の編集」の設定を変更)に表示できます。
図32-19に、「タスクの詳細」ページを示します。
「タスクの詳細」ページには、次のコンポーネントがあります。
-
アクション—タスクに対して可能なシステム・アクションがリストされます。たとえば、「情報のリクエスト」、「再割当て」、「期限更新」、「一時停止」、「エスカレート」、「保存」などです。
-
アクション・ボタン—ヒューマン・タスクに定義されているカスタム・アクションに関するボタンが表示されます。たとえば、タスクの結果(ヘルプ・デスク・リクエストの場合は「解決済」と「未解決」、融資申請の場合は「承認」と「却下」)を設定するボタンがあります。タスク・イニシエータ、マネージャまたは管理者の場合は、「取消」も表示される場合があります。
-
詳細—割当て先、タスク作成者、タスク番号、状態、優先度、タスク獲得者および他のマップ済属性など、タスクの属性を表示します。また、タスクの作成、最終更新および有効期限に関する日付も表示します。
-
履歴—タスクの承認順序や更新履歴が表示されます。詳細は、「タスク履歴」を参照してください。
表32-6に、「タスクの詳細」の「履歴」セクションで使用されるアイコンの意味を示します。
表32-6 タスク・アクションの「履歴」のアイコン
アイコン 説明 非定型ルーティング・シナリオの承認者を表します。
タスクが承認されたことを示します。
FYI参加者を表します。つまり、この参加者は通知タスクを受信するのみで、ビジネス・プロセスはこの参加者のレスポンスを待機しません。参加者がタスクの結果に直接影響を与えることはできませんが、コメントを提供したり添付を追加できる場合があります。
複数の人が並行して作業することを示します。このパターンは通常、投票で使用されます。
この参加者が管理チェーンに属していることを示します。
参加者が1人のユーザー、1つのグループまたはロールにマッピングされる単純なケースであることを示します。
タスクが未着手であることを示します。
-
コメント—ワークフローに参加した様々なユーザーが入力したコメントが表示されます。新規に追加されたコメントやコメンタのユーザー名は、既存のコメントに追加されます。コメントの追跡情報は、タスクのライフ・サイクル全体を通じて保持されます。コメントを追加または削除するには、タスクの更新権限が必要です。
-
添付—タスクに関連付けられている文書または参照URLが表示されます。これらは通常、ヒューマン・タスクに定義されたワークフロー、またはワークリストを使用して参加者が添付して変更したワークフローに関連付けられています。添付を追加または削除するには、タスクの更新権限が必要です。添付ファイルを追加する場合は、ファイルの絶対パス名を使用したり、ファイルを参照することができます。
ノート:
高可用性のためにサーバーがクラスタ化されている環境では、フェイルオーバーが発生した場合、ファイルのアップロードはサポートされません。アクティブなサーバーが停止した場合、アップロード・プロセスは他のサーバーに引き継がれず、アップロードは失敗します。
コメントおよび添付は、タスクとサブタスクの間で共有されます。たとえば、ビジネス・タスクを作成してコメントと添付を追加すると、そのタスクのサブタスクにも同じコメントと添付が含まれます。
「タスクの詳細」ページの表示は、設計時にこのページに表示するタスク・フォームの開発に使用したツールによって異なる場合があります。
ユーザーがタスクを参照できるのは、そのタスクが、現在の割当て先(直接的な割当てまたはグループ・メンバーシップによる割当て)、現在の割当て先のマネージャ、作成者、所有者、または以前のアクターとして関連付けられている場合です。
グループ・メンバーシップとロールは、ユーザーのプロファイルによって決定されます。ユーザーの権限は、ロールによって決定されます。ただし、ユーザーが実行できるアクションの正確なセットは、権限とは別に、タスクの状態、カスタム・アクション、および設計時にタスク・フローに対して定義された制限付きアクションによっても変化します。
ノート:
制限付きタスクの再割当てなどの特定の関数は、単一のタスクが選択されている場合にのみ使用できます。制限付き再割当てを使用する複数のタスクが選択されている場合、制限付き再割当てアルゴリズムは起動されません。その場合、制限付き再割当てが指定されていなかったかのようにユーザーの完全なリストが返されます。
ユーザーがタスクに対して実行できるアクションは、次のアルゴリズムで決定されます。
-
ユーザーが実行できるアクションのリストは、そのユーザーに付与されている権限に基づいて取得されます。
-
現在のタスクの状態で実行できるアクションのリストが取得されます。
-
前述のリストに出現するアクションの結合リストが作成されます。
-
タスクで制限付きアクションとして指定されているアクションが結合リストから除外されます。
結果のアクション・リストは、対象ユーザーのタスク・リスト・ページと「タスクの詳細」ページに表示されます。ユーザーが特定のアクション(申告、一時停止、再割当てなど)をリクエストすると、ワークフロー・サービスでは、リクエストされたアクションが前述のアルゴリズムで決定されたリストに含まれていることを確認します。
前述のアルゴリズムのステップ2では、多くのケースが処理されます。タスクの状態が、最終完了(順序フローですべての承認が終了した状態)、期限切れ、取消し済、エラー発生のいずれかである場合、追加の更新アクションは許可されません。これらの状態の場合は、タスク、タスク履歴およびサブタスク(パラレル・フローの親タスク)を参照できます。タスクが一時停止されている場合、実行可能なアクションは再開または取消のみです。グループに割り当てられているタスクは、なんらかのアクションを実行する前に、申告する必要があります。
ノート:
タスクの承認など、「タスクの詳細」ページからタスクを操作した場合は、そのタスクに対する変更内容とともに、変更されていないタスクの詳細データも保存されます。ただし、「アクション」メニューからタスクを操作した場合、変更されていないタスクの詳細は保存されません。
32.5.1 システム・アクション
アクション・バーには、すべてのタスクで使用可能なシステム・アクションがユーザーの権限に基づいて表示されます。表32-7に、システム・アクションを示します。
表32-7 システム・タスク・アクション
アクション | 説明 |
---|---|
申告 |
グループまたは複数のユーザーに割り当てられているタスクは、最初に申告する必要があります。「申告」は、グループまたは複数ユーザー割当ての「タスク・アクション」リストで選択可能な唯一のアクションです。タスクが申告されると、すべての適用可能なアクションがリストされます。 |
エスカレート |
タスクを完了できない場合は、そのタスクをエスカレートし、必要に応じて「コメント」領域にコメントを追加できます。このタスクは、ユーザーのマネージャ(階層内で1レベル上)に再度割り当てられます。 |
プッシュバック |
このアクションは、タスクをワークフロー内で1レベル下の前の割当て先に送信する際に使用します。 プッシュバック・アクションにより、他のすべてのアクションがオーバーライドされます。たとえば、タスクがプッシュバックされた後に再度割り当てられた場合、再割当て先がタスクを承認すると、そのタスクはプッシュバックを実行したユーザーに戻されます。これは予想された動作です。 ノート:
|
再割当て |
マネージャは、タスクを報告先に委任できます。 |
リリース |
グループまたは複数のユーザーに割り当てられているタスクを、そのタスクを申告したユーザーが完了できない場合、そのタスクはリリースできます。このタスクは、他の割当て先ユーザーが申告して完了できます。 |
更新 |
タスクの期限切れが近づいている場合は、そのタスクを更新し、必要に応じて「コメント」領域にコメントを追加できます。タスクの有効期限は、1週間延長されます。期限更新は、タスク履歴に表示されます。タスクの更新期間は、オプションのパラメータによって管理できます。デフォルト値は、 |
情報の発行、情報のリクエスト |
この2つのアクションは、他のユーザーから詳細情報の提供をリクエストされた場合、またはタスク作成者や前の割当て先に詳細情報をリクエストする場合に使用します。再承認が不要な場合、タスクは次の承認者か、ビジネス・プロセスの次のステップに割り当てられます。 |
「一時停止」および「再開」 |
プロセスに関連していないタスクは、一時停止できます。これらのオプションを使用できるのは、BPMWorkflowSuspendロールを付与されているユーザーのみです。他のユーザーは、タスク・フィルタで「前へ」を選択するか、「一時停止」ステータスのタスクを検索することにより、このタスクにアクセスできます。一時停止の期間は無期限です。これは、「再開」を使用してタスクの処理を再開するまで継続されます。 |
取消 |
タスクの作成者が、そのタスクを継続しない場合(たとえば、休暇申請を取り消す場合)は、タスクを取り消し、必要に応じて「コメント」領域にコメントを追加できます。この場合は、ビジネス・プロセスによって、次の処理内容が決定されます。ホームページで「取消」アクションを使用するには、「作成者」タスク・フィルタを使用します。 |
開始タスク/停止タスク |
ユーザーがタスクの作業を開始または停止することを選択すると、タイム・スタンプが選択したすべてのタスクに割り当てられます。これは、タスクの作業時間の計算に使用されます。たとえば、「startTask」→「stopTask」→「startTask」→「stopTask」→「startTask」→「completeTask」のように、ユーザーは、同じタスクに対して「開始タスク」および「停止タスク」を複数回使用できます。 総作業時間は、これらの時間間隔すべての合計です。 開始タスクおよび停止タスク操作は、「割当て済」または「情報のリクエスト」ステータスのタスクでのみ使用できます。開始タスクおよび停止タスクは、集計済タスクでは使用できません。 |
32.5.2 タスク履歴
タスク履歴には、ワークフローの参加者が実行したアクションの監査証跡、およびワークフローの様々な時点におけるタスク・ペイロードと添付のスナップショットが保持されます。タスクの短い履歴には、次のタスクによって作成されたすべてのバージョンが表示されます。
-
タスクの開始
-
タスクの再開始
-
タスクの結果の更新
-
タスクの完了
-
タスクのエラー
-
タスクの期限切れ処理
-
タスクの取下げ
-
エラー割当て先に対するタスクのアラート
shortHistoryActions
要素を変更すると、「短い履歴」リストに次のアクションを追加できます。
-
獲得
-
非定型ルート
-
タスクのオート・リリース
-
委任
-
エスカレート
-
タスク情報のリクエスト
-
タスク情報の発行
-
ルーティング・スリップのオーバーライド
-
結果の更新およびルート
-
プッシュバック
-
再割当て
-
リリース
-
期限更新
-
再開
-
現在の割当てのスキップ
-
一時停止
-
更新
図32-20に示すように、履歴はタスク・フローのグラフィカル・ビューで表示されます。
図32-21に示すように、実行したすべてのアクション(コメントの追加など、タスクを変更しないアクションも含む)を表示するには、「フル・タスク・アクション」を選択します。
タスク履歴は、次の方法で表示できます。
-
タスク・スナップショットの表示
-
将来の承認者の表示
-
すべてのタスク・アクションの表示
-
タスクの集計
ノート:
親タスクの履歴には、そのタスクに含まれるサブタスクの履歴も表示されます。
32.5.3 タスクの操作方法
ヒューマン・タスクが非定型ルーティングを許可するように設計されている場合、または、承認者の順序が事前に決定されていない場合、そのタスクは非定型方式でワーク・リスト内をルーティングできます。このようなタスクに対しては、「タスクの詳細」ページに「ルート」ボタンが表示されます。「ルート」ページから、ルーティングする1人以上のユーザーをルックアップできます。複数の割当て先を指定すると、割当て先のリストを単純割当て(すべてのユーザーにグループ割当て)、順次割当てまたはパラレル割当てのいずれに使用するかを選択できます。
判定などのシナリオに対してパラレル・フロー・パターンが指定されている場合は、パラレル・タスクが作成されます。このパターンでは、パラレル・タスクに共通の親タスクが存在します。この親タスクがユーザーに表示されるのは、そのユーザーがタスクの割当て先、所有者または作成者である場合のみです。パラレル・タスク自体(サブタスク)は、他のすべてのタスクと同じように、タスクが割り当てられているすべてのユーザーが参照できます。親タスクからサブタスクを参照することも可能です。このようなシナリオでは、親タスクの「タスクの詳細」ページに「サブタスクの表示」ボタンが表示されます。「サブタスク」ページには、対応するパラレル・タスクが表示されます。投票シナリオでは、いずれかの割当て先ユーザーがペイロード、コメントまたは添付を更新した場合、その変更内容を参照できるのはそのタスクの割当て先のみです。
親タスクを参照できるユーザー(パラレル・フロー・パターンの最終レビューアなど)は、サブタスクに移動して、パラレル・フローの参加者によるサブタスクの更新を参照できます。割当て先ユーザーがサブタスクで作業する間、親タスクはサブタスクのコンテナになります。タスク所有者は、親タスクを操作したり承認することはできません。
タスク・リストには、タスクのアクションは表示されません。ユーザーは、タスクの詳細からアクションを実行する必要があります。
ヒューマン・タスクの設定によりパスワードが要求される場合は、タスクを実行する際に、パスワードを指定する必要があります。
ノート:
優先度の変更、コメントの追加など、「タスクの詳細」ページで変更を行った場合は、その変更内容を保存する必要があります。タスクに添付を追加した場合は自動的に保存されます。
タスクを再割当てまたは委任するには:
32.5.3.2 タスクをルーティングする手順
ノート:
タスクをルーティング可能にする前に、タスク定義を「参加者による他の参加者の招待を許可」に設定する必要があります。
タスクをルーティングするには:
32.5.3.3 コメントまたは添付を追加する手順
コメントまたは添付を追加するには:
ノート:
-
ユーザーがタスクのイニシエータの場合、ユーザーのコメントはタスク割当て先のみでなく、すべてのプロセス参加者と共有されます。タスク参加者のみと共有するオプションは使用できません。
-
親タスクに追加されたコメントは、その親のサブタスクでも表示されます。
-
添付を参照またはアップロードするには、その前に「保存」をクリックして、「タスクの詳細」ページに対してすでに行った変更を必ず保存してください。
-
ファイルまたはURL添付を削除した場合、タスクは自動的に更新されません。「アクション」→「保存」の明示的な選択が必要です。そうしないと、添付は削除されたものとして表示されますが、実際には削除されません。これは予想された動作です。
-
添付ファイルの追加の場合は、「アクション」→「保存」の明示的な選択は不要です。
-
URL添付の追加の場合は、「アクション」→「保存」の明示的な選択が必要です。
-
高可用性のためにサーバーがクラスタ化されている環境では、フェイルオーバーが発生した場合、ファイルのアップロードはサポートされません。アクティブなサーバーが停止した場合、アップロード・プロセスは他のサーバーに引き継がれず、アップロードは失敗します。
-
ADF接続を使用していて、添付を追加しようとしたときにプロトコルが見つからないというエラーが表示される場合は、ご使用の
connections.xml
ファイルが適切なWSDLファイルと同期していることを確認してください。connections.xml
ファイルは、ADFワークスペースのディレクトリ.adf/META-INF/
に配置されています。
32.5.4 デジタル署名が必要なタスクの操作方法
ワークリストでは、ヒューマン・タスクで作成された次の署名ポリシーがサポートされています。
-
署名は不要 — 参加者は署名せずにタスクを送信して操作できます。
-
パスワードは必須 — 参加者はログイン・パスワードを指定する必要があります。
-
デジタル証明書(署名)は必須 —参加者はデジタル証明書を入手した後に、タスクの送信と操作が可能になります。デジタル証明書には、証明書発行者のデジタル署名が記載されているため、誰でも証明書が本物であることを確認できます。参加者の資格証明は、デジタル証明書によって証明されます。これは認証局(CA)が発行します。ユーザー名、シリアル番号、有効期限、証明書所有者の公開キーのコピー(メッセージとデジタル署名の暗号化に使用)、および証明書発行者のデジタル署名が記載されているため、受信者は証明書が本物であることを確認できます。
署名ポリシーがあるタスクを操作すると、図32-33に示すように、「署名」ボタンが表示されます。
デジタル署名の保管、およびデジタル署名されたヒューマン・タスクの否認防止には、エビデンス・ストア・サービスを使用します。エビデンス・ストアは、図32-34に示すように検索できます。
詳細は、「エビデンス・ストア・サービスとデジタル署名」を参照してください。
デジタル署名を指定するには:
-
Oracle BPM Worklistの右上隅にある「プリファレンス」をクリックします。
-
「証明書」リンクを選択します。
-
図32-35に示すように、意思決定の署名に使用する証明書をアップロードします。
証明書を使用してタスクの結果に署名する際は、証明書発行者から発行された1つの証明書のみではなく、証明書チェーン全体をOracle BPM Worklistから
.P7B
(PKCS7形式)ファイルとしてアップロードする必要があります。チェーン全体はInternet Explorerからエクスポートできます。Mozilla Firefoxでは、チェーンを.P7B
ファイルとしてエクスポートできません。この場合は、次のステップを実行できます。-
Mozilla Firefoxからチェーンを.P12ファイル(秘密キーも含まれるPKCS12形式)としてエクスポートします。
-
Internet Explorerに
.P12
ファイルをインポートします。 -
このファイルをInternet Explorerから
.P7B
ファイルとして再度エクスポートします。 -
Oracle BPM Worklistからこのファイルをアップロードします。
証明書をシステムに指定する際は、次の重要な点に注意してください。そうしないと、証明書を使用してタスクに対する決定に署名することができません。
-
PKCS7ファイル形式は、バイナリの証明書形式です。スタンドアロンの証明書ファイルをディスクに格納する場合は、このオプションを選択します。
-
PKCS12ファイル形式は、キーストア形式です。証明書をキーストア内に格納する場合は、このオプションを選択します。
-
証明書の内容をコピーして貼り付ける場合は、「証明書内容のタイプまたは貼付け」を選択し、BASE64エンコード・テキストをフィールドに貼り付けます。このフィールドには、それ以外の形式の証明書を貼り付けないでください。同様に、証明書をアップロードする場合は、BASE64エンコード証明書をアップロードしないでください。アップロードがサポートされているのは、PKCS12およびPKCS7形式のファイルのみです。
-
-
Oracle BPM Worklistの右上隅にある「ホーム」リンクをクリックして、タスク・リストに戻ります。
-
承認または却下するタスクをクリックします。
タスクの詳細が表示されます。
-
「承認」または「却下」をクリックします。
デジタル署名の詳細が表示されます。
-
署名ポリシーがあるタスクの場合は、「署名」をクリックします。
テキスト署名レポート・ダイアログが表示されます。
-
決定の署名に使用する証明書をリストから選択します。
-
使用するWebブラウザのマスター・パスワードを入力します。
-
「OK」をクリックします。
Webブラウザでは、選択した証明書を使用して、テキスト署名リクエストの上部に表示される文字列に署名し、選択したアクション(承認または却下)を起動します。ヒューマン・ワークフロー・サービスでは、タスク・ステータスが適切に更新されます。
証明書のアップロード方法と使用方法の詳細は、「エビデンス・ストア・サービスとデジタル署名」を参照してください。
32.6 タスクの承認
様々なタスク承認者がタスクに対して実行できるアクションのタイプの概要を説明します。
表32-8 タスク・アクションと承認者
タスク・アクション | 管理者 | 所有者(+所有者グループ) | 割当て先(+割当て先マネージャ+割当て先グループ+プロキシ割当て先) | 作成者 | レビューア | 承認者 |
---|---|---|---|---|---|---|
獲得(申告) |
いいえ |
はい |
はい |
いいえ |
いいえ |
いいえ |
カスタム |
いいえ |
はい脚注1 |
はい脚注1 |
いいえ |
いいえ |
いいえ |
委任 |
いいえ |
いいえ |
はい |
いいえ |
いいえ |
いいえ |
削除 |
いいえ脚注2 |
いいえ脚注2 |
はい脚注2 |
はい脚注2 |
いいえ |
いいえ |
エラー |
いいえ |
いいえ |
はい脚注3 |
いいえ |
いいえ |
いいえ |
エスカレート |
はい脚注4 |
はい脚注4 |
はい |
いいえ |
いいえ |
いいえ |
情報リクエスト |
いいえ |
いいえ |
はい |
いいえ |
いいえ |
いいえ |
情報発行 |
いいえ |
いいえ |
はい |
いいえ |
いいえ |
いいえ |
ルーティング・スリップのオーバーライド |
はい |
はい |
いいえ |
いいえ |
いいえ |
いいえ |
プッシュバック |
いいえ |
いいえ |
はい |
いいえ |
いいえ |
いいえ |
パージ |
はい脚注2 |
はい脚注2 |
いいえ |
はい |
いいえ |
いいえ |
再割当て |
はい脚注5 |
はい脚注5 |
可(プロキシ割当て先の場合は不可) |
いいえ |
いいえ |
いいえ |
リリース |
はい |
はい |
はい |
いいえ |
いいえ |
いいえ |
期限更新 |
いいえ |
はい |
はい |
いいえ |
いいえ |
いいえ |
再開 |
はい |
はい |
はい |
いいえ |
いいえ |
いいえ |
ルート |
いいえ |
はい |
はい |
いいえ |
いいえ |
いいえ |
現在の割当てのスキップ |
はい |
はい |
いいえ |
いいえ |
いいえ |
いいえ |
一時停止 |
はい |
はい |
はい |
いいえ |
いいえ |
いいえ |
更新 |
いいえ |
はい |
はい |
はい |
いいえ |
いいえ |
添付の更新 |
はい |
はい |
はい |
はい |
はい |
いいえ |
コメントの更新 |
はい |
はい |
はい |
はい |
はい |
いいえ |
プロセス履歴の表示 |
はい |
はい |
はい |
はい |
いいえ |
いいえ |
サブタスクの表示 |
はい |
はい |
はい |
いいえ |
いいえ |
いいえ |
タスク履歴の表示 |
はい |
はい |
はい |
はい |
はい |
はい |
取消 |
はい |
はい |
いいえ |
はい |
いいえ |
いいえ |
脚注1
To Doタスクには無効です
脚注2
To Doタスクにのみ有効です
脚注3
アラート済状態のタスクにのみ適用可能です
脚注4
現在の割当て先のマネージャへの申告およびエスカレートはありません
脚注5
申告はありません
32.7 休暇期間の設定
休暇期間を設定し、休暇中と指定した期間、自動タスク割当てから自分が削除されるよう設定できます。
休暇ルールはTo Doタスクに対して実行されません。休暇期間と同期する休暇ルールの設定方法は、ルールの設定を参照してください。
休暇期間を設定するには:
32.8 ルールの設定
ルールは、特定のタスク・タイプか、ユーザーまたはグループに割り当てられたすべてのタスクに対して実行されます。
図32-37に、休暇ルールも含めて、ルールを設定する「アクション」セクションを示します(「休暇期間の設定」で説明した休暇期間の設定とは異なります)。
ルールは、そのルールが使用されるすべての環境で常に適用できるわけではありません。たとえば、ルールが複数のタスク・タイプに適用される場合は、タスクによって結果が異なるため、すべてのタスクに結果を設定できない場合があります。
ルールはリストされている順序で実行されます。図32-37に示すように、ルールはヘッダーの上下ボタンを使用して順序を変更できます。
あるルールがフィルタ条件に一致すると、そのルールが実行され、他のルールは評価されません。ルールを実行するユーザーは、該当するタスクに割り当てられている唯一のユーザーであることが必要です。タスクが(自分を含めて)複数のユーザーに割り当てられている場合、ルールは実行されません。
また、To Doタスクに対するビジネス・ルールの指定はできません。
32.8.1 ユーザー・ルールの作成方法
ユーザー・ルールを作成する際は、次を指定します。
-
ルール名。
-
ルールが休暇ルールかどうか。ルールが休暇ルールの場合、休暇ルールと同期する休暇期間の設定方法は、休暇期間の設定を参照してください。
-
ルールが適用されるタスクまたはタスク・タイプ。空白またはnullとして指定した場合、ルールはスキップされます。タスク・タイプを指定すると、そのタスク・タイプにマップされたマップ済属性すべてをルール条件で使用できます。すべてのタスク・タイプに対してユーザー・ルール・アクションを実行するには、タスク・タイプ・フィールドをルール条件から削除する必要があります。
-
ルールを適用するタイミング。
-
ルールに対する条件。これらの条件は、ルールを詳細に定義するフィルタです。たとえば、ルールで優先度1のタスクのみを操作したり、特定のユーザーが作成したタスクを操作するように指定します。標準タスク属性や特定のタスクにマップされた任意のマップ済属性に基づいて条件を作成できます。詳細は、「属性のマップ方法」を参照してください。
ユーザー・ルールでは、次のアクションが実行されます。
-
再割当て先 - 自分が管理する指定の部下またはグループにタスクを割り当てます。
-
委任先 - 任意のユーザーまたはグループに委任します。タスクを完了するためのアクセス権または権限は、タスクの委任元ユーザーに従って決定されます(その後の委任または再割当てがあっても、引き続き委任元ユーザーに従って決定されます)。
-
結果の設定先 - ワークフロー・タスクが自動結果用に設計されている場合は、その結果を指定します。たとえば、タスクを承認または却下します。ルールは特定のタスク・タイプを対象とする必要があります。ルールの対象がすべてのタスク・タイプの場合、このオプションは表示されません。
-
アクションを実行しない - より一般的な他のルールの適用を防止します。たとえば、アクションが不要な融資申請を除いて、休暇中のすべてのタスクを別のユーザーに再度割り当てるには、2つのルールを作成します。第1のルールでは、融資申請に対してアクションを実行しないように指定し、第2のルールでは、すべてのタスクを別のユーザーに再度割り当てるように指定します。第1のルールによって、融資申請に対する再割当てが防止されます。
ノート:
ユーザーcdickens
の休暇ルールが「再割当て先」、「委任先」または「結果の設定先」に設定されている場合に、「情報のリクエスト」、「非定型ルート」または「エスカレート」を介してタスクがcdickens
に割り当てられると、休暇ルールはトリガーされません。この3つの場合、タスクはcdickens
に割り当てられたままになります。
ユーザー・ルールを作成するには:
32.8.2 グループ・ルールの作成方法
グループ・ルールの作成はユーザー・ルールの作成に類似していますが、ログイン・ユーザーが管理するグループのリストが追加されています。次に、グループ・ルールの例を示します。
-
特定の顧客からのタスクをグループのメンバーに割り当てます。
-
ラウンド・ロビン割当てを使用して、タスク割当てをグループの各メンバーに確実に均等配分します。
-
グループ内で最もビジーでないメンバーに、高優先度のタスクを確実にルーティングします。
グループ・ルールを使用して、次のアクションを実行します。
-
メンバーへの割当ての経由先—割当てを取得するグループ・メンバーを決定するための基準を指定できます。この動的割当て基準には、ラウンド・ロビン割当て、最もビジーでないグループ・メンバーへの割当て、または最も生産性の高いグループ・メンバーへの割当てを含めることができます。また、タスクをグループ内のユーザーに割り当てるためのカスタム関数も追加できます。
-
割当て先—ユーザー・ルールと同様に、直属の部下またはグループにタスクを割り当てられます。
-
アクションを実行しない—ユーザー・ルールと同様に、より一般的なルールの実行を防止する条件を指定してルールを作成できます。
グループ・ルールを作成するには:
32.8.3 複数の割当て先があるタスクの割当てルール
タスクに複数の割当て先がある場合、割当てルールはタスクに対して評価されず、タスクは自動的にルーティングされません。これは、タスクの割当て先ごとに割当てルールを定義できるため、タスクに対して実行するアクションに競合が発生する可能性があるためです。割当てルールによってルーティングされるのは、単一のユーザーに排他的に割り当てられたタスクのみです。
たとえば、次の順序を考えてみましょう。
- ユーザー
cdickens
に対して、割当て済のすべてのリクエストをユーザーjstein
に再度割り当てるルールを作成します。 - ユーザー
jcooper
は、割当て済のタスクをcdickens
とcdoyle
に再度割り当てます。 - ユーザー
cdickens
がタスクを申告すると、そのタスクがこの人達の受信ボックスに表示されます。
タスクは、jstein
には自動的に再割当てされません。ユーザーjcooper
が、複数のユーザー(cdickens
とcdoyle
)ではなく、cdickens
のみにタスクを明示的に再度割り当てた場合は、cdickens
に対して設定された割当てルールに従ってタスクがjstein
にルーティングされます。
32.8.4 再割当てされた休暇ルールでの循環ロジックの回避方法
休暇ルールを作成する場合は、承認タスクが循環的に再割当てされないことを確認してください。
たとえば、jstein
はjcooper
のマネージャであり、必要なタスクが承認のためにjstein
に移動します。jstein
が休暇ルールを作成する場合は、それらのタスクがjcooper
に再割当てされないようにします。
または、休暇ルールで「再割当て」ではなく「委任」オプションを使用できます。詳細は、「ユーザー・ルールの作成方法」を参照してください。
循環依存関係の回避方法
この例では、休暇期間の設定と他のユーザーへのタスクの再割当てを望んでいるUser2
に2つのルールを定義します。第1のルールでは、タスクがUser1
のタスクではない場合にそのタスクをUser1
に再割当てします。第2のルールでは、タスクがUser1
のタスクである場合にそのタスクをUser3
に再割当てします。
タスク・フローは、jcooper
、jstein
、wfaulk
の順になります。ルールはjstein
に対して設定されます。
jstein
に定義した2つの新しいルールに基づいて、タスクが期待どおりに割り当てられます。
32.9 ワークリスト管理機能の使用
BPMWorkflowAdminロールを付与されている管理者が、ワークリスト管理機能を使用できます。
次の管理機能があります。
-
他のユーザーまたはグループのルールの管理
-
ワークリスト表示の設定(アプリケーション・プリファレンス)。アプリケーション・プリファレンスによって、次に示すワークリストの外観をカスタマイズします。
-
ログイン・レルムのラベル
-
リソース・バンドル
-
言語のロケール情報の取得元
-
ブランド・ロゴ
-
ブランド・タイトル
-
ブランド・スキン
-
oracle.com
、google.com
などの使用する外部アプリケーション
-
-
マップ済属性の指定
管理者は、すべてのユーザーに割り当てられたすべてのタスクを表示および更新できます。「管理者」タブを選択すると、管理者の「割当て先」フィルタに「管理者」が表示されます。
マップ済属性の指定の詳細は、マップ済属性の使用(フレックス・フィールド)を参照してください。
32.9.1 管理者が他のユーザーまたはグループのルールを管理する方法
この機能は、ルールに関する問題を解決する場合に役立ちます。また、管理者は退社したユーザーに対するルールを設定できます。これにより、そのユーザーに割り当てられていた全タスクが別のユーザーまたはグループに自動的に割り当てられます。
別のユーザーまたはグループのルールを作成するには:
32.9.2 ログイン・ページ・レルムのラベルの指定方法
アイデンティティ・サービスが複数のレルムで構成されている場合は、ユーザーがOracle BPM Worklistにログインすると、ログイン・ページにレルム名のリストが表示されます。LABEL_LOGIN_REALM では、これらのレルムを表示するラベルのルックアップに使用されたリソース・バンドル・キーが指定されます。レルムという用語は、ユーザー・コミュニティにあわせて変更でき、国、会社、部署または部門などの用語の方が適切な場合があります。レルムという用語を変更するには、リソース・バンドルをカスタマイズし、この文字列にリソース・バンドル・キーを指定し、そのリソース・バンドル・キーを指すように「ログイン・ページ・レルムのラベル」パラメータを設定します。
図32-40は、「ログイン・ページ・レルムのラベル」フィールドがハイライト表示された「アプリケーション・プリファレンス」ページを示しています。「アプリケーション・プリファレンス」ページにアクセスするには、「ワークリスト・アプリケーション」インタフェースの最上部にあるグローバル・ツールバーの「管理」をクリックします。
32.9.3 リソース・バンドルの指定方法
リソース・バンドルは、ワークリスト・アプリケーションに表示される文字列を提供します。デフォルトでは、リソース・バンドルへのクラス・パスは次のとおりです:
oracle.bpel.worklistapp.resource.WorklistResourceBundle
図32-41は、「リソース・バンドル」フィールドがハイライト表示された「アプリケーション・プリファレンス」ページを示しています。「アプリケーション・プリファレンス」ページにアクセスするには、「ワークリスト・アプリケーション」インタフェースの最上部にあるグローバル・ツールバーの「管理」をクリックします。
管理者は、カスタム・リソース・バンドルを作成することで、アプリケーションに表示される文字列を追加または変更できます。その後、「アプリケーション・プリファレンス」ページの「リソース・バンドル」フィールドを使用して、カスタム・リソース・バンドルへのクラス・パスを指定できます。
リソース・バンドルのカスタマイズの詳細は、『Oracle Business Process Managementによるプロセスの管理とモニタリング』を参照してください。
32.9.4 言語のロケール情報の指定方法
「アプリケーション・プリファレンス」ページで、ワークリスト・アプリケーションの表示言語を決定する方法を指定できます。言語ロケールに関する情報は、ユーザーのブラウザ、またはワークリスト・ユーザーに関する情報を格納するアイデンティティ・プロバイダから導出できます。
図32-42に、「次の言語設定を使用」オプションがハイライト表示された「アプリケーション・プリファレンス」ページを示します。「アプリケーション・プリファレンス」ページにアクセスするには、「ワークリスト・アプリケーション」インタフェースの最上部にあるグローバル・ツールバーの「管理」をクリックします。
32.9.5 ユーザー名の形式の指定方法
「アプリケーション・プリファレンス」ページから、ログイン後の画面でのユーザー名の表示方法を指定できます。jstein
などのユーザーIDやJohn Steinbeck
などのユーザー名を表示することを選択できます。
32.9.6 ブランド・ロゴの指定方法
ブランド・ロゴは、ワークリスト・アプリケーションの各ページの左上隅に表示されるイメージです。Oracleロゴがデフォルトで表示されますが、選択したイメージに変更することもできます。
ノート:
適切に表示するためには、イメージ・サイズを120px x 40px (長さx幅)にすることをお薦めします。高解像度の大きいイメージをブランド・ロゴのサイズにあわせて圧縮することもできますが、小さいイメージの方が見やすく表示されます。
図32-43は、「ブランド・ロゴ」フィールドがハイライト表示された「アプリケーション・プリファレンス」ページを示しています。「アプリケーション・プリファレンス」ページにアクセスするには、「ワークリスト・アプリケーション」インタフェースの最上部にあるグローバル・ツールバーの「管理」をクリックします。
ブランド・ロゴを指定するには:
次のいずれかを行います:
-
外部のイメージ・ホストWebサイトを参照します。このタスクを行うには、「ブランド・ロゴ」フィールドにイメージのURLを入力します。
-
サーバー上の特定の場所にイメージをアップロードし、「ブランド・ロゴ」フィールドに相対パス(
/afr/my_logo.png
など)を入力します。 -
共有ライブラリからイメージを参照します。このタスクを行うには、「ブランド・ロゴ」フィールドに、共有ライブラリにあるとおりにロゴ名のパス(
/my_logo.pngv
など)を入力します。
ノート:
ワークリスト・アプリケーションとプロセス・ワークスペースのいずれかからブランド・ロゴをカスタマイズすると、両方のアプリケーションのロゴが変更されます。たとえば、ワークリストからロゴを変更すると、ワークスペースのロゴが自動的に変更されます。
イメージおよびJARファイルの共有ライブラリの一部としてのデプロイの詳細は、『Oracle Business Process Managementによるプロセスの管理とモニタリング』を参照してください。
32.9.7 ブランド・タイトルの指定方法
サイトのタイトルを指定し、デフォルトのタイトル(BPM Worklist)を好みのタイトルに変更できます。
図32-44は、「ブランド・タイトル」フィールドがハイライト表示された「アプリケーション・プリファレンス」フィールドを示しています。「アプリケーション・プリファレンス」ページにアクセスするには、「ワークリスト・アプリケーション」インタフェースの最上部にあるグローバル・ツールバーの「管理」をクリックします。
ブランド・タイトルを指定するには:
次のいずれかを行います:
-
「ブランド・タイトル」フィールドに、タイトルの単純な文字列を入力します。
-
「ブランド・タイトル」フィールドに、「リソース・バンドル」のキーと値のペアを参照するラベルを入力します。この方法で、タイトルをLABEL_WORKLIST_TITLE.などのように国際化できます。
32.9.8 スキンの選択方法
スキンは、グラフィック・インタフェースのルック・アンド・フィールを決定します。「アプリケーション・プリファレンス」ページからスキンを指定します。「アプリケーション・プリファレンス」ページにアクセスするには、「ワークリスト・アプリケーション」インタフェースの最上部にあるグローバル・ツールバーの「管理」をクリックします。
図32-45は、「スキンの選択」フィールドがハイライト表示された「アプリケーション・プリファレンス」ページを示しています。
32.9.8.1 スキンを選択する手順
スキンを選択するには:
次のいずれかを行います:
-
「スキンの選択」リストから、デフォルトのADFスキンの1つを選択します
-
.JAR
ファイル内のカスタマイズされたスキン(.css
ファイル)をアップロードし、共有ライブラリの一部としてデプロイします。その後、コンソールからアプリケーションを再起動すると、カスタム・スキンが「スキンの選択」リストに表示されます。
32.9.8.2 カスタマイズされたスキンを含むJARファイルを作成する手順
カスタマイズされたスキンを含むJARファイルを作成するには:
ノート:
次の方法でcssファイル内のイメージを参照します:
../adf/oracle/skin/images/example.gif
(末尾に2つドットを付けます)。
これにより、.css
ファイルがあるMETA-INF/skin
ディレクトリの上のディレクトリからMETA-INFルートの検索を開始できます。
JARファイルの共有ライブラリの一部としてのデプロイの詳細は、『Oracle Business Process Managementによるプロセスの管理とモニタリング』を参照してください。
32.9.9 カスタマイズされたアプリケーションおよびリンクを有効にする方法
プロセス・ワークスペースでは、「外部アプリケーション」パネルで使用できるカスタマイズされた外部アプリケーションおよびリンクを作成できます。さらに、プロセス・ワークスペースとワークリスト・アプリケーションの両方で、「タスクの詳細」ペインに表示される列を指定できます。
「アプリケーション・プリファレンス」ページを使用して、カスタム・アプリケーションを指定します。「アプリケーション・プリファレンス」ページにアクセスするには、「ワークリスト・アプリケーション」インタフェースの最上部にあるグローバル・ツールバーの「管理」をクリックします。
カスタム・アプリケーションを指定するJavaコードを確認するには、ワークリスト・アプリケーションでカスタマイズされたアプリケーションを有効化するJavaコードを参照してください。
カスタマイズされたアプリケーションを有効にするには:
32.9.10 タスク・アクションのイメージの指定方法
管理者の場合、アクションを赤の「X」アイコンか、緑のチェック・マーク・アイコンのいずれで表示するかを指定できます。
タスク・アクションのイメージを指定するには:
- 「管理」、「アプリケーション・プリファレンス」の順に選択します。
- 「タスク・アクションをイメージにマップ」フィールドで、緑のチェック・マーク・アイコンまたは赤の「X」アイコンにマップするタスクを選択します。
- 「保存」をクリックします。
32.9.11 プロセス・ワークスペースのその他の設定の指定
「アプリケーション・プリファレンス」ページでは、その他の構成アイテムを指定できます。次のものが含まれます。
-
10gワークスペース・アプリケーションのURL - プロセス・ワークスペース内から表示するALBPM 10gワークスペースのURLを指定します。
-
フレックス・フィールドINTEGERの表示。
-
アクティビティ・ガイドのポーリング・リクエストの間隔 - 次のアクティビティ・ガイド・タスクのポーリングを待機する間隔(秒単位)。
-
アクティビティ・ガイドのポーリングの再試行 - アクティビティ・ガイドが次のタスクに移るための最大ポーリング回数。
-
アップロードするファイル・タイプ - ユーザーがアップロードできるファイル・タイプの拡張子を指定します。必要なすべてのファイル・タイプ拡張子を指定できます。フィールドに入力されるファイル・タイプ拡張子は、カンマで区切る必要があります。たとえば、
txt,pdf,zip
などです。 -
タスクの詳細を別のウィンドウで表示 - タスクの詳細を別のウィンドウで開く場合、 「有効化」オプションを選択します。
32.10 通知設定の指定
複数の通信チャネル(配信タイプ)にアクセスする場合は、通知設定を構成して、メッセージの受信方法、時期および場所を管理できます。具体的には、メッセージを配信するチャネルとその環境を指定するメッセージング・フィルタ(配信プリファレンス)を定義できます。
たとえば、異なるサービス・レベル合意(SLA)を持つ顧客から受信するメッセージに対してフィルタを作成し、プレミアムSLAの顧客の場合は勤務先電話番号とSMSチャネルを介して通知し、それ以外のSLAの顧客の場合は電子メールで通知するように指定できます。
32.10.1 通知電子メールIDの別名の構成
着信する電子メール通知の別名を構成できます。たとえば、送信者の電子メールIDを、電子メールIDのかわりに部署名にすることができます。
すべてのタスクに対する別名の構成
すべてのタスクに別名を構成するには:
-
右上隅でユーザーまたはログイン名をクリックします。
-
「管理」を選択します。
-
「通知」セクションまでスクロールします。
-
次の3つのオプションから選択します。
-
電子メール"送信者:"の表示名: 送信者電子メールIDの別名をこのフィールドで指定します。テキスト・フィールドは最大90文字まで入力可能です。
-
送信者: 送信者IDを使用して通知を送信します。
-
前の承認者: 前の承認者のIDを使用して通知を送信します。
-
-
「保存」をクリックします。
個々のタスクに対する別名の構成
個々のタスクに送信者の名前を構成すると、グローバルの送信者名の構成がオーバーライドされます。個々のタスクに送信者の名前を構成するには:
-
右上隅でユーザーまたはログイン名をクリックします。
-
「管理」を選択します。
-
「タスク構成」をクリックします。
-
左パネルの「設定するタスク」セクションで、作成済のタスクを選択します。
-
メイン・パネルで、「通知」をクリックします。
-
「詳細」を展開します。
-
次の3つのオプションから選択します。
-
適用不可: デフォルトでは「適用不可」オプションが選択されています。変更しない場合は、グローバル・レベルで構成されている送信者名が表示名として使用されます。
-
電子メール"送信者:"の表示名: 送信者電子メールIDの別名をこのフィールドで指定します。テキスト・フィールドは最大90文字まで入力可能です。
-
前の承認者: 前の承認者のIDを使用して通知を送信します。
-
-
「設定するタスク」の隣にある「保存」ボタンをクリックします。
ノート:
-
前の承認者オプションを選択している場合は、前の承認者の表示名が使用されます。表示名が使用できない場合は、IDが使用されます。最初の承認者だけで、承認チェーンに前の承認者がいない場合は、別名として送信者IDが使用されます。
-
別名を指定しない場合、デフォルトで「前の承認者」が選択され、前の承認者がいない場合は、送信者名が表示されます。
-
別名を更新しても、bpm-services.jarにMBeanへの書込み権限がない場合、電子メール通知に別名は表示されません。
32.10.2 メッセージング・フィルタ・ルール
メッセージング・フィルタ・ルールは、ルール条件とルール・アクションで構成されます。ルール条件は、ルール属性、演算子および関連する値で構成されます。ルール・アクションは、ルール内に指定した条件を満たす場合に実行されるアクションです。
32.10.2.1 データ型
表32-9に、メッセージング・フィルタでサポートされるデータ型を示します。各属性には関連するデータ型があり、各データ型には一連の比較演算子が事前定義されています。
表32-9 メッセージング・フィルタでサポートされるデータ型
データ型 | 比較演算子 |
---|---|
日付 |
isEqual、isNotEqual、isGreaterThan、isGreaterThanOrEqual、isLessThan、isLessThanOrEqual、Between、isWeekday、isWeekend |
時間 |
isEqual、isNotEqual、Between |
数値 |
isEqual、isNotEqual、Between、isGreaterThan、isGreaterThanOrEqual、isLessThan、isLessThanOrEqual |
文字列 |
isEqual、isNotEqual、Contains、NotContains |
ノート:
文字列データ型は正規表現をサポートしていません。
32.10.2.2 属性
表32-10に、メッセージング・フィルタ用に事前定義されている属性を示します。
表32-10 メッセージング・フィルタ用に事前定義されている属性
属性 | データ型 |
---|---|
コスト合計 |
数値 |
送信元 |
文字列 |
支出タイプ |
文字列 |
宛先 |
文字列 |
アプリケーション・タイプ |
文字列 |
期間 |
数値 |
アプリケーション |
文字列 |
プロセス・タイプ |
文字列 |
ステータス |
文字列 |
件名 |
文字列 |
顧客タイプ |
文字列 |
時間 |
時間 |
グループ名 |
文字列 |
処理時間 |
数値 |
日付 |
日付 |
期日 |
日付 |
ユーザー |
文字列 |
ソース |
文字列 |
金額 |
数値 |
ロール |
文字列 |
優先度 |
文字列 |
顧客名 |
文字列 |
有効期限 |
日付 |
順序タイプ |
文字列 |
組織 |
文字列 |
分類 |
文字列 |
サービス・リクエスト・タイプ |
文字列 |
32.10.3 ルールのアクション
特定のルールには、メッセージング・フィルタによって次のアクションを定義できます。
-
メッセージを送信しない: メッセージをチャネルに送信しません。
-
選択したすべてのチャネルにメッセージを送信: アドレス・リストに指定されているすべてのチャネルにメッセージを送信します。
-
最初の使用可能なチャネルに送信: 1つのメッセージの送信に成功するまで、アドレス・リスト内のチャネルに対してメッセージをシリアルに送信します。つまり、現在のチャネルが失敗ステータスを返すと、次のチャネルへの送信が実行されます。このフィルタ・アクションは、ヒューマン・ワークフロー・レイヤーから送信されるメッセージに対してはサポートされていません。
32.10.4 メッセージング・チャネルの管理
Oracle BPM Worklistでのメッセージング・チャネルは、業務用携帯電話などの物理的なチャネル、およびデスクトップで実行する電子メール・クライアント・アプリケーションの両方を意味します。Oracle BPM Worklistで具体的にサポートしているのは、次のメッセージング・チャネルです。
-
電子メール
-
IM
-
携帯電話
-
SMS
-
ワークリスト
メッセージング・チャネルについては次の点に注意してください。
-
メッセージング・チャネルのアドレスは、構成済のアイデンティティ・ストアからフェッチされます。
-
SMS通知および携帯電話通知は、携帯電話番号に送信されます。
-
メッセージング・チャネル・プリファレンスがワークリストの場合、特別な通知は送信されません。かわりに、Oracle BPM Worklistにログインしてタスクを表示してください。
-
優先チャネルが選択されていない場合、デフォルトのメッセージング・チャネル・プリファレンスは電子メールになります。
「使用可能なチャネル」を使用して、メッセージング・チャネルを表示、作成、編集および削除できます。
32.10.5 メッセージング・フィルタの管理
「メッセージング・フィルタ」を使用して、受信する通知のタイプ、およびこれらの通知を受信するために使用するチャネルを指定するフィルタを定義できます。そのためには、比較演算子(「は次と等しい」や「は次と等しくない」など)、通知タイプ、内容または送信元を表す属性、および通知アクション(使用可能な最初のメッセージング・チャネルに通知を送信、すべてのメッセージング・チャネルに通知を送信、またはどのチャネルにも通知を送信しない(事実上、通知をブロック))の組合せを使用します。
たとえば、上司であるLiseから受信したすべてのメッセージを取得するLiseからのメッセージというメッセージング・フィルタを作成できます。すべてのフィルタ条件に一致する通知が最初に業務用携帯電話などに送信され、最初のメッセージング・チャネルが使用できない場合は会社の電子メールに送信されます。
32.10.5.2 メッセージング・フィルタの作成
メッセージング・フィルタを作成するには:
-
「作成」をクリックします。
図32-51に示すように、「フィルタの作成」ダイアログ・ボックスが表示されます。
-
次の情報を指定します。
-
名前: メッセージング・フィルタの名前。
-
説明: (オプション)メッセージング・フィルタの説明
-
有効: デフォルトでは、このオプションが選択されています。メッセージ処理にこのフィルタを使用しない場合は、クリアします。
-
-
「次のすべての条件に一致」オプションまたは「次の条件のいずれかと一致」オプションを選択して、通知がすべての条件を満たす必要があるのか、いずれかの条件を満たすのかを選択します。
-
「作成」をクリックします。
次のように、「条件の作成」ダイアログ・ボックスでフィルタ条件を定義します。
-
リストから属性を選択します。
-
リストから「isEqual」などの演算子を選択します。
-
「オペランド」フィールドに条件の値を入力します。
-
「OK」をクリックして、条件をリストに追加します。
-
このステップを繰り返してフィルタ条件をさらに追加します。フィルタ条件を削除するには、「削除」をクリックします。
-
-
「アクション」セクションで、次のメッセージング・オプションから選択します。
-
メッセージを送信しない: すべてのチャネルにメッセージを送信しません。
-
選択したすべてのチャネルに送信: アドレス・リストに指定されているすべてのチャネルにメッセージを送信します。
-
最初の使用可能なチャネルに送信: 1つのメッセージの送信に成功するまで、アドレス・リスト内のチャネルに対してメッセージをシリアルに送信します。つまり、現在のチャネルが失敗ステータスを返すと、次のチャネルへの送信が実行されます。
-
-
配信チャネルを設定するには、「通知チャネルの追加」リストからチャネルを選択し、「追加」をクリックします。チャネルを削除するには、「削除」をクリックします。
-
上/下矢印を使用してチャネルに優先度を付けます。「最初の使用可能なチャネルに送信」を選択すると、最上位のチャネル(使用可能な場合)がフィルタ基準に一致したメッセージを受信します。
-
「OK」をクリックします。
メッセージング・フィルタが「メッセージング・フィルタ」領域の下に表示されます。この「メッセージング・フィルタ」領域では、チャネルを編集したり、削除することができます。
32.10.5.3 メッセージング・フィルタの編集
メッセージング・フィルタを編集するには:
- 「メッセージング・フィルタ」領域からフィルタを選択します。
- 「編集」をクリックします。
- メッセージング・フィルタを更新するには、「OK」をクリックします。フィルタを変更せずにダイアログを閉じる場合は、「取消」をクリックします。
32.11 マップ済属性(フレックス・フィールド)の使用
ヒューマン・ワークフローのマップ済属性(以前のフレックス・フィールド)での格納と問合せでは、状況固有のカスタム属性が使用されます。これらのカスタム属性は、通常、タスク・ペイロード値に基づきます。
マップ済属性にカスタム属性を格納すると、次の利点が得られます。
-
フレックス・フィールドをタスク・リストの列として表示できます。
-
フレックス・フィールドでは、カスタム・ビューおよび拡張検索でタスクをフィルタ処理できます。
-
フレックス・フィールドは、キーワードベースの検索で使用できます。
たとえば、タスクの注文書リクエスト・ペイロードのRequester
、PurchaseOrderID
およびAmount
フィールドをマップ済属性に格納できます。Oracle BPM Worklistにログインした承認者は、これらのフィールドの値をタスク・リスト内の列で確認して、アクセスするタスクを決定できます。ユーザーは、マップ済属性に基づいてタスクをフィルタ処理するビューを定義できます。たとえば、ユーザーは、異なる金額範囲に基づいて発注書の承認用ビューを作成できます。ユーザーがある時点で特定のリクエスタまたは発注書IDに関連するタスクを取得することも必要になった場合、キーワード・フィールドにそのリクエスタまたは発注書IDを指定して検索を実行することによって、関連するタスクを取得できます。
マップ済属性の移入を行う場合は、次の手順で管理者がマップ済属性マッピングを作成する必要があります。
-
移入するマップ済属性のラベルを指定します。
-
このラベルに、データを含むペイロード属性をマップします。
これらのマッピングは、特定のタスク・タイプに対して有効です。したがって、タスク・タイプごとに異なるマップ済属性マッピングを作成できます。マッピングが完了し、新しいタスクが開始されると、そのペイロードの値はマップ済属性に推進されます。マッピングの前に開始されたタスクについては、マップ済属性に値は格納されません。マップ済属性に推進できるのは、ペイロード内の最上位レベルの単純型の属性のみです。複合型の属性またはその中にネストされた単純型の属性は推進できません。ペイロード内の属性はマップ済属性に推進する必要がある場合があることに留意しながら、ヒューマン・タスク・エディタでタスクのペイロードを定義することが重要です。キーワードベースの検索には、テキストおよび数値のすべてのマップ済属性が自動的に含められます。
基本的に、ヒューマン・タスク・エディタを使用するのは、タスクのペイロードを定義する場合のみです。他のすべての操作は実行時に実行されます。
ディレクトリ・ネーミングは、フレックス・ファイル命名規則と併用できません。
ノート:
-
マップ済属性は、ビジネス・プロセスのインスタンスが生成される前に定義する必要があります。正しいマップ済属性は、マップ済属性の作成後に生成されたインスタンスにのみ反映されます。ビジネス・プロセスの古いインスタンスには、マップ済属性の以降の変更は反映されません。
-
新規ロケールを追加する場合、マップ済属性のラベルは、キャッシュをフラッシュするまで自動的には変換されません。キャッシュをフラッシュするには、サーバーを再起動するか、またはワークフロー構成の設定の値を変更します。たとえば、ワークフロー構成の
workflowCustomClasspathURL
プロパティを新しい値に変更し、再度元の値に変更します。
32.11.1 属性のマップ方法
管理者または特別な権限があるユーザーは、属性マッピングを使用して(図32-52)、ペイロードのデータをインラインのマップ済属性に推進できます。データをマップ済属性に推進すると、それらのデータが検索可能になり、タスク・リスト・ページで列として表示できるようになります。
管理者はパブリック・マップ済属性をマップできます。workflow.mapping.publicFlexField
権限を付与されたユーザーはパブリック・マップ済属性をマップ可能であり、「管理」タブに「パブリック・フレックス・フィールド」ノードが表示されます。
32.11.1.1 ラベルを作成する手順
ラベルを作成するには:
マップ済属性マッピングを作成するには、まず管理者がマップ済属性を示すわかりやすい表示名となるセマンティック・ラベルを定義します。図32-53に示すように、「追加」をクリックして「ラベルの作成」ダイアログを使用します。
図32-53に示すように、labelNameはタスク属性TextAttribute3にマップされます。ペイロード属性もラベルにマップされます。この例では、「テキスト」属性タイプがlabelNameに関連付けられています。その結果、「テキスト」属性の値が「TextAttribute3」列に格納され、labelNameがユーザーのタスク・リストに表示される列ラベルになります。ラベルは、様々なタスク・タイプに再利用できます。ラベルを削除できるのは、そのラベルがどのマッピングにも使用されていない場合のみです。
マップされたペイロード属性は、カスタム・ビューに列として表示でき、カスタム・ビューとワークフロー・ルールの両方でフィルタ条件として使用できます。ペイロード属性の表示名は、マッピングの実行時に選択した属性ラベルです。
以下の制限に注意してください。
-
マップできるのは、単純なタイプのペイロード属性のみです。
-
1つのタスク・タイプに使用できるマップ済属性(およびラベル)は1つのみです。
-
number
またはdate
データ型のデータ型変換はサポートされていません。たとえば、string
型のペイロード属性をnumber
型のラベルにマップすることはできません。
32.11.1.2 すべてのマッピングを参照する手順
すべてのマッピングを参照するには:
- 「全マッピングの参照」をクリックします。
- ラベル表内の行を選択して、特定のラベルにマップされたすべてのペイロード属性を表示します。
32.11.2 カスタムのマップ済属性
次のマップ済属性がWorkflowTask.xsd
ファイルに含まれており、制限なしに使用できます。
表32-11 カスタムのマップ済属性
属性 | データ型 |
---|---|
customerAttributeString1 |
文字列 |
customerAttributeString2 |
文字列 |
customerAttributeNumber1 |
倍精度浮動小数点 |
customerAttributeNumber2 |
倍精度浮動小数点 |
customerAttributeDate1 |
日付 |
customerAttributeDate2 |
日付 |
これらの属性の設定および取得には、次のJava Architecture for XML Binding (JAXB)メソッドを使用します。
task.getCustomerAttributes.getCustomerAttributeString1()
task.getCustomerAttributes.setCustomerAttributeString1("String")
task.getCustomerAttributes.getCustomerAttributeNumber1()
task.getCustomerAttributes.setCustomerAttributeNumber2(9)
task.getCustomerAttributes.setCustomerAttributeDate1()
task.getCustomerAttributes.setCustomerAttributeDate2()
これらのフィールドは、customerAttributeString1
、customerAttributeString2
、customerAttributeNumber1
、customerAttributeNumber2
、customerAttributeDate1
、customerAttributeDate2
としてデータベースに保持されます。
32.12 ワークリスト・レポートの作成
ワークリスト・レポートおよびレポートの様々なパラメータの概要を説明します。
表32-12に、タスク分析に使用できるワークリスト・レポートを示します。
表32-12 ワークリスト・レポートのタイプ
レポート名 | 説明 | 入力パラメータ |
---|---|---|
不参加タスク |
このレポートでは、ユーザーのグループまたは報告先のグループに割り当てられたタスクの中で、まだ獲得されていないタスク(不参加タスク)が分析されます。 |
|
タスクの優先度 |
このレポートでは、ユーザー、報告先またはそのグループに割り当てられたタスクの数が優先度別に分析されます。 |
|
タスクのサイクル・タイム |
このレポートでは、ユーザーのグループまたは報告先のグループに基づいて、タスクの割当てから完了までの所要時間が分析されます。 |
|
タスクの生産性 |
このレポートでは、ユーザー、報告先またはグループについて、特定期間中に割り当てられたタスク数と完了したタスク数が分析されます。 |
|
タスク時間分布 |
このレポートには、割当て先がタスクを実行するのに要した時間が表示されます。 |
|
32.12.2 レポート作成時の処理内容
図32-60に示すように、(すべてのレポート・タイプについて)レポート結果は表形式と棒グラフ形式の両方で表示されます。レポートの実行に使用した入力パラメータは、左下隅の「レポート入力」に表示されます(表示するためにスクロールが必要な場合があります)。
32.12.2.1 不参加タスク・レポート
図32-61に、不参加タスク・レポートの例を示します。
このレポートは、Californiaグループに15件、Supervisorグループに7件、LoanAgentGroupに11件の不参加タスクがあることを示しています。このレポートでは、不参加(未申告)タスクはすべてDocumentReviewタスクです。レポートの実行時に複数のタイプの不参加タスクが存在する場合は、すべてのタスク・タイプがレポートに含まれ、それぞれのタスク・タイプが異なる色で表示されます。
32.12.2.2 タスクの優先度レポート
図32-62に、タスクの優先度レポートの例を示します。
このレポートは、Californiaグループ、SupervisorグループおよびLoanAgentGroupに標準優先度のタスクがそれぞれ16件あることを示しています。ユーザーrstevenとjcooperのタスクはそれぞれ5件と22件で、いずれも標準優先度です。棒グラフでは、優先度(最高、高、標準、低、最低)が異なる色で区別されます。
32.12.2.3 タスクのサイクル・タイム・レポート
図32-63に、タスクのサイクル・タイム・レポートの例を示します。
このレポートは、DocumentReviewタスクが完了するまでの平均所要時間が1時間6分、VacationApprovalタスクが完了するまでの平均所要時間が1時間28分であることを示しています。棒グラフには、平均サイクル・タイムがミリ秒単位で表示されます。
32.12.2.4 タスクの生産性レポート
図32-64に、タスクの生産性レポートの例を示します。
このレポートは、California、LoanAgentGroupおよびSupervisorの各グループに割当て済のタスク数を示しています。ユーザー別では、jcooperに22件のタスクが割り当てられています。jcooperには、割当て済タスクに加えて、完了したタスクも2件あります。また、mtwainとrstevenには完了したタスクがそれぞれ6件と11件あることを示しています。棒グラフでは、2つのタスクの状態(「割当て済」と「完了」)が異なる色で区別されます。
ノート:
「自分とグループ」および「報告先」オプションは、生産性レポートから削除されました。
32.13 Oracle BPM Worklistへのローカル言語およびタイムゾーンによるアクセス
ユーザーの優先ワークリスト言語は、アイデンティティ・ストアまたはブラウザから、優先タイムゾーンは、アイデンティティ・ストアから構成します。
プリファレンス情報が使用できない場合、ユーザーの優先言語とタイムゾーンはシステム・デフォルトによって決定されます。システム・デフォルトは、言語とタイムゾーンのサーバー設定に基づいています。
ブラウザ・ロケールのカスタム・リソース・バンドル・クラスが使用できず、デフォルト・サーバー・ロケールのカスタム・リソース・バンドル・クラスが使用できる場合、言語は、デフォルト・サーバー・ロケールのカスタム・リソース・バンドル・クラスから導出されます。デフォルト・サーバー・ロケールのカスタム・リソース・バンドル・クラスも使用できない場合、言語はカスタム・ベース・クラスから導出されます。
ユーザー言語設定が設定されていない場合、またはOracle BPM Worklistでサポートされていない言語に設定されている場合、ワークリスト・アプリケーションの言語はデフォルトで英語に設定されます。
ワークリスト・インタフェースで「ブラウザ」または「アイデンティティ・プロバイダ」を選択する手順については、次の各項を参照してください。
-
ログイン・ページ・レルムのラベルを指定する方法(アプリケーション・プリファレンス・ページで「ブラウザ」または「アイデンティティ・プロバイダ」を選択する方法)
32.13.1 Oracle BPM Worklist内の文字列
ワークリストのほとんどの文字列は、ワークリスト・アプリケーション・バンドルから取得されます。デフォルトでは、これは次のクラスです。
oracle.bpel.services.workflow.resource.WorkflowResourceBundle
ただし、適切なアプリケーション・プリファレンスの設定(リソース・バンドルを指定する方法を参照)か、またはデフォルトのバンドル・クラスの更新済バージョンを指定すると、カスタム・リソース・バンドルに変更できます。詳細は、ワークフローのカスタマイズのサンプルを参照してください。
タスク属性名、マップ済属性のラベルおよびDynamic Assignment Function名に関しては、文字列はリソース・プロパティ・ファイルWorkflowLabels.properties
の構成により取得されます。このファイルは、サービス構成ディレクトリのwfresource
サブディレクトリに存在します。このファイルに対してDynamic Assignment Functionおよび属性ラベル用にエントリを追加する方法は、「ヒューマン・ワークフロー・サービスの概要」を参照してください。
カスタム・アクションおよびタスクのタイトルの表示名は、タスク構成ファイルに指定されているメッセージ・バンドルから取得されます。メッセージ・バンドルが指定されていない場合は、設計時に指定された値が使用されます。カスタム・アクションおよびタスクのタイトルを優先言語で表示するためにメッセージ・バンドルを指定する方法については、「ヒューマン・ワークフロー・サービスの概要」を参照してください。
ノート:
ヒューマン・タスク名にハングル文字は使用できません。ヒューマン・タスク名にはハングル文字のかわりにA-Z、a-z、0-9および"_"の文字のみを使用することをお薦めします。
32.13.2 アイデンティティ・ストアがLDAPベースである場合の優先言語、ユーザーの表示名およびタイムゾーン設定の変更方法
Oracle Internet DirectoryなどのLDAPベース・プロバイダが使用されている場合、Oracle Internet Directoryコミュニティの言語設定が変更されます。組込みLDAPサーバーに接続し、Oracle Internet Directoryコミュニティの言語設定を変更します。
-
LDAPブラウザを起動します(たとえば、openLdapブラウザ、ldapbrowser、jXplorerなど)。起動方法は、ブラウザのドキュメントを参照してください。
-
サーバーが実行されているホスト名とポート番号、およびログインする管理ユーザーの資格証明を指定して、LDAPサーバーに接続します。
-
組込みLDAPの場合:
-
管理対象サーバーのデフォルトのポート番号は
7001
です。 -
管理資格証明のユーザー名は
cn=admin
です。 -
管理パスワード資格証明にアクセスするには、Oracle WebLogic Server管理コンソールから、ドメインに対して「セキュリティ」→「組込みLDAP」の順に選択します。
デフォルトのパスワード資格証明の変更手順については、Oracle WebLogic Serverセキュリティの管理の「組込みLDAPサーバーの管理」を参照してください。
-
-
Oracle Internet Directoryの場合:
-
デフォルトのポート番号は
3060
です。 -
管理ユーザー名は
cn=orcladmin
です。 -
管理パスワードはLDAPサーバーのパスワードです。
-
-
-
ユーザーの優先言語を変更するには、ユーザー・エントリに移動して、
preferredLanguage
属性を追加または設定します。サポートされている言語のリストは、表32-13を参照してください。ユーザー名を表示する言語を決定することもできます。このタスクを実行するには、LDAPディレクトリのユーザー・エントリに移動して、displayname
属性を追加または指定します。ノート:
-
ワークリストの「割当て先」列に表示されるユーザー名については、
displayname
属性の設定は優先されません。 -
表示名はLDAPから取得されます。表示名を変更しても、ワークスペースにログインすると、LDAPユーザー名が表示されます。
タイムゾーン設定を変更するには、
orclTimeZone
属性を追加または設定します。タイムゾーン文字列の書式は「大陸/地域」です。$JAVA_HOME/jre/lib/zi
ディレクトリでタイムゾーン値を確認できます。ディレクトリで大陸名(Africa、Asia、Americaなど)を指定し、ディレクトリ内のファイルで地域を指定します。地域によっては、America/Indiana/Indianapolisのようにサブ地域が含まれる場合があります。ユーザーがログインすると、ワークリストのページは、ユーザーの優先言語とタイムゾーンで表示されます。
-
32.13.3 タスク表示に使用する言語の変更方法
より高いパフォーマンスを得るため、Oracle Enterprise Manager Fusion Middleware Controlの「システムMBeanブラウザ」のLocaleList
プロパティには、英語のみがリストされています。タスクのタイトル、カテゴリまたはサブカテゴリの他言語表示や言語の追加が必要な場合は、「システムMBeanブラウザ」で、言語のロケールを変更する必要があります。
ノート:
すべての言語を最初に追加する必要があります。後で他の言語を追加しても、以前に他の言語で記述されたタスクはワークリストには表示されなくなります。たとえば、以前に指定されていた言語が英語で、その後フランス語を追加した場合、フランス語の追加前に記述されたタスクはワークリストには表示されなくなります。
言語を追加または変更するには:
-
Oracle Enterprise Manager Fusion Middleware Controlのナビゲータで、
soa-infra
を右クリックし、「管理」→「システムMBeanブラウザ」を選択します。 -
「アプリケーション定義のMBeans」、
oracle.as.soainfra.config
、「サーバー: server_name」、「WorkflowConfig」の順に展開します。 -
「human-workflow」をクリックします。
言語を変更するには:
-
「名前」列で、「LocaleList」をクリックします。
-
「値」フィールドで、値をクリックします。
-
「名前」列で、「言語」をクリックします。
-
「値」フィールドの
en
を、使用する言語の値に変更します。 -
「適用」をクリックします。
言語を追加するには:
-
「操作」タブをクリックします。
-
「名前」列で、
「createLocale」
をクリックします。 -
「値」フィールドに値を入力します。より高いパフォーマンスを得るため、タスクのタイトル、カテゴリ、サブカテゴリで使用する言語のみを含めてください。
-
「起動」をクリックします。
-
32.13.4 JAZN XMLファイルからの言語設定の変更方法
JAZN XMLファイルで、太字で示された部分を変更しユーザーの優先言語を設定します。
<preferredLanguage>en</preferredLanguage>
Oracle BPM Worklistでは、表32-13に示す言語がサポートされています。
表32-13 Oracle BPM Worklistでサポートされている言語
言語 | 書式 |
---|---|
英語 |
(en) |
フランス語 |
(fr) |
ドイツ語 |
(de) |
スペイン語(インターナショナル) |
(es) |
イタリア語 |
(it) |
ポルトガル語(ブラジル) |
(pt-BR) |
日本語 |
(ja) |
韓国語 |
(ko) |
中国語(繁体字) |
(zh-TW) |
中国語(簡体字) |
(zh-CN) |
アラビア語 |
(ar) |
チェコ語 |
(cs) |
デンマーク語 |
(da) |
オランダ語 |
(nl) |
フィンランド語 |
(fi) |
ギリシャ語 |
(el) |
ヘブライ語 |
(he) |
ハンガリー語 |
(hu) |
ノルウェー語 |
いいえ |
ポーランド語 |
(po) |
ポルトガル語 |
(pt) |
ルーマニア語 |
(ro) |
ロシア語 |
(ru) |
スロバキア語 |
(sk) |
スウェーデン語 |
(sv) |
タイ語 |
(th) |
トルコ語 |
(tr) |
フランス語(カナダ) |
(fr-CA) |
32.13.5 ワークリストでの表示言語の設定に関する必知事項
Oracle BPM Worklistは、ブラウザまたはアイデンティティ・ストア(LDAP)から言語を設定するよう構成できます。この設定には、アプリケーション・レベルとユーザー・レベルの2つのレベルがあります。ユーザー・プリファレンスが、ユーザー設定のLDAPとして設定されている場合は、ワークリストの表示言語が決定される際にこの設定が優先されます。LDAPで言語を設定しない場合、ワークリストは、サーバー・ロケールとしてデフォルトの言語に従います。ただし、電子メール通知は、常にLDAPで設定された言語に従います。LDAPで言語が設定されていない場合、電子メール通知は、サーバー・ロケールに従います。
32.13.6 ワークリストで使用するタイムゾーンの変更方法
次の説明は、JAZN XMLファイルからユーザーのタイムゾーンを抽出する方法に基づいています。
タイムゾーンを変更するには:
ユーザーの優先タイムゾーンを設定するには、太字部分を変更します。
<timeZone>America/Los_Angeles</timeZone>
タイムゾーン文字列の形式は、大陸/地域です。$JAVA_HOME/jre/lib/zi
ディレクトリでタイムゾーン値を確認できます。ディレクトリが大陸名(たとえば、Africa、Asia、Americaなど)を示し、ディレクトリ内のファイルが地域を示します。地域によっては、America/Indiana/Indianapolis
のようにサブ地域が含まれる場合があります。
32.14 再利用可能なワークリスト・リージョンの作成
ワークリストで使用可能な一部の機能は、アプリケーションに埋め込むことができるスタンドアロン再利用可能コンポーネントとして公開されています。
さらに、これらのスタンドアロン・タスク・フローにより、パラメータを使用した多くのカスタマイズ機能が提供されるため、ユーザーは要件にあわせてワークリスト・アプリケーションを作成してカスタマイズできます。すべてのタスク・フローは、埋込みアプリケーションに含めることができるADFライブラリにバンドルされます。
32.14.1 埋込みの再利用可能なワークリスト・リージョンを使用したアプリケーションの作成方法
再利用可能な各ワークリスト・リージョンの使用方法は通常のワークリスト・リージョンと同じですが、いくつかの例外があります。次の手順では、アプリケーションを作成してタスク・リスト・タスク・フローをアプリケーションに埋め込むステップについて詳細に説明します。可能な場合は、他のタイプの再利用可能なワークリスト・リージョンの使用方法についても説明しています。
埋込みの再利用可能なワークリスト・リージョンを使用してアプリケーションを作成するには:
-
Oracle JDeveloperで新規のFusion Webアプリケーションを作成します。この例では、アプリケーションの名前はTaskListTaskFlowSampleです。図32-65に詳細を示します。
-
ビュー・コントローラの「プロジェクト・プロパティ」を開き、「ライブラリとクラスパス」セクションで「ライブラリの追加」をクリックして、次のライブラリをクラスパスに追加します。
-
BPMワークリスト・コンポーネント: このライブラリを追加して、タスク・フローJAR
adflibTaskListTaskFlow.jar
およびadflibWorklistComponents.jar
を追加します。これらはプロジェクトのクラスパスで必要です。 -
BPMサービス
-
WSRPコンテナ
図32-66に詳細を示します。
-
-
アプリケーションが非SOAサーバーで実行されている場合は、次の2つのステップを実行する必要があります。
-
oracle.soa.workflow
共有ライブラリをインストールします。サーバーに
oracle.soa.workflow.wc
がすでにインストールされている場合、oracle.soa.workflow
のインストールは不要です。 -
サーバーで外部JNDIを構成します。
タスク・リスト・タスク・フローをフェデレーテッド・モードで実行する場合、このステップは不要です。タスク・フローをフェデレーテッド・モードで使用する方法の詳細は、「タスク・リスト・タスク・フローに関する必知事項」の「federatedMode」を参照してください。
-
-
ビュー・コントローラ・プロジェクトを選択し、「ファイル」→「新規」→「現在のプロジェクト・テクノロジ」→「Web層」→「JSFページ」の順に選択して、jspxファイル(たとえば、
testSample.jspx
)を作成します。「JSFページの作成」ダイアログでは、必ず「XMLドキュメントの作成(*.jspx)」を選択してください。
-
「コンポーネント」ウィンドウから
「adflibTaskListTaskFlow.jar」
を選択します。すべてのタスク・フローとリージョンのリストが含まれます。図32-67に詳細を示します。 -
タスク・フロー・リージョンの1つをjspxページにドラッグ・アンド・ドロップし、「作成」メニューから「リージョン」を選択します(たとえば、タスク・リスト・タスク・フローの場合はtaskList-task-flow-definition)。
タスク・フロー定義の詳細は、次の各項を参照してください。
-
flex-fields-task-flow-definition、rules-task-flow-definition、tasklist-reports-task-flow-definitionまたはtaskList-task-flow-definitionを選択した場合は、表示される「タスク・フロー・バインディングの編集」ダイアログでタスク・フロー・パラメータを渡します。
-
新しいエントリが
pagename
Pagedef.xml
ファイルに追加されます。たとえば、taskList-task-flow-definitionを追加すると、新しいエントリは次のようになります。
<taskFlow id="taskListtaskflowdefinition1" taskFlowId="/WEB-INF/taskList-task-flow-definition.xml#taskList-task- flow-definition" xmlns="http://xmlns.oracle.com/adf/controller/binding"> <parameters> <parameter id="taskFlowMode" value="MODE_WORKLIST"/> <parameter id="showTaskDetailsPanel" value="true"/> <parameter id="showActionDropdown" value="true"/> <parameter id="showViewFilter" value="true"/> <parameter id="showStatusFilter" value="true"/> <parameter id="showSearchControl" value="true"/> </parameters> </taskFlow>
-
weblogic-application.xml
ファイルの共有ライブラリを追加します。oracle.soa.workflow.wc
をサーバーにインストールしている場合は、そのライブラリを追加します。<library-ref> <library-name>oracle.soa.workflow</library-name> </library-ref>
生成されたカスタム・アプリケーションがモジュールの場合、
weblogic.xml
を使用します。<library-ref> <library-name>oracle.soa.worklist.webapp</library-name> </library-ref>
アプリケーションをデプロイする前に、「デプロイメント・プロファイルの設定方法」を参照してください。
32.14.2 デプロイメント・プロファイルの設定方法
アプリケーションをデプロイする前に、デプロイメント・プロファイルを編集する必要があります。
デプロイメント・プロファイルを編集する手順は、次のとおりです。
- View Controllerプロジェクトを選択し、「ファイル」→「新規作成」→「一般」→「デプロイメント・プロファイル」を選択します。「WARファイル」を選択し、「OK」をクリックします。
- 「WEB-INF/lib」→「フィルタ」の順に選択し、
adflibTaskListTaskFlow.jar
、adflibWorklistComponents.jar
およびwsrp-container.jar
を選択します。
32.14.3 フェデレーテッド・モードのタスク・フローのデプロイメント準備
タスク・フローをフェデレーテッド・モードで使用する場合は、フェデレーテッド・サーバーのリストをタスク・フローに渡す必要があります。詳細は、「タスク・リスト・タスク・フローに関する必知事項」の「federatedMode」を参照してください。
タスク・フローをフェデレーテッド・モードで使用する場合は、フェデレーテッド・サーバー間でグローバル・トラストを有効にします。これにより、すでに認証されたユーザー・トークンが、タスク・フローに渡されたすべてのフェデレーテッド・サーバーに渡されます。
すべてのフェデレーテッド・サーバーで次のステップを実行して、すべてのサーバーを再起動します。すべてのサーバーを再起動することが非常に重要です。
サーバーを再起動するには:
- Oracle WebLogic Serverコンソールにログインします。
- 「ドメイン構造」からドメイン名soainfraを選択します。SOAサーバーを使用していない場合は、ドメイン名が異なる場合があります。
- 「セキュリティ」タブを選択します。
- 「詳細」リンク(下部の「保存」ボタンの近くにあります)を選択します。
- 「資格証明」フィールドにパスワードを入力します。(すべてのフェデレーテッド・サーバーで同じパスワードを使用する必要があります)。
- 「保存」をクリックします。
- サーバーを再起動します。
32.14.4 タスク・リスト・タスク・フローに関する必知事項
タスク・リスト・タスク・フローでは、埋込みリージョンの表示動作を制御するためのパラメータを指定します。図32-68に詳細を示します。
次に、パラメータの一部を示します。
-
federatedMode
-
federatedServers
-
showServerColumn
-
wfCtxID
federatedMode
trueとして渡された場合、タスク・リストはフェデレーテッド・モードで表示されます。タスク・フローをフェデレーテッド・モードで実行するには、フェデレーテッド・サーバーのリストをタスク・フローに渡す必要があります。次のいずれかの方法で、フェデレーテッド・サーバーのリストをタスク・フローに渡すことができます。
-
クライアント構成ファイル
wf_client_config.xml
をクラス・パス(EARレベルのAPP-INF\classes\wf_client_config.xml
またはWebアプリケーションのWEB-INF\classes
)に含めます。クライアント構成ファイルには、すべてのフェデレーテッド・サーバーの詳細が含まれています。 -
フェデレーテッド・サーバー・リストを格納したJAXBオブジェクトを作成します。このJAXBオブジェクトは、
federatedServers
パラメータを使用してタスク・フローに渡すことができます。JAXBオブジェクトの作成方法については、次の「federatedServers」を参照してください。
クライアント構成ファイル(wf_client_config.xml
)とJAXBオブジェクトの両方がタスク・フローに渡された場合は、JAXBオブジェクトが優先されます。
federatedServers
タスク・フローがフェデレーテッド・モードで実行される場合、このパラメータは、サーバーのリストが含まれるJAXBオブジェクトです。クライアント構成ファイル(wf_client_config.xml
)も渡された場合は、このパラメータが優先されます。JAXBオブジェクト(WorkflowServicesClientConfigurationType
)の作成方法の詳細は、次のコード・サンプルを参照してください。
次のコード・サンプルに示すように、サーバーの1つをdefault
として設定する必要があります。デフォルトとして指定する必要があるのは1つのサーバーのみです。また、デフォルトとして指定したサーバーが、フェデレーテッド・サーバーのリストから除外されていることを確認してください。次の例では、これに関連するコードが太字で表示されています。
デフォルト・サーバーが使用されるのは、wf_client_config.xml
またはJAXBオブジェクトに複数のサーバーが定義されているが、ワークフロー・クライアントで1つのサーバーのみ必要な場合です。サーバー名をパラメータとして使用しないレガシーのAPIがいくつかあります。このようなレガシーのAPIをサポートするには、1つのサーバーをデフォルト・サーバーとして定義する必要があります。そうしないと、サーバー名を使用しないレガシーのAPIは機能しません。
import oracle.bpel.services.workflow.client.config.IdentityPropagationType; import oracle.bpel.services.workflow.client.config.PolicyReferenceType; import oracle.bpel.services.workflow.client.config.PolicyReferencesType; import oracle.bpel.services.workflow.client.config.RemoteClientType; import oracle.bpel.services.workflow.client.config.ServerType; import oracle.bpel.services.workflow.client.config.SoapClientType; import oracle.bpel.services.workflow.client.config.WorkflowServicesClientConfigurationType; WorkflowServicesClientConfigurationType wscct = new WorkflowServicesClientConfigurationType(); List<ServerType> servers = wscct.getServer(); /**** Setting default server in the list ****/ ServerType defalutServer = new ServerType(); servers.add(defalutServer); defalutServer.setDefault(true); defalutServer.setExcludeFromFederatedList(true); defalutServer.setName("default"); RemoteClientType rct = new RemoteClientType(); rct.setServerURL("t3://myhost.us.example.com:7001"); rct.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory"); rct.setParticipateInClientTransaction(false); defalutServer.setRemoteClient(rct); SoapClientType sct = new SoapClientType(); PolicyReferencesType prts = new PolicyReferencesType(); PolicyReferenceType prt = new PolicyReferenceType(); prt.setEnabled(true); prt.setCategory("security"); prt.setUri("oracle/wss10_saml_token_client_policy"); prts.getPolicyReference().add(prt); IdentityPropagationType ipt = new IdentityPropagationType(); ipt.setMode("dynamic"); ipt.setType("saml"); ipt.setPolicyReferences(prts); sct.setRootEndPointURL("http://myhost.us.example.com:7001"); sct.setIdentityPropagation(ipt); defalutServer.setSoapClient(sct); /****** Setting Federated Server 1 to the list ****/ ServerType server1 = new ServerType(); servers.add(server1); server1.setName("Human Resource"); RemoteClientType rct1 = new RemoteClientType(); rct1.setServerURL("t3://myhost.us.example.com:7001"); rct1.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory"); rct1.setParticipateInClientTransaction(false); server1.setRemoteClient(rct1); SoapClientType sct1 = new SoapClientType(); PolicyReferencesType prts1 = new PolicyReferencesType(); PolicyReferenceType prt1 = new PolicyReferenceType(); prt1.setEnabled(true); prt1.setCategory("security"); prt1.setUri("oracle/wss10_saml_token_client_policy"); prts1.getPolicyReference().add(prt1); IdentityPropagationType ipt1 = new IdentityPropagationType(); ipt1.setMode("dynamic"); ipt1.setType("saml"); ipt1.setPolicyReferences(prts1); sct1.setRootEndPointURL("http://myhost.us.example.com:7001"); sct1.setIdentityPropagation(ipt1); server1.setSoapClient(sct1); /****** Setting Federated Server 2 to the list ****/ ServerType server2 = new ServerType(); servers.add(server2); server2.setName("Financials"); RemoteClientType rct2 = new RemoteClientType(); rct2.setServerURL("t3://myhost.us.example.com:7001"); rct2.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory"); rct2.setParticipateInClientTransaction(false); server2.setRemoteClient(rct2); SoapClientType sct2 = new SoapClientType(); PolicyReferencesType prts2 = new PolicyReferencesType(); PolicyReferenceType prt2 = new PolicyReferenceType(); prt2.setEnabled(true); prt2.setCategory("security"); prt2.setUri("oracle/wss10_saml_token_client_policy"); prts2.getPolicyReference().add(prt2); IdentityPropagationType ipt2 = new IdentityPropagationType(); ipt2.setMode("dynamic"); ipt2.setType("saml"); ipt2.setPolicyReferences(prts2); sct2.setRootEndPointURL("http://myhost.us.example.com:7001"); sct2.setIdentityPropagation(ipt2); server2.setSoapClient(sct2);
showServerColumn
タスク・フローがフェデレーテッド・モードで実行される場合、デフォルトではタスク・リストのサーバー列は表示されません。サーバー列を表示する場合は、このパラメータをtrue
で渡します。それ以外の場合、サーバー列は表示されません。
wfCtxID
これはワークフロー・コンテキストのトークン文字列です。ワークフロー・コンテキストをタスク・フロー内部に作成する場合に使用します。アプリケーションがSSO対応の場合、またはアプリケーションがADFセキュリティを使用して保護されている場合、このパラメータは必要ありません。それ以外の場合、これは必須パラメータです。ワークフロー・コンテキストIDは、 次のコード・サンプルの方法で取得できます。
IWorkflowContext wfCtx = wfSvcClient.getTaskQueryService().authenticate(username,password,realm,null); wfCtxID = wfCtx.getToken();
32.14.5 証明書タスク・フローに関する必知事項
次の図に示すように、ユーザーは意思決定の署名に使用する証明書をアップロードできます。証明書を使用してタスクの結果に署名する際は、証明書発行者から発行された1つの証明書のみではなく、証明書チェーン全体をOracle BPM Worklistから.P7B (PKCS7形式)ファイルとしてアップロードする必要があります。
デジタル証明書には、証明書発行者のデジタル署名が記載されているため、誰でも証明書が本物であることを確認できます。参加者の資格証明は、デジタル証明書によって証明されます。これは認証局(CA)が発行します。ユーザー名、シリアル番号、有効期限、証明書所有者の公開キーのコピー(メッセージとデジタル署名の暗号化に使用)、および証明書発行者のデジタル署名が記載されているため、受信者は証明書が本物であることを確認できます。
証明書タスク・フローにパラメータはありません。図32-69に詳細を示します。
32.14.6 レポート・タスク・フローに関する必知事項
図32-70に、不参加タスク・レポートを示します。
次に、タスク分析に使用できるワークリスト・レポートを示します。
不参加タスク
不参加タスク・レポートでは、ユーザーのグループまたは報告先のグループに割り当てられたタスクの中で、まだ獲得されていないタスク(不参加タスク)が分析されます。
-
割当て先 - (必須)このオプションでは、ユーザーのグループに割り当てられたタスク(グループ)、報告先のグループに割り当てられたタスク(「報告先」)、ユーザーが作成者であるタスク(「作成者」)、またはユーザーが所有者であるタスク(「所有者」)を選択します。
-
作成日 - (オプション)日付範囲。
-
有効期限 - (オプション)日付範囲。
-
タスクの状態 - (オプション)状態は、「任意」、「割当て済」、「期限切れ」または「情報のリクエスト中」のいずれかです。
-
優先度 - (オプション)優先度は、「任意」、「最高」、「高」、「標準」、「低」または「最低」のいずれかです。
タスクの優先度
タスクの優先度レポートでは、ユーザー、報告先またはそのグループに割り当てられたタスクの数が優先度別に分析されます。
-
割当て先 - (必須)このオプションには、選択した割当て先に応じて、ログイン・ユーザーに割り当てられたタスク(「個人」)、ユーザーとそのユーザーが所属するグループに割り当てられたタスク(「個人とグループ」)、または、ユーザーの報告先が所属するグループに割り当てられたタスク(「報告先」)が含まれます。
-
作成日 - (オプション)日付範囲。
-
終了日 - (オプション)レポートに含まれるタスクの終了日の日付範囲。
-
優先度 - (オプション)優先度は、「任意」、「最高」、「高」、「標準」、「低」または「最低」のいずれかです。
タスクのサイクル・タイム
タスクのサイクル・タイム・レポートでは、ユーザーのグループまたは報告先のグループに基づいて、タスクの割当てから完了までの所要時間が分析されます。
-
割当て先 - (必須)このオプションには、選択した割当て先に応じて、自分のタスク(「個人」)、またはユーザーの報告先が所属するグループに割り当てられたタスク(「報告先」)が含まれます。
-
作成日 - (オプション)日付範囲。
-
終了日 - (オプション)レポートに含まれるタスクの終了日の日付範囲。
-
優先度 - (オプション)優先度は、「任意」、「最高」、「高」、「標準」、「低」または「最低」のいずれかです。
タスクの生産性
タスクの生産性レポートでは、ユーザー、報告先またはグループについて、特定期間中に割り当てられたタスク数と完了したタスク数が分析されます。
-
割当て先 - (必須)このオプションには、選択した割当て先に応じて、ユーザーのタスク(「個人とグループ」)、またはユーザーの報告先が所属するグループに割り当てられたタスク(「報告先」)が含まれます。
-
作成日(範囲) - (オプション)作成日の日付範囲。デフォルト値は1週間です。
-
タスク・タイプ - 「検索」(懐中電灯)アイコンを使用して、タスクのタイトルのリストから選択します。「ワークフロー・タスク・タイプの選択」ページに、タスクのすべてのバージョンがリストされます(オプション)。
タスク時間分布
タスク時間分布レポートには、割当て先がタスクを実行するのに要した時間が表示されます。
-
割当て先 - (必須)このオプションには、選択した割当て先に応じて、ユーザーのタスク(「個人とグループ」)、またはユーザーの報告先が所属するグループに割り当てられたタスク(「報告先」)が含まれます。
-
開始...終了(日付範囲) - (オプション)作成日の日付範囲。デフォルト値は1週間です。
-
タスク・タイプ - 「検索」(懐中電灯)アイコンを使用して、タスクのタイトルのリストから選択します。「ワークフロー・タスク・タイプの選択」ページに、タスクのすべてのバージョンがリストされます(オプション)。
32.14.7 アプリケーション・プリファレンス・タスク・フローに関する必知事項
ワークリストの外観は、アプリケーション・プリファレンスを使用してカスタマイズします。管理者は次の値を指定できます。
-
ログイン・ページ・レルムのラベル: アイデンティティ・サービスが複数のレルムで構成されている場合は、Oracle BPM Worklistのログイン・ページにレルム名のリストが表示されます。
LABEL_LOGIN_REALM
は、これらのレルムを表示するラベルのルックアップに使用するリソース・バンドル・キーを指定します。realm(レルム)という語は、ユーザー・コミュニティにあわせて変更できます。たとえば、country(国)、company(会社)、division(部)、department(部門)などの方が適切な場合があります。管理者は、リソース・バンドルをカスタマイズし、この文字列にリソース・キーを指定して、このパラメータがリソース・キーを指し示すように設定できます。 -
グローバル・ブランド・アイコン: これは、ワークリストの各ページの左上隅に表示されるイメージです。(Oracleロゴがデフォルトです。)管理者は、ロゴに使用する
.gif
、.png
または.jpg
ファイルを提供できます。このファイルはpublic_html
ディレクトリに置く必要があります。 -
リソース・バンドル: アプリケーション・リソース・バンドルは、ワークリストに表示される文字列を指定します。デフォルトでは、これは
oracle.bpel.worklistapp.resource.WorklistResourceBundle
のクラスです。図32-71に詳細を示します。
32.14.8 マップ済属性タスク・フローに関する必知事項
ヒューマン・ワークフローのマップ済属性での格納と問合せでは、状況固有のカスタム属性が使用されます。これらのカスタム属性は、通常、タスク・ペイロード値に基づきます。マップ済属性にカスタム属性を格納すると、次の利点が得られます。
-
フレックス・フィールドをタスク・リストの列として表示できます。
-
フレックス・フィールドでは、カスタム・ビューおよび拡張検索でタスクをフィルタ処理できます。
-
フレックス・フィールドは、キーワードベースの検索で使用できます。
たとえば、タスクの注文書リクエスト・ペイロードのRequester、PurchaseOrderIDおよびAmountフィールドをマップ済属性に格納できます。Oracle BPM Worklistにログインした承認者は、これらのフィールドの値をタスク・リスト内の列で確認して、アクセスするタスクを決定できます。ユーザーは、マップ済属性に基づいてタスクをフィルタ処理するビューを定義できます。
たとえば、ユーザーは、異なる金額範囲に基づいて発注書の承認用ビューを作成できます。ユーザーがある時点で特定のリクエスタまたは発注書IDに関連するタスクを取得することも必要になった場合、キーワード・フィールドにそのリクエスタまたは発注書IDを指定して検索を実行することによって、関連するタスクを取得できます。図32-72に詳細を示します。
32.14.9 ルール・タスク・フローに関する必知事項
ルールを使用してタスクを操作します。タスクは、特定のタスク・タイプ、またはユーザーやグループに割り当てられた全タスクのいずれかです。次の図に、休暇ルールも含めて、ルールを設定する場所を示します。
ルールは、そのルールが使用されるすべての環境で常に適用できるわけではありません。たとえば、ルールが複数のタスク・タイプに適用される場合は、タスクによって結果が異なるため、すべてのタスクに結果を設定できない場合があります。
ルールはリストされている順序で実行されます。ルールはヘッダーの上下ボタンを使用して順序を変更できます。あるルールがフィルタ条件に一致すると、そのルールが実行され、他のルールは評価されません。ルールを実行するユーザーは、該当するタスクに割り当てられている唯一のユーザーであることが必要です。タスクが(自分を含めて)複数のユーザーに割り当てられている場合、ルールは実行されません。
showOtherUsersRules
パラメータはブール値を取ります。このパラメータがTrue
として渡されると他のユーザーのルールが表示され、False
として渡されると他のユーザーのルールは表示されません。さらに、ユーザーが他のユーザーのルールを表示するには、必要な権限が付与されている必要があります。図32-73および図32-74に詳細を示します。
32.14.10 承認グループ・タスク・フローに関する必知事項
承認グループは、静的に定義されたか、または動的に生成された承認者のリストです。承認グループは、通常、ワークリスト・アプリケーションを使用して、プロセス所有者によって構成されます。一般に、これらは、管理承認の前後にタスクを処理する必要がある、人事や弁護士などのトランザクションの権限の管理チェーンの外側の主題専門家をモデリングするのに使用されます。
静的な承認グループは事前定義済の承認者リストで、動的な承認グループはランタイムに承認者リストを生成します。動的な承認グループでは、次を実行する必要があります。
-
開発者による動的承認者リストのインタフェースに応じた実装の提供
-
IT部門によるOracle BPM WorklistのUIを使用した動的な承認グループとしての実装の登録
-
SOAクラス・パスの一部であり世界的に有名なディレクトリでの、クラス・ファイルの公開
32.14.11 タスク構成タスク・フローに関する必知事項
タスク構成は、ワークリスト・アプリケーション内のWebベース・アプリケーションで、ワークフロー設計者が事前に定義したルールをビジネス・ユーザーおよび管理者が確認および変更することが可能です。この事前定義済ルールは、特定の顧客向けに、適用可能な顧客企業ポリシーに基づいて変更できます。
たとえば、会社のポリシーで、1000を超える経費には2レベルの承認が必要であるとします。さらに、このポリシーが変更され、3レベルを必要とするようになったとします。IT部門が基礎となるプロセスでルールを変更し、再度デプロイするかわりに、タスク構成を使用してルールを変更できます。ルールの変更は次のインスタンスから適用され、すでに進行中のインスタンスでは現在のルール定義が使用されます。
タスク構成を使用すると、承認フローに関連付けられているイベント駆動ルールとデータ駆動ルールを、ワークフローのデプロイ後である実行時に編集できます。
32.15 ワークリスト・アプリケーションでカスタマイズされたアプリケーションを有効化するJavaコード
次に、ワークリスト・アプリケーションでカスタマイズされたアプリケーションを有効化するJavaコードを示します。
「カスタマイズされたアプリケーションおよびリンクを有効にする方法」では、ワークリスト・アプリケーションの「アプリケーション・プリファレンス」ページを使用してカスタム・アプリケーションを指定する方法について説明しています。この指定を実行するJavaコードは、次のとおりです。
package view.customisationimpl; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import oracle.bpel.services.workflow.client.IWorkflowServiceClient; import oracle.bpel.services.workflow.runtimeconfig.IRuntimeConfigService; import oracle.bpel.services.workflow.runtimeconfig.model.AttributeLabelType; import oracle.bpel.services.workflow.runtimeconfig.model.AttributeLabelUsageList; import oracle.bpel.services.workflow.runtimeconfig.model.AttributeLabelUsages; import oracle.bpel.services.workflow.verification.IWorkflowContext; import oracle.bpm.ui.customization.CustomLink; import oracle.bpm.ui.customization.IBPMUICustomizations; public class WorkspaceCustomisationImpl implements IBPMUICustomizations { private static Map displayNameMap = new HashMap(); public WorkspaceCustomisationImpl() { displayNameMap.put("instanceId", "Instance Id"); displayNameMap.put("protectedTextAttribute1", "Business Status"); } public List<CustomLink> getCustomGlobalLinks() { CustomLink globalLink1 = new CustomLink("Oracle Home Page", "www.oracle.com", null); CustomLink globalLink2 = new CustomLink("Self Services Application", "http://global-ebusiness.example.com/", null); CustomLink globalLink3 = new CustomLink("BUG DB", "https://bug.example.com/", null); List<CustomLink> globalLinks = new ArrayList<CustomLink>(); globalLinks.add(globalLink1); globalLinks.add(globalLink2); globalLinks.add(globalLink3); return globalLinks; } public String getColumnNames() { return "title,taskNumber,instanceId,creator,protectedTextAttribute1"; } private static void initDisplayMap(IWorkflowServiceClient client, IWorkflowContext context) { // you can use service to load all label namess for text attributes if (displayNameMap == null) { synchronized (String.class) { if (displayNameMap == null) { displayNameMap = new HashMap(); try { IRuntimeConfigService service = client.getRuntimeConfigService(); AttributeLabelUsageList list = service.getAttributeLabelUsages(context, "Text"); List<AttributeLabelUsages> list1 = list.getAttributeLabelUsages(); for (AttributeLabelUsages usage : list1) { AttributeLabelType type = usage.getLabel(); displayNameMap.put(type.getTaskAttribute(), type.getLabelName()); } } catch (Exception exc) { } } } } } public String getColumnDisplayName(IWorkflowServiceClient client, IWorkflowContext context, java.lang.String colName) { initDisplayMap(client, context); return (String)displayNameMap.get(colName); } }