3

我正在使用 ODM 8.5(JRules 的继任者)。field在我的 Java 域中,我有一个代表数字“000”到“999”的三字符字符串。我想要一个代表逻辑的决策表,例如:

if field is between "000" and "012" then set the result to "tiny"
if field is between "013" and "060" then set the result to "less tiny"
...

IBM关于定义列状态的文档 - “条件语句是不完整的 BAL 谓词表达式......”。BAL 中有什么东西可以做我想做的那种字符串比较吗?如果没有,是否可以从 BAL 调用 IRL 中定义的函数?如果是这样,怎么做?对于如何在 ODM 中处理这个简单问题(不更改现有的 Java XOM),我也愿意接受其他建议。现在,在我看来,我不能使用 ODM 决策表,尽管底层逻辑似乎非常适合决策表。

4

1 回答 1

2

这个答案很大程度上基于 Justin Phillips 对这个问题的好回答,针对 ODM 8.5 进行了更新。请加上他的答案。

主要思想是在业务对象模型 (BOM) 中创建一个可以从您的规则中调用的函数。要添加 BOM 功能:

  1. 右键单击bomEclipse 规则项目中的文件夹。
  2. New -> BOM Entry从菜单中选择。
  3. 选择Create an empty BOM entry选项,然后单击Finish
  4. 双击新的 BOM 条目以显示 BOM 编辑器视图,然后单击New Class
  5. 输入班级名称,然后单击Finish
  6. 双击列表中的新 BOM 类,然后在该Members部分下单击New按钮。
  7. New Member 对话框中,选择Method选项,输入Name( isBetween),返回Type方法 ( boolean),并添加三个字符串参数(testee- 正在测试的值minmax)。单击Finish按钮。
  8. 双击该Members部分下的新方法,然后选择StaticFinal选项。
  9. 单击“Member Verbalization”部分下的“创建”链接,并在“模板”文本框中填写{0} is between {1,min} to {2,max}
  10. 在该BOM to XOM Mapping部分下,输入您的 Java 代码。

在此处输入图像描述 11. 返回到类级别 BOM 编辑器并将 设置为“BOM 到 XOM 映射”部分中Execution name的值void。这表明 BOM 类未链接到 Java 类 (XOM)。

Test在填写Condition Column决策表时,现在应该可以访问新创建成员的语言表达。

于 2014-04-15T16:33:36.577 回答