跟踪调试代码执行的过程
-------------------------------------------------------------------------程序中的事件代码
INITIALIZATION(ZTEST4)
==============
system-exit
==============
INIT_%_INIT(RSDBRUNT)
%_INIT-GET(ZTEST4)
%_INIT_GET_EVENTS(SAPDB__S)
%_INIT_DYN_NODES(ZTEST4)
%_CTL_INIT(ZTEST4-><SYSINI>:MODULE (PBO))
%_CTL_INIT(SAPMSSYD)
SYSTEM-CALL KERNEL_INFO 'CONTROL_IMODE_OO' l_imode_controls.
%_INIT_PBO(ZTEST4:MODULE (PBO))
%_INIT_PBO_NEW(ZTEST4)
INIT_PBO(RSDBRUNT)
%_INIT_PBO_FIRST
*由SYSTEM-CALL INITIALIZATION.触发调用
-------------------------------------------------------------------------程序中的事件代码
INITIALIZATION(ZTEST4)
PHASE = 3.
*当再次出现选择屏幕时会调用下面的子过程从内存中读取选择屏幕变量,这就是造成赋值不起作用的原因
%_IMPORT_VAR_FROM_MEM (ZTEST4)
%_INIT_PBO_LAST.
*设置菜单功能代码
%_PBO_REPORT(ZTEST4:MODULE (PBO))
-------------------------------------------------------------------------程序中的事件代码
AT SELECTION-SCREEN OUTPUT(ZTEST4)
%_PF_STATUS(ZTEST4-><REPINI>:MODULE (PBO))
SET_PF_STATUS(RSDBRUNT)
%_S_CARRID(ZTEST4:MODULE (PBO))
%_SHOW_TAB(RSDBRUNT)
==============
system-exit
==============
%_END_OF_PBO(ZTEST4-><REPINI>:MODULE (PBO))
%_END_OF_PBO(RSDBRUNT)
==============
system-exit
==============
%_CTL_OUTPUT(ZTEST4-><REPINI>:MODULE (PBO))
%_ctl_output(SAPMSSYD)
*Display selection screen
==============
system-exit
==============
%_CTL_INPUT(ZTEST4-><REPINI>:MODULE (PAI))
%_CTL_INPUT(RSDBRUNT) "值得研究
DIAG_XML_HANDLING(SAPMSSYD)
HANDLE_DIAG_INPUT_DATA(SAPFGUICNTL)
==============
system-exit
==============
%_init_pai(ZTEST4-><REPINI>:MODULE (PAI))
%_INIT_PAI(RSDBRUNT) "值得研究
%_S_CARRID(ZTEST4:MODULE (PAI))
%_UPD_TAB_PART_1(RSDBRUNT)
==============
system-exit
==============
%_END_OF_SCREEN(ZTEST4:MODULE (PAI))
END_OF_BLOCK(RSDBRUNT)
PAI(ZTEST4->SAPDB__S)
-------------------------------------------------------------------------程序中的事件代码
AT SELECTION-SCREEN(ZTEST4:EVENT)
==============
system-exit
==============
%_OK_CODE_1000(ZTEST4-><REPINI>:MODULE (PAI))
%_OK_CODE_1000(RSDBRUNT)
%_START_REPORT(RSDBRUNT)
system-call set_kernel_info 'LIST_TO_MEMORY' submit_info-list_2_mem.
*会将选择的用户输入数据缓存到内存中( EXPORT_VAR_2_MEM)
PHASE = 99.
SET SCREEN 0. LEAVE SCREEN.屏幕离开
++++++++++++++++++++++++++++++++++++++++++++++++++++++
%_CTL_OUTPUT(SAPMSSY0-><SYSINI>: MODULE (PBO))
%_ctl_output(SAPMSSYD)
*CALL FUNCTION 'AC_SYSTEM_FLUSH'
%_CTL_INPUT(SAPMSSY0-><SYSINI>: MODULE (PAI))
%_CTL_INPUT(SAPMSSYD)
-------------------------------------------------------------------------程序中的事件代码
START-OF-SELECTION(ZTEST4)
==============
system-exit
==============
%_ROOT(SAPDB__S)
==============
system-exit
==============
NEW-LINE(SAPMSSY0)
-------------------------------------------------------------------------程序中的事件代码
END-OF-SELECTION(ZTEST4)
*twice called
%_CTL_INIT(SAPMSSY0-><SYSINI>: MODULE (PBO))
%_CTL_INIT(SAPMSSYD)
%_CTL_INIT(SAPMSSY0-><SYSINI>: MODULE (PBO))
%_CTL_INIT(SAPMSSYD)
++++++++++++++++++++++++++++++++++++
有LIST输出 START
%_CTL_OUTPUT(SAPMSSY0-><SYSINI>: MODULE (PBO))
%_ctl_output(SAPMSSYD)
***************输出list
%_CTL_INPUT(SAPMSSY0-><SYSINI>: MODULE (PAI))
%_CTL_INPUT(SAPMSSYD)
LIST_COMMAND(SAPMSSY0: MODULE (PAI))
PRINT_START(SAPMSSY0: MODULE (PAI))
有LIST输出 END
++++++++++++++++++++++++++++++++++++
==============
system-exit
==============
%_LIST_RETURN(SAPMSSY0)
%_RETURN_TO_SELSCREEN(RSDBRUNT)
IF MEMKEY-REPORT NE SPACE.
SUBMIT (MEMKEY-REPORT) VIA SELECTION-SCREEN
%_INTERNAL_%_SUBMODE_% MEMKEY-INT_MODE
USING SELECTION-SCREEN SUBMIT_SCREEN
USING SELECTION-SET MEMKEY-VARIANT.
ENDIF.
%_CTL_INIT(SAPMSSY0-><SYSINI>: MODULE (PBO))
%_CTL_INIT(SAPMSSYD)
==============
system-exit
==============
SYSTEM-EXIT(返回到第一行)