コンポーネント ライブラリ アプリケーション ライフサイクル管理 (ALM)

コンポーネント ライブラリ は 1 つ以上のキャンバス コンポーネントを含めることができる特別な種類のキャンバス アプリです。 これらのライブラリ コンポーネントは、環境内の他のすべてのキャンバス アプリで使用できます。 この機能により、1 つのアプリに制限されている アプリ レベル コンポーネント とは異なり、環境内のすべてのアプリで再利用可能な共有コンポーネントを作成できます。

コンポーネント ライブラリのコンポーネントを使用するには、最初にコンポーネントをキャンバス アプリにインポートする必要があります。 インポートしたら、コンポーネントを任意のアプリ画面に追加できます。 コンポーネント ライブラリからのコンポーネント定義の更新は、オンデマンド または アプリが編集のために開かれている 際の変更を確認して組み込むように促します。 コンポーネント ライブラリと依存するアプリは、標準 Microsoft Dataverse ソリューション を使用して別の環境に移動することもできます。

注意

この記事では、「インポート」という用語は、コンポーネントをコンポーネント ライブラリからアプリにインポートすることを意味し、ソリューションを Dataverse にインポートすることと混同しないでください。

コンポーネント ライブラリのコンポーネントがキャンバス アプリにインポートされると、そのコンポーネントの定義がキャンバス アプリの定義にコピーされます。 コンポーネント定義がインポートされると、そのコンポーネント定義に関する限り、アプリは「自己完結型」になります。 アプリ開発者はコンポーネントを編集する を選択し、アプリ内にコンポーネントのローカル インスタンスを作成します。 この時点では、コンポーネントの作成元であるコンポーネント ライブラリへの直接リンクはありません。 この自己完結型の特性は、キャンバス アプリがコンポーネント ライブラリが存在しない別の環境に移行された場合にも当てはまります。 ターゲット環境のアプリ内にインポートされたコンポーネント定義のインスタンスを引き続き作成でき、アプリは引き続き公開および再生できます。 この場合、消費するアプリで新しい更新のプロンプトや受信は行われません。

アプリからコンポーネント ライブラリへの関係を維持するために、消費するアプリ内でコンポーネントを編集するのではなく、コンポーネント ライブラリを使用してコンポーネントに変更を加えるようにしてください。

キャンバス アプリとコンポーネント ライブラリ ソリューションのサポート

他のソリューション オブジェクトの依存関係と同様に、キャンバス アプリがコンポーネント ライブラリからキャンバス コンポーネントをインポートする場合、そのコンポーネント ライブラリに依存します。 アプリを新しい環境に移動するには、コンポーネント ライブラリを同じソリューション内にパッケージ化するか、前提条件としてインストールする必要があります。 アプリからコンポーネント ライブラリの依存関係は、ターゲット環境で維持されます。 後で、更新されたコンポーネントを含むコンポーネント ライブラリがソリューションを使用してターゲット環境にインポートされると、既存のアプリは通常のコンポーネントの更新フロー を使用して新しいコンポーネント定義を取得します。

ソリューションでのコンポーネント ライブラリの作成とエクスポート

ソリューション内から直接コンポーネント ライブラリを作成することも、既存のソリューションに追加することもできます。

既存のコンポーネント ライブラリをソリューションに追加するか、新しいコンポーネント ライブラリを追加します。

Dataverse が使用可能な環境にコンポーネント ライブラリを保存すると、コンポーネント ライブラリが既定のソリューションに自動的に追加されます。 既定の CDS 発行者接頭辞が付いたコンポーネント ライブラリの一意の論理名が生成されます。 この動作は、ソリューション システムがその存在を確認し、コンポーネント ライブラリの論理名を使用するアプリからの依存関係をリンクできるようにするためのものです。

注意

コンポーネント ライブラリ ALM 機能のロールアウト前に作成されたコンポーネント ライブラリは、編集、公開する必要があり、ALM 機能を有効にする前に、編集を明示的に閉じる必要があります。 コンポーネント ライブラリ ALM の準備状況は、既定のソリューションに存在することで確認できます。

コンポーネント ライブラリの存在について既定のソリューションを確認してください。

ソリューション内のコンポーネント ライブラリは、ターゲット環境でのコンポーネント ライブラリの動作を管理するカスタマイズを許可する管理プロパティもサポートします。

コンポーネント ライブラリのカスタマイズ管理プロパティを許可します。

この設定をオフにして、ソリューションをターゲット環境にエクスポートすると、コンポーネント ライブラリを編集できなくなります。

カスタマイズが許可されていないコンポーネント ライブラリを編集することはできません。

コンポーネント ライブラリの依存関係

