sap中abaa执行程序 在SAP系统中,ABAP程序主要有两类,一个是报表程序,程序类型为另一个是模块池程序,程序类型为M。这两类程序的执行过程还是有很大的区别的。 模块池程序 模块池程序(Module pool programs),也可以叫用户对话程序。在此类程序中,最重要的概念是屏幕(Screen),所有的操作基本上都是围绕屏幕的PBO和PAI进行的。 此类程序有个最大的特点就是只能通过事务代码执行(T-code),程序执行的过程从表象上看就是一系列屏幕切换的过程,详细的程序执行过程如下: 当执行模块池程序时: 首先触发LOAD-OF-PROGRAM事件,由ABAP处理器(ABAP Processor)完成。此事件结束后,ABAP处理器将控制交给屏幕处理器(Screen Processor)。 屏幕处理器初始化由T-code指定的初始屏幕(The initial screen)。先触发PBO事件,屏幕处理器将控制交还给ABAP处理器来执行相应的PBO模块。在处理PBO模块时,主要是对定义在其中的ABAP程序字段(ABAP Fields)进行操作,处理完的ABAP程序字段的值会传送给相应的屏幕字段(Screen fields),然后输出屏幕。PBO事件结束。 屏幕输出后,由屏幕处理器进行控制,等待着用户在屏幕上进行输入,输入结束后(一般以按下Enter键作为标志),屏幕处理器触发PAI事件并将用户输入到屏幕字段的值传给相应的ABAP程序字段。由ABAP处理器接管控制,执行相应的PAI模块。 报表程序 报表程序类型为1,也是SAP系统中最为常见和重要的程序类型。它有两个特点:1)报表程序的事件是按照系统预定义好的顺序来触发并执行的,程序员不能更改,只能编写每个特定事件块中的操作。2)通常报表程序都包括选择屏幕。此外,在此提一点,报表程序可以通过Job在后台执行。详细的执行过程如下: 同模块池程序一样,首先触发LOAD-OF-PROGRAM事件 触发INITIALIZATION事件 触发START-OF-SELECTION事件。这是选择屏幕中的最主要的事件,有点像Java程序中的public static void main()。 如果存在逻辑数据库,则调用GET node和GET node LATE事件。 最后触发END-OF-SELECTION事件 本文来源:https://www.wddqw.com/doc/19f6153701020740be1e650e52ea551811a6c95b.html