ADVERTISEMENT

【Power Automate】承認者の動的指定でつまずく時の会社環境での安全な再設定

【Power Automate】承認者の動的指定でつまずく時の会社環境での安全な再設定
🛡️ 超解決

Power Automateの承認フローで、承認者を申請内容や申請者に応じて動的に指定する機能は業務効率化に非常に有効ですが、会社の環境では予期しないエラーでフローが停止することがしばしばあります。特に、動的コンテンツが正しく取得できず承認者が空になる、権限不足で取得が拒否される、式の構文ミスでエラーになるなどのトラブルが多く報告されています。本記事では、承認者の動的指定でつまずいた場合に、会社のポリシーや管理者設定を侵害せずに安全に再設定するための手順と注意点を整理します。原因の切り分け方から具体的な修正方法、管理者に確認すべきポイントまでを網羅的に解説します。

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

  • 最初に見る場所: フローの実行履歴にあるエラーメッセージとアクションの出力・入力です。エラーが発生した実行を詳細に確認することで、原因が式の問題か権限の問題かを素早く判断できます。
  • 切り分けの軸: 端末側(ブラウザやクライアントの不具合)、アカウント側(コネクタの権限やライセンス)、管理設定側(組織のポリシーやコネクタ構成)の3軸で切り分けます。特に、権限不足によるエラーは会社環境で頻発します。
  • 注意点: 会社PCのPower Automate設定を直接変更する前に、フローを必ずオフにしてください。また、コネクタの接続参照やアクセス許可を変更する場合は管理者の承認を得てから行ってください。

ADVERTISEMENT

1. 承認者の動的指定でよくあるエラーと原因

承認者の動的指定が失敗する原因は、主に3つのカテゴリに分けられます。それぞれの典型的なエラーと根本原因を理解することで、適切な対処が可能になります。

1-1. 動的コンテンツが空になる

承認アクションの「割り当て先」フィールドに設定した動的コンテンツが空のままフローが実行されると、承認者が存在しないためにエラーが発生します。原因として、参照先のアクション(例:SharePointの「アイテムの取得」やAzure ADの「ユーザーの取得」)が期待する値を返していない、プロパティ名のスペルが間違っている、または条件分岐で該当するユーザーが存在しないケースが考えられます。

1-2. コネクタの権限不足

会社環境では、Power Automateのコネクタ(SharePoint、Azure AD、Outlookなど)がユーザー情報を取得するために適切な権限を持っている必要があります。例えば、Azure ADコネクタで「直属の上司」を取得するアクションを使用する場合、接続に使用しているアカウントに「Directory.Read.All」権限が付与されていないとエラーになります。このような権限エラーは「アクセスが拒否されました」や「許可されていません」といったメッセージで通知されます。

1-3. 式の構文ミス

動的コンテンツを式で組み立てる際に、括弧の数が合わない、関数名を間違える、データ型が一致しないなどのミスが原因でエラーが発生します。特に、配列を期待しているフィールドに単一の値を渡したり、文字列が必要な場所にオブジェクトを渡すと、実行時に型変換エラーが起きることがあります。

2. フローの実行履歴を確認する方法

エラーの原因を特定する第一歩は、フローの実行履歴を詳細に確認することです。以下の手順で、エラーが発生したアクションとその詳細を把握してください。

  1. Power Automate に会社アカウントでサインインします。
  2. 左側のナビゲーションメニューから「マイフロー」を選び、対象のフローをクリックして開きます。
  3. 上部のタブ「実行履歴」をクリックし、エラーが発生した最新の実行を選択します。
  4. 表示された実行詳細画面で、各アクションのステータスを確認します。赤いアイコンが付いているアクションがエラー発生個所です。
  5. エラーアクションをクリックして展開し、「入力」や「出力」のセクションに表示されるエラーメッセージをコピーします。
  6. 必要に応じて、前後のアクションの出力も確認し、動的コンテンツがどのように受け渡されているかを追跡します。
  7. 特に「承認アクション」の「割り当て先」フィールドの出力が空になっていないかを確認します。空の場合は、その前段のアクションで正しいユーザーが取得できているかチェックします。

