abas-ERP:条件抛出意外错误

时间:2015-10-22 07:21:43

标签: erp abas

我有一个FO程序,当它接近这一行时会抛出错误:

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

错误是

  

M | yhnum:未找到

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

1 个答案:

答案 0 :(得分:2)

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

来自文档:

  

这意味着即使从中间结果中已经可以看到最终结果,也将完全评估布尔表达式。这与defined()。

有关

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

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