カスタム プラグインを登録して展開し、優先する地理空間のデータ プロバイダーを使用する

プラグインを使用できるようにするには、その前に、サーバーに登録して展開する必要があります。

プラグイン プロジェクトをバインドすると、プラグイン アセンブリになります (.dll)。 この記事では、優先地理空間データ プロバイダーを使用するための 2 つの地理空間アクションのプラグイン アセンブリを登録して展開する方法を説明します。 プラグインの記述については、カスタム プラグインを作成して優先する地理空間のデータ プロバイダーを使用するを参照してください

カスタム プラグインの登録時の実行順序に関する考慮事項

同じエンティティおよびメッセージに対して複数のプラグインを登録する場合、プラグインの実行順序は個々のプラグインの実行順序により定義されます。小さい実行順序の値を持つものが最初に実行され、高い実行順序の値を持つものが続きます。

ジオコードおよび距離マトリックス アクションに Bing Maps を使用する Field Service および Project Service の既定のプラグインの実行順序の値は 1 にセットされます。 既定のプラグインの前 (1 未満) または後 (1 を超える) に実行するカスタム プラグインの実行順序を設定することができます。

次の表は、プラグイン登録およびパラメーター状況に加えて、指定された実行順序に応じてカスタム プラグインが処理される方法を説明します。

階層 説明設定
カスタム プラグインがプライマリとして処理され、既定の Bing プラグインがセカンダリとして処理されるようにするには、ユーザーのプラグインの実行順序を 0 に設定します。 これにより、ユーザーのプラグインは Bing プラグインより前に実行されます。 Bing プラグインはカスタム プラグインが返す「緯度」および「経度」の値を確認して、返された両方の値が 0 の場合はジオコードのみを Bing で処理します。 ユーザーのカスタム プラグインが大部分のジオコードの必要を提供すると期待される場合は、これが優先される方法です。
予備 Bing がジオコードの実行に失敗するときにのみジオコード サービスを提供することにより、ユーザーのカスタム プラグインを Bing プラグインに対してセカンダリとして処理する場合は、 ユーザーのプラグインの実行順序を 2 に設定します。 Bing プラグインが返す「緯度」および「経度」の値を最初に確認して、返された両方の値が 0 の場合にのみ処理するカスタム プラグイン コードを記述します。 Bing が大部分のジオコードの必要を提供すると期待される場合は、これが優先される実行方法です。
完全に上書き ユーザーのカスタム プラグインがジオコードのソースとなり、カスタム プラグインがジオコードに失敗するときであっても Bing をジオコードから完全に上書きさせる場合は、「緯度」および「経度」の値にたいして常に 0、0 以外を戻す必要があります。 どの例外条件が .NET 例外をスローし、どれが単に結果を返さないかを判断する場合があります。 結果を返さずそれ以降のどのプラグインも結果を返さないようにするには、カスタム プラグインが 0.0001、0.0001 などを返す必要があります。

カスタム プラグインの登録および展開

プラグイン登録ツールを使用して、または特定の SDK クラスを使用して登録コードを記述してプログラムで、プラグインを登録および展開することができます。 詳細: プラグインの登録および展開

このセクションでは、プラグインを簡単に登録して展開するグラフィカル ユーザー インターフェイスを提供する、プラグイン登録ツールを使用します。また、このセクションには、サンプル カスタム プラグインで作業し、CustomPlugin-FS-Geospatial.dll アセンブリを生成するためにサンプル プロジェクトを作成済みであるという前提に基づいた情報が含まれています。 独自のカスタム プラグインを開発する場合、アセンブリおよびプラグインの名前は異なりますが、プラグインを登録するための全般的な手順は変わりません。

チップ

