Power AutomateのSelectアクションは、配列やテーブルから特定のプロパティを抽出する便利な操作です。しかし、実行時に「権限エラー」が発生してフローが中断されるケースが少なくありません。このエラーは多くの場合、アクションに入力される値の形式やアクセス権限に起因します。本記事では、エラー原因を切り分け、入力値の正しい指定方法と条件分岐による回避策を具体例とともに解説します。会社のクラウドフローで同様のトラブルに直面した際の判断材料としてお役立てください。
【要点】この記事で確認すること
- 最初に見る場所: フロー実行履歴のエラーメッセージとSelectアクションの「From」・「Map」プロパティに入力された値
- 切り分けの軸: アクセス権限の問題か、それとも入力値のデータ型・構造の問題か
- 注意点: 会社PCでコネクタの権限設定を変更する前に、必ず管理者に確認する必要があります
ADVERTISEMENT
目次
権限エラーの主な原因と最初の確認手順
Selectアクションで発生する権限エラーは、大きく分けて二つの原因が考えられます。ひとつはアクションが参照するデータソース(SharePointリスト、Excelテーブル、Dataverseなど)に対するコネクタのアクセス権限が不足しているケースです。もうひとつは、Selectアクションの入力値が不正で、結果的に存在しないプロパティや権限のないオブジェクトを参照しようとするケースです。まずはエラーメッセージを確認し、どの段階で失敗しているかを把握します。
エラーメッセージの読み解き方
フロー実行履歴を開き、失敗したSelectアクションをクリックして出力の詳細を確認してください。エラーコードやメッセージに「AccessDenied」「Permission」「401」「403」といったキーワードが含まれている場合は、権限の問題が疑われます。一方、「InvalidTemplate」や「BadRequest」といったエラーの場合は、入力値の形式に問題がある可能性が高いです。
入力値の形式を確認する
Selectアクションには「From」と「Map」の二つのプロパティがあります。「From」には配列またはテーブル(JSON配列)を指定する必要があります。よくあるミスとして、単一のオブジェクトや文字列を指定してしまうケースがあります。また、「Map」では「プロパティ名: 値」の形式で抽出する項目を指定します。このとき、指定したプロパティ名が実際のデータに存在しない場合も権限エラーに見えることがあります。
入力値の確認と修正手順(操作手順)
以下の手順で、入力値が正しいかどうかを確認し、必要に応じて修正を行います。
- フローの編集画面を開き、Selectアクションをクリックしてプロパティを表示します。
- 「From」フィールドに入力されている値を確認します。その値の型が配列またはテーブルであることを確かめてください。動的コンテンツを使っている場合は、その出力が配列であることを事前に確認します。
- 必要に応じて、直前のアクションでJSON解析アクションやApply to eachを使って配列化する処理を追加します。
- 「Map」フィールドで指定しているプロパティ名が、実際のデータ構造と一致しているかを確認します。例えば、SharePointリストの「Title」フィールドなら「Title」と記述します。
- テスト実行を行い、Selectアクションが成功するか確認します。それでもエラーが続く場合は、次のセクションで説明する条件分岐を検討します。
条件分岐を活用したエラー回避方法
権限エラーの原因がデータソースへのアクセス権限そのものにある場合、条件分岐を追加することでエラーを回避できる場合があります。例えば、特定のユーザーだけがアクセスできる項目がある場合、その項目を参照する前にアクセス権限の有無を確認する条件を組み込みます。
条件分岐の実装例
「条件」アクションを使用し、Selectアクションを実行する前に、参照するデータが存在するか、権限が付与されているかをチェックします。例えば、SharePointリストからアイテムを取得する際、「アイテムの取得」アクションの後に「条件」を配置し、取得したアイテムに特定のフィールドが含まれているかどうかを判定します。もし含まれていない場合(権限がない場合)は、代替値を設定するなどの処理に分岐させます。
入力値の動的チェック
別の方法として、Selectアクションの「From」に渡す配列をフィルターアクションで事前に絞り込み、権限のない項目を除外する手法も有効です。例えば、SharePointリストの「作成者」が自分自身であるアイテムのみを抽出してからSelectを実行すれば、アクセス権限の問題が減ります。この場合、フィルターアクションで条件を設定する必要があります。
状況別の比較表
| エラーの種類 | 原因 | 具体的なエラー例 | 推奨される対処法 |
|---|---|---|---|
| 権限エラー(AccessDenied) | コネクタのアクセス権限不足、またはデータソース側の権限設定 | Access to the resource is denied | 管理者に権限付与を依頼、または条件分岐で未許可のデータをスキップ |
| テンプレートエラー(InvalidTemplate) | Selectアクションの入力値が配列でない、またはMapのプロパティ名が誤り | The template language expression cannot be evaluated | 入力値のデータ型とプロパティ名を確認・修正 |
| HTTPエラー(403 Forbidden) | コネクタの認証トークン切れ、またはIP制限 | Forbidden: Access is denied | コネクタを再接続、または管理者にネットワーク制限の解除を依頼 |
よくある質問(FAQ)
ここでは、Selectアクションの権限エラーに関してよく寄せられる質問をまとめました。
Q1. 「From」にExcelテーブルを指定しているのに権限エラーになります
Excel Online (Business) コネクタを使用している場合、Excelファイル自体の共有設定や、コネクタのサービスプリンシパル権限が不足している可能性があります。ExcelファイルがOneDriveやSharePointに保存されている場合は、該当のサイトに対するアクセス許可を確認してください。また、テーブル名が正しいかも併せて確認します。
Q2. 条件分岐を追加してもエラーが解消しません
条件分岐の前段階のアクションで既にエラーが発生している可能性があります。例えば、Selectアクションの直前の「アイテムの取得」アクションで権限エラーが出ている場合、条件分岐でSelectを囲んでも意味がありません。エラーが発生している最初のアクションを特定し、そちらを修正する必要があります。
Q3. 管理者に権限を依頼するとき、何を伝えればよいですか?
エラーの詳細画面のスクリーンショット、フローのID(フロー一覧から取得可能)、影響を受けるデータソースの種類と場所(例:SharePointサイトURL、Excelファイルのパス)、使用しているコネクタの種類を伝えてください。管理者はそれらの情報をもとに、適切なサービスプリンシパルやAPI許可の設定を行うことができます。
まとめ
Power AutomateのSelectアクションで権限エラーが発生した場合、まずはエラーメッセージを確認し、権限不足なのか入力値の誤りなのかを切り分けることが重要です。入力値のデータ型とプロパティ名を正しく指定することで、多くのケースは解決します。それでも解決しない場合は、条件分岐を追加して権限のないデータをスキップする方法や、管理者に権限設定を依頼する方法を検討してください。適切な対処により、フローの安定稼働を実現できます。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Teams】画面共有時に「音声」も共有する方法!音が流れない時の設定手順
