我有一个采用String类型的输入参数的规则。 我可以从这个参数保存使用BAL值去掉空格。
如果没有什么其他的选择来做到这一点。 在这种JRule有一个决策表,其中条件栏是该参数,然后输出操作列。
假设你定义Rulset放慢参数“名称” String类型的规则IsDepartmentManager的将输出的规则集参数是一个布尔。
现在,在决策表中的名称列中的值时说:“约翰”和出来这是真的。 否则为false。
现在,当这条规则被调用的Web服务的输入发送为“约翰”。 正如它的名字中包含空格和决策表做精确匹配,其结果回报是假。
您可以添加一个初步行动在规则任务(包含决策表或规则),您可以在其中执行theInputString.trim();
你能后的规则的例子吗? 这将是很好看,为什么你需要修剪摆在首位的字符串。
但是,你可以写一个函数来做到这一点,并通过BOM揭露它。 这可以通过两种方式。 首先,你可以在将一个字符串修剪它的BOM直接写一个虚函数。 第二个选择,如果你使用Java XOM的是用Java编写的功能和揭露的是通过BOM。
如果你使用虚拟函数方法,那么代码将使用IRL编写的,但是这基本上是一个Java削减版本,所以它必须修剪所需的String对象的方法。 例如:
return theString.trim();
要添加一个BOM功能,请执行下列步骤:
- 右键点击在Eclipse规则项目“物料清单”文件夹中。
- 选择“BOM条目”从菜单中。
- 选择“创建一个空的BOM条目”选项,然后单击“完成”。
- 双击新的BOM项,弹出BOM编辑器视图,然后单击“新建类别”。
- 输入类名,然后单击“完成”。
- 双击新的BOM类从列表,然后在“成员”部分中,单击“新建”按钮。
- 在新成员对话框中,选择“方法”选项,输入方法的名称,并添加一个参数为String类型。 最后,设置返回类型为String类型。 然后点击“完成”按钮。
- 然后双击“成员”部分下新的方法,然后选择“静态”和“最终”的选项,而“会员Verbalisation”部分下创建一个默认verbalisation。
- 在“BOM到XOM映射”部分中,输入我把我原来的答复上面的代码,更改参数名称以符合您使用什么。
- 返回到类级BOM编辑器和“BOM到XOM映射”部分中的“执行名称”的值设置为“无效”。 这是必须的,因为BOM类未链接到一个Java类(XOM)。
一旦你做到了这一点,你应该然后能够看到新的方法在BAL编辑的规则。
不过,我要说的是,你应该尝试和修剪并将其传递到规则集之前准备数据。 理想情况下,你想设置为尽可能保持规则尽可能干净的规则有点自定义函数。
文章来源: Remove whitespaces, from input string type parameter value, using BAL in ILog Jrule