为输入和结果添加变量
这里使用的Rules Executor控件方法需要一个对象数组作为输入并返回一个结果的迭代器。在Workshop集成开发环境中为这些值创建变量,这样我们就可以在下一步中通过图形用户界面来创建控件。要完成该任务,请为Data Palette中的变量单击Add按钮,键入输入变量的名称,并键入Java类型java.lang.Object[]。使用同样的方式创建Java类型为java.util.Iterator的输出变量。
创建一个Rules Executor控件
要创建规则控件,请单击Data Palette中控件的Add按钮。从菜单中选择Portal Controls -> Rules Executor。为控件键入名称,并按下Create按钮。
在WLI流程中添加一个Control Send With Return节点
将刚刚创建的控件拖放到流程中以创建一个控件节点来实际调用规则引擎。在示例中,我们将使用控件的evaluateRuleSet()方法。从Send Data面板中,选择前面为方法的输入参数而创建的输入变量。使用Receive Data面板选择返回变量来获取规则执行的结果。在Property Editor窗口中为控件属性键入相应的值。
为创建初始数据编写Java代码
在创建了输入变量后,我们还没有对它赋值,所以需要编写代码来完成该任务。这个变量是一个Java对象数组,它提供了输入到规则条件中的初始事实。可以创建一个新的Perform节点来初始化该数组,或者通过使用Source View在Control Send节点中添加代码来设置该变量的值。
添加一个流程节点以对结果进行迭代
Rules Executor控件的每一个计算方法都将返回一个结果的迭代器。编写代码,使用该值实现对规则执行结果的迭代。如果没有指定过滤器类,这个迭代器将返回规则引擎工作内存中的所有值。其中包括原始输入以及任何在执行满足条件的规则的动作时添加到工作内存中的值。对于添加的对象,迭代器返回一个Result类的对象,该类的getObject()方法可以返回在规则动作中所添加的实际对象。
创建规则集
使用XML编辑器,在/META-INF/data目录中创建一个扩展名为.rls的文件。规则通常添加到子目录rulesets中。
(编辑:aniston)
|