ServiceNow開発部ブログ第3回目です。
Notificationで使用可能な宛先について調べました。
①Event起動でParameterを宛先にする際、設定可能な内容
以下3つが使用可能なようです。
・Userレコードのsys_id
・Groupレコードのsys_id
・アドレスべた書き
以下サンプル
// Userレコードを宛先として指定
gs.eventQueue('event名', Notification対象のGlideRecord, sys_userのsys_id);
// Groupレコードを宛先として指定
gs.eventQueue('event名', Notification対象のGlideRecord, sys_user_groupのsys_id);
// アドレスべた書きで宛先指定
gs.eventQueue('event名', Notification対象のGlideRecord, "betagaki@address.com");
②Event起動でParameterを宛先にする際、複数宛先を設定する方法
配列を作成して、最終的に.toStringしたものを渡せばOKです。
以下サンプル
// 宛先ユーザーを配列に追加
var sendList = [];
var user = new GlideRecord("sys_user");
user.addQuery("department.name", "Sales"); user.query();
while(user.next()){
sendList.push(user.sys_id + "");
}
// 配列に入れたユーザー達を宛先としEvent起動
gs.eventQueue('event名', Notification対象のGlideRecord, sendList.toString());
ちなみに、①で記載した3つの内容が混在した配列でも問題なく送付できました。
③Groupを宛先に設定する際の挙動
Groupを宛先にする場合、
もしそのGroupレコードにメールアドレスが設定されていなければ、そのGroupの所属メンバー全員が宛先として自動設定されます。
もしそのGroupレコードにメールアドレスが設定されていれば、そのメールアドレスのみが宛先となり、所属メンバーのアドレス宛には送付されません。その場合、もし所属メンバー宛にも送付したければGroupレコードのInclude Membersカラムをtrueにすれば所属メンバーのアドレスも宛先に含める事が可能です。
④宛先としたUser/Groupレコードにメールアドレスが設定されていなかった際の挙動
宛先にしたUser/Groupの全てにメールアドレスが設定されていなかった場合、そのメール送付はスキップされます。
逆に言うとどれか1つの宛先にさえアドレス設定されていれば、仮に10件指定した宛先のうち9件がアドレスブランクであっても、存在する1件向けに送付はされる事となります。