【问题标题】:If-then-else not working well for comparison with 0If-then-else 不能很好地与 0 进行比较
【发布时间】:2014-12-02 07:32:03
【问题描述】:

我写了一条规则,比如

if
    the period of 'Request' is more than 0
then
    set the date of 'Request' to due_date - 1 Day;
else
    set the date of 'Request' to due_date ;

对于 0 以外的周期值,它工作正常,但是当周期值为 0 时,它只是跳过整个规则,即它既不去也不去。 我正在使用 ODM 8.6 并通过 DVS 文件进行测试。

我在 ODM 8.5 中尝试过同样的事情,它在那里工作正常 请帮助解决此问题。

【问题讨论】:

  • then 部分后面的分号是否正确,或者是否过早结束了 if-then 语句?
  • @chiccodoro 是正确的,如果我在 'if' 部分之后放置分号也可能是这种情况,但是对于 0 的情况,无论它是什么都不应该查看 if 部分
  • 我不明白这一点,因为我不太了解 odm/ilog/jrules。但是我的看法是 if 部分是 always 评估的,即使周期为 0。但评估有不同的结果。此外,我猜分号是语法的一部分,而不是表达式的一部分,因此它会在对任何数据进行评估之前很久就影响规则的解析和处理方式。如果“then”部分后面的分号完成了规则,而“else”部分在解析时被忽略,这就解释了为什么在“else”情况下什么都没有发生。
  • @chiccodoro 不是这样,我们得到了 then 的分号被删除的错误。我也应该在这里提到句号是 int 。
  • 我明白了。对不起,我帮不上忙……

标签: ilog jrules


【解决方案1】:

您是否尝试过使用最新的修复包?

一般来说,使用 else 构造的规则设计不佳。尝试将规则拆分为 2 个不同的规则:

  • 对于“请求”的时间段>0,并且
  • “请求”期间

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 2019-07-24
    • 2014-05-10
    • 1970-01-01
    相关资源
    最近更新 更多