创建和编辑业务规则
发布日期: 2016年11月
适用于: Dynamics CRM 2015
在 Microsoft Dynamics 365 中,可以在不编写 JavaScript 代码或开发插件的情况下应用窗体逻辑。 业务规则提供一个简单的声明式界面来执行和维护快速更改,常用的业务规则将应用于 Web 应用程序和 适用于平板电脑的 Microsoft Dynamics CRM 中的主窗体和快速创建窗体及实体。 在联机和脱机模式下,它被应用到 Outlook 客户端的主窗体和快速窗体。
本主题内容
为什么要使用业务规则?
业务规则可以做什么?
如何配置业务规则?
服务器端业务规则和对 IF-Else 和 AND/OR 逻辑的支持。
业务规则的限制
本地化业务规则中使用的错误消息
为什么要使用业务规则?
业务规则提供了一种简单的声明方式,可对客户端或服务器上的业务逻辑进行一致地评估,而无需编写代码。 客户端逻辑评估更直接,因为当您打开并更新记录窗体时其就会执行,而在服务器上,服务器端提供一致的逻辑评估。
如果业务规则的范围限定在窗体级(所有的窗体或者特定窗体),则业务规则仅在客户端执行。 当加载和更新记录窗体时,规则就会运行。
如果业务规则的范围限定在实体级,则业务规则既可以在服务器也可以在客户端运行。 创建或保存记录时,规则便会在服务器端执行。
业务规则可以做什么?
业务规则可实现窗体脚本提供的一部分功能。 您可以定义条件并应用以下操作:
设置字段值
清除字段值
设置字段要求级别
显示或隐藏字段
启用或禁用字段
验证数据并显示错误消息
可以业务规则设置为应用于所有主窗体或快速创建实体窗体,或者应用于您选择的特定主窗体。 您还可以设置规则以应用于实体。
通过将业务规则包括在解决方案中,可以将其从一个组织传输到另一个组织,并且您可以安装包含业务规则的解决方案。
如何设置或清除字段值示例
让我们考虑以下几个示例。 第一条规则,对于所有立即购买,应用 5% 的折扣。 第二条规则,如果购买时间未知,您可以清除所有折扣。
下列规则定义显示了如何将字段值设置为针对立即购买应用 5% 的折扣。
下列规则定义显示了如何清除字段值 – 针对购买时间未知的购买清除所有折扣。
如何配置业务规则?
首先,您需要拥有导致到“设置”>“自定义”所需的权限。 这通常需要系统管理员或系统定制员安全角色。 若要激活业务规则,您必须拥有激活业务规则权限。
备注
业务规则仅适用于 更新的实体 或自定义实体。
可通过四种方式查看、创建或编辑业务规则:
解决方案 > 实体
通过某个解决方案(如默认解决方案),您会找到所有实体的“业务规则”节点。解决方案 > 实体 > 字段
在查看实体字段时,您会发现一个“业务规则”节点,该节点仅向您显示包括此属性的业务规则。窗体编辑器
通过窗体编辑器,可以使用功能区中的“业务规则”按钮在右侧显示“业务规则资源管理器”。 这将显示将仅应用于此窗体的所有业务规则。如果从窗体编辑器创建规则,则默认范围是适用于该窗体。详细信息:设置范围
窗体编辑器 > 字段
在查看窗体中使用的字段的属性时,您将看到一个“业务规则”选项卡,其中显示包含该属性的业务规则。
如果某个现有规则类似于您要创建的规则,则可打开该规则,然后使用“另存为”按钮复制现有规则作为新规则的起点。
设置范围
在窗体的右上方,使用“范围”字段设置规则的范围。
范围 |
在运行处运行 |
---|---|
实体 |
所有窗体和服务器 |
所有窗体 |
所有窗体 |
特定窗体 |
仅该表单 |
不能选择多个特定窗体。 如果选择“所有窗体”,则规则将应用于所有主窗体和快速创建窗体(只要窗体包括规则引用的所有字段)。 如果通过使用窗体编辑器创建新规则,则默认范围仅限该窗体。
服务器端业务规则和对 IF-Else 和 AND/OR 逻辑的支持。
以前,您能够评估单个客户端上的业务规则。 要评估服务器上的业务规则逻辑并将其应用于所有客户端,您必须提供需要高额费用开发和维护的插件。 在实体级别设置业务规则的范围,使您能够一次评估服务器上的业务规则,并将其应用于所有客户端,而不必编写代码。 您可以将常用方案的逻辑从插件移动到实体级别的业务规则。 此外,我们在业务规则中提供默认值支持。 例如,如果 Contoso 只在美国进行业务往来,则在创建新的潜在顾客时,可以实施简单的业务规则,将国家/地区自动设置为美国。
备注
在范围被设置为实体并且您使用窗体创建或编辑用户记录时,该规则在该客户端运行,但之后,则在服务器上重新运行。 因此,如果将范围设置为实体,我们会阻止您创建对字段的循环引用。 例如,因为它在该客户端增加一次值,然后在服务器端尝试再次运行,所以您不能设置信用额度 = 信用额度 + 1000。
对于更多复杂的应用方案,您需要使用使用 AND 逻辑运算符评估的多个业务规则。 所有条件必须为 True 才会应用此操作。 没有 If-Else 或 AND/OR 支持。 此功能现已添加并允许您轻松地创建更详细的业务规则。 以下是使用 If-Else 逻辑的业务规则示例:
应注意的几种限制:
不支持嵌套 If-Else 语句。
不支持条件中表达式的分组。
表达式可使用 AND 或 OR 随意组合,但并非同时使用。
配置条件
如果要更改已激活的业务规则,必须先将其停用,然后才能编辑。
若要添加条件,请单击 + 图标,此时将出现一个采用默认值集的新条件行。 输入字段名称以设置“字段”,然后选择相应的“运算符”。 “运算符”选项会随字段的数据类型发生变化。
只要条件中引用的任何字段发生变化,就会检查条件。
可以选择三种不同类型的条件:
字段
使用此类型的条件可以比较窗体字段之间的值。值
使用此类型可以比较窗体字段的值与您输入的值。公式
此选项仅对数值或日期数据类型显示。 不对包含文本的字段显示。 使用此类型比较简单计算的结果;该计算可以使用其他表单字段中的值,也可以使用您输入的值。
您完成输入或编辑规则后,选择“对钩标记” 图标进行保存或者“(X)” 放弃更改。 若要删除以前保存的某个条件,请将光标放在该条件上,选择“删除”按钮 。
配置操作
若要添加操作,请选择 “添加”按钮“+” ,您将看到以下选项:
显示错误消息
使用此操作可以设置一条针对字段的错误消息;当字段中的数据无效时,将出现该错误消息。 指定的消息文本将随字段旁的错误图标一起显示。只要显示该消息,就不能保存记录。 在根据规则中设置的条件更正了字段中的数据之后,该消息将消失,就可以保存记录了。
设置字段值
选择“字段”和“类型”。 有三种类型:字段
使用此类型可以用一个字段的值来设置另一个窗体字段的值。值
使用此类型可以使用您输入的值来设置窗体字段的值。公式
此选项仅对数值或日期数据类型显示。 不对包含文本的字段显示。 使用此类型可以将值设置为某个简单计算的结果;该计算可以使用其他表单字段中的值,也可以使用您输入的值。
设置业务必需的
使用此类型可以更改字段的要求级别。 选项是“非业务必需的”和“业务必需的”。 没有将此设置为“业务建议的”的选项。设置可见性
使用此类型可更改字段是否在窗体中显示。 选项是“显示字段”和“隐藏字段”。锁定或解锁字段
使用此类型可更改字段是否在窗体中启用。 选项是“锁定”和“解锁”。 锁定字段时,用户将不能编辑字段中的值。
在定义了操作之后,可以更改操作顺序,或者使用光标放在操作上时显示的选项来删除操作。
设置说明
设置说明是可选的。 它仅在业务规则编辑器中显示。 但是,最好包含规则用途以及添加规则的原因的说明。
测试并激活您的业务规则
在使用您创建的业务规则之前,必须先将其激活。 在激活规则之前,应对其进行测试。 可以通过使用窗体编辑器中的“预览”按钮来测试业务规则。
业务规则的限制
业务规则用于处理常见操作。 与开发人员使用窗体脚本能做的事情相比较,业务规则有其局限性。 但是,业务规则并不是为了替代窗体脚本。
以下是使用业务规则的一些限制:
业务规则仅在加载窗体以及字段值发生变化时运行。 保存记录时停止运行,除非在实体级别设置了规则的范围。
业务规则仅用于字段。 如果您需要与其他可见元素(如选项卡和分区)交互,那么在窗体中您需要使用窗体脚本。
使用业务规则设置字段值时,将不会运行该字段的 OnChange 处理程序。 这是为了降低可能导致无限循环的循环引用的可能性。
如果业务规则引用了窗体上没有的字段,则规则就不会运行。 不会有任何错误消息。
使用“时区”、“持续时间”或“语言”格式的整数字段不会出现在条件或操作的规则编辑器中,因此不能将它们用于业务规则。
一个业务规则中添加的 if-else 条件不能超过十个。
对于 适用于平板电脑的 Microsoft Dynamics CRM,在打开 适用于平板电脑的 CRM 时下载并缓存业务规则的定义。 直到关闭并重新打开 适用于平板电脑的 CRM,才能应用对业务规则做出的更改。
当您设置查找字段的值时,窗体中主字段值的文本与始终与显示在规则定义中的文本相匹配。 如果您在查找中设置的记录的主字段的值有所改变,通过您的规则设定的值集将继续使用规则定义的主字段值的文本部分。 若要修复,请使用当前主要名称字段值来更新规则定义。
了解查找设置的值包括三部分非常有用:
Name:您在窗体中看到的主要字段值的文本。
Id:记录的唯一标识符。 这是保存的数据。 这不显示在窗体中。
LogicalName::实体的名称,例如 contact、account 或 opportunity。
该规则会设置此值的三个部分。 特定记录的 Id 值从来不变,但是,Name 值可能变化。
例如,如果您定义一个规则来设置一个联系人的查找,其“全名”为‘旧名’,该文本为 Name,当它是由您的业务规则设置,即使后来某人将联系人的“全名”更改为‘新名’,你还是能在查找项中看到。 查找 Id 值将被正确设置为期望值,但是 Name(未保存)会反映规则定义值,而不是当前记录引用的“全名”值。
从规则中清除操作
除了显示错误消息,必须确保采用单独的业务规则来清除您可能已应用的任何操作。 例如,假定您有一个针对“客户”实体的规则:
如果“首选联系方式”等于“电话”
将“商务电话”设置为“业务必需的”
只要“首选联系方式”字段设置为“电话”,此规则就会生效。 但是,如果“首选联系方式”字段后来更改为其他选项,“电话”字段将保留“业务必需的”。 若要清除此操作,需要采用一个单独的规则来应用以下逻辑:
如果“首选联系方式”不等于“电话”
将“商务电话”设置为“非业务必需的”
“显示错误消息”操作有所不同,因为它会自动计算用于设置错误消息的所有条件;如果条件不再为 True,就会将其删除。
本地化业务规则中使用的错误消息
如果为组织配置了多种语言,则需要将设置的错误消息本地化。 每次设置消息时,系统会生成一个标签。 如果您导出组织中的翻译,就可以添加消息的本地化版本,然后将这些标签重新导入到 Microsoft Dynamics 365 中,从而使使用非基本语言的用户可以查看经过翻译的消息。
另请参阅
视频:Microsoft Dynamics CRM 自定义新功能 - 业务规则
创建和编辑流程
创建和设计窗体
创建和编辑视图
SDK:创建或编辑如何实施业务规则
© 2016 Microsoft Corporation。 保留所有权利。 版权