搜索

44.2. RuleTable 定义

download PDF

决策表的 " 规则"区域中的条目定义了该规则表中的条件、操作和其他规则属性。表格的表格可以包含多个可 规则 的区域。

下表列出了规则定义支持的标签(列标题 )和值。对于列标题,您可以使用给定标签或以表中列出的字母开头的任何自定义标签。

表 44.2. 支持的规则 定义
标签或以 开头的自定义标签使用

NAME

N

提供从该行生成的规则的名称。默认值由 RuleTable 标签和行号中的内容构建。

最多一列。

描述

I

在生成的规则中生成注释。

最多一列。

条件

C

代码片段和交集值,用于在状况中的模式内构建约束。

每个规则表至少一个。

操作

A

代码片段和交集值,用于构造规则导致操作的操作。

每个规则表至少一个。

元数据

@

用来构建规则元数据条目的代码片段和交集值。

可选,任意数量的列。

以下小节提供有关条件、操作和元数据列如何使用单元数据的更多详情:

Conditions

对于列头 CONDITION,连续的行中的单元会产生一个条件元素:

  • 第一单元: COND ITION 的第一个单元格中的文本将开发成规则条件的模式,并使用下一行中的代码片段作为约束。如果单元与一个或多个邻居单元合并,则会形成含有多个限制的单一模式。所有限制都合并到一个圆括号列表中,并附加到这个单元文本中。

    如果这个单元单元为空,位于下面的单元格中的代码片段必须自行生成有效的条件元素。例如,如果对象类型和 itemsCount > $1 作为约束(不同的单元格),您可以保留对象类型单元格,然后在约束 单元中输入 Order (itemsCount > $1),然后对任何其他约束单元执行相同的操作。

    要包括没有限制的模式,您可以在另一模式文本前编写模式,带有或不含空对括号。您也可以将 from 子句附加到模式。

    如果模式以 eval 结尾,代码片段会生成布尔值表达式,以便在 eval 之后将包含到一组括号中。

    您可以终止带有 @watch 注释的模式,该注释用于自定义该模式要重新激活的属性。

  • 第二单元格:CONDITION 下第二个单元格中的文本作为在第一单元中引用的约束进行处理。这个单元中的代码片段可以通过将值与列中的单元格隔离来修改。如果要创建一个限制,使用 == 与下方单元格中的值进行比较,那么该字段选择器已经足够了。如果您单独使用选择器,但您希望使用条件没有附加任何 == 比较,则必须使用符号 终止该条件 任何其它比较运算符都必须作为代码片段中最后一个项目指定,且附加了下面的单元中的值。对于所有其他约束表单,您必须将位置标记为,以包含符号 $param 的单元内容。如果您使用符号 $1$2 等符号,以及下面单元格中的以逗号分隔的值列表,则可以进行多个插入。但是,不要用逗号分隔 $1$2 等,否则表将无法处理。

    要根据模式扩展文本 ($delimiter){ $snippet },请为以下每个单元里的逗号分隔列表的值重复一次(以逗号分隔列表的值),插入符号 $ 符号,并使用所给 $delimiter 来加入这些扩展。请注意,forall 结构可由其他文本包围起来。

    如果第一个单元包含对象,则完成的代码片段会添加到该单元中的条件元素中。会自动提供一对括号,并在合并的单元中的模式中添加多个限制时使用逗号分隔逗号。如果第一个单元格为空,此单元格中的代码片段必须自行生成有效的条件元素。例如,如果对象类型和 itemsCount > $1 作为约束(不同的单元格),您可以保留对象类型单元格,然后在约束 单元中输入 Order (itemsCount > $1),然后对任何其他约束单元执行相同的操作。

  • 第三单元:CONDITION 下的第三单元格中文本是您为列定义的描述性标签,它是一个视觉帮助。
  • 第四单元: 在第四行中,非空条目为干预提供数据。空白单元会省略此规则的条件或约束。
Actions

对于列标题 ACTION,连续行中的单元会导致 action 语句:

  • 第一单元:ACTION 下第一个单元格中的文本是可选的。如果存在,该文本将解释为对象引用。
  • 第二单元格:ACTION 以下的第二个单元格中文本是通过将值与一列中的单元关联值来修改的代码片段。对于单边插入,标记 的位置,用符号 $param 标记包含单元内容的位置。如果您使用符号 $1$2 等符号,以及下面单元格中的以逗号分隔的值列表,则可以进行多个插入。但是,不要用逗号分隔 $1$2 等,否则表将无法处理。

    不含任何标记符号的文本可以在不进行干预的情况下执行方法调用。在这种情况下,在单元格下面的行中使用任何非空条目,使其包含声明。支持 forall 结构。

    如果第一个单元包含对象,那么单元文本(按句点跟随),第二个单元中的文本会被停止运行,从而导致一个方法调用一个操作声明。如果第一个单元单元为空,此单元中的代码片段必须自行生成有效的 action 元素。

  • 第三单元: 以下第三单元格中的文本是您为列定义的描述性标签,它是一个视觉帮助。
  • 第四单元: 在第四行中,非空条目为干预提供数据。空白单元会省略此规则的条件或约束。
元数据

对于列头 METADATA,连续行中的单元格会为生成的规则生成元数据注解:

  • 第一单元: METADATA 的第一个单元格中的文本将被忽略。
  • 第二单元格: METADATA 下第二个单元里的文本使用规则行中的单元格中的值进行干预。元数据标志字符 @ 是前缀,因此您不需要将该字符包含在这个单元的文本中。
  • 第三单元:METADATA 下的第三单元格中的文本是您为列定义的描述性标签,作为可视化工具。
  • 第四单元: 在第四行中,非空条目为干预提供数据。空白单元格会导致此规则出现对元数据注解的省略。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.