下面的代码给出了这个错误:
内联声明“DATA(LV_DESKTOP)”在此位置不可能。
CALL METHOD cl_gui_frontend_services=>get_desktop_directory
CHANGING
desktop_directory = data(lv_desktop). "Declaring in method
Run Code Online (Sandbox Code Playgroud)
您不能在方法调用CHANGING和类型参数中使用内联声明。EXPORTING
ABAP 文档没有明确说明,但明确提到内联声明可用于类型IMPORTING和的参数RECEIVING,但有一些限制,但没有提及其他两种类型。
带有方法调用的可能内联声明的示例:
cl_gui_frontend_services=>FILE_GET_ATTRIBUTES
EXPORTING
filename = `C:\test.txt`
IMPORTING
readonly = DATA(readonly) ).
cl_ixml=>create(
RECEIVING
rval = DATA(ixml) ).
Run Code Online (Sandbox Code Playgroud)
关于EXPORTING或CHANGING,您必须处理旧的声明。例子:
DATA lv_desktop TYPE string.
cl_gui_frontend_services=>get_desktop_directory(
CHANGING
desktop_directory = lv_desktop ).
Run Code Online (Sandbox Code Playgroud)