- 进入FUNCTION MODULE BUILDER的事务代码SE37
- 在FUNCTION MODULE BUILDER创建窗口中选择菜单“转到->函数组->创建组”创建FUNCTION GROUP
- FUNCTION MODULE创建与FUNCTION MODULE调用是相返的。创建时的IMPORTING对应调用时的EXPORTING。反之亦然。
SAP ABAP FUNCTION MODULE与其它语言中的函数(或方法)的比较:
- 在FUNCTION MODULE定义时,IMPORTING相当于定义其它语言函数(或方法)的输入参数,exporting相当于定义其它语言函数(或方法)的输出参数,EXCEPTIONS相当于定义其它的函数(或方法)异常,CHANGING是其它语言所没有的它也是表示将实参传递给形参,但是它还有一个很特殊的应用就是在方法调用完成后用于将形参传递给实参。
- 在FUNCTION MODULE调用时。EXPORTING用于定义将实参传递给形参(相当其它语言函数调用的输入参数),IMPORTING用于将参数传递给实能(相当其它语言函数调用的输出参数)。
创建:
FUNCTION z_integer_add.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" REFERENCE(INPUT_1) TYPE I
*" REFERENCE(INPUT_2) TYPE I
*" EXPORTING
*" REFERENCE(OUTPUT) TYPE I
*"----------------------------------------------------------------------
output = input_1 + input_2.
ENDFUNCTION.
调用:
DATA: sum TYPE i,int1 TYPE i VALUE 3,int2 TYPE i VALUE 4.
CALL FUNCTION 'Z_INTEGER_ADD'
EXPORTING
input_1 = int1
input_2 = int2
IMPORTING
output = sum.
IF sy-subrc = 0 .
WRITE: / sum.
ENDIF.
- 在FUNCTION MODULE定义时,IMPORTING相当于定义其它语言函数(或方法)的输入参数,exporting相当于定义其它语言函数(或方法)的输出参数,EXCEPTIONS相当于定义其它的函数(或方法)异常,CHANGING是其它语言所没有的它也是表示将实参传递给形参,但是它还有一个很特殊的应用就是在方法调用完成后用于将形参传递给实参。
举个例子:假如你写的应用程序Z_XXX中调用了一个function module,你需要在你自己的应用程序中有类似代码如下: