1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ServiceNow】 Flow Designerを用いたフローの作成

Posted at

はじめに

ServiceNowのフローデザイナーを用いて、インシデント発生時のデモフローを作成してみました。

環境

  • 個人用開発インスタンス(PDI)
  • バージョン:Washington DC
  • 権限:admin

フローデザイナーとは

特徴

  • 低コストな開発:ノーコードで視覚的に自動処理フローを構築できる
  • サードパーティサービスとの統合: Integration Hub スポークを使用して他サービスとの接続が可能

ServiceNowにはフローデザイナーと似た自動処理機能としてビジネスルールという機能もあります。公式Docsによると、自動処理実装の推奨はフローデザイナーの様ですが、以下の場合はビジネスルールを使う必要があるようです。

  • ビジネスルールと共に自動処理を特定の順序で実行したい場合。
  • ロジックを同じスレッドでデータベースへの書き込みの直前または直後に実行する必要がある場合。
  • ロジックがスクリプトインクルードのみを呼び出す場合。

参考: ServiceNow 公式Docs Flow Designer

フローデザイナーの作成

Allの検索窓にFlow designerと入力すると「Process Automation」配下にFlow Designerがあるのでクリックします。
image.png

「New」より「Flow」を選択します。
Washington DCバージョンよりWorkflow Studioがリリースされているようです(2024年2月~)
以前のバージョンからUIが少々変更していたり新機能が追加されていますが、フローデザイナーについては大きく変更はありません。
image.png

Flow nameに任意の名前を入力します。
Run as 項目について、特に要件がなければ「System User」を選択してください。
フローを開始したユーザーを特定して何か処理を行いたい場合は「User who initiates session」を選択してください。
ここでは特定のユーザーを指定してフローを走らせない為、「System User」を選択します。
「Build Flow」をクリックしフローを作成します。
image.png

フロー構成要素

image.png

  1. TRIGGER:フローが走り出す条件設定。レコード起因、スケジュール起因、アプリケーション起因の3つを設定できます。
  2. ACTIONS:フローの中で具体的に行う動作を設定できます。
  3. DATA:アクション実行条件設定の際に、対象となるデータを指定できます。

デモフロー

今回実施した内容は以下です。
インシデントの緊急度によって通知先を変更する簡易的なフローとしています。

  • ユーザーからインシデント報告
  • Urgencyが「High」のインシデントはマネージャーに通知
  • Urgencyが「High以外(MidiumかLow)」のインシデントはヘルプデスク担当者に通知

TRIGGERの設定

フローが走り出す条件設定として以下の3つから設定できます。

  1. レコード起因:レコードが追加された場合、更新された場合、2つのどちらか
  2. スケジュール起因:日次、週次、月次、一度だけ、など
  3. アプリケーション起因:メール受信時、サービスカタログ起因
今回はインシデントレコードが追加されたことを起点にフローを走らせたいので、レコード起因(Record配下)の「Created」を選択します。

image.png

対象となる任意のテーブルを指定します。今回はIncidentテーブルを指定します
image.png

これでTriggerとして「インシデントテーブルにレコードが作成されたこと」を設定できたので、DoneをクリックしTrigger設定完了です。
image.png

ACTIONSの設定

フローの中で実際に行う動作を設定します。
今回はインシデントのUrgencyが「Highの時」「High以外の時」で通知先を変更したい為、まずは条件分岐として「Flow Logic」の中からIf条件を設定します。

1. 条件分岐設定

Condition1に「Incident RecordのUrgencyがHighの時」を指定します。
画面右端のDataのIncident Record左端にある▼をクリックするとレコード内のフィールドが展開されます
image.png

UrgencyをCondition1にドラッグ&ドロップします
image.png

選択肢を「High」に設定。Doneで設定完了です。
image.png

2. Send Emailでマネージャー宛メール通知を設定

thenの隣の+マークをクリック。
image.png

Action一覧から「Send Email」を選択します。
image.png

Taget RecordにDATAからTiriggerのIncident Recordをドラッグ&ドロップ。
メール宛先にIncident Managerのメールアドレスを指定します
(メールアドレスなどのUser詳細情報はUser AdministorationのGroups、Usersで確認できます)
Subjectには適当なタイトルをつけて、Doneをクリック。
image.png

3. End Flowの設定

Flow LogicよりEnd Flowを指定します。
image.png

4. Else If 条件分岐設定

If条件と同様にCondition1にIncident RecordのUrgencyフィールドを指定します。
「Highではない場合」にしたいため、「is not」を選択します。
image.png

5. Send Emailでヘルプデスク担当者宛メール通知を設定**

Toにヘルプデスク担当者のメールアドレスを指定します。
image.png

6. End Flowの設定
こちらでもEnd Flowを設定し、設定は以上で完了です。
image.png

Testの実行

Activateする前にエラーが起こっていないかTestで確認することができます。
image.png

レコードを指定し、Run Testをクリック。
しばらく待つと「Your test has finished running. View the flow execution details.」と表示されるのでクリックします。
image.png

テスト実行結果が表示されます。
State欄にテスト結果が表示されます。
image.png

デモユーザーへのメール送信の為、実際にメール受信はできませんがシステムログで送信がされているか確認することができます。
System Log配下のEmailsをクリック。
image.png

メールがヘルプデスク担当者宛に送信されていました。
image.png

おわりに

今回は業務でフローデザイナーを使う機会があったので、学習記録として簡易的な作成手順を残してみました。
オリジナルのアクション作成やサブフローを活用した更に効率的なフロー作成も可能です。
引き続き学習したことがあればまとめていこうと思います。

ここまで読んでいただけた方はぜひいいねストックよろしくお願いします。

参考文献:

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?