在上一章中,我们看到了如何使用新的Visual Process Designer来使用拖放功能创建业务流程流。在本章中,我们将看到如何使用相同的可视化拖放流程设计器来创建业务规则。
业务规则首次在Dynamics CRM 2013中引入。基本上,业务规则让我们定义规则,例如将字段设置为必需/不必需、显示/隐藏字段、锁定/解锁字段等等——也就是说,通过直观的界面,我们可以轻松地在CRM窗体/实体上设置条件和操作,为此,我们必须提前编写JavaScript或开发插件。
Dynamics CRM的后续版本进一步增强了业务规则。使用Dynamics365,业务规则设计器界面得到了彻底改进,具有拖放组件的功能,以及Minimap、Snapshot等附加功能。
在本章中,我们将介绍以下几点:
- Dynamics 365中的业务规则概述
- 了解不同的组件以及如何在新的业务规则设计器中使用它们
- 实施Dynamics 365中引入的新建议操作
- 业务规则设计器的其他功能
业务规则的演变
如前所述,2013年CRM首次引入了业务规则。它提供了一个简单的声明性界面,系统定制者、开发人员或高级用户可以通过该界面轻松创建验证和业务规则,而无需编写一行代码。
业务规则接口包括一组条件、满足这些条件时要采取的操作,以及作为了解业务规则作用的约定的描述。
CRM 2015解决了CRM 2013的许多局限性。CRM 2013中的业务规则被限制为仅在客户端运行。对于服务器端,仍然需要编写插件或任何其他自定义代码。CRM 2015通过在Scope中添加名为Entity的新选项解决了这一问题。范围为Entity的业务规则将在客户端和服务器端运行。
对于Entity作用域,如果在创建或更新记录期间从表单触发规则,则该规则将首先在客户端运行,然后在服务器端再次运行。因此,具有“将销售金额设置为销售金额+10”操作的规则将导致规则验证失败,因为它将创建一个循环引用。
CRM 2015中业务规则的第二大更新是对if…else条件的支持,以及使用and/OR逻辑在一个条件中组合多个表达式的可能性。在CRM 2013中,为了定义一个具有else条件的简单规则,我们必须编写两个业务规则。
在业务规则中,条件中的表达式只能使用AND条件或or条件组合,但不能同时使用这两种条件。
例如,一个规则,例如在联系人表单中,如果“军事状态”字段的值为“已婚”,则将“配偶/伴侣名称”字段设置为“业务必需”,否则将其要求级别设置为“无”。在这里,我们最终会编写两个业务规则,一个用于生成BusinessRequired字段,另一个用于将其需求级别设置为none。自2015年CRM以来,有了if…else语句的支持,我们现在只需要编写一个单一的业务规则,如下所示:
CRM 2015中的另一个更新是添加了名为Set default value的新操作,用于设置字段的默认值。
CRM 2013中的不同操作。以下屏幕截图显示了Dynamics 2013中可用的不同操作:
CRM 2015中的不同操作(具有新的设置默认值操作)。以下屏幕截图显示了Dynamics 2015中可用的不同操作,包括新的“设置默认值”操作:
CRM 2015,以及为字段设置默认值的操作,还带来了通过业务规则清除字段值的功能。
下一个版本,CRM 2016,增加了基于业务流程流属性调用业务规则的功能。如下所示,我们在条件中定义了业务流程规则和活动阶段规则;也就是说,如果Business Process等于Opportunity Sales Process,而Active Stage为Propose。下面的屏幕截图显示了在定义业务规则时业务流程的使用:
与活动阶段规则类似,我们可以在CRM 2016中基于所选阶段规则定义条件。
基于业务流程流创建业务规则的详细信息,请参阅
Create business rules based on business process flows | Microsoft Learn
随着2016年12月Dynamics365的更新,我们现在有了一个新更新的编辑器来定义业务规则,一个名为推荐的新操作,以及一些新功能.
在本节中,我们介绍了从CRM 2013到CRM 2016的业务规则之旅。现在,让我们详细了解一下新的业务规则设计器以及Dynamics365中的所有组件。
了解新的业务规则设计器
要快速查看新设计器,请打开任何实体进行自定义,然后选择左侧导航中的“业务规则”,然后单击“新建”按钮。这将为Dynamics365中引入的新业务规则设计器带来全新的外观。新的设计器允许我们使用拖放功能添加条件和操作等组件:
这里需要记住的关键一点是,业务规则从根本上仍然是相同的;
只有它的编辑器已经更新。对于Scope,我们仍然有相同的选择;即实体、所有表格以及该实体的各个表格:
让我们停顿一下,快速回顾一下范围:
作用域类型 | 描述 |
Entity
| 业务规则在实体的所有形式上运行,包括快速创建和服务器端。 |
All Forms
| 业务规则在实体的所有形式上运行,包括快速创建。 |
Specific Form (information,
account, and so on)
| 业务规则仅在实体的特定形式上运行。 |
业务规则设计器的组件基本上分为流和操作。
条件组件位于流下,可用的各种操作包括建议、显示错误消息、设置默认值、设置可见性、锁定/解锁、设置字段值和设置业务必需。
建议是Dynamics365中添加的一个新操作,使用它我们可以建议用户根据某些条件执行活动。我们将在接下来的章节中详细介绍它。
新的设计器还允许搜索这些组件。搜索类型为即时搜索,当我们还在搜索框中输入时,它会显示结果。
例如,在搜索框中键入set可在下拉列表中显示名称中包含set的操作,还可过滤可见组件:
每个组件,即Condition和Action,都有其特定的一组属性。在查看这些组件中每一个的属性之前,让我们看看如何在业务规则设计器画布中添加这些组件。
使用条件组件指定条件
在创建新的业务规则时,业务规则设计器打开时只添加了一个条件。
要添加更多条件,我们可以单击工具栏上的“添加”按钮,然后选择“添加条件”:
另一个选项是将条件组件从“组件”选项卡拖放到设计器画布中。在设计器中选择条件将在“属性”选项卡中显示特定于条件组件的属性:
让我们来看看条件组件的一些属性。
单击+新建将向规则部分添加一条新规则。例如,下图中的规则2:
下图显示了“属性”选项卡中的“规则逻辑”和“条件表达式(文本视图)”属性。“应用”按钮应用条件,“放弃”按钮可用于撤消上次执行的操作,类似于Ctrl+Z命令:
现在,让我们来看看可用于商业规则。
使用动作组件对条件采取动作
通过单击工具栏上的“添加”按钮并选择要添加的操作,可以以与条件相同的方式添加操作。也可以通过从“组件”选项卡拖动操作并将其关联到条件来添加该操作,如下所示。
在这里,我们从“组件”选项卡拖动了“显示错误消息”操作,并将其链接到现有的“新条件”:
这会将“显示错误消息”操作添加到条件中:
现在让我们来看看所有可用的不同操作的属性:
- 锁定/解锁:此操作可用于定义字段是否需要锁定或解锁:
这就是锁定字段Probability在机会表单中的显示方式:
- 显示错误消息:此操作可用于显示特定字段上的错误消息:
这就是错误消息在机会表单中的显示方式。将鼠标悬停在红十字图标上会显示错误消息:
- 设置字段值:“设置字段值”操作可用于定义字段的值。可以使用以下选项设置该值。根据字段的数据类型,选项会有所不同:
- 值:可用于直接指定字段的值
- 字段:可用于将字段的值指定为另一个字段的值
- 公式:可用于通过应用公式指定字段的值(此选项适用于日期-时间、整数和小数字段)
- 清除:这将清除字段的值(此选项不适用于布尔字段和选项集字段)
例如,我们可以使用“设置字段值”操作来定义一个规则,该规则使用公式将估计结束日期设置为自创建商机之日起100天,如下所示:
- Set Business Required:Set Business Required操作可用于将字段设置为Business Required或非强制性字段:
- 设置可见性:“设置可见性”部分可用于显示或隐藏字段:
- 建议:正如我们前面看到的,建议是Dynamics365中引入的一个新操作。建议书的不同性质是:
建议是一种特殊类型的行动,其内部有一个行动:
此操作属于“设置字段值”类型:
它与我们前面介绍的“设置字段值”操作相同。要查看所有组件的运行情况,让我们实现一个推荐业务规则.
行动中的建议
现在,我们对推荐操作的不同属性和业务规则设计器的不同组件有了一些基本的了解,让我们实现一个场景来查看它们的操作。例如,我们将实现的场景是,如果选择的Sales Stage是Proposed,我们将建议用户将概率设置为80。
让我们一步一步地执行它。
有四种方法可以在CRM中创建新的业务规则:
- 在字段级别:
- 打开实体进行自定义
- 单击并打开字段
- 在左侧导航中选择“业务规则”,然后单击“新建”以创建新的业务规则:
- 在实体级别:
- 打开实体进行自定义
- 在左侧导航中选择“业务规则”,然后单击“新建”以创建新的业务规则:
- 从表单级别:
- 打开表单进行自定义。单击“业务规则”功能区按钮:
- 这将打开表单右侧面板上的业务规则浏览器,通过单击“新建业务规则”按钮,我们可以创建新的业务规则:
- 从表单中定义业务规则的另一种方法是打开表单进行自定义,双击任何字段或选择任何字段,然后单击“更改属性”功能区按钮打开“字段属性”对话框。然后,我们可以选择“业务规则”选项卡,然后单击“新建”以创建新的业务规则。
- 回到我们的场景,让我们选择Opportunity实体进行定制,并创建一个具有以下详细信息的新业务规则:
- 选择条件组件,并在Properties选项卡中定义规则When Sales Stage等于Proposal,如下所示:
- 单击“应用”以应用条件
- 接下来,我们需要在此条件中添加一个推荐操作
- 单击工具栏上的“添加”按钮,或从“组件”选项卡拖动“建议”操作:
- 选择推荐操作并定义其属性,如下所示,然后单击应用:
- 下一步,我们需要定义Action(Set Field Value),它是Recommendation的一部分。为此,请选择“建议”中的“新操作”部分:
- 我们将动作定义为将概率字段值设置为80,如下所示,然后单击Apply:
- 打开表单进行自定义。单击“业务规则”功能区按钮:
这就是我们的最终规则在设计师画布中的样子。单击“保存”以保存规则;它还将验证规则是否存在任何错误。我们还可以在任何时候单击验证来验证我们的规则,而我们仍在定义它:
验证成功后,我们将收到“验证成功”消息。
如果出现任何错误,Validate会显示错误消息,如下所示,以红色突出显示。我们可以查看属性选项卡来找出错误的原因。在保存和发布业务规则之前,我们需要修复所有错误:
接下来,我们需要单击“激活”来激活规则。
要查看业务规则的作用,我们需要打开机会记录,并将销售阶段的价值设置为Propose:
这显示了“概率”字段旁边的信息图标。点击它会打开“推荐”框,其中包含我们之前设置的推荐标题和详细信息:
我们可以单击“取消”按钮关闭推荐对话框。单击Apply将概率值更新为80,正如我们在Set Field value Action中定义的那样,如下所示:
因此,现在我们已经实施了推荐规则。现在,让我们介绍其他业务规则设计器的其他功能。
业务规则设计器的其他功能
除了提供创建规则外,在新的业务规则设计器中还引入了一些附加功能,让我们快速了解这些新功能。
剪切、复制和粘贴组件
业务规则设计器中的工具栏提供了剪切、复制、粘贴和删除组件的选项。
要剪切或复制零部件,请选择零部件,然后按工具栏中的“剪切”或“复制”按钮。或者,我们也可以使用键盘快捷键(CTRL+C或CTRL+X)来复制或剪切:
单击“粘贴”(或CTRL+V)会显示带有+符号的不同区域,可以在其中添加复制的零部件:
单击+将复制的零部件添加到该特定位置。
删除组件
要删除组件,只需选择组件并单击工具栏上的“删除”按钮(或按CTRL+X)。这将打开一个“确认删除”对话框。
单击“确认删除”对话框中的“确定”可删除组件。
获取业务规则的快照
单击工具栏上的快照按钮可将业务规则的当前状态保存为图像文件:
该文件以扩展名为.png的业务规则的名称保存。
设置缩放级别和“适合画布”以便于阅读
我们可以通过单击-和+镜头来设置业务规则设计器的缩放级别。第三个选项是Fit to Canvas,它使业务规则定义自动调整以适应业务规则设计器画布:
使用Minimap轻松导航
Business Rule Designer画布还具有Minimap组件,该组件提供设计的业务规则:
它还允许在设计器画布中轻松导航。使用Minimap,我们可以很容易地滚动到设计器中业务规则定义的右下角,在那里我们有锁定/解锁操作组件,如下所示:
使用业务规则(文本视图)通读业务规则
设计器画布中的业务规则(文本视图)组件显示所定义规则的文本视图。
对于我们之前定义的推荐规则:
业务规则(文本视图)将显示以下内容:
关于业务规则的几个关键点
在决定使用业务规则之前,我们需要考虑以下关于业务规则的要点:
- 我们不能使用业务规则来隐藏窗体的选项卡和部分。
- 如果使用业务规则设置该字段的值,则不会触发该字段的OnChange事件。
- 业务规则中有10个if…else条件的限制。
- 如果业务规则引用的字段不在表单中,它将不会运行。它不会显示任何错误消息。
- 如果未将Scope定义为Entity,则业务规则将仅在加载表单期间以及字段值发生更改时运行。它不会在保存表单时运行。
- 业务规则按激活顺序运行。因此,如果我们为一个实体定义了多个相互关联的业务规则,那么首先激活的业务规则将首先运行,然后按激活顺序运行其他业务规则。
- 如果我们为特定字段定义了JavaScript和业务规则,那么JavaScript将首先执行。
- 业务规则不支持时区、持续时间或语言格式的整数字段。
- 打开平板电脑应用程序的Dynamics 365时,会缓存该应用程序的业务规则。因此,为了反映任何变化,该应用程序需要关闭并重新打开。
总结
在本章中,我们介绍了从CRM 2013到Dynamics 365的业务规则是如何演变的。我们有了一个全新的设计器,它使编写和定义业务规则更加直观。我们还详细查看了Dynamics365中添加的新推荐操作以及一系列新功能。
在下一章中,我们将了解Microsoft PowerApps以及如何使用它来创建自定义商业应用程序。
合作地址: