我正在使用ODM 8.5(JRules继承者)。在我的Java域中,我有一个三字符的字符串field
代表一个数字," 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的documentation on defining columns州 - "条件语句是不完整的BAL谓词表达式..."。 BAL中有什么东西可以进行我想做的字符串比较吗?如果没有,是否可以从BAL调用IRL中定义的函数?如果是这样,怎么样?我也对如何在ODM中处理这个简单问题提出了其他建议(不改变现有的Java XOM)。现在,我认为我不能使用ODM决策表,尽管基础逻辑似乎非常适合决策表。
答案 0 :(得分:2)
这个答案很大程度上基于Justin Phillips对this question的精彩回答,针对ODM 8.5进行了更新。请加上答案。
主要思想是在业务对象模型(BOM)中创建一个可以从规则中调用的函数。要添加BOM功能:
bom
文件夹。New -> BOM Entry
。Create an empty BOM entry
选项,然后点击Finish
。 New Class
。 Finish
。 Members
部分,点击New
按钮。 New Member
对话框,选择Method
选项,输入Name
(isBetween
),
返回Type
方法(boolean
),并添加三个字符串参数(testee
- 正在测试的值,min
和max
)。点击Finish
按钮。Members
部分下的新方法,然后选择Static
和Final
选项。{0} is between {1,min} to {2,max}
BOM to XOM Mapping
部分下,输入您的Java代码。
11.返回到班级BOM编辑器,并在“BOM to XOM Mapping”部分中将Execution name
设置为值void
。这表明BOM类未链接到Java类(XOM)。
现在,在填写决策表Test
中的Condition Column
时,可以访问新创建的成员的语言表格。