ABAP程序类型分为如下几种:
一、可执行程序 (stand-along program类型为 1,在 SAP 标准教程里面经常会提到 type 1 program,就是指这个意思,以后都是这样,不重复说明了。)
可执行程序的特点是可以直接执行,而无需事务码,这个也是一般报表开发最常用的程序类型。我们可以在 SE38 中直接点击执行按钮或按 F8 键来运行一个可执行程序。
可执行程序包含一些预定义的过程块,比如 INITIALIZATION、AT SELECTION-SCREEN、START-OF-SELECTION、END-OF-SELECTION 等等,
有一个后台系统程序会控制可执行程序,按照规定的顺序依次调用这些过程块。首先显示一个选择屏幕,最后输出一个列表。
可执行程序还能指定一个逻辑数据库,逻辑数据库也是一种程序,它按照预定义好的数据库表结构,依次根据主键读取相关的业务数据,可以用 SE36 查看逻辑数据库。
二、为屏幕绘制器画出的屏幕所用的模块池 (module pool程序类型为 M)
模块池包含了来自业务的屏幕模块的处理步骤,它只能通过事务码或者菜单功能调用。
三、包含程序 (include program程序类型为 I)
包含了不能独立运行的程序代码,也就是说,无论你是在 SE38 里用执行功能还是通过事务码或菜单调用,都无法打开一个包含程序。
它们的作用主要是让程序变得清晰和可以被重用,在其他程序里,用 INCLUDE 语句可以把一个包含程序加到程序里。
最终的效果相当于用被包含的程序里的全部内容替换调 INCLUDE 语句。
四、子程序 (subroutine pool程序类型为 S)
这种类型的程序里只包含被外部 PERFORM 语句调用的程序块。也就是说,只包含形如
FORM ... ENDFORM 块的程序代码,从外部程序里,用 PERFORM IN PROGRAM [IF FOUND]. 来调用。
五、函数组 (function group程序类型为 F)
这类程序包含了函数模块。函数组和函数模块用函数制作器进行管理,事务码 SE37。
在创建函数组和函数模块时,函数制作器把程序类型设置为 F。
六、接口池 (interface definitions程序类型为 J) 包含了接口。
类和接口都在类制作器中管理,事务码 SE24。
七、 类池 (class definitions程序类型为 K)
包含了类。类和接口都在类制作器中管理,事务码 SE24。