LoginSignup
2
4

More than 3 years have passed since last update.

ServiceNowでインシデントエントリーポイントを構成してみた

Posted at

メールによるインシデント起票

ServiceNowが受信したメールを処理し、インシデントレコードの作成または更新を行うよう、受信アクションの設定を追加してみます。

[System Policy]->[Email]->[Inbound Action]を選択し、[Create incident]受信アクションを開きます。
1.png

"Action"タブを確認すると、スクリプトコードが記述されております。
2.png

/// Note: current.opened_by is already set to the first UserID that matches the From: email address

current.caller_id = gs.getUserID();
current.comments = "received from: " + email.origemail + "\n\n" + email.body_text;
current.short_description = email.subject;

current.category = "request";
current.incident_state = IncidentState.NEW;
current.notify = 2;
current.contact_type = "email";

if (email.body.assign != undefined)
   current.assigned_to = email.body.assign;

if (email.importance != undefined) {
   if (email.importance.toLowerCase() == "high") {
        current.impact = 1;
        current.urgency = 1;
   }
}

current.insert();

メール受信時に新しく作成されるインシデントで、設定されるのは以下の10種類。
・Caller : ユーザリストから送信元E-mailアドレスとマッチングをかけて情報を取得
・Comments : メール本文を投入
・Short discription : Subjectを投入
・Category : "request"に指定
・State : "New"に指定
・Notify : 2
・Contact Type : "email"に指定
・Assigned to : 指定があれば投入
・Impact : highと指定があれば1
・Urgency : highと指定があれば1

メール本文でテンプレートが指定されている場合、作成するインシデントにもテンプレートを適応するよう、下記コードをcurrent.insert();の直前に追加する。

if (email.body.template != undefined)
   current.applyTemplate(email.body.template);

ServiceNow上からメールを送信して機能しているかを確認する。インスタンス名@service-now.comにメールを送信すればチケットが起票される。
※ developerインスタンスだとdev*****@service-now.comになっている。

自分が参加している研修ではdeveloperインスタンスではない特殊なインスタンスだったのでテストができなかった。何だよちゃんと準備してyhぬjみk、おl。

レコードプロデューサーの追加

これまでは、ServiceNowのインスタンス上にアカウントがあり、かつインシデントテーブルを閲覧・編集できる人のみインシデントレコードを作成または更新することができた。
そのような権限が無い人でもインシデントレコードの作成もしくは更新を行うことができるようにするには、レコードプロデューサーを利用する必要がある。
レコードプロデューサーを介して、ユーザがポータル側で情報を投入した情報をインシデントレコードの各フォームに投入する、そんなイメージです。

実際はインシデントレコードをサービスカタログとして公開し、ポータル側のレイアウト公開しなければならないのですが、ここではレコードプロデューサーの簡単な作り方として、既存のレコードプロデューサーを複製して編集する方法をまとめます。

[Service Catalog]->[Catalog Definitions]->[Record Producer]を選択し、[Create incident]という名前のレコードプロデューサーを開きます。
a.png
これは基本設定(いわゆるベースライン)の一部で、今回はあるデバイス固有のインシデントについてのレコードプロデューサーを別途作成するという要件で変更させます。

[Action]チェックボックスにある[Preview Items]をクリックすると、仮にサービスとして公開された場合、ポータル側で表示される事項(ワイヤーフレーム)が表示されます。
b.PNG

完成イメージはこんな感じです。
03.01.03 - Record Producer.png

早速[Copy]ボタンでコピーをして、NameとShort descriptionを"Report Issue with HHD Device"に変えてみます。"What it will contain"タブの[Description]フィールドにをIf you experience...を入れることで見出しを編集できます。

Item Affectedに関するワイヤーフレームを作成するには、下部"Variables"関連リストで[New]をクリックし必要な情報を入力します。
d.png
r.png
f.png
ここまで作成して[Submit]します。

レイアウト変更も"Variables"関連リストで[New]をクリックし必要な情報を入力します。
i.png
h.png
ここまで作成して[Submit]します。

"Variables"関連リストの[Order]列を編集します。
j.PNG

ここまで作成して[Preview Items]をクリックすると、目的のものに近づいてきました。
キャプチャ.PNG

同じように、"Variables"関連リストで[New]をクリックし、ラベルとチェックボックス2つを作成します。
1.PNG
2.PNG
3.PNG

あとContainer Startを指定しているので、Container Endも新規で作成します。(キャプチャは省略)最後に"Variables"関連リストの[Order]列も編集します。
5.PNG

[Preview Items]をクリックすると、イメージにマッチしたものが出来上がりました。
6.PNG

ここまではデザインの設定で、インシデントレコードに反映させるべき情報を指定する必要があります。今回は[Create incident]という名前のレコードプロデューサーの設定をそのまま利用します。

■ ワイヤーフレームから抜き取る情報
・Urgency --> Urgency
・Item Affected --> Configuration Item
・Please Describe the Issue below --> Short description (短縮)
・Please Describe the Issue below --> Description (短縮なし)
■ 自動的に投入されるべき情報
・Caller --> レコードプロデューサーを介して情報投入を行った人
・Contact Type --> Self-Service

[Try It]ボタンを押して、情報を投入してみます。
7.PNG

[Submit]すれば、インシデントレコードが作成された…のですが…
8.png
今回新たに作成したチェックボックスの情報を格納するフィールドがない…

レコードプロデューサーによって生成されたインシデントとして表示させることが可能とのことで、[incident Variable Formatter]を使用します。

フォームデザイナーを起動すべく、[Incident]->[Create Now]から[Configure]->[Form Design]を選択します。
a.png

Formattersにincident Variable Formatterがあるので、2列目に表示させるようにします。
b.png
Saveを忘れずに。

これで、先ほど起票したインシデントレコードの2列目に下記のような情報が格納されることを確認できます。
11.PNG

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4