ブログ

ServiceNow開発ブログ Notificationの宛先について

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件向けに送付はされる事となります。

弊社公式Qiitaへも同様の記事を投稿しております。

pagetop