Power AutomateでSharePointリストをトリガーにしたフローが、リストの更新を検知せず動作しないことがあります。この原因を特定するには、トリガーの種類、権限設定、トリガー条件、そしてSharePointの動作特性を順に確認する必要があります。本記事では、トリガーが反応しない原因を切り分け、適切な対処方法を具体的に解説します。会社のSharePoint環境では管理者ポリシーやライセンスが影響するケースもあるため、管理者と連携すべきポイントについても触れます。再発防止のためのチェックリストとしても活用ください。
【要点】この記事で確認すること
- 最初に見る場所: フローの実行履歴とトリガーの生出力(JSON)を確認し、トリガーが起動しているか否かを判断する
- 切り分けの軸: トリガーの種類(作成時・変更時)の選択ミス、トリガー条件のフィルタリング、リストの権限不足、SharePointの同期遅延の4軸で検証する
- 注意点: トリガー条件や列の変更を行う前に、フロー所有者のアカウントがリストに対して編集権限を持っているか確認する。管理者に連絡が必要な場合は、ライセンス割り当てや環境ポリシーの設定状況を把握しておく
ADVERTISEMENT
目次
1. トリガーが反応しない主な原因
トリガーが正しく動作しない原因は大きく4つに分類できます。それぞれ確認すべきポイントを見ていきます。
権限とアクセス設定
SharePointリストをトリガーに使用するフローは、フローを実行するアカウント(通常はフロー所有者)がリストに対して最低でも「読み取り」権限を持っている必要があります。特に「アイテムの変更時」トリガーでは、変更を検知するためにリスト項目のバージョン履歴が必要なケースがあり、権限が弱いとトリガーが起動しません。所有者以外のユーザーがリストを更新した場合でも、フロー所有者がその変更を読み取れなければトリガーは動作しません。
トリガータイプの誤選択
「アイテムが作成されたとき」と「アイテムが変更されたとき」ではトリガーされる条件が異なります。新規作成だけを検知したい場合に「変更時」を選んでしまうと、作成時には動かず編集時だけ動く、あるいはその逆の状態になります。また、「変更時」トリガーは列の変更値の有無を内部的にチェックするため、変更した列がフローの定義から外れていると検知しないことがあります。
トリガー条件の設定ミス
トリガーに条件式(フィルター)を設定している場合、その条件に合致しない更新は無視されます。例えば「Status列が’完了’に変わったとき」という条件があると、Status列が変更されない更新ではトリガーが起動しません。条件式の記述ミス(スペル違いや型の不一致)もよくある原因です。
Power AutomateはSharePointの変更を即座に検知するわけではなく、数秒から数分の遅延が発生する場合があります。また、大量の更新が短時間に発生するとAPIスロットリングがかかり、一部の変更がトリガーされないこともあります。開発環境と本番環境で挙動が異なる場合は、この遅延特性を考慮する必要があります。
2. トリガー動作確認の基本手順
以下の手順でトリガーの状態を確認し、問題を切り分けてください。
- 実行履歴を確認する:フローの詳細画面を開き、「実行履歴」タブでトリガーが成功しているかどうかを確認します。トリガーが一度も実行されていない場合は、トリガー自体が起動していないことを示します。
- トリガーの生出力を確認する:実行履歴の任意の実行をクリックし、「生出力」の「body」セクションを開きます。空のJSON「{}」や想定と異なる値が入っている場合は、トリガー条件や権限の問題が疑われます。
- トリガーの種類を再確認する:フローの編集画面でトリガーカードを選択し、「アイテムが作成されたとき」「アイテムが変更されたとき」のどちらにチェックが入っているか確認します。意図した動作と一致しているか比較します。
- トリガー条件を確認する:トリガーカードの「詳細オプション」を展開し、「トリガー条件」に式が設定されている場合はその内容を確認します。特に式内の列名や値の型が実際のリストと合っているか精査します。
- フローを無効化・再有効化する:設定変更後は一度フローを「オフ」にしてから「オン」にすることで、変更が強制的に反映されます。これを試してからリストの更新を行い、トリガーが起動するかテストします。
- 別のアカウントでテストする:フロー所有者とは別のアカウント(例:管理者アカウント)でリストを更新してみます。所有者自身の更新では権限の問題が隠れている場合があるため、異なるユーザーで検証することで権限起因の不具合を明確化できます。
3. トリガーの種類と特徴の比較
トリガーの種類によって動作タイミングや注意点が異なります。以下の表を参考に、使用するトリガーを適切に選択してください。
| トリガー | 動作タイミング | 注意点 |
|---|---|---|
| アイテムが作成されたとき | 新しいアイテムがリストに追加された直後 | 既存アイテムの編集ではトリガーされません。トリガー条件の列が空の場合は動作しないことがあります。 |
| アイテムが変更されたとき | 既存アイテムの1つ以上の列が更新された直後 | 作成時もこのトリガーでキャッチできます(既定で「作成時を含む」)。ただし、トリガー条件で列を限定すると作成時を逃す可能性があります。 |
| アイテムが削除されたとき | アイテムが完全に削除された直後(ゴミ箱に入る前) | デフォルトではこのトリガーは表示されません。コネクタの設定で「削除時」を有効にする必要があります。 |
4. よくある失敗パターンと対処法
実際の現場で多く報告される失敗パターンを具体的に挙げ、それぞれの対処法を説明します。
パターン1:列の追加・削除後にトリガーが動作しなくなる
SharePointリストに新しい列を追加したり既存の列を削除したりすると、フロー内で参照している列名とズレが生じ、トリガー条件が無効化されることがあります。また、変更時トリガーの内部的な「変更検知」に使用される列セットがリセットされることも原因です。対処法として、フローの編集画面でトリガーカードの「詳細オプション」から「トリガー条件」を一度クリアし、再度設定し直します。さらに、フローをOFF→ONにしてリストの更新をテストしてください。
パターン2:複数ユーザーが同時に更新すると一部のトリガーが欠落する
短時間に同じリスト項目が複数回更新されると、Power Automateが一部の変更をまとめてしまい、トリガーが1回しか発行されないことがあります。これは仕様であり、正確な回数カウントが必要な場合は「変更時」トリガーではなく「作成時」に変更を履歴として保存するアプローチに変更します。または、フロー内で「Apply to each」ループを使用して各変更を個別に処理できるように設計します。
パターン3:トリガー条件の式が正しく評価されない
例えば「Status eq ‘完了’」と記述したつもりが、実際の列の値が「完了(全角)」だったり、空白が含まれていたりすると条件が一致しません。トリガー条件の式は大文字小文字を区別しますし、数値や日付の形式も厳密にチェックされます。対処法としては、リストの実際の値をPower Automateの「アクション」で取得し、それを条件式に反映させる方法が確実です。また、式エディタ内で補完機能が効かない部分は、手作業でダブルクォーテーションの有無などを確認してください。
5. 管理者に確認すべきポイント
社内のSharePoint環境では、管理者が設定するポリシーや制限がPower Automateのトリガー動作に影響を与える場合があります。以下の項目を確認し、必要に応じて管理者に問い合わせてください。
- フロー実行アカウントのライセンス:Power Automateをトリガーで使用するには、フロー所有者に適切なライセンス(Office 365 E3/E5、Power Automate単体プランなど)が割り当てられている必要があります。ライセンスが不足しているとトリガーが起動しないケースがあります。
- SharePointのAPIスロットリング制限:テナント全体で1分あたりのAPI呼び出し数に制限があります。短時間に大量の更新が発生する業務では、スロットリングによりトリガーが抑制される可能性があります。管理者に制限値を確認し、高負荷が想定される場合はバッチ処理の間隔を調整してもらう必要があります。
- データ損失防止(DLP)ポリシー:Power Automate環境に適用されるDLPポリシーにより、SharePointコネクタと他のサービス(Outlook、Teamsなど)の接続が制限されていると、トリガー後に続くアクションがブロックされることがあります。トリガーは成功してもフローが途中で失敗する場合、DLPが原因である可能性を考慮してください。
- SharePointのコネクタバージョン:古いコネクタ(v1など)を使用している場合、新しいリストの機能に対応していないことがあります。管理者に依頼して最新のコネクタ(SharePoint REST APIベースのもの)に変更してもらうと改善することがあります。
6. よくある質問(FAQ)
現場からよく寄せられる質問とその回答をまとめました。
Q. トリガーが数分遅れて反応するのはなぜですか?
A. Power Automateの標準的な遅延です。特に大規模なテナントでは、変更検知のためのポーリング間隔が長くなる場合があります。最大で5分程度の遅延が発生することがありますが、ビジネスに支障がある場合はリアルタイム性の高い「Webhook」トリガー(SharePointリストの場合は既定でWebhookを使用しています)の設定が正しく行われているか確認してください。通常は数十秒で検知されます。
Q. リストに新しい列を追加したらフローが動かなくなった。どうすれば?
A. トリガー条件または後続のアクションで古い列名を参照している可能性があります。フローを編集し、トリガー条件の式をリストの現在の列構成に合わせて修正してください。また、フロー内で「列の値を取得」アクションを使用している場合は、列の内部名が変更されていないか確認が必要です。修正後は一度フローを無効化してから再度有効化することで、変更が確実に反映されます。
Q. フローを共有している他のユーザーがリストを更新した場合、トリガーは動作しますか?
A. 動作します。ただし、フローを実行するアカウント(通常はフロー所有者)がその更新を読み取れる権限を持っている必要があります。所有者がリストに対して編集権限を持っていない場合、トリガーは起動しません。フローを共有する際は、所有者に適切な権限を付与するか、所有者を変更することが推奨されます。
Q. トリガー条件で特定の列の値が空のときに無視したい。どう記述すれば?
A. トリガー条件に `@empty(triggerOutputs()?[‘body/列名’])` のような式を使うことができます。ただし、列の内部名(スペースや特殊文字を含む場合は_x0020_などに変換)を正しく指定する必要があります。また、この条件を使うと、値が空でない場合のみトリガーされるようになります。逆に空のときに動かしたい場合は `@not(empty(…))` とします。
7. まとめ
Power AutomateのSharePointリストトリガーが更新を検知しない原因は、権限不足、トリガータイプや条件の設定ミス、SharePointの遅延特性など多岐にわたります。最初に実行履歴とトリガーの生出力を確認し、切り分けの軸に沿って調査を進めることが重要です。特にトリガー条件の式や列の変更は見落としがちなため、リスト更新後は必ずフローを再テストしてください。管理者に確認が必要な場合は、ライセンスやポリシーの情報を事前に整理してから依頼するとスムーズです。本記事の手順をチェックリストとして活用し、安定したフロー運用を実現してください。
ADVERTISEMENT
超解決 リモートワーク研究班
Microsoft 365の導入・保守を専門とするエンジニアグループ。通信障害やサインイン不具合など、ビジネスインフラのトラブル対応に精通しています。
Office・仕事術の人気記事ランキング
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
