• Function程序设计及应用


      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中直接引用,由此实现与外部程序数据的交换,接口参数定义如图

     

  • 相关阅读:
    站点收藏
    深入理解HttpModule和HttpHandler
    搜索引擎URL参数解析
    ExtJs学习之路进度条
    Net加密保护工具分析介绍
    基于百度搜索开放平台的天气查询
    Squid配置
    ArcEngine中对已经存在的数据表格添加字段(转载)
    ArcGIS Engine开发基础之QI(转载)
    Arcgis Engine 开发术语(转载)
  • 原文地址:https://www.cnblogs.com/sanlly/p/3363816.html
Copyright © 2020-2023  润新知