ADVERTISEMENT

【Power Automate】実行履歴が急に動かない時の入力値と条件分岐の直し方

【Power Automate】実行履歴が急に動かない時の入力値と条件分岐の直し方
🛡️ 超解決

Power Automateのフローを長く運用していると、ある日突然、実行履歴が表示されなくなったり、フローが「成功」や「失敗」のステータスを残さずに止まってしまうことがあります。この現象は、トリガーの入力値が想定外の形式に変わった、条件分岐で正しく判定されていない、またはMicrosoft 365側の仕様変更が原因であることが多いです。本記事では、実行履歴が急に動かなくなった際に、まず確認すべき入力値の内容、条件分岐のロジックの見直し方、そして管理者に相談すべきポイントを順を追って解説します。

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

  • 最初に見る場所: フローの実行履歴画面で「実行ID」が発行されているか、および各アクションの入力値と出力値を確認します。
  • 切り分けの軸: 端末側(ブラウザのキャッシュ、クライアント設定)とアカウント側(ライセンス、権限)、管理設定側(テナントの制限、データ損失防止ポリシー)の3つに分けて原因を特定します。
  • 注意点: 会社PCではフローの編集や条件式の変更を行う前に、管理者に連絡して共有フローの編集権限や環境の変更履歴を確認してください。また、大量の実行履歴が自動削除される仕様にも留意しましょう。

ADVERTISEMENT

実行履歴が動かない原因を3つの観点で整理する

実行履歴が「実行されていないように見える」「履歴にエラーが出る」「ステータスが更新されない」などの症状は、複数の原因が重なることがあります。ここでは、よくある原因を3つに分類して説明します。

1. トリガーやアクションの入力値が想定外の型や値になっている

Power Automateは、トリガーで受け取ったデータをそのまま後続のアクションに渡します。例えば、「新しいメールが届いたとき」トリガーで受信した添付ファイルのプロパティが突然空になる、または日付形式が変更されるといったケースです。入力値がnullや空文字列になると、条件分岐で「等しい」を比較するアクションがエラーになります。また、数値として期待していた値が文字列として渡されると、計算アクションが失敗します。

2. 条件分岐のロジックが更新やデータ変化に対応できていない

フロー内で「条件」アクションや「スイッチ」アクションを使っている場合、比較対象の値が想定外の形式になると正しく分岐しません。例えば、「ステータスが’完了’と等しい」という条件で、送信元のシステムが’Completed’や’complete’に変わると、大文字小文字が一致せずに通過しません。また、配列やオブジェクトのプロパティにアクセスする式が間違っていると、実行時にエラーとなります。

3. 実行環境の制限や設定変更による影響

Power Automateの実行履歴は、既定では30日間保持されますが、管理者が保持期間を短縮している場合があります。また、データ損失防止(DLP)ポリシーが新しいサービスに適用され、コネクタがブロックされることもあります。テナント内で共有フローの制限が変更されたり、ライセンスが変更されたりしても、実行履歴が生成されない、またはすぐに削除されることがあります。

原因カテゴリ 代表的な症状 確認ポイント
入力値の不整合 アクション出力が空、型が異なる 動的コンテンツのプレビュー、式の評価
条件分岐の誤り フローが停止、予期しないパスへ 各条件の簡易チェック、テスト実行
環境設定の変更 実行履歴が残らない、エラーなし Power Platform管理センター、監査ログ

最初にすべきこと: 実行履歴の基本確認

問題の切り分けを始める前に、以下の基本的な事項を確認しましょう。これだけで原因が特定できる場合もあります。

  1. 実行履歴一覧を表示する: 対象のフローを開き、左メニューの「実行履歴」をクリックします。画面が表示されない場合は、ブラウザのキャッシュをクリアしてから再読み込みしてください。Chromeでは「Ctrl+Shift+R」、Edgeでは「Ctrl+F5」で強制リロードできます。
  2. 過去の正常な実行と比較する: 同じトリガーで成功している過去の実行を選び、入力値と出力値を表示します。そのデータをメモ帳などにコピーしておき、現在の実行と比較できるようにします。
  3. 最後の成功した実行からの変更点を洗い出す: フローが最後に正常動作した日時を特定し、その後に編集した箇所、トリガー元のシステムの更新、コネクタのバージョン変更などを調べます。
  4. 別のブラウザやシークレットモードで試す: ブラウザの拡張機能やキャッシュが原因で履歴が正しく表示されない場合があります。Microsoft EdgeのInPrivateモードやGoogle ChromeのシークレットモードでPower Automateにアクセスし、実行履歴が表示されるか確認してください。
  5. Power Automateモバイルアプリでも確認する: スマートフォンのPower Automateアプリから同じフローの実行履歴を開いてみてください。モバイルアプリでは表示されるのにWeb版では表示されない場合、ブラウザ固有の問題と判断できます。

入力値のチェックと修正手順

実行履歴が動かない原因の多くは、トリガーやアクションが受け取る値の形式が想定と異なることです。以下の手順で入力値を検証してください。

手順1: トリガーの出力を確認する

  1. フローエディターを開き、トリガーアイコンの下にある「…」ボタンから「設定」を開きます。
  2. 「トリガー条件」や「トリガーの種類」の設定が正しいか確認します。特に「ファイルが作成されたとき」などでは、フォルダーのパスが変更されていないか確認してください。
  3. トリガーを手動でテスト実行するには、右上の「テスト」ボタンから「手動でトリガー」を選択し、適切なサンプルデータを入力して実行します。
  4. 実行結果の「出力」タブで、実際に渡されたJSONデータを表示します。値がnullや空の配列になっていないか確認してください。

