在上个论题我已经讲叙关于SAP的Control Framework的事件注册,这里再讲解一下系统事件SAP的ABAP应用服务器是采用何种机制处理的。(
http://blog.youkuaiyun.com/CompassButton/archive/2009/08/04/4407993.aspx
)
SAP ABAP的任何一个屏幕交互都会在屏幕PAI开始执行前隐式调用调用SAPMSSYD的Module:%_ctl_input。
处理步骤如下:
1)在%_ctl_input中根据OK_CODE判断是否是Control Framework的事件,如果是,则调用的sapfguicntl单元的control_dispatch子过程
*==> Dispatch Control Event (%_GC) or Shell Event (%_GS)
elseif my_ucomm(4) = '%_GC' or my_ucomm(4) = '%_GS'.
call 'DYNP_GET_SUBSCREEN'. "Only Once: On Mainscreen
if sy-subrc = 2.
perform control_dispatch(sapfguicntl)
using my_ucomm
if found. .
endif.
2)在control_dispatch中将调用sapfguicntl_cfw单元的control_dispatch子过程
*===

本文详细介绍了SAP ABAP中Control Framework的系统事件处理机制,从%_ctl_input模块的调用开始,经过control_dispatch过程,最终到cl_gui_cfw类的DISPATCH_SYSTEM_EVENTS方法,阐述了系统事件在PAI执行前如何处理,并强调了在事件处理中无法访问用户输入值的特点。
最低0.47元/天 解锁文章
613

被折叠的 条评论
为什么被折叠?



