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. typedef 返回类型(*Function)(参数表) ——typedef函数指针

    //首先看一下函数指针怎么用 #include <iostream> using namespace std; //定义一个函数指针pFUN,它指向一个返回类型为char,有一个整型的参数 ...

  2. 【转】Java对象初始化详解

    来源:MySun 链接:http://mysun.iteye.com/blog/1596959 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.本文试图对Jav ...

  3. BZOJ1013 [JSOI2008]球形空间产生器sphere[高消]

    数论进度开的好慢啊.我整天做的都是什么鬼题啊. 简单的高消题,用一个式子把另外$n$个有二次项和距离的式子全消掉就行了. #include<iostream> #include<cs ...

  4. 【hiho1035】自驾旅行III

    题目大意:给定一棵 N 个节点的有根树,1 号节点为根节点,树边有两个权值,分别为走路的代价和开车的代价.有一个旅行者开车要从根节点出发,必须遍历给定点集,可以在任何位置停止旅行,有车时可以选择开车或 ...

  5. js - 执行上下文和作用域以及闭包

    首先,咱们通常被"执行上下文","执行上下文环境","上下文环境","执行上下文栈"这些名词搞混.那我们一一来揭秘这些名 ...

  6. web性能优化-浏览器工作原理

    要彻底了解web性能优化的问题,得搞清楚浏览器的工作原理. 我们需要了解,你在浏览器地址栏中输入url到页面展示的短短几秒中,浏览器究竟做了什么,才能了解到为什么我们口中所说的优化方案能够起到优化作用 ...

  7. 软件测试课程--安装QTP后java环境变量冲突

    很多学习性能测试的朋友们都会有这样的问题,安装QuickTest Professional11之后,类似于eclipse.pycharm打开弹出报错窗口,命令行(CMD)也无法正常显示javac.ja ...

  8. python生成二维码图片

    依赖Pillow库. import qrcode # 简单用法 img = qrcode.make('Hello World!') img.save('qr_code.png') # 高级用法 qr ...

  9. 【Winform-获取ListView选中行】Winform如何获取ListView选中行数据 ?

    =========这是Winform================== 1.设计窗体 一个ListView    listView1 一个textBox    txbSelected 2.listV ...

  10. Tushare基础调用及处理

    创建索引: db.daily.createIndex({code:1,date:1,'index':1}) mongodb查看表有几列: map = function() { for (var key ...