Microsoft Dynamics CRM – 解决方案

Microsoft Dynamics CRM – 解决方案


解决方案提供了用于打包、安装和卸载组件以匹配您的业务功能的框架。解决方案允许定制人员和开发人员创作、打包和维护扩展 CRM 的软件单元。在 CRM 中执行的任何自定义、扩展或配置都使用解决方案进行打包、管理和分发。解决方案可以从源组织导出为 zip 文件,然后可以导入到目标组织中。

为了理解这一点,请考虑以下示例场景 –

  • 作为开发人员或定制人员,您已经在开发环境中扩展或定制了 CRM。现在您想要打包您的更改并将其移动到下一个环境。为此,您可以创建单独的解决方案并在更高的环境中发布它们。

  • 作为第三方 CRM 提供商,您创建了一个 CRM 模块,该模块允许使用外部 Web 服务 API 管理 Microsoft Dynamics CRM 实体中的数据。现在,您想将此模块出售给其他客户。使用解决方案,您可以打包此模块并将它们分发给其他能够安装此解决方案并使用您的模块提供的功能的客户。

解决方案类型

默认系统解决方案

系统解决方案包含在 Microsoft Dynamics CRM 中定义的开箱即用的解决方案组件,没有任何自定义。系统解决方案中的许多组件都是可定制的,可用于托管解决方案或非托管定制。

在本教程中,我们没有创建任何解决方案,而是自定义默认系统解决方案。如果您还记得,我们去了设置 → 自定义 → 自定义系统。此选项直接自定义默认解决方案。

托管解决方案

托管解决方案是已完成且旨在分发和安装的解决方案。托管解决方案可以安装在系统解决方案或其他托管解决方案的顶部。

要点

  • 如果您从一个组织导出托管解决方案并将其导入另一个组织,则无法在新组织中编辑该解决方案。

  • 托管解决方案不直接引用系统解决方案。

  • 卸载托管解决方案会卸载与该解决方案关联的所有自定义项。

  • 默认情况下,无法在目标组织中自定义托管解决方案。但是,使用托管属性的概念,您可以定义解决方案组件是否可自定义,如果是,则在将解决方案导出为托管解决方案后,组件的哪些特定部分将可自定义。

非托管解决方案

非托管解决方案是仍在开发中且不打算分发的解决方案。非托管解决方案包含 CRM 组件的所有非托管自定义,包括任何添加、修改、删除或删除的组件。默认情况下,任何新解决方案都是非托管解决方案。但是,您可以将非托管解决方案导出为托管或非托管解决方案。

要点

  • 如果您从一个组织导出非托管解决方案并将其导入另一个组织,您可以在新组织中编辑该解决方案。

  • 非托管解决方案直接引用系统解决方案。因此,对一个非托管解决方案所做的更改将应用​​于引用相同组件的所有非托管解决方案,包括系统解决方案。

  • 如果您从非托管解决方案中删除解决方案组件,该组件将从系统中永久删除并且不再可用。如果您只想从特定的非托管解决方案中删除组件,请使用删除而不是删除。

  • 卸载非托管解决方案不会删除关联的自定义。它只是从系统中删除解决方案,但您所做的更改仍然存在。

解决方案组件

解决方案可用于打包以下组件,这些组件可使用默认、非托管或托管解决方案进行自定义。

Component Type 成分
Schema 实体
Attributes
Relationships
Global Option Sets
User Interface 应用功能区
SiteMap
Forms
Entity Ribbons
Web Resources
Analytics 仪表盘
Reports
Visualizations
Process/Code 流程
Dialogs
Workflows
Plugins
Assemblies
Processing Steps
Templates 邮件合并
Email
Contract
Article
Security 安全角色
Field Level Security Profiles

创建解决方案

步骤 1 – 导航到设置 → 解决方案。单击新建。

Mscrm 创建解决方案步骤 1

步骤 2 – 在随后出现的窗口中,输入以下详细信息,然后单击保存并关闭。

显示名称– 示例解决方案(这可以是您想要的任何名称)。

