Power Automateで配列のフィルター処理を利用する際、意図した通りにデータが絞り込まれなかったり、実行エラーが発生したりすることがあります。特に、Filter arrayアクションやApply to each内での条件式に問題があるケースが多く、原因を特定するには実行履歴(Run history)を正しく読み解くことが重要です。本記事では、配列フィルター処理でつまずいたときに、実行履歴のどこを見ればよいのか、エラーメッセージや出力結果からどのように原因を切り分けるのかを、具体的な手順と共に解説します。
【要点】この記事で確認すること
- 最初に見る場所: 実行履歴の「入力」「出力」「エラー」タブです。特にフィルターアクションの出力が空でないか、条件式が正しく評価されているかを確認します。
- 切り分けの軸: データソース側の問題(対象配列が空、プロパティ名の誤り)、条件式の問題(演算子の誤り、型不一致)、フロー設計の問題(Apply to eachの入れ子、アクションの順序)の3軸で調査します。
- 注意点: 会社PCでPower Automateの設定を変更する際、共有コネクタやポリシーに関わる部分は管理者に相談してください。また、フローを編集する前に必ずバージョン履歴を確認し、影響範囲を把握しましょう。
ADVERTISEMENT
目次
1. 配列フィルター処理の基本構造と想定される失敗パターン
Power Automateで配列をフィルターするには、主に「Filter array」アクションを使用します。例えば、SharePointリストから取得したアイテム配列から、特定のステータスのものだけを抽出するといった用途です。しかし、以下のような失敗パターンがよく見られます。
- 条件式が正しく評価されない: 演算子の選び間違い(例:
eqの代わりに=を使う)、大文字小文字の不一致、日付や数値の型不一致など。 - 対象配列が空または期待と異なる: 前のアクションが空の配列を出力している、または配列内のプロパティ名が間違っている。
- Apply to each内でのフィルター処理: ループの中でフィルターを使うとパフォーマンスが低下するだけでなく、出力結果が意図しないものになることがある。
- 特殊文字や空白の扱い: 値にスペースや改行が含まれていると、完全一致の比較でヒットしない。
これらの問題を解決する第一歩は、実行履歴で実際のデータと条件式を確認することです。次の章から具体的な確認手順を説明します。
2. 実行履歴を開き、フィルターアクションの詳細を見る手順
まずは、フローの実行履歴にアクセスし、フィルターアクションの入力と出力を確認します。以下の手順で進めてください。
- Power Automateポータル(make.powerautomate.com)にサインインします。
- 左側のメニューから「マイフロー」をクリックし、対象のフローを選択します。
- フローの詳細画面で「実行履歴」タブを開き、該当する実行(通常は最新の失敗した実行)をクリックします。
- 実行の詳細画面が開くので、「Filter array」アクション(実際のフロー内のアクション名)をクリックして展開します。
- 「入力」タブで、フィルターに渡された配列の内容と条件式を確認します。特に「from」と「where」の値が正しいかチェックします。
- 「出力」タブで、フィルター結果の配列を確認します。空の場合は条件に一致するアイテムがなかったか、条件式が間違っています。
- エラーがある場合は「エラー」タブにメッセージが表示されます。エラーの種類(例:
InvalidTemplate、FunctionEvaluationError)を確認します。
この手順で、フィルター処理がどのように動作したのかを把握できます。特に、入力の配列が想定通りかどうかは最も基本的な確認ポイントです。
3. 原因を特定するための具体的な確認ポイント
実行履歴の情報をもとに、以下3つの軸で原因を絞り込みます。それぞれの確認方法と改善策を説明します。
3.1 データソース側の問題:配列の中身を検証する
フィルターの「from」に指定した配列が期待通りか確認します。例えば、SharePointから取得したリストアイテムの配列が空だったり、プロパティ名が実際の列名と異なる場合があります。実行履歴の「入力」タブで、実際の配列のJSONを見てみましょう。配列の要素が0個なら、前のアクション(例:Get items)が適切に動作していない可能性があります。また、プロパティ名のスペルミス(例:Titleをtitleと小文字で書いてしまう)も頻発するミスです。配列の各要素を展開し、プロパティ名が正しいか、空白や特殊文字がないかを確認します。
3.2 条件式の問題:演算子と値の型をチェックする
「where」に記述した条件式が正しいかどうかは、よくある失敗の原因です。Power Automateでは、以下のような演算子が使えます。
| 演算子 | 意味 | 注意点 |
|---|---|---|
eq |
等しい | 文字列は大文字小文字を区別する |
ne |
等しくない | – |
gt |
より大きい | 数値や日付で使う |
contains |
部分一致 | 文字列に特定の文字が含まれるか |
特に、eqを使うときに=と書かないように注意してください。式の作成時には「動的なコンテンツ」と「式」タブを適切に使い分けましょう。また、数値と文字列の比較(例:'123' eq 123)は型が不一致でエラーになります。実行履歴のエラーメッセージにInvalid typeと表示される場合は、型の変換を検討します。
3.3 フロー設計の問題:Apply to eachとの組み合わせ
フィルター処理をApply to eachループ内に置くと、ループのたびにフィルターが実行され、パフォーマンスが低下するだけでなく、ループの外でフィルター結果を使おうとすると意図しない動作になります。例えば、全てのアイテムに対してフィルターをかけたいなら、ループの外で一度だけフィルターを実行するのが正しい設計です。実行履歴でApply to eachの「反復回数」が増えすぎていないか、フィルターアクションがループ内にある場合は、ループ外に移動することを検討します。
4. よくある失敗パターンとその対処法(Q&A形式)
ここでは、実際によく寄せられる質問とその回答をまとめます。
Q1: フィルターの出力が空になってしまう。条件式は間違っていないと思うが、なぜ?
A1: 配列のプロパティ名にスペルミスがないか、大文字小文字が一致しているか確認してください。また、値に前後の空白がある場合、trim関数を使ってから比較する必要があります。実行履歴で実際の値をコピーし、条件式と突き合わせると原因がわかります。
Q2: 「Filter array」アクションで「InvalidTemplate」エラーが出る。
A2: これは式の構文が間違っている場合に発生します。よくあるのは、カッコや引用符の不足、関数名のタイプミスです。実行履歴の「エラー」タブに詳細なエラー位置が表示されるので、そこを修正します。
Q3: 日付でフィルターしたいが、うまくいかない。
A3: 日付の形式が異なる可能性があります。SharePointの日付はUTC形式、一方別のコネクタではローカル形式など、統一されていないと比較できません。formatDateTime関数で揃えてから比較するのが安全です。
Q4: 配列のインデックスが0から始まるか1から始まるか?
A4: Power Automateの配列は0から始まります。ただし、first関数などは最初の要素を返します。フィルター条件でインデックスを使うことは少ないですが、注意してください。
5. 管理者に確認すべき設定と社内ポリシー
あなたが会社のPower Automate環境で作業する場合、以下の点は管理者に確認してから変更するようにしてください。
- コネクタのアクセス許可: SharePointやOutlookなどのコネクタが正しく設定され、必要なデータにアクセスできるか。
- データ損失防止(DLP)ポリシー: 特定のコネクタの組み合わせが禁止されている場合、フィルター処理で使用できないデータがあります。
- Power Automateのライセンス: 無料版では一部のプレミアムコネクタが使えないため、フィルター処理が制限されることがあります。
- 実行履歴の保存期間: デフォルトでは28日間ですが、短縮されていると過去の履歴が参照できないことがあります。
これらの設定は社内ルールに依存するため、勝手に変更せずに管理者に相談してください。
6. まとめ
配列のフィルター処理で問題が発生したときは、まず実行履歴を開き、フィルターアクションの入力と出力を確認します。入力の配列が正しいか、条件式の演算子や値の型が適切か、フローの設計に無駄がないかを順にチェックすることで、多くの原因を特定できます。特に、データの型や大文字小文字の一致は見落としがちなポイントです。また、Apply to each内でフィルターを使っていないか、パフォーマンスにも注意しましょう。問題が解決しない場合は、エラーメッセージを正確に解読し、必要に応じて管理者やコミュニティに質問することをおすすめします。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Teams】画面共有時に「音声」も共有する方法!音が流れない時の設定手順
