IBM-ILOG JRules 开发-布署-实例-R4


(查看 图 4 的更大版本。)

这组步骤为 XOM 中的所有元素创建 BOM 条目,使用默认的语言表达来访问和设置每个 BOM 元素。图 5 显示了 Rule Explorer 中的一些 BOM 元素和包。

图 5. Rule Explorer 中的 BOM 项目


默认的语言表达在大部分情况下已足够了。例如,为 EventCode 的 value 的设置和获取所生成的语言表达可在 BOM 编辑器中看到,只需双击 BOM 元素即可,如 图 6 中所示。

图 6. BOM 编辑器中的语言表达


(查看 图 6 的更大版本。)

扩展 BOM 并细化词汇表

规则词汇表是一组可用于准确定义一条业务规则的词汇。这些词汇是 BOM 的语言表达。我们常常需要增强 BOM,添加元素或方法来简化规则的编写。例如,Parameter 的 value 在输入模型中显示为一个字符串。为了将此值与规则中的数字值对比,我们定义在 BOM 类 Parameter 中定义了一个 “虚拟” 或 “合成” 方法 getNumericValue,它从字符串提取一个双精度值并为它提供一种语言表达。这一步使我们能够编写如下这样的规则:

if the numeric value of this parameter is at least 15

then …

每个 BOM 元素需要最终映射回可执行的 XOM。对于没有相应的 XOM 实现的 “虚拟” 方法,此映射通过 BOM 到 XOM 的映射来完成。在运行时,规则引擎分析规则集,使用 BOM 到 XOM 的映射访问 XOM。

图 7 在 BOM 编辑器中显示了虚拟方法。要定义此虚拟方法,在 BOM 编辑器中执行以下步骤:

1.    将 Name 设置为 getNumericValue。

2.    将 Type 设置为 java.lang.Double。

3.    在 Member Verbalization 区域,将 Navigation 设置为 {this} 的 {numeric value}

4.    在 BOM to XOM Mapping 区域,输入以下代码:

        Double d = 0;

        try {

            d = Double.parseDouble(this.value);

        } catch (Exception e) { }

        return d;

图 7. 添加一个虚拟方法


(查看 图 7 的更大版本。)

除了虚拟方法,我们还添加了一些虚拟类来实现合成的对象。图 8 突出显示了这些虚拟类。(参见 参考资料 获取更多细节。)

图 8. 实现合成对象的虚拟类


 

创建一个规则项目

从技术上讲,ccc-bom 项目也是一个可包含业务规则的规则项目。但是,我们建议将 BOM 放在它自己的项目中,将业务规则放在不同的项目中。此方法支持在未来将 BOM 重用于其他规则集。因此,我们使用新建规则项目向导来创建一个名为 ccc-rules 的独立规则项目。

图 9 描绘的一系列步骤可用于将规则项目创建为一个引用 ccc-bom 规则项目的标准规则项目。要创建规则项目,执行以下步骤:

1.    选择 File – New – Rule Project。

2.    在打开的窗口中,选择 Standard Rule Project 作为模板并单击 Next。

3.    在接下来的窗口中,指定 “ccc-rules” 作为项目名称并单击 Next。

4.    选择 Rule Project Reference 中的 ccc-bom 并单击 Finish。

图 9. 创建规则项目

以下文章点击率最高

Loading…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营