【ITニュース解説】Solution Layers in Power Automate Flows: Why Solution Upgrades Don’t Remove Active Layers
2025年09月05日に「Dev.to」が公開したITニュース「Solution Layers in Power Automate Flows: Why Solution Upgrades Don’t Remove Active Layers」について初心者にもわかりやすいように丁寧に解説しています。
ITニュース概要
Power Automateで、本番環境で直接編集すると「アクティブレイヤー」が作成され、管理ソリューションの更新で上書きされない。アクティブレイヤーは常に優先されるため、変更を反映させるには手動で削除が必要。削除は、フローの詳細設定から「アンマネージドカスタマイズの削除」で行う。今後は、開発環境やテスト環境で変更し、本番環境での直接編集は避けること。
ITニュース解説
Power Automateでフローを構築し、運用していると、本番環境で直接変更を加えた結果、予期せぬ動作が発生することがある。これは、Dataverseにおけるソリューションレイヤーの仕組みが関係している。ここでは、ソリューションレイヤーの概念と、アップグレードによってアクティブなレイヤーが削除されない理由、そしてアクティブなレイヤーを削除する方法について解説する。
Dataverseでは、フロー、フォーム、ビュー、アプリといったコンポーネントは、複数のレイヤーが積み重なって構成されている。これらのレイヤーは、大きく分けて「管理レイヤー」と「非管理(アクティブ)レイヤー」の2種類がある。管理レイヤーは、インポートされた管理ソリューションによって作成される。一方、非管理アクティブレイヤーは、環境内で直接コンポーネントが編集された場合に作成される。
重要なのは、アクティブレイヤーが常に優先されるという点だ。つまり、本番環境で直接変更を加えた場合、その変更は、新しい管理ソリューションをデプロイした後でも有効なままとなる。これは、アクティブレイヤーが常に最上位に位置し、下位のレイヤーを上書きするためだ。
「管理ソリューションのアップグレードで、このアクティブレイヤーを上書きできるのではないか?」という疑問が生じるのは自然なことだ。しかし、答えは「ノー」である。ソリューションをアップグレードする際、または「カスタマイズの上書き」オプションを選択した場合でも、それは管理レイヤー間の競合にのみ適用される。アクティブレイヤーは変更されず、最上位に残り続けるため、デプロイした内容を上書きし続ける。
では、アクティブレイヤーを取り除くにはどうすればよいのだろうか?管理ソリューションのバージョンを再度有効にするためには、非管理レイヤーを削除する必要がある。具体的な手順は以下の通りだ。
まず、ソリューション内から該当のフローを開く。次に、「詳細」から「ソリューションレイヤー」を選択する。そして、「非管理カスタマイズの削除」を選択する。この操作を行うことで、フローはソリューションによって提供された管理バージョンに戻る。
しかし、そもそもこのような事態を避けることが重要だ。将来的に同様の問題が発生しないようにするためには、いくつかの対策を講じることができる。
まず、本番環境で直接コンポーネントを編集することは極力避けるべきだ。変更は、開発環境またはテスト環境で行い、それらを本番環境にデプロイするようにする。次に、本番環境での作成者権限を制限し、フローが不用意に変更されないようにする。そして、CI/CDパイプライン(Azure DevOpsなど)を使用することで、デプロイの一貫性と監査可能性を確保することができる。
今回の解説で理解してほしいことは、管理ソリューションのアップグレードでは、非管理アクティブレイヤーは削除されないということだ。ソリューションバージョンを適用するには、コンポーネントをベースの管理レイヤーにリセットする必要がある。本番環境での直接編集を避け、適切な開発プロセスを構築することで、より安定したPower Automate環境を構築できる。