【发布时间】:2014-07-22 18:43:26
【问题描述】:
我有一个关于将函数和表达式作为实际参数传递给函数模块的问题。
为了学习目的,我运行了一个函数模块,其中传递了简单的算术表达式(减号)。有一个错误“在'-'之后等待'=...'”。该功能模块有一个类型为 n 的按值传递输入参数。但是在这篇文章中link 说这是可能的。也许我有旧版本的 ABAP?
例如创建函数 ZOUT,它在屏幕上写入其导入参数
FUNCTION ZOUT.
*"-----------------------------------------------------------------
*" IMPORTING
*" VALUE(SOMENUM) TYPE N
*"----------------------------------------------------------------------
WRITE: / somenum.
ENDFUNCTION.
来自一些报告电话:
CALL FUNCTION 'ZOUT'
EXPORTING
somenum = ( ld_a - ld_b ).
其中ld_a 和ld_b 是局部变量。
ABAP 版本 - 702。
【问题讨论】:
-
你有什么版本?为什么要链接到第 3 方副本而不是原始文档?
-
@IvanRyazanov 好的,现在我明白了。您的系统很可能是较旧的系统。在我的情况下,
SAP_ABA组件是版本 711,级别 0009,SP SAPKA71109。在我工作的系统中,编译这样的表达式是没有问题的。 -
@IvanRyazanov 您能否尝试将表达式传递给方法参数而不是函数模块,看看它是否适合您?
-
@Jagger,它有相同的结果,但返回消息看起来更有效:““参数“Somenum”不能传递算术计算的结果”
-
@IvanRyazanov 试试这个 SAP 文档的part 中的示例。我想在你的情况下,只能将表达式传递给所谓的函数方法(换句话说,调用而不使用 CALL METHOD)。
标签: abap