書き込み、登録、およびプラグインをデバッグするプロセスは次のとおりです:
- Visual Studio に .NET Framework クラス ライブラリ プロジェクトを作成します。
-
Microsoft.CrmSdk.CoreAssemblies
NuGet パッケージをプロジェクトに追加する - ステップとして登録されるクラスの IPlugin インターフェイスを実装します。
- インターフェイスに必要な Execute メソッドにコードを追加する
- 必要なサービスへの参照を取得する
- ビジネス ロジックの追加
- アセンブリにサインし、ビルドする
- アセンブリをテストする
- テスト環境でアセンブリを登録する
- アンマネージド ソリューションに、登録されたアセンブリとステップを追加する
- アセンブリの動作をテストする
- 想定されたトレース ログが書き込まれたことを確認する
- 必要に応じてアセンブリをデバッグする
この記事の内容は、これまでの手順を太字でカバーし、以下のチュートリアルをサポートします:
アセンブリをテストする
アセンブリをテストする最も簡単な方法は、アプリを使用して手動で操作を実行することです。 しかし、プラグインを実行させるイベントは、ワークフローから作成されたテーブルや、Webサービスからなど、複数の方法で開始される可能性があることにも注意してください。
実行コンテキスト情報は、アクションの実行方法によって異なる場合があります。 プラグインを書き込むときは、防御プログラミング プラクティスを実行し、すべての期待値がそこにあると想定しないようにしてください。
プラグインを起動させる操作の自動化を行うプログラムを作成し、可能なバリエーションの数を含めることができます。
テスト自動化フレームワークを使用する場合、コミュニティがこのために作成したいくつかのツールがあります。 詳細については、サーバー側開発のためのテスト ツールを参照してください。
トレースを使用する
トレース サービス で説明されているように、ITracingService.Trace メソッドを使用して、プラグインのコード内の PluginTraceLog テーブル にメッセージを記述できます。
このサービスを使用する前に、Microsoft Dataverse 環境でトレースを有効にする必要があります。 トレース ログの表示で手順を詳しく説明します。
注意
トレース ログは、特に多数のトレースと例外が生成されたときは、組織の保存領域を占有します。 トレースログは、デバッグとトラブルシューティングの場合にのみオンにして、調査の完了後はオフにする必要があります。
デバッグ中は、ブラウザーの Web API を使用して、特定のプラグイン クラスのトレース ログを簡単にクエリできます。 アセンブリの名前が BasicPlugin.FollowUpPlugin
である場合、ブラウザーのアドレス フィールドでこのクエリを使用できます。
GET <your org uri>/api/data/v9.0/plugintracelogs?$select=messageblock&$filter=startswith(typename,'BasicPlugin.FollowUpPlugin')
JSON 結果はブラウザーに次のように返されます:
{
"@odata.context": "<your org uri>/api/data/v9.0/$metadata#plugintracelogs(messageblock)",
"value": [{
"messageblock": "FollowupPlugin: Creating the task activity.",
"plugintracelogid": "f0c221d1-7f84-4f89-acdb-bbf8f7ce9f6c"
}]
}
チップ
これは、返された JSON をフォーマットするブラウザ拡張機能をインストールする場合に最適です。 あるいは、Postman や Insomnia のようなAPIクライアントを使用したり、PowerShell と VS Code を使用したりすることもできます。
XrmToolbox プラグイン追跡ビューアを使用する方が適している場合があります。 このコミュニティ ツールは Microsoft ではサポートされていません。 このツールに関するご質問は、その発行元にお問い合わせください。
同期プラグインまたはカスタム ワークフロー アセンブリが、ユーザーへのエラー ダイアログの表示につながるエラーをスローした場合、トレース メッセージはダウンロード可能なログ ファイルの中にあります。 ユーザーは、ログ ファイルのダウンロード ボタンを選択して、例外とトレース出力を格納しているログを表示することができます。
例外を返す、非同期の登録済みプラグインおよびワークフロー アセンブリの場合、トレース情報は Web アプリケーションの システム ジョブ フォームの詳細領域に表示されます。
注意
ユーザー定義コードがデータベース トランザクション内で実行され、トランザクションのロールバックを引き起こす例外が発生した場合、コードによるすべてのテーブル データの変更は取り消されます。 ただし、PluginTraceLog
テーブル レコードは、ロールバックが完了しても残ります。
プラグイン プロファイラーを使用する
プラグイン プロファイラーは、自分の環境にインストールできるソリューションで、プラグインの実行コンテキストを取り込み、そのデータを使用してデバッグ中に Visual Studio 内でイベントを再生できます。
プラグイン プロファイラーのインストールおよび使用方法については、チュートリアル: プラグインのデバッグを参照してください。 プラグイン プロファイラーのインストールおよびプラグインのデバッグを参照してください。
プラグイン プロファイラーを表示する
プラグイン プロファイラーをインストールしていくつかのプロファイルを取得すると、デバッグ時に使用されるイベント コンテキストと再生データを表示できます。 このデータを表示すると、プラグインが使用できる実行コンテキスト データを理解するのに役立ちます。
プラグイン登録ツールを使用してこのデータを表示するには、プラグイン プロファイルの表示コマンドを選択します。 これにより、プラグイン プロファイル ダイアログが開きます
アイコンを選択し、CRM からプロファイルを選択するダイアログで、使用するログ アイテムを指定します。
そして、プラグイン プロファイル ダイアログの表示を選択します。
プロファイル情報の XML ファイルをダウンロードして開きます。
Context
要素は、プラグインに渡される実行コンテキストを表します。