Microsoft Dataverse 拡張性モデル
Microsoft Dataverse を拡張する方法をよりよく理解するには、その基礎となるアーキテクチャについて学ぶことが重要となります。 Dataverse はサービスとしてのソフトウェア プラットフォームであり、基になるデータ ストレージなどの詳細について心配する必要がないため、カスタム ビジネス ロジックの構築や他のアプリケーションとの統合といった、より関心の高い分野に集中できるようになります。 以下の図は、これら基になるコンポーネントを示しています。強調表示されているセクションは、Power Apps モデル駆動型アプリケーションを作成している開発者がコードを活用して拡張できる領域です。
メモ
このユニットは、Dataverse アーキテクチャの概要を説明することのみを意図したものです。 Dataverse の詳細な分析については、『Dataverse 開発者ガイド』を参照してください。
メタデータとソリューションの認識
Microsoft Dataverse にはメタデータ主導型アーキテクチャが用意されており、これを活用して柔軟にカスタム テーブルを作成したり、既存のテーブルを拡張したりできます。 このアプローチを使用すると、Dataverse ソリューションを使用して環境間でカスタマイズを簡単に転送できます。
カスタム テーブルを作成すると、そのテーブル、その列と他のテーブルとのリレーションシップ、ユーザー インターフェイス コンポーネント (フォームやビューなど) に関するメタデータが、メタデータとしてソリューション内の Dataverse 環境に格納されます。
また、Dataverse は、OData V4 RESTful エンドポイント (Dataverse Web API と呼ばれます) を公開しています。これは Dataverse 環境内のメタデータの表示と操作に活用できます。 ソリューションのメタデータ参照で一般的なメカニズムの 1 つは、メタデータ ブラウザーを活用することです。 Microsoft ではこれを、アプリにインストールできるソリューションとして提供します。 現在のリンクは、ご利用の環境でテーブル定義を参照するで確認できます。 このツールは、モデル駆動型 Power App にインストールできます。 さらに、XrmToolbox にはコミュニティ メタデータ ブラウザー ツールがあります。
.NET アセンブリ (プラグイン)
Dataverse プラグインは、特定の Dataverse イベントが発生したときに実行されるように登録されているマネージド コード クラスです。 イベントが発生すると、それらは Pre-Validation、Pre-Operation、PostOperation の 3 つのステージから構成されるプラグイン実行パイプラインを通過します。 プラグインを登録する際に、どのステージでコードを実行するかを選択してください。 どのステージを選択するべきかは、拡張の目的によって異なります。 1 つのステップ内にすべてのビジネス ロジックを適用する必要はありません。
プラグインは、同期と非同期のいずれかで実行するよう設定できます。 同期プラグインは、ステージと実行順序に従って直ちに実行され、完了するまで操作全体が待機状態になります。 非同期プラグインは、操作が完了してからシステム ジョブ経由で実行され、PostOperation ステージに対してのみ登録できます。
プラグインを開発および登録して、Dataverse カスタム API メッセージのロジックを実装することもできます。
API
Dataverse API は、Dataverse に格納されるビジネス データ、組織情報、メタデータにアクセスするための、アプリケーションやサービス用のプログラム的なインターフェイスを提供します。 開発者は、API の使用方法に応じて、RESTful OData Web API を使用するか、または SDK for .NET アセンブリを介してタイプ指定された .NET クラスを使用することができます。 Web API は、HTTP 要求を行って HTTP 応答を使用できればよいだけなので、最も広範に適用できます。 Dataverse プラグインの開発には、SDK for .NET を使用する必要があります。 他のほとんどの用途には、作成する内容に最も適した API スタイルを選択できます。