7.5 承認動作の宛先の指定

承認動作の宛先を指定するには、[宛先]プロパティに有効な式を入力する必要があります。動作の承認に必要な最終承認数は、[宛先]プロパティと[承認者タイプ]プロパティとの関係で決まります。

メモ:承認動作の[宛先]プロパティで指定した式の評価が、存在しないDNになった場合(式が間違ってハードコードされた場合、間違って計算された場合、ユーザの選択で間違って送信された場合など)、ワークフローが実際には滞っていても、ワークフローが正常に処理していないことを示すメッセージは表示されません。アプリケーションサーバコンソールには標準の転送メッセージが表示され、コメントとフロー履歴には標準の「割り当てられた」メッセージが表示されます。この問題を回避するには、次のベストプラクティスに従うことをお勧めします。

  1. 承認動作の前で条件動作を使用し、条件動作で宛先を検証します。

  2. 宛先は条件動作で検証した後でも削除できるので、タイムアウト間隔と、ワークフローがタイムアウトした場合に必要なアクションを実行するリンクとを、承認動作に対して指定する必要があります。

7.5.1 有効な宛先式

宛先式(データ抽象化層エンティティを返す式を含む)は、ランタイム時に次のいずれかを解決される必要があります。

  • 有効な個々の宛先。ユーザDNの場合もグループDNの場合もあります。

  • 宛先の有効なリスト(たとえば、Javaベクトルオブジェクトを使用して作成)。複数のユーザDN、複数のグループDN、またはその両方を含めることができます。

最大承認数は、宛先数(ユーザDN数+グループDN数)に等しく、グループの各メンバーは含まれず、カウントされません。

メモ:グループDNは常に、[承認者タイプ]に関係なく、単記投票(グループのあるメンバーが動作を引き受けた場合、残りのメンバーはその動作を表示も要求もできなくなる)を与えるように処理されます。

次の表に、ECMA式ビルダを使用して作成できる有効な宛先式の例を示します。

表 7-4 宛先式の例

式のタイプ

個々のユーザDN

'cn=jdoe,ou=users,ou=mysample,o=myorg'

個々のグループDN

'cn=Accounting,ou=groups,ou=mysample,o=myorg'

DNのベクトル(ユーザDNまたはグループDNを含められる)

function DNVector() { v=new java.util.Vector(); v.add('CN=jdoe,' + USER_CONTAINER); v.add('CN=Accounting,' + GROUP_CONTAINER); v.add('CN=jsmith,' + USER_CONTAINER); v.add('CN=bsmith,' +  USER_CONTAINER); return v; }; DNVector();

この例では、宛先の総数は4です(個人3名と会計グループのユーザ1名)。

7.5.2 宛先と承認者タイプとの関係

ワークフローの動作と必要な肯定承認の総数は、宛先式で指定した宛先のタイプと選択した承認者タイプに応じて異なります。

標準承認者タイプ

次の表では、さまざまなタイプの宛先が標準承認者タイプで使用されるときのワークフロー動作について説明します。

表 7-5 標準承認者タイプのワークフロー動作

宛先の値

説明

個々のユーザDNまたはエンティティ

  • そのユーザだけが、タスクリストにある承認動作を参照できます。

  • 動作を承認済みとして完了するために必要な承認は1つだけです。

個々のグループDNまたはグループエンティティ

  • グループの各メンバーが、タスクリストにある動作を参照できます。

  • あるメンバーが動作を要求すると、この動作は他のメンバーのタスクリストから削除されます。

  • 動作を承認済みとして完了するために必要な承認は1つだけです。

複数のユーザDNまたはユーザエンティティ(ユーザの仮想グループ)

使用不可。

複数のグループDNまたはグループエンティティ(グループの仮想グループ)

使用不可。

ユーザとグループの混在(仮想グループの混在)

使用不可。

グループDNと代理処理

ワークフローがグループに割り当てられ、電子メール通知が承認に使用される場合、グループのメンバー全員に電子メールが送信されます。代理ユーザがグループのメンバーに割り当てられる場合、次のように処理されます。

  • 承認者が単一のユーザである場合、電子メール通知は両ユーザ(元のユーザと代理ユーザ)に送信されます。

  • 承認者がグループDNであり、グループ内のいずれかのユーザに代理ユーザが割り当てられる場合、代理であるユーザには、新しい要求がタスクリストに入っても電子メール通知は送信されません。

    代理ユーザに電子メールで通知する場合は、承認タスクをグループのメンバーに割り当て、承認者タイプを[グループ承認者]に設定します。たとえば、以下に対して承認動作を割り当てるとします。

    IDVault.get('cn=Marketing,ou=groups,ou=idmsample,o=novell' , 'group','Member') 
    

    承認タイプをグループに設定すると、メンバーに代理が割り当てられている場合、各メンバーの代理に通知が送信されます。グループのメンバー1名が承認タスクを要求し、実行できます。これはグループDNに直接割り当てた場合と同じ動作です。

グループ承認者タイプ

次の表では、さまざまなタイプの宛先がグループ承認者タイプで使用されるときのワークフロー動作について説明します。

表 7-6 グループ承認者タイプのワークフロー動作

宛先の値

説明

