【问题标题】:abas-ERP: condition throwing unexpected errorabas-ERP:条件引发意外错误
【发布时间】:2015-10-22 07:21:42
【问题描述】:

我有一个 FO 程序在接近这一行时抛出错误:

.continue ERR1 ? F|defined(M|yhnum) & M|yhnum > 10

错误是

M|yhnum: 未找到

为什么会这样?我认为如果我在访问变量之前检查变量是否已定义就不会发生,但它似乎不起作用

【问题讨论】:

    标签: erp abas


    【解决方案1】:

    这里的问题是,FO 不使用短路评估。这意味着它总是会检查M|yhnum 是否大于 10,即使它没有被定义。显然,如果没有定义,这将失败。

    来自文档:

    这意味着即使从中间结果中已经可以看到最终结果,布尔表达式也将被完全计算。这对于 defined() 来说很重要。

    使用F|condexpr手动实现短路评估

    .continue ERR1 ? F|condexpr(F|defined(M|yhnum), M|yhnum > 10, G|false)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多