程序间的数据传递

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值