ABAP 功能模块及其介绍

举报
雨绸缪 发表于 2023/05/30 17:55:27 2023/05/30
【摘要】 功能模块是封装程序代码并提供数据交换接口的 ABAP 例程。功能模块存储在中央功能库中。它们不是特定于应用程序的,并且在系统范围内可用。 ABAP Workbench 自带大量标准功能模块。 特点功能模块的主要特点是:它们属于称为功能组的池。它们具有用于数据交换的固定接口。这使您可以更轻松地将输入和输出参数传入和传出功能模块。例如,您可以为输入参数分配默认值。该接口还支持异常处理。这允许您捕...

image.png

功能模块是封装程序代码并提供数据交换接口的 ABAP 例程。功能模块存储在中央功能库中。它们不是特定于应用程序的,并且在系统范围内可用。 ABAP Workbench 自带大量标准功能模块。

特点

功能模块的主要特点是:

  • 它们属于称为功能组的池。
  • 它们具有用于数据交换的固定接口。这使您可以更轻松地将输入和输出参数传入和传出功能模块。例如,您可以为输入参数分配默认值。该接口还支持异常处理。这允许您捕获错误并将它们传递回调用程序进行处理。
  • CALL FUNCTION 语句中按名称(必须是唯一的)调用功能模块。

功能组

函数组(也称为函数池)是一种特殊类型的 ABAP 程序。它们是唯一可以包含功能模块的程序类型。反过来,功能模块是具有公共接口的过程,旨在供其他程序使用。功能组可以包含可用于组中所有功能模块的全局数据声明和子例程。在面向对象编程中,一个函数组类似于一个类,函数模块就是它的公共静态方法。就像可执行程序和模块池一样,功能组也可以包含动态程序作为它们的组件,这在类池中是不可能的。出于这个原因,如果你想使用经典的 dynpros,你需要使用功能组。下图说明了功能组内功能模块的组织:

loio9e73352bffab49bd8c89602d4295eb7a_LowRes.png

对于每个功能组 ,系统都会生成一个名为 SAPL<fgrp> 的主程序。主程序包含以下程序的 INCLUDE 语句:

  • L<fgrp> TOP : 第一个包含程序;包含功能组的全局数据。
  • L<fgrp> Uxx: 这些包括包含功能模块。编号 xx 表示创建功能模块的顺序。例如,L<fgrp> U01L<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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。