行和单元格
在决策表中,行的单元格中的值定义规则的条件和操作。
通过将行添加到表,并在条件和操作的单元格中输入值来创建规则。 在决策表中运行规则时,决策引擎通常逐行运行规则,从第一行到最后一行。 无论执行模式RetePlus,顺序和快速路径)如何。
但是,如果决策表具有绑定到工作内存或生成器的定义,那么可更改规则运行的顺序。 对于快速路径和顺序,决策引擎首先运行工作内存中第一个对象的所有行,然后传递到下一个对象。 使用RetePlus,引擎会运行所有对象的所有行,这些对象按行号从第 1 行开始向下排序。
| 成绩 | 贷款金额 | 需要保险 | 保险费率 | ||
|---|---|---|---|---|---|
| 最小值 | 最大值 | ||||
| 1 | A | 100000 | 300,000 | true | 0.001 |
| 2 | A | 300,000 | 600,000 | true | 0.003 |
| 3 | B | 600,000 | 900,000 | true | 0.005 |
分区
对于给定条件,可以对具有相同值的一组连续行进行分组。 在这种情况下,分组值右边的单元格是同一分区的一部分。 缺省情况下,表的第一列中的所有单元格都属于同一分区。
在 Rule Designer中,通过合并单元格来对其进行分组。
在下表中,行 1 和 2 的 A 级单元格分组为一个单元格。 因此,对应于贷款金额的单元格将成为同一分区的一部分。
| 成绩 | 贷款金额 | 需要保险 | 保险费率 | ||
|---|---|---|---|---|---|
| 最小值 | 最大值 | ||||
| 1 | A | 100000 | 300,000 | true | 0.001 |
| 2 | 300,000 | 600,000 | true | 0.003 | |
您可以按如下所示来理解这两个规则:
规则 1
如果 all of the following conditions are true: - the loan grade is A - the amount of loan is between 100000 and 300000 那么 -将所需保险设置为 true -将贷款利率设置为 0.001规则 2
如果 all of the following conditions are true: - the loan grade is A - the amount of loan is between 300000 and 600000 那么 -将需要的保险设置为 true -将贷款利率设置为 0.003
不能仅根据行具有相同值这一事实来派生分区。 在下表中,我们添加了与其他行具有相同等级值的行。 由于其等级值未与其他等级一起分组,因此将为贷款金额创建新分区,并且现有分区保持不变。
| 成绩 | 贷款金额 | 需要保险 | 保险费率 | ||
|---|---|---|---|---|---|
| 最小值 | 最大值 | ||||
| 1 | A | 5 万 | 100000 | false | 0.001 |
| 2 | A | 100000 | 300,000 | true | 0.001 |
| 3 | 300,000 | 600,000 | true | 0.003 | |
以下示例显示了具有多个分区的更大表。 单元格A和B在Grade列中的每个列都有一个单元格分区。Amount of loan列。 这意味着如果贷款请求具有 A 级,那么根据贷款金额,可能会应用规则 1-4 之一。 例如,在此处,金额的可能值被划分为以下范围: 等于或小于 100000 , 100000-300000 , 300000-600000 以及超过 600000。 这些范围在 A 级右侧的单元格中进行测试。
| 成绩 | 贷款金额 | 需要保险 | 保险费率 | ||
|---|---|---|---|---|---|
| 最小值 | 最大值 | ||||
| 1 | A | < 100,000 | false | ||
| 2 | 100000 | 300,000 | true | 0.001 | |
| 3 | 300,000 | 600,000 | true | 0.003 | |
| 4 | ≥ 600,000 | true | 0.005 | ||
| 5 | B | < 100,000 | false | ||
| 6 | 100000 | 300,000 | true | 0.0025 | |
| 7 | 300,000 | 600,000 | true | 0.005 | |
| 8 | 600,000 | 800,000 | |||
| 9 | ≥ 600,000 | true | 0.0075 | ||
表中每个编号的行仍然形成一个规则。 分区有助于比较具有类似条件的规则,并查找规则值之间的重叠和差距。
在条件列中,可以更改特定单元格的运算符。 可以使用 is between <min> and <max> 运算符来定义该列,此运算符用于大多数行,并且可以覆盖分区的最后一行的此运算符,以将所有其余值与 more than <min> 运算符相匹配。 由于这些运算符不需要相同数目的参数,因此列可能根据行显示不同数目的子列。
空单元格
一行可包含空的单元格。 如果空单元格在条件列中,并且该行中至少有一个条件,那么将忽略与空单元格相关联的条件。 在这种情况下,将对其右侧的下一个单元格或分区 (如果有) 进行求值。 如果某行仅包含条件列中的空单元格,那么该规则不适用,并且将忽略整个行,即使操作列中存在操作也是如此。
- 在第 3 行中,决策基于等级和贷款持续时间。 将忽略贷款金额。
- 在第 4 行中,决策仅基于等级。
- 将忽略行 5 ,因为它不包含任何条件。
| 成绩 | 贷款金额 | 贷款期限 | 需要保险 | 保险费率 | ||
|---|---|---|---|---|---|---|
| 最小值 | 最大值 | |||||
| 1 | A | 100000 | 300,000 | 12 个月 | true | 0.001 |
| 2 | A | 300,000 | 600,000 | 24 | true | 0.003 |
| 3 | A | 12 个月 | true | 0.008 | ||
| 4 | B | true | 0.004 | |||
| 5 | false | 0.005 | ||||
如果空单元格位于某个操作列中,那么将忽略该操作单元格。 在下表中,第一个规则未设置保险费率。
| 成绩 | 贷款金额 | 需要保险 | 保险费率 | ||
|---|---|---|---|---|---|
| 最小值 | 最大值 | ||||
| 1 | A | < 100,000 | false | ||
| 2 | 100000 | 300,000 | true | 0.001 | |
| 3 | 300,000 | 600,000 | true | 0.003 | |
| 4 | ≥ 600,000 | true | 0.004 | ||
否则单元格
您可以使用Otherwise以收集分区中尚未覆盖的所有值。
否则,单元格的行为会在空单元格存在时发生更改。 建议不要在同一分区中同时使用其他单元格和空单元格,因为这可能会产生重叠并使表难以理解。
- 如果分区包含 otherwise 单元格和具有值的单元格,那么 otherwise 单元格将应用于尚未由分区中的其他单元格覆盖的值。
- 如果一个分区包含一个单元格、空单元格和有值的单元格,则首先计算第一个值之前有空单元格的行,然后计算所有有值的单元格,最后计算其他单元格。 最后,在有值的第一单元格之后的空行将在其他情况下进行评估。
- 如果分区包含 otherwise 单元格而不包含其他单元格,那么 otherwise 单元格将变得不相关并被忽略。
- 如果分区包含 otherwise 单元格,并且其所有其他单元格都为空,那么 otherwise 单元格将变得不相关并被忽略。
在下表中,Otherwise单元格收集 100000 之前和 600000 之后的所有值:
| 成绩 | 贷款金额 | 需要保险 | 保险费率 | ||
|---|---|---|---|---|---|
| 最小值 | 最大值 | ||||
| 1 | A | 100000 | 300,000 | true | 0.001 |
| 2 | 300,000 | 600,000 | true | 0.003 | |
| 3 | 否则 | true | 0.004 | ||
您按如下所示阅读三条规则:
规则 1
如果 all of the following conditions are true: - the loan grade is A - the amount of loan is between 100000 and 300000 那么 -将所需保险设置为 true -将贷款利率设置为 0.001规则 2
如果 all of the following conditions are true: - the loan grade is A - the amount of loan is between 300000 and 600000 那么 -将需要的保险设置为 true -将贷款利率设置为 0.003规则 3
如果 all of the following conditions are true: - the loan grade is A -贷款金额在 30 万至 60 万之间,这是不正确的。 那么 -将需要的保险设置为 true -将贷款利率设置为 0.004
第三行是应用的最后一行。 如果行 1 和 2 与条件不匹配,那么将运行第三条规则,并且保险费率将设置为 0.004。
否则,单元格为空
本节包含两个内容相同的表格,用于显示行评估的顺序。
在第一个表格中,“等级”列包含空行、数值和“否则”条件:
| 成绩 | 贷款金额 | 需要保险 | 保险费率 | ||
|---|---|---|---|---|---|
| 最小值 | 最大值 | ||||
| 1 | ≤50,000 | false | ⊘ | ||
| 2 | A | < 100,000 | false | ⊘ | |
| 3 | A | 100000 | 300,000 | true | 0.001 |
| 4 | A | 300,000 | 600,000 | true | 0.003 |
| 5 | B | < 100,000 | false | ⊘ | |
| 6 | B | 100000 | 300,000 | true | 0.003 |
| 7 | B | 300,000 | 600,000 | true | 0.005 |
| 8 | ≥600,000 | true | 0.008 | ||
| 9 | 否则 | 100000 | 300,000 | true | 0.05 |
| 10 | 否则 | 300,000 | 600,000 | true | 0.07 |
| 1100 | C | < 100,000 | true | 0.004 | |
| 12 个月 | C | 100000 | 300,000 | true | 0.006 |
| 13 | C | 300,000 | 600,000 | true | 0.006 |
| 14 日 | C | ≥600,000 | true | 0.015 | |
| 15 日 | ≥600,000 | true | 0.016 | ||
- 第一行,为空。 在第一个有值的行之前,空行会先被计算。
- 第 2-7 行和第 11-14 行,包含 A、B 和 C®。
- 第9行和第10行包含“否则”条件。
- 第8行和第15行是空的。 它们按出现的顺序进行评估,因此第8行排在第15行之前。
下表显示了表1中各行的评估顺序:
| 成绩 | 贷款金额 | 需要保险 | 保险费率 | ||
|---|---|---|---|---|---|
| 最小值 | 最大值 | ||||
| 1 | ≤50,000 | false | ⊘ | ||
| 2 | A | < 100,000 | false | ⊘ | |
| 3 | A | 100000 | 300,000 | true | 0.001 |
| 4 | A | 300,000 | 600,000 | true | 0.003 |
| 5 | B | < 100,000 | false | ⊘ | |
| 6 | B | 100000 | 300,000 | true | 0.003 |
| 7 | B | 300,000 | 600,000 | true | 0.005 |
| 1100 | C | < 100,000 | true | 0.004 | |
| 12 个月 | C | 100000 | 300,000 | true | 0.006 |
| 13 | C | 300,000 | 600,000 | true | 0.006 |
| 14 日 | C | ≥600,000 | true | 0.015 | |
| 9 | 否则 | 100000 | 300,000 | true | 0.05 |
| 10 | 否则 | 300,000 | 600,000 | true | 0.07 |
| 8 | ≥600,000 | true | 0.008 | ||
| 15 日 | ≥600,000 | true | 0.016 | ||