このトピックは、Dynamics 365 Customer Engagement (on-premises) に適用されます。 このトピックの Power Apps バージョンについては、以下を参照してください。 ソリューションの概要
Dynamics 365 Customer Engagement (オンプレミス) では、ある組織から別の組織にアプリとコンポーネントを転送したり、既存のアプリに一連のカスタマイズを適用したりするために、ソリューションが利用されます。 ソリューションには、1 つまたは複数のアプリのほか、サイト マップ、エンティティ、プロセス、Web リソース、オプション セットなどの他のコンポーネントを含めることができます。 AppSource または独立系ソフトウェア ベンダー (ISV) からソリューションを取得できます。 ソリューションは、アプリとして環境にインポートしたり、既存のアプリに一連のカスタマイズを適用したりできるファイルです。
詳細情報: ホワイトペーパー: ソリューション ビルダーのパターンと原則
配布するアプリを作成する ISV の場合は、ソリューションを使用する必要があります。 ソリューションの使用の詳細については、「ソリューションを 使用した拡張機能のパッケージ化と配布」を参照してください。
ソリューション コンポーネント
ソリューション コンポーネントは、カスタマイズできる可能性のあるものを表します。 ソリューションに含めることができるものは、ソリューション コンポーネントです。 ソリューションに含まれるコンポーネントを表示するには、ソリューション エクスプローラーで [設定]>[ソリューション] に移動し、目的のソリューションを開きます。 コンポーネントは、 コンポーネント の一覧に一覧表示されます。
ほとんどのソリューション コンポーネントは、他のソリューション コンポーネント内に入れ子になっています。 たとえば、エンティティには、フォーム、ビュー、グラフ、フィールド、エンティティリレーションシップ、メッセージ、ビジネス ルールが含まれます。 これらの各ソリューション コンポーネントには、エンティティが存在する必要があります。 フィールドはエンティティの外部に存在できません。 フィールドはエンティティに依存していると言います。 実際には前の一覧に示した 2 倍の種類のソリューション コンポーネントがありますが、そのほとんどはアプリケーションに表示されません。
ソリューション コンポーネントを使用する目的は、管理プロパティとすべてのソリューション依存関係を使用してカスタマイズできるものに関する制限を追跡し、エクスポート、インポート、および (マネージド ソリューション内で) 何も残さずに削除できるようにすることです。
マネージド ソリューションとアンマネージド ソリューション
マネージド ソリューションは、インポート後にアンインストールできます。 ソリューションをアンインストールすると、そのソリューションのすべてのコンポーネントが削除されます。
アンマネージド ソリューションをインポートするときは、そのソリューションのすべてのコンポーネントを既定のソリューションに追加します。 ソリューションをアンインストールしてコンポーネントを削除することはできません。
既にカスタマイズしたソリューション コンポーネントを含む アンマネージド ソリューションをインポートすると、アンマネージド ソリューションのカスタマイズによってカスタマイズが上書きされます。 これを元に戻すことはできません。
Important
すべてのコンポーネントを既定のソリューションに追加し、既存のカスタマイズを上書きする場合にのみ、アンマネージド ソリューションをインストールします。
ソリューションの配布を計画していない場合でも、アンマネージド ソリューションを作成して使用して、カスタマイズしたアプリケーションの部分のみを含む個別のビューを作成することができます。 何かをカスタマイズするたびに、作成したアンマネージド ソリューションに追加するだけです。
マネージド ソリューションを作成するには、ソリューションをエクスポートするときにマネージド ソリューション オプションを選択します。 マネージド ソリューションを作成した場合、作成に使用したのと同じ組織にインポートし直すことはできません。 別の組織にのみインポートできます。
ソリューションの適用方法
すべてのソリューションはレイヤーとして評価され、アプリが実際に実行する内容を決定します。 次の図は、マネージド ソリューションとアンマネージド ソリューションの評価方法と、それらの変更が組織内でどのように表示されるかを示しています。
下から上に向かって次の作業を行います。
システム ソリューション
システム ソリューションは、すべての組織が持つマネージド ソリューションに似ています。 システム ソリューションは、システム内のすべてのすぐに使用するコンポーネントの定義です。
マネージド ソリューション
マネージド ソリューションでは、システム ソリューション コンポーネントを変更し、新しいコンポーネントを追加できます。 複数のマネージド ソリューションがインストールされている場合、最初にインストールされるソリューションは、後でインストールされたマネージド ソリューションの下にあります。 つまり、2 つ目のソリューションをインストールすると、その前にインストールされたソリューションをカスタマイズできます。 2 つのマネージド ソリューションに競合する定義がある場合、一般的なルールは "Last 1 wins" です。マネージド ソリューションをアンインストールすると、その下のマネージド ソリューションが有効になります。 すべてのマネージド ソリューションをアンインストールすると、システム ソリューション内で定義されている既定の動作が適用されます。
アンマネージド カスタマイズ
アンマネージド カスタマイズは、アンマネージド ソリューションを通じて組織に加えた変更です。 システム ソリューションでは、管理プロパティを使用してカスタマイズできる内容とカスタマイズできないものを定義します。 マネージド ソリューションの発行元は、ソリューションに追加するソリューション コンポーネントをカスタマイズする機能を制限するのと同じ機能を持ちます。 カスタマイズできない管理プロパティを持たないソリューション コンポーネントはカスタマイズできます。
アプリケーションの動作
これは、実際に組織に表示される内容です。 既定のシステム ソリューションに加えて、マネージド ソリューションに加えて、適用したアンマネージド カスタマイズ。
管理プロパティ
一部のコンポーネントはカスタマイズできません。 システム ソリューション内のこれらのコンポーネントには、カスタマイズを妨げるメタデータがあります。 これらは 管理プロパティと呼ばれます。 マネージド ソリューションの発行元は、管理プロパティを設定して、ユーザーが望まない方法でソリューションをカスタマイズできないようにすることもできます。
ソリューションの依存関係
マネージド ソリューションが階層化されるため、一部のマネージド ソリューションは、他のマネージド ソリューションのソリューション コンポーネントに依存できます。 一部のソリューションパブリッシャーはこれを利用して、モジュール式のソリューションを構築します。 最初に "基本" マネージド ソリューションをインストールする必要がある場合があります。その後、基本マネージド ソリューションのコンポーネントをさらにカスタマイズする 2 つ目のマネージド ソリューションをインストールできます。 2 番目のマネージド ソリューションは、最初のソリューションの一部であるソリューション コンポーネントに依存します。
システムは、ソリューション間のこれらの依存関係を追跡します。 インストールされていない基本ソリューションを必要とするソリューションをインストールしようとすると、ソリューションをインストールできなくなります。 ソリューションに別のソリューションを最初にインストールする必要があることを示すメッセージが表示されます。 同様に、依存関係があるため、依存するソリューションがまだインストールされている間は、基本ソリューションをアンインストールできません。 基本ソリューションをアンインストールする前に、依存ソリューションをアンインストールする必要があります。