SAP 内存 类 对象 方法


一、内存(http://blog.csdn.net/zzj_rainbow/article/details/16949115     内附详解)
1.主会话(main session):用户登录SAP系统,便开始了与应用服务器之间的主会话,又称外部会话。最多打开6个主会话。
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
二、类
三、对象
四、方法(http://blog.sina.com.cn/s/blog_7c7b16000101bhof.html    内附详解)
 
 
TYPE REF TO 用来定义一个 数据对象,这个数据对象是用来指向另外的数据的; TYPE用来定义一个数据对象,它本身就是一个存储数据的对象,不是用来指向别的数据对象的.
 
 
TYPE REF TO 在SAP里面也是引用,后面跟一个对象:可以是类,可以是 数据类型DATA等等 记住:DATA V_REF TYPE REF TO **,这条语句只是声明了一个 引用变量,并没有创建,要创建引用对象使用CREATE OBJECT V_REF语句
 
 
给REF引用变量赋值:可以使用变量、也可以使用字段 符号 eg。GET REFERENCE OF <fs> INTO V_REF . GET REFERENCE OF g_number INTO V_REF . 获取引用变量的值只能使用以下这种方式: ASSIGN V_REF->* TO <fs>.

"调用的方式
1.调用实例 方法、属性  例子: LO_ALV->REFRESH_TABLE_DISPLAY( )     lo_alv->IS_INIT = ‘X’
2.调用静态 方法、属性   例子:cl_gui_alv_grid=>REFRESH_TABLE_DISPLAY( )     cl_gui_alv_grid=>is_init = 'X'
3.分配引用变量数据地址给指针 例子:ASSIGN LR_DATA->* <FS>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值