DATA lv_user_name TYPE string.
CALL METHOD cl_gui_frontend_services=>get_user_name
CHANGING
user_name = lv_user_name
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
WRITE lv_user_name. "此处发现取不到用户名,需要加CALL METHOD cl_gui_cfw=>flush后才可以取到用户名
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2
OTHERS = 3.
WRITE lv_user_name. "此处可以取到用户名了。
*---总结:
*注意:在执行CL_GUI_FRONTEND_SERVICES的一些方法后,比如GET****,注册表操作...等,要加一个CALL METHOD CL_GUI_CFW=>FLUSH .
常用GET***方法:SCET/CL_GUI_FRONTEND_SERVICES