ソリューションの概要

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

ソリューションとは、カスタマイザーと開発者が Microsoft Dynamics 365 (オンラインおよび設置型) を拡張した単体ソフトウェアを作成、パッケージ化、および保守する方法です。 カスタマイザーと開発者は、ソリューションによって定義されたビジネス機能を組織が Microsoft Dynamics 365 を使用してインストールおよびアンインストールできるように、ソリューションを配布します。

このトピックの内容

拡張の選択肢

バージョン互換性

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

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

マネージド プロパティ

競合の解決

依存関係の追跡

複数の言語のサポート

拡張の選択肢

ソリューションを使用して、Microsoft Dynamics 365 の機能を拡張します。 アプリケーションの外部で動作するソフトウェアの場合は、インストーラー プログラムなど、従来の方法でアプリケーションをパッケージ化してインストールします。

アプリケーションが Microsoft Dynamics 365 ソリューション コンポーネントだけで構成される場合は、Dynamics 365に直接インポートできます。 インストーラー プログラムを作成する必要はありません。

アプリケーションと外部コンポーネント

ただし、拡張に Microsoft Dynamics 365 ソリューション コンポーネントと外部コンポーネント (Microsoft Dynamics 365 ソリューション以外のコンポーネント) の組み合わせが含まれる場合は、インストーラーが必要です。

たとえば、ユーザー定義の Microsoft Dynamics 365 エンティティに保存されたデータを Web サービス API を使用して管理する .NET Framework アプリケーションを作成できます。 アプリケーションをインストールするユーザーは、Microsoft Dynamics 365 ソリューションをインストールしてユーザー定義エンティティを作成した後、インストーラーを使用してアプリケーションを別にインストールできます。 または、アプリケーション用に作成したインストーラーに、Microsoft Dynamics 365 ソリューションのインストールを含めることができます。

バージョン互換性

次の表に示すように、旧バージョンの Dynamics 365 からエクスポートされたソリューションは、それ以降のバージョンにインポートできます。

ソリューションのバージョンの互換性

通常、ソリューションは、ソリューションのエクスポート元のバージョンより 2 つ以内新しいバージョンにインポートできます。 サービス パック リリースには、そのサービス パックと互換性のあるソリューションをエクスポートするか、または基本バージョンに含まれる機能のみをエクスポートするためのオプションが用意されています。詳細:バージョン互換性

Microsoft Dynamics CRM 2013 Service Pack 1 (SP1) では、新しい Microsoft Dynamics 365 (オンライン) の組織のために拡張サービス機能が含まれ、既存の Microsoft Dynamics 365 の組織にはこれらの機能をインストールするためのオプションが用意されていました。 組織から拡張サービス機能と共にエクスポートされたソリューションは、基本バージョンとの互換性を選択するためのオプションを使用してソリューションをエクスポートしない限り、拡張サービス機能を有効にせずに CRM 2013 SP1 組織にインストールすることはできません。詳細:製品の更新プログラムで利用可能な拡張サービス機能を検出します

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

ソリューション コンポーネントは、Microsoft Dynamics 365 に含まれるカスタマイズ ツールまたは API を使用して作成され、アプリケーション内で完全にホストされます。 次の図に、ソリューション コンポーネントの種類を示します。

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

Dynamics 365 ソリューションを定義する場合は、まとめて管理できるソリューション コンポーネントのグループを作成します。

注意

ソリューションは、新しいソリューション コンポーネントの追加か、既存のソリューション コンポーネントの上書きのみを行うことができます。 ソリューションを使用してソリューション コンポーネントを削除することはできません。

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

Microsoft Dynamics 365 ソリューションには、マネージド ソリューションとアンマネージド ソリューションの 2 種類があります。 マネージド ソリューションは、配布とインストールを目的とする完成したソリューションです。 アンマネージド ソリューションは、開発中であるか、配布を目的としないソリューションです。 アンマネージド ソリューションを完成して配布する場合、エクスポートし、マネージド ソリューションとしてパッケージ化します。

次の図で、マネージド ソリューションおよびアンマネージド ソリューションがアプリケーションの動作を制御するためにシステム ソリューションと対話する方法を紹介します。

