1、程序类型
(1)可执行程序 (程序类型为 1)
可执行程序的特点是可以直接执行,而无需事务码,这个也是一般报表开发最常用的程序类型。可执行程序包含一些预定义的过程块,比如INITIALIZATION、AT SELECTION-SCREEN、START-OF-SELECTION、END-OF-SELECTION 等等,有一个后台系统程序会控制可执行程序,按照规定的顺序依次调用这些过程块。首先显示一个选择屏幕,最后输出一个列表。
(2)为屏幕绘制器画出的屏幕所用的模块池 (程序类型为 M)
模块池包含了来自业务的屏幕模块的处理步骤,它只能通过事务码或者菜单功能调用。
(3)包含程序 (程序类型为 I)
包含了不能独立运行的程序代码,它的作用主要是让程序变得清晰和可以被重用,在其他程序里,用INCLUDE 语句可以把一个包含程序加到程序里。最终的效果相当于用被包含的程序里的全部内容替换调INCLUDE 语句。
(4)子程序 (程序类型为 S)
这种类型的程序里只包含被外部 PERFORM 语句调用的程序块。也就是说,只包含形如FORM … ENDFORM 块的程序代码,从外部程序里,用 PERFORM IN PROGRAM[IF FOUND]. 来调用。
(5)函数组 (程序类型为 F)
这类程序包含了函数模块。函数组和函数模块用函数制作器进行管理,事务码 SE37。在创建函数组和函数模块时,函数制作器把程序类型设置为F。
包含了接口。类和接口池 (程序类型为J)
接口都在类制作器中管理,事务码 SE24。
(6)类池 (程序类型为 K)
包含了类。类和接口都在类制作器中管理,事务码 SE24。
2、数据类型和数据对象
(1)形式上的变量描述叫做数据类型,由数据类型具体定义的变量叫做数据对象。
(2)数据类型
标准数据类型(预定义数据类型)、本地数据类型、全局数据类型
(3)定义数据类型用关键字TYPES
(4)定义数据对象用关键字DATA
2.1 数据类型——预定义类型
它是SAP内置的基本数据类型,所有其他数据元素和域都是由这些基本数据类型组合而成的。它可以分为完整的和非完整的。
完整的数据类型指它包含了与类型相关的固定长度的信息
D :日期类型,格式为YYYYMMDD,长度为8
T :时间类型,格式为HHMMSS,长度为6
I :整数类型,长度为4字节
F :浮点类型,长度为8
STRING:变长字符串类型
XSTRING:变长字节序列类型
非完整的数据类型指它所对应的变量长度是在数据对象定义时指定的。
C :字符串类型,定义变量时指定字符个数
N :数字字符串类型,定义变量时指定数值字符个数
X :字节序列类型,定义变量时指定字节数
P :组合数值类型,定义变量时指定长度和小书点后位数
2.2 数据类型——本地数据类型
可以使用这些基本类型来定义更完整和更复杂的本地数据类型,但是它们只能作为当前程序的增强,这些定义可以用TYPES 语句来实现。
2.3 数据类型——全局数据类型
在ABAP字典中定义的类型,可以在整个SAP 系统中使用。
2.4 数据对象——变量
通常用DATA 语句来定义数据对象
数据对象的类型可以是基本类型、本地类型或全局类型
实际开发中更多的是参考现有的数据对象(LIKE)。
DATA myvar2LIKE myvar1.
可以使用VALUE 关键字来指定数据对象的初始值
DATA number1 TYPE iVALUE 17.
LENGTH 关键字也是指定变量长度
DATA number2 TYPE c LENGTH 8.
DATA number2(8) TYPE C.
如果DATA 语句没有指定TYPE ,则默认用C 类型
DATA myvar. 定义一个长度为1 个字符的C 类型变量。
如果非完整类型没有指定长度,则使用默认长度
DATA myvarTYPE n. 定义一个长度为1的数字串类型变量。
2.5 数据对象——固定数据对象
固定数据对象有一个固定值,在运行时不能改变。文字和常数都属于固定数据对象
文字是在程序里面写的固定值,可以分为数值文字(不使用单引号)和字符文字(用单引号括起来)。
数值文字:123、-123
字符文字:’Hello’、’123.45’、’123.45E03’
可以使用CONSTANTS 语句来定义常数,TYPE 的指 定方法跟基本数据对象一致,而VALUE 则是必须的,用来赋值。
CONSTANTS myc TYPE tname VALUE { 文字| IS INITIAL }
如果可能的话,尽量减少使用文字,而多用常数,这样可以给程序维护带来很大的便利。