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. Mandelbrot集合及其渲染

    什么是Mandelbrot集合? Mandelbrot集合是在复数平面上组成分形的点的集合,它正是以数学家Mandelbrot命名. Mandelbrot集合可以用复二次多项式 \[ f_c(z)=z ...

  2. 利用nethogs查看哪些进程占用网络带宽

    一.安装nethogs centos6版本安装: 1.安装依赖包 [root@hlsms-fensheng- ~]# yum install ncurses* 已加载插件:fastestmirror, ...

  3. LCA-tarjan understand 2

    下面是一个最基础的LCA题目    http://poj.org/problem?id=1330 赤裸裸的 题意 输入cas 后  有cas组数据 输入 n   再输入n-1 条边    之后输入x ...

  4. redis的数据类型和基本操作

    Redis 的Key Redis 的 key 是字符串类型,但是 key 中不能包括边界字符,由于 key 不是 binary safe的字符串,所以像"my key"和" ...

  5. Prometheus+Granfana

    二.虚机(服务器)方式prometheus在虚机(服务器)中安装运行. 命令行启动在安装完成以后,可以直接在命令行启动.启动方式通常是: ./prometheus --config.file=prom ...

  6. 并发编程的锁机制:synchronized和lock

    1. 锁的种类 锁的种类有很多,包括:自旋锁.自旋锁的其他种类.阻塞锁.可重入锁.读写锁.互斥锁.悲观锁.乐观锁.公平锁.可重入锁等等,其余就不列出了.我们重点看如下几种:可重入锁.读写锁.可中断锁. ...

  7. echarts实践用法

    在折线图中,当点击某个节点,出现提示浮框,并且可以进行点击操作 echarts 配置 tooltip: { show: true, formatter: function(e) { return 'a ...

  8. thinkphp5.0.22--日志分析和错误调试

    但凡遇到php页面报错信息,我们可以借助phpgjx工具,一款类似postman的工具 来跟踪导致问题的sql信息,这工具的实质是一款文件夹和文件组合,通过Apache和nginx部署 分析排查这类问 ...

  9. C# IIS域名绑定

    C#解决IIS域名批量绑定: https://shiyousan.com/post/636022975388168065 C#程序控制IIS 添加站点域名绑定: https://blog.csdn.n ...

  10. maven项目创6 表现层整合

    springmvc.xm创建l 和 web.xml配置    ,报错先不管 springmvc.xml com.taotao.controller   空包 其中    资源映射   是等 web.x ...