【ServiceNow】Washington DCリリース「Exit Loop / Skip Iteration Flow Logicの実装」

## はじめに
みなさんこんにちは、三井情報株式会社です。

本記事ではWashington DCへのバージョンアップでFlow Designerに追加された Exit Loop Flow Logic と Skip Iteration Flow Logic の概要と実装例についてご紹介いたします。

## Exit Loopとは
ループ内における何らかの判定結果に応じてfor文やwhile文ループ処理を中断し、ループ全体を終了させるために使用します。このフローロジックはbreakとも呼ばれます。

## Skip Iterationとは
ループ内における何らかの判定結果に応じて後続処理をスキップし、元のループ文の先頭に戻り、処理を続行させるために使用します。このフローロジックはcontinueとも呼ばれます。

## Exit Loop / Skip Iteration Flow Logicの実装例
### 実装概要
Incidentレコードの件数をカウントし、条件によって異なるメッセージをLogに出力するフローをExit LoopとSkip Iterationを使用して作成します。
Exit Loopが実行された場合は「Exiting the Loop」というメッセージをログに出力させ、Skip iterationが実行された場合は「Skippng iteration」というメッセージをログに出力させます。

### 実装方法
（1）Workflow studioを開き、New > Flow を選択して、新規のフローを作成します。
（2）フローのTriggerを設定します。
![1-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/3bd8a649-f97c-f27d-5256-13136a8b6d3c.png)
（3）incidentレコードの検索条件を設定します。
![1-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/0f97afd3-d34d-4ddd-1138-8b31d6e6aeeb.png)
（4）incidentレコードを1件ずつ処理するための設定をします。
![1-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/2d709d41-9596-1bfe-e7a4-2b60bc361d3a.png)
（5）incidentレコードの件数が100件以上か判定する処理を設定します。
![1-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/100aaea1-6b9e-b78d-fd61-c8303f7722cd.png)
（6）Logに出力するメッセージを設定します。
![1-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/35d28d83-3bb5-867b-da58-8b6e94851a3a.png)
（7）Exit Loopステップを追加します。
![1-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/28fcb7c8-b1ea-d75a-b735-16c7f0127d04.png)
（8）Else if文にincidentレコードのカテゴリーが Injury / Help の場合を設定します。
![1-7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/7d0dab11-9281-2988-5aac-c749f48578f4.png)
（9）Logに出力するメッセージを設定します。
![1-8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/3f07c632-16a1-fb5e-7703-7ef426986708.png)
（10）Skip Iterationステップを追加します。
![1-9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/9ba1ee6c-4b46-cd0e-e983-b682a143ac7d.png)

### 実行結果
①Skip Iteration Flow Logicの実行
incidentレコードの件数が100件以下かつ1件目のincidentレコードのカテゴリーが Injury / Help だったため、Step7,8が実行されました。
![3-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/c361cbcb-373f-9f6c-9f2a-bd7b2febc8ab.png)
System Logでメッセージの出力が確認できました。
![3-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/1ffad4bf-f99a-ebfa-3366-575fb2e56fc1.png)

②Exit Loop Flow Logicの実行
Exit Loop Flow Logicを実行するために、Step3のCondition1を100件から10件に変更しました。
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/034ae96b-46b7-8a2a-bd9c-86c21b3972c6.png)
incidentレコードの件数が10件以上だったため、Step4,5が実行されました。
![5-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/a04086a5-e62f-de62-2f47-1d30af456a8a.png)
System Logでメッセージの出力が確認できました。
![5-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773072/93e02a88-af51-b4ad-7b0c-85907363133e.png)

## 参考
本記事は、以下のドキュメントおよび動画を参照しています。

https://docs.servicenow.com/ja-JP/bundle/washingtondc-build-workflows/page/administer/flow-designer/reference/exit-loop-flow-logic.html

https://docs.servicenow.com/ja-JP/bundle/washingtondc-build-workflows/page/administer/flow-designer/reference/skip-iteration-flow-logic.html

https://www.youtube.com/watch?v=oSBoEem4spk

## おわりに
本記事ではWashington DCへのバージョンアップでFlow Designerに追加された Exit Loop / Skip Iteration Flow Logic の実装例についてご紹介させていただきました。
最後までお読みいただき、ありがとうございました。