コンポーネント ライブラリからコンポーネントを使用するアプリは、ソリューション インフラストラクチャで依存としてマークされます。 この動作は、特定の環境で Dataverse ソリューションに追加されるすべてのアプリに適用されます。 ソリューションの外部でアプリを作成することはできますが、それらのアプリにはソリューションの依存関係はありません。 後でこれらのアプリをソリューションに追加して、ソリューション ALM の一部にすることができます。

同じソリューションのコンポーネント ライブラリのコンポーネントと両方の依存関係を使用して、ソリューションのキャンバス アプリを表示するアニメーション。

コンポーネント ライブラリからコンポーネントを使用するアプリのみを含み、コンポーネント ライブラリを除外するソリューションをインポートすると、次のメッセージが表示されます:

「<app name> の依存関係がないため、インポートに失敗しました。」

この場合、最初にコンポーネント ライブラリ ソリューションをインストールするか、キャンバス アプリを含むソリューションにコンポーネント ライブラリをバンドルするかを選択できます。 どちらの手順でも、アプリにターゲット環境で作成された依存関係があることが保証されます。

ライブラリが更新され、ソリューションを通じて新しいコンポーネント バージョンがインポートされると、アプリは通知を取得し、アプリが編集のために開かれる ときに更新を受信します。

注意

コンポーネント ライブラリの管理プロパティの場合カスタマイズを許可するがオフになっている場合、コンポーネント ライブラリはターゲット環境で編集できません。

依存関係は、アプリの最新の公開状態に基づいて計算されます。 ライブラリ コンポーネントを使用しない古いバージョンのアプリを復元すると、依存関係がアプリとソリューションから削除されます。 コンポーネントを実際に使用せずにコンポーネント ライブラリからアプリにインポートすると、未使用のライブラリ コンポーネントがアプリ内で将来使用できるようになるため、依存関係も作成されます。

ヒント

消費アプリ内のコンポーネント ライブラリからコンポーネントを編集すると、ローカル コピーが作成されます。 この時点で、ライブラリ コンポーネントは挿入ペインを通じて引き続き使用できます。 依存関係を完全に削除するには、挿入 > ライブラリ コンポーネント > ... (省略記号) > アプリから削除からコンポーネントを削除します。

ベスト プラクティスとトラブルシューティング

  • 最適なパフォーマンスを取得するには、ライブラリ内のコンポーネントの数を 20 に制限してください。 コンポーネントの数は時間の経過とともに増える可能性があるため、事前に複数のコンポーネント ライブラリを計画して作成してください。 このアプローチでは、アプリが環境全体を移動するときにソリューション ペイロードも削減されます。

  • コンポーネント ライブラリが公開されてからアプリケーションで利用できるようになるまでには遅延があり、最大 5 分かかる場合があります。

  • ソリューションがインストールされているターゲット環境のライブラリ コンポーネントからアプリが更新を受信できない場合は、以下のアクションを使用して確認してください:

    • ターゲット環境でコンポーネント ライブラリに加えられた変更は、コンポーネントの最上位層にあります。 その後、これらのカスタマイズにより、コンポーネントの実行時の動作が定義されます。 これらの管理されていないカスタマイズを削除するには、アンマネージド レイヤーを削除する を参照してください。
    • ソリューション ビューからコンポーネント ライブラリの論理名を決定します。 ライブラリがソリューションに明示的に追加されていない場合は、既定のソリューションを使用します。
    • ライブラリ コンポーネントを使用してアプリをダウンロードし、ファイル > 名前を付けて保存 > このコンピューターを使用してローカル コンピューターにダウンロードします。 ダウンロードしたファイルの名前を .zip 拡張機能に変更し、パッケージを解凍します。 Properties.json ファイルを開き、キーワード「LibraryDependencies」を検索します。 一致するライブラリの論理名が表示されます。
    • ソリューションを消費している場合は、キャンバス アプリがコンポーネント ライブラリがソリューションの依存関係 として正しく識別していることを確認してください。 ソリューションがコンポーネント ライブラリをソリューションの依存関係として適切に識別しない場合は、コンポーネント ライブラリ リンクへのアプリの依存関係が適切に作成されていないことを意味します。 その場合は、ソリューション プロバイダーに確認して問題を解決してください。
    • ソリューション発行者の場合は、コンポーネント ライブラリがソリューションにライブラリ論理名で保存されていること、およびコンポーネント ライブラリの .msapp パッケージで参照されているものと同じであることを確認してください。
  • ソリューションのエクスポートでは、常に最新バージョンのコンポーネント ライブラリがエクスポートされます。 したがって、ソリューションを介してアプリをエクスポートする前に、常に最新のコンポーネント バージョンでアプリを更新してください。 このアクションにより、アプリのコンポーネント バージョンが最新バージョンのコンポーネント ライブラリで使用できるものと同じになります。 アプリとライブラリは、ターゲット環境に初めて移動したときに相互に同期していると見なされます。したがって、アプリの編集時に使用可能な更新の入力を求められることはありません。

参照

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。