Dataverse と Common Data Model の概要

完了

Dataverse を使用すると、ビジネス アプリケーションが使用するデータを安全に格納し、管理することができます。 Dataverse では、ビジネス アプリケーション データを一連のテーブル (以前はエンティティと呼ばれていました) 内に格納します。 テーブルとは、行 (以前はレコードと呼ばれていました) と列 (以前はフィールド/属性と呼ばれていました) のセットです。 テーブルの各列には、名前、年齢、給与など、特定のタイプのデータが格納されます。Dataverse には、標準的なシナリオを網羅する標準テーブルの基本セットが含まれています。また、自分の組織に固有のカスタム テーブルを作成し、Power Query を使用してデータを入力することもできます。 アプリ開発者は Power Apps を使用して、このデータを使用するエンド ユーザー アプリケーションを構築することができます。

Dataverse の利点

Dataverse は、Azure SQL や Cosmos DB、Azure Storage などの複数の Azure データ ストレージ機能に基づいて構築されています。 Dataverse では、基盤となるテクノロジを抽象化して、さまざまなアプリケーション内で組織のデータとビジネス プロセスの定義をビジネスに焦点を当てて作成できる、統合された一連の機能が用意されています。 データとメタデータは両方ともクラウドに格納されているため、アプリケーションは簡単に管理および操作できます。 さらに、組み込み型のセキュリティ モデルを使用すると、組織内のユーザーのロールに基づいて、テーブルおよび機能へのアクセスを制御することができます。

Microsoft では、Dynamics 365 for Sales、Service、Field Service、Customer Insights - Journeys をはじめとする多数のファーストパーティ製アプリを、Dataverse で構築しています。 ユーザーのアプリを同じ Dataverse プラットフォーム上に構築することにより、Dataverse 内で他のアプリを拡張したり、そのデータを操作することができます。

あらゆる種類のデータを使用する

Dataverse は、一般的なデータ型であれば大半が操作できるように設計されています。リレーショナル、非リレーショナル、ファイル、画像、検索、データ レイクなど、組織で必要となる主要なデータ テクノロジがすべて組み込まれています。 データ エンジンが異なる場合は通常、複数の API を使用して開発を行う必要がありますが、 Dataverse ではすべてのデータが外部との通信で統合 API を通過するため、既定の動作を拡張するカスタムなビジネス ロジックを、一貫した方法で作成することができます。

Dataverse には、データとデータ モデルの作成、編集、操作に使用できる一連のビジュアル デザイナーが用意されており、 テーブル、リレーションシップ、ビジネス ルール、フォーム、ビュー、およびビジネスを表現するワークフローを簡単に定義できます。 また、API を使用してプログラムでプラットフォーム メタデータを操作し、テーブルや列の作成などを行うこともできます。

Dataverse は仮想テーブルにも対応しています。 仮想テーブルは外部データ ソースのデータをマッピングし、Dataverse に存在しているように見せます。 Dataverse は、仮想テーブルを使用して外部データ ソースのデータをリアルタイムで操作できます。 開発者は、コードを使用してデータ プロバイダーを作成し、外部データ ソースへの接続を容易にすることができます。 詳しくは、「外部データ ソースからのデータを含む仮想テーブルの作成および編集」を参照してください。

あらゆる種類のアプリを使用する

新しいアプリを作成する際にも、Dataverse を Power Apps で使用することにより、生産性のさらなる向上を実現できます。 Power Apps は Dataverse に含まれるリッチ メタデータを理解します。それをさまざまな方法で使用することで、見栄えが良く、安全で拡張性に優れたアプリを短期間で作成し、デスクトップ、Web、モバイル、および Microsoft Teams で使用することができます。

Dataverse のデータを既存のアプリに統合したり、カスタム コードを使用して新しいアプリを作成する必要がある場合でも、Dataverse には REST ベースの API が用意されているため、統合を簡単に行うことができます。 この REST API は Dataverse の機能をすべてサポートします。つまり、カスタマイズをすべて完全に構築することで、無制限の拡張性を体験できます。

組み込み型セキュリティ モデル

