注册和部署自定义插件以使用首选的地理数据提供程序

插件必须先在服务器上注册和部署,才能使用。

构建插件项目将生成插件程序集 (.dll)。 本文提供如何注册和部署插件程序集,以便让两个地理空间操作使用您的首选地理空间数据提供程序的信息。 有关编写插件的信息,请参阅创建自定义插件以使用首选的地理空间数据提供程序

注册自定义插件时的执行顺序注意事项

为同一个实体和消息注册多个插件时,插件的执行顺序由各插件的执行顺序定义。先执行执行顺序值较小的插件,然后执行执行顺序值更高的插件。

Field Service 和 Project Service 中将 Bing 地图用于地理编码和距离矩阵操作的默认插件的执行顺序值设置为 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 的两个插件现在已注册并部署到服务器。

  8. 下一个步骤是为每个操作注册一个步骤。 步骤指的是用于配置何时如何执行插件的 SDK 消息处理步骤实体。

    注册的插件和自定义工作流活动树视图中,展开 (Assembly) 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
    • 执行顺序:根据需要。 请参阅本文前面的注册自定义插件时的执行顺序注意事项
    • 事件的执行准备阶段:后操作
    • 执行模式:同步
    • 让其他字段保留其默认值。 单击注册新步骤

    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
    • 执行顺序:根据需要。 请参阅本主题前文中的注册自定义插件时的执行顺序注意事项
    • 事件的执行准备阶段:后操作
    • 执行模式:同步
    • 让其他字段保留其默认值。 单击注册新步骤

    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 用作地理数据提供程序的自定义插件