Function函数与子例程类似,按照功能将代码模块化
我们可以使用事务码SE37查看需要使用的函数以及对该函数进行测试

我们也可以对STRING_SPLIT_AT_POSITION函数进行测试

1.函数调用
我们可以使用事务码SE38进入ABAP编辑器界面,使用"模式/Pattern"辅助导入相应的函数

 
 
  执行结果如下所示

我们也可以使用BAPI_COMPANYCODE_GETDETAIL函数查看公司代码为0003的详细信息
 
 
  执行结果如下所示


函数和子例程的区别
① 子例程是局部模块化,仅在当前Report里面使用
② Function函数是全局模块化,是一个特殊的"全局子例程",可以在多个程序里面使用
③ Function函数可以单独运行以及测试
④ Function函数可以提供Exception例外功能
函数组(Function Group / FG) 是函数模块(Function Module / FM) 的集合,函数模块可以共享函数组内的数据
2.自定义函数的创建与调用
使用事务码SE80创建函数组ZFG_COMMON_12


填写好相应的信息并保存即可创建函数组,最后需要对函数组进行激活

使用事务码SE37创建自定义函数ZFM_GET_EKPO_12


在"导入"页签填写输入参数

在"导出"页签填写输出参数

在"例外"页签填写参数

使用SE91维护消息Z_ABAP34

在"源代码"页签填写对应代码

点击激活和执行按钮即可对自定义的函数进行测试


调用自定义函数

执行结果如下所示

3.常用的Function函数
| FM | 功能描述 | 
|  
     READ_EXCHANGE_RATE 
     |  
     获取汇率 
     | 
|  
     LAST_DAY_OF_MONTHS 
     |  
     每个月的最后一天  
     | 
|  
     CONVERSION_EXIT_ALPHA_OUTPUT 
     |  
     去掉前导 
     零 
     | 
|  
     CONVERSION_EXIT_ALPHA_INPUT 
     |  
     增加前导零 
     | 
|  
     SPELL_AMOUNT 
     |  
     金额转换成大写 
     | 
|  
     CTVB_COMPARE_TABLES 
     |  
     用于比较新内表和原内表内容 
     | 
|  
     DAY_IN_WEEK  
     |  
     通过这个日期得出那天是星期几 
     | 
|  
     RP_CALC_DATE_IN_INTERVAL 
     |  
     用来得到将来 
     / 
     过去的日期 
     | 
|  
     BKK_ADD_MONTH_TO_DATE 
     |  
     日期的加减  
     | 
|  
     HOLIDAY_CHECK_AND_GET_INFO 
     |  
     判断某天是否是假日 
     | 


















