Power AutomateのSelectアクションは、配列の各要素に対して変換処理を行う便利なアクションです。しかし、想定どおりの結果が得られず、データが空になったりエラーが発生したりするケースが少なくありません。多くの場合、原因はフローの接続設定や所有者の変更にあります。本記事では、Selectアクションが正常に動作しない原因を具体的に切り分け、解決策を紹介します。
【要点】この記事で確認すること
- 最初に見る場所: Selectアクションの「入力」タブで使用している動的コンテンツが正しく参照されているか、またフローの「接続」タブで各コネクタの接続状態を確認します。
- 切り分けの軸: 問題が「接続の有効期限切れ」「所有者の不一致」「データ構造の誤り」のいずれに起因するかを、エラーメッセージやフロー実行履歴から判断します。
- 注意点: 会社のPCでフローを編集する場合、接続を変更すると他のユーザーに影響を与える可能性があります。特に共有フローでは、接続所有者の変更を管理者に確認してから行ってください。
ADVERTISEMENT
目次
Selectアクションの基本動作とトラブルの概要
Selectアクションは、配列の各要素に対して式やマッピングを適用し、新しい配列を生成します。たとえば、SharePointのリストアイテムから特定のフィールドだけを抽出したり、値を加工したりする際に使用します。このアクションが想定どおりに進まない場合、主に以下の3つの原因が考えられます。
Selectアクションが想定どおりに動かない典型的な症状
次のような症状が発生した場合、接続または所有者の問題を疑ってください。
- Selectアクションの出力が空の配列になる
- 「BadRequest」や「InvalidTemplate」といったエラーが表示される
- フローは成功するが、後続のアクションでデータが正しく渡らない
- 特定のユーザーだけがフローを実行するとエラーになる
これらの症状は、単体では原因を特定しにくいですが、接続と所有者の観点から調査することで解決の糸口が見えてきます。
原因1: フローの接続設定が正しくない
Power Automateの各アクションは、SharePoint、Outlook、SQL Serverなどのサービスに接続するためにコネクタを使用します。Selectアクション自体は直接接続を持ちませんが、Selectの中で参照している動的コンテンツ(例: SharePointのリストアイテム)が別のアクションから取得される場合、そのアクションの接続が問題になることがあります。
接続の参照が切れているケース
フローを複製したり、別の環境にインポートしたりすると、元の接続がそのまま引き継がれず、接続が「無効」または「切断」状態になることがあります。Selectアクションで使用している動的コンテンツが正しく表示されない場合は、まずフローエディター上部の「接続」タブを開き、すべての接続が有効か確認してください。
接続所有者が異なるケース
フローを他のユーザーと共有したり、フロー作成者が変わったりした場合、接続の所有者がフロー実行者の権限と一致しないことがあります。Selectアクションがデータソースにアクセスできない場合、実行時に「アクセス拒否」や「接続できません」といったエラーが発生します。この問題を解決するには、フローの所有者または共有設定を見直す必要があります。
原因2: フローの所有者変更や共有による影響
Power Automateでは、フローの所有者を変更したり、フローを共有したりすると、接続の所有者も自動的に変更されるわけではありません。その結果、フローを実行するユーザーが持っていない権限が必要なアクションに遭遇し、Selectアクションが正しく動作しないことがあります。
フローを共有した後の動作変化
たとえば、自分が作成したフローを同僚と共有した場合、同僚はフローを実行できますが、Selectアクションの中で使用しているSharePointリストへのアクセス権限が同僚にない場合は、データが取得できずにエラーになります。このようなケースでは、フローを実行するユーザーに適切なアクセス権を付与するか、接続を共有フロー用に再設定する必要があります。
接続所有者の確認方法
フローエディターの「接続」タブを開くと、各コネクタの横に所有者が表示されます。ここで表示される所有者が、実際にフローを実行するユーザーと一致しているかを確認しましょう。もし異なる場合は、接続を編集して適切なアカウントで再サインインすることを検討します。
原因3: データ構造の不一致
Selectアクションの動作が想定どおりでない場合、接続や所有者が正しくても、データ構造の誤りが原因であることもあります。特に、動的コンテンツとして配列を選択する際に、誤ったプロパティを指定しているケースがよく見られます。
入力配列の型やプロパティ名のミス
Selectアクションの「From」フィールドには、配列型のデータを指定する必要があります。たとえば、SharePointの「複数選択」フィールドや「ユーザー」フィールドは配列として取得されますが、通常のテキストフィールドは単一値です。誤って単一値を指定すると、実行時にエラーが発生します。また、マッピングで指定するプロパティ名が実際のデータ構造と一致しない場合も、出力が空になります。
動的コンテンツの選択ミス
フローエディターで動的コンテンツを選択する際、同じような名前のフィールドが複数あると、間違ったプロパティを選んでしまうことがあります。特に、以前のアクションの出力をそのまま使う場合、プロパティ名が「value」や「items」など一般的なものだと混乱しやすいです。フローの実行履歴から実際の出力を確認し、正しいプロパティを指定しているかどうかを検証してください。
トラブルシューティング手順
以下の手順に沿って、問題を特定してください。また、症状別の原因を比較した表も参考にしてください。
| 症状 | 考えられる原因 | 確認ポイント |
|---|---|---|
| 出力が空の配列 | データ構造の不一致、接続切れ | 動的コンテンツのプレビューが正しいか |
| BadRequestエラー | 接続所有者の不一致 | 接続タブの所有者が実行ユーザーと一致するか |
| InvalidTemplateエラー | プロパティ名の誤り | 式内のプロパティ名が実際のデータと一致するか |
| 一部のユーザーだけエラー | 権限不足 | 該当ユーザーにデータソースへのアクセス権があるか |
- フローエディターを開き、上部メニューの「接続」タブをクリックします。すべてのコネクタに緑色のチェックマークが付いているかを確認します。もし赤い×や「無効」が表示されている場合は、その接続をクリックして再認証を行います。
- 接続が有効でも問題が解決しない場合は、各接続の所有者を確認します。所有者が現在のフロー実行アカウントと異なる場合、「編集」をクリックして適切なアカウントでサインインし直します。
- Selectアクションの設定を開き、「入力」タブで使用している動的コンテンツが実際のデータ構造と合っているか確認します。フローを実行し、実行履歴から前のアクションの出力を開いて、プロパティ名やデータ型を確認してください。
- 特に配列を扱う場合、Selectアクションの「From」フィールドに配列が渡されているかどうかを確認します。必要に応じて、前段のアクションで「Apply to each」を使わずに直接配列を出力するように調整します。
- フローを共有している場合は、フローを実行するユーザーそれぞれが適切なライセンスとデータソースへのアクセス権を持っているかを確認します。必要なら管理者に権限追加を依頼してください。
管理者への確認事項と再発防止
フローの接続や所有者に関する問題は、個人で解決できない場合もあります。以下の情報を管理者に伝えることで、迅速な対応が期待できます。
管理者に伝えるべき情報
- フローID(フローエディターのURLから取得可能)
- エラーメッセージのスクリーンショットまたは詳細なエラーログ
- 問題が発生するユーザーアカウントと正常に動作するアカウントの違い
- 該当するコネクタの接続所有者情報
再発防止のための設計ポイント
フローを新規作成する際は、以下の点に注意することで、Selectアクションのトラブルを予防できます。
- 接続はサービスアカウント(汎用アカウント)を使用し、個人アカウントに依存しないようにする。
- フローを共有する場合は、各ユーザーが自分自身の接続を使用できるように「実行専用」権限で共有する。
- Selectアクションで使用する動的コンテンツは、事前にテスト実行して出力を確認しておく。
よくある質問
Q: SelectアクションのFromに配列を指定しているのに、出力が空になるのはなぜですか?
A: 配列の各要素に期待するプロパティがない場合や、プロパティ名が異なる場合に出力が空になります。前のアクションの出力をJSONとして確認し、プロパティ名が正しいかどうかを検証してください。
Q: フローを複製したらSelectアクションでエラーが出るようになりました。どうすればいいですか?
A: 複製元のフローで使用していた接続が引き継がれていない可能性があります。フローエディターの「接続」タブで、すべての接続が有効か確認し、必要なら再認証してください。
Q: フローを共有した相手だけがSelectアクションでエラーになります。原因は何ですか?
A: 共有相手にデータソース(SharePointリストなど)へのアクセス権限がない、または共有相手が接続の所有者ではないことが考えられます。接続を共有相手用に再設定するか、アクセス権を付与してください。
Q: 接続を変更すると、他のフローに影響しますか?
A: 同じコネクタを使用している他のフローがある場合、接続の変更はそれらすべてに影響します。そのため、影響範囲を確認してから変更することをおすすめします。
まとめ
Selectアクションが想定どおりに動作しない場合、まずは接続の状態と所有者を確認することが重要です。多くの問題は、接続の再認証や所有者の変更で解決します。それでも解決しない場合は、データ構造の誤りや権限不足を疑ってください。フローの設計時に、接続をサービスアカウントで統一し、適切に共有設定を行うことで、再発を防止できます。トラブルシューティングの手順を参考に、原因を一つずつ切り分けて解決してください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Teams】画面共有時に「音声」も共有する方法!音が流れない時の設定手順
