動的タスク割当て
ユーザー、グループおよびアプリケーション・ロールを動的に割り当てるには、次の方法があります。
-
タスク割当てパターンを使用します。このパターンを使用すると、次の操作を実行できます。
-
簡単に参加者が手動でタスクを申請できるようにします。これはデフォルトの動作です。タスク割当てパターンは適用されません。
-
参加者タイプが「単一」または「FYI」のいずれかの場合は、タスク割当てパターンを割り当てて、リクエストされたタイプの単一の割当て先を参加者のすべての割当て先候補から選択できます。
たとえば、割当て先候補がユーザー
jcooper
、グループLoanAgent
およびアプリケーション・ロールDevelopers
で構成されているとします。さらに、リクエストされたタイプがuser
であるとします。このタスク割当てパターンを適用すると、単一のユーザーが、ユーザーjcooper
、グループLoanAgent
のすべてのメンバー、およびアプリケーション・ロールDevelopers
を付与されているすべてのユーザーから選択されます。 -
参加者タイプが「パラレル」または「シリアル」の場合は、タスク割当てパターンを割り当てて、リクエストされたタイプの単一の割当て先を参加者のそれぞれの割当て先候補から選択できます。
たとえば、割当て先候補がユーザー
jcooper
、グループLoanAgent
およびアプリケーション・ロールDevelopers
で構成されているとします。さらに、リクエストされたタイプがuser
であるとします。このタスク割当てパターンを適用すると、ユーザーjcooper
、グループLoanAgent
内の1人のユーザー、およびアプリケーション・ロールDevelopers
を付与されている1人のユーザーが選択されます。
-
-
XPath式を使用します。これらの式を使用すると、参加者タイプに含まれていないユーザーに対する割当てを動的に決定できます。この場合、割当て先候補のリストを作成して、そのうちの1人がタスクを申請する必要があります。
たとえば、ペイロード変数で指定されたタスク承認者の動的リストを作成するというビジネス要件を設定できます。このXPath式は、0(ゼロ)個以上のXMLノードに解決できます。各ノード値には、単一のユーザー、グループまたはアプリケーション・ロールか、デリミタで区切られたユーザー、グループまたはアプリケーション・ロールの文字列を指定できます。割当て先のデリミタ付き文字列のデフォルト・デリミタはカンマ(,)です。
たとえば、タスクに、タスク承認者が格納されている
po
という名前のペイロード・メッセージ属性がある場合は、次のXPath式を使用できます。/task:task/task:payload/po:purchaseOrder/po:approvers
ids:getManager('jstein', 'jazn.com')
この式は、
jstein
のマネージャを返します。ids:getReportees('jstein', 2, 'jazn.com')
この式は、
jstein
の2レベルまでの報告先すべてを返します。ids:getUsersInGroup('LoanAgentGroup', false, 'jazn.com')
この式は、グループ
LoanAgentGroup
のすべての直接ユーザーと間接ユーザーを返します。
両方のオプションを同時に使用できます(たとえば、XPath式を使用してグループを動的に選択してから、タスク割当てパターンを適用して、そのグループからユーザーを動的に選択できます)。