ソリューションの階層

  • システム ソリューション
    システム ソリューションは、Microsoft Dynamics 365 内に定義されたソリューション コンポーネントです。 マネージド ソリューションやカスタマイズがない場合、システム ソリューションが既定のアプリケーションの動作を定義します。

    システム ソリューションのコンポーネントの多くはカスタマイズ可能であり、マネージド ソリューションまたはアンマネージド カスタマイズで使用できます。

  • マネージド ソリューション
    マネージド ソリューションは、システム ソリューションの上にインストールされ、カスタマイズ可能なソリューション コンポーネントを変更するかソリューション コンポーネントをさらに追加できます。

    マネージド ソリューションは、他のマネージド ソリューションの上に重ねることもできます。 マネージド ソリューションがそのソリューション コンポーネントのカスタマイズを有効にしている限り、他のマネージド ソリューションをその上にインストールし、マネージド ソリューションが提供するカスタマイズ可能なソリューション コンポーネントを変更できます。

  • アンマネージド カスタマイズ
    システム ソリューションまたは任意のマネージド ソリューションによって提供されるすべてのカスタマイズ可能なソリューション コンポーネントは、アンマネージド カスタマイズでカスタマイズできます。

  • アンマネージド ソリューション
    アンマネージド ソリューションは、アンマネージド カスタマイズのグループです。 カスタマイズされたアンマネージド ソリューション コンポーネントは、任意の数のアンマネージド ソリューションに関連付けることができます。

    マネージド ソリューションは、アンマネージド ソリューションをエクスポートし、マネージド ソリューションとしてパッケージすることを選択することで作成します。

  • アプリケーションの動作
    特定の組織での Microsoft Dynamics 365 インスタンスの最終的な動作は、システム ソリューション、マネージド ソリューション、およびアンマネージド カスタマイズを合わせたものになります。

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

ソリューションがアンマネージドの場合は、次の操作を実行できます。

  • コンポーネントを追加します。

  • コンポーネントを削除します。

  • 削除可能なコンポーネントを削除します。

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

  • ソリューションをマネージド ソリューションとしてエクスポートします。

詳細:アンマネージド ソリューションの作成、エクスポート、またはインポート

アンマネージド ソリューションのインポート

アンマネージド ソリューションをインポートすると、新しい組織でそのコンポーネントを編集できます。

重要

アンマネージド ソリューションをインポートすると、組織内にすでに存在するソリューション コンポーネントの定義は上書きされます。 この操作は元に戻すことができません。

アンマネージド カスタマイズ

各 Microsoft Dynamics 365 組織には、カスタマイズ可能なソリューション コンポーネントがあります。 これらのソリューション コンポーネントをまとめて "既定のソリューション" と呼びます。 これは、アプリケーションで [システムのカスタマイズ] を選択したときに編集対象となるソリューションです。 このソリューションとそのカスタマイズを、アンマネージド ソリューションと同じようにエクスポートできます。 ただし、既定のソリューションはマネージド ソリューションとしてエクスポートできません。

アンマネージド ソリューションの作成

マネージド ソリューションを作成する意図がない場合は、アンマネージド ソリューションを作成する必要はありません。 システムを直接カスタマイズできます。 カスタマイズの編集、バックアップ、および転送だけが可能であればよい組織では、Microsoft Dynamics 365 ソリューション フレームワークの高度な機能を使用する必要はありません。

アンマネージド ソリューションを作成すると、カスタマイズ可能なソリューション コンポーネントのサブセットをグループ化する方法が作成されます。 アンマネージド ソリューション内のソリューション コンポーネントは、組織内のカスタマイズ可能なソリューション コンポーネントへの参照です。

アンマネージド ソリューションを作成した後、そこにソリューション コンポーネントを追加できます。 この小さなコンポーネント セットを使用して、特定の機能に関連するソリューション コンポーネントだけを含めることを選択できます。 これにより、ソリューションを小さなサイズのパッケージでエクスポートでき、コンポーネントがさらに管理しやすくなります。

アンマネージド ソリューションに追加するコンポーネントは、システムのカスタマイズ可能なソリューション コンポーネントに含まれます。 アンマネージド ソリューション コンポーネントは、複数のアンマネージド ソリューションに追加できます。

重要

各アンマネージド ソリューションにはソリューションの共有グループへの参照が含まれているので、1 つのソリューション内のソリューション コンポーネントに対して実行した変更は、変更したソリューション コンポーネントを参照するすべてのアンマネージド ソリューションにも適用されます。

ヒント

アンマネージド ソリューションは、特定のソリューション コンポーネントへの便利なアクセス方法を用意することのみを目的として作成することもできます。 たとえば、ソリューションで大量の HTML Web リソースを使用するが、その一部だけが最上位レベルのユーザー インターフェイス要素を表すとします。 この場合、最上位レベルのユーザー インターフェイス コンポーネントを簡単に見つけて開くことができるように、そのようなコンポーネントだけを含むアンマネージド ソリューションを作成できます。

アンマネージド ソリューションのソリューション発行者

各ソリューションには、ソリューション発行者が必要です。 アンマネージド ソリューションの場合、ソリューション発行者は、共通するカスタマイズの接頭辞とオプション値の接頭辞を指定します。詳細:d5a39fc3-054f-48d3-8dfc-64c4f8afe4dd#BKMK_CreateSolutionPublisher

