【发布时间】:2012-04-03 11:42:11
【问题描述】:
我正在使用 NxBRE 规则引擎,并且需要能够检查某些值是否在列表中。这是我尝试的方法:
定义列表元素:
<String id="Element1" value="Value1"/>
<String id="Element2" value="Value2"/>
<String id="Element3" value="Value3"/>
<String id="Element4" value="Value4"/>
检查条件:
<In valueId="ValueId" idList="Element1, Element2, Element3, Element4">
<ObjectLookup id="ValueId" objectId="MyObject" member="GetValue">
<Argument valueId="MyArgument"/>
</ObjectLookup>
</In>
ObjectLookup 工作正常,但条件永远不会评估为真,正如我从整个集合执行的结果中看到的那样。
即,如果我将 In ... valueId ... idList 更改为 Equals ... leftId ... rightId,则只留下一个 id 进行检查(例如, Element4) 并进行测试,以便我确定我的值等于Value4,我看到了预期的结果,这证明ObjectLookup 在这里可以正常工作。
所以问题是:
我做错了什么,即为什么在同一个测试中,我知道值等于
Value4,In不会评估为 true?我可以用更简单的方式来做吗?即指定一个常量列表并使用它,而不是一个一个地指定元素然后从中构造列表?
有没有关于 NxBRE 的好文档,所以我不必问这种基本问题?
【问题讨论】:
标签: nxbre