ABAP memory中的Export和Import

REPORT z_barry_export_import .DATA: BEGIN OF itab1 OCCURS 0 ,
      ff(10) ,
      END OF itab1.
DATA: itab2 LIKE itab1 OCCURS 0 WITH HEADER LINE .
DATA: str1 TYPE string ,
      str2 TYPE string . APPEND '111111111' TO itab1.
APPEND '222222222' TO itab1.
str1 = 'sssssssssss'. ***如果是同名的对象,可以这么写:
EXPORT itab1 TO MEMORY ID 'M1'.
FREE itab1.
IMPORT itab1 FROM MEMORY ID 'M1'.LOOP AT itab1.
  WRITE / itab1-ff.
ENDLOOP. ***如果不是同名的对象,需要加上一个对象名
EXPORT a = itab1 b = str1 TO MEMORY ID 'M2'.
IMPORT a = itab2 b = str2 FROM MEMORY ID 'M2'.LOOP AT itab2.
  WRITE / itab2-ff.
ENDLOOP.

WRITE / str2.

abap submit用法(一)调用外部程序(abap内存获取数据)

在sap中一个程序如何调用外部程序,主要有以下有两种方式:(调用的原理与过程 )
一、call transaction <tcode>
二、submit <program> and return

下面主要写一下如何通过submit在一个程序调用外部程序的,这里面涉及到两个程序,其中一个是调用程序,主要处理数据,整合数据供被调用数据获取并打印;另一个是被调用程序,从调用程序存储在ABAP内存的数据取到并打印输出。
1、调用程序 
*&---------------------------------------------------------------------* 
*& Report  ZTEST_CALL_PROG 
*& 
*&---------------------------------------------------------------------* 
*& Create  by    : 冯飞剑 
*& Create  date  : 2010-1-2 
*& Descriptions  : 测试调用外部程序(调用程序) 
*&---------------------------------------------------------------------* 

REPORT   ZTEST_CALL_PROG.
*----------------------------------------------------------------------* 
*  define internal tables 
*  定义内表 

*----------------------------------------------------------------------* 
DATA : BEGIN  OF  W_DATA,
FID1 TYPE  STRING,
NUM1 TYPE  I ,
NUM2 TYPE  I ,
END    OF  W_DATA.
DATA : T_OUT LIKE  W_DATA OCCURS  0  WITH  HEADER  LINE .


*----------------------------------------------------------------------* 
*  assign value to internal tables 
*  给内表赋值 

*----------------------------------------------------------------------* 
DO  10  TIMES .
IF  SY-INDEX  < 4 .
T_OUT-FID1 = 'A' .
T_OUT-NUM1 = SY-INDEX .
T_OUT-NUM2 = SY-INDEX  + 1 .
ELSEIF  SY-INDEX  < 7 .
T_OUT-FID1 = 'B' .
T_OUT-NUM1 = SY-INDEX  + 1 .
T_OUT-NUM2 = SY-INDEX  + 2 .
ELSE .
T_OUT-FID1 = 'C' .
T_OUT-NUM1 = SY-INDEX .
T_OUT-NUM2 = SY-INDEX  - 1 .
ENDIF .

APPEND  T_OUT.
ENDDO .

*-----------------------------------------------------------------------* 
*  call extenral program 
*  调用外部程序 

*-----------------------------------------------------------------------* 
***  使用ABAP内存进行数据传递 
EXPORT  T_OUT TO  MEMORY  ID  'T_OUT' .

*** 以下两种情况是调用程序被结束,被调用程序开始执行 
* SUBMIT ZWRITE_DATA. 

***  如果使用这种情况程序之间的数据访问就不能ABAP内存访问了 
* LEAVE TO TRANSACTION 'ZGET_DATA'. 

*** 以下两种情况是调用程序被打断,当被调用程序执行完毕之后,调用程序继续执行 
*   插入一个新的INTERNAL SESSION,被调用程序运行完删除SESSION,继续执行调用程序 
SUBMIT  Zwrite_data AND  RETURN .

***  调用事物代码(和SUBMIT <PROGRAM> AND RETURN的效果一样) 
* CALL TRANSACTION 'ZGET_DATA'. 

2、被调用程序
*&---------------------------------------------------------------------* 
*& Report  ZWRITE_DATA 
*& 
*&---------------------------------------------------------------------* 
*& Create  by  :  冯飞剑 
*& Create  date:  2010-1-2 
*& Descriptions:  测试调用外部程序(被调用程序) 
*&---------------------------------------------------------------------* 

REPORT   ZWRITE_DATA.

*----------------------------------------------------------------------* 
*  define internal tables 
*  定义内表 

*----------------------------------------------------------------------* 
data : begin  of  w_data,              "这里定义一个跟调用程序一样的内表结构 
fid1 type  string,
num1 type  i ,
num2 type  i ,
end    of  w_data.
data : t_out like  w_data occurs  0  with  header  line .

*----------------------------------------------------------------------* 
*  get data from sap memory and write out 
*  从SAP内存读取数据然后打印输出 

*----------------------------------------------------------------------* 

import  t_out from  memory  id  'T_OUT' .

FREE  MEMORY  ID  'T_OUT' .

write : sy-uline .

WRITE : '从调用程序取到的数据如下:' .
LOOP  AT  T_OUT.
write : / ' ' ,t_out-fid1, t_out-num1, t_out-num2.
ENDLOOP .
write : sy-uline .

*** 退出程序 
* leave program.

原文地址:https://www.cnblogs.com/cnlmjer/p/4099833.html