SAP 内存管理-SAP内存

SAP内存:主会话之间的数据共享(主会话:即单开的SAP窗口,SAP最多支持同时打开6个主会话)

引言

在MM03事务下输入一个物料号A后,若再打开一个外部回话,进入物料相关的事务代码(包含有需要输入物料号的文本框),此时会话中将自动填充物料号A。这是因为使用了SAP内存,SAP内存使用SPA/GPA技术传递程序间数据。(传递内存参数来给其他程序输入字段赋值的操作叫做“SPA/GPA技术”)SAP/GPA参数指的是SAP内存的参数,可在表TPARA中进行确认。SPA/GPA技术只限相同的用户共享内存,(又叫User Specific参数)

实例解释:

A、输入事务代码MM03,再输入物料号:

B、输入事务代码MM02时,系统将自动填充物料号:

这是因为使用了SAP内存,按F1进入技术信息可以查看到Parameter ID:

     

该参数ID保存在表TPARA中,用户可以通过以下两种方式在表内维护新的SAP参数(PID:PARAMETER ID):

           方法1:SE80->Workbench->Edit Object

           方法2:SM30->TPARA表,维护条目

 

SAP内存应用

1、PARAMETERS、SELECT-OPTION 后接MEMORY ID

        在SE38下报表程序的选择界面上的参数PARAMETERSSELECT-OPTION变量使用MEMORY ID来连接字段与参数:

例如在程序 ZTEST20200508_01下有参数P_DATE并且设置了MEMORY ID ZMID1

在另一程序ZTEST20200511_01下也有参数P_DATE并且设置了MEMORY ID ZMID1

其中一个程序输入P_DATE参数值后(运行,系统会记录到SAP内存):

 

可以在另一程序界面下看见输入的参数值(由系统自动带出SAP内存值):

注意:同样也可以在同一个窗口的内部会话内使用SAP内存实现数据共享:

     

运行程序YTEST_20200514_02,并在界面中输入参数GV_DATE的值后,内部调用程序YTEST_20200514_01,调用的程序界面也会自动填充GV_DATE1参数值:

    

2、使用SET/GET PARAMETER ID

          解释:SET PARAMETER ID 'RID' FIELD <FIELD NAME1>语句,系统将值存储在SPA参数‘RID’中的<FIELD NAME1>.中。标识符‘RID’必须在SAP表TPARA中定义。如果SPA参数‘RID’已经包含值,则SET PARAMETER语句会将其覆盖(用<FIELD NAME1>.的内容)。在被调事务的PBO模块中,使用GET PARAMTER ID 'RID' FIELD <FIELD NAME2>获取值

实例:SE80或者SM30在表TPARA中创建了名称为ZMID2的参数ID:

在程序A中使用了SET PARAMETER ID 'ZMID2' FIELD  GV_DATE2的语句:

(运行过A后)在程序B中使用了GET PARAMETER ID 'ZMID2' FIELD  GV_DATE2的语句:

输出B中的GV_DATE2:

注意:由于使用了SAP内存,PID保存的字段值会一直存在,直到该用户退出本次系统登录。

特别的:

在数据元素中若设置了PARAMETER ID,则使用同一数据元素的参数也会有上述效果。在数据元素中设置了PID:

(需在表TPARA中创建该参数ID,也可双击参数ID创建)

在程序A中应用含有该参数ID的数据元素:

在程序B中同样应用该参数ID的数据元素:

运行程序B输出为:

 

其他应用:

1、使用HIDE语句,将字段值保存到HIDE内存领域

2、Debug界面查询Goto->System Areas->SAP Memory.可以查看SAP内存

 

 

 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Willie Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值