ABAP方法参数位置使用DATA()内联声明报错该如何解决?
报错原因
- ABAP 语法对方法调用
CHANGING参数位置的内联声明有明确限制:仅当对应CHANGING参数为**按引用传递(定义时无VALUE修饰符)**且未设置默认初始值时,才允许直接使用DATA(...)做内联声明。 - 你调用的
cl_gui_frontend_services=>get_desktop_directory方法的desktop_directory参数为传值类型的CHANGING参数,不符合内联声明的使用条件,因此触发语法错误。
可行解决方法
方法1:提前显式声明变量(全版本兼容)
提前定义好和参数类型匹配的变量,再传入CHANGING参数即可,适配所有支持该类的ABAP版本:
DATA: lv_desktop TYPE string. CALL METHOD cl_gui_frontend_services=>get_desktop_directory CHANGING desktop_directory = lv_desktop.
方法2:使用函数式调用语法(ABAP 7.40及以上版本支持)
如果你的系统ABAP版本在7.40及以上,可以直接用函数式调用写法,直接给内联声明的变量赋值,代码更简洁:
DATA(lv_desktop) = cl_gui_frontend_services=>get_desktop_directory( ).
内容的提问来源于stack exchange,提问作者covenant
相关产品推荐
相关产品推荐

