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