Function也称为函数,它是SAP中一个独物的程序模式,一般是一段单独的程序代码,可独立执行或直接被SAP其他程序所调用。Function支持远程访问模式,即提供接口供SAP程序使用(如VB,.NET,JAVA等),通常称为RFC(Remote Function Call).

 
Function Modules
* 函数是和程序无关的,它不能直接创建在程序里并直接调用它。
   任何一个函数都属于某Function Group,并可以被任何程序所调用。
* 函数的执行异常可以通过抛出一个Exception来返回给SY-SUBRC
* 显然,Function Modules和Subroutine在内存分配机制上有很大的不同。
   程序中的全局变量无法访问,所有函数需要的变量都必须通过参数来进行传递。
 
Function Groups
 * 一个函数组包含了实现有一定共性的多个函数。
 * 函数组是一种F类型的ABAP程序,它无法自己执行,只能被程序所调用
 * 当我们调用某一个函数时,这个函数所属的函数组也会全部被调入内存。
 * 函数组中任何一个函数有错误都会导致该函数的所有函数不能使用.调用的PROGRAM编译不能通过,所以通常在调试中的函数不直接激活。可以通过测试工具测试成功后再激活。

* Function初始界面及Function Group的创建。

1.  Tcode:SE37

2.与Rrport不同的是,创建Function程序前必须先定义一个地Function Group,

一个Group下可包含多个Function,创建Function Group命令的具体操作路径为:

点击【建立群组】

输入自定义Function名称:ZRFC_TEST_SIMPLE,单击Create按钮,

以上,Function已被创建成功,系统进入初始界面,可以看到系统自动生成预代码,

但是还不具备任何功能,需要对Function的输入输出参数及数据处理逻辑程序进行设计

Function 编辑器共分为7个页面,各自功能定义如下:

1. 属性:用于定义该Function类型及其基本信息。

* 处理类型:用于定义该Function类型,主要用于定义是否可以远程调用。

* Normal function module:普通调用模式,该Function只能在SAP系统中使用;

* Remote enable module: 远程调用模式,允许该Function被SAP及非SAP程序调用,

即设置为RFC,RFC是SAP与外部应用系统的通信接口。

* Update Module:将该Function设置为更新模式,调用该Function程序可采用如下定义:

"Call Function XXX in update task",必须再次使用COMMIT命令时才能完成该Function的数据操作,适用于多次调用函数最后再保存的多笔业务的录入。

2.Import/Export 为数据输入、输出接口,其接口参数可以为单个变量或者为一个结构体。

3. Changing可同时作为输入输出接口,其参数可为单个变量或Struct或内表。接口定义属性基本一致

* 参数名称:接口调用时对其赋值,作为一个数据对象在程序中使用;

* Typing: 类型选择项,与数据定义时的LIKE、TYPE作用一致;

* 参考类型:可为数据字典对象;

* 预设值:若输入字符型值时需加上引号;

* 选择性:该选项定义是否可以修改参数值,若未选中,相当于定义该参数为一常量,

若选中,该参数可以在程序中重新赋值。

* Pass Value: 定义该对数是否为必输项,若未选中,调用该Function时此参数为必须输入项;

* 短文: 该参数信息描述

* 长文:单击对应按钮可以设置参数详细描述。

4. Exceptions: 为错误回执接口,定义程序中所返回的错误。

5. Source code:切换到ABAP代码编辑窗口,代码中可以定义子程序或调用其他Function。接口中所定义的参数都只是该Function代码的私有变量,可以在Function中直接引用,由此实现与外部程序数据的交换,接口参数定义如图

