ABAP 功能模块及其介绍
【摘要】 功能模块是封装程序代码并提供数据交换接口的 ABAP 例程。功能模块存储在中央功能库中。它们不是特定于应用程序的,并且在系统范围内可用。 ABAP Workbench 自带大量标准功能模块。 特点功能模块的主要特点是:它们属于称为功能组的池。它们具有用于数据交换的固定接口。这使您可以更轻松地将输入和输出参数传入和传出功能模块。例如,您可以为输入参数分配默认值。该接口还支持异常处理。这允许您捕...
功能模块是封装程序代码并提供数据交换接口的 ABAP 例程。功能模块存储在中央功能库中。它们不是特定于应用程序的,并且在系统范围内可用。 ABAP Workbench 自带大量标准功能模块。
特点
功能模块的主要特点是:
- 它们属于称为功能组的池。
- 它们具有用于数据交换的固定接口。这使您可以更轻松地将输入和输出参数传入和传出功能模块。例如,您可以为输入参数分配默认值。该接口还支持异常处理。这允许您捕获错误并将它们传递回调用程序进行处理。
- 在
CALL FUNCTION
语句中按名称(必须是唯一的)调用功能模块。
功能组
函数组(也称为函数池)是一种特殊类型的 ABAP 程序。它们是唯一可以包含功能模块的程序类型。反过来,功能模块是具有公共接口的过程,旨在供其他程序使用。功能组可以包含可用于组中所有功能模块的全局数据声明和子例程。在面向对象编程中,一个函数组类似于一个类,函数模块就是它的公共静态方法。就像可执行程序和模块池一样,功能组也可以包含动态程序作为它们的组件,这在类池中是不可能的。出于这个原因,如果你想使用经典的 dynpros,你需要使用功能组。下图说明了功能组内功能模块的组织:
对于每个功能组 ,系统都会生成一个名为 SAPL<fgrp>
的主程序。主程序包含以下程序的 INCLUDE 语句:
L<fgrp> TOP
: 第一个包含程序;包含功能组的全局数据。L<fgrp> Uxx
: 这些包括包含功能模块。编号xx
表示创建功能模块的顺序。例如,L<fgrp> U01
和L<fgrp> U02
包含功能组中的前两个功能模块。L<fgrp> F01
,L<fgrp> F02... L<fgrp> Fxx
: 可以使用这些include
编写子程序(窗体),可以被组内所有功能模块作为内部窗体调用。
注意:这些包含程序由 Function Builder 生成,不得更改。
includes
的命名约定如下(xx
表示两位数):
- 后缀
Exx
:方法和类的实现 - 后缀
Oxx
:PBO 模块的实现 - 后缀
Ixx
:PAI 模块的实现 - 后缀
Exx
: 事件块的实现 - 猴嘴
Fxx
: 本地例程的实现
在 top
include 文件中,可以为局部类的声明部分添加后缀为 Dxx
的 include 程序。
创建功能模块
您只能使用 ABAP Workbench 中的 Function Builder 创建功能模块和功能组。有关详细信息,请参阅创建新功能模块。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)