ABAP程序的源代码结构主要包括数据定义和处理块两部分
1)数据定义:整个程序中可见的全局数据类型和数据对象、选择屏幕元素以及ABAP Object中自定义的类和接口。
2)处理块(Processing Blocks):是ABAP的主要哦结构单元,定义程序在不同状态下执行的具体功能,在编译运行中,每一块都是一个独立的实体。数据(包括选择屏幕元素)定义和声明语句是独立于任何处理块的,其他的所有语句都必须隶属于某个处理块。
1、ABAP程序包含3种类型的处理块
(1)事件块(Event Blocks):每一个事件都需要有一个时间关键字引导,并单独构成一个语句,其后续语句隶属于该关键字代表的时间块,直到下一个关键字出现为止,包括报表事件、列表事件、屏幕事件等。
1)初始化:INITIALIATION
2)数据选择开始:START-OF-SELECTION
3)列表行选择:ATLINE-SELECTION
4)屏幕输出前处理:PROCESS BEFORE OUTPUT
5)屏幕输入后处理:PORCESS AFTER INPUT
(2)对话模块(Dialog Modules):开始和结束都有相关的关键字作为标志,是相对独立的程序单元。
(3)过程(Procedures):代码部分的开始和结束都有相关的关键字,也是相对独立的程序单元。过程包括功能模块和子程序,以及对象中类方法。可以被其他的模块调用,实现程序模块化和代码复用。
2、处理块调用
处理块是程序代码模块,也是远行期间的单元,其具体出现的顺序与其在程序代码中的先后顺序无关。
3、事件驱动
在各种处理块中,系统对事件块的调用过程有其特殊性:其调用总是与某件事地发生相关,也成为事件的触发。
4、处理块与工作过程
通过调度机(Dispatcher)把应用程序的各个代码模块分解成许多对话步骤,并通过工作过程(Work Processes,是系统的软件元素)在系统的应用层的虚拟机上进行处理,这保证了ABAP程序运行时的系统硬件平台无关性。