Function程序设计及应用的更多相关文章

  1. 通过百度echarts实现数据图表展示功能

    现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解 ...

  2. HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛

    普通的数位DP计算回文串个数 /* HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 2-36进制下回文串个数 */ ...

  3. 《JavaScript高级程序设计》读书笔记 ---Function 类型

    说起来ECMAScript 中什么最有意思,我想那莫过于函数了——而有意思的根源,则在于函数实际上是对象.每个函数都是Function 类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对 ...

  4. (java保留n位小数)precise math function 北京信息科技大学第十届ACM程序设计竞赛 第2题

    precise math function Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Othe ...

  5. 《JavaScript高级程序设计》5.5 Function类型

    5.5 Function类型 函数实质上是对象, 每个函数都是Function类型的实例, 并且都和其他引用类型一样具有属性和方法. 因此函数名实际上也是一个指向函数对象的指针, 不会与某个函数绑定. ...

  6. 面向对象程序设计-C++ Class & Object & Friend Function & Constructor & Destructor【第五次上课笔记】

    大家可以下载后用Vim 或者 Sublime Text等文本编辑器查看 以下代码均已折叠,点击“+“即可打开 一开始老师用C语言大作业的例子,写了个 Student 的结构以及相关操作 #includ ...

  7. 【2017中国大学生程序设计竞赛 - 网络选拔赛】Palindrome Function

    [链接]http://acm.hdu.edu.cn/showproblem.php?pid=6156 [题意] 已知函数f(x, k),如果10进制数x在k进制下是个回文数,那么f(x, k)值为k, ...

  8. 【2019中国大学生程序设计竞赛-女生专场】C - Function

    原题 韦神提供的思路orz 首先一个显然的性质,所有的c可以提出来,方程变成ax^2+bx的形式 因为x的值是离散的,而m的值又不大 所以一开始让x都为1(注意!x是正整数),然后每次挑一个x让他加一 ...

  9. HTML5 程序设计 - 使用HTML5 Canvas API

    请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...

随机推荐

  1. svn 权限设置

    /***********************************************************/ //SVNSubversion 用户权限管理 //资料来源:网络.总结 // ...

  2. Linux环境测试机器端口连通性

    生产中,有很大一部分的问题都是由于不同机器间网络不同导致的,那么如何判断两台机器之间的连通性?本文介绍几种常见的方式: telnet方法wget方法ssh方法curl方法1. telnet方法格式:t ...

  3. ftp不能复制文件

    解决办法: ie->工具->internet选项->安全->自定义级别->下载->文件下载->启用

  4. 二进制数组-ArrayBuffer对象

    ArrayBuffer对象:存储二进制数据的一段内存,不能写/读 ,类似数组的对象 只能通过TypedArray视图/DataView视图 读/写 va buf = new ArrayBuffer(3 ...

  5. 拖动元素,自由变换位置 jquery

    拖动元素,将改元素插入到某个元素前/后,并返回当前所在的位置的索引值,代码如下: <!DOCTYPE html><html lang="en"><he ...

  6. 详解python编译器和解释器的区别

    高级语言不能直接被机器所理解执行,所以都需要一个翻译的阶段,解释型语言用到的是解释器,编译型语言用到的是编译器. 编译型语言通常的执行过程是:源代码——预处理器——编译器——目标代码——链接器——可执 ...

  7. malloc,calloc,realloc

    与堆操作相关的两个函数 malloc #include<stdio.h> #include<stdlib.h> #include<string.h> int mai ...

  8. 利用gephi作人物网络图

    一.先利用word2vec训练数据得到模型 a.利用jieba对文本进行分词,并只提取词性为人名的词,去除分词长度为1和大于4的词 b.利用word2vec训练分词后的文本,并存储 c.利用训练后的模 ...

  9. CF1213G Path Queries

    题目链接 问题分析 直接按边从小到大加入,求所有的连通点对数量即可.最后离线询问.使用并查集维护Size. 参考程序 #include <bits/stdc++.h> using name ...

  10. AcWing:246. 区间最大公约数(线段树 + 增量数组(树状数组) + 差分序列)

    给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一: 1.“C l r d”,表示把 A[l],A[l+1],…,A[r] 都加上 d. 2.“Q l r”,表示询问 A[l],A[l ...