ソリューションの概念

ソリューションとは、Power Apps および Power Automate に ALM を実装するためのメカニズムです。 この記事では、以下の主要なソリューションの概念について説明します。

  • ソリューションの 2 つの種類
  • ソリューション コンポーネント
  • ソリューションのライフサイクル
  • ソリューション発行者
  • ソリューションとソリューション コンポーネントの依存関係

管理ソリューションとアンマネージド ソリューション

ソリューションは管理アンマネージドのどちらかです。

  • アンマネージド ソリューション は開発されています。 アンマネージド ソリューションは、アプリケーションに変更を加える間、開発環境で使用されます。 アンマネージド ソリューションは、アンマネージドまたはマネージドのいずれかとしてエクスポートできます。 エクスポートされたアンマネージド バージョンのソリューションは、ソース管理システムにチェックインする必要があります。 アンマネージド ソリューションは、Microsoft Power Platform 資産のソースとみなされます。 アンマネージド ソリューションを削除すると、それに含まれるすべてのカスタマイズのソリューション コンテナのみが削除されます。 アンマネージド ソリューションはすべて効果性を保持し、既定のソリューションに属します。

  • 管理ソリューション は展開されています。 マネージド ソリューションは、そのソリューションの開発環境ではない任意の環境に展開されています。 これには、テスト、UAT、SIT、および運用環境が含まれます。 管理ソリューションは、環境内の他の管理ソリューションから独立してサービスを提供できます。 ALM のベスト プラクティスとして、管理ソリューションは、アンマネージド ソリューションをマネージドとしてエクスポートし、ビルド成果物と見なして生成する必要があります。 さらに、

    • 管理ソリューション内でコンポーネントは直接編集できません。 マネージド コンポーネントを編集するには、最初にそれらをアンマネージド ソリューションに追加します。
      • これを行うには、アンマネージド カスタマイズとマネージド ソリューション間の依存関係を作成します。 依存関係が存在する場合、依存関係を削除するまで管理ソリューションをアンインストールすることはできません。
    • 一部のマネージド コンポーネントは編集できません。 コンポーネントを編集できるかどうかを確認するには、マネージド プロパティをご覧ください。
    • 管理ソリューションはエクスポートできません。
    • マネージド ソリューションを削除 (アンインストール) すると、それに含まれるカスタマイズおよび拡張もすべて削除されます。

    重要

    • 元のアンマネージド ソリューションを含む同じ環境に管理ソリューションをインポートすることはできません。 マネージド ソリューションをテストするには、別の環境をインポートする必要があります。
    • 管理ソリューションを削除すると、管理ソリューションの一部となっているユーザー定義のエンティティに格納したデータや、管理ソリューションの一部ではない他のエンティティ上の管理ソリューションの一部となっているユーザー定義属性に格納したデータは失われます。

メーカーと開発者は、アンマネージド ソリューションを使用して開発環境で作業し、それらをマネージド ソリューションとしてテストなどの他のダウンストリーム環境にインポートします。

開発環境からテスト環境にソリューションを配布する。

注意

開発環境でカスタマイズすると、アンマネージド レイヤーで作業することになります。 次に、アンマネージド ソリューションを管理ソリューションとしてエクスポートして別の環境に配布すると、管理ソリューションがマネージド レイヤーの環境にインポートされます。 詳細ついては、ソリューションの階層 を参照してください

ソリューション コンポーネント

コンポーネントは、カスタマイズできる可能性のあるものを示します。 ソリューションに含めることのできるものは、コンポーネントです。 ソリューションに含まれるコンポーネントを表示するには、目的のソリューションを開きます。 コンポーネントは、コンポーネント リストに一覧表示されています。

ソリューションのコンポーネント。

注意

  • ソリューションのサイズは最大 32 MB までです。
  • 管理ソリューション内でコンポーネントは直接編集できません。

ソリューションに追加できるコンポーネントの種類のリストを表示するには、ComponentType オプション をご参照してください。

コンポーネントによっては、他のコンポーネントにネストしています。 たとえば、エンティティには、フォーム、ビュー、グラフ、フィールド、エンティティ関係、メッセージや業務ルールが含まれています。 各コンポーネントには、エンティティの存在が必要です。 フィールドはエンティティの外部に存在することはできません。 フィールドは、エンティティに依存していると言えます。 実際には、上記の一覧に示したコンポーネントの 2 倍の種類のソリューション コンポーネントがありますが、そのほとんどが他のコンポーネント内にテストされておらず、アプリケーションに表示されません。

コンポーネントの目的は、マネージド プロパティおよびすべてのソリューションの依存関係を使用してカスタマイズできることの制限を追跡し、何も残さずにエクスポート、インポート、および (管理ソリューション内で) 削除することです。

ソリューション ライフサイクル

