Microsoft Dataverse には、あらゆる種類のアプリ (モバイル、Web、デスクトップ)、デバイス、システム、またはサービスに統合するための複数の方法が用意されています。 クラウド ソリューションの場合、ソリューションがデプロイされているモデル (サービスとしてのインフラストラクチャ (IaaS)、サービスとしてのプラットフォーム (PaaS)、またはサービスとしてのソフトウェア (SaaS) に関係なく統合する方法があります。 IaaS ベースのソリューションの場合、ソリューションがコンテナー内で実行されている場合、統合アプローチも適切に機能します。
場合によっては、Dataverse に含まれるビジネス ロジックを使用してアプリとの統合を実現できます。 それ以外の場合は、イベント、Dataverse OData API、またはプラグインを使用した統合が含まれます。
ビジネス ロジックの定義
Dataverse のテーブルでは、豊富なサーバー側ロジックと検証を使用してデータ品質を確保し、テーブル内のデータを作成して使用する各アプリの繰り返しコードを減らすことができます。
ビジネス ルール: 複数の列とテーブルにわたってデータを検証し、データの作成に使用されるアプリに関係なく、警告とエラー メッセージを提供します。 詳細情報 : テーブルに対するビジネス ルールの作成
業務プロセス フロー: ユーザーがデータを一貫して入力し、毎回同じ手順に従うことをユーザーに指示します。 ビジネス プロセス フローは現在、モデル駆動型アプリでのみサポートされています。 詳細情報: 業務プロセス フローの概要
ワークフロー: ユーザー操作なしでビジネス プロセスを自動化します。 詳細情報: クラシック Dataverse ワークフロー
コードを使用したビジネス ロジック: コードを介してアプリを直接拡張するための高度な開発者シナリオをサポートします。 詳細情報: コードを使用してビジネス ロジックを適用する
イベントを使用したアプリとの統合
アプリ統合の一般的なアプローチは、イベントを使用することです。 たとえば、Dataverse で新しい行の追加などのイベントが発生し、アクションを実行できるように、関連付けられているシステムに通知する必要があります。 たとえば、新しいサポート要求が発生した場合、割り当てられたサポート スタッフに SMS メッセージが送信される可能性があります。
この対話機能は反対方向にも発生する可能性があります。外部システムの更新により、Power Platform 環境からデータが追加、更新、または削除される可能性があります。
Dataverse で最も一般的なアプローチには、Webhook、Azure メッセージング (Service Bus、Event Hubs)、Azure Logic Apps、または Power Automate が含まれます。
Webhooks
Dataverse を使用すると、Webhook を使用して、サービスで発生したイベントに関するデータを Web アプリに送信できます。 Webhook は、Web API とサービスを発行/サブスクライブ モデルに接続するための軽量 HTTP パターンです。 Webhook 送信者は、イベントに関するいくつかの情報を使用して受信側エンドポイントに要求を行うことで、イベントについて受信者に通知します。
Webhook を使用すると、開発者と ISV は Dataverse データを外部サービスでホストされる独自のカスタム コードと統合できます。 Webhook モデルを使用すると、認証ヘッダーまたはクエリ文字列パラメーター キーを使用してエンドポイントをセキュリティで保護できます。 これは、Azure Service Bus 統合で使用される Shared Access Signature 認証モデルよりも簡単です。
Webhook は、ホストされている Web サービスがメッセージを処理できる時点にのみスケーリングできます。
Webhook では、同期ステップと非同期ステップが有効になります。
Webhook は JSON ペイロードを使用して POST 要求を送信し、任意のプログラミング言語または任意の場所でホストされている Web アプリで使用できます。
Webhook は、プラグインまたはカスタム ワークフロー アクティビティから呼び出すことができます。
Azure Service Bus
Service Bus は、Dataverse ランタイム データと外部のクラウドベースの基幹業務アプリの間に、セキュリティで保護された信頼性の高い通信チャネルを提供します。 この機能が特に役立つのは、異種 Dataverse システムまたは他の Dataverse サーバーと、ビジネス データ変更との同期を保つ場合です。
イベントのシーケンスは次のとおりです。
リスナー アプリは Service Bus ソリューション エンドポイントに登録され、サービス バス上の Dataverse リモート実行コンテキストをアクティブにリッスンし始めます。
ユーザーが Dataverse で何らかの操作を実行して、登録済みのすぐに使用できるプラグインまたはカスタムの Azure 対応プラグインの実行をトリガーします。 プラグインは、Service Bus への現在の要求データ コンテキストのポストを非同期サービス システム ジョブを通じて開始します。
Dataverse によってポストされたクレームが認証されます。 Service Bus は、リモート実行コンテキストをリスナーに中継します。 リスナーはコンテキスト情報を処理し、その情報に対してビジネス関連タスクを実行します。 Service Bus は、成功した投稿を非同期サービスに通知し、関連するシステム ジョブの状態を [完了] に設定します。
Service Bus は、Dataverse と Service Bus ソリューション リスナー アプリの間で要求メッセージ データ コンテキストを中継します。 Service Bus では、承認されたアプリのみが投稿された Dynamics 365 データにアクセスできるように、データ セキュリティも提供されます。 データ コンテキストを Service Bus に投稿し、リスナー アプリが読み取るための Dataverse の承認は、Azure Shared Access Signature によって管理されます。
詳細情報: Service Bus と Service Bus の認証と承認
Logic Apps と Power Automate
Azure を介して提供される Logic Apps と、Microsoft Power Platform を介して提供される Power Automate は、スケジュールに従って、またはデータベース、システム、サービス、または SaaS のアクティビティによってアプリケーション イベントやデータと統合するために使用できるワークフローをトリガーできます。
これらのワークフローは、データベース、PaaS、SaaS への数百のコネクタを使用して、ロジックを実行し、これらのシステムと対話できます。
たとえば、SQL などのリレーショナル データベースに行を追加すると、Dataverse にこのデータを挿入できるワークフローがトリガーされる場合があります。
サービスに対して Open API (旧称 Swagger) 定義を使用してカスタム コネクタを作成できるため、IaaS と Azure Kubernetes Service (AKS) で実行されているサービス、関数、コードを簡単に含めることもできます。
OData API を使用して Dataverse をアプリに統合する
すべての一般的なプログラミング言語では、REST ベースの API との統合の形式がサポートされています。
Dataverse Web API は、さまざまなプログラミング言語、プラットフォーム、デバイスで使用できる開発エクスペリエンスを提供します。 Web API では、OData (Open Data Protocol) バージョン 4.0 が実装されています。これは、豊富なデータ ソースに対して RESTful API を構築して使用するための OASIS 標準です。 このプロトコルの詳細については、www.odata.orgを参照 してください 。この標準の詳細については、 www.oasis-open.orgを参照してください。
Dataverse では、"API ファースト" アプローチを採用しています。 つまり、サービスは単にデータのクエリを実行するメカニズムを提供するだけでなく、ビジネス ルールや制約などのサービスからのメタデータも提供し、インテリジェントで応答性の高いアプリやサービスを構築するために使用できます。
API は OAuth を使用してセキュリティ保護されます。 OAuth では、認証に idtable プロバイダーが必要です。 Dataverse の場合、 idtable プロバイダーは Microsoft Entra ID です。 Microsoft 職場または学校アカウントを使用して Microsoft Entra で認証するには、Microsoft Authentication Libraries (MSAL) を使用します。
Dataverse Web API の概要の詳細については、「 Dataverse Web API の使用」を参照してください。
OAuth での Dataverse Web API の使用の詳細については、「 Dataverse での OAuth の使用」を参照してください。
Plug-ins
Dataverse は、API とデータの間に配置されるコードを記述する機能を提供します。 .NET で記述されたこのコードは、 プラグインと呼ばれます。 プラグインは API とデータの間に配置されるため、すべてのアプリに同じロジックが適用されます。
プラグインは同期または非同期にすることができ、次のタスクを実行できます。
ユーザーにエラーを返します。
Dataverse データにクエリを実行して、実行するロジックを評価します。
データ操作を実行します。
アウトバウンドの HTTP リクエストを実行します。
プラグインは、イベント パイプライン内のポイントに登録されます。次に示します。
イベント パイプライン内では、次のイベントが発生する可能性があります。
要求と応答は、イベント パイプラインのいくつかの手順で調べて拒否または操作できます。
検証ハンドラーは、 ロジックが無効と見なす操作を拒否するカスタム例外をスローできます。
操作前ハンドラーは、データベース操作 の前に要求を変更できます。
操作後ハンドラーは応答を 変更できます。
非同期ハンドラーは、 応答が返された後に自動化を実行します。
プラグインの制約の 1 つは、自己完結型である必要があることです。 統合コードで他のライブラリへの参照が必要な場合は、Azure Functions を使用して統合を行うことができます。
Azure Functions
Azure Functions には、ビジネス ロジックと統合ロジック用のサーバーレス コード実行オプションが用意されています。
関数は、外部システム、サービス、またはコードからの呼び出しによってトリガーされます。 Dataverse の場合、そのトリガーは、Service Bus、Webhook、またはプラグインからの呼び出しを使用して Dataverse から直接取得できます。 さらに、Azure Functions 呼び出しは、Dataverse コネクタを含む Logic Apps または Power Automate のフローを介して開始できます。
詳細情報: プラグインを使用してビジネス プロセスを拡張する