手順2: 各アクションの動的コンテンツを検証する

  1. 条件分岐や「適用する各」などのアクションで使用している動的コンテンツ(例えば「@{triggerOutputs()?[‘body/status’]}」)をクリックし、式ビルダーで評価結果をプレビューします。
  2. 式の結果が期待する値(文字列、数値、オブジェクト)と一致しているか確認します。特に、大文字小文字やデータ型(数値なのに文字列として比較していないかなど)に注意してください。
  3. アクションの「入力」フィールドに固定値が設定されている場合、その値が実際のデータと合致するか確認します。

手順3: 条件分岐の判定式を見直す

  1. 条件アクションをダブルクリックし、左側の「値の選択」で使用している動的コンテンツや式を確認します。
  2. 比較演算子が「次の値と等しい」の場合、右側の値が文字列リテラルとして ‘Completed’ などになっているか確認します。空文字を許可する必要がある場合は、OR条件を追加します。
  3. 数値比較では、暗黙の型変換が行われないことがあります。数値として比較する場合は、int() 関数で明示的に変換してください。例: @int(triggerOutputs()?[‘body/amount’])
  4. 配列の要素を条件に使う場合は、contains() 関数や length() 関数を利用して正しく処理できているか確認します。

よくある失敗パターンとその対策

実際の現場でよく発生する失敗パターンを3つ紹介します。同じ症状で困っている場合は、これらの対策を試してみてください。

  • パターン1: トリガーで受信したメールの添付ファイルが常に空になる
    原因: Outlookの「新しいメールが届いたとき」トリガーで、添付ファイルを取得するプロパティ名が ‘attachments’ ではなく ‘attachment’ と誤字っていた。
    対策: 動的コンテンツ一覧から正しいプロパティ名を再選択し、プレビューで値が存在するか確認する。
  • パターン2: 条件分岐で「true」と「True」が区別されてしまう
    原因: SharePointのリストから取得した真偽値が文字列型で ‘True’ となり、条件式で ‘true’ と比較していて一致しない。
    対策: 条件式で toLower() 関数を使用して比較する。例: @toLower(triggerOutputs()?[‘body/status’]) == ‘true’
  • パターン3: 実行履歴に「スキップ」と表示されて先に進まない
    原因: 「条件」アクションの「もしはいの場合」と「いいえの場合」が両方とも空のアクションで構成されていたため、条件判定後そのまま終了している。
    対策: 各分岐に少なくとも1つのアクション(例: 「コメント」アクション)を配置する。

管理者に確認すべきこと

自分で確認・修正できる範囲を超えた場合、会社の管理者に以下の点を問い合わせてください。特に、Power Automateの環境設定はユーザーが変更できない項目が多いため、管理者の協力が必要です。

確認項目 管理者への依頼内容 関連する設定場所
実行履歴の保持期間 現在の保持期間が何日か確認。30日未満に変更されていないか。 Power Platform管理センター>環境>設定>監査と保持
DLPポリシーによるブロック 使用しているコネクタ(Outlook、SharePointなど)が新たにブロックされていないか。 Power Platform管理センター>データポリシー
ライセンス割り当て ユーザーにPower Automateの有料ライセンスが割り当てられているか。無料ライセンスでは制限あり。 Microsoft 365管理センター>ユーザー>ライセンス
フロー所有者の変更 共有フローの所有者が退職などで削除されていないか。 Power Automate>フロー>共有フロー>管理

よくある質問(FAQ)

Q1: 実行履歴の一覧は表示されるが、どの実行も「実行中」のまま進まない

これは多くの場合、フロー内のアクションが外部サービスからの応答を待っている状態です。例えば、SharePointの「ファイルの作成」アクションで、ファイル名の重複によるエラーが発生していると、タイムアウトになるまで待機します。アクションの設定を開いて「タイムアウト」の値を確認し、必要に応じて増やしてください。また、「同時実行」の上限に達している可能性もあるので、「設定」タブの「同時実行」の値を増やしてみてください。

Q2: トリガーが起動した形跡がまったくない(実行履歴に表示されない)

トリガーの条件が厳しすぎる、またはトリガー自体が無効になっている可能性があります。フローの詳細ページで「オン」になっているか確認してください。また、トリガーにフィルター条件を設定している場合、その条件に一致するデータが送信されていない可能性があります。テストデータで試すには、手動トリガーを追加してテスト実行してください。

Q3: 条件分岐で「式が無効です」というエラーが出る

式の構文が間違っている、または未定義のプロパティを参照している場合に発生します。式エディターで確認し、各要素が確かに存在するか、動的コンテンツピッカーから選択し直すことをお勧めします。特に、エスケープ文字や引用符の位置に注意してください。

まとめ

Power Automateの実行履歴が動かない問題は、入力値と条件分岐の不備が原因で発生することが多く、修正にはフローの動作を一つひとつ検証する必要があります。最初に実行履歴の基本確認を行い、トリガーやアクションの出力を詳細に見ることで、多くの場合は原因を特定できます。条件分岐では、型変換や大文字小文字の統一に注意し、可能であればテストデータで動作確認を行ってください。管理者に依頼すべき設定変更がある場合は、本記事で紹介した確認項目を伝えることでスムーズに解決できます。日頃からフローの変更履歴を記録しておくことも、再発防止に役立ちます。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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

ADVERTISEMENT