类别
类别是可以分配给业务规则和某些业务元素 (类和成员) 的标识,以便过滤哪些业务规则可以使用哪些业务元素。 如果规则类别过滤器指定至少一个分配给业务元素的类别,那么规则可以使用业务元素。 只有规则可以看到的业务元素才会显示在规则编辑器下拉列表中。 您可以将一个或多个类别分配给业务对象模型 (BOM) 类和成员,或者分配给业务规则类别过滤器。
缺省情况下,所有业务规则,类和成员都属于预定义类别 any。 所有规则都可以查看 any 类别,无论使用的是什么类别过滤器。 因此,缺省情况是可以在所有业务规则中使用所有类和成员。
系统 BOM 元素没有类别,因此无论规则使用哪个规则类别过滤器,都将对任何业务规则隐藏这些元素。
必须先在规则项目级别定义类别,然后才能使用该类别。 如果在另一个项目引用的项目中定义类别,那么该类别在这两个项目中都可用。
类与成员之间没有继承,但您可以将同一类别分配给同一类的所有成员。
有关使用类别的更多信息,请参阅:
| 如果业务元素具有类别 ... | 而业务规则类别过滤器是 ... | 在该业务规则中,业务元素是 ... |
|---|---|---|
any |
any |
可视 |
any |
另一个类别 | 可视 |
| 另一个类别 | any |
可视 |
category1 和 category2 |
category1 |
可视 |
category1 和 category2 |
category2 |
可视 |
category1 和 category2 |
category1 和 category2 |
可视 |
category1 和 category2 |
category3 和 category4 |
已隐藏 |
示例
在业务对象模型中,您有一个具有类别 vehicle的 Car 类。 您还拥有包含业务规则 CarRentalRule的规则项目,该业务规则在其类别过滤器中包含 vehicle 。 从 CarRentalRule开始,您可以查看具有类别 vehicle的所有类以及具有 any 类别的所有类。 因此, CarRentalRule 可以查看 Car 类。
如果然后定义类别 sales 并将其分配给类 Customer,那么在规则 CarRentalRule的规则编辑器下拉列表中看不到 Customer 类。 如果仍决定在业务规则中使用 Customer 类,那么会将其报告为警告。

同样,如果 Car 类具有除 vehicle以外的类别的成员,那么即使您可以在规则的定义部分中定义 Car 类型的变量,也不能在 CarRentalRule的条件和操作中使用此成员。