`
evangxli
  • 浏览: 230722 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

ABAP 写入内存:ABAP memory中的Export和Import

阅读更多

转:cnblogs(没有具体地址,抱歉哈!)

 
上图是SAP 运行时内存,SAP程序运行期间的内存管理与用户会话相关,运行时内存包括SAP内存以及ABAP内存两大部分。 首先说一下以下的概念:
1. 主会话(main session): 用户登录SAP系统,便开始了与应用服务器之间的主会话,又称外部会话(External session)。最多打开6个主会话。注: 这里的Session和Mode应该是一个意思,有错误请更正哈。 

2. internal session: 主会话中运行可执行程序或者模块池程序,就开始一个内部会话。其中的程序内存区域是主会话abap内存中分配的一部分。在一个主会话中,只有当前程序的内部会话内存区是活动的,如果当前程序是被其他的程序所调用,内存呈堆栈状,当前程序不能使用其他非活动程序中的数据。

 

3. ABAP memory: 每个主会话内部都有一个ABAP内存区域,可以通过export to memory 和import from memory语句在该内存的程序堆栈之间进行数据传递。如果一个程序内部调用另一个程序,可以先使用export将数据存入内存,在调用程序中通过import语句读取该程序,退出被调用程序前也可以使用个同样方式将数据传回主程序。

 

4. SAP memory: SAP内存是所有的会话都可以访问的内存区域,因此数据可以通过SAP内存在各个会话之间共享。在ABAP程序中,SET PARAMETER 和 GET PARAMETER语句用于访问SAP内存中所存储的SPA/GPA参数。该参数与屏幕元素相连接,因而可以通过SAP内存进行屏幕的默认参数设定。

 

其他细节:
调用序列: 如果一个程序在运行期间调用其他程序,则可能出现调用那个并中止当前程序或调用并返回两种情况。中止当前程序即新程序的内部绘会话完全替代调用程序,并将原有程序的内存删除;调用并返回则生成一个调用序列,并生成一个内存堆栈,并在调用的程序结束后,将恢复上一级调用程序的内存状态。这样在调用和被调用程序间进行数据传递,需要使用同一个主会话中公用的ABAP内存。


程序装载: 每次开始运行或者调用一个abap程序时,系统将一个程序实例装载入ABAP内存。在内部会话中第一个被装载的程序称为主程序。被调用的程序或者全局类,该程序或类的一个实例将被装载至ABAP内存并且相关的数据和对象将保持至主程序结束。每次一个(l,m,f,s类型的)程序实例被装载时,都触发LOAD-OF-PROGRAM事件(类库除外),因此该事件对于每一个程序在内部会话中仅装载一次,可以用于整个程序的初始化。

 

关于对象的创建: 当create object语句创建abap对象时,一个类的实例将被装载至内部会话,所有内部会话中的程序和对象都可以使用该实例。从而该对象的指针可以被传递进入外部过程(例如子程序,功能模块和类方法)。应用服务器中没有分配可以被多个事务共享的对象内存区域,对象引用变量不能存储在ABAP内存或者SAP内存中。可以用数据库存储(数据库提供persistence service)解决这个问题。

 

例:内存程序堆栈之间进行数据传递EXPORT TO MEMORY 和IMPORT FROM MEMORY

EXPORT TO MEMORY

 
IMPORT FROM MEMORY

 

 

 

  • 大小: 38.6 KB
  • 大小: 73.7 KB
  • 大小: 74.3 KB
分享到:
评论

相关推荐

    ABAP试题(选择题和问答题)

    在 ABAP 中,语句 `write at 12 XXX` 将编译报错,因为 `at` 语句只能用于指定输出格式和位置,而不能用于变量赋值。 2. ABAP 试题 2:直接进入创建程序的 TCODE 在 ABAP/4 中,TCODE SE80 是直接进入创建程序、...

    Abap.rar_SAP_SAP开发_abap

    而ABAP(Advanced Business Application Programming)是SAP系统内部的一种编程语言,用于开发和定制SAP应用。本文将深入探讨ABAP的基础知识及其在SAP开发中的应用。 首先,让我们了解什么是ABAP。ABAP是SAP在1980...

    1500+页的ABAP图文教程+SAP标准教程

    15. SAP HANA与ABAP:了解在SAP HANA平台上开发ABAP应用的特殊考虑和优化技术。 通过这1500+页的图文教程,你将不仅能够学习到ABAP的基本概念和技术,还能深入理解SAP系统中的业务流程和数据模型。此外,SAP标准...

    Modern ABAP Cheat Sheet: ABAP 整洁语法之道

    本 Cheat 展示了最重要、最有用的 ABAP 新功能,省略了新的 ABAP SQL 语法和 ABAP 内置函数,可打印查阅。自 NetWeaver ABAP 7.40 以来,ABAP 语言发生了巨大的变化。增加了许多新的语言结构。当然,尤其是许多新的...

    SAP_ABAP_4.7.rar_SAP abap4_abap_abap chm_abap 4_abap4

    - 数据类型:ABAP有多种数据类型,如CHAR、INT、FLOAT等,用于定义变量。 - 语句结构:包括选择、循环、条件判断等基本控制流程。 - 报表程序:用于生成报表的程序,包括内部表处理和数据输出。 - 对话模块:...

    abap初学最好的教材

    - 数据类型:ABAP有多种预定义的数据类型,如CHAR、INT、FLOAT等,以及自定义数据类型如STRUCTURE和TABLE。 - 变量声明:使用DATA关键字声明变量,例如`DATA: lv_string TYPE string.` - 控制结构:包括IF-THEN-...

    ABAP-Swagger:使用Swaggeropenapi规范公开ABAP REST服务

    使用公共方法在ABAP中开发课程2:实现接口ZIF_SWAG_HANDLER,并注册公共方法(示例 ) 3:现在可以通过rest访问这些方法() 4:可以通过REST服务的基本目录中的swagger.html访问安装和要求通过安装需要本地JSON支持...

    ABAP-Library:有用的ABAP代码段

    ABAP库 该存储库代表我的个人可重用ABAP代码库。 随意使用或贡献! 为了组织起见,文件位于干净的子文件夹中。 这里的许多类还表示示例实现。 这些文件都不包含任何公司特定的功能逻辑-因此没有“机密”被泄露。 ...

    [SAP ABAP开发技术总结]ABAP Enhancement:第二部分

    [SAP ABAP开发技术总结]ABAP Enhancement:第二部分 介绍了SAP ABAP用到的各种增强,图文并茂,讲解详细,是学习ABAP开发非常好的资料 第一代:基于源码增强(子过程subroutine:Form) 通过SPRO->IMG查找用户出口 ...

    实战SAP程序开发-从实例学ABAP编程.rar

    - 数据类型:ABAP提供了丰富的内置数据类型,如I(整型)、N(数值型)、F(浮点型)、C(字符型)、D(日期型)等,用于声明变量。 - 变量与常量:变量用于存储数据,常量则一旦定义就不能修改。 - 表达式与...

    ABAP程序相互调用

    EXPORT T_ITAB TO MEMORY 'ZHR_IT0008'. ``` 在被调用的程序中,我们可以使用IMPORT关键字来导入数据。例如: ```abap IMPORT T_ITAB FROM MEMORY 'ZHR_IT0008'. ``` 三、带Select-options的Submit用法 带Select-...

    ABAP中文帮助文档

    ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于开发SAP系统中的业务...深入学习并实践这些内容,将有助于你熟练掌握ABAP编程,从而更好地在SAP环境中开发和维护企业应用。

    从实例学SAP ABAP编程(1-19章).pdf

    由于给定的文件信息中只提供了标题、描述和部分内容,且部分内容并没有涉及到实际的技术知识点,而是关于文档阅读器的推荐信息,因此根据您的要求,我将直接依据标题“从实例学SAP ABAP编程(1-19章)”生成与SAP ABAP...

    abap开发宝典(中文版)

    4. ABAP动态编程:ABAP支持动态编程,允许在运行时创建和执行代码。这部分内容将涉及动态数据类型、动态SQL和动态方法调用。 5. ABAP报表和事务码:报告是ABAP开发的核心部分,书中会详细解析如何编写交互式报告和...

    实战SAP程序开发——从实例学SAP.ABAP编程

    SAP ABAP(Advanced Business Application Programming)是SAP系统中用于开发应用程序的主要编程语言。本篇文章将深入探讨通过实例学习SAP ABAP编程的关键知识点,旨在帮助初学者及有经验的开发者更好地理解和实践...

    SAP ABAP 电子书

    《工程师突击:SAP+ABAP实用程序开发攻略》则可能更专注于实际应用,它可能详细讲解了ABAP编程中的关键技术和工具,如ABAP Workbench、ABAP Object-Oriented Programming(面向对象编程)、Function Modules、BADI...

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

    - 数据类型:ABAP中的基本数据类型如CHAR, NUMC, INT, FLOAT等,以及它们的用途。 - 变量声明:如何定义和使用变量,以及变量的作用域。 - 内存管理:理解工作区和内部表的概念,以及如何有效地使用它们存储和...

    ABAP WorkBenchABAP WorkBench

    ABAP WorkBench是SAP系统中的核心开发环境,它为ABAP(Advanced Business Application Programming)程序员提供了全面的工具集,用于开发、测试和维护SAP应用。在深入探讨ABAP WorkBench的知识点之前,我们需要理解...

    SAP Note 338627 库存管理组件ABAP源码修改:取消转换为大写的命令

    由于界面字段转化只允许大写字母输入的问题,使用ABAP指令'TRANSLATE TO UPPER CASE'进行转换的方法存在缺陷。原因在于该操作具有语言特性,但在实际应用中无法指定特定的语言来执行转换,这使得转换成为了一个有...

Global site tag (gtag.js) - Google Analytics