書き込み、登録、およびプラグインをデバッグするプロセスは次のとおりです:
- Visual Studio に .NET Framework クラス ライブラリ プロジェクトを作成します。
-
Microsoft.CrmSdk.CoreAssembliesNuGet パッケージをプロジェクトに追加する - ステップとして登録するクラスに IPlugin インターフェイスを実装します。
- インターフェイスに必要な Execute メソッドにコードを追加する
- 必要なサービスへの参照を取得する
- ビジネス ロジックの追加
- アセンブリに署名してビルドする
- アセンブリをテストする
- テスト環境でアセンブリを登録する
- アンマネージド ソリューションに、登録されたアセンブリとステップを追加する
- アセンブリの動作をテストする
- 想定されたトレース ログが書き込まれたことを確認する
- 必要に応じてアセンブリをデバッグする
この記事の内容では、 太字で前の手順について 説明し、次のチュートリアルをサポートしています。
アセンブリをテストする
アセンブリをテストする最も簡単な方法は、Web アプリを使用して操作を手動で実行することです。 ただし、ワークフローからのテーブルの作成や Web サービスの使用など、プラグインを複数の方法で実行させるイベントを開始することもできます。
実行コンテキストの情報は、アクションの実行方法によって異なる場合があります。 プラグインを記述するときは、防御的なプログラミングプラクティスに従っていることを確認し、期待するすべての値が常に存在するとは限りません。
プラグインの起動を引き起こす操作の実行を自動化し、多くのバリエーションを含むプログラムを作成できます。
テスト自動化フレームワークを使用する場合、コミュニティがこのために作成したいくつかのツールがあります。 詳細については、 サーバー側開発用のテスト ツールを参照してください。
トレースを使用
トレース サービス で説明されているように、.ITracingService メソッドを使用して、プラグインのコード内の Trace にメッセージを記述できます。
このサービスを使用するには、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 要素は、プラグインに渡される実行コンテキストを表します。