程序间的数据传递

本文介绍如何使用SAPMEMORY与ABAPMEMORY在不同会话间传递数据。包括通过ID存储和读取数据集群,设置屏幕字段自动填充等功能。适用于希望了解这两种内存机制应用场景的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有很多方式向一个被调用的程序传递数据
1,通过被调用程序的接口(subroutine的接口,FM,标准选择屏幕等)
2,通过ABAP MEMORY
3,通过SAP MEMORY
4,通过数据库表
5,通过应用服务器或者前台的文件
 
使用EXPORT ... TO MEMORY ID 语句,可以复制当前程序变量的值作为一个DATA CLUSTER存储到ABAP MEMORY,ID最大32字符长,能够唯一识别这个DATA CLUSTER。EXPORT到同一个ID会覆盖掉相应的DATA CLUSTER。
使用IMPORT ... FROM MEMORY ID 语句,可以把数据从DATA CLUSTER中读到ABAP程序相应的变量中去。
当导入和导出的时候,源和目标变量必须格式一致。
使用FREE MEMORY ID 会删除相应的DATA CLUSTER,使用FREE MEMORY语句(不带ID附件条件)将会删除当前的external session中的整个的ABAP MEMORY.
 
SAP MEMORY可以用语句GET PARAMETER ID FILED 和SET PARAMETER ID FILED 来读和写。你可以在TPARA表中自己定义PARAMETER ID,但是ID的名字不可以超过20个字符长。
SAP MEMORY用的最多的情况还是在屏幕上,如果你想屏幕上的一个输入字段能够自动显示SAP MEMORY中相应PARAMETER ID的值,并把它作为建议用户输入的值,那么必须满足几个条件:
-屏幕输入字段对应的DATA ELEMENT必须和这个PARAMETER ID关联;
-屏幕输入字段的GET PARAMETER ID功能必须激活;
-程序中不会有地方来改变这个输入字段,意思就是这个输入字段在程序中的值是其初始值。
我们经常用下面的语句通过SAP MEMORY来向屏幕传递数据
SET PARAMETER ID FIELD .
CALL TRANSACTION AND SKIP FIRST SCREEN.
 
SAP MEMORY和ABAP MEMORY的适合使用的地方:
SAP MEMORY适合不同external session之间的internal session间的传递数据(数据量太大的情况下考虑用簇表)
ABAP MEMORY适用同一个external session间的不同internal session间的传递数据(注意LEAVE TO TRANSACTION 不适用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值