ADVERTISEMENT

【Power Automate】タイムアウト設定で困った時の入力値と条件分岐の直し方

【Power Automate】タイムアウト設定で困った時の入力値と条件分岐の直し方
🛡️ 超解決

Power Automateのフローがタイムアウトエラーで停止してしまうと、業務プロセス全体に遅延が生じ、関係者への影響も大きくなります。多くの場合、タイムアウトの原因はアクションの実行時間制限を超えたことにありますが、その背景には入力値の設計ミスや条件分岐の不備が潜んでいることが少なくありません。本記事では、タイムアウトが発生するメカニズムを理解した上で、入力値と条件分岐を適切に修正する具体的な方法を解説します。また、管理者として確認すべき設定項目についても触れますので、運用担当者の方も参考にしてください。

【要点】この記事で確認すること

  • 最初に見る場所: フローの「実行履歴」と各アクションの「タイムアウト」設定値。エラーメッセージに記載されたアクションを特定します。
  • 切り分けの軸: トリガー側のデータ量、アクションの処理時間、外部サービスの応答速度。フロー内のループや条件分岐の設計が影響する場合もあります。
  • 注意点: タイムアウト値をむやみに大きくすると、サーバー負荷やコスト増加につながるため、組織のポリシーや管理者の承認を得てから変更してください。

ADVERTISEMENT

1. Power Automateにおけるタイムアウトの仕組みと既定値

Power Automateでは、各コネクタやアクションにそれぞれ実行時間の上限(タイムアウト)が設定されています。この上限を超えるとフローは強制終了され、エラーとして記録されます。既定のタイムアウト値はアクションの種類によって異なり、例えばHTTP要求アクションは120秒、SharePointの「アイテムの作成」アクションは2分など、コネクタごとに仕様が定められています。また、一部のアクションでは設定画面からタイムアウト値を変更できますが、最大値にも制限があるため注意が必要です。

代表的なアクションの既定タイムアウト値

アクションタイプ 既定タイムアウト 最大設定可能値 備考
HTTP要求 120秒 240秒 コネクタ設定で変更可能
SharePoint (アイテム作成) 2分 変更不可 大量データ処理時は注意
SQL Server 2分 5分 クエリの最適化も重要
Apply to each なし(アクション依存) ループ内のアクション個別のタイムアウトが適用

2. タイムアウトが発生する主な原因と入力値の関係

タイムアウトの原因の多くは、入力値が大きすぎるか、条件分岐の設計に問題があることです。例えば、SharePointリストから数千件のアイテムを取得して処理するフローを組んだ場合、1件あたりの処理時間が短くても総時間がタイムアウト値を超えることがあります。また、条件分岐内で意図せず無限ループが発生しているケースも見られます。入力値の見直しとしては、事前にフィルターを適用して処理対象を絞り込む、ページ分割(ページング)を利用する、あるいは不要な列を除外することでデータ量を減らすことが効果的です。さらに、外部APIを呼び出すアクションでは、レスポンスサイズが大きいとタイムアウトしやすくなるため、API側で必要なデータのみを取得する設計に変更することも検討してください。

入力値の失敗パターン例

ある企業で、顧客リストをCSV出力するフローが毎回タイムアウトしていました。原因は、出力対象のレコード数が10万件を超えていたことと、1件ごとに外部のバリデーションAPIを呼び出していたことです。この場合、API呼び出しをバッチ処理に変更し、さらにCSV生成を複数のチャンクに分割することでタイムアウトを回避できました。

3. 条件分岐の設計を見直してタイムアウトを防ぐ方法

条件分岐(ConditionやSwitch)自体は処理時間に影響しませんが、分岐先でループや大量データ処理を実行する場合に問題が発生します。特に「Apply to each」ループ内でさらに別のループやAPI呼び出しを入れ子にすると、処理時間が指数関数的に増大します。このような場合は、並列処理(Concurrency Control)の設定を有効にすることで、ループの反復処理を同時に実行し、全体の時間を短縮できます。ただし、並列処理は順序が保証されないため、依存関係があるデータの処理には注意してください。また、条件分岐の条件式を見直して、早期に不要なパスを除外するように設計することも重要です。例えば、空の配列を処理する分岐を先に設けるなど、無駄なループを回避します。

条件分岐の修正例

次のようなフローがあったとします。「ファイルが作成されたら、そのファイルの内容を1行ずつ処理し、条件に合う行のみ別リストに追加する」。このフローでは、ファイルの行数が大きいとタイムアウトする可能性があります。改善策として、一度にすべての行を取得してフィルター条件を適用する方法に変更します。つまり、ループの前に「ファイルの内容を取得」アクションで全行を変数に格納し、その後で「Filter」アクションを使って条件に合う行だけを抽出します。これにより、ループの反復回数が減り、タイムアウトのリスクを低減できます。