実行履歴から得られるエラーメッセージは、直接的な原因(例:式の評価失敗、権限不足、タイムアウト)を示しているため、これをもとに対処の方向性を決定します。

3. 動的指定の式を安全に修正する手順

原因が式の問題であると特定できた場合、以下の手順で安全に修正を行います。会社環境では、フローを直接編集する前に必ず「オフ」の状態にし、テスト環境で検証することを推奨します。

  1. フローを編集する前に、フロー一覧画面で対象フローのトグルスイッチをオフ(保存済み)にします。これにより、修正中の誤った状態で実行されるリスクを回避できます。
  2. 「編集」ボタンをクリックし、フローデザイナーを開きます。
  3. 問題の承認アクションをクリックし、「割り当て先」フィールドの式を確認します。式が動的コンテンツトークンだけで構成されている場合は、トークンが正しいアクションを参照しているか確認します。
  4. もし式が複雑な場合は、新しいアクション(例:「Compose」)を挿入し、その中で問題の式をそのまま記述して実行し、出力が期待する値になるかテストします。これにより、承認者を変更せずに式の評価結果を確認できます。
  5. 問題が解決したら、承認アクションに修正後の式を反映します。変更後は必ず「保存」します。
  6. フローをオンの状態にし、テストデータを使って実行し、正常に動作することを確認します。このとき、実際のデータに影響を与えないよう、テスト用のアイテムやユーザーを使用することが望ましいです。

4. 状況別:動的承認者の指定方法の比較と注意点

承認者の動的指定には複数の方法があり、それぞれに利点と注意点があります。以下の比較表を参考に、自分の要件に合った方法を選択してください。会社環境では、特にコネクタの権限とライセンスの制約に注意が必要です。

指定方法 利点 注意点 会社環境での適用可否
SharePointリストから取得 リストのデータを編集するだけで承認者を柔軟に変更できます。 リストへのアクセス権限が必要。大量データの場合、パフォーマンスに影響する可能性があります。 通常は可能。ただし、管理者がリストの権限を適切に設定している必要があります。
Azure AD(ユーザープロファイル)から取得 組織全体のユーザー情報(上司、部署、役職など)を直接利用できます。 Azure ADコネクタの使用には管理者の同意と適切な権限が必要。多くの場合、Power Automate プレミアムライセンスが必要です。 要管理者確認。一般的にはプレミアムライセンスが必要なケースが多いです。
変数や式で直接指定 シンプルで軽量、外部データソースに依存しません。 承認者を変更するたびにフローの編集が必要。複雑な条件には向きません。 問題なく使用可能。ただし保守性に注意が必要です。
条件分岐(条件アクション)で承認者を分岐 申請内容に応じて承認者を切り替える高度な動的制御が可能です。 フローが複雑になりやすく、テストが重要。分岐条件を誤ると承認者が空になるリスクがあります。 設計次第で可能。ただし、条件のバリデーションを徹底してください。

5. 失敗パターンと具体的な対処策

経験則から、よく遭遇する失敗パターンとその対処方法をまとめました。同じエラーが発生した場合、以下の例を参考に対応してください。

5-1. 「この操作は許可されていません」エラー

このエラーは、多くの場合コネクタの権限不足が原因です。例えば、Azure ADコネクタで「直属の上司の取得」アクションを使用した際に、接続アカウントに必要な権限がないと発生します。対処としては、コネクタの接続参照を管理者に確認し、適切な権限を持つアカウント(サービスアカウントなど)に変更してもらうか、自分に権限がある場合は接続参照を再作成します。

5-2. 承認者が複数割り当てられる場合の重複や漏れ

