プラグインのデバッグ

書き込み、登録、およびプラグインをデバッグするプロセスは次のとおりです:

  1. Visual Studio に .NET Framework クラス ライブラリ プロジェクトを作成します。
  2. Microsoft.CrmSdk.CoreAssemblies NuGet パッケージをプロジェクトに追加する
  3. ステップとして登録されるクラスの IPlugin インターフェイスを実装します。
  4. インターフェイスに必要な Execute メソッドにコードを追加する
    1. 必要なサービスへの参照を取得する
    2. ビジネス ロジックの追加
  5. アセンブリにサインし、ビルドする
  6. アセンブリをテストする
    1. テスト環境でアセンブリを登録する
    2. アンマネージド ソリューションに、登録されたアセンブリとステップを追加する
    3. アセンブリの動作をテストする
    4. 想定されたトレース ログが書き込まれたことを確認する
    5. 必要に応じてアセンブリをデバッグする

このトピックの内容は上記太字のステップをカバーし、次のチュートリアルをサポートしています:

アセンブリをテストする

アセンブリをテストする最も簡単な方法は、アプリを使用して手動で操作を実行することです。 しかし、プラグインを実行させるイベントは、ワークフローから作成されたテーブルや、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 コードを使用することもできます。

XrmToolbox プラグイン追跡ビューアを使用する方が適している場合があります。 このコミュニティ ツールは Microsoft ではサポートされていません。 このツールに関するご質問は、その発行元にお問い合わせください。

同期プラグインまたはカスタム ワークフロー アセンブリが、ユーザーへのエラー ダイアログの表示につながるエラーをスローした場合、トレース メッセージはダウンロード可能なログ ファイルの中にあります。 ユーザーは、ログ ファイルのダウンロード ボタンを選択して、例外とトレース出力を格納しているログを表示することができます。

例外を返す、非同期の登録済みプラグインおよびワークフロー アセンブリの場合、トレース情報は Web アプリケーションの システム ジョブ フォームの詳細領域に表示されます。

注意

ユーザー定義コードがデータベース トランザクション内で実行され、トランザクションのロールバックを引き起こす例外が発生した場合、コードによるすべてのテーブル データの変更は取り消されます。 ただし、PluginTraceLog テーブル レコードは、ロールバックが完了しても残ります。

プラグイン プロファイラーを使用する

プラグイン プロファイラーは、自分の環境にインストールできるソリューションで、プラグインの実行コンテキストを取り込み、そのデータを使用してデバッグ中に Visual Studio 内でイベントを再生することができます。

プラグイン プロファイラーのインストールおよび使用方法については、チュートリアル: プラグインのデバッグを参照してください。 プラグイン プロファイラーのインストールおよびプラグインのデバッグを参照してください。

プラグイン プロファイラーを表示する

プラグイン プロファイラーをインストールしていくつかのプロファイルを取得すると、デバッグ時に使用されるイベント コンテキストと再生データを表示できます。 このデータを表示すると、プラグインが使用できる実行コンテキスト データを理解するのに役立ちます。

プラグイン登録ツールを使用してこのデータを表示するには、プラグイン プロファイルの表示コマンドを選択します。 これにより、プラグイン プロファイル ダイアログが開きます。

プラグイン プロファイルを開く。

ダウンロード アイコン アイコンを選択し CRM からプロファイルを選択 ダイアログで、使用するログ項目を指定します。

CRM からプロファイルを選択する。

そして、プラグイン プロファイル ダイアログの表示を選択します。

これにより、プロファイル情報を含む開いている XML ファイルがダウンロードされます。 Context 要素は、プラグインに渡される実行コンテキストを表します。

エクスポート プロファイル データ。

詳細

サーバ側開発のためのテスト ツール

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。