hhhhhh.

ABAP程序开始语句(Introductory Statements),程序类型(一)

ABAP Introductory语句,由于没找到合适的翻译术语,我们姑且把它叫做ABAP开始语句,源码中所有的语句都是在开始语句之后的(有一个例外就是INCLUDE语句,它是可以被允许出现在第一个位置),并且每个程序只能包含一个这样的语句,不同类型的程序对应的是不同的开始语句,当然它们也决定了ABAP程序中声明和处理块可以包含什么以及他们在ABAP运行时环境被怎么执行。

下表包含ABAP中各独立编译单元对应的系统中程序类型(创建程序时,程序属性可以看到):

编译单元 程序类型 执行 开始语句 全局声明 处理块
可执行程序 可执行程序(1)

SUBMIT语句或者通过使用事务码调用的dynpro或者选择屏幕,

可以直接执行,或者后台执行

REPORT 本地接口和类,所有其他声明性语句 除了函数模块
类池 类型池(K)

包含类,类制作器设置

使用事务码或者通过CALL METHOD调用可见方法

CLASS-POOL 类库的一个全局类,本地接口和类,TYPES和CONSTANTS语句 只有方法
函数组或者函数池 功能组(F)

函数组,由函数编辑器设置,

使用CALL FUNCTION调用一个函数模块或者使用事务码调用的一个dynpro

FUNCTION-POOL 本地接口和类,所有其他声明性语句 除了报表事件的事件块
接口池 接口池(J) 包含接口,类制作器设置 INTERFACE-POOL 类库的全局接口

模块池

模块池(M)

使用事务码调用一个dynpro

通过屏幕编辑器创建的模块池程序,可以使用事务码或者菜单功能执行

PROGRAM 本地接口和类,其他声明性语句。 除了报表的事件块和函数模块
子例程池 子例程(S) 程序FORM的部分,外部使用PERFORM调用 PROGRAM 本地接口和类,其他声明性语句。 事件块LAOD-OF-PROGRAM,子例程,方法
类型组或者类型池    / TYPE-POOL TYPES和CONSTANTS语句
  包含(I)        

说明:上图中标红的不能在程序属性中修改。

对于上图来说,有两个特殊的:

    (1)创建程序的时候还包含一种类型的程序:包含(I),包含程序是被用在编译单元的上下文,所以不反映在上图中。

    (2)类型池:从逻辑上来说它是独立的程序,但是他们不含可以执行的代码,只有类型和常量的定义,所以作为一个编译单元他们有自己的开始语句。

 

posted @ 2022-03-25 18:08  iceyou  阅读(179)  评论(0)    收藏  举报