Microsoft Flowを普通に使っていると、途中で何かエラーが発生すると、そこでアクションが止まってしまいます。
例えば、SQL Serverからユーザーリストを取得し、そのユーザーに対してSlackを送るFlowがあったとします。
ユーザーリストにユーザーがある場合は問題なく実行されるのですが、ユーザーが無い場合はエラーとなって、Flowがそこで止まってしまいます。
エラーが発生してもそこでFlowを終了せず、エラーをチャッチして、引き続き次のアクションを実行するようにするには、[制御]-[スコープ]
アクションを使います。
スコープとは?
スコープとは、一連のアクションをグループ化するものです。
一連のアクションの途中でエラーが発生すると、そこでアクションを中止してスコープを抜け、次のアクションに移り、次のアクション内でエラー処理をするといった、例外処理が書けます。
使い方
[制御]-[スコープ]
で「スコープ」アクションを追加します- 「スコープ」にエラーをキャッチしたいアクション群を入れます
- ここでは、ユーザーリストのユーザー毎にSlackを送る「Apply to each」を入れました
- 「スコープ」のエラーをチャッチする場所として、上記の「スコープ」の下に、新しく「スコープ」を追加します
- 新しく追加した「スコープ」に、エラーが発生した時にするアクションを追加します
- ここでは、エラーメッセージをSlackに送るアクションを追加しました
- 新しく追加した「スコープ」の右上の
[…]-[実行条件の構成]
で、実行条件を上のスコープが「に失敗しました」にします
設定
これにより、上のスコープの中でエラーが発生しても、Flowは終了せず、下のスコープが実行されて、下のスコープ以下のアクションも、引き続き実行されるようになります。
補足説明
- エラー発生後も継続してFlow実行するためには、最初のスコープだけでなく、そのエラーを受けるスコープの設置も必要です。
- エラーを無視するには、下のスコープを空にしておきます。
- スコープの成功・失敗で、アクションを分けることもできるのですが、手打ちで式を記載する必要があり少し手間なので省略しました。 やり方は参照記事に記載されていますので、そちらを参考にしてみてください。