ADVERTISEMENT

【Power Automate】子フローでつまずく時の会社環境での安全な再設定

【Power Automate】子フローでつまずく時の会社環境での安全な再設定
🛡️ 超解決

Power Automateで親フローから子フローを呼び出す設計は、ロジックの再利用や管理の効率化に役立ちます。しかし、会社のテナントやセキュリティポリシーが絡む環境では、予期せぬエラーでフローが止まってしまうことがあります。特に「子フローが見つからない」「アクセスが拒否された」といった問題は、原因が端末設定、アカウント権限、管理者側の制限のいずれにあるのか切り分けにくいものです。この記事では、会社のPCで安全に子フローを再設定する方法を、具体的な手順と失敗パターンを交えて解説します。管理者に依頼すべき内容や、自分で変更してはいけない設定についても触れますので、トラブル解決の道筋を明確にしてください。

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

  • 最初に見る場所: フロー実行履歴のエラーメッセージ、子フローのトリガー設定、共有設定の確認
  • 切り分けの軸: 端末側(ブラウザキャッシュ・拡張機能)、アカウント側(ライセンス・アクセス権限)、管理設定側(DLPポリシー・テナント間アクセス)
  • 注意点: 会社PCで環境設定やコネクタの承認を勝手に変更しない。管理者へ連絡すべき項目を明確にする。

ADVERTISEMENT

子フローで発生しやすいエラーとその原因

Power Automateの子フローは、親フローから「子フローの実行」アクションで呼び出します。ここでよく遭遇するエラーは次の3つです。

  1. 「フローが見つかりません」エラー: 子フローのIDが親フロー内で正しく指定されていないか、子フローが削除・非公開になっている可能性があります。会社の環境では、ソリューション内に配置されていないと参照できない場合もあります。
  2. 「アクセスが拒否されました」エラー: 親フローを実行するアカウントに子フローへのアクセス権限が不足しています。子フローが共有されていない、または所有者のみ実行可能な設定になっていることが原因です。
  3. 「子フローの応答を解析できません」エラー: 子フローの出力スキーマが親フローと一致していない、または子フローがタイムアウト(2分)になった場合に発生します。データ型の不一致や子フロー内の処理遅延が原因です。

これらのエラーのうち、会社環境に特有なのは「アクセス拒否」です。多くの企業では、フローの共有範囲が制限されており、個人用マイフローとチームフローで権限管理が異なります。また、データ損失防止(DLP)ポリシーにより、特定のコネクタが制限されている場合もエラーの原因になります。

エラーメッセージから原因を特定する方法

フローの実行履歴からエラーメッセージを確認してください。Power Automateポータルで該当の親フローを開き、「実行」タブから失敗した実行を選択します。「詳細」セクションに表示されるエラーコードとメッセージが手がかりになります。例えば「フロー‘xxxx’へのアクセス権限がありません」と表示されれば、共有設定の問題です。「子フロー‘yyyy’のトリガーが見つかりません」なら、子フロー自体の公開状態やIDの誤りを疑います。

安全に子フローを再設定する手順

ここからは、会社のPCで安全に子フローを再設定する具体的な手順を説明します。注意点として、自分に管理者権限がない限り、環境設定やコネクタの追加は行わず、必ず管理者に依頼してください。

  1. 子フローの公開状態とIDを確認する
    Power Automateポータルで子フローを開き、右上の「編集」→「トリガー」→「手動でフローをトリガーします」がオフになっている場合は、保存して公開します。フローIDはURL末尾の文字列です。親フローの「子フローの実行」アクションにそのIDが正しく設定されているか確認してください。
  2. 子フローを共有する(必要に応じて管理者に依頼)
    子フローの「共有」ボタンから、親フローを実行するユーザーまたはグループを追加します。会社のポリシーで共有が制限されている場合は、IT管理者にテナント間のアクセス許可やセキュリティグループの追加を依頼してください。自分で共有を変更できるかどうかは、フローの所有者であるか、共同所有者として追加されているかに依存します。
  3. 親フロー内の「子フローの実行」アクションを再設定する
    親フローを編集し、「子フローの実行」アクションを削除して再度追加します。このとき、子フローがドロップダウンリストに表示されなければ、アクセス権限の問題です。表示されたら選択し、入力パラメータを適切にマッピングします。出力を使用する場合は、後続のアクションで「出力」を参照するよう動的コンテンツを設定してください。
  4. 入力パラメータとデータ型を一致させる
    子フローのトリガーで定義された入力パラメータのデータ型(文字列、整数、オブジェクトなど)と、親フローから渡す値の型が一致しているか確認します。特にJSONオブジェクトを渡す場合は、Parse JSONアクションで型変換が必要なことがあります。
  5. テスト実行と実行履歴の確認
    親フローを保存し、テストデータを使って実行します。実行履歴で成功を確認したら、本番環境に適用します。このとき、同じエラーが再発する場合は、DLPポリシーやコネクタ制限の可能性を考慮し、管理者に連絡します。

状況別の原因と対応を比較する

子フローのトラブルは、エラーメッセージや発生状況によって原因が異なります。以下の表に、代表的なパターンと対応をまとめました。

