SAP-ABAP程序间数据传递

本文介绍了SAP ABAP中不同程序间的数据传递方法,包括ABAPMemory、SAPMemory、SHAREDMEMORY和DATABASE方式。这些方法适用于同用户或不同用户场景,详细阐述了每种方式的使用条件、操作步骤和注意事项,为ABAP开发者提供了灵活的数据交互方案。
摘要由CSDN通过智能技术生成

SAP-ABAP程序间数据传递

场景:不同程序间,增强或者其它需要传递数据时,可能会用到上一个运行代码中的值,这时候我们参考采用内存传递的方式。(类似于全局参数,但比全局参数更加灵活)

1.ABAP Memory方式(同用户)

这种方式一般用在同一个窗口,运行某程序后,通过CALL TRANSACTION/SUBMIT或其他代码跳转到其他程序时。

DATA ::matnr TYPE mara-matnr.
zmatnr = '60000001'.
"将数据上传memory:
EXPORT zmatnr TO MEMORY ID 'MERY_MATNR'.
然后在另外的程序就可以接收到这个内存ID的数据:
IMPORT matnr FROM MEMORY ID 'MERY_MATNR'.

==注意:==程序要先运行EXPORT,再运行IMPORT才能接收到值。另外,不在一个窗口时,是接收不到内存值的。

2.SAP Memory 方式(同用户)

如果值要用在外部(External Mode),那么应该使用下方的方式。

"填充内存值
SET PARAMETER ID ''MERY_MATNR' FIELD zmatnr.
"接收内存值
GET PARAMETER ID ''MERY_MATNR' FIELD zmatnr.

注意:以上的两种方式都是指同一用户运行程序时的方法。

3.SHARED MEMORY或SHARED BUFFER方式(不同用户)

"填充内存值
EXPORT zmatnr TO SHARED BUFFER indx(aa) ID 'MERY_MATNR'.
"接收内存值
IMPORT zmatnr FROM SHARED BUFFER indx(aa) ID 'MERY_MATNR'.

本质上,这种方式是把值存在在了服务器上,所以,如果不进行释放或删除(或者服务器重启)的话,那么这个值将一直存在,所以用完内存值后要及时清理。

4.DATABASE-数据库方式

这种方式会在表中增加一行数据,而上面的SHARED MEMORY不会。

EXPORT zmatnr TO DATABASE indx(aa) ID 'MERY_MATNR'.
"indx会增加一行数据,语句中的indx,aa对应下图中的标注
IMPORT zmatnr TO DATABASE indx(aa) ID 'MERY_MATNR'.

在这里插入图片描述
平时用到比较多的还是前面3种方式,大家酌情选用,哈哈!
以上。
欢迎关注公众号,每日更新:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI云书

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

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

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

打赏作者

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

抵扣说明:

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

余额充值