Toru Inoue
ServiceNow Employee

※本記事は、ServiceNowのパートナー様より寄稿いただいたものをServiceNow社員が代理で投稿しています

 

===

皆さんこんにちは!

コムチュア株式会社です!

 

初投稿ということもあり、皆様のお役に立てればと気合を入れて書いていきたいと思います!

今回は「要求アイテムに関する承認依頼通知」についてご紹介します。

 

  1. 概要

カタログを使ったリクエスト機能、とっても便利ですよね。

カタログアイテムは簡単に作れますし、リクエストと承認プロセスも既存のものが優秀で使いやすい。

この機能を使った要件の中では、「複数のカタログアイテムを使い、リクエストがあった時や承認された時に、メール通知を申請者や承認者に送りたい」なんてことがよくあると思います。

とーっても便利な機能ですが、ひとたびいじりだすと1つのカタログとそれに付随する変数、リクエスト、承認、ビジネスルール、そしてメール通知…

設定するものも多くて正直大変…

本日はその中でも複雑なビジネスルールとメール通知の作成についてのコラムをご紹介します。

題しまして、「カタログアイテムが増えても大丈夫!意外と簡単な承認通知ルール作成」です!

  

  1. 実装説明

今回のやりたいことは以下の2点です。

・カタログアイテムからリクエストをした時に、承認者にメール通知を送信したい。

・メール通知の内容には要求アイテムの内容(価格など)も入れたい。

わりと要件としてよくありそうな内容です。

 

大まかな実装の流れとしては、

①ビジネスルールで、メールに要求アイテムの情報を渡してイベントを発報する
②イベント発生時起点のメール通知を作る

以上です!

なんだか簡単にできそうな気がしてきますね!

 

では早速説明に入っていきます。

※作業の前に、あらかじめイベントを作っておいてください

 

①ビジネスルールで、メールに要求アイテムの情報を渡してイベントを発報する

まずは複数承認のためにビジネスルールを改修します。

今回は要求アイテム(sc_req_item)に対する承認イベントなので、改修するビジネスルールは標準設定の「Approval Events (Task)」です。

 

①-1.もとからあるスクリプトを参考に、

レコードが要求アイテムテーブルのものであるかを判定するスクリプトを付け加えます。

(オレンジ枠で囲んである部分が追加箇所です)

find_real_file.png 

①-2.次に①-1に当てはまった時にイベントを発信するスクリプトを書き加えます。

こちらももとからあるスクリプトを参考にしています。

(イベントに関しては、メンテナンス性などを考慮し、プロパティに外出しで設定して

それを呼び出す形をとっています)

find_real_file.png

今回のポイント

ズバリ赤線で囲んであるところ、その中でも特に

var gr = new GlideRecord(table);

です!

これ、承認対象の要求アイテムレコードを指しています。

このレコードをメール通知に渡すと、メールの件名や本文を作る時に、

要求アイテムの情報を埋め込めるようになるのです!

また後ほど説明しますね。

 

ビジネスルール改修はこれでおしまいです。

元のビジネスルール自体の拡張性が高いため、ほとんど真似っ子で済みました。

簡単!

ちなみにビジネスルールに出てきたイベントとプロパティの設定はこんな感じです。

 find_real_file.png

 find_real_file.png

②イベント発生時起点のメール通知を作る

ではメール通知作成です。

承認依頼通知なので、普通なら承認ステータス(sysapproval_approver)テーブルに対して

作ることになりますが、

それだとカタログアイテムごとに通知を分けたい場合や、要求レコードの内容をメール本文に引用するには

設定が面倒ですよね。

 

なので今回は要求アイテムテーブルに通知を作っていきます。

 要求アイテムテーブルなら、ConditionsでItemが選べるので

find_real_file.png


拡張性を考えても非常に有用ですね。

受信者設定もとっても簡単です。

先ほどのビジネスルールの81行目でイベントの第1パラメータに承認者の情報を渡しているので、

Event parm 1 contains recipientにチェックを入れるだけでOK!

 

メール本文に要求アイテムの内容を記載するには、先ほどのポイントが効いてきます。

要求アイテムのレコードをメール通知に渡しているので、

必要な情報をSelect variablesから選べば引用が可能です!

find_real_file.png
 

find_real_file.png

これで全工程終了です!

ほぼコピー&ペーストのスクリプトで、

・要求アイテムの内容をメール本文に引用できる

・どれだけカタログアイテムが増えても通知修正が簡単

なシステムができましたね!!

 

  1. メリットと事例紹介

これを知っていると私たちエンジニア目線では、こんな時に楽!

承認に関わる通知を作りたい時

今回は要求アイテムについてお話ししましたが、

2.実装説明で説明した手順を用いることで、

タスクテーブルを拡張した他のテーブルに対しての承認通知作成も簡単になります。

カタログアイテムが増えた時

要求アイテムの情報はイベント発報時にメール通知に渡すので

通知のConditionsでitemを選ぶだけで、

カタログアイテムごとのメール通知を作ることができます。

 

また、これをやっておくとお客様目線ではこんなメリットが!

・カスタマイズ不要で、設定ベースで拡張できる!

お客様自身で運用していくと、カタログアイテムの追加は必ず発生するでしょう。

この実装はお客様自身による開発が不要になり、設定ベースでメール通知を行えるようになります。

 

他にもCSMのセルフレジストレーションや、

ITSMの変更管理などでも応用ができます。

ぜひいろいろ拡張してみてください!

 

4.終わりに

いかがでしたでしょうか?

拙い記事ではありますが、少しでもこの記事をご覧いただいた方の参考になれば幸いです。

ここまでお付き合いいただきありがとうございました!