SAP ABAP程序中这些程序类型都有什么区别呢?谢谢啦。

SAP ABAP程序中这些程序类型都有什么区别呢?谢谢啦。,第1张

可执行程序 (程序类型为 1,在 SAP 标准教程里面经常会提到 type 1 program,就是指这个意思,以后都是这样,不重复说明了。)

可执行程序的特点是可以直接执行,而无需事务码,这个也是一般报表开发最常用的程序类型。我们可以在 SE38 中直接点击执行按钮或按 F8 键来运行一个可执行程序。

可执行程序包含一些预定义的过程块,比如 INITIALIZATION、AT SELECTION-SCREEN、START-OF-SELECTION、END-OF-SELECTION 等等,有一个后台系统程序会控制可执行程序,按照规定的顺序依次调用这些过程块。首先显示一个选择屏幕,最后输出一个列表。可执行程序还能指定一个逻辑数据库,逻辑数据库也是一种程序,悔尘毕它按照预定义好的数据库表结构,依次根据主键读取相关的业务数据,可以用 SE36 查看逻辑数据库。

为屏幕绘制器画出的屏幕所用的模块池 (程序类型为 M)

模块池包含了来自业务的屏幕模块的处理步骤,它只能通过事务码或者菜单功能调用。

包含程序 (程序类型为 I)

包含了不能独立运行的程序代码,也就是说,无论你是在 SE38 里用执行功兄团能还是通过事碧芹务码或菜单调用,都无法打开一个包含程序。它们的作用主要是让程序变得清晰和可以被重用,在其他程序里,用 INCLUDE 语句可以把一个包含程序加到程序里。最终的效果相当于用被包含的程序里的全部内容替换调 INCLUDE 语句。

子程序 (程序类型为 S)

这种类型的程序里只包含被外部 PERFORM 语句调用的程序块。也就是说,只包含形如 FORM ... ENDFORM 块的程序代码,从外部程序里,用 PERFORM IN PROGRAM [IF FOUND]. 来调用。

函数组 (程序类型为 F)

这类程序包含了函数模块。函数组和函数模块用函数制作器进行管理,事务码 SE37。在创建函数组和函数模块时,函数制作器把程序类型设置为 F。

接口池 (程序类型为 J)

包含了接口。类和接口都在类制作器中管理,事务码 SE24。

类池 (程序类型为 K)

包含了类。类和接口都在类制作器中管理,事务码 SE24。

数据类型的作用:用来定义数据变量。

ABAP按照定义的方式

1.预定义数据类型:SAP中预定义的类型

关于预定义数据类型:

数字类型:

I(整数类型) 默认初始值是0(4Byte)

P(小数类型)默认初始值是0  在定义数据类型P时,需要指定小数位数。(8byte)(可变长度为1-16byte)

P类型1字节前两位由数字构成,后面几位是符号位。

如:DATA test TYPE P LENGTH 10 DECIMALS  3.

        这里定义了一个p型变量test 长度是10,小数位数是3.

字符类型:

C(char/文本类型) 默认初始值为空(1byte)

D(日期类型) 格式为:YYYYMMDD  默认初始值是'00000000'.(8byte)sy-datum(存储当天日期的变量)

T(时间类型) 格式为: HHMMSS 默认初始值是‘000000’(6byte)sy-uzeit(存储现在时刻的变量)

字符串类型:STRING 默认长度为0,有效长度为任意长度,默认值为空字符串。

                         这表示定义STRING类型变量不需要指定长度

在定义预定义数据类型时,我们知道所有数据类型都具有初始值,那么使用VALUE选项就可以设置初始值

如果使用VALUE IS INITAL语句,则变量使用默认初始值。(省略此语句,结果相同)

这里就知道了预定义数据类型可以分为:1.预定义可变长度数据类型

                                           改卖燃                       2.预定义固定长度数据类型

在定义预定义数据类型的变量时,D,F,I不用指定长度,而C,N,X需要指定其长度,其中类型P

还需要指定小数位数。(DECIMALS).

2.全局数据类型(数据字典类型):SE11里定义的数据类型, 所有程序都可以使用的数据类型 。

全局数据类型顾名思义就是所有程序都可以使用的数据类型。

3.局部数据类型(用户自定义的数据类型):用户程序中 使用TYPES关键字来自定义的数据类型核虚

如:TYPES ty_var_c10 TYPE c LENGTH 10. "这里就定义了一种长度为10的字符类型ty_var_c10

DATA,TYPES,和TYPE 的区别

DATA 是用来直接声明实际的变量,可以指定变量类型是 预定义类型或自定义类型

DATE c1 TYPE c LENGHT 10.

TYPES是用来定义局部数据类型的,定义的是类型而不是变量

TYPES ty_var_c10 TYPE c LENGTH 10.

这里的ty_var_c10 就时用户自定义的数据类型。

TYPE是用来指定类型的,当TYPE和DATA关键字一起使用时,则是用于定义变量的类型;

当TYPE和TYEPES关键字一起使用时配简,就是用于定义自定义类型。

LINK(用来定义数据变量的类型)

DATA: gv_num3  LINK gv_num1. 这里LINK的作用就是定义变量gv_num3且它的数据类型为gv_num1.

按结构区分的数据类型

基本数据类型:固定长度数据类型

                          可变长度数据类型

参考数据类型:数据参考类型

                          对象参考类型

复杂数据类型:结构类型

                          表类型

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程序运行时的系统硬件平台无关性。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12529561.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存