0

我在 ilog 工作,我有一个决策表,其中说我有 5 条规则。我有一些输入字段作为条件说名称和年龄(虚拟数据),并有一些与之相关的操作部分。当我将某个条件值为 null 的输入传递时,将调用异常处理程序,在该处理程序中我处理了异常并返回 false。但问题是如果第一行发生异常,那么它应该抛出异常,程序应该直接到达最终操作,但在我的情况下,所有 5 条规则都被执行,我得到 5 个异常值,等于表中的行数。

public boolean handleexception(IRLruntimeexception ex)
{
    errorcode=ex.getmessage();
    return false;
}

我得到 5 次错误代码值,这是不正确的

4

2 回答 2

0

这可能是因为RetePlus 算法在执行动作之前匹配了所有条件

尝试将规则任务的算法更改为顺序。

于 2014-09-23T13:46:33.443 回答
0

为每个规则调用异常处理程序,因为决策表中的每一行实际上是一个独立的规则。将为提供的数据评估每个规则的条件。

您应该像使用任何其他语言进行编程一样进行规则编程,并在将数据传递到规则之前验证数据/检查空值。例如,规则流或初始操作中的第一个任务将检查任何空数据或无效数据。如果数据通过空值检查,则调用规则流中的其他任务。

有关如何将输入数据的空值处理到规则中的其他建议,请参阅文档检查规则中的空值。

于 2015-04-10T01:03:33.253 回答