打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ABAP程序的功能模块应用及开发步骤
userphoto

2023.05.21 广东

关注

SAPSAPSAPSAP

基本概念介绍

SAP的功能模块是存储在中央库内的特殊外部子程序,是SAP/ERP系统实现代码重用一种技术之一,功能模块可以避免重复编写相同的语句,同时也增强了ABAP程序的可读性和可理解性,它是SAP系统最为常用的系统复用组件之一。

功能模块(函数模块)被组织在函数组中,函数组就是完成相似功能或处理同类数据的功能模块的集合函数组,它是功能模块的容器,一个函数组中的所有功能模块都可以访问该组的全局数据(具体组织结构如下图所示)


创建功能模块步骤

1.创建函数组

2.创建功能模块(函数模块)

  • 定义接口参数和异常

  • 编写源代码

  • 激活功能模块

3.测试功能模块

下面通过一个简单的例子来介绍下功能模块的应用及开发步骤

例子:创建一个功能模块,用于给外部系统读取SAP系统的物料主数据的状态,输入参数为物料编码和工厂,返回参数:物料主数据的状态(即如下图红色框的状态)

步骤1−创建函数组

函数组充当一种逻辑上属于一起的许多功能模块的容器。

事务代码:SE37

备注:函数组命名注意以 Y 或者 Z 开头,功能组的名称最长可达 26 个字符,创建功能组或功能模块时,会自动生成主程序和包含程序。

点击本地对象后,系统左下角提示:

然后激活函数组:SE80

选择函数组 -> 输入函数组名称 -> 选中新建的函数组 -> 右键激活。

备注:功能模块也可以直接通过SE80创建和激活

步骤2−创建函数模块

函数模块并不能单独存在,它必须放在某个函数组中,因此创建函数模块之前先要创建函数组。

2-1.维护功能模块的属性

  • 导入(import): 输入参数,比如结构型变量 ,但不能为内表。

  • 导出(export):输出参数,比如结构型变量 ,不能为内表。

  • 正在更改(changing):既输入又输出的参数 。

  • 表(tables): 可以把多个内表的值传进来,同时也可以把多个内表返回。

  • 例外(exceptions):函数异常处理,函数模块中抛出异常:raising + 异常名 。

  • 常规函数模块:如果勾选此项对外部系统不是可见的,但是在相同的SAP系统中是全局可见的。

  • 远程启用的模块:如果勾选此项对外部系统可见,可以通过RFC被调用,如果需要给外围系统调用,需要勾选此项。

RFC是SAP系统和其他(SAP或非SAP)系统间的一个重要而常用的双向接口技术,也被视为SAP与外部通信的基本协议。
  • 更新模块:用于函数模块的异步更新,一般使用立刻开始。

2-2.维护功能模块的导入参数:

可选:如果勾选表示这个值可以输入也可以不用输入。

2-3.维护功能模块的导出参数:

2-4.维护功能模块的代码:

点击激活

需要激活前面创建的函数组和功能模块

源代码:

‍‍‍‍‍

SELECT SINGLE MMSTA INTO ZSTATUS FROM MARC WHERE MATNR = I_MATNR AND WERKS = I_WERKS AND LVORM = '' .
IF SY-SUBRC = 0.
ZTYPE = 'S' .
ZMESSAGE = '物料状态已成功取到' .
ELSE.
ZTYPE = 'E ' .
ZMESSAGE = '物料不存在或物料已被删除' .
ENDIF.

步骤3−测试功能模块

功能模块的测试非常方便,可以不在某个程序中而单独进行测试函数。

输入事务码SE37,然后按如下方式进行测试。

点击测试图标

输入物料号和工厂,然后点击执行。

导出参数显示功能模块执行的结果。

调用功能模块

功能模块可以被任意ABAP程序调用,也可用给外围系统调用,支持异常处理,在函数运行时可以捕获异常消息。

要调用功能模块使用 CALL FUNCTION + 函数名的形式调用函数

CALL FUNCTION <module>[EXPORTING  f1 = a 1.... f n = a n][IMPORTING  f1 = a 1.... f n = a n][CHANGING   f1 = a 1.... f n = a n][TABLES     f1 = a 1.... f n = a n][EXCEPTIONS e1 = r 1.... e n = r n [ERROR_MESSAGE = r E]   [OTHERS = ro].
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SAP ABAP Function Module 的动态调用方式使用方式介绍试读版
聊聊SAP系统架构有多牛逼?
abap函数荟萃
甲骨文ERP与SAP ERP的六大区别
Python进阶之路:operator模块
如何减小ABAP业务代码的复杂度
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服