程序间数据共享与传递(1):EXPORT/IMPORT、SAP/ABAP Memory
EXPORT 语句
EXPORT {p1 = dobj1 p2 = dobj2 ...} | {p1 FROM dobj1 p2 FROM dobj2 ...} | (ptab)
TO | { MEMORY ID id }
| { DATABASE dbtab(ar) [FROM wa] [CLIENT cl] ID id }
| { SHARED MEMORY dbtab(ar) [FROM wa] [CLIENT cl] ID id }
| { SHARED BUFFER dbtab(ar) [FROM wa] [CLIENT cl] ID id }
1. {p1 = dobj1 p2 = dobj2 ...}与 {p1 FROM dobj1 p2 FROM dobj2 ...}的意义一样,只是写法不一样,dobj1、dobj2…变量将会以p1、p2…名称存储到内存或数据库中。p1、p2…名称随便取,如果p1、p2…与将要存储的变量名相同时,只需写变量名即可,即等号与 FROM 后面可以省略。p1、p2…这些名称必须与IMPORT语句中相一致,否则读取不出
2. (ptab):为动态指定需要存储的变量,ptab内表结构要求是这样的:只需要两列,列名任意,但类型需要是字符型;第一列存储如上面的p1、p2…名称,第二列为上面的dobj1、dobj2…变量,如果变量与名称相同,则也可以像上面一样,省略第二列的值。两列的值都必需要大写,实例如下:
TYPES:BEGIN OF tab_type,
para TYPE string,"列的名称任意,类型为字符型
dobj TYPE string,
END OF tab_type.
DATA:text1 TYPE string VALUE `TXT1`,
text2 TYPE string VALUE `TXT2`,
line TYPE tab_type,
itab TYPE STANDARD TABLE OF tab_type.
line-para = 'P1'."值都需要大写
line-dobj = 'TEXT1'."值都需要大写
APPEND line TO itab.
line-para = 'P2'.
line-dobj = 'TEXT2'.
APPEND line TO itab.
EXPORT (itab) TO MEMORY ID 'TEXTS'.
IMPORT p1 = text2 p2 = text1 FROM MEMORY ID 'TEXTS'.
WRITE: / text1,text2."TXT2 TXT1
CLEAR: text1,text2.
IMPORT (itab) FROM MEMORY ID 'TEXTS'.
WRITE: / text1,text2."TXT1 TXT2
3. MEMORY ID:将变量存储到ABAP Memory内存中
4. DATABASE:将变量存储到数据库中;dbtab为簇数据库表的名称(如系统提供的标准表INDX);ar的值为区域ID,它将数据库表的行分成若干区域,它必须被直接指定,且值是两位字符,被存储到簇数据库表中的RELID字段中;id 的值会存储到簇数据表中的RELID字段的下一用户自定义字段中:
TYPES:BEGIN OF tab_type,
col1 TYPE i,
col2 TYPE i,
END OF tab_type.
DATA:wa_indx TYPE demo_indx_table,
wa_itab TYPE tab_type,
itab TYPE STANDARD TABLE OF tab_type.
WHILE sy-index < 100.
wa_itab-col1 = sy-index.
wa_itab-col2 = sy-index ** 2.
APPEND wa_itab TO itab.
ENDWHILE.
wa_indx-timestamp = sy-datum && sy-uzeit.
wa_indx-userid = sy-uname.
EXPORT tab = itab TO DATABASE demo_indx_table(sq) FROM wa_indx ID 'TABLE'.
实例二:
TABLES: indx.
DATA: BEGIN OF i_tab OCCURS 100,
col1 TYPE i,
col2 TYPE i,
END OF i_tab.
DO 3000 TIMES.
i_tab-col1 = sy-index.
i_tab-col2 = sy-index ** 2.
APPEND i_tab.
ENDDO.
indx-aedat = sy-datum.
indx-usera = sy-uname.
indx-pgmid = sy-repid.
"省略了FROM选项,因为已经使用TABLES indx语句定义了名为indx的结构变量了
"Export时会自动将表工作区indx变量中的用户字段存储到簇数据库表中
EXPORT i_tab TO DATABASE indx(HK) ID 'Key'.
WRITE: ' SRTF2',AT 20 'AEDAT',AT 35 'USERA',AT 50 'PGMID'.
ULINE.
"注:下面完全可以使用 IMPORT FROM DATABASE TO wa 语句来读取用户区字段
SELECT * FROM indx WHERE relid = 'HK'AND srtfd = 'Key'.
WRITE: / indx-srtf2 UNDER 'SRTF2',
indx-aedat UNDER 'AEDAT',
indx-usera UNDER 'USERA',
indx-pgmid UNDER 'PGMID'.
ENDSELECT.
SRTF2 AEDAT USERA PGMID
0 2011.10.12 ZHENGJUN YJZJ_TEST2
1 2011.10.12 ZHENGJUN YJZJ_TEST2
2 2011.10.12 ZHENGJUN YJZJ_TEST2
3 2011.10.12 ZHENGJUN YJZJ_TEST2
4 2011.10.12 ZHENGJUN YJZJ_TEST2
5. SHARED MEMORY/BUFFER :将数据存储到SAP应用服务器上的SAP Memory中,可共同一服务上的所有程序访问。两种的作用是一样的,最大不同是在数据达到最大内存限制时的处理方式不同:最大内存限制值分别是通过rsdb/esm/buffersize_kb (SHARED MEMORY)、rsdb/obj/buffersize (SHARED BUFFER)来设置的,当内存占用快满时,SHARED MEMORY必须通过DELETE FROM SHARED MEMORY来手动清理,而SHARED BUFFER会自动删除很少被使用到的数据(当然也可以通过DELETE FROM SHARED BUFFER手动及时的删除不用的数据)
6. FROM wa:wa工作区类型可以参照簇数据库dbtab类型,也可定义成只含有用户数据字段的结构,它是用来设置簇数据库表中SRTF2 与 CLUSTR两个字段之间的用户数据字段(参见簇数据表图中的编号为5的用户数据)的值,然后在Export时将相应的字段存储到SRTF2字段与CLUSTR字段间的相应字段中去。如果使用“TABLES dbtab.”定义语句,可以省略“[FROM wa]”,也会默认将其存储到数据库表中,但如果没有“TABLES dbtab.”这样的定义语句,也没有“[FROM wa]”选项时,将不会有数据存储到簇数据库表中的用户字段中去
7. CLIENT cl:默认为当前客户端,存储到簇数据库表中的MANDT字段中
程序间数据共享与传递(1):EXPORT/IMPORT、SAP/ABAP Memory相关推荐
- 程序间数据共享与传递(3):EXPORT/IMPORT、SAP/ABAP Memory
ABAP Memory(同一用户的同一窗口Session) l 保存数据 EXPORT[FROM ] [FROM ] ... TO MEMORY ID <</span>key&g ...
- 程序间数据共享与传递(2):EXPORT/IMPORT、SAP/ABAP Memory
IMPORT语句 IMPORT {p1 = dobj1 p2 = dobj2 ...} | {p1 TO dobj1 p2 TO dobj2 ...} | (ptab) FROM | { MEMOR ...
- 实现程序间的数据传递
在实际应用中,我们经常需要多个程序相互配合来完成某些特定功能.例如两个应用程序间的同步.互斥:应用程序在起第二份实例时的参数自动传递-.要实现这些功能,就必须能实现程序间的数据传递. 有些特殊的高级技 ...
- 【转载】用Delphi实现程序间的数据传递
在实际应用中,我们经常需要多个程序相互配合来完成某些特定功能.例如两个应用程序间的同步.互斥:应用程序在起第二份实例时的参数自动传递-.要实现这些功能,就必须能实现程序间的数据传递. 有些特殊的高级技 ...
- Android ContentProvider实现两个程序间数据共享demo,跨进程通讯
1.客户端代码: 先实现服务端 SQL创建: public class DBHelper extends SQLiteOpenHelper {// 数据库名private static final S ...
- SAP ABAP ZCL_XML_UTIL 使用介绍:ABAP 和 XML 间的序列化和解析
SAP ABAP ZCL_XML_UTIL 使用介绍:ABAP 和 XML 间的序列化和解析 简介: SAP ABAP ZCL_XML_UTIL 使用介绍:ABAP 和 XML 间的序列化和解析. 关 ...
- 进程间数据传递:Queue,Pipe 进程间数据共享:Manager
进程间数据传递:Queue,Pipe 进程间数据共享:Manager 1.使用multiprocessing模块的Queue实现数据传递 ''' 进程间通讯:Queue,用法跟线程里的Queue一样, ...
- 微信小程序-页面间如何进行传递数据(通信)
前言 在小程序中组件与组件之间的通信是通过在引用组件处,在自定义组件上添加自定义属性实现的,子组件内部通过properties进行接收 更多关于组件与组件之间的通信可参考小程序-实现自定义组件以及自定 ...
- smartform 与调用程序间内表数据传递方法
1.通过表格接口传输 2.通过句柄(export,import)传输 3.通过指针传输: DATA:field(50). "字段长度根据内表所有字段长度总合设定 Field-symbo ...
最新文章
- linux vim project,vim插件project的用法
- R语言多因素方差分析及评估假设检验
- Eclipse如何打开一个现有工程
- CTFshow 命令执行 web48
- 浅谈:数据结构之双链表结构与代码模拟双链表的实现
- QT - 内存泄漏检测
- html自动切换文字,JS实现自动切换文字的导航效果代码
- adb -s emulator-5554 install JDKCast-PAP.apk
- c语言中英文转换器在线转换器,汉英转换器
- php蝠衭厍桴埭钨,有没办法判断输入汉字的笔划数?
- 锐浪报表使用技巧Gird++
- Word域代码实现将形如“图一.1”的题注修改为“图1.1”
- ELK——Kibana 安装使用性能监控工具 APM
- Win8Metro(C#)数字图像处理--2.26图像减法
- c语言数组顺时针转90°
- 2.5.1 HMC扫描小型机
- html测试方案,网站测试方案.doc
- 计算机专业英语-01:Foreword
- 公众号seo排名优化技术,公众号名称优化排名
- luogu P2141 珠心算测验