我们需要在 FM 启动时清除导出参数吗?

gue*_*tli 2 parameters abap function-module

我找到了这段代码:

FUNCTION /FOO/BAR.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(IV_XYZ) TYPE  STRING
*"  EXPORTING
*"     VALUE(EV_RESULT_JSON) TYPE  STRING
*"----------------------------------------------------------------------



*-- Initialization
  clear ev_result_json.
Run Code Online (Sandbox Code Playgroud)

需要clear ev_result_json吗?

San*_*ssi 5

是还是不是。

,因为它是按值传递的参数 (VALUE(EV_RESULT_JSON)),因此其起始值始终是初始值。

如果它是通过引用传递的,那么答案可能是肯定的,因为它的起始值是传递的参数的值,所以它取决于功能模块的算法。

PS:就我个人而言,在参数按值传递的情况下,我有时更喜欢在处理开始时添加一个CLEAR,以方便调试时用“跳转”按钮重新启动处理;在通过引用传递参数的情况下,我有时会添加一个 CLEAR 来“记录”未使用输入值的事实。

1小时后的附录:因为EXPORTING参数的逻辑不是那么明显,并且因为推荐使用ABAP对象(尽可能),所以最好将功能模块变成带有总是传递RETURNING参数的功能方法按价值划分,因此不会有任何混淆。