ソリューションは、アプリケーション ライフ サイクルのプロセスに役立つ次のアクションをサポートします。

  • 作成作成者およびアンマネージド ソリューションのエクスポートします。

  • 更新上位の管理ソリューションに展開される、管理ソリューションの更新を作成します。 アップデートでコンポーネントを削除することはできません。

  • アップグレード ソリューションを既存の管理ソリューションへのアップグレードとしてインポートすることにより、未使用のコンポーネントが削除され、アップグレード ロジックが実装されます。 アップグレードには、そのソリューションに対するすべての修正プログラムをソリューションの新しいバージョンにロールアップ (統合) することが含まれます。 ソリューションをアップグレードすると、既存のコンポーネントが削除されますが、アップグレードされたバージョンには含まれなくなります。 すぐにアップグレードするか、段階的にアップグレードするかを選択して、アップグレードを完了する前にいくつかの追加アクションを実行出来ます。

  • 修正プログラム 修正プログラムには、コンポーネントおよび資産の追加または編集などの、上位の管理ソリューションへの変更が含まれています。 小さな更新を行う場合は修正プログラムを使用します (修正プログラムと同様)。 インポートされた修正プログラムは、上位のソリューションの上に重ねられています。 修正プログラムでコンポーネントを削除することはできません。

ソリューション発行者

作成されたエンティティやカスタマイズなどの、アプリやその他のソリューション コンポーネントはすべてソリューションの一部です。 すべてのソリューションには発行元があるため、既定のものを使用するのではなく、独自の発行元を作成する必要があります ソリューションを作成する際に発行元を指定します。

Note

カスタム ソリューションを使用していない場合であっても、Common Data Service の既定のソリューション既定のソリューションで作業することができます。 詳細情報 : 既定のソリューションと Common Data Service の既定のソリューション

コンポーネントが作成されたソリューションの発行者は、そのコンポーネントの所有者と見なされます。 コンポーネントの所有者は、そのコンポーネントを含むソリューションの他の発行者が何を変更できるか、または作成を制限できるかを制御します。 コンポーネントの所有権を同じ発行者内のソリューション間で移行できますが、発行者間では移行できません。 管理ソリューションでコンポーネントの発行元を導入すると、そのコンポーネントの発行元を変更することはできません。 このため、単一の発行元を定義して、後でソリューション間で階層モデルを変更できるようにすることをお勧めします。

ソリューションの発行者は、アプリの開発者を指定します。 このため、適切なソリューション発行者名を作成する必要があります。

ソリューション発行者の接頭辞

ソリューション発行者には接頭辞が含まれています。 発行元の接頭辞は、名前の競合を回避するためのメカニズムです。 これにより、競合の少ない環境にさまざまな発行元のソリューションをインストールできます。 たとえば、ここに表示される Contoso ソリューションには、ソリューション発行者の接頭辞の contoso が含まれます。

ソリューション発行者の接頭辞の例。

注意

ソリューション発行者の接頭辞を変更する場合は、最初に作成した後にメタデータ アイテムの名前を変更できないため、新しいアプリまたはメタデータ アイテムを最初に作成する前に行う必要があります。

詳細:

ソリューションの依存関係

管理化ソリューションが階層化されているため、一部の管理ソリューションは、その他の管理ソリューションでソリューション コンポーネントに依存される可能性があります。 一部のソリューション発行者は、これを活用して、モジュール形式のソリューションを開発します。 最初に 「基本」管理ソリューションをインストールし、その後基本管理ソリューションのコンポーネントをさらにカスタマイズするもう一つの管理ソリューションをインストールする必要があります。 2 番目の管理ソリューションは、最初のソリューションに含まれているソリューション コンポーネントに依存しています。

システムはこれらのソリューション間の依存関係を追跡します。 インストールされていない基本ソリューションが必要なソリューションをインストールしようとしても、そのソリューションをインストールできません。 ソリューションは別のソリューションが最初にインストールされている必要があるという内容のメッセージが表示されます。 同様に、依存関係により、基本ソリューションに依存するソリューションがまだインストールされている間は、その基本ソリューションはアンインストールできません。 基本ソリューションをアンインストールする前に、依存ソリューションをアンインストールする必要があります。 詳細: 依存関係を削除する

ソリューション コンポーネントの依存関係

ソリューション コンポーネントは、カスタマイズできる可能性のあるものを示します。 ソリューションに含めることができるものはすべてソリューション コンポーネントであり、一部のコンポーネントは他のコンポーネントに依存しています。 たとえば、Web サイトのフィールドとアカウントの概要レポートは、どちらもアカウント エンティティに依存しています。 詳細: ソリューション コンポーネントの依存関係の追跡

関連項目

ソリューションの階層
Power Platform 管理センターで環境を作成および管理する