- SAP ABAP 教程
- SAP ABAP - 首页
- SAP ABAP - 概述
- SAP ABAP - 环境
- SAP ABAP - 屏幕导航
- SAP ABAP - 基本语法
- SAP ABAP - 数据类型
- SAP ABAP - 变量
- SAP ABAP - 常量和字面量
- SAP ABAP - 运算符
- SAP ABAP - 循环控制
- SAP ABAP - 决策
- SAP ABAP - 字符串
- SAP ABAP - 日期和时间
- SAP ABAP - 数据格式化
- SAP ABAP - 异常处理
- SAP ABAP - 字典
- SAP ABAP - 域
- SAP ABAP - 数据元素
- SAP ABAP - 表
- SAP ABAP - 结构
- SAP ABAP - 视图
- SAP ABAP - 搜索帮助
- SAP ABAP - 锁对象
- SAP ABAP - 模块化
- SAP ABAP - 子程序
- SAP ABAP - 宏
- SAP ABAP - 函数模块
- SAP ABAP - 包含程序
- SAP ABAP - Open SQL 概述
- SAP ABAP - Native SQL 概述
- SAP ABAP - 内部表
- SAP ABAP - 创建内部表
- ABAP - 填充内部表
- SAP ABAP - 复制内部表
- SAP ABAP - 读取内部表
- SAP ABAP - 删除内部表
- SAP ABAP - 面向对象
- SAP ABAP - 对象
- SAP ABAP - 类
- SAP ABAP - 继承
- SAP ABAP - 多态
- SAP ABAP - 封装
- SAP ABAP - 接口
- SAP ABAP - 对象事件
- SAP ABAP - 报表编程
- SAP ABAP - 对话编程
- SAP ABAP - 智能表单
- SAP ABAP - SAPscript
- SAP ABAP - 客户出口
- SAP ABAP - 用户出口
- SAP ABAP - 业务附加功能
- SAP ABAP - Web Dynpro
- SAP ABAP 有用资源
- SAP ABAP - 问答
- SAP ABAP - 快速指南
- SAP ABAP - 有用资源
- SAP ABAP - 讨论
SAP ABAP - 函数模块
函数模块构成了SAP系统的重要组成部分,因为多年来SAP一直使用函数模块对代码进行模块化,从而允许代码重用,函数模块本身、其开发人员以及客户都可以重用这些代码。
函数模块是包含一组可重用语句的子程序,具有导入和导出参数。与包含程序不同,函数模块可以独立执行。SAP系统包含多个预定义的函数模块,可以从任何ABAP程序中调用。函数组充当许多逻辑上属于一起的函数模块的容器。例如,人力资源工资系统中的函数模块将被组合到一个函数组中。
要了解如何创建函数模块,必须探索函数生成器。您可以使用事务代码SE37找到函数生成器。只需键入函数模块名称的一部分以及通配符即可演示如何搜索函数模块。键入*amount*,然后按F4键。
搜索结果将显示在新窗口中。函数模块以蓝色背景的行显示,其函数组以粉红色行显示。您可以使用对象导航器屏幕(事务SE80)进一步查看函数组ISOC。您可以看到函数模块和其他保存在函数组中的对象的列表。让我们考虑函数模块SPELL_AMOUNT。此函数模块将数字转换为文字。
创建新程序
步骤1 - 转到事务SE38并创建一个名为Z_SPELLAMOUNT的新程序。
步骤2 - 输入一些代码,以便可以设置一个参数,在其中可以输入值并传递给函数模块。此处的文本元素text-001显示“输入值”。
步骤3 - 要为此编写代码,请使用CTRL+F6。之后,将出现一个窗口,其中“CALL FUNCTION”是列表中的第一个选项。在文本框中输入'spell_amount',然后单击继续按钮。
步骤4 - 一些代码会自动生成。但我们需要增强IF语句以包含向屏幕写入消息的代码,以显示“函数模块返回的值为:sy-subrc”,并添加ELSE语句,以便在函数模块成功时写出正确的结果。在这里,必须设置一个新变量来保存从函数模块返回的值。让我们将其称为'result'。
以下是代码:
REPORT Z_SPELLAMOUNT. data result like SPELL. selection-screen begin of line. selection-screen comment 1(15) text-001. parameter num_1 Type I. selection-screen end of line. CALL FUNCTION 'SPELL_AMOUNT' EXPORTING AMOUNT = num_1 IMPORTING IN_WORDS = result. IF SY-SUBRC <> 0. Write: 'Value returned is:', SY-SUBRC. else. Write: 'Amount in words is:', result-word. ENDIF.
步骤5 - 函数模块返回的变量称为IN_WORDS。在名为“result”的程序中设置相应的变量。使用LIKE语句定义IN_WORDS以引用名为SPELL的结构。
步骤6 - 保存、激活并执行程序。输入如下面的屏幕截图所示的值,然后按F8。
以上代码产生以下输出:
Spelling the Amount Amount in words is: FIVE THOUSAND SIX HUNDRED EIGHTY