ソリューションを使った作業の概要

このトピックは、Dynamics 365 Customer Engagement (on-premises) に適用されます。 このトピックの Power Apps バージョンについては、以下を参照してください。 ソリューションの概要

Dynamics 365 Customer Engagement (on-premises) では、別の組織にアプリケーションおよびコンポーネントを移動したり、既存のアプリケーションに一連のカスタマイズを適用するために、ソリューションが利用されます。 ソリューションには、1 つ以上のアプリに加えて、サイト マップ、エンティティ、プロセス、Web リソース、オプション セットなど、それ以外のコンポーネントを含めることができます。 ソリューションは AppSource または独立系ソフトウェア ベンダー (ISV) から取得することができます。 ソリューションは、アプリとして環境にインポートすることができる、または既存のアプリに対して一連のカスタマイズを適用することができるファイルです。

詳細情報: Whitepaper: Patterns and Principles for Solution Builders (ホワイト ペーパー: ソリューション ビルダー用のパターンとプリンシパル)

配布するアプリを作成する ISV の場合は、ソリューションを使用する必要があります。 ソリューションの使用の詳細については、「ソリューションを使用した拡張機能のパッケージ化および配布」を参照してください。

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

ソリューション コンポーネントは、カスタマイズできる可能性のあるものを示します。 ソリューションに含めることのできるものは、ソリューション コンポーネントです。 ソリューションに含まれるコンポーネントを表示するには、ソリューションエクスプローラーで 設定>ソリューション 移動して、必要なソリューションを開きます。 コンポーネントは、コンポーネント リストに一覧表示されています。

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

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

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

管理ソリューションは、インポートされた後アンインストールできます。 ソリューションのすべてのコンポーネントは、ソリューションのアンインストールによって削除されます。

アンマネージドソリューションをインポートする場合は、既定のソリューションにソリューションのすべてのコンポーネントを追加します。 ソリューションをアンインストールしてもコンポーネントは削除できません。

すでにカスタマイズしたソリューション コンポーネントを含むアンマネージドソリューションをインポートした場合、カスタマイズはアンマネージド ソリューションのカスタマイズによって上書きされます。 これを元に戻すことはできません。

重要

既定のソリューションにすべてのコンポーネントを追加し、既存のカスタマイズを上書きする場合にのみ、アンマネージド ソリューションをインストールします。

ソリューションの配布を計画していない場合でも、アンマネージド ソリューションを作成および使用し、カスタマイズしたアプリケーションのそれらの部分のみを含む個別のビューが表示されるようにできます。 何かをカスタマイズするときはいつでも、作成したアンマネージド ソリューションに追加するだけです。

管理ソリューションを作成するには、ソリューションをエクスポートするときに管理ソリューションのオプションを選択します。 管理ソリューションを作成する場合、使用した同じ組織にその管理ソリューションをインポートし直すことはできません。 別の組織にのみインポートできます。

ソリューションの適用方法

すべてのソリューションは層として評価され、 アプリが実際に行うことを確認します。 次の図は、管理ソリューションとアンマネージド ソリューションが評価される方法と、その変更が組織に表示される方法を示します。

ソリューションの階層。

下から上に向かって動作する。

システム ソリューション
システム ソリューションは、すべての組織に含まれている管理ソリューションと似ています。 システム ソリューションは、システムのすべての「すぐに使用できる」コンポーネントの定義です。

マネージド ソリューション
管理ソリューションは、システム ソリューション コンポーネントを変更して、新しいコンポーネントを追加できます。 複数の管理ソリューションがインストールされている場合、インストールされた最初のものは、後にインストールされた管理ソリューションの下にあります。 これは、インストールされている 2 番目のソリューションが前にインストールされたものをカスタマイズできるという意味です。 2 つの管理ソリューションの定義が矛盾している場合、一般的なルールは "最後の 1 つが優先される" です。管理ソリューション をアンインストールすると、その下の管理ソリューションが有効になります。 すべての管理ソリューションをアンインストールした場合、システム ソリューション内に定義された既定の動作が適用されます。

アンマネージド カスタマイズ
アンマネージド カスタマイズは、アンマネージド ソリューションを使用して組織に加えた変更です。 システム ソリューションは、マネージド プロパティ を使用してカスタマイズできることまたはできないことを定義します。 管理ソリューションの発行者には、ソリューションに追加するソリューション コンポーネントをカスタマイズする能力を制限するのと同じ能力があります。 ソリューション コンポーネントにカスタマイズを阻む管理プロパティがない場合、どれでもカスタマイズできます。

アプリケーションの動作
これは、組織内で実際に表示されるものです。 適用した既定のシステム ソリューション、任意の管理ソリューション、任意のアンマネージド カスタマイズ。

マネージド プロパティ

一部のコンポーネントはカスタマイズすることができません。 システム ソリューション内のこれらのコンポーネントには、カスタマイズすることを防ぐメタデータがあります。 これらは管理プロパティと呼ばれます。 管理ソリューションの発行者は、管理プロパティを設定して、不要な方法でソリューションがカスタマイズされることを防止できます。

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

管理ソリューションを層にする方法により、一部の管理ソリューションは、他の管理ソリューションのソリューション コンポーネントに依存することになります。 一部のソリューション発行者は、これを活用して、モジュール形式のソリューションを開発します。 最初に "基本" 管理ソリューションをインストールし、基本管理ソリューションのコンポーネントをさらにカスタマイズするもう一つの管理ソリューションをインストールする必要があります。 2 番目の管理ソリューションは、最初のソリューションに含まれているソリューション コンポーネントに依存しています。

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

関連項目

カスタマイズに関する入門情報
カスタマイズに必要な特権