程序间数据共享与传递(2):EXPORT/IMPORT、SAP/ABAP Memory
IMPORT語(yǔ)句
IMPORT?{p1?=?dobj1 p2?=?dobj2?...} | {p1?TO?dobj1 p2?TO?dobj2?...} |?(ptab)
?FROM?| {?MEMORY ID?id?}?
??| {?DATABASE??????dbtab(ar)?[TO?wa] [CLIENT?cl]?ID?id?}?
??| {?SHARED MEMORY?dbtab(ar)?[TO?wa] [CLIENT?cl]?ID?id?}?
??| {?SHARED BUFFER?dbtab(ar)?[TO?wa] [CLIENT?cl]?ID?id?}
從簇?cái)?shù)據(jù)表中讀取數(shù)據(jù),各項(xiàng)參數(shù)與EXPORT是一樣的,請(qǐng)參考EXPORT各項(xiàng)解釋
TYPES:BEGIN OF?tab,
????col1?TYPE i,
????col2?TYPE i,
??END OF?tab.
DATA:wa_indx?TYPE?demo_indx_table,
??wa_itab?TYPE?tab,
??itab????TYPE STANDARD TABLE OF?tab.
IMPORT?tab?=?itab?FROM DATABASE?demo_indx_table(sq)?TO?wa_indx?ID?'TABLE'.
WRITE:?wa_indx-timestamp,?wa_indx-userid.
ULINE.
LOOP AT?itab?INTO?wa_itab.
??WRITE:?/ wa_itab-col1,?wa_itab-col2.
ENDLOOP.
?
實(shí)例二:
TABLES?indx.
DATA:?BEGIN OF?jtab?OCCURS?100,
??col1?TYPE i,
??col2?TYPE i,
END OF?jtab.
"注意:i_tab的名稱不能是其他的,必須與EXPORT語(yǔ)句中的分類
"存儲(chǔ)標(biāo)簽名一樣。如果i_tab本身又是一個(gè)jtab類型的內(nèi)表,則
"TO后面的jtab可以省略
IMPORT?i_tab?TO?jtab?FROM DATABASE?indx(hk)?ID?'Key'.
"注:在該程序中并沒(méi)有明顯的為indx工作區(qū)設(shè)置值,但由于使用了
"TABLES indx.語(yǔ)句定義了與indx簇?cái)?shù)據(jù)庫(kù)表同名的結(jié)構(gòu)變量,所以
"上面IMPORT會(huì)默認(rèn)加上使用?TO indx?選項(xiàng)
WRITE:?/?'AEDAT:',?indx-aedat,
??????/?'USERA:',?indx-usera,
??????/?'PGMID:',?indx-pgmid.
SKIP.
WRITE?'JTAB:'.
LOOP AT?jtab?FROM?1?TO?5.
??WRITE:?/ jtab-col1,?jtab-col2.
ENDLOOP.
AEDAT: 2011.10.12
USERA: ZHENGJUN
PGMID: YJZJ_TEST2
?
JTAB:
?????????1???????????1
?????????2???????????4
?????????3???????????9
?????????4??????????16
?????????5??????????25
IMPORT DIRECTORY語(yǔ)句
IMPORT DIRECTORY?INTO?itab?FROM DATABASE?dbtab(ar)?[TO wa] [CLIENT cl]?ID id.
該語(yǔ)句的作用用來(lái)讀取存儲(chǔ)到簇?cái)?shù)據(jù)表中的變量信息,如存儲(chǔ)名是什么、以什么樣的類型存儲(chǔ)的、數(shù)據(jù)長(zhǎng)度等(有點(diǎn)類似反射)。itab?為cdir詞典類型的內(nèi)表,其結(jié)構(gòu)與各字段作用:
Component | Type | Meaning |
NAME | CHAR(30) | Name of the parameter under which a data object was saved. |
OTYPE: | CHAR(1) | General type of the data object saved. The following values are permitted: "F" for elementary, flat data objects, "G" for strings, "R" for?flat structures, "S" for?deep structures, "T" for internal tables with flat row type and "C" for tables with a deep row type. |
FTYPE | CHAR(1) | More specific type of the data object saved. For elementary data objects and internal tables with a elementary row type, the data or row type is returned in accordance with the table of return values fromDESCRIBE FIELD ... TYPE?("a", "b", "C", "D", "e", "F", "g", "I", "N", "P", "s", "T", "X", "y"). In the case of flat structures and internal tables with flat structured row types, "C" is returned. In the case of?deepstructures and internal tables with deep structured row types, "v" is returned. In the case of a table that has an internal table as a row type, "h" is returned. |
TFILL | INT4 | Length filled of the saved data object. For strings the length of the content in bytes is returned and for internal tables the number of rows is returned. The value 0 is returned for other data objects. |
FLENG | INT2 | Length of saved data object or saved table row in bytes. The value 8 is returned for strings. |
?
DATA:?f1?TYPE?decfloat16,
??????f2?TYPE TABLE OF i,
??????f3?TYPE?spfli.
DATA?itab?TYPE STANDARD TABLE OF?cdir.
DO?10?TIMES.
??APPEND?sy-index TO?f2.
ENDDO.
EXPORT?par1?=?f1 par2?=?f2 par3?=?f3?TO DATABASE?demo_indx_table(hk)?ID?'HK'.
IMPORT?DIRECTORY?INTO?itab?FROM DATABASE?demo_indx_table(hk)?ID?'HK'.
NAME | OTYPE: | FTYPE | TFILL | FLENG |
"PAR1" | "F" | "a" | 0 | 8 |
"PAR2" | "T" | "I" | 10 | 4 |
"PAR3" | "R" | "C" | 0 | 168 |
DELETE FROM語(yǔ)句
DELETE FROM?{ {MEMORY?ID?id}?
????????????| {DATABASE??????dbtab(ar)?[CLIENT?cl]?ID?id}?
????????????| {SHARED?MEMORY?dbtab(ar)?[CLIENT?cl]?ID?id}?
????????????| {SHARED?BUFFER?dbtab(ar)?[CLIENT?cl]?ID?id} }.
用來(lái)清理EXPORT語(yǔ)句的存儲(chǔ)的數(shù)據(jù)
其中DELETE FROM MEMORY ID?id.與FREE MEMORY ID?id.作用一樣
?
DATA:?id????TYPE c?LENGTH?4?VALUE?'TEXT',
??????text1?TYPE?string?????VALUE?'Tina',
??????text2?TYPE?string?????VALUE?'Mike'.
EXPORT?p1?=?text1 p2?=?text2?TO SHARED BUFFER?demo_indx_table(xy)?ID id.
IMPORT?p1?=?text2 p2?=?text1?FROM SHARED BUFFER?demo_indx_table(xy)?ID id.
...
DELETE FROM SHARED BUFFER?demo_indx_table(xy)?ID id.
"此語(yǔ)句會(huì)執(zhí)行后,sy-subrc返回4
IMPORT?p1?=?text2 p2?=?text1?FROM SHARED BUFFER?demo_indx_table(xy)?ID id.
總結(jié)
以上是生活随笔為你收集整理的程序间数据共享与传递(2):EXPORT/IMPORT、SAP/ABAP Memory的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 程序间数据共享与传递(1):EXPORT
- 下一篇: 程序间数据共享与传递(3):EXPORT