内存变量 Export / Import ...To Memory ID 'ID_Name' / From Memory ID 'ID_Name' 导出/读取的使用
内存变量 Export / Import ...To Memory ID 'ID_Name' / From Memory ID 'ID_Name' 导出/读取的使用
--e.g:
说明:
导出到内存
Export Field1
Field2
Field..n
To Memory ID ‘ID_NAME’
将内存字段 Field1,Field2 ….Field..n 装入Cluster Memory 内存巨集中,在内那中的标志为 ID_NAME.
其中的内存字段可以是程序已定义的字段,也可是现给的。
如:
EXPORT TEXT1
TEXT2 FROM 'Literal'
TO MEMORY ID 'text'.
Text1 是在程序中已定义的, 而Text2 是现给的,赋值的形式为 ,TEXT2 Form ‘value’
从内存中读取
Import Field1
Field2 TO Field_X
Form Memory ID ‘ID_NAME’.
将内存标起块 ID_NAME 中读取内存字段。
这里有几点要说明:
1. 如果指定内存块的内存字段中不存在Field1 字段,则Field 得不到内存中的值。但却返回sy-subrc ,很奇怪。
2. 如果你的读取程序中 与导入程序存在相同的定义结构,那么你在读时可以直接使用,否则你必须赋值给第三者,
赋值方式如: Field2 To Field_X
--Program Source Code--
REPORT ZZW_MEMORY_E_I .
DATA TEXT1(10) VALUE 'Exporting'.
DATA ITAB LIKE SBOOK OCCURS 10 WITH HEADER LINE.
DO 5 TIMES.
ITAB-BOOKID = 100 + SY-INDEX.
APPEND ITAB.
ENDDO.
EXPORT TEXT1
TEXT2 FROM 'Literal'
TO MEMORY ID 'text'.
EXPORT ITAB
TO MEMORY ID 'table'.
SUBMIT ZZW_MEMORY_I_1 AND RETURN.
à
REPORT ZZW_MEMORY_I_1 .
DATA: TEXT1(10),
TEXT3 LIKE TEXT1 VALUE 'Initial'.
DATA ITAB_X LIKE SBOOK OCCURS 10 WITH HEADER LINE.
IMPORT TEXT3 FROM MEMORY ID 'text'.
WRITE: / SY-SUBRC, TEXT3.
IMPORT TEXT2 TO TEXT1 FROM MEMORY ID 'text'.
WRITE: / SY-SUBRC, TEXT1.
IMPORT TEXT2 TO TEXT3 FROM MEMORY ID 'text'.
WRITE: / SY-SUBRC, TEXT3.
CLEAR: TEXT3.
IMPORT TEXT1 TO TEXT3 FROM MEMORY ID 'text'.
WRITE: / SY-SUBRC, TEXT3.
IMPORT ITAB TO ITAB_X FROM MEMORY ID 'table'.
LOOP AT ITAB_X.
WRITE: / ITAB_X-BOOKID.
ENDLOOP.
--Result--
Program
0 Initial
0 Literal
0 Literal
0 Exporting
00000101
00000102
00000103
00000104
00000105