ソリューションの概要
このトピックは、Dynamics 365 Customer Engagement (on-premises) に適用されます。 このトピックの Power Apps バージョンについては、以下を参照してください。 ソリューションの概念。
ソリューションとは、カスタマイザーと開発者が Dynamics 365 for Customer Engagement を拡張する単体ソフトウェアを作成、パッケージ化、および保守する方法です。 カスタマイザーと開発者は、ソリューションによって定義されたビジネス機能を組織が Dynamics 365 Customer Engagement (on-premises) を使用してインストールおよびアンインストールできるように、ソリューションを配布します。
拡張の選択肢
ソリューションを使用して、Dynamics 365 Customer Engagement (on-premises) の機能を拡張します。 アプリケーションの外部で動作するソフトウェアの場合は、インストーラー プログラムなど、従来の方法でアプリケーションをパッケージ化してインストールします。
アプリケーションが Dynamics 365 Customer Engagement (on-premises) ソリューション コンポーネントだけで構成される場合は、Customer Engagement に直接インポートできます。 インストーラー プログラムを作成する必要はありません。
ただし、拡張に Dynamics 365 Customer Engagement (on-premises) ソリューション コンポーネントではない、Dynamics 365 Customer Engagement (on-premises) ソリューション コンポーネントと外部コンポーネントの組み合わせが含まれる場合は、インストーラーが必要です。
たとえば、カスタムの Dynamics 365 Customer Engagement (on-premises) エンティティに保存されたデータを Web サービス API を使用して管理する .NET Framework アプリケーションを作成できます。 アプリケーションをインストールするユーザーは、Dynamics 365 Customer Engagement (on-premises) ソリューションをインストールしてユーザー定義エンティティを作成した後、インストーラーを使用してアプリケーションを別にインストールできます。 または、アプリケーション用に作成したインストーラーに、Dynamics 365 Customer Engagement (on-premises) ソリューションのインストールを含めることができます。
バージョン互換性
次の表に示すように、旧バージョンの Customer Engagement からエクスポートされたソリューションは、それ以降のバージョンにインポートできます。
通常、ソリューションは、ソリューションのエクスポート元のバージョンより 2 つ以内新しいバージョンにインポートできます。 サービス パック リリースには、そのサービス パックと互換性のあるソリューションをエクスポートするか、または基本バージョンに含まれる機能のみをエクスポートするためのオプションが用意されています。 詳細: マネージド ソリューションの維持管理: バージョン互換性。
Note
Dynamics CRM 2015 よりも前に作成されたソリューションに関する情報は、 Dynamics CRM 2016 ソリューションの概要 > バージョンの互換性を参照してください
ソリューション コンポーネント
ソリューション コンポーネントは、Dynamics 365 Customer Engagement (on-premises) に含まれるカスタマイズ ツールまたは API を使用して作成され、アプリケーション内で完全にホストされます。 次の図に、ソリューション コンポーネントの種類を示します。
Customer Engagement ソリューションを定義する場合は、まとめて管理できるソリューション コンポーネントのグループを作成します。
Note
ソリューションは、新しいソリューション コンポーネントの追加か、既存のソリューション コンポーネントの上書きのみを行うことができます。 ソリューションを使用してソリューション コンポーネントを削除することはできません。
アンマネージド ソリューションとマネージド ソリューション
Dynamics 365 Customer Engagement (on-premises) ソリューションには、マネージド ソリューションとアンマネージド ソリューションの 2 種類があります。 マネージド ソリューションは、配布とインストールを目的とする完成したソリューションです。 アンマネージド ソリューションは、開発中であるか、配布を目的としないソリューションです。 アンマネージド ソリューションを完成して配布する場合、エクスポートし、マネージド ソリューションとしてパッケージ化します。
次の図で、マネージド ソリューションおよびアンマネージド ソリューションがアプリケーションの動作を制御するためにシステム ソリューションと対話する方法を紹介します。
システム ソリューション
システム ソリューションは、Dynamics 365 Customer Engagement (on-premises) 内に定義されたソリューション コンポーネントです。 マネージド ソリューションやカスタマイズがない場合、システム ソリューションが既定のアプリケーションの動作を定義します。
システム ソリューションのコンポーネントの多くはカスタマイズ可能であり、マネージド ソリューションまたはアンマネージド カスタマイズで使用できます。
マネージド ソリューション
マネージド ソリューションは、システム ソリューションの上にインストールされ、カスタマイズ可能なソリューション コンポーネントを変更するかソリューション コンポーネントをさらに追加できます。
マネージド ソリューションは、他のマネージド ソリューションの上に重ねることもできます。 マネージド ソリューションがそのソリューション コンポーネントのカスタマイズを有効にしている限り、他のマネージド ソリューションをその上にインストールし、マネージド ソリューションが提供するカスタマイズ可能なソリューション コンポーネントを変更できます。
アンマネージド カスタマイズ
システム ソリューションまたは任意のマネージド ソリューションによって提供されるすべてのカスタマイズ可能なソリューション コンポーネントは、アンマネージド カスタマイズでカスタマイズできます。
アンマネージド ソリューション
アンマネージド ソリューションは、アンマネージド カスタマイズのグループです。 カスタマイズされたアンマネージド ソリューション コンポーネントは、任意の数のアンマネージド ソリューションに関連付けることができます。
マネージド ソリューションは、アンマネージド ソリューションをエクスポートし、マネージド ソリューションとしてパッケージすることを選択することで作成します。
アプリケーションの動作
特定の組織での Dynamics 365 Customer Engagement (on-premises) インスタンスの最終的な動作は、システム ソリューション、マネージド ソリューション、およびアンマネージド カスタマイズを合わせたものになります。
アンマネージド ソリューション
ソリューションがアンマネージドの場合は、次の操作を実行できます。
コンポーネントを追加します。
コンポーネントを削除します。
削除可能なコンポーネントを削除します。
アンマネージド ソリューションをエクスポートおよびインポートします。
ソリューションをマネージド ソリューションとしてエクスポートします。
アンマネージド ソリューションのインポート
アンマネージド ソリューションをインポートすると、新しい組織でそのコンポーネントを編集できます。
重要
アンマネージド ソリューションをインポートすると、組織内にすでに存在するソリューション コンポーネントの定義は上書きされます。 この操作は元に戻せません。
アンマネージド カスタマイズ
各 Dynamics 365 Customer Engagement (on-premises) 組織には、カスタマイズ可能なソリューション コンポーネントがあります。 これらのソリューション コンポーネントをまとめて 既定のソリューション と呼びます。 これは、アプリケーションでシステムのカスタマイズを選択したときに編集対象となるソリューションです。 このソリューションとそのカスタマイズを、アンマネージド ソリューションと同じようにエクスポートできます。 ただし、既定のソリューションはマネージド ソリューションとしてエクスポートできません。
アンマネージド ソリューションの作成
マネージド ソリューションを作成する意図がない場合は、アンマネージド ソリューションを作成する必要はありません。 システムを直接カスタマイズできます。 カスタマイズの編集、バックアップ、および転送だけが可能であればよい組織では、Dynamics 365 Customer Engagement (on-premises) ソリューション フレームワークの高度な機能を使用する必要はありません。
アンマネージド ソリューションを作成すると、カスタマイズ可能なソリューション コンポーネントのサブセットをグループ化する方法が作成されます。 アンマネージド ソリューション内のソリューション コンポーネントは、組織内のカスタマイズ可能なソリューション コンポーネントへの参照です。
アンマネージド ソリューションを作成した後、そこにソリューション コンポーネントを追加できます。 この小さなコンポーネント セットを使用して、特定の機能に関連するソリューション コンポーネントだけを含めることを選択できます。 これにより、ソリューションを小さなサイズのパッケージでエクスポートでき、コンポーネントがさらに管理しやすくなります。
アンマネージド ソリューションに追加するコンポーネントは、システムのカスタマイズ可能なソリューション コンポーネントに含まれます。 アンマネージド ソリューション コンポーネントは、複数のアンマネージド ソリューションに追加できます。
重要
各アンマネージド ソリューションにはソリューションの共有グループへの参照が含まれているので、1 つのソリューション内のソリューション コンポーネントに対して実行した変更は、変更したソリューション コンポーネントを参照するすべてのアンマネージド ソリューションにも適用されます。
チップ
アンマネージド ソリューションは、特定のソリューション コンポーネントへの便利なアクセス方法を用意することのみを目的として作成することもできます。 たとえば、ソリューションで大量の HTML Web リソースを使用するが、その一部だけが最上位レベルのユーザー インターフェイス要素を表すとします。 この場合、最上位レベルのユーザー インターフェイス コンポーネントを簡単に見つけて開くことができるように、そのようなコンポーネントだけを含むアンマネージド ソリューションを作成できます。
アンマネージド ソリューションのソリューション発行者
各ソリューションには、ソリューション発行者が必要です。 アンマネージド ソリューションの場合、ソリューション発行者は、共通するカスタマイズの接頭辞とオプション値の接頭辞を指定します。 詳細: ソリューション発行者の作成
複数のソリューションを 1 人のソリューション発行者に関連付けできます。 各組織には、"<OrganizationUniqueName> の既定の発行者" と呼ばれるソリューション発行者があります。 すべてのアンマネージド ソリューションで同じカスタマイズの接頭辞とオプション値の接頭辞を共有する場合は、アンマネージド ソリューションを組織の既定の発行者に関連付けることをお勧めします。
Note
ソリューション発行者は、マネージド ソリューションをどのように更新できるかを管理します。 マネージド ソリューションのインストール時に発行者を確認できますが、その発行者にアンマネージド ソリューションを関連付けることはできません。 管理ソリューションを配布する場合は、「管理ソリューションのソリューション発行者」を参照してください。
アンマネージド ソリューションの削除
アンマネージド ソリューションを削除すると、ソリューション コンポーネントへの参照を格納するために使用したグループが削除されます。 アンマネージド ソリューション内のソリューション コンポーネントはシステム内に残りますが、削除されたアンマネージド ソリューションとの関連付けは存在しなくなります。
Note
アンマネージド ソリューション内のソリューション コンポーネントを削除した場合はシステムから削除され、他のアンマネージド ソリューションから使用することはできなくなります。 ソリューション コンポーネントをアンマネージド ソリューションから取り除くだけの場合は、"削除" ではなく "除去" を使用します。
マネージド ソリューション
ソリューションをマネージド ソリューションとして配布する場合は、アンマネージド ソリューションをエクスポートし、パッケージの種類ダイアログ ボックスで マネージオプションをクリックします。
Note
マネージド ソリューションの作成後は、そのマネージド ソリューションを作成するために使用したアンマネージド ソリューションが含まれる Dynamics 365 Customer Engagement (on-premises) 組織に、作成したマネージド ソリューションをインストールすることはできません。 それは別の組織にインストールする必要があります。
マネージド ソリューションをインストールした後は、以下が適用されます。
マネージド ソリューションに対するソリューション コンポーネントの追加または削除は実行できません。
管理ソリューションはエクスポートできません。
マネージド ソリューションを削除すると、その中のすべてのソリューション コンポーネントがアンインストールされます。
マネージド ソリューションのインストール後は、そのマネージド ソリューションの作成者がカスタマイズを有効にしているのであれば、カスタマイズを実行できます。 カスタマイズ可能なソリューション コンポーネントにアクセスするには、マネージド ソリューション自体ではなく、システムのカスタマイズを使用する必要があります。
管理プロパティ を使用して、カスタマイズ可能なソリューション コンポーネントおよび有効なカスタマイズ操作を制御します。
マネージド ソリューションのソリューション発行者
マネージド ソリューションを配布する場合、マネージド ソリューションに関連付けられたソリューション発行者レコードが、ソリューションをインストールする各組織に作成されます。 ソリューション発行者を使用して、ソリューションをインストールするユーザーに対して連絡先に関する情報を提供できます。
マネージド ソリューションのソリューション発行者は、マネージド ソリューションの更新をリリースする場合にも重要です。 同じソリューション発行者を使用すると、前にリリースしたマネージド ソリューションを更新できる新しいマネージド ソリューションを作成できます。 詳細: 管理ソリューションの維持管理
マネージド プロパティ
管理プロパティを使用すると、マネージド ソリューションの作成者は、ソリューション コンポーネントをカスタマイズできるかどうかと、どの部分がカスタマイズ可能なのかを制御できます。
Note
マネージド プロパティは、アンマネージド ソリューション内に設定する必要があります。 マネージド プロパティの設定は、マネージド ソリューションがパッケージされ、インストールされた後でのみ適用されます。
実際に使用できるマネージド プロパティは、ソリューション コンポーネントの種類に応じて異なります。 次のスクリーンショットは、ユーザー定義エンティティのマネージド プロパティを示しています。
既定では、マネージド プロパティの設定では、すべての種類のソリューション コンポーネントが完全にカスタマイズ可能であると見なされます。 ソリューション開発者は、各自のソリューションでソリューション コンポーネントをカスタマイズ可能にすることが推奨されています。 ただし、ソリューション コンポーネントの定義を "ロックダウン" して、ソリューション コンポーネントを壊す可能性がある変更を避けたり、将来のソリューション コンポーネントの保守を容易にする必要がある場合があります。
詳細: マネージド プロパティの使用
競合の解決
2 つ以上のソリューションで、ソリューション コンポーネントの定義が異なる場合、Dynamics 365 Customer Engagement (on-premises) では、マージと上位優先という 2 つの戦略を使用して競合を解決します。 次の図に、違いを示します。
結合
ユーザー インターフェイス コンポーネント (コマンド バー、リボン、フォーム、およびサイト マップ) はマージされます。 つまり、ソリューション コンポーネントは、組織のアンマネージド カスタマイズが最後に適用されるように、最下位レベルから最上位レベルまでが再計算されます。
上位優先
それ以外のすべてのソリューション コンポーネントでは、競合は、最後に適用されたカスタマイズを優先して計算されます。 マネージド ソリューションの場合、これは通常はインストールされた最後のソリューションが適用されることを意味します。 ただし、マネージド ソリューションの更新がインストールされるという特殊な場合があります。
マネージド ソリューションの更新時の競合の解決
競合の解決に関して、アンマネージド カスタマイズはマネージド ソリューションよりも "上位" と見なされるので、マネージド ソリューションに管理されていない更新をインストールする組織では、変更がアンマネージドであるために、変更が適用されない場合があります。 マネージド ソリューションの更新で変更を必ず適用するためのオプションがあります。
マネージド ソリューションの更新をリリースするとき、その更新をインストールする組織は、次のいずれかを選択できます。
マネージド ソリューションの上位で適用されたすべてのカスタマイズを保持する。
マネージド ソリューションの上位で適用されたすべてのカスタマイズを上書きする。
マネージド ソリューションの更新をインストールする組織は、マネージド ソリューションの作成者と共に、どちらが最適な選択肢であるかを評価する必要があります。
重要
上書きオプションが選択されている場合でも、エンティティ フォームとサイトマップに対する変更は上書きされません。 変更の管理に関するガイダンスは、「フォームのカスタマイズのマージ」および「ナビゲーション (サイトマップ) のカスタマイズのマージ」を参照してください。 アンマネージド カスタマイズをマネージド ソリューションへの更新を含む変更にマージすると、一部の手動カスタマイズが必要になる場合があります。
依存関係の追跡
ソリューション フレームワークは自動的にソリューション コンポーネントの依存関係を追跡します。 ソリューション コンポーネントを操作するたびに、システム内の他のコンポーネントへの依存関係が自動的に計算されます。 依存関係情報を使用してシステムの整合性を保つことで、不整合な状態をもたらす操作を防ぎます。
依存関係の追跡の結果、次の動作が適用されます。
システム内の他のコンポーネントが依存しているコンポーネントの削除は禁止されます。
コンポーネントの不足により他のシステムへのソリューションのインポートが失敗する可能性がある場合、ソリューションのエクスポート時に警告が表示されます。
ソリューション開発者が、依存するコンポーネントが組織内に存在することを前提にしてソリューションをインストールした場合には、エクスポート時の警告を無視できます。 たとえば、あらかじめインストールされている "基本" ソリューション上にインストールするソリューションを作成する場合がこれに該当します。
すべての必須コンポーネントがソリューションに含まれておらず、ターゲット システムにも存在しない場合、ソリューションのインポートは失敗します。
- また、マネージド ソリューションをインポートする場合は、必要なすべてのコンポーネントがソリューションのパッケージの種類と一致している必要があります。 マネージド ソリューションのコンポーネントは他のマネージド コンポーネントのみに依存できます。
複数の言語のサポート
Dynamics 365 Customer Engagement (on-premises) では、複数の言語をネイティブにサポートします。 言語パック ("MUI パック" と呼ばれることもあります) をインストールすると、ユーザー インターフェイスをいつでも別の言語で表示できます。
ソリューションに含まれているソリューション コンポーネントの種類に応じて、適用すべきさまざまな戦略が多数あります。 詳細:複数の言語をサポートするソリューションの作成
参照
Dynamics 365 Customer Engagement (on-premises) ソリューションを使用した拡張機能のパッケージ化および配布
ソリューション ビルダー向けの Microsoft Dynamics 365 Customer Engagement パターンと原則
ソリューション開発の計画
ソリューション コンポーネントの依存関係の追跡
アンマネージド ソリューションの作成、エクスポート、またはインポート
マネージド ソリューションの作成、インストール、および更新
ソリューションのアンインストールまたは削除
複数の言語をサポートするソリューションの作成
ソリューション エンティティ
ソリューションの操作
サンプル: ソリューションに関する作業
サンプル: ソリューションの依存関係の検出
ソリューション エンティティ