二维码

[基础语法] SAP内存和ABAP内存的简单介绍说明

Twilight发表于 2014-03-28 20:36zhongguomao 最后回复于 2017-08-28 15:24 [复制链接] 3171 1

        在编写程序的过程中不同的程序之间经常需要相互传值,SET / GET PAREMETER 和 IMPORT / EXPORT 是SAP 提供的两种方式。前者的值是放在SAP内存,后者是放在ABAP内存。这两种内存的主要的区别就是作用范围了,SAP内存是对当前登录所有会话都可以访问到的,除非用户退出系统不然在整个登录期间都有效。ABAP内存只是针对一个会话,你用哪个会话设置的那么就只能在当前的会话才可以取到值,新开的或者是其他的会话是访问不到的。

下面通过两段简单的代码来说明下
代码1.设置内存值
  1. DATA:str(20) TYPE c,
  2.      pstr(20) TYPE c.

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

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

  9. WRITE:'SET OK'.
复制代码
代码2.获取值
  1. DATA:str(15) TYPE c,
  2.      pstr(20) TYPE c.
  3. GET PARAMETER ID 'PARAMETER' FIELD pstr.
  4. IMPORT str FROM MEMORY ID 'EXPORT'.
  5. WRITE :'PARAMETER VALUE:',pstr,/,'EXPORT VALUE:',str.
复制代码
代码3.设置新的值
  1. DATA:str(20) TYPE c,
  2.      pstr(20) TYPE C.
  3. "ABAP内存 EXPORT
  4. str = 'ABAP EXPORT NEW'.
  5. EXPORT str TO MEMORY ID 'EXPORT'.
  6. "SAP内存 SET PAREMETER
  7. pstr = 'SAP SET PAREMTER NEW'.
  8. SET PARAMETER ID 'PARAMETER' FIELD pstr.
  9. 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:
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/GET parameters方法;
    ABAP内存使用 EXPORT 和 IMPORT  方法;
    2、共享范围不同
    SAP内存可以被所有的主session访问,内存数据可以同一个session中不同程序之间,或者不同session之间;
    ABAP只能在同个session的不同程序之间共享数据;
    3、作用范围不同
    SAP内存在整个终端session时间内都有效;
    ABAP内存只能在一个session时间内有效;
    4、使用一般原则
    SAP内存用于屏幕默认值输入;
    ABAP内存用于模块之间传替数据
回复

使用道具 举报

zhongguomao
总结的不错。
回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表