本記事では、ServiceNowのフローに追加された新アクション「Wait For Message」の使い方を紹介します。
「Wait For Message」アクションとは
指定したメッセージ文字列をFlowAPIから受け取るまで、フローを一時停止するアクションです。
オプションでタイムアウト値も設定でき、設定した時間を過ぎるとメッセージを受け取っていなくても次の処理に進むことができます。
Yokohamaバージョンで新しく追加された機能のため、まだ使ったことがない方が多いと思いますが、様々なフローに活用できそうなアクションですので本記事で使い方を紹介させていただきます。
使い方
フローの作成
まずは、以下のようなフローを作成していきます。
トリガーには「Incident Created」を指定し、インシデントが起票された時にフローが動作するようにします。
アクションには、「Wait For Message」と「Log」を作成します。
「Wait For Message」のMessageには再開用の文字列”Restart”を設定し、Timeoutには3分を設定します。
バックグラウンドスクリプトの作成
続いて、以下のように再開用の文字列をフローに送るためのバックグラウンドスクリプトを作成します。
※ sys_idの値はこの後の手順で記載します。
var sys_id = "後ほど記載";
var message = "Restart";
sn_fd.FlowAPI.sendMessage(sys_id, message);
実行
フローを実行(テスト)
作成したフローをSaveし、任意のインシデントを選択してテストを実行します。
「Your test has finished running. View the flow execution details.」をクリックして詳細を見ると、「Wait For Message」アクションの部分で処理が一時停止し、その先の「Log」アクションが実行されていないことがわかります。
メッセージの送信
「Open context record」をクリックして開いたページから、sys_idをコピーします。
先ほどのバックグラウンドスクリプトのsys_idの部分にペーストし、「Run Script」をクリックしてスクリプトを実行します。
フローの詳細画面に戻り「Refresh Flow Data(赤枠で囲った矢印)」をクリックすると、「Wait For Message」アクションの処理とその先の「Log」アクションの処理がCompletedになり、完了していることが確認できます。
タイムアウトした場合
続いて、タイムアウトした場合の動作も確認します。
フローの画面に戻り、再度テストを実行します。
「Your test has finished running. View the flow execution details.」をクリックして詳細を見ると、「Wait For Message」アクションの部分で処理が一時停止し、その先の「Log」アクションが実行されていないことがわかります。
このまま3分間放置した後に「Refresh Flow Data(赤枠で囲った矢印)」をクリックすると、以下のようにタイムアウトして「Log」アクションが実行されていることが確認できます。
まとめ
以上が、Yokohamaバージョンから新しく追加された「Wait For Message」アクションの紹介になります。
これまでにも指定した時間待機するアクションはありましたが、メッセージが来るまで待機するアクションが新しく追加されたことでさらに便利になりました。
再開用の文字列とタイムアウト値(オプション)の設定のみで簡単に使用できますので、皆様もぜひご活用ください。















