Skip to main content
 首页 » SAP

SAP内存 和 ABAP内存 的简单介绍说明

2022年07月22日47落叶无声
在编写程序的过程中不同的程序之间经常需要相互传值,SET / GET PAREMETER 和 IMPORT / EXPORT是SAP提供的两种方式。前者的值是放在SAP内存,后者是放在ABAP内存。这两种内存的主要的区别就是作用范围了,SAP内存是对当前登录所有会话都可以访问到的,除非用户退出系统不然在整个登录期间都有效。ABAP内存只是针对一个会话,你用哪个会话设置的那么就只能在当前的会话才可以取到值,新开的或者是其他的会话是访问不到的。
下面通过两段简单的代码来说明下
代码1.设置内存值
DATA:str(20) TYPE c,
      pstr(20) TYPE C.

"ABAP内存 EXPORT
str = 'ABAP EXPORT'.
EXPORT str TO MEMORY ID 'EXPORT'.

"SAP内存 SET PAREMETER
pstr = 'SAP SET PAREMTER'.
SET PARAMETER ID 'PARAMETER' FIELD pstr.

WRITE:'SET OK'.

代码2.获取值
DATA:str(15) TYPE c,
      pstr(20) TYPE c.
GET PARAMETER ID 'PARAMETER' FIELD pstr.
IMPORT str FROM MEMORY ID 'EXPORT'.
WRITE :'PARAMETER VALUE:',pstr,/,'EXPORT VALUE:',str.

代码3.设置新的值
DATA:str(20) TYPE c,
      pstr(20) TYPE C.
"ABAP内存 EXPORT
str = 'ABAP EXPORT NEW'.
EXPORT str TO MEMORY ID 'EXPORT'.
"SAP内存 SET PAREMETER
pstr = 'SAP SET PAREMTER NEW'.
SET PARAMETER ID 'PARAMETER' FIELD pstr.
WRITE:'SET OK'.

首先执行代码1
同一会话执行第二个程序 
输出:两个都有值
PARAMETER VALUE: SAP SET PAREMTER
EXPORT VALUE: ABAP EXPORT

/OSE38 新会话执行代码2
输出: PARAMTER 有值   EXPORT 没值
PARAMETER VALUE: SAP SET PAREMTER
EXPORT VALUE:

3.使用其他账户登录 执行代码2
输出:两个都没有值
PARAMETER VALUE: SAP SET PAREMTER
EXPORT VALUE:

4.新的账号运行代码3原来的账号和新的账号分别执行代码2(这个说明了SAP内存是一个用户一个,不共享各自独立的)
新的账号的输出
PARAMETER VALUE: SAP SET PAREMTER NEW
EXPORT VALUE: ABAP EXPORT NEW

原来的输出
PARAMETER VALUE: SAP SET PAREMTER
EXPORT VALUE: ABAP EXPORT

   
附:以下一段是从网上拷过来的,关于SAP内存和ABAP内存的比较,挺好的就拷贝过来看看
    1、读取和使用方法不同
    SAP内存使用SET/GETparameters方法;
    ABAP内存使用 EXPORT 和 IMPORT  方法;
    2、共享范围不同
    SAP内存可以被所有的主session访问,内存数据可以同一个session中不同程序之间,或者不同session之间;
    ABAP只能在同个session的不同程序之间共享数据;
    3、作用范围不同
    SAP内存在整个终端session时间内都有效;
    ABAP内存只能在一个session时间内有效;
    4、使用一般原则
    SAP内存用于屏幕默认值输入;
    ABAP内存用于模块之间传替数据

本文参考链接:https://saper.blog.csdn.net/article/details/8939087