Power Appsソリューションのエクスポート・インポート

こんにちは！

今回の記事では作ったアプリを移行したりするのに便利なソリューションのエクスポート・インポートする方法についてご紹介します！
ソリューションって何？という話や、ソリューションを新規作成する方法は以下の記事でご確認ください。

https://qiita.com/skuramoto/items/bb053bdc8b12b771c6e4



# ソリューションのエクスポート
作ったアプリをエクスポートする方法についてご紹介します！
ソリューションを新規作成する方法は[こちらから](https://qiita.com/skuramoto/items/bb053bdc8b12b771c6e4#%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9)ご確認ください。

[Power Apps](https://make.powerapps.com/)のStudioを開き、[ソリューション]をクリック
エクスポートしたいソリューションを選択（チェックマークを付ける）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/db981327-bafd-5a08-41b3-6758b8f255e6.png)

[ソリューションをエクスポート]をクリック
[公開]をクリック
[次へ]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/6f01194d-3cdd-0794-4843-37905ff90dce.png)

::: note warn
公開されてない状態のコンポーネントがエクスポートされると、コンポーネントの種類によってはエクスポート先で動作しないなどの事象が起こります。
:::

次の項目の考え方について、以下を参照して設定してください。

|  項目  |  メモ  |
| ---- | ---- |
|  バージョン番号  |  バージョン番号は特にこだわりがなければ自動発番の（現在のバージョンに+1される）番号をそのまま使う。修正することも可能。 |
|  マネージドかアンマネージドか  |  出来上がったものを本番環境に移行して、カスタマイズさせないようにするには「マネージド」にする。移行先で開発をしたいのであれば「アンマネージド」にする。  |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/f027842c-c881-be52-af55-8e2d968460fd.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/c99962f0-154e-06f9-ca68-422ee0ea35ab.png)


一旦の理解は以上で十分ですが、マネージドソリューションについて詳しく知りたい方は、詳しい内容を後述しています。
[マネージドソリューションについて](#マネージドソリューションについて)

::: note
[アプリケーション ライフサイクル管理 （ALM）](https://learn.microsoft.com/ja-jp/power-platform/alm/overview-alm) のベストプラクティスとして、マネージドソリューションは、アンマネージドソリューションをマネージドとしてエクスポートし、ビルド成果物と見なして生成する必要があります。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/926d714f-fa13-b0e7-5ff7-d538d9a89a47.png)

:::

[エクスポート]ボタンをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/3d476a70-e994-d4bd-43de-f317d9120ae6.png)

「エクスポート中です」と表示されるため、エクスポート完了するまで待ちます。
「エクスポートされました」と表示されたら、[ダウンロード]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/375d9f96-a1ab-fac5-aad0-ef7dd8b4a435.png)

ローカルフォルダにzipファイルがダウンロードできたら完了！

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/d1420b9f-aa69-c7c7-d287-4b1a177c5176.png" width=60%>

#  ソリューションのインポート
## 前提
ソリューションのインポートには、ソリューションに含まれるコンポーネントの作成権限が必要です。
システム カスタマイザーセキュリティロールに、一般的にインポートされるほとんどのコンポーネントに対する作成特権がありますが、既定では、プラグインアセンブリテーブルに対する作成特権はありません。
プラグインを含んだソリューションをインポートしたい際は、システム管理者セキュリティロールが必要です。

## 手順
[Power Apps](https://make.powerapps.com/)のStudioを開き、[ソリューション]をクリック
[ソリューションをインポート]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/fff3d530-049f-d261-c5d3-cc1be21e2daa.png)
[参照]をクリック
該当の圧縮 (.zip または .cab) ファイルを選択し、[開く]をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/a05829e5-1c6e-5f5c-2c01-51453c3a4899.png)

[次へ]ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/5d64f4dd-1f7b-212b-0083-07d9c5e309ba.png)

[インポート]をクリック

::: note
注意①
 既定では、詳細設定 セクションで、プラグインステップ (SDK メッセージ処理手順とも呼ばれる) とフローがソリューションに存在する場合、インポートされる。
 非アクティブな状態でインポートする場合は、ソリューションに含まれるプラグインステップとフローを有効にするオプションを解除する。
:::

::: note
注意②
ソリューションに 接続参照 が含まれている場合、必要な接続を選択するように求められる。
接続がまだ存在しない場合は、新しく作成。
:::

::: note
注意③
ソリューションに環境変数が含まれている場合は、値を入力するように求められる。 
ソリューションまたはターゲット環境に値がすでに存在する場合、この画面は表示されない。
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/ec4c9d3b-3e66-54ed-6bde-e59dcb46489c.png)



::: note warn
必要なコンポーネントが含まれていないとエラーになります。
依存関係のリストに表示される項目を確認し、元の環境で該当のコンポーネントを入れてからもう一度エクスポート・インポートしてください。
:::

「インポートしています」と表示されるため、インポート完了するまで待ちます。
「インポートされました」と表示されたら、完了！
インポートされたら、ソリューションの中身を開き、[すべてのカスタマイズの公開]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/caab2c94-e345-8bbb-ec61-463551107a65.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/e61964b2-08f0-5339-0e51-c3d9f95cd54b.png)



# マネージドソリューションについて
マネージドソリューション内でコンポーネントは直接編集できません。

マネージドプロパティを設定し、細かく、どこまでエクスポートしたものでカスタマイズできるのか設定することができます。

ソリューションを開き、コンポーネントを選択
[...]をクリックし、[詳細]>[マネージドソリューション]を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/1f337d08-d7c8-29be-bcc8-4644bc8759db.png)

すでに作ってある列やフォームのカスタマイズはできませんが、新規で作成は規定でできます。
何もカスタマイズさせたくない場合はこの画面で一番上の「カスタマイズを許可する」をオフにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/394620f2-6487-053a-540a-032f3791e23c.png)

この設定項目はコンポーネントの種類によって異なりますが、同様の手順で
Web リソース、プロセス、グラフ、ダッシュボードなど、その他の多くのソリューションコンポーネントの管理プロパティを表示および編集できます。 

詳細は以下を参照してください。

https://learn.microsoft.com/ja-jp/power-platform/alm/managed-properties-alm

# 参照

https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/export-solutions

https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/import-update-export-solutions