これまでのアプリケーション構築では、開発者はアプリケーションのセキュリティ モデルを独自に設計し、作成する必要がありました。 Dataverse には、アプリケーションのセキュリティ モデルを構成できる事前構築済の一連の構成要素が含まれています。 Dataverse はロールベースのセキュリティを使用し、行レベルの精度によるデータ アクセスと、複数のテーブルを使用するビジネス機能のデータ アクセスの両方を、1 つの特権のコレクションでまとめて管理します。 これらのセキュリティ ロールは、個々のユーザーに直接関連付けることも、Dataverse のチームや事業単位に関連付けることもできます。

アクセスを行レベルで制御する方法では、ビジネス シナリオによっては不十分な場合もあります。Dataverse では列レベルのセキュリティ機能を使用して、列レベルでセキュリティを細かく制御できます。

Dataverse には、階層型 (マネージャー階層と職位階層) で使用できるセキュリティ機能も含まれています。 マネージャー階層では、マネージャーは部下と同じ事業単位内にいるか、または部下の事業単位の上位の部署にいなければ、部下のデータにアクセスできません。 職位階層では、事業単位全体でデータにアクセスできます。 そのため、より複雑なセキュリティ モデルを作成する場合に使用されます。

開発者は、API を使用してセキュリティ タスクを自動化することもできます。

コードを記述する時期

Power Platform 開発者として、コンフィギュレーションとコードで達成できる範囲の間に存在するギャップを理解する必要があります。 場合によっては、既存の機能が要件を満たすために必要な機能を備えていないことがあります。Dataverse では、開発者がコードを使用して共通の機能を拡張できるさまざまな拡張ポイントが用意されています。

機能がまだ存在しないギャップを特定するには、すべての Power Platform 開発者が Dataverse の機能を熟知していることが重要です。 Power Apps で Dataverse を使用してアプリを構築する方法の詳細については、「Power Apps のモデル駆動型アプリケーションを作成する」のラーニング パス、および Power Apps Maker のドキュメントにある「Microsoft Dataverse を使用してキャンバス アプリを一から作成する」のチュートリアルを利用することをお勧めします。

拡張性の種類

通常、コードベースのカスタマイズ活動は、アプリケーションの "拡張" と呼ばれます。 したがって、拡張性などの用語を使用している場合は、通常、モデル駆動型の Power Apps 開発の観点のコードを表します。 拡張性モデルでは、活動がユーザー エクスペリエンスの拡張と、プラットフォームまたは Dataverse そのものの拡張という、より広範な 2 つのグループに分類されます。

Power Apps でのユーザー エクスペリエンスの拡張

Power Apps アプリのユーザー エクスペリエンスを拡張するために、Power Apps Component Framework (PCF) を使用して、あらゆる種類の Power Apps で使用されるコード コンポーネントを作成することができます。 モデル駆動型 の Power Apps は、アプリケーションのフォームにビジネス ロジックを実装して、アプリケーション ページと対話できるように、JavaScript クライアント API も公開しています。

キャンバス アプリにはスクリプト機能がありませんが、そのロジックは Microsoft Power Fx を使用して構築されます。 Power Fx は Microsoft Power Platform 全体で使用されるローコード言語です。 広範な用途に使用され、厳密に型指定された、宣言型の、高機能なプログラミング言語です。 熟練したプラットフォーム開発者であれば、この言語を使いこなし、必要に応じてソース ファイルを編集したり、Monitor などのツールを使用してアプリをデバッグしたりできます。 詳しくは、「Monitor を含む Power Apps の概要」を参照してください。

スクリプトの作成では、TypeScript 言語が推奨されることが多いです。 TypeScript は JavaScript にトランスパイルされるため、この 2 つの言語はまとめて "クライアント スクリプト" と呼ばれます。クライアント スクリプトを使用すると、HTML フォーム要素と同じ方法でフォームのイベント ハンドラーを構成できます。 また、スクリプト関数をコマンド バー (リボン) から呼び出して、クライアント スクリプトの Web リソースを HTML Web リソース内で消費することもできます。

HTML Web リソースは PCF コード コンポーネントの前に処理されます。また、標準のフォームをそのまま使用するだけでは実装できない高度な要件が存在する場合に、モデル駆動型アプリのフォーム内でカスタムなロジックを表示するためにも使用されます。 たとえば、PCF コード コンポーネントが使用可能になる前に構築されたアプリで作業をすると、これらが発生する場合があります。

