第 30 章 指导决策表中的列类型
为指导决策表 添加一个新的列 向导提供了以下列选项:(选择" 包含高级选项"来查看所有选项。)
以下几节中描述了这些列类型和每个 Add a new 列 向导所需的参数。
本节中描述的部分列参数(如 Fact Patterns 和 Fields)提供仅由已经在找到指导决策表的同一软件包中定义的数据对象组成的下拉选项。软件包的可用数据对象列在 Project Explorer 的 Data Objects 面板中,并在引导决策表设计器 的数据对象 选项卡中列出。您可以根据需要在软件包中创建额外的数据对象,或者从指示决策表设计器 的数据对象
30.1. "添加条件"
条件代表规则左侧("WHEN")部分定义的 fact 模式。使用这个列选项,您可以定义一个或多个条件列,用于检查带有特定字段值的数据对象是否存在或不存在,并且影响规则的操作("THEN"部分。您可以在 condition 表中为事实定义绑定,或者选择之前定义的绑定。您还可以选择对模式进行导航。
规则条件示例
when $i : IncomeSource( type == "Asset" ) // Binds the IncomeSource object to the $i variable then ... end
when not IncomeSource( type == "Asset" ) // Negates matching pattern then ... end
指定绑定后,您可以定义字段限制。如果使用相同的事实模式绑定定义两个或多个列,则字段约束会变得相同模式的复合字段限制。如果您为单个模型类定义了多个绑定,每个绑定都会在规则中成为单独的模型类("WHEN")侧。
必需的列参数
Add a new 列 向导需要以下参数来设置此列类型:
-
Pattern: 从您在表中已使用的事实模式列表中选择或创建新的事实模式。事实模式是软件包中可用数据对象的组合(请参阅所需数据 对象的信息 )和您指定的模型类绑定。(示例:
LoanApplication [application]
或IncomeSource [income]
,其中 bracketed 部分是绑定到给定事实类型的绑定。) -
入口点: 定义事实模式的入口点(若适用)。入口点是聚合或流,如果指定,事实将进入决策引擎。(示例:
应用流
、贡献度检查流
) 计算类型: 选择以下计算类型之一:
- 字面值: 单元格中的值将使用 operator 与字段进行比较。
- formula: 将评估单元格中的表达式,然后将与 字段进行比较。
-
predicate: 不需要字段,表达式将评估为
true
或false
。
-
字段: 从之前指定的事实模式中选择一个字段。字段选项在项目的 Data Objects 面板中定义。(示例:
LoanApplication
事实类型中的数量
或长度
字段) -
binding (可选): 根据需要为之前选择的字段定义绑定。(例如:对于模式
LoanApplication [application]
[application]、字段数量
和 operator等于
,如果将绑定设置为$amount
,则结束条件将是应用程序 : LoanAppplication($amount : amount == [value])
. - operator : 选择要应用到前面指定的事实模式和字段的 Operator。
-
值列表(可选): 输入值选项列表(以逗号和空格分开),以限制规则("WHEN")部分的表格输入数据。当定义此值列表时,该列的表单元格中将作为下拉列表提供值,用户只能从中选择一个选项。(示例:
周一、周三、周五
以只指定以下三个选项) -
默认值(可选): 选择之前定义的值选项之一作为新行自动出现在单元格中的默认值。如果没有指定默认值,则表单元格默认为空白。您还可以从项目 Explorer 的枚举 定义面板中列出的任何之前配置的数据枚举 的值中选择默认值。(您可以在 Menu
Design Projects [select project] Add Asset Enumeration 中创建 enumerations。) - 标题(描述): 为列添加标头文本。
- 隐藏列: 选择此项以隐藏列,或清除此列以显示列。
30.1.1. 在 condition 列单元格中插入 任何其他值
对于引导式练习中的简单条件列,如果设置了以下参数,您可以在 列中对表单元应用任何其他值:
-
条件列的计算 类型 已设置为
Literal 值
。 -
Operator 已设置为等同性
==
或不等质量!=
。
任何其他值
可让为尚未在表中的规则中明确定义的任何其他字段值定义规则。在 DRL 源中,任何其他
不在 中
。
用于任何其他条件的规则示例
when IncomeSource( type not in ("Asset", "Job") ) ... then ... end
流程
-
选择使用
==
或!=
运算符的 condition 列的单元。 -
在表设计器右上角,点击 Edit
Insert "any other" value。