動的割当てパターンおよびタスク・エスカレーション・パターン

タスクがグループ、アプリケーション・ロールまたはユーザー・リストに割り当てられると、単一のユーザーは、操作対象のタスクを申告する必要があります。ただし、様々なディスパッチ・メカニズムを使用すると、ユーザーに作業を自動的に送信できます。

自動タスク・ディスパッチは、動的割当てパターンを介して実行されます。動的割当てパターンでは、グループまたはユーザーやグループのリストから、特定のユーザーまたはグループが選択されます。同様に、タスクがエスカレートされる場合、タスク・エスカレーション・パターンを使用して、タスクのエスカレート先となるユーザーを決定できます。組込みパターンがいくつか用意されています。ただし、動的割当ておよびタスク・エスカレーション用の独自のパターンを作成して、ワークフロー・サービスに登録することもできます。表34-21に、組込みの3つの動的割当てパターンと1つのタスク・エスカレーション・パターンを示します。

表34-21 動的割当てパターン

割当てパターン タイプ 説明

LEAST_BUSY

動的割当て

現在割り当てられているタスク数が最も少ないユーザーまたはグループを選択します。

MOST_PRODUCTIVE

動的割当て

特定の期間(デフォルトでは過去7日間)に最も多くのタスクを完了したユーザーまたはグループを選択します。

ROUND_ROBIN

動的割当て

各ユーザーまたはグループを順番に選択します。

MANAGERS_MANAGER

タスク・エスカレーション

マネージャのマネージャを選択します。

これらのパターンではいずれもユーザーの休暇ステータスがチェックされます。現在割当てできないユーザーにタスクが自動的に割り当てられることはありません。

「単一参加者タイプの構成方法」に示すように、タスク参加者を定義する場合には動的割当てパターンを使用できます。「グループ・ルールの作成方法」に示すように、これらをタスク割当てルールとともに使用すると、エンド・ユーザーは、管理するグループのメンバーに対してタスクの動的割当てを指定できるようになります。

動的割当てパターンは、タスク定義の任意のXpath式でXpath関数を使用してコールすることもできます。

関数のシグネチャは次のとおりです。

hwf:dynamicTaskAssign(patternName, participants, inputParticipantType,
targetAssigneeType, isGlobal, invocationContext, parameter1, parameter2, ...,
parameterN)

パラメータは次のとおりです:

  • patternName: 必須。使用するパターンの名前。

  • participants: 必須。割当て先として選択される参加者(複数可)。参加者名や参加者名のカンマ区切りリストを含む文字列または要素にするか、あるいは参加者名や参加者名のカンマ区切りリストを含む一連の要素にすることができます。参加者のタイプはすべて同じである必要があります。

  • inputParticipantType: 必須。入力する参加者のタイプ(user、groupまたはapplication_role)。

  • targetAssigneeType: 必須。選択する割当て先のタイプ(user、groupまたはapplication_role)。値は、関数が使用されているコンテキストと一致する必要があります(たとえば、所有者ユーザーを動的に選択する場合にはuserである必要があります)。inputParticipantTypeがuserである場合、ここで有効な値はuserのみです。

  • isGlobal: パターンの評価にすべてのタイプのタスクを使用するか、または同じタイプのタスクのみを現在のタスクとして使用するかを示すブール値。オプション(デフォルトはfalseです)。

  • invocationContext: この関数が使用されている場所を一意に識別する文字列。指定しない場合は、デフォルトのコンテキストが割り当てられます。

  • parameterN: 一部の動的割当てパターンではパラメータを指定できます。パラメータ値は、=文字をデリミタとして使用し、名前/値ペアとして指定できます(TIME_PERIOD=7など)

使用例:

hwf:dynamicTaskAssign(“LEAST_BUSY","jcooper,jstein,mtwain","user","user","true","ErrorAssignee")

hwf:dynamicTaskAssign(“MOST_PRODUCTIVE",task:task/task:payload/task:users,"user","user","false","OwnerUser","TIME_PERIOD=7")

hwf:dynamicTaskAssign(“LEAST_BUSY","DeveloperRole","application_role","group"):

12c リリース1 (12.1.3)より前は、XPath関数のwfDynamicUserAssignおよびwfDynamicGroupAssignを使用して動的割当てを実行できました。これらのXPath関数は、12cリリース1 (12.1.3)では非推奨です。引き続き使用は可能ですが、これらのXPath関数の既存の使用をすべて新しいdynamicTaskAssign関数に移行することをお薦めします。