how to create ABAP function

一 函数介绍
1.1 定义

函数:函数在任何编程语言中都是使用非常高频的知识点,同样,函数是ABAP开发中经常使用的,建立函数是在SE37这个事物代码下建立,通常函数和函数组是配合使用,函数组是函数的主程序。

1.2函数界面

以下就是一个函数界面的一些解释;
属性
常规函数:就是在系统中内部使用;
远程函数:也就是RFC,可以让它第三方系统来使用;不过要在SM59里设置;
更新函数:这个主要是用在在系统刚上线的时候,大量的更新系统的时候用,平时我们用的会比较少;
导入
我们传进的值;
导出
系统返回给我们的值;
正在更改
变更参数;

也是变更参数;
例外
函数运行的出现的错误;比如用户输的两个数,除数为0 ;
源代码
这个就是我们编写的逻辑;
在这里插入图片描述

二 例子

alv展示就只有输入参数; 乘法运算:有输入也有输出;我们通常用SY-SUBRC为0表示运行成功来判断。

2.1创建函数组

创建函数组(不管是创建组还是函数都应该以Z为首字母命名,函数组主要是比如与销售订单相关的都可以在这个组);
在这里插入图片描述
可以看出来函数组是函数的主程序;在这里插入图片描述
点主程序运行可以看到以下的代码;
在这里插入图片描述

SM59(RFC的远程配置.
在这里插入图片描述

2.2函数建立

以下是我开发的,一个是函数组,一个是具体的函数;
ZFG_SALEORDER(函数组)
ZFM_SALEORDER_GETDETAIL(函数)

函数的源代码,当然导入,导出,表,例外我都有设置;
在这里插入图片描述
在这里插入图片描述
以下的我用的是Like.还输入了几次都完成。
在这里插入图片描述
在这里插入图片描述
以下是函数的源代码(实现在功能就是把表头和行项目的值全取出来)

SELECT SINGLE * FROM VBAK INTO  E_VBAK WHERE vbeln = i_vbeln.
 if  sy-subrc <> 0.
  RAISE  SALESORDER_NOT_EXIST.
  endif.
SELECT * FROM VBAP INTO  TABLE T_VBAP WHERE vbeln = i_vbeln.

在程序中调用函数的方法
在这里插入图片描述

三 具体使用函数

以下是这个函数的具体的使用的例子;

PROGRAM zjgltest11.
DATA: lv_vbeln TYPE VBELN_VA.
DATA: ls_vbak TYPE vbak.
DATA: lt_vbap TYPE TABLE OF vbap.
lv_vbeln = '0011000000'.
CALL FUNCTION 'ZFM_SALESORDER_GETDETAIL'
  EXPORTING
    i_vbeln              = lv_vbeln
  IMPORTING
    e_vbak               = ls_vbak
  TABLES
    t_vbap               = lt_vbap
  EXCEPTIONS
    salesorder_not_exist = 1
    OTHERS               = 2.
IF sy-subrc = 0.
WRITE: ls_vbak-vbeln .
ELSEIF sy-subrc = 1.
WRITE:'销售凭证不存在'.
ENDIF.
四 常用函数

以下是系统的常用函数
1.前导0函数(由于SAP里面的数查询的时候需要是10位,不然查不到,所以需要通过以下的函数来现实。)
CONVERSION_EXIT_ALPHA_INPUT
2.产生流水单的函数;
ZNUMC4_GET_NEXT
3.下载文件函数
GUI_DOWNLOAD
4.上传文件函数
GUI_UPLOAD
5.获取文件名函数
WS_FILENAME_GET
5.负数号前置函数
CLOI_PUT_SIGN_IN_FRONT

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值