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. 牛客国庆集训派对Day5 A.璀璨光滑

    首先我们可以确认 1的值一定是0 题目要求的是 有边的两个点所代表的值二进制有一位不同(即有边相连的两个值二进制所包含的1的个数相差为1) 所以我们通过他给你的图进行BFS 把原图分为一圈一圈的 并且 ...

  2. hive建表结构

    drop table dw.fct_so;create table dw.fct_so(so_id bigint comment '订单ID',parent_so_id bigint comment ...

  3. chown -R lyd usbsend

    chown -R lyd usbsend chown -R lyd usbsend chown -R lyd usbsend 某一个目录下所有文件授权给lyd

  4. MongoDB的优势应用场景和配置

    一:MongoDB的简介: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案 MongoDB是一个介于关系数据库和非关系数据库之间的 ...

  5. HDU - 4431 Mahjong (模拟+搜索+哈希+中途相遇)

    题目链接 基本思路:最理想的方法是预处理处所有胡牌的状态的哈希值,然后对于每组输入,枚举每种新加入的牌,然后用哈希检验是否满足胡牌的条件.然而不幸的是,由于胡牌的状态数过多(4个眼+一对将),预处理的 ...

  6. IDEA中方法的快捷键及自定义方法

    1. 字母组合联想到对应的方法 ·ps联想到public static方法和成员 ·输入psvm联想到主方法 ·输入psf联想到用public static final 等 · pc联想到clone和 ...

  7. hiho #1043 : 完全背包

    01背包和完全背包解析 在上一节的01背包中,每种物品只能使用一次. 初始化j=V,逆序推能够保证 dp[v-c[i]] 保存的是状态是 dp[i-1][v-c[i]] ,也就是每个物品只被使用了一次 ...

  8. Spring中的IOC和AOP

    一.IOC(DI) Inversion of Control 控制反转,也叫(Dependency Injection)依赖注入. 我们平常使用对象的时候,一般都是直接使用关键字类new一个对象,那这 ...

  9. viewport的相关知识点

    主要说一些viewport的基本原理以及使用 ㈠概念 手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤到很小的 ...

  10. 5.聚类算法k-means

    聚类与分类的区别在于,是在没有给定划分类别的情况下,更具数据相似度进行样本分组的一种办法,是一种非监督的学习算法,聚类的输入时一组未被标记的样本,聚类更具数据自身的距离或者相似度将其划分为若干组,划分 ...