プラグインは、Microsoft Dataverse データ操作の処理中に発生した特定のイベントに応答して実行されるカスタム イベント ハンドラーです。 このプラグインは、アップロードして Dataverse に登録できる .NET Framework アセンブリにコンパイルされたカスタム クラスとして実装されます。 アセンブリ内の 1 つ以上のコンパイル済みプラグイン クラスを、Dataverse イベント フレームワーク内の特定のイベント (ステップ) に登録できます。 データ処理操作中にターゲット イベントが発生すると、登録されたプラグイン クラス内のコードが実行され、プラットフォームの既定のデータ処理動作を拡張または変更する手段が提供されます。
ヒント
可能な限り、まず、ビジネス ロジックを定義するために、いくつかの宣言型オプションの 1 つを適用することを検討する必要があります。 詳細情報: Dataverse でのビジネス ロジックの適用
宣言型プロセスが要件を満たしていない場合は、プラグインを使用します。
プラグインの詳細
イベント フレームワーク (パイプライン) ステップに登録するアセンブリ内のすべてのクラスは、 IPlugin インターフェイスを実装する必要があります。 このインターフェイスは、 Executeと呼ばれる 1 つのメソッドを公開します。 コンパイル済みクラスが登録されているイベントが発生すると、処理されるデータ操作に関するコンテキスト データがプラグインの Execute メソッドに渡されます。 カスタム コードでは、 Execute メソッド内で次のことができます。
- 現在のデータ処理パイプライン操作を取り消し、必要に応じてユーザーにエラーを表示する
- 現在のパイプライン操作で処理されているビジネス データに変更を加える
- 他のデータ操作を呼び出す
- 外部システムへの接続
- 同じパイプラインに登録されている別の "ダウンストリーム" プラグインに情報を渡す
- その他...
プラグインは、同期的または非同期的に実行するように登録できます。 同期プラグインは、プラグインのコードが完了するまでデータ操作を待機します。 この遅延は、システムのエンド ユーザーが認識するパフォーマンスに影響を与えるので、同期プラグインを迅速に実行して完了する必要があります。 非同期プラグインの実行はキューに登録され、後でデータ操作が完了した後に実行されます。
プラグインを使用する場合
ユーザーは、カスタム ビジネス ロジックを適用する選択肢として、カスタム ワークフロー アクティビティとプラグインを頻繁に比較します。 ワークフロー アクティビティとプラグインの機能には大きな重複があります。プラグインは、ワークフロー アクティビティで実行できるすべての操作を実行できますが、逆関数は true ではありません。 この事実は、ワークフローで実行できないものにプラグインを使用する必要があるという意味にはなりません。 プラグインを使用せずに要件を満たす他の機能があります。
ワークフローでは、複数のワークフロー内で使用できるコードで再利用可能な条件とアクションを作成できるカスタム ワークフロー アクティビティを使用できます。
計算フィールドとロールアップ フィールドには、以前はワークフローのみを使用して実行できる機能が用意されています。
カスタム アクションは、他のワークフローまたは Web サービス エンドポイントから呼び出すことができる再利用可能なメッセージを作成できるワークフローに似たプロセスの一種です。
Azure Service Bus の統合と Webhook を使用すると、さまざまなリソースを使用してロジックを適用できる外部システムにデータをプッシュできます。
Power Automate には、プラグインを使用して以前に実行された多くの機能が用意されています。
要件を満たす最適な方法を理解するには、これらの各オプションを評価する必要があります。
プラグインの利点
プラグインの主な利点は次のとおりです。
- プラグインのパフォーマンスは良好です。 適切に記述されたプラグインは、カスタム ビジネス ロジックを適用する最もパフォーマンスの高い方法を提供します。
- プラグインは強力です。 多くの開発者は、所有するスキルと知識を使用してロジックを定義し、その機能を使用して Dataverse Web サービスまたは外部サービスをコードで直接操作することを好みます。 経験豊富なプラグイン開発者は非常に生産的です。
- すぐに使えるビジネス ソリューションが存在しない場合は、プラグインによって Dataverse の機能が拡張されます。
プラグインの欠点
- プラグインでは、プラグイン コードを作成して維持するために、ソフトウェア開発者の特別なスキルが必要です。 中小企業は、必要なスキルを持つ開発者にアクセスできない可能性があります。 ビジネス プロセスは急速に変化し、開発者を必要とせずに変更を可能にするオプションを提供することで、システムをより迅速に適応させることができます。
- プラグインが悪用される可能性があります。 適切に記述されていないプラグインは、データ処理パイプラインと最終的にはエンドユーザーの対話型環境のパフォーマンスに大きな影響を与える可能性があります。 プラグインの優れたパワーは、システム全体に与える影響に対して、ある程度の制約と考慮を加えて適用する必要があります。
- プラグインの作業を完了するには、短時間 (ハード制限) しかありません。
次のステップ
プラグインの使用方法の詳細については、次のチュートリアルとハウツー トピックを参照してください
Tutorials
これらのトピックでは、いくつかの単純なプラグインの作成、登録、デバッグの基本的なプロセスについて説明します。
ハウツー トピック
これらのトピックでは、プラグイン開発に共通するその他の詳細について説明します。
上記のプラグインの概念を読んで理解したら、これらの追加のプラグイン関連の機能とテクノロジを検討することを検討してください。