在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开发详解与高端应用》这本书深入探讨了SAP ABAP(Advanced Business Application Programming)编程语言,这是SAP系统中用于开发业务应用程序的关键技术。ABAP是SAP平台上的核心编程语言,用于创建自定义...
在SAP系统中,ABAP调用ABAP Proxy是一种常见的技术操作,用于在不同系统间或者同一系统内的组件之间实现通信。ABAP Proxy是SAP提供的一个强大的接口技术,它允许开发者创建安全、高效的远程调用机制。接下来,我们将...
ABAP 4.7版本开始支持SOAP和RESTful Web服务,使得SAP系统能与其他系统进行集成和数据交换。 9. 调试和测试: SAP提供了强大的调试工具,如ABAP Debugger,用于查找和修复代码错误,同时支持单元测试和集成测试。...
2. **ABAP RESTful Programming Model (RPMB)**:为了与AI服务通信,开发者可能需要使用ABAP RESTful Programming Model创建和调用RESTful服务。RPMB提供了一种基于HTTP和JSON的标准方法,使ABAP应用能与其他系统...
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 ...
- 数据源:ALV通常基于内部表或结构,这些数据结构需要与业务逻辑关联。 - 交互性:ALV支持多种用户交互,如单击、双击、拖放等,开发者需要定义相应的事件处理。 - 自定义功能:可以通过添加增强或覆盖标准函数来...
根据给定文件的信息,本文将围绕“ABAP外部链接下载文件”的主题展开,详细解析如何在SAP ABAP环境中利用URL实现文件下载的功能,并对代码片段进行深入分析。 ### 核心知识点概述 1. **ABAP环境中的HTTP客户端操作...
6. **数据库通信**:讲解如何使用ABAP与数据库交互,如使用SELECT-OPTIONS,SQL语句(INSERT, UPDATE, DELETE, SELECT)等。 7. **屏幕编程**:讨论如何利用屏幕事件和用户接口元素进行用户交互界面的设计。 8. **...
abap tips abap tips abap tips abap tips abap tips
- ABAP与数据库交互:学习使用ABAP SQL(Open SQL和Native SQL)与数据库进行高效交互。 - RFC(Remote Function Call):理解如何通过RFC调用其他系统的服务或函数。 通过这些文档的学习,你可以逐步建立起对...
本篇文章将深入探讨如何使用JCo(Java Connector)库来实现Java与ABAP系统通过RFC(Remote Function Call)进行数据互传的实例,并解析JCO API的使用。 JCo是SAP提供的一个Java库,它为Java应用程序提供了一种与...
ABAP4,全称为Advanced Business Application Programming,是SAP R/3系统中主要的编程语言,也是SAP软件开发的核心工具。它属于第四代编程语言(4GL),其语法结构与Visual Basic和JAVA有相似之处,但与传统的C、...
ABAP与Excel接口的统一方法主要涉及在SAP ABAP编程中如何通过OLE Automation技术与Microsoft Excel进行交互,实现数据的读取和写入。以下将详细解释这个过程的关键步骤和所需的知识点。 1. **基本介绍** - **单字...
详细介绍了SAPABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库、模块化程序、内表、调试、ABAP数据字典、锁对象、检索帮助、FieldSymbol与数据引用、SAP内存与ABAP内存、报表程序、模块池程序、ABAP...
此外,SAP ABAP Query 还支持逻辑数据库(Logical Databases),例如 VFV,这是一个预定义的逻辑数据库,集成了与账单相关的表格,如价格条件等。逻辑数据库抽象了底层数据结构,使开发者可以更便捷地访问和操作数据...
随着学习的深入,会涉及ABAP的数据存储,如数据库表(内部表和透明表)的创建和操作,以及如何使用ABAP的数据访问语法来与数据库交互。接着,将学习到ABAP报表编程,包括编写动态SQL和使用ABAP的Report程序来生成...
循环选择则是通过将select语句与write语句结合使用来从表中读取多条记录并进行处理。 在ABAP程序中,可以将数据选择到内表中,这样做的好处是可以对数据进行更复杂的处理,比如将数据从一个表转移到另一个表。通过...
在ABAP(Advanced Business Application Programming)环境中,处理Excel文件(通常以.xlsx格式存在)是常见的需求,例如数据导入导出、报表生成等。"abap xlsx2 demo 程序"是一个示例项目,旨在展示如何在SAP系统中...
ABAP长文本的读取与插入 ABAP长文本的读取与插入是ABAP开发中常见的操作,用于读取和插入长文本数据。长文本是指一段较长的文本内容,通常用于存储大段的文字信息。 读取长文本的方法是通过调用函数模块“READ_...
九、ABAP与其他系统集成 1. RFC(Remote Function Call):SAP系统间的远程调用,实现跨系统数据交换。 2. Web服务:使用ABAP开发Web服务,实现与非SAP系统的集成。 十、ABAP调试与测试 1. ABAP Debugger:强大的...