プラグイン登録ツールの使用方法に関する詳細については、チュートリアル: プラグイン登録ツールを使用したプラグインの登録を参照してください。

  1. プラグイン登録ツールを取得します。 プラグイン登録ツールを取得するには、NuGet からツールをダウンロードをご覧ください。

  2. [Your folder]\Tools\PluginRegistration フォルダーに移動して、PluginRegistration.exe ファイルをダブルクリックしツールを実行します。

  3. 新しい接続の作成をクリックします。

  4. ログイン ダイアログで、Dynamics 365 のインスタンスに接続するための資格情報を指定し、ログインをクリックします。

  5. Dynamics 365 のインスタンスで複数の組織に対するアクセス権限を持っている場合、接続先を選択するための組織の一覧が表示されます。 選択しない場合は、既定の組織が使用されます。

  6. 登録済みのプラグインまたはユーザー定義のワークフロー活動アセンブリの折りたたまれた一覧が表示されます。 登録>新しいアセンブリの登録の順に選択します。

  7. 新しいアセンブリの登録 ダイアログ ボックスで以下を実行します。

    • ステップ 1 セクションで、省略記号 […] ボタンをクリックして CustomPlugin-FS-Geospatial.dll アセンブリを選択します。

    • ステップ 2 セクションで、両方のプラグインを選択します。

    • ステップ 3 セクションで、サンドボックス オプションを選択します。

    • ステップ 4 セクションで、データベース オプションを選択します。

    • 選択したプラグインの登録を選択します。

      The Register New Assembly dialog box

      CustomPlugin-FS-Geospatial.dll アセンブリおよび msdyn_GeocodeAddress および msdyn_RetrieveDistanceMatrix の 2 つのプラグインは、サーバーに登録および展開されました。

  8. 次のステップは各操作のステップを登録することです。 "手順" は、プラグインの実行方法とタイミングを構成するために使用される SDK メッセージ処理手順エンティティを示します。

    登録済みプラグイン & カスタム ワークフロー活動 ツリー ビューで、(アセンブリ) CustomPlugin-FS-Geospatial ノードを展開して、Microsoft.Crm.Sdk.Samples.msdyn_RetrieveDistanceMatrix などの、登録済みプラグインを選択します。

    The Registered Plug-ins & Custom Workflow Activities tree view

  9. Microsoft.Crm.Sdk.Samples.msdyn_RetrieveDistanceMatrix を右クリックして、新しい手順の登録を選択します。

  10. 新しい手順の登録ダイアログ ボックスで、以下の情報を指定します。

    • メッセージ: msdyn_RetrieveDistanceMatrix
    • 実行順序: 必要に応じて。 本記事の前半にある、カスタム プラグインの登録時の実行順序に関する考慮事項 を参照してください。
    • 実行のイベント パイプライン ステージ: PostOperation
    • 実行モード:同期
    • 残りのフィールドは既定値のままにしておきます。 新しい手順の登録 をクリックします。

    Screenshot of the Register New Step Dialog window with the General Configuration Information filled out. The Execution Order is set to 0.

  11. 次に、Microsoft.Crm.Sdk.Samples.msdyn_GeocodeAddress プラグインを右クリックして、新しい手順の登録を選択します。

  12. 新しい手順の登録ダイアログ ボックスで、以下の情報を指定します。

    • メッセージ: msdyn_GeocodeAddress
    • 実行順序: 必要に応じて。 このトピックの前半にあるカスタム プラグインの登録時の実行順序に関する考慮事項を参照してください。
    • 実行のイベント パイプライン ステージ: PostOperation
    • 実行モード:同期
    • 残りのフィールドは既定値のままにしておきます。 新しい手順の登録 をクリックします。

    Screenshot showing the Register New Step Dialog window with the General Configuration Information filled out. The Execution Order is set to 0.

これで両方の地理空間操作のカスタム プラグインを呼び出すするための、登録手順が終了しました。

プラグイン登録ツールでいずれかの Universal Resource Scheduling の地理空間アクションを表示する場合は、既定のプラグインと、そのアクションのために登録されたカスタム プラグインの両方が表示されます。 たとえば、mdyn_GeocodeAddress 操作のためのプラグインが表示されます。

The Plug-in Registration tool

参照

サンプル: 地理空間のデータ プロバイダーとして Google Maps API を使用するカスタム プラグイン