🚀
【Servicenow】スクリプトでなりすまし/代理操作を行う方法
はじめに
GlideRecordSecureやCanReadを簡単に確認する方法を探している中で、スクリプトを活用できないかと考えました。ここでは、その模索と試行錯誤の過程について記します。
スクリプト
代理操作するだけであれば以下のスクリプトで実行できます。
var userid = 'user_sys_id';
var og = gs.getSession().impersonate(userid); //なりすまし開始
gs.getSession().impersonate(og); //なりすまし終了
注意点
スクリプトエラーが発生すると、なりすましセッションが終了しない場合があります。そのため、スクリプトでなりすましを行う際は、必ず try-catch などのエラーハンドリングを使用し、エラー発生後も処理を続行できるようにする必要があります。
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