4. タイムアウト設定の具体的な変更手順

タイムアウト設定を変更できるアクションについては、以下の手順で値を調整します。

  1. Power Automateポータル(make.powerautomate.com)にサインインし、該当のフローを開きます。
  2. フローを編集モードに切り替えます(画面右上の「編集」ボタン)。
  3. タイムアウトが発生しているアクションをクリックして選択し、アクションの設定(歯車アイコン)を開きます。
  4. 設定メニュー内の「タイムアウト」フィールドを探し、現在の値を確認します。変更可能な場合は、適切な秒数(例: 300秒)を入力します。ただし、最大値を超える値は設定できないため、注意してください。
  5. 変更後、「完了」をクリックして設定を保存し、フロー全体を保存します。
  6. フローをテスト実行し、「実行履歴」から当該アクションの実行時間を確認します。タイムアウトが解消されたか、または他のアクションに問題がないかをチェックします。

5. 失敗パターンとその対処法

タイムアウトに関する代表的な失敗パターンを以下にまとめます。

  • 無限ループ: 条件分岐内でループの終了条件が満たされず、永久に実行されるパターン。終了条件を明示的に設定し、最大反復回数をテスト環境で確認してください。
  • 大量データの一括処理: 1回の要求で数千件以上のアイテムを処理しようとする。対処法はページ分割やバッチ処理、またはフィルターでデータを減らすことです。
  • 外部APIの応答遅延: 呼び出し先のAPIが遅い場合、タイムアウトまで待機して失敗する。API側のパフォーマンス改善を依頼するか、リトライポリシーを設定します。
  • 条件分岐の漏れ: 一部のデータがどの条件にも合致せず、デフォルトの処理に回ることで予想外の時間がかかる。条件を網羅的にチェックし、デフォルトアクションを簡素化します。

6. 管理者に確認すべき設定と制限

管理者が把握しておくべき制限として、Power Automateのライセンス(無償版では実行時間に制限がある場合あり)、データ損失防止(DLP)ポリシーによるコネクタの制限、そして組織全体のAPI利用制限が挙げられます。タイムアウト値を変更する際は、これらのポリシーに違反しないか事前に確認してください。また、アクションによっては設定変更を反映するために管理者権限が必要な場合があります。トラブルが発生したら、以下の情報を管理者に伝えるとスムーズです: フローID、エラーメッセージのスクリーンショット、変更したいタイムアウト値の根拠(処理するデータの量や想定時間)。管理者は組織の制限と照らし合わせて、設定変更の可否を判断できます。

7. よくある質問(FAQ)

Q1: タイムアウト値を最大値より大きく設定する方法はありますか?

基本的には不可能です。コネクタごとに最大値が決まっており、それを超えることはできません。どうしても長時間の処理が必要な場合は、フローを複数のサブフローに分割する、あるいはAzure Functionsなどの外部サービスに処理を委譲する方法を検討してください。

Q2: Apply to eachループ内でタイムアウトが発生します。並列処理を有効にすれば解決しますか?

並列処理を有効にすると、ループの各反復が同時に実行されるため、全体の処理時間は短くなります。ただし、並列度を高くしすぎるとリソース競合が発生したり、外部APIのレート制限に引っかかる可能性があります。また、処理順序が保証されないため、データの整合性に注意が必要です。まずは並列度を2~3程度に設定してテストすることをおすすめします。

Q3: 実行履歴からタイムアウトしたアクションの詳細な実行時間を確認するには?

フローの実行履歴ページで該当の実行を開き、各アクションをクリックすると「入力」「出力」「経過時間」が表示されます。この経過時間を確認することで、どのアクションに時間がかかっているかを特定できます。タイムアウトが発生したアクションは通常「失敗」とマークされ、エラーの詳細に「タイムアウト」と表示されます。

まとめ

Power Automateのタイムアウトエラーは、入力値の適正化と条件分岐の設計見直しで多くは解決できます。まずは実行履歴から原因アクションを特定し、データ量の削減やループ構造の最適化を試みてください。どうしても設定変更が必要な場合は、管理者と連携して組織のポリシーを確認した上で対応しましょう。タイムアウトを未然に防ぐためには、フロー設計時に処理時間の見積もりを行い、余裕を持った設定を心がけることが重要です。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

ADVERTISEMENT