ServiceNow SLA定義の続編です。
■SLA Flowについて
Flow設定では、例えばSLAの経過率によりイベントを作成することが可能です。
ServiceNowが標準で用意したDefault SLA Flowにおいてもイベント作成により通知を実行しています。
※イベントの作成が出来ることから、通知以外にもイベントをトリガーとしたアクションが実装可能となります。
■今回のポイント
以下を確認していきます。文字多めなのでつまらないかもしれませんが、ご了承ください。
・ServiceNow標準Flow:Default SLA Flowより、SLA経過に伴うイベントをどのように作成しているか。
・イベントをトリガーとする通知設定をどのように設定しているか。
・標準設定の問題(SLA違反時)と、修正方法について。
■Default SLA Flow
ServiceNowより提供されるドキュメントのリンクは以下となります。
ServiceNow Docs
https://docs.servicenow.com/en-US/bundle/utah-it-service-management/page/product/service-level-management/concept/flows-for-sla.html
■ServiceNow標準Flow:Default SLA Flowを開きます。
Flow Designer
以下の画面よりFlow Designerを開きます。
■設定内容の確認
Default SLA FlowではSLA経過率が50%,75%,SLA違反時の3パターンにおいてイベントを作成します。
順にみていきます。
●実行内容1
Look Up Task SLA Recordにより、対象のレコード条件を指定します。
ここではSys IDがTrigger - SLA TASKが実行されたTASK SLA RecordのSysidとマッチさせています。
●実行内容2
Create Event Recordによりイベントを作成しています。
作成条件は以下となります。
Action:Create Record
Table:Event(sysevent)
Instance:Lookup Up Record→Task SLA Record ※対象レコードです。
Name:sla.warning.parm ※イベント名
Parm1:Lookup Up Record→Task SLA Record→Task→Assign to ※アサイン先フィールドを取得
Table:task_sla
ここでのポイントはParm1に指定する情報です。
テーブルを見るとわかりますが、task_slaテーブルのtaskフィールドに対象のチケット(インシデントや変更管理等)が含まれるので、アサイン先を送信先としたい場合は上記の条件のようにTask→Assign toとなります。
●通知設定
作成されたイベントにより、実行される通知設定を確認します。
メニュー:Notificationよりリストを開き以下画像の通りに条件指定してください。
SLA経過率50%の際には以下の通知設定が実行されます。
"SLA warning Parm"
- 確認ポイントは以下です。
When to Send > Send When がEvent is Firedであること
When to Send > Event Name がsla.warning.parmであること
※Flow > Create Event RecordのNameと同様であること
Who will receive > Event parm 1 contains recipientにチェックが入っていること
※Parm1は何を指定しましたか?
各Task SLAテーブルのTaskフィールドに格納されているテーブル(インシデントや変更管理、タスク等)のアサイン先を指定していました。つまり、この通知の宛先はSLA経過率50%を超過したチケットの担当者となります。
※75%はTRIGGERが異なるのみですので、省略します。
20230807_更新
■SLA違反時
SLA Flow
ActionsのNo9-13が該当します。
Has BreachedフィールドがTrueの条件を満たした場合に実行されます。
●実行内容1:No10
Look Up Task SLA Recordにより、対象のレコード条件を指定します。
ここではSys IDがTrigger - SLA TASKが実行されたTASK SLA RecordのSysidとマッチさせています。
●実行内容2:No11
Create Event Recordによりイベントを作成しています。
作成条件は以下となります。
Action:Create Record
Table:Event(sysevent)
Instance:Lookup Up Record→Task SLA Record ※対象レコードです。
Name:sla.warning.breach.parm ※イベント名
Parm1:Lookup Up Record→Task SLA Record→Task→Assign to ※アサイン先フィールドを取得
Table:task_sla
変数:Parm1に格納する情報はSLA経過:50,75の時と同様です。
変更されているのはイベント名がSLA違反時のものに変更されています。
●実行内容3:No12
Condition Label:Assigned To is different to Manager of Assigned To
条件により、担当者と担当者のマネージャ情報が異なることを確認しています。
●実行内容4:No13
Create Event Recordによりイベントを作成しています。
作成条件は以下となります。
Action:Create Record
Table:Event(sysevent)
Instance:Lookup Up Record→Task SLA Record ※対象レコードです。
Name:sla.warning.breach.parm ※イベント名
Parm1:Lookup Up Record→Task SLA Record→Task→Assign to→Manager ※アサイン先のマネージャ情報を取得
Table:task_sla
SLA違反時の通知設定
SLA違反時の通知設定は"SLA breached Parm"です。
通知内:Event name:sla.warning.breach.parmとなり、Flowで作成するRecordのイベント名と同じになります。
問題
実行内容4のNo13におけるCreate Event Recordには不具合があります。
原因はマネージャ情報をParm1に取得失敗するためです。
→Utahバージョンで動作確認を実施しましたが、Parm1の取得に失敗するため宛先である"Event parm 1 contains recipient"に値が入らず、通知自体が実行されません。
解決方法
以下の手順で修正可能です。
① Eventを新規登録します。
② Default SLA FlowNo13のName(イベント名)を①で登録した値にします。
③ 通知を新規作成します。(この際、イベント名を②で変更した値とします)
④Who will receiveを修正し、宛先情報を指定します。
ドット連結により、Task → Assigned to → Managerと指定してください。
以上が問題と解決方法となります。
記載事項にご不明事項があればコメントください。
引き続き記事を更新していきますので、よろしくお願い致します。