PowerAppsで開発環境と本番環境で分けるときに初心者の私が躓いた「Power Automateのフローをエクスポートする」方法を、四苦八苦しながらなんとか仕組みが解ってきたのでメモで残しておきます。
あくまで私の主観で語っている記事です。
有識者の方がいれば、積極的にご指摘いただけますと幸いです。
結論→「フローをソリューションに追加してから別環境に移動する」
色々調べていると、「フローを.zipでエクスポートする」というのが常套手段のように書いてあり、私が信頼するClaude君も同じ回答だったのですが、
それは嘘です
というのも、現在PowerAutomateのフローでエクスポートを選択するとこんな表示になります。
Zipにできないんだが?
それができなければ本番環境にインポートする術がないですね。
そこで出てくるのがソリューションという概念です。
ソリューションとはどうやら各種プログラミング言語における「パッケージ」のような概念っぽくてですね、必要なコンポーネントをソリューションに追加して、依存関係ごとエクスポートする、という思想っぽいのです。
このソリューションを新規作成、ソリューションにフローを追加、ソリューションをエクスポート、そしてインポートという流れで、環境間でフローを移動します。
フローをエクスポートするのは嘘だと書きましたが、それは半分冗談で、このあたりは仕様変更があったような形跡が見受けられます。
具体的な手順
ソリューションを作成する
左ペインの「ソリューション」を開いて、「新しいソリューション」をクリック
各パラメータを入力して作成。各値の詳細は わかりません 割愛します。
作成したソリューションにフローを追加
ソリューションの作成が完了すると、作成したソリューションのページに飛びますので、ここにエクスポートしたいものを追加していきます。
今回の場合は作成済みのクラウドフローを追加しますので、「既存を追加」から 自動化 > クラウドフロー を選択。
ソリューションのエクスポート
フローを追加したら、早速ソリューションをエクスポートしてみます。
確認画面が出てくるので次へ
※併せて表示されている「展開プロセス」ですが、これ環境間のパイプラインを作成する機能でして今回のユースケースにドンピシャ合致しているのですが、それはまた別の話で!
次の画面で、フローが依存している未追加のコンポーネントが表示されます。
ここは忘れず「ソリューションに追加」をクリック。まあ接続参照に関する依存関係の場合、エクスポート先の環境で別の接続を作成する方が多い気がしますので、追加が不要なことも多いかもですね。その場合は「ステップをスキップ」します。
バージョンを切る場合は値を入力します。
エクスポート先でもフローを編集する場合はアンマネージド、オリジナルに対する編集を許容しない場合はマネージドを選択。
マネージド環境に関する詳細は わかりません 割愛します。
エクスポート時のチェッカーは任意ですね。
エクスポートが完了すると画面上側に通知がポップします。不親切ですね。
ダウンロードしましょう。
こちらのZipファイルを、移動先環境のソリューションにzipごとインポートしてやれば完了です。
あとがき
これを書いている最中に気づきましたが、そもそもソリューション内で作成していればこの手順はいらないですね。加えて、途中に出てきた展開プロセス等を使えば、一般的なCI/CDパイプラインを構成できるということで、もっと効率的な方法が絶対にありますが、私はPowerAppsを仕事にしているわけではないので暇なときに考えたいと思います。
Microsoftは総じて、機能は充実しているんですが説明不足のわりに使い方のクセが強いので、カッコよく使えるまでのハードルが高いですね。
だからMicrosoftは好かんのじゃ これからも精進していきたいと思います。