ソリューションの概念
ソリューション は、Power Apps と Power Automate で アプリケーション ライフサイクル管理 (ALM) を実装するための仕組みです。 この記事では、以下の主要なソリューションの概念について説明します。
- ソリューションの 2 つの種類 (管理型とアンマネージド型)
- ソリューション コンポーネント
- ソリューションのライフサイクル
- ソリューション発行者
- ソリューションとソリューション コンポーネントの依存関係
管理ソリューションとアンマネージド ソリューション
ソリューションは管理かアンマネージドのどちらかです。
アンマネージド ソリューション は開発されています。 アンマネージド ソリューションは、アプリケーションに変更を加える間、開発環境で使用されます。 アンマネージド ソリューションは、アンマネージドまたはマネージドのいずれかとしてエクスポートできます。 エクスポートされたアンマネージド バージョンのソリューションは、ソース管理システムにチェックインする必要があります。 アンマネージド ソリューションは、Microsoft Power Platform 資産のソースとみなされます。 アンマネージド ソリューションを削除すると、それに含まれるすべてのカスタマイズのソリューション コンテナのみが削除されます。 アンマネージド ソリューションはすべて効果性を保持し、既定のソリューションに属します。
管理ソリューションは展開されています。 マネージド ソリューションは、そのソリューションの開発環境ではない任意の環境に展開されています。 この環境には、テスト、ユーザー受け入れテスト (UAT)、システム統合テスト (SIT)、運用環境が含まれます。 管理ソリューションは、環境内の他の管理ソリューションから独立してサービスを提供できます。 ALM のベスト プラクティスとして、管理ソリューションは、アンマネージド ソリューションをマネージドとしてエクスポートし、ビルド成果物と見なして生成する必要があります。 さらに、
- 管理ソリューション内でコンポーネントは直接編集できません。 マネージド コンポーネントを編集するには、最初にそれらをアンマネージド ソリューションに追加します。
- マネージド コンポーネントを編集する際には、アンマネージド カスタマイズとマネージド ソリューション間の依存関係を作成します。 依存関係が存在する場合、依存関係を削除するまで管理ソリューションをアンインストールすることはできません。
- 一部のマネージド コンポーネントは編集できません。 コンポーネントを編集できるかどうかを確認するには、マネージド プロパティをご覧ください。
- 管理ソリューションはエクスポートできません。 しかし、アンマネージド ソリューションを管理ソリューションとしてエクスポートすることはできます。
- マネージド ソリューションを削除 (アンインストール) すると、それに含まれるカスタマイズおよび拡張もすべて削除されます。
- 管理ソリューション内でコンポーネントは直接編集できません。 マネージド コンポーネントを編集するには、最初にそれらをアンマネージド ソリューションに追加します。
重要
- 元のアンマネージド ソリューションを含む同じ環境に管理ソリューションをインポートすることはできません。 マネージド ソリューションをテストするには、別の環境をインポートする必要があります。
- 管理ソリューションを削除すると、次のデータが失われます。管理ソリューションの一部であるカスタム テーブルに保存されているデータ、および管理ソリューションの一部であるカスタム列が管理ソリューションの一部ではない他のテーブルに保存されているデータです。
メーカーと開発者は、アンマネージド ソリューションを使用して開発環境で作業し、それらをマネージド ソリューションとしてテストなどの他のダウンストリーム環境にインポートします。
注意
開発環境でカスタマイズすると、アンマネージド レイヤーで作業することになります。 次に、アンマネージド ソリューションを管理ソリューションとしてエクスポートして別の環境に配布すると、管理ソリューションがマネージド レイヤーの環境にインポートされます。 詳細ついては、ソリューションの階層 を参照してください
ソリューション コンポーネント
コンポーネントはオブジェクトとも呼ばれ、カスタマイズ可能なものを表します。 ソリューションに含めることのできるものは、コンポーネントです。 ソリューションに含まれるコンポーネントを表示するには、目的のソリューションを開きます。 コンポーネントは、コンポーネント リストに一覧表示されています。
注意Note
- ソリューションのサイズは最大 95 MB までです。
- 管理ソリューション内でコンポーネントは直接編集できません。
ソリューションに追加できるコンポーネントの種類のリストを表示するには、ComponentType オプション をご参照してください。
コンポーネントによっては、他のコンポーネントにネストしています。 たとえば、テーブルにはフォーム、ビュー、グラフ、列、テーブルのリレーションシップ、メッセージ、ビジネス ルールが含まれます。 各コンポーネントには、テーブルの存在が必要です。 選択肢列を除き、他のすべての列はテーブルの外に存在できません。 列は、テーブルに依存していると言えます。 上記の一覧に示したコンポーネントの 2 倍の種類のソリューション コンポーネントがありますが、そのほとんどが他のコンポーネント内にテストされておらず、アプリケーションに表示されません。
コンポーネントの目的は、マネージド プロパティおよびすべてのソリューションの依存関係を使用してカスタマイズできることの制限を追跡し、何も残さずにエクスポート、インポート、および (管理ソリューション内で) 削除することです。
ソリューション ライフサイクル
ソリューションは、アプリケーション ライフ サイクルのプロセスに役立つ次のアクションをサポートします。
- 作成。 作成者とアンマネージド ソリューションのエクスポートします。
- 更新。 上位の管理ソリューションに展開される、管理ソリューションの更新を作成します。 アップデートでコンポーネントを削除することはできません。
- アップグレード。 ソリューションを既存の管理ソリューションへのアップグレードとしてインポートすることにより、未使用のコンポーネントが削除され、アップグレード ロジックが実装されます。 アップグレードには、そのソリューションに対するすべての修正プログラムをソリューションの新しいバージョンにロールアップ (統合) することが含まれます。 ソリューションをアップグレードすると、既存のコンポーネントが削除されますが、アップグレードされたバージョンには含まれなくなります。 すぐにアップグレードするか、段階的にアップグレードするかを選択して、アップグレードを完了する前にいくつかの追加アクションを実行出来ます。
- 修正プログラム。 修正プログラムには、コンポーネントおよび資産の追加または編集などの、親管理ソリューションへの変更のみが含まれています。 小さな更新を行う場合は修正プログラムを使用します (修正プログラムと同様)。 インポートされた修正プログラムは、上位のソリューションの上に重ねられています。 修正プログラムでコンポーネントを削除することはできません。
ソリューション発行者
作成されたテーブルやカスタマイズなどの、アプリやその他のソリューション コンポーネントはすべてソリューションの一部です。 すべてのソリューションには発行元があるため、既定のものを使用するのではなく、独自の発行元を作成する必要があります ソリューションを作成する際に発行元を指定します。
ヒント
- 既定では、カスタム ソリューションを使用しない場合、Common Data Service の既定のソリューションや既定のソリューションと呼ばれる既定のシステム ソリューションで作業することになります。 詳細情報 : 既定のソリューションと Common Data Service の既定のソリューション
- 優先ソリューションとは、ユーザーが指定したソリューションが既定のソリューションになることです。 詳細: 優先順位の高いソリューションの設定
コンポーネントが作成されたソリューションの発行者は、そのコンポーネントの所有者と見なされます。 コンポーネントの所有者は、そのコンポーネントを含むソリューションの他の発行者が何を変更できるか、または作成を制限できるかを制御します。 コンポーネントの所有権を同じ発行元内のあるソリューションから別のソリューションに移動することはできますが、発行者間ではできません。 管理ソリューションでコンポーネントの発行元を導入すると、そのコンポーネントの発行元を変更することはできません。 この制約があるため、単一の発行元を定義して、後でソリューション間で階層モデルを変更できるようにすることをお勧めします。
ソリューションの発行者は、アプリの開発者を指定します。 このため、適切なソリューション発行者名を作成する必要があります。
ソリューション発行者の接頭辞
ソリューション発行者には接頭辞が含まれています。 発行元の接頭辞は、名前の競合を回避するためのメカニズムです。 これにより、競合の少ない同一の環境にさまざまな発行元のソリューションをインストールできます。 たとえば、ここに表示される Contoso ソリューションには、ソリューション発行者の接頭辞の contoso が含まれます。
注意
ソリューション発行者の接頭辞を変更する場合は、最初に作成した後にメタデータ アイテムの名前を変更できないため、新しいアプリまたはメタデータ アイテムを最初に作成する前に行う必要があります。
詳細:
ソリューションの依存関係
管理化ソリューションが階層化されているため、一部の管理ソリューションは、その他の管理ソリューションでソリューション コンポーネントに依存される可能性があります。 一部のソリューション発行者は、これを活用して、モジュール形式のソリューションを開発します。 最初に「基本」の管理ソリューションをインストールし、次に基本の管理ソリューションのコンポーネントをさらにカスタマイズする 2 つ目の管理ソリューションをインストールする必要があります。 2 番目の管理ソリューションは、最初のソリューションに含まれているソリューション コンポーネントに依存しています。
システムはこれらのソリューション間の依存関係を追跡します。 インストールされていない基本ソリューションが必要なソリューションをインストールしようとしても、そのソリューションをインストールできません。 このソリューションには、最初に別のソリューションをインストールする必要があるというメッセージが表示されます。 同様に、依存関係により、基本ソリューションに依存するソリューションがまだインストールされている間は、その基本ソリューションはアンインストールできません。 基本ソリューションをアンインストールする前に、依存ソリューションをアンインストールする必要があります。 詳細: 依存関係を削除する
ソリューション コンポーネントの依存関係
ソリューション コンポーネントは、カスタマイズできる可能性のあるものを示します。 ソリューションに含めることができるものはすべてソリューション コンポーネントであり、一部のコンポーネントは他のコンポーネントに依存しています。 たとえば、web サイトの列と取引先企業の概要レポートは、どちらも取引先企業テーブルに依存しています。 詳細: ソリューション コンポーネントの依存関係の追跡