0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ServiceNowにおける代理人機能の動作について

Last updated at Posted at 2025-01-29

代理承認

代理承認の実現

  • 代理承認の実現方法
    • レコードプロデューサ -> flow
    • if(approve) tmp table -> sys_user_delegate
  • 今回実行するケース
    1. 既にUserに承認レコードが配布されているとき、Delegated Userが代理人としてアサインされた場合
    2. Delegated Userが代理人期間にUserの承認レコードが配布されており、承認されないまま代理人期間が終了した場合
    3. Delegated Userが代理人にアサインされたとき、既にWFが開始されているが、Userに対するAsk for approvalは動いていない場合
    4. Delegated Userが代理人にアサインされている時にWFが開始されたが、Ask for approvalが動作する際には代理人期間が終了している場合

事前準備

Flow の構築

今回は2段階の下記承認WFを作成し、2次承認者の'Abel Tuter'に代理承認機能を適用し進めていきます。

alt text

代理承認依頼

ServiceNowでは代理承認に関するテーブルが'sys_user_delegate'として用意されています。
今回はUser:Abel Tuter(以後A), Delegated User:Tomoki Gozu(以後D)として下記操作を進めていきます。

alt text

代理人機能の動き

OOTBでは代理人として他ユーザを設定すると、代理人のNotificationsに通知が来るようになっています。

alt text
alt text

これらの前提のもと、下記4つのケースの場合に代理人機能がどのように動作するのかを実画面で紹介していきます。

1. 既にAに承認レコードが配布されているとき、Dが代理人としてアサインされた場合

まずはユースケースの1つ目として、代理人レコード作成前にAにアサインされている承認レコードの動きを見ていきます。
DLGTWF0001010としてレコードを作成し、1人目の承認を実行していきます。

alt text

ケースの条件に合う形式でレコードを準備したら、承認レコードが配布された時間(2025-01-28 21:41:05)移行開始の代理人レコードを作成します。

alt text

代理人レコードを作成した上で、DとしてDLGTWF0001010のレコードを確認していきます。
すると、1つ前に実行したDavid Looの承認レコードは編集できませんが、代理人設定を行ったAbel Tuterの承認レコードは編集できるため、1のケースは代理人機能が生きている状態ということが確認できます。

alt text
alt text
alt text

2. Dが代理人期間にAの承認レコードが配布されており、承認されないまま代理人期間が終了した場合

ケース1で利用した代理人レコードを残したまま、同様にDLGTWFレコードを作成し、1人目の承認まで実行します。

alt text

DLGTWFレコードの準備が完了したら、ケース1で作成した代理人レコードを削除し、DとしてDLGTWF0001012を開きます。
レコードを確認すると、ケース1では編集できたAbel Tuterの承認レコードが編集できないように変更されていることがわかります。

alt text
alt text

3. Dが代理人にアサインされたとき、既にWFが開始されているが、Aに対するAsk for approvalは動いていない場合

代理人レコードが作成されていないことを確認し、DLGTWFレコードを作成します。
1人目の承認者へレコードが配布されたことを確認し、新たな代理人レコードを作成します。

alt text
alt text

1人目の承認を実施し、Abel Tuterに来ている承認レコードを確認すると代理人機能が動作していることがわかります。

alt text

4. Dが代理人にアサインされている時にWFが開始されたが、Ask for approvalが動作する際には代理人期間が終了している場合

最後にケース3のまま新しいDLGTWFレコードを作成し、ケース3で作成した代理人レコードを削除します。
代理人レコードの削除後に、Abel Tuterに承認レコードが配布されるまでWFを進めます。

レコードの見た目上ケース2とほとんど変わりませんが、代理人機能は動作せず対象者のみ編集できるようになっていることがわかるかと思います。

alt text

まとめ

ここまで、WFの起動時を場合分けするかたちで代理人機能の動作を紹介していきました。

ServiceNowにおける代理人機能はWF起動のタイミングではなく、設定された機関によって代理人行為を履行できることがわかったかと思います。

ただ、あくまで下記'サービスの委任'に記載されている内容をServiceNowインスタンス上で実行した内容になるため、より詳細な内容についてはご自身の環境や開発用インスタンスで試すことをお勧めします。

公式Document: サービスの委任

公式Document: 詳細な委任

実装が必要なものメモ

  • User: Abel Tuter
  • Delegated User: Any user (without admin role)
  • Clean up for 'sys_user_delegate' table for each case
  • WF
    • ask for approval to X user whoever
    • ask for approval to Abel Tuter
  • Set Up Due Date for Delegation
  • Workspace
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?