新しいことにはウェルカム

技術 | 電子工作 | ガジェット | ゲーム のメモ書き

Microsoft (Office365) Flow でエラーをチャッチする方法

Microsoft Flowを普通に使っていると、途中で何かエラーが発生すると、そこでアクションが止まってしまいます。

例えば、SQL Serverからユーザーリストを取得し、そのユーザーに対してSlackを送るFlowがあったとします。

Microsoft (Office365) Flow でエラーをチャッチする方法

ユーザーリストにユーザーがある場合は問題なく実行されるのですが、ユーザーが無い場合はエラーとなって、Flowがそこで止まってしまいます。

Microsoft (Office365) Flow でエラーをチャッチする方法

エラーが発生してもそこでFlowを終了せず、エラーをチャッチして、引き続き次のアクションを実行するようにするには、[制御]-[スコープ]アクションを使います。

スコープとは?

スコープとは、一連のアクションをグループ化するものです。

一連のアクションの途中でエラーが発生すると、そこでアクションを中止してスコープを抜け、次のアクションに移り、次のアクション内でエラー処理をするといった、例外処理が書けます。

使い方

  • [制御]-[スコープ]で「スコープ」アクションを追加します
  • 「スコープ」にエラーをキャッチしたいアクション群を入れます
    • ここでは、ユーザーリストのユーザー毎にSlackを送る「Apply to each」を入れました
  • 「スコープ」のエラーをチャッチする場所として、上記の「スコープ」の下に、新しく「スコープ」を追加します
  • 新しく追加した「スコープ」に、エラーが発生した時にするアクションを追加します
    • ここでは、エラーメッセージをSlackに送るアクションを追加しました
  • 新しく追加した「スコープ」の右上の[…]-[実行条件の構成]で、実行条件を上のスコープが「に失敗しました」にします

設定

Microsoft (Office365) Flow でエラーをチャッチする方法
エラーをキャッチしたいアクションをくくるスコープと、キャッチしたエラーの処理を行うスコープを追加

Microsoft (Office365) Flow でエラーをチャッチする方法
上のスコープがエラーになると、下のスコープが実行されるように設定

これにより、上のスコープの中でエラーが発生しても、Flowは終了せず、下のスコープが実行されて、下のスコープ以下のアクションも、引き続き実行されるようになります。

Microsoft (Office365) Flow でエラーをチャッチする方法
上のスコープでエラーが発生しているが、下のスコープが実行されている

Microsoft (Office365) Flow でエラーをチャッチする方法
上のスコープでエラーが発生すると、下のスコープが実行されれ、エラーのSlackが送られる

補足説明

  • エラー発生後も継続してFlow実行するためには、最初のスコープだけでなく、そのエラーを受けるスコープの設置も必要です。
  • エラーを無視するには、下のスコープを空にしておきます。
  • スコープの成功・失敗で、アクションを分けることもできるのですが、手打ちで式を記載する必要があり少し手間なので省略しました。 やり方は参照記事に記載されていますので、そちらを参考にしてみてください。

参考記事