動的指定の結果、同じユーザーが複数回リストに含まれたり、条件を満たすユーザーが存在せず空の配列になってしまうことがあります。重複を避けるには、式の中でunion()関数やintersect()関数を使用して重複を除外します。また、空配列が発生しないよう、条件が一致しない場合のデフォルト承認者を設定するif文を組み込むことを検討してください。

5-3. 外部ユーザーを承認者に指定する際の注意

招待ゲストなどの外部ユーザーを承認者として動的指定する場合、そのユーザーがAzure AD上で正しく登録されているか確認します。外部ユーザーのメールアドレスを直接指定する場合は、「他のユーザー」として承認アクションに追加する必要があります。ただし、外部ユーザーが組織のポリシーで承認者として許可されているか、事前に管理者に確認してください。

6. 管理者に確認すべき設定ポイント

会社環境では、Power Automateの設定やコネクタの権限は管理者が管理しているケースが多いです。以下のポイントを管理者に問い合わせることで、トラブルの原因を特定しやすくなります。

  • コネクタの接続参照に使用されているアカウントの権限: SharePoint、Azure AD、Outlookなどのコネクタに、必要な情報(例:ユーザープロファイル、リストアイテム)を読み取る権限があるか確認してください。
  • 承認アクションで受け入れ可能なユーザー識別子の形式: 会社の環境では、ユーザープリンシパル名(UPN)、メールアドレス、オブジェクトIDのいずれかが使用可能か、また、パイプラインで複数の承認者を渡す際に区切り文字が必要かなどのルールを確認します。
  • 組織のPower Automateポリシー: 動的承認者の使用が組織ポリシーで制限されていないか、また、自己承認や外部ユーザー承認に関する制約がないか確認します。
  • ライセンス: Azure ADやSharePointの特定のアクションを使用するために、Power AutomateプレミアムライセンスやOffice 365ライセンスが必要な場合があります。現在の割り当てライセンスを確認してください。
  • フロー実行用のサービスアカウント: フローが特定のサービスアカウントで実行されている場合、そのアカウントに必要な権限が付与されているか確認します。

7. よくある質問(FAQ)

Q1. 申請者自身を承認者に動的指定できますか?

可能です。例えば、申請者のメールアドレスをそのまま承認者フィールドに設定できます。ただし、自己承認が許可されているか組織のポリシーを確認してください。また、自己承認の場合は自動承認扱いとなることがあるため、意図しない動作を防ぐために事前にテストしてください。

Q2. 動的指定で条件分岐は使えますか?

はい、条件アクションを使用して承認者を分岐させる、あるいは式内でif関数を使うことで実現できます。例えば、申請金額が一定以上なら承認者A、それ以下なら承認者Bといった制御が可能です。ただし、複数の条件を組み合わせるとフローが複雑になりやすいため、コメントを残すなどして保守性を高めることをお勧めします。

Q3. テスト環境と本番環境で動的指定の結果が異なるのはなぜですか?

テスト環境と本番環境では、コネクタの接続参照に使用しているアカウントの権限、SharePointリストのデータ、Azure ADのユーザー情報が異なる可能性があります。特に、テスト環境で使用しているリストやユーザーが本番とは別のグループである場合、動的コンテンツの取得結果が変わることがあります。本番適用前には、本番環境と同等の設定をテスト環境に再現して動作確認を行ってください。

8. まとめ

承認者の動的指定でエラーが発生した場合、まずはフローの実行履歴を確認し、エラーメッセージから原因を切り分けることが重要です。多くの問題は動的コンテンツの空渡し、コネクタの権限不足、式の構文ミスに集約されます。会社環境では、管理者の設定やポリシーに影響を受けるため、修正作業はフローをオフにしてから行い、変更前に管理者へ確認を依頼してください。本記事で紹介した手順と比較表を参考に、安全かつ効率的に再設定を進めてください。適切な対処により、承認フローの安定稼働を実現できます。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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

ADVERTISEMENT