ロールに基づくタスク割り当て

User サービスを使用して人間中心のプロセスを作成する場合、プロセス内におけるユーザーのロールに基づいてタスクを割り当てると役立つことがよくあります。通常、さまざまなユーザーがさまざまなプロセスのインスタンスに関わっているため、この方法は個々のユーザーにタスクを割り当てるよりも柔軟性があります。

このクイックスタートでは、Foundation に含まれている LDAP サービスの使用について説明します。また、フォームワークフローを所有している場合に使用できる User サービスについて説明します。

通常、プロセスにおけるロールは会社での役割に対応しています。ユーザーレコードが会社の組織構造に従って構成されている場合、またはレコード自体に組織の情報が含まれる場合は、LDAP サーバー内の情報を活用してタスクをユーザーに割り当てることができます。

例えば、社内の購入要求プロセスでは、購入を完了させるにはユーザーの管理者が購入要求を承認する必要があります。管理者のロールは一定です。ただし、購入を要求するユーザーが自分の管理者を指定します。会社の LDAP サーバー内のユーザーレコードにはユーザーの管理者の識別情報が含まれます。LDAP サーバーにクエリーを実行し、購入要求を送信したユーザーの管理者を見つけることができます。

このビジネスプロセスを実装するプロセスダイアグラムは、LDAP サービスの「LDAP Query」操作を使用して LDAP サーバーに対してクエリーを実行できます。管理者の識別名を取得すると、購入要求の承認タスクを管理者に割り当てることができます。次の図に、LDAP クエリーとタスク割り当てを実行するプロセスダイアグラムの一部を示します。

「executeLookup」操作と「AssignTask」操作

次の図に、前述の例でプロセスが使用する LDAP サーバー内の情報の構造を示します。

uid= username 、ou= people 、o= company_name の形式で識別名(DN)が指定されたレコードには、個々の従業員に関する情報が含まれます。レコードには次の属性があります。

uid:
ユーザーの一意の識別情報

manager:
従業員の管理者の DN

前提条件

ロールに基づいてタスクを割り当てるには、通常、その他の情報(例えば、役職、所属部署、その両方)に基づいてユーザーの識別情報を取得します。

LDAP サービスを使用してクエリーを実行するには、デザイン時または実行時に次の情報を使用できる必要があります。

  • LDAP サーバー内の情報の編成方法。クエリーを実行するには、検索対象の LDAP スキーマの場所を指定する必要があります。

  • 特定の情報、およびその情報と LDAP リポジトリ内の要求された情報との関係。この情報を使用して、取得対象のデータを識別する検索フィルタを作成します。

  • 取得した情報を格納する string 値または list 値(取得する LDAP レコード情報が 1 つか複数かによって異なる)。

この例のプロセスでは、購入を要求したユーザーのユーザー ID をクエリーで使用し、そのユーザーの管理者を見つけます。

設定

LDAP クエリー操作を設定するには、検索する LDAP スキーマの範囲、検索する LDAP オブジェクトのタイプ、および使用する検索フィルタを識別する必要があります。

LDAP Query Options Editor の「Query」タブは、購入要求を送信するユーザーを表すレコードを検索するように設定されます。

BaseDN:
o=company_name (ディレクトリの最上位レベル)

検索コンテキスト:
ou=people, o=company_name (検索対象のレコードを含むディレクトリ内のレベル)

Search Filter:
(uid={$/process_data/@creator_id$}) (この例ではユーザーが購入要求を送信したときにプロセスが呼び出され、ユーザー ID が /process_data/creator_id に保存される)

Search Scope:「ONE LEVEL」(検索コンテキストの値以下のレコード)。
LDAP Query Options Editor の「Output」タブを使用して、返されたレコードに含まれている manager 属性の値を、 stringVar という string 変数に保存すように指定します。
値:
manager

場所:
stringVar

実行時にクエリーが処理されると、 stringVar 変数にはユーザーの管理者の DN が uid= user id , ou=people, o=company_name の形式で設定されます。「Assign Task」操作が生成するタスクは、この DN が表すユーザーに割り当てられる必要があります。

「Assign Task」操作の Select Initial User プロパティに、管理者の DN の user id 部分(ユーザー ID)が割り当てられます。 stringVar 変数に解決する XPath 式が使用されます。 substring-after 関数と substring-before 関数を使用して、 user id 部分を分離します。

substring-after(substring-before(/process_data/@stringVar, ","),"uid=")

その他の考慮事項

このクイックスタートでは、プロセスの開始手順については説明しません。また、このクイックスタートは「LDAP Query」操作に重点を置いています。LDAP サービスには、クエリーの結果を XML 形式で保存する場合に使用できる「LDAP Query to XML」操作もあります。