Version: London
やること
ServiceNowでレコードがinsert/updateされたらメールを送信します
Notificationの追加
ServiceNowではIncidentのAssign toに設定されたUserのメールアドレスにメールを送信するといった機能がデフォルトで設定されているようですが今回は何も継承していない自作のテーブルで試します自分はaaaaaというテーブルを作っているのでFilter Navigatorにaaaと入力してメニューを絞り込みます
aaaaaのレコード一覧(リスト)が表示されたらリストのヘッダーの辺りで右クリックしてConfigure - Notificationsを選択します
Notification(通知)の一覧が表示されます[New]をクリックして
新規作成画面に遷移します
Nameに適当な値を入力して
When to sendのタブでInsertとUpdateを選択して
Who will receiveのタブで錠前のアイコンをクリックして編集可能にしてメールのアイコンが横にある入力項目で適当なメールアドレスを入力してからメールのアイコンをクリックして
送信先を追加します
メールアドレスを設定済みのユーザに送信したい場合には虫眼鏡アイコンでユーザを検索/設定することでメールの送信先に設定できるようですメールの送信先は複数設定することも可能なようです
What it will containのタブでメールのSubject(件名)やBody(本文)を設定しますSubjectに適当な値を入力して
Message HTMLに適当な値を入力します
固定の文字列でもいいのですが画面右の[+]Fieldsをクリックして展開して
展開された項目をクリックすることでテーブルの値を動的に設定することが出来ますこの値は本文だけではなくSubjectにも設定出来るようです
気が済むまで本文を設定して
[Preview Notification]をクリックしてメール本文を確認することが出来ます
[Submit]/[Update]をクリックしてNotificationを保存します保存されたNotificationを確認することが出来ます
メール送信の確認
Notificationを追加したテーブルで値を更新してから[System Mailboxes] - [▼Outbound] -[Outbox]/[Send]辺りでNotificationでメールが送信されたことが確認出来ます
該当のNotificationを選択して
Preview HTML Bodyで送信されたメールの本文を確認出来ました
メールの送信(Outbound Email Configuration)設定
外部にメールを送信する設定はデフォルトでは無効になっています有効にするには[System Properties] - [Email Properties]のOutbound Email ConfigurationのEmail sending enabledをtrueにします
aaa.comやtest.comは実在ドメインなのでメールを送信しない方がいいと思います
#カスタマイズ
NotificationにはEmail templateというものが設定されていて条件によって異なるものを選択させて宛先や本文を変更するといったカスタマイズも可能そうです
任意のタイミングで送信する方法
レコードのinsert/updateではなく任意のタイミングで送信することも可能です その場合はEventを使います こちらに書いています リンク先はScheduled jobから起動する内容ですがUI Actionなどで同様のScriptを記述すると同じように起動することが出来ます