🚀
【Servicenow】スクリプトでなりすまし/代理操作を行う方法
はじめに
GlideRecordSecureやCanReadを手軽に確認できる方法を模索していた際に、スクリプトでできないかと模索していました。模索した結果や試行錯誤の結果を書いていきます。
スクリプト
代理操作するだけであれば以下のスクリプトで実行できます。
var userid = 'user_sys_id';
var og = gs.getSession().impersonate(userid); //なりすまし開始
gs.getSession().impersonate(og); //なりすまし終了
注意点
なりすましが終了する前にスクリプトエラーが発生した場合、セッションのなりすましが終了しません。そのため、なりすましをスクリプトで行う際には必ずtrycatch等を使用し、エラー後も処理が実行できるようにする必要があります。
var userid = 'user_sys_id';
try {
var og = gs.getSession().impersonate(userid); //なりすまし開始
throw new Error('エラー');
gs.getSession().impersonate(og); //なりすまし終了
} catch (error) {
gs.info(error);
gs.getSession().impersonate(og); //なりすまし終了
}
Discussion