Dataverse の拡張

既存の機能ではサポートされない何らかの自動化や動作が必要になった場合には、プラットフォームとしての Dataverse を拡張することが必要になります。 これらのタイプの機能拡張ポイントは、プラグインと呼ばれる構造を通じてサーバー側コードとして実行されます。 Power Automate およびその他のオプションを使用すると、非同期の自動化とロジックを行うことができますが、同期の動作においては、プラグインで実行可能なすべての処理を実行できるわけではありません。 アプリケーション内に同期的操作の要件が存在する場合は、やはりプラグインが必要になります。 プラグインによる同期処理では、Dataverse の変更をトランザクションの単一の作業単位として処理できます。

開発者はカスタム API 機能を使用して、Dataverse で独自の API も作成できます。 1 つ以上の操作を、コード、Power Apps キャンバス アプリまたは Power Automate から呼び出せるカスタム API に統合できます。

プラグインの開発は必須のスキルであり、Power Platform 開発者が実行する一般的なタスクです。

Dataverse ソリューション

Dataverse を使用して開発や機能拡張を行う場合に重要となる概念の 1 つに、ソリューションの構成要素あります。 Dataverse のソリューションは、アプリやその他のコンポーネント (サイト マップ、テーブル、プロセス、Web リソース、選択、フローなど) を入れるコンテナーです。 ソリューションは、アプリやコンポーネントをある環境から別の環境に転送したり、一連のカスタマイズを既存のアプリに適用したりするのに使用します。 また、ソリューションは、Microsoft のファーストパーティ製アプリと独立系ソフトウェア ベンダーによるアプリを環境にインストールする方法でもあります。

Power Platform でアプリケーション ライフサイクル管理 (ALM) を実装するための仕組みがソリューションです。 ソリューションの概念について詳しくは、Dataverse ドキュメントにある「Power Apps のソリューション」を参照してください。 Power Platform Build Tools を Azure DevOps や GitHub で使用すると、Power Platform ALM の運用を自動化することができます。 アプリケーション ライフサイクル管理にソリューションを使用する方法の詳細については、Microsoft Power Platform ALM ガイドにある「Microsoft Power Platform での ALM の概要」を参照してください。

Common Data Model の概要

Microsoft は、共通のビジネス概念を表すスキーマの拡張可能なコレクションで構成された Common Data Model を公開しています。 連絡先、潜在顧客、連絡先、製品などのすべての業務アプリケーションで共通のスキーマを使用することにより、データの相互運用性が大幅に向上します。

次のインフォグラフィックは、基本の Common Data Model スキーマの現在の状態を効果的に表しています。 Common Data Model は、進化し続けるエコシステムであり、時間の経過と共に他の多くのものが表面化します。

Common Data Model の使用

Common Data Model は、Dynamics 365 に存在データ スキーマによって影響を受け、ビジネス領域の範囲に対応します。 Dynamics 365 を使用している顧客またはパートナーの場合は、既に Common Data Model 使用しています。 Dataverse では、取引先企業や取引先担当者などの Common Data Model の標準エンティティを実装します。 Common Data Model の一部の標準エンティティは、各 Dataverse データベースに組み込まれます。 他の標準エンティティは、ファーストパーティ製アプリケーション (Dynamics 365 Field Service など) や業界ソリューション アクセラレータ (Dynamics 365 Automotive Accelerator など) などのソリューションの一部としてインストールされます。

Common Data Model は、GitHub で管理されます。 スキーマは JSON ファイルとして管理されます。 エンティティ参照全体は、ApplicationCommon の概要で確認できます。 また、ユーザーが、Common Data Model のエンティティをビジュアルにナビゲートできる Visual Entity Navigator も用意されています。

Common Data Model に対して構築する場合は、カスタム アプリケーションのスキーマを構築するために行われる階層化アプローチを理解する必要があります。 Common Data Model のアプリケーションの基礎となるのは、取引先企業や取引先担当者など、よく使用されるエンティティを含むコア スキーマです。 そこから、機能または業界固有のモデルを使用して、独自のカスタム アプリケーションの開発をさらに高速化できます。これにより、独自のモデルを構築することができます。