個々のユーザDNまたはエンティティ

  • そのユーザだけが、タスクリストにある承認動作を参照できます。

  • 動作を承認済みとして完了するために必要な承認は1つだけです。

個々のグループDNまたはグループエンティティ

  • グループの各メンバーが、タスクリストにある動作を参照できます。

  • あるメンバーが動作を要求すると、この動作は他のメンバーのタスクリストから削除されます。

  • 動作を承認済みとして完了するために必要な承認は1つだけです。

複数のユーザDNまたはユーザエンティティ(ユーザの仮想グループ)

  • 仮想グループの各ユーザが、タスクリストにある動作を参照できます。

  • 仮想グループのあるユーザが動作を要求すると、この動作は他のユーザのタスクリストから削除されます。

  • 動作を承認済みとして完了するために必要な承認は1つだけです。

複数のグループDNまたはグループエンティティ(グループの仮想グループ)

  • 各グループの各メンバーが、タスクリストにある動作を参照できます。

  • 仮想グループのあるユーザが動作を要求すると、この動作はすべてのグループの他のユーザのタスクリストから削除されます。

  • 動作を承認済みとして完了するために必要な承認は1つだけです。

ユーザとグループの混在(仮想グループの混在)

  • 混在した仮想グループの各ユーザおよび各グループのメンバーが、タスクリストにある動作を参照できます。

  • 仮想グループのあるメンバーが動作を要求すると、この動作は他のメンバーのタスクリストから削除されます。

  • 動作を承認済みとして完了するために必要な承認は1つだけです。

複数承認者タイプ

次の表では、さまざまなタイプの宛先が複数承認者タイプで使用されるときのワークフロー動作について説明します。

表 7-7 複数承認者タイプのワークフロー動作

宛先の値

説明

個々のユーザDNまたはエンティティ

  • そのユーザだけが、タスクリストにある動作を参照できます。

  • 動作を承認済みとして完了するために必要な承認は1つだけです。

個々のグループDNまたはグループエンティティ

  • グループの各メンバーが、タスクリストにある動作を参照できます。

  • あるメンバーが動作を要求すると、この動作は他のメンバーのタスクリストから削除されます。

  • 動作を承認済みとして完了するために必要な承認は1つだけです。

複数のユーザDNまたはユーザエンティティ(ユーザの仮想グループ)

  • 仮想グループの各ユーザが、タスクリストにある動作を参照できます。

  • 各ユーザが動作を要求できます。

  • 動作を承認済みとして完了するには、各ユーザの承認が必要です。

  • 1つでも却下があれば、動作は却下済みとして完了します。

複数のグループDNまたはグループエンティティ(グループの仮想グループ)

  • 各グループの各メンバーが、タスクリストにある動作を参照できます。

  • グループのあるメンバーが動作を要求すると、この動作はそのグループに所属する他のメンバーのタスクリストから削除されます。

  • 動作を承認済みとして完了するには、各グループが1つの承認を与える必要があります。

  • 1つでも却下があれば、動作は却下済みとして完了します。

ユーザとグループの混在(仮想グループの混在)

  • 混在した仮想グループの各ユーザおよび各グループの各メンバーが、タスクリストにある動作を参照できます。

  • 各ユーザが動作を要求でき、各グループのメンバー1名が動作を要求できます(グループの他のメンバーにはそのタスクが表示されなくなります)。

  • 動作を承認済みとして完了するには、各ユーザおよび各グループのメンバー1名が承認する必要があります。

  • 1つでも却下があれば、動作は却下済みとして完了します。

定数承認者タイプ

次の表では、さまざまなタイプの宛先が定数承認者タイプで使用されるときのワークフロー動作について説明します。

表 7-8 定数承認者タイプのワークフロー動作

宛先の値

説明

個々のユーザDNまたはエンティティ

  • そのユーザだけが、タスクリストにある動作を参照できます。

  • 動作を承認済みとして完了するために必要な承認は1つだけです。

個々のグループDNまたはグループエンティティ

  • グループの各メンバーが、タスクリストにある動作を参照できます。

  • あるメンバーが動作を要求すると、この動作は他のメンバーのタスクリストから削除されます。

  • 動作を承認済みとして完了するために必要な承認は1つだけです。

複数のユーザDNまたはユーザエンティティ(ユーザの仮想グループ)

  • 仮想グループの各ユーザが、タスクリストにある動作を参照できます。

  • 仮想グループのユーザ全員が同時に動作を要求できます。

  • 動作を承認済みとして完了するには、絶対数または指定した割合の宛先が承認する必要があります。

複数のグループDNまたはグループエンティティ(グループの仮想グループ)

  • 各グループの各メンバーが、タスクリストにある動作を参照できます。

  • 各グループのメンバー1名がタスクを要求できます(グループの他のメンバーにはそのタスクが表示されなくなります)。

  • 動作を承認済みとして完了するには、絶対数または指定した割合の宛先が承認する必要があります。

ユーザとグループの混在(仮想グループの混在)

  • 混在した仮想グループの各ユーザおよび各グループの各メンバーが、タスクリストにある動作を参照できます。

  • 各ユーザが動作を要求でき、各グループのメンバー1名が動作を要求できます(グループの他のメンバーにはそのタスクが表示されなくなります)。

  • 動作を承認済みとして完了するには、絶対数または指定した割合の宛先が承認する必要があります。