承認ルール・セットおよびルールの構成
ルール・セットおよびルールは、特定の条件に基づいて、ワークフロー・タスクのルーティング方法、割当方法および完了方法を制御します。たとえば、ある特定の金額を超えるトランザクションには、管理チェーンで3レベル上の承認が必要であるというルールがあります。
ワークフロー・タスクには1つ以上のルール・セットがあり、ルール・セットには1つ以上のルールがあります。実行時に、ルール・セットに複数のルールがある場合は、すべてのルールが同時に評価されます。ルールには、条件(テスト)を持つIfセクションと、条件が満たされたときに実行する処理を含むThenセクションの2つの部分があります。
ルール・セットの構成
まず、作業対象のルール・セットを作成または検索します。
-
「設定と保守」作業領域で、「アプリケーション拡張」機能領域のタスク構成の管理タスクに移動します。または、オファリングによっては、別の機能領域または別の承認設定タスクを使用できます。
-
BPMワークリストの「タスク構成」タブで、「設定するタスク」ペインでワークフロー・タスクを検索します。
-
検索結果からタスクを選択し、ツールバーの「タスクの編集」アイコンをクリックします。
ノート: フレックスフィールドが変更されたことを示すメッセージが表示される場合があります。これは、誰かがアプリケーション・コンポーザを使用して新しいフィールドを作成し、バックエンドにフレックスフィールドが作成されたことを意味します。「同期化の開始」ボタンをクリックして、このタスクのルールに使用できるフレックスフィールドの最新セットを取得します。 -
「割当て先」サブタブをクリックします。
-
ワークフロー・タスクの概略を説明する図が大きい場合は、「垂直レイアウトへの切替え」リンクをクリックします。
-
図で、作業対象の関係者を探します。「ルールに移動」アイコンをクリックして、「ルールに移動」を選択します。または、関係者を選択し、図の後のペインで「ビジネス・ルール」フィールドのリンクをクリックします。
-
「ルール」タブに表示されたルール・セットの作業に進みます。または、ルール・セット名を含むドロップダウン・リストから、編集する別のルール・セットを選択するか、「新しいルールセットの追加」を選択します。
-
ルール・セット名の後ろにある「プロパティの表示」リンクをクリックして、「有効日」設定と「アクティブ」チェック・ボックスを確認します。ユーザーがワークフロー・タスクを作成するときに適用されるように、ルール・セットが有効でアクティブである必要があります。有効日を「常時」に設定したままにすることをお薦めします。
注意: ここから、「ルール・セットの削除」リンクをクリックすることもできます。事前定義済のルール・セットを削除する前に、本当にそれを使用しておらず、今後も使用する予定がないことを確認してください。事前定義済の「変更ルール」および「置換ルール」ルール・セットは削除しないでください。 -
「ルール」ペインで、ルール・セット内のルールを追加、編集または削除できます。ルールがまだ展開されていない場合は、展開します。ルール・セットと同様に、ルールの「詳細設定の表示」アイコンをクリックすると、ルールが有効でアクティブであることを確認できます。
- 作成: 追加または変更の拡張オプション・アイコンをクリックし、「一般的なルール」を選択します。
- 編集: ルールがまだ選択されていない場合は選択します。
- 削除: ルールを選択し、「ルール」ペインのツールバーにある「削除」アイコンをクリックします。
作成または編集するルールについて、ルール名の後ろにある「プロパティ」リンクをクリックしてルールの名前を変更したり、ルールが有効でアクティブであることを確認できます。
「割当て先」タブの「ルール」サブタブに表示される内容の理解に役立つスクリーンショットを次に示します。
コールアウト番号 |
内容 |
---|---|
1 |
ルール・セット・ドロップダウン・リスト。作業対象のルール・セットを選択することも、新しいルール・セットを作成することもできます。 |
2 |
ルール・セットのプロパティを開くためのリンク。 |
3 |
ルール・セット内のルールがリストされる「ルール」ペイン。追加や削除など、それらのルールに対する作業を行うためのツールバーもあります。 |
4 |
「ルール」ペインで選択したルールの名前。それに続いて、そのルールのプロパティを開くためのリンクがあります。 |
5 | 条件を定義する、ルールのIfセクション。それらの条件に対する作業を行うためのツールバーもあります。 |
6 | 条件が満たされたときの動作を定義する、ルールのThenセクション。このセクションに固有のツールバーもあります。 |
ルールのIfセクションの構成
ルールのIfセクションで、ルールの条件を定義します。このセクションの各行はテストと呼ばれます。
- 既存の条件については、編集する行をクリックし、アクティブで選択された状態にします。新しい行を追加するには、追加または変更の拡張オプション・アイコンをクリックし、追加するタイプ(「簡易テスト」など)を選択します。
-
「左の値」アイコンをクリックして、「条件ブラウザ」ダイアログ・ボックスで属性を選択します。
-
演算子を選択します。
-
「右の値」アイコンをクリックして「条件ブラウザ」ダイアログ・ボックスから何かを選択するか、対応するフィールドに値を入力します。
-
最後の行で作業していない場合は、行の最後にある「および」または「または」リンクをクリックして、2つの間で切り替えることができます。
注意: 条件で評価する属性がオプションの場合、ユーザーはUIでその属性の値を入力していない可能性があります。ルールを正しく機能させるには、まず属性が空白でないかどうかをチェックする行を条件に含めることをお薦めします。つまり、その属性を選択し、演算子として「次に一致しない」を選択して、nullと入力します。次に、属性を評価する条件で別の行を追加し、2つの行の間に「および」があることを確認します。
行を削除するには、行内の任意のフィールドにカーソルを置き、「削除」アイコンをクリックします。
ルールのThenセクションの構成
ルールのThenセクションで、Ifセクションの条件が満たされた場合の動作を定義します。
-
既存の処理を編集します。または、「アクションの挿入」アイコンをクリックし、通常は「承認者の追加」を選択して、タスクのルーティング方法を制御するリスト・ビルダーを選択します。
-
残りのセクションに入力します。表示されるフィールドはリスト・ビルダーによって異なりますが、使用できるフィールドを次にいくつか示します。
フィールド
内容
レスポンス・タイプ
必須: 割当先は、承認や否認などの処理を実行する必要があります。
FYI: 割当先は処理を実行する必要はありません。
レベル数
開始参加者から最上位の参加者まで、タスクを完全に承認するために必要なレベル数。
開始参加者
承認チェーンの最初の割当先。
最上位の参加者
承認チェーンの上位に移動した場合の、チェーン内の最後の割当先。監督階層などでは、承認がこの参加者よりも上に移動することはありません。
自動アクションの有効化
Trueに設定すると、ルール条件が満たされたときにタスクに対して自動アクションが実行されます。
自動アクション
"APPROVE": タスクは自動的に承認されます。
"REJECT": タスクは自動的に否認されます。
ルール名
使用するThenセクションを含むルールの名前。
-
このルールに対してここで定義したThenセクションがこのルールで使用されることを示すために、このフィールドは作業しているルールの名前のままにします。
-
または、任意のタスクの既存のルールの名前を引用符で囲んで入力し、このThenセクションの他のすべてのフィールドを空白のままにすることもできます。入力したルールのThenセクションが、作業中のこのルールに適用されます。したがって基本的に、別のルールからThenセクションを再利用します。
開始参加者または最上位の参加者を選択するには:
-
「開始参加者」または「最上位の参加者」アイコンをクリックします。
-
「階層参加者の追加」ダイアログ・ボックスで、特定のユーザーに対する「ユーザーの取得」オプションを選択するか、タスク作成者などの属性に対する「マネージャの取得」を選択します。
-
「マネージャの取得」オプションの場合のみ、ルールに使用するリスト・ビルダーを選択します。
-
「ユーザーの取得」オプションの場合は、"KLEE"のように、ユーザーがサインインするユーザーIDを引用符で囲んで「参照ユーザー」フィールドに入力します。
「マネージャの取得」オプションの場合、「参照ユーザー」フィールドに対して実行する処理は次のとおりです。
-
「式ビルダー」アイコンをクリックします。
-
式ビルダーの「変数」タブで、階層内で必要な属性を選択します。たとえば、「Task」→「payload」を展開し、そこで属性を見つけます。
-
「式に挿入」ボタンをクリックします。
-
「OK」をクリックします。
-
-
「有効日」フィールドを空白のままにして、監督階層などの最新の階層を使用します。
-
「OK」をクリックします。
「開始参加者」または「最上位の参加者」フィールドに表示される内容は、「階層参加者の追加」ダイアログ・ボックスの内容を反映します。次に例をいくつか示します。
-
HierarchyBuilder.getManager("supervisory",Task.payload.Owner User Name,-1,"","")
参加者値の部分
意味
getManager
「マネージャの取得」オプションを選択しました。
"supervisory"
「スーパーバイザ」リスト・ビルダーを選択しました。
Task.payload.Owner User Name
「参照ユーザー」フィールドの「変数」タブで「Task」→「payload」→「Owner User Name」に移動し、「Owner User Name」属性を選択しました。
-1
これは、プライマリ雇用アサイメントに対応するデフォルト値です。その監督階層は、タスクの割当先の検索に使用されます。
"",""
「階層タイプ」および「有効日」フィールドを空白のままにしたため、引用符の中には何もありません。
-
HierarchyBuilder.getPrincipal("KLEE","","")
参加者値の部分
意味
getPrincipal
「ユーザーの取得」オプションを選択しました。
"KLEE"
「参照ユーザー」フィールドに"KLEE"と入力しました。
"",""
「階層タイプ」および「有効日」フィールドを空白のままにしたため、引用符の中には何もありません。
-
ルールの例
次に、ルールの例を示します。Ifセクションには、最初に属性が特定の値であるかどうかをチェックし、2番目に属性が特定の金額を超えるかどうかをチェックする2つのテストがあります。属性名は、「条件ブラウザ」ダイアログ・ボックスで取得した階層内の属性の場所を反映します。2つのテストをつなぐ「および」は、両方の条件を満たす必要があることを意味します。
Thenセクションには、スーパーバイザ・リスト・ビルダーに基づいて定義された、条件が満たされた場合に適用される処理があります。割当先は処理を実行する必要があり、必要な承認は1つのみです。
ルール・セットのテストと適用
- 「割当て先」タブの「検証」ボタンをクリックして、修正する必要がある問題がルールにあるかどうかを確認します。「ルール」サブタブの後の「ビジネス・ルール検証 - ログ」サブタブに結果が表示されます。
- 変更をロールアウトする準備ができたら、「設定するタスク」ツールバーで「タスクのコミット」アイコンをクリックします。