ADVERTISEMENT

【Power Automate】Selectアクションでつまずく時の会社環境での安全な再設定

【Power Automate】Selectアクションでつまずく時の会社環境での安全な再設定
🛡️ 超解決

Power AutomateのSelectアクションは、配列やオブジェクトの変換に使う便利な機能ですが、会社の環境で使おうとすると予期せぬエラーに遭遇することがあります。特に、アクションのプロパティ設定やデータ構造の理解不足、テナントのポリシー制限が原因でフローが停止するケースは少なくありません。本記事では、Selectアクションでつまずいた際に、会社環境でも安全に再設定する方法を、具体的な原因と手順を交えて解説します。管理者への確認が必要なポイントやよくある失敗パターンも網羅し、迅速なトラブル解決に役立ててください。

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

  • 最初に見る場所: Selectアクションの入力データ構造(配列かオブジェクトか)と「From」「Map」タブの設定内容。エラーメッセージの詳細も必ず確認します。
  • 切り分けの軸: 問題が「フローデザイナー上の設定ミス」「コネクタやAPIの制限」「テナントのポリシー/環境設定」のどれに起因するかを特定します。
  • 注意点: 会社PCでは、フローの編集権限やカスタムコネクタの使用が制限されている場合があります。管理者の承認なしに共有コネクタやプレミアムライセンスが必要なアクションを追加しないでください。

ADVERTISEMENT

Selectアクションの基本的な仕組みとつまずきやすいポイント

Selectアクションは、配列(JSON配列)またはオブジェクトの各要素に対して、指定したキーを抽出・変換して新しい配列を生成します。例えば、ユーザーリストから名前だけを取り出す、特定のプロパティの値を計算して新しいフィールドを追加するなど、データ加工の中核的な役割を果たします。しかし、会社のPower Automate環境では、次のような理由で動作しないことがあります。

よくあるエラーの原因

まず、Selectアクションが期待通りに動かない原因として、入力データの形式が間違っているケースが大半です。Selectは配列を入力として要求しますが、単一のオブジェクトや文字列を渡すとエラーになります。また、Mapタブで指定するキーのスペルや大文字小文字がデータと一致しない場合も失敗します。会社の環境では、SharePointリストやDataverseのデータを扱う際に、データ型が厳密に定義されているため、想定外の型変換が起きることがあります。

失敗パターンとその具体例

ここでは、実際に会社で発生しやすい4つの失敗パターンを紹介します。自分の状況に当てはめて確認してください。

パターン 症状 原因
1. 空の配列エラー フロー実行時に「テンプレート言語式の処理でエラーが発生しました」と表示される SelectのFromに空配列やnullが渡されている。特にループ内で生成した配列を後続のSelectで使う場合に発生。
2. キーが見つからない 実行結果に一部の値が欠けている、またはエラーになる Mapで指定したキー名が実際のプロパティ名と異なる(大文字小文字含む)。SharePointの内部名と表示名の違いも要注意。
3. 型の不一致 数値を文字列として扱おうとしてエラー、または日付の変換に失敗 DataverseのChoice型や参照型を直接Selectで加工しようとした場合など。
4. コネクタ制限 特定のコネクタから取得したデータをSelectに渡すとタイムアウトや403エラー 会社のポリシーでAPI呼び出し回数やデータサイズに制限がある。また、カスタムコネクタの許可がない。

会社環境での安全な再設定手順(5ステップ)

以下の手順を順に実施することで、Selectアクションを安全に再設定できます。作業中はフローが保存されるたびに新しいバージョンが作成されるため、元に戻せることも覚えておいてください。

  1. フローを複製してテスト環境で作業する
    元のフローを右クリック(または「保存」の横のメニュー)から「名前を付けて保存」で複製します。運用影響を避けるため、必ず自分だけのテストフローで修正を始めてください。
  2. Selectアクションの入力データを確認する
    Selectアクションを開き、Fromフィールドに指定している動的コンテンツをクリックして「式」が正しい配列を返しているか確認します。例えば、`items(‘Apply_to_each’)?[‘value’]` のような式が配列になっているか、出力のサンプルを実行ログで確認します。
  3. Mapタブのキーと値の設定を見直す
    Mapで新しいプロパティ名と値を指定する際、値に指定する動的コンテンツが現在のアイテムのプロパティと一致しているか確認します。大文字小文字を区別するため、データの実際のキー名をコピーして貼り付けることを推奨します。
  4. 型変換が必要な場合は明示的な式を使う
    数値⇔文字列の変換が必要なら、`string()` や `int()` 関数をMapの値に使います。日付は `formatDateTime()` を活用します。これにより予期せぬ型エラーを防げます。
  5. フローを保存してテスト実行
    修正後、フローを保存して「テスト」を実行します。「トリガー条件を使用」または「手動」で実行し、Selectアクションの出力を確認します。エラーが出た場合は、エラーメッセージに含まれる詳細情報(JSONのどの行で問題が起きたかなど)を解析します。

管理者へ確認すべきポイント

会社の環境によっては、ユーザー側で対応できない制限があります。以下の点を管理者に確認することで、早期解決につながります。

  • 使用しているコネクタのライセンス要件: Selectアクション自体は標準コネクタでも使えますが、元データの取得元(例えばDataverseやSalesforce)がプレミアムライセンスを必要とする場合があります。その場合、ライセンスの割り当てを依頼してください。
  • データ損失防止(DLP)ポリシー: 会社のテナントでは、特定のコネクタ間のデータ共有が禁止されている場合があります。Selectで別のコネクタのデータを加工しようとするとブロックされることがあるため、DLPポリシーの確認が必要です。
  • カスタムコネクタの使用可否: 組織で許可されていないカスタムコネクタを使っている場合は、別の方法を検討するか、管理者に申請します。
  • APIスロットリング制限: 大量データを処理するフローでは、Selectアクションの実行に時間がかかり制限に引っかかる可能性があります。管理者にエンドポイントの呼び出し制限値(例:1分あたりのリクエスト数)を確認し、必要なら分割処理を検討します。

よくある質問(FAQ)

Q1. SelectアクションのFromに配列を指定しているのにエラーになるのはなぜ?

最も多いのは、実際には配列でなくオブジェクトが渡されているケースです。例えば、SharePointの「アイテムの取得」アクションの出力は単一のオブジェクトであり、Selectアクションには配列でラップして渡す必要があります。`array()` 関数で囲むか、`items()` 関数を適切に使ってください。

Q2. 出力結果のキー名を動的に変えたいのですが?

Mapタブのキー名に動的コンテンツを使うことはできません。キー名は静的な文字列のみ指定可能です。どうしても動的なキー名が必要な場合は、Composeアクションを使ってJSONオブジェクトを構築する方式に変更してください。

Q3. 部署ごとに異なるテナントポリシーがある場合、どうすれば安全に再設定できますか?

各環境(開発/テスト/本番)を分けてフローを管理し、本番環境では制限の厳しいポリシーに合わせた設定にします。ポリシーに違反するようなコネクタの使用は避け、代わりにHTTPアクションなど代替手段を検討します。どうしても必要な場合は、IT管理者にポリシーの例外申請を行います。

まとめ

Selectアクションでつまずいたら、まず入力データの構造とMapのキー名を入念にチェックすることが第一歩です。会社環境では、ライセンスやポリシーの制約が原因で動作しないこともあるため、上記の手順で切り分けを行ってください。安全な再設定のためには、フローの複製、テスト実行、管理者への確認を徹底することをお勧めします。これらのポイントを押さえることで、Selectアクションを効果的に活用し、業務自動化のトラブルを最小限に抑えられます。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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

ADVERTISEMENT