症状 考えられる原因 自分で試せる対処 管理者へ依頼する内容
子フローが見つからない 子フローIDの誤り、非公開、削除 子フローの公開状態とIDを再確認し、親フローに正しいIDを指定 子フローがソリューション外にある場合は、ソリューションへの追加を依頼
アクセス拒否 共有設定不足、DLPポリシーによる制限 子フローの共有設定に自身のアカウントが含まれているか確認 DLPポリシーの緩和、または共有グループへの追加を依頼
子フローの応答解析エラー 出力スキーマ不一致、タイムアウト 子フローの出力をシンプルにし、タイムアウトの回避策として非同期パターンを検討 (通常は不要)
フロー実行が途中で停止 コネクタの制限、APIのレート制限 コネクタの接続を再承認、またはリトライポリシーを設定 API利用制限の引き上げや、Privileged Access Managementの設定変更を依頼

失敗パターンとその回避方法

会社環境で陥りやすい失敗例を3つ紹介します。これらは実際に問い合わせが多い事例です。

失敗1:子フローを個人用マイフローに作成してしまった

個人用マイフロー(自分だけがアクセス可能)に子フローを作成し、それをチームで共有しようとすると、アクセス拒否が発生します。回避策として、最初からソリューション内に子フローを作成し、適切な共有範囲を設定してください。既に個人用マイフローで作成してしまった場合は、ソリューションに移動させるか、別のフローとしてコピーします。この作業はフロー所有者のみ可能です。

失敗2:入力パラメータに複合型を渡した際に型変換を忘れる

親フローから子フローにJSONオブジェクトを渡す場合、子フローのトリガーで適切なデータ型が定義されていないとエラーになります。例えば、子フローの入力パラメータが「文字列」型なのに、親フローから「オブジェクト」を渡すと「無効なテンプレート」エラーが出ます。この場合は、親フローで「Compose」アクションなどを使って文字列に変換してから渡すか、子フローの入力を「オブジェクト」型に変更します。

失敗3:子フローの出力を複数アクションで再利用する際にスコープがずれる

子フローの出力は「body(‘子フロー名’)」で参照できますが、親フロー内でループや条件分岐の中に入れると参照できなくなることがあります。この問題は、子フローの出力を変数に格納するか、「Apply to each」の中で直接参照しないように設計します。また、子フローから複数の値を返す場合は、JSONオブジェクトとして一括で返すと扱いやすくなります。

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

自分で解決できない場合、IT管理者に以下の情報を伝えると迅速な対応が期待できます。

  • エラーの完全なメッセージとスクリーンショット: フロー実行履歴のエラー詳細を共有します。特にエラーコードやフローIDが重要です。
  • 子フローと親フローのID、および環境名: どの環境で発生しているかを特定できるようにします。
  • 使用しているコネクタの一覧: DLPポリシーで制限されているコネクタがないか確認を依頼します。
  • 自分が所有するフローと共有されたフローの区別: 子フローが自分の所有か、他者から共有されたものかを伝えます。

管理者側では、Power Platform管理センターからDLPポリシーの確認、テナント間のアクセス設定、またはフローの監査ログを調査できます。「Privileged Access Management」が有効な環境では、追加の承認が必要な場合もあります。

よくある質問(FAQ)

Q1. 子フローを呼び出すときに「このフローはご利用いただけません」と表示されます。原因は何ですか?
A. 子フローが無効化されているか、公開されていない可能性があります。子フローの設定画面で「有効」になっているか確認してください。また、フローがソリューションに属していない場合、テナント全体で共有されていないこともあります。

Q2. 子フローのトリガーに「手動でフローをトリガーします」しか選択肢がありません。これで正しいですか?
A. その通りです。子フローは親フローから呼び出されるために、トリガーは「手動でフローをトリガーします」を選びます。それ以外のトリガー(メールの受信時など)にすると、親フローからの呼び出しができません。

Q3. 子フローを変更したら、親フローに自動的に反映されますか?
A. いいえ、子フローを編集して保存・公開しても、親フロー内の「子フローの実行」アクションは自動更新されません。親フローを編集して、該当アクションを削除し再度追加することで最新のスキーマに更新できます。ただし、コンテンツ(値)は動的に渡されるため、子フローのロジック変更は即座に反映されます。

Q4. 会社のポリシーでフローの共有が制限されています。どうすれば良いですか?
A. IT管理者に連絡し、子フローを「環境全体」または特定のセキュリティグループと共有できるように設定を依頼してください。また、ソリューションを使用することで、管理者が一元的に管理できるようになります。

まとめ

子フローでつまずいたときは、まずエラーメッセージの内容と実行履歴を確認し、原因を特定することが大切です。会社環境では共有設定やDLPポリシーが障壁になることが多いため、無理に自分で変更しようとせず、管理者に適切な情報を伝えて依頼しましょう。本記事で紹介した手順を参考に、フローの再設定を安全に行ってください。また、トラブルを未然に防ぐために、子フローはソリューションで管理し、データ型の一致を意識した設計を心がけることをおすすめします。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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

ADVERTISEMENT