`
yoloo
  • 浏览: 39098 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

abap 的传值与传引

    博客分类:
  • abap
阅读更多

在abap的FROM 中也有传值与传引的概念。

传值,指将传入的参数的值拷贝一份传入FORM内,FORM内对参数的改变不会造成外部值的改变

传引,指将传入参数的地址传入FORM内 FORM内对参数的改变将造成外部值改变。

1.            Call By Reference:

传参数时将数据的存放地址(address)传至参数中, 也就是子程序中的参数变量与外部实际

变量共享地址内的值, 又称为 Call By Address, 若在子程序中地址中的值改变了, 外部实

际变量的值也会跟着改变.

语法:

     FORM  <subr>  [USING <f1> <f2>…] [CHANGING <f1>…]

     PERFORM  <subr>  [USING <f1> <f2>…] [CHANGING <f1>…]

     Using 之后接在子程序中不会改变的变量, CHANGING接会改变值的变量

     但实际上USING之后的参数在子程序中也可将值改变

     Example:

     SUM = 0.

     NUM1 = 100.  NUM2=200.

     PERFORM  ADD  USING  NUM1  NUM2  CHANGING  SUM.

     WRITE: / NUM1,NUM2,SUM  “ SUM 0 变成 300

     FORM  ADD  USING  NUM1  NUM2  CHANGING  SUM.

        SUM  =  NUM1  +  NUM2.

     ENDFORM.

     执行结果:

                     100   200   300

 

2.            Call By Value

传参数时将数据的值复制一份至另一地址中, 所以在子程序中参数变量值改变, 并不会影

响外部实际变数的值.

     语法:

          FORM  <subr>  USING  VALUE(<f1>…)

          使用 VALUE(<f1>)表示 <f1> Call By Value的传递

          PERFORM  <subr>  USING  <f1> 

     Example:

     SUM = 0.

     NUM1 = 5.

     PERFORM  MULTI  USING  NUM1  CHANGING  SUM.

     WRITE: / NUM1,SUM  “NUM1值还是5,  SUM 0 变成 120

     FORM  MULTI  USING  VALUE(NUM1)  CHANGING  SUM.

        SUM = 1.

        WHILE  NUM1 > 1

          SUM  =  SUM * NUM1.

          NUM1 = NUM1 – 1.

        ENDWHILE..

     ENDFORM.

     执行结果:

                     5   120

 

3.            Call By Value and Return Result

传入参数值的方式同Call By Value, 但在子程序结束执行时会将传入的参数值复制一份传回给外部实际变数. 执行过程中外部实际参数不变.

  语法:

        FORM  ….. CHANGING  VALUE(<f1>)

        PERFORM  …. CHANGING …. <f1>

        Example:

               SUM = 0.

               NUM1 = 100.  NUM2=200.

               PERFORM  ADD  USING  NUM1  NUM2  CHANGING  SUM.

               WRITE: / NUM1,NUM2,SUM  “ SUM 0 变成 300

               FORM  ADD  USING  NUM1  NUM2  CHANGING  VALUE(S).

                  S  =  NUM1  +  NUM2.

                  WRITE: / NUM1,NUM2,SUM  得到结果为 100  200  0

               ENDFORM.

     执行结果:

                100    200     0    在子程序中 SUM值尚未改变

                    100   200   300    返回程序时, 将变量 S的值复制给 SUM

                                        所以 SUM值变成 300

 

分享到:
评论

相关推荐

    《SAP ABAP开发详解与高端应用》.zip

    《SAP ABAP开发详解与高端应用》这本书深入探讨了SAP ABAP(Advanced Business Application Programming)编程语言,这是SAP系统中用于开发业务应用程序的关键技术。ABAP是SAP平台上的核心编程语言,用于创建自定义...

    ABAP 调用ABAP PROXY

    在SAP系统中,ABAP调用ABAP Proxy是一种常见的技术操作,用于在不同系统间或者同一系统内的组件之间实现通信。ABAP Proxy是SAP提供的一个强大的接口技术,它允许开发者创建安全、高效的远程调用机制。接下来,我们将...

    SAP_ABAP_4.7.rar_SAP abap4_abap_abap chm_abap 4_abap4

    ABAP 4.7版本开始支持SOAP和RESTful Web服务,使得SAP系统能与其他系统进行集成和数据交换。 9. 调试和测试: SAP提供了强大的调试工具,如ABAP Debugger,用于查找和修复代码错误,同时支持单元测试和集成测试。...

    ABAP GIT 项目 AI SDK FOR ABAP 代码

    2. **ABAP RESTful Programming Model (RPMB)**:为了与AI服务通信,开发者可能需要使用ABAP RESTful Programming Model创建和调用RESTful服务。RPMB提供了一种基于HTTP和JSON的标准方法,使ABAP应用能与其他系统...

    ABAP751 ABAP - Keyword Documentation

    ABAP - Keyword Documentation This documentation describes the syntax and meaning of the keywords of the ABAP language and its object-oriented part ABAP Objects. Alongside this, language frameworks ...

    abap-ALV.rar_ABAP系统ALV_abap_abap开发alv

    - 数据源:ALV通常基于内部表或结构,这些数据结构需要与业务逻辑关联。 - 交互性:ALV支持多种用户交互,如单击、双击、拖放等,开发者需要定义相应的事件处理。 - 自定义功能:可以通过添加增强或覆盖标准函数来...

    ABAP 外部链接下载文件

    根据给定文件的信息,本文将围绕“ABAP外部链接下载文件”的主题展开,详细解析如何在SAP ABAP环境中利用URL实现文件下载的功能,并对代码片段进行深入分析。 ### 核心知识点概述 1. **ABAP环境中的HTTP客户端操作...

    abap学习资料abap

    6. **数据库通信**:讲解如何使用ABAP与数据库交互,如使用SELECT-OPTIONS,SQL语句(INSERT, UPDATE, DELETE, SELECT)等。 7. **屏幕编程**:讨论如何利用屏幕事件和用户接口元素进行用户交互界面的设计。 8. **...

    abap tips abap tips

    abap tips abap tips abap tips abap tips abap tips

    内含ABAP入门资源(11天学会ABAP)以级中级ABAP篇,高级ABAP资料

    - ABAP与数据库交互:学习使用ABAP SQL(Open SQL和Native SQL)与数据库进行高效交互。 - RFC(Remote Function Call):理解如何通过RFC调用其他系统的服务或函数。 通过这些文档的学习,你可以逐步建立起对...

    JAVA与ABAP之间通过RFC互传数据_JCO实例及API

    本篇文章将深入探讨如何使用JCo(Java Connector)库来实现Java与ABAP系统通过RFC(Remote Function Call)进行数据互传的实例,并解析JCO API的使用。 JCo是SAP提供的一个Java库,它为Java应用程序提供了一种与...

    ABAP4简介___ABAP4简介

    ABAP4,全称为Advanced Business Application Programming,是SAP R/3系统中主要的编程语言,也是SAP软件开发的核心工具。它属于第四代编程语言(4GL),其语法结构与Visual Basic和JAVA有相似之处,但与传统的C、...

    ABAP与EXCEL接口统一方法

    ABAP与Excel接口的统一方法主要涉及在SAP ABAP编程中如何通过OLE Automation技术与Microsoft Excel进行交互,实现数据的读取和写入。以下将详细解释这个过程的关键步骤和所需的知识点。 1. **基本介绍** - **单字...

    sapabap开发从入门到精通

    详细介绍了SAPABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库、模块化程序、内表、调试、ABAP数据字典、锁对象、检索帮助、FieldSymbol与数据引用、SAP内存与ABAP内存、报表程序、模块池程序、ABAP...

    sap abap query高级功能

    此外,SAP ABAP Query 还支持逻辑数据库(Logical Databases),例如 VFV,这是一个预定义的逻辑数据库,集成了与账单相关的表格,如价格条件等。逻辑数据库抽象了底层数据结构,使开发者可以更便捷地访问和操作数据...

    ABAP开发从入门到精通-高清自学版 SAP+ABAP开发从入门到精通 SAP开发自学必读 SAP SAP开发自学入门到精通

    随着学习的深入,会涉及ABAP的数据存储,如数据库表(内部表和透明表)的创建和操作,以及如何使用ABAP的数据访问语法来与数据库交互。接着,将学习到ABAP报表编程,包括编写动态SQL和使用ABAP的Report程序来生成...

    abap逻辑数据库ABAP数据库操作

    循环选择则是通过将select语句与write语句结合使用来从表中读取多条记录并进行处理。 在ABAP程序中,可以将数据选择到内表中,这样做的好处是可以对数据进行更复杂的处理,比如将数据从一个表转移到另一个表。通过...

    abap xlsx2 demo 程序

    在ABAP(Advanced Business Application Programming)环境中,处理Excel文件(通常以.xlsx格式存在)是常见的需求,例如数据导入导出、报表生成等。"abap xlsx2 demo 程序"是一个示例项目,旨在展示如何在SAP系统中...

    ABAP长文本的读取与插入

    ABAP长文本的读取与插入 ABAP长文本的读取与插入是ABAP开发中常见的操作,用于读取和插入长文本数据。长文本是指一段较长的文本内容,通常用于存储大段的文字信息。 读取长文本的方法是通过调用函数模块“READ_...

    ABAP帮助文档ABAP帮助文档

    九、ABAP与其他系统集成 1. RFC(Remote Function Call):SAP系统间的远程调用,实现跨系统数据交换。 2. Web服务:使用ABAP开发Web服务,实现与非SAP系统的集成。 十、ABAP调试与测试 1. ABAP Debugger:强大的...

Global site tag (gtag.js) - Google Analytics