複数のソリューションを 1 人のソリューション発行者に関連付けできます。 各組織には、"<OrganizationUniqueName> の既定の発行者” と呼ばれるソリューション発行者があります。 すべてのアンマネージド ソリューションで同じカスタマイズの接頭辞とオプション値の接頭辞を共有する場合は、アンマネージド ソリューションを組織の既定の発行者に関連付けることをお勧めします。

注意

ソリューション発行者は、マネージド ソリューションをどのように更新できるかを管理します。 マネージド ソリューションのインストール時に発行者を確認できますが、その発行者にアンマネージド ソリューションを関連付けることはできません。 マネージド ソリューションを配布する場合は、「マネージド ソリューションのソリューション発行者」を参照してください。

アンマネージド ソリューションの削除

アンマネージド ソリューションを削除すると、ソリューション コンポーネントへの参照を格納するために使用したグループが削除されます。 アンマネージド ソリューション内のソリューション コンポーネントはシステム内に残りますが、削除されたアンマネージド ソリューションとの関連付けは存在しなくなります。

注意

アンマネージド ソリューション内のソリューション コンポーネントを削除した場合はシステムから削除され、他のアンマネージド ソリューションから使用することはできなくなります。 ソリューション コンポーネントをアンマネージド ソリューションから取り除くだけの場合は、"削除" ではなく "除去" を使用します。

マネージド ソリューション

ソリューションをマネージド ソリューションとして配布する場合は、アンマネージド ソリューションをエクスポートし、[パッケージの種類] ダイアログ ボックスで [マネージ] オプションをクリックします。

注意

マネージド ソリューションの作成後は、そのマネージド ソリューションを作成するために使用したアンマネージド ソリューションが含まれる Microsoft Dynamics 365 組織に、作成したマネージド ソリューションをインストールすることはできません。 それは別の組織にインストールする必要があります。

マネージド ソリューションをインストールした後は、以下が適用されます。

  • マネージド ソリューションに対するソリューション コンポーネントの追加または削除は実行できません。

  • マネージド ソリューションはエクスポートできません。

  • マネージド ソリューションを削除すると、その中のすべてのソリューション コンポーネントがアンインストールされます。

詳細:管理ソリューションの作成、インストール、および更新

マネージド ソリューションのインストール後は、そのマネージド ソリューションの作成者がカスタマイズを有効にしているのであれば、カスタマイズを実行できます。 カスタマイズ可能なソリューション コンポーネントにアクセスするには、マネージド ソリューション自体ではなく、[システムのカスタマイズ] を使用する必要があります。

マネージド プロパティ を使用して、カスタマイズ可能なソリューション コンポーネントおよび有効なカスタマイズ操作をコントロールします。

マネージド ソリューションのソリューション発行者

マネージド ソリューションを配布する場合、マネージド ソリューションに関連付けられたソリューション発行者レコードが、ソリューションをインストールする各組織に作成されます。 ソリューション発行者を使用して、ソリューションをインストールするユーザーに対して連絡先に関する情報を提供できます。

マネージド ソリューションのソリューション発行者は、マネージド ソリューションの更新をリリースする場合にも重要です。 同じソリューション発行者を使用すると、前にリリースしたマネージド ソリューションを更新できる新しいマネージド ソリューションを作成できます。詳細:管理ソリューションの保守

マネージド プロパティ

管理プロパティを使用すると、マネージド ソリューションの作成者は、ソリューション コンポーネントをカスタマイズできるかどうかと、どの部分がカスタマイズ可能なのかを制御できます。

注意

マネージド プロパティは、アンマネージド ソリューション内に設定する必要があります。 マネージド プロパティの設定は、マネージド ソリューションがパッケージされ、インストールされた後でのみ適用されます。

実際に使用できるマネージド プロパティは、ソリューション コンポーネントの種類に応じて異なります。 次のスクリーンショットは、ユーザー定義エンティティのマネージド プロパティを示しています。

エンティティのマネージド プロパティ

既定では、マネージド プロパティの設定では、すべての種類のソリューション コンポーネントが完全にカスタマイズ可能であると見なされます。 ソリューション開発者は、各自のソリューションでソリューション コンポーネントをカスタマイズ可能にすることが推奨されています。 ただし、ソリューション コンポーネントの定義を "ロックダウン" して、ソリューション コンポーネントを壊す可能性がある変更を避けたり、将来のソリューション コンポーネントの保守を容易にする必要がある場合があります。

詳細:マネージド プロパティの使用

競合の解決

