Power Automateの承認フローで承認者を動的に指定しようとしたときに、正しく動作せず困った経験はありませんか。たとえば「承認者にメールが届かない」「想定とは異なるユーザーに割り当てられる」「フロー自体がエラーになる」といった症状が発生することがあります。これらの問題の原因は、多くの場合フローの設定ミスだけでなく、Power Platform管理画面のポリシーや権限設定にあります。本記事では、承認者の動的指定でトラブルが起きた際に、管理者画面で確認すべき具体的なポイントを手順を交えて解説します。管理画面にアクセスできる方であれば、すぐに確認できる内容に絞っています。
【要点】この記事で確認すること
- 最初に見る場所: Power Platform管理センターの環境設定、データ損失防止(DLP)ポリシー、および該当フローが属する環境の「承認」コネクタ設定。
- 切り分けの軸: 「フロー側の式や動的コンテンツの記述ミス」「アカウント情報の取得元の違い」「管理画面でのポリシー制限」の3つで原因を分類する。
- 注意点: 会社のポリシーによっては一般ユーザーが管理画面を閲覧できない場合があります。その際はIT管理者に確認を依頼してください。自身で変更する前に、既存の設定をスクリーンショットで保存しておくことを推奨します。
ADVERTISEMENT
目次
動的指定が効かない原因を切り分ける3つの視点
承認者の動的指定に関するトラブルは、フローの設計段階で見落としがちなポイントが原因となっているケースが大半です。しかし、管理画面での設定も大きく影響します。まずは原因を特定するための3つの視点を整理します。
アカウント情報の取得元と想定の違い
承認者を動的に指定する際に、よく使われるのが「作成者」や「ユーザーのプロファイル」から取得したメールアドレスやユーザーIDです。しかし、これらの動的コンテンツはフローがトリガーされたときに実際に取得される値が、想定と異なる場合があります。たとえばSharePointリストの「作成者」フィールドは表示名やメールアドレスではなく、ユーザーID(GUID)を返すことがあります。また、Teamsのチャットトリガーから取得できるユーザー情報はテナント内のユーザーとは限りません。このような場合、承認アクションの「割り当て先」にそのまま指定しても正しく動作しないため、まずはフロー内で出力を確認できる仕組み(電子メール通知や変数への格納)を組み込むことが有効です。管理画面の設定だけでなく、フロー内のデバッグも視野に入れる必要があります。
承認アクションの設定ミス
承認アクションには複数のバリエーション(「承認の開始と待機」「承認を作成」「割り当て」など)が存在し、それぞれ動的指定の受け入れ方が異なります。たとえば「承認の開始と待機」では「割り当て先」にユーザーのメールアドレスを指定しますが、「承認を作成」では「割り当て先」にユーザーIDやUPNが必要となる場合があります。また、複数の承認者を指定する場合は配列形式で渡す必要があり、カンマ区切りの文字列をそのまま渡すとエラーになります。フローがエラーにならずに動作するが承認者が想定と異なる場合は、この記述方法をまず確認してください。
環境設定やポリシーによる制限
Power Automateの承認アクションは、テナント全体や環境単位で設定されるDLPポリシーの影響を受けます。特に「承認」コネクタがビジネスデータのみに制限されている場合、外部ユーザーやゲストユーザーへの承認依頼がブロックされることがあります。また、環境の「特徴」設定で「承認」に関連する機能が無効化されていると、動的指定そのものが動作しません。これらの制限はフロー作成者には見えにくいため、管理画面での確認が必須です。
Power Platform管理画面で確認すべき設定項目
管理画面で確認すべき項目は多岐にわたりますが、承認者の動的指定に直接影響するものに絞って説明します。以下の手順で確認を進めてください。
- Power Platform管理センター(https://admin.powerplatform.microsoft.com)にサインインします。グローバル管理者または環境管理者の権限が必要です。権限がない場合はIT管理者に依頼してください。
- 左メニューから「環境」を選択し、該当のフローが配置されている環境をクリックします。環境が不明な場合は、フロー編集画面の右上にある「環境」ドロップダウンで確認できます。
- 環境の詳細画面で「設定」をクリックし、「製品」タブ内の「特徴」セクションを開きます。ここで「承認」機能が有効になっているか確認します。無効の場合は有効に変更します。ただし、変更には管理者権限が必要です。
- 続いて「データ損失防止ポリシー」を確認します。左メニューの「データポリシー」を選択し、該当環境に適用されているポリシーを開きます。承認コネクタが「ビジネス」または「許可」に設定されていることを確認します。もし「ブロック」となっていたら、承認アクションは使用できません。ポリシーの変更はテナント全体に影響する可能性があるため、必ず管理者と相談してください。
- 最後に、環境の「ユーザー権限」を確認します。「設定」→「ユーザー権限」で、フロー作成者(またはフローを実行するサービスアカウント)に「作成者」ロールまたは「環境管理者」ロールが割り当てられていることを確認します。権限が不足していると、動的指定で使用するコネクタ(Office 365 Usersなど)が正しく動作しないことがあります。
上記の確認で問題が見つからない場合、次のステップとして「承認」コネクタの詳細設定を調べます。管理画面では直接表示されませんが、フロー編集画面で承認アクションを開き、「設定」タブ内の「承認の詳細」オプションが有効になっているか確認します。ここで「承認者にメールで通知する」がオフになっていないかもチェックポイントです。
| 確認項目 | 管理画面での場所 | 推奨設定 |
|---|---|---|
| 承認機能の有効化 | 環境→設定→特徴→承認 | オン |
| 承認コネクタのDLPポリシー | データポリシー→該当環境のポリシー | ビジネスまたは許可 |
| ユーザー権限(フロー作成者) | 環境→設定→ユーザー権限 | 作成者以上 |
| 承認アクションの詳細設定 | フロー編集画面→承認アクション→設定 | 「承認者にメールで通知する」オン |
承認者指定に使える動的値の種類と正しい記述方法
管理画面の設定に問題がない場合、次に疑うべきは動的コンテンツの記述方法です。Power Automateで承認者を動的に指定するには、主に以下の3つの方法があります。それぞれの特徴と注意点を比較します。
- 動的コンテンツの直接指定: トリガーやアクションから出力される「ユーザーのメール」「ユーザーID」などをそのまま割り当て先に設定します。たとえばSharePointの「作成者メール」フィールドは、実際には「作成者」というユーザーオブジェクトの一部であり、表示名ではなくメールアドレスが返されることがあります。また、Teamsの「ユーザーのプリンシパル名」はテナント外部ユーザーの場合は異なる形式になるため注意が必要です。
- 式を使用した指定: 複雑な条件や変換が必要な場合は、Power Automateの式(ワークフロー定義言語)を使います。たとえば
outputs('Get_manager')?['mail']のようにして、上長のメールアドレスを取得できます。ただし、式の結果が空の場合や存在しないプロパティを参照するとエラーになります。 - 変数を用いた指定: フロー内で変数に動的に格納した値を割り当て先に使用します。この方法は複数の条件で承認者を切り替える際に有効ですが、変数に代入する際のデータ型が配列か文字列かを意識する必要があります。
よくある失敗パターンとその対策
現場で頻繁に発生する失敗パターンを具体的に紹介します。これらの多くは管理画面での設定変更ではなく、フロー内の記述を修正することで解決します。
メールアドレスの大文字小文字問題
承認アクションの「割り当て先」は大文字小文字を区別しませんが、動的コンテンツから取得したメールアドレスに余分な空白や改行が含まれているとエラーになります。特にSharePointリストから取得した場合、ユーザー列の値は「LastName, FirstName」のような表示名であることがあり、メールアドレスとして認識されません。この場合は、triggerOutputs()?['body/Author/EMail']のように、明示的にメールアドレスを参照する式を使用します。
複数承認者の指定方法
複数の承認者を動的に指定する場合、割り当て先に配列を渡す必要があります。よくあるミスは、カンマ区切りの文字列(例: "user1@contoso.com,user2@contoso.com")をそのまま設定することです。正しくは、["user1@contoso.com","user2@contoso.com"]のような配列形式で指定します。フロー内で文字列を配列に変換するには、split()関数を使用します。たとえば変数にカンマ区切りで保持している場合、split(variables('approvers'), ',')と記述します。
条件分岐による承認者の切り替え
申請内容に応じて承認者を動的に変えたい場合、条件アクション(条件制御)を使用して複数の承認アクションを分岐させる方法と、1つの承認アクションで割り当て先を式で動的に変える方法があります。後者の場合、if(equals(triggerBody()?['amount'], 'large'), 'director@contoso.com', 'manager@contoso.com')のように条件式を直接記述します。ただし、この方法では全員に通知が行かないケースがあるため、テスト時に実際の承認依頼が正しい人に届くか必ず確認してください。
管理者に確認すべき情報と依頼の仕方
管理画面にアクセスできない一般ユーザーの場合、IT管理者に確認を依頼する必要があります。その際、トラブルシューティングを効率化するために、以下の情報を伝えてください。
- 該当フローの名前と環境名(フロー編集画面のURLも含めると確実です)
- 承認者の動的指定に使用している具体的な動的コンテンツまたは式のスクリーンショット
- 発生している症状の詳細(エラーメッセージ、承認依頼が届かないユーザー、想定と異なる動作など)
- フローの実行履歴(RUN)のスクリーンショット。失敗したステップの出力を確認すると原因が分かりやすいです
管理者は、これらの情報をもとにDLPポリシーや環境設定を確認し、必要に応じて変更を検討します。ただし、ポリシー変更は組織全体のセキュリティに影響するため、簡単には変更できない場合があります。その場合は代替案として、承認者を静的に指定するか、別のコネクタ(Outlookなど)で承認フローを組むことを検討してください。
よくある質問
Q1. 動的指定した承認者が正しく認識されない。管理画面で確認すべきことは?
まずは承認アクションの「割り当て先」に指定した値が、本当にメールアドレスまたはユーザーIDになっているかを確認します。フロー実行履歴で該当の承認アクションを開き、入力パラメーターの「AssignTo」の値を確認してください。もしGUIDや表示名のような値が入っている場合は、式を使って変換する必要があります。管理画面ではDLPポリシーと承認機能の有効化を確認してください。
Q2. 承認者を外部ユーザー(ゲスト)にしたいが、フローがエラーになる。
DLPポリシーで承認コネクタが「ビジネスデータのみ」に設定されている場合、外部ユーザーへの承認依頼がブロックされます。管理画面のデータポリシーを確認し、許可するよう変更する必要があります。ただし、セキュリティポリシーとの兼ね合いがあるため、管理者に相談してください。
Q3. 「承認の開始と待機」アクションで動的指定がうまくいかない。管理画面では何も問題ないと言われた。
フロー内の記述を確認してください。特に複数承認者を指定する場合、配列形式になっているか確認します。また、承認アクションの「承認の種類」が「全員承認」か「順次承認」かで、動的指定の挙動が異なる場合があります。フローのロジックを見直してみてください。
まとめ
承認者の動的指定に関するトラブルは、管理画面のポリシー設定とフロー内の記述の双方を確認することで解決できます。まずはPower Platform管理センターで承認機能の有効化、DLPポリシー、ユーザー権限をチェックしてください。次にフロー実行履歴で動的コンテンツの実際の値を確認し、必要に応じて式で正しい形式に変換します。管理者に依頼する場合は、具体的な証拠を添えて連絡することで迅速な対応が期待できます。本記事で紹介した確認ポイントを参考に、スムーズな承認フローの運用を目指してください。
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Excel】文字が入っているセルの「個数」を数える!COUNTA関数の簡単な使い方
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
