编写规则

您可使用业务操作语言 (BAL) 来编写操作规则、决策表和决策树。BAL 自动转换为 IRL,后者为规则工件的可执行格式。要以相同结构创建多条规则,您可以创建模板。

开发者设置工具来帮助业务分析员和规则作者编写规则。

要编写业务规则,业务用户需要对其而言自然且可以理解的语言。但是,您还必须确保该语言无歧义且可执行。

表达业务规则

业务操作语言 (BAL) 提供了表达业务规则的语法。BAL 定义简单的 if-then 语法(“如果”某个条件集为 true,“那么”采取一系列操作),并提供用于表达业务规则条件和操作的结构。

您可以使用词汇表和 BAL 来创建三种类型的业务规则:

操作规则 操作规则

操作规则是类似于句子的语句,用于表达一组条件,这些条件后面跟有当其被判定为成立时要执行的操作。

决策表 决策表

决策表以表格形式表示决策逻辑。决策表中的每行都与一个操作规则相对应。

决策树 决策树

决策树以图形方式表示决策逻辑。在决策树中,树枝表示条件,而树叶表示在判定条件成立的情况下要采取的操作。

如果要编写业务用户不会编辑的更复杂的业务规则,那么可以使用技术规则。技术规则不使用词汇表。这些规则以 ILOG® 规则语言 (IRL) 编写并直接应用于 BOM 元素。如果您要编写处理循环或异常的规则操作,或者使用在 BOM 到 XOM 映射中不可用的 Java 构造,那么技术规则可能会有用。

了解如何解析并执行业务规则

ILOG 规则语言 (IRL) 是可执行格式的规则工件。在规则集中,所有的规则工件都会转换为 IRL。例如,决策表的每行都生成为 IRL 中的一条规则。每个操作列都与相应规则中的 IRL 操作相对应。

BAL 经设置后会自动转换为 IRL。 例如,您可使用 BAL 编写了以下操作规则:

if
	the credit score of 'the borrower' is less than 200
then
	add "Credit score below 200" to the messages of 'the loan' ;
	reject 'the loan';

此操作规则的可执行格式是 IRL 代码。您可以通过在规则编辑器中单击 IRL 选项卡来查看该代码。该规则的 IRL 代码在 IRL 选项卡中显示。

package eligibility {
		rule minimum_credit_score {
			property status = "new";
			when {
				miniloan.Borrower() from borrower;
				evaluate (borrower.creditScore < 200);
			} then {
				loan.addToMessages ("Credit score below 200);
				loan.reject();
			}
		}
}

在运行时,规则引擎解析规则集并使用 BOM 到 XOM 的映射来访问 XOM。然后,业务规则应用程序针对 Java 对象调用规则集(如果指定的模型为 Java XOM)或 XML 文档(如果指定的模型为 XSD XOM)。

规则引擎在评估和执行规则的过程中调用 XOM Java 方法。在此示例中,规则引擎针对 BOM 方法 addToMessages 调用 Java 方法 java.util.Collection.add,因为此方法具有定义为 this.messages.add(argument) 的显式 BOM 到 XOM 映射,其中 messages 是类型为 Collection 的 BOM 属性。对于 BOM 方法 reject,规则引擎直接调用 Java 方法 reject

注:

如果您扩展了 XOM,请记得为新的构造添加 BOM 到 XOM 的映射。

为业务用户简化规则编辑

Rule Designer 中设计规则项目时,您必须确保设置的管理和规则编写环境能够满足业务用户的需求。目的是避免系统体系结构与业务用户需求之间出现不一致。例如,规则包可在您的应用程序中反映决策点,但不会反映业务规则适用的国家/地区。业务规则词汇表最终将实施为对象模型。开发对象模型中涉及的约束可能会导致生成冗长的词汇表。例如,模型中可能有继承关系或实用程序类,它们对业务用户来说没有任何意义。您可以在业务对象模型中隐藏这些与实施相关的类。

您还可以使用操作规则模板决策表模板来指导规则作者更轻松地编写规则并高效地创建许多相似规则。模板是部分完成的操作规则或决策表,可用于创建一系列具有相同结构的规则。

提示:

如果您发现自己使用模板管理带有共享条件和操作的许多规则,并且仅修改值,那么请考虑将这些规则作为决策表来管理。

以下部分描述您如何扩展和定制规则项目及业务对象模型,从而使业务规则的管理和编写对于业务用户而言变得更加容易。

按类别过滤词汇表

如果词汇表很大,那么在 Rule DesignerDecision Center 中编辑规则时,可以通过类别来过滤可用的术语和短语。为业务规则分配了类别后,业务规则中仅显示该类别的词汇表术语和短语。

向规则工件添加定制属性

要向现有类型的规则工件添加属性,请扩展规则模型。您可以设置 BAL 和规则模型扩展一次,然后将其部署到 Rule DesignerDecision Center。例如,您可以创建属性 geography 来标识规则所适用于的国家或地区。

业务用户可使用定制属性来管理业务规则。例如,他们可以在 Decision Center 中使用查询来根据属性设置智能视图。凭借智能视图,业务用户能够拥有与您在 Rule Designer 中设置的物理规则包组织不同的规则项目视图。