2 つ以上のソリューションで、ソリューション コンポーネントの定義が異なる場合、Microsoft Dynamics 365 では、マージ上位優先という 2 つの戦略を使用して競合を解決します。 次の図に、違いを示します。

ソリューションの競合を解決する 2 つの方法

  • 重複レコードの​​統合
    ユーザー インターフェイス コンポーネント (コマンド バー、リボン、フォーム、およびサイト マップ) はマージされます。 つまり、ソリューション コンポーネントは、組織のアンマネージド カスタマイズが最後に適用されるように、最下位レベルから最上位レベルまでが再計算されます。

  • 上位優先
    それ以外のすべてのソリューション コンポーネントでは、競合は、最後に適用されたカスタマイズを優先して計算されます。 マネージド ソリューションの場合、これは通常はインストールされた最後のソリューションが適用されることを意味します。 ただし、マネージド ソリューションの更新がインストールされるという特殊な場合があります。

マネージド ソリューションの更新時の競合の解決

競合の解決に関して、アンマネージド カスタマイズはマネージド ソリューションよりも "上位" と見なされるので、マネージド ソリューションに管理されていない更新をインストールする組織では、変更がアンマネージドであるために、変更が適用されない場合があります。 マネージド ソリューションの更新で変更を必ず適用するためのオプションがあります。

マネージド ソリューションの更新をリリースするとき、その更新をインストールする組織は、次のいずれかを選択できます。

  • マネージド ソリューションの上位で適用されたすべてのカスタマイズを保持する。

  • マネージド ソリューションの上位で適用されたすべてのカスタマイズを上書きする。

マネージド ソリューションの更新をインストールする組織は、マネージド ソリューションの作成者と共に、どちらが最適な選択肢であるかを評価する必要があります。

重要

上書きオプションが選択されている場合でも、エンティティ フォームとサイトマップに対する変更は上書きされません。 変更の管理に関するガイダンスは、79c15784-56d2-46b0-bc78-b60c3d01cbb6#BKMK_MergingFormCustomizations および 79c15784-56d2-46b0-bc78-b60c3d01cbb6#BKMK_MergingNavigationCustomizations を参照してください。 アンマネージド カスタマイズをマネージド ソリューションへの更新を含む変更にマージすると、一部の手動カスタマイズが必要になる場合があります。

依存関係の追跡

ソリューション フレームワークは自動的にソリューション コンポーネントの依存関係を追跡します。 ソリューション コンポーネントを操作するたびに、システム内の他のコンポーネントへの依存関係が自動的に計算されます。 依存関係情報を使用してシステムの整合性を保つことで、不整合な状態をもたらす操作を防ぎます。

依存関係の追跡の結果、次の動作が適用されます。

  • システム内の他のコンポーネントが依存しているコンポーネントの削除は禁止されます。

  • コンポーネントの不足により他のシステムへのソリューションのインポートが失敗する可能性がある場合、ソリューションのエクスポート時に警告が表示されます。

    ソリューション開発者が、依存するコンポーネントが組織内に存在することを前提にしてソリューションをインストールした場合には、エクスポート時の警告を無視できます。 たとえば、あらかじめインストールされている "基本" ソリューション上にインストールするソリューションを作成する場合がこれに該当します。

  • すべての必須コンポーネントがソリューションに含まれておらず、ターゲット システムにも存在しない場合、ソリューションのインポートは失敗します。

    • また、マネージド ソリューションをインポートする場合は、必要なすべてのコンポーネントがソリューションのパッケージの種類と一致している必要があります。 マネージド ソリューションのコンポーネントは他のマネージド コンポーネントのみに依存できます。

詳細:ソリューション コンポーネントの依存関係の追跡

複数の言語のサポート

Microsoft Dynamics 365 では、複数の言語をネイティブにサポートします。 言語パック ("MUI パック" と呼ばれることもあります) をインストールすると、ユーザー インターフェイスをいつでも別の言語で表示できます。

ソリューションに含まれているソリューション コンポーネントの種類に応じて、適用すべきさまざまな戦略が多数あります。詳細:複数の言語をサポートするソリューションの作成

関連項目

ソリューションを使用した拡張機能のパッケージ化および配布
ソリューション ビルダー向けの Microsoft Dynamics CRM Online のパターンと原則
ソリューション開発の計画
ソリューション コンポーネントの依存関係の追跡
アンマネージド ソリューションの作成、エクスポート、またはインポート
管理ソリューションの作成、インストール、および更新
ソリューションのインストールまたは削除
複数の言語をサポートするソリューションの作成
ソリューション エンティティ
ソリューションの操作
サンプル: ソリューションに関する作業
サンプル: ソリューションの依存関係の検出
ソリューション エンティティ

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権