ABAP 创建函数

创建函数:
创建函数先创建函数组,函数放在函数组里,函数组里的每个函数公共部分的数据是共享的
创建函数组方法:se37-转到-函数组-创建函数组

(注意se37创建函数组会有一个小陷阱,有时候在使用函数组时报ABAP 函数组xxx不能被处理,搜索帮助说无法生成功能组xxx。主程序SAPLxxx和/或 Include 程序LxxxTOP可能是不活动的。可以到se80找到该函数组激活,或者直接到se80工作台直接创建函数组,在激活即可)

(删除函数组:se37-转到-函数组-删除组,注意此时功能模块的输入应该为空才行。输出函数组名,确定即可或者se80里删除)

再创建函数
(一).创建函数后:
1.导入:入参
缺省值:默认值
传递值:一般函数不勾,接口才勾选
2.导出:处理后输出
3.正在更改(change) 作为导入导出都可以
4.表:可以以表的形式导入或者导出,一般alv的用
5.例外:一些不符合条件的特殊数据,抛出异常(异常抛出例外码,不是抛出短文本)
6.源代码 :写代码
当代码复杂时,或者为了美观时可以创建一个include程序,将代码包含在include里放在form里,可以用usering传参(定义形式参数),changing返回
在函数里通过perform +include的form名+usring。。+changing。。。 模块化调用即可

点击显示对象列,产生的结构如图:

 

 

 函数模块:函数组ZPWH_FUNCTION下建立的多个函数存放处

子列程: 建立的PERFORM 引用的子程序代码块

包含:自动生成INCLUDE的两个程序,LZPWH_FUNCTIONTOP和LZPWH_FUNCTIONUXX

LZPWH_FUNCTIONTOP:里边一般放定义的DATA等,当然建立的PERFORM 引用的子程序代码块如果选择LZPWH_FUNCTIONTOP,

这里边也会自动生成form,如果不选择LZPWH_FUNCTIONTOP,那么就会单独生成一个如图中LZPWH_FUNCTIONF01的include程序,程序里就是form.

 LZPWH_FUNCTIONUXX:里边放的引用,双击里边的 include xxx,就会跳转到对应的函数中.

 

(二).函数代码写完后:
如何调用:
在include程序中:模式--调用功能--写函数名,自动生成call function...

EXPORTING :在此处是输入 (可以用选择屏幕的方式给值,值赋值给入参)
入参名:入参名
IMPOEPTING:在此处是输出
出参名:出参名
EXCEPTIONS :在此处是例外(各种异常)
异常码:1234。。。。

posted @ 2022-03-14 14:31  狂奔的蜗牛君丶  阅读(1616)  评论(0编辑  收藏  举报