ダイナミックロール(動的な役割の割り当て)を試してみよう

This article is about the result of validation of Domino Volt dynamic roles.

皆さん、こんにちは。
今日、8月3日はハチミツの日だそうです。ハチミツをかけたパンケーキが食べたくなります。おなか減ってますねw


今日もDomino Volt 1.0.1の新機能の検証です。
1.0.0でもワークフローは実装できましたが、誰でも承認できてしまうか、もしくはアプリケーション作成時に承認者を決めておくというちょっと情けない感じでしたが、今回のバージョンアップにより、承認者を動的に変更できるようになりました。

これで一気にワークフローアプリケーションが動かしたくなりましたね。

では、一体どのように設定するのでしょうか?
方法はいくつかあると考えられますので、そのうちの一つをサンプルとして見ていきます。

1.サンプルアプリケーション
今回のサンプルアプリケーションは交通費申請としました。
交通費申請のサンプルアプリケーション
交通費申請のサンプルアプリケーション

承認者と経理担当者を選択して、ワークフローをまわすと、それぞれのユーザーだけが処理をできるようにしました。
※ユーザーの選択部分については今回の趣旨から外れるので解説はしません。


2.ステージタブ
まずはワークフローを決定するため、ステージの設定を行います。
「発行済み」ステージの横にある歯車アイコンをクリックします。すると、「ステージ」プロパティの編集ダイアログが表示されるので、タイトルを「上長確認中」に変更します。
ステージプロパティの編集
ステージプロパティの編集
「拡張」タブを開き、「更新」ボタンの横の歯車アイコンをクリックして、タイトルを「承認」に変更します。「キャンセル」ボタンの横の削除アイコンをクリックして削除します。
さらに、「承認」アイコンの横にある追加アイコンをクリックして送信ボタンを追加します。送信ボタンのタイトルは「否認」にします。
拡張タブのアクション設定
拡張タブのアクション設定

※アクションごとのサービスはここでは設定しません。あとで設定します。

次に「上長確認中」ステージを選択した状態で、画面左部にある「+」ボタンをクリックします。
ステージの追加
ステージの追加


新しくステージが作成されるので、タイトルを「経理処理中」にしてアクションは「終了」だけにします。
経理処理中ステージ
経理処理中ステージ


これでワークフローのステージ設定ができました。


3.アクセスタブ
今度は、「アクセス」タブの設定を行います。
「1.役割の定義」をクリックして、このアプリケーションで利用する役割を決めます。
「管理者」「イニシエーター」「レコード所有者」がデフォルトで設定されるもので、これらはこのままにしておきます。
「+」のリンクをクリックすると新規の役割を作成できるので、「上長」と「経理担当者」を作成します。ここの名前は任意なので好きな名前をつけてください(ある程度の規則はあると思うのであまり変なものはつけない方が良いでしょう)。
役割の追加
役割の追加

「2.ユーザーの割り当て」では役割に対するメンバーを設定するのですが、今回はアプリケーションの中で動的に設定するので、デフォルトのまま(メンバーなし)にしておきます。
ユーザーの割り当て
ユーザーの割り当て

「3.ステージ設定」で各役割のユーザーが何をできるのかを設定します。
この設定はステージごとに行います。

開始ステージはデフォルトのままにしておきます。
先ほど作成した「上長確認中」ステージを選択します。
このステージでは、「上長」の役割のユーザーだけが文書を更新できるようにします。
※管理者の役割のユーザーはメンテナンス用に読み取り/更新/削除ができるようにしておく必要があります。
上長確認中ステージの設定
上長確認中ステージの設定


「経理処理中」ステージを選択して設定を行います。
ここでは「経理担当者」の役割のユーザーだけが文書を更新できるようにしておきます。
経理処理中の設定
経理処理中の設定


4.動的な役割の割り当て
再び、ステージタブに移動します。
アプリケーションのステージが決まり、それに対する役割も作成したので、ステージが変わるときに役割のユーザーを変更できるようにします。
つまり、役割のユーザーを動的に設定するということになります。

これは、ステージのアクションで行います。
動的に役割の割り当て方法は基本的に同じなので、ここでは「申請」アクション実行時に「上長」を変更する方法を見ていきます。

ステージタブに変更したら、「開始」ステージを選択します。
「送信」アクションがあるので、横の歯車アイコンをクリックします。
タイトルは「申請」に変更して、「アクティビティーがありません。作成するには、ここをクリックしてください。」と書かれている箇所をクリックします。
アクティビティーの追加
アクティビティーの追加

「メールの送信」「サービスの呼び出し」「ユーザーの割り当て(サービス呼び出しによる)」の選択肢が表示されるので、「ユーザーの割り当て(サービス呼び出しによる)」をクリックします。
サービスの設定ダイアログが表示されるので、
で紹介したディレクトリサービスのユーザーの検索を設定します。
ユーザーの検索
ユーザーの検索

入力タブでは、画面上の項目とキーワードを関連付けます。
入力タブ
入力タブ

出力タブでは検索されたユーザーを役割のユーザーに関連付けます。
これにより、次のステージで文書を操作できるユーザーが決まります。
出力タブ
出力タブ

設定できたら[OK]をクリックして確定します。
上長確認中ステージの承認アクションでは、経理担当者を設定するようにします。

さらに、メール送信アクティビティーを追加するとNotes/Dominoのワークフローアプリケーションのようになります。


5.実行結果
実際の実行結果を見てみましょう。
申請時の画面です。上長に「Hisao Saitou」経理担当者に「Katsumi Kobayashi」を設定しています。
この状態で[申請]をクリックして申請を行います。
申請時の画面
申請時の画面

Hisao Saitouでログインしてビューを表示してみます。
上長でログインしてビューを表示
上長でログインしてビューを表示

文書が作成されているのがわかります。ステージも「上長確認中」になっているので、Hisao Saitouがアクションを実行できるはずです。
この文書を開くとこうなります。
上長はアクションを実行できる
上長はアクションを実行できる

ちなみに経理担当者のKatsumi Kobayashiがこの状態でログインして文書を開くとこうなります。
アクションが表示されない
アクションが表示されない

確かにアクションが表示されていませんので、文書の更新が行えません。
きちんとワークフローアプリケーションとして機能しているようです。


いかがでしょうか?
設定する項目は多いですが、コツさえつかんでしまえばそんなに難しくはないと思います。

今回は試していませんが、役割のユーザーにはグループも設定できそうです。
そうなってくると承認者が不在の場合でも代わりの人が承認できるなど実務に沿ったアプリケーションを実装することもできそうですね。

このあたりは皆さんでやってみてください。
そして、是非それらをフィードバックしてください。





それでは今日はこの辺で・・・


Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
HCL Ambassadorの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

コメント