名称– 将根据显示名称自动设置。但是,您可以更改此设置。

发布者– 默认发布者。解决方案发布者提供了一个通用的自定义前缀和选项值前缀。定义解决方案发布者控制您的托管解决方案在分发后如何更新。但是,对于此示例和大多数一般情况,您可以将其设置为默认发布者。

版本– 使用以下格式指定版本:major.minor.build.revision。例如:1.0.0.0。

Mscrm 创建解决方案步骤 2

默认情况下,每个解决方案都作为非托管解决方案添加。添加解决方案后,您可以通过在此解决方案的上下文中创建解决方案组件或通过添加来自其他解决方案的现有组件来添加解决方案组件。例如,您可以在这个新解决方案的上下文中创建新实体、表单等。

导出解决方案

一旦您准备好要打包为托管或非托管解决方案的所有更改,您可以按如下方式导出您的解决方案。

步骤 1 – 打开源组织并导航到设置 → 解决方案。选择要导出的解决方案,然后单击“导出”按钮。

Mscrm 导出解决方案步骤 1

步骤 2 – 在“发布自定义”窗口中,单击“发布所有自定义”,然后单击“下一步”。

Mscrm 导出解决方案步骤 2

步骤 3 – 在随后的窗口中,您可以选择任何系统设置,例如自动编号、日历设置等,以与解决方案一起导出。现在,您可以避免选择任何选项并单击下一步。

Mscrm 导出解决方案步骤 3

步骤 4 – 在包类型窗口中,您可以选择是否要将包导出为托管或非托管解决方案。对于此示例,让我们将其导出为非托管。完成后,单击下一步。

Mscrm 导出解决方案步骤 4

第 5 步– 在下一个窗口中,您可以看到您正在使用的 CRM 源版本并可以选择目标版本。单击导出。

Mscrm 导出解决方案步骤 5

步骤 6 – 单击“导出”后,解决方案将导出为 zip 文件。将此 zip 文件保存在系统上的所需位置。

Mscrm 导出解决方案步骤 6

导入解决方案

现在,我们将在上一节中导出的解决方案 zip 文件导入到新的目标组织。

步骤 1 – 打开目标组织并导航到设置 → 解决方案。单击导入。

Mscrm 导入解决方案步骤 1

步骤 2 – 浏览您从导出步骤下载的 zip 文件,然后单击下一步

Mscrm 导入解决方案步骤 2

步骤 3 – 在下一个窗口中,您可以根据需要查看解决方案包的详细信息。单击导入将启动解决方案导入过程。

Mscrm 导入解决方案步骤 3

步骤 4 – 导入过程完成后,将显示成功或失败的状态。如果该过程成功,请单击发布所有自定义。如果解决方案导入失败,它将为您提供有关导入过程的哪一步失败的详细错误日志。

Mscrm 导入解决方案步骤 4

第 5 步– 我们完成了。解决方案将成功导入到目标组织。单击关闭。

解决冲突

由于您可以有多个开发人员致力于自定义和扩展 CRM,因此您将拥有多个托管和非托管解决方案。导出和导入这些解决方案有时会导致冲突场景。例如,假设“解决方案 A”包含表单上的一个字段,而“解决方案 B”已删除该字段,而“解决方案 C”已重命名该字段。在这种情况下,最终的变化是什么?在这种相互冲突的情况下,CRM 使用两种方法。

合并– 这种方法用于用户界面组件,如命令栏、功能区和站点地图。按照这种方法,解决方案组件是从底层重新计算的,组织的非托管定制是最后应用的。

Top Wins – 此方法用于除用户界面组件之外的所有其他冲突场景。根据这种方法,最后一个更改(托管或非托管)具有优先级并得到应用。

结论

在本章中,我们介绍了解决方案的概念以及不同类型的解决方案及其组件。然后我们学习了如何创建、导出和导入解决方案。最后,我们研究了两种冲突解决策略,当我们有多个托管和非托管解决方案影响相同的解决方案组件时,就会发生这种情况。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