因为工作需要,最近要开始学习ABAP编程,写几则笔记记录一下。
ABAP程序的源代码结构包括数据定义和处理块两个部分。
数据定义即整个程序可见的全局数据类型和数据对象、选择屏幕元素以及ABAP Objects中自定义的类和接口。
处理块定义了程序在不同状态下执行的具体功能,在程序编译运行中,每个块都是独立的实体。数据定义和声明语句是独立于处理块的,其他所有语句则都必须隶属于某个处理块。
其中处理块含有三种类型:
1.事件块(Event Blocks)。每个事件块都需要有一个事件关键字引导,这些事件关键字单独构成一个语句,其后续语句隶属于该关键字代表的事件块,直到下一个事件关键字出现(或整个程序代码结束)为止,该事件块自动结束,因此没有显式的事件块结束关键字。
2.对话模块(Dialog Modules)。这种处理块代码部分的开始和结束都有相关的关键字作为标志,是相对独立的程序单元。对话模块往往用于用户对话程序(事务)设计中,从属于对话事件(即屏幕的PBO、PAI等事件),在对话事件块内部被调用。
3.过程(Procedures)。代码部分的开始和结束也都有相关的关键字作为标志,是相对独立的程序单元。过程则包括功能模块和子程序,以及ABAP对象中的类方法,可以被其他模块调用,以实现程序模块化和代码复用,类似于其他语言的函数。
注:这些处理块中,过程可以拥有自己的局部数据,其他两种处理块中定义的数据则为全局数据定义,不属于相关处理块的内部代码。
该程序中包含两个事件块和一个过程,即同时包含内部和外部两种事件块地调用。
参考书籍:SAP程序设计 黄佳