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相关推荐

  1. 程序间数据共享与传递(3):EXPORT/IMPORT、SAP/ABAP Memory

    ABAP Memory(同一用户的同一窗口Session) l  保存数据 EXPORT[FROM ]  [FROM ] ... TO MEMORY ID <</span>key&g ...

  2. 程序间数据共享与传递(2):EXPORT/IMPORT、SAP/ABAP Memory

    IMPORT语句 IMPORT {p1 = dobj1 p2 = dobj2 ...} | {p1 TO dobj1 p2 TO dobj2 ...} | (ptab)  FROM | { MEMOR ...

  3. 实现程序间的数据传递

    在实际应用中,我们经常需要多个程序相互配合来完成某些特定功能.例如两个应用程序间的同步.互斥:应用程序在起第二份实例时的参数自动传递-.要实现这些功能,就必须能实现程序间的数据传递. 有些特殊的高级技 ...

  4. 【转载】用Delphi实现程序间的数据传递

    在实际应用中,我们经常需要多个程序相互配合来完成某些特定功能.例如两个应用程序间的同步.互斥:应用程序在起第二份实例时的参数自动传递-.要实现这些功能,就必须能实现程序间的数据传递. 有些特殊的高级技 ...

  5. Android ContentProvider实现两个程序间数据共享demo,跨进程通讯

    1.客户端代码: 先实现服务端 SQL创建: public class DBHelper extends SQLiteOpenHelper {// 数据库名private static final S ...

  6. SAP ABAP ZCL_XML_UTIL 使用介绍:ABAP 和 XML 间的序列化和解析

    SAP ABAP ZCL_XML_UTIL 使用介绍:ABAP 和 XML 间的序列化和解析 简介: SAP ABAP ZCL_XML_UTIL 使用介绍:ABAP 和 XML 间的序列化和解析. 关 ...

  7. 进程间数据传递:Queue,Pipe 进程间数据共享:Manager

    进程间数据传递:Queue,Pipe 进程间数据共享:Manager 1.使用multiprocessing模块的Queue实现数据传递 ''' 进程间通讯:Queue,用法跟线程里的Queue一样, ...

  8. 微信小程序-页面间如何进行传递数据(通信)

    前言 在小程序中组件与组件之间的通信是通过在引用组件处,在自定义组件上添加自定义属性实现的,子组件内部通过properties进行接收 更多关于组件与组件之间的通信可参考小程序-实现自定义组件以及自定 ...

  9. smartform 与调用程序间内表数据传递方法

    1.通过表格接口传输 2.通过句柄(export,import)传输 3.通过指针传输: DATA:field(50). "字段长度根据内表所有字段长度总合设定    Field-symbo ...

最新文章

  1. linux vim project,vim插件project的用法
  2. R语言多因素方差分析及评估假设检验
  3. Eclipse如何打开一个现有工程
  4. CTFshow 命令执行 web48
  5. 浅谈:数据结构之双链表结构与代码模拟双链表的实现
  6. QT - 内存泄漏检测
  7. html自动切换文字,JS实现自动切换文字的导航效果代码
  8. adb -s emulator-5554 install JDKCast-PAP.apk
  9. c语言中英文转换器在线转换器,汉英转换器
  10. php蝠衭厍桴埭钨,有没办法判断输入汉字的笔划数?
  11. 锐浪报表使用技巧Gird++
  12. Word域代码实现将形如“图一.1”的题注修改为“图1.1”
  13. ELK——Kibana 安装使用性能监控工具 APM
  14. Win8Metro(C#)数字图像处理--2.26图像减法
  15. c语言数组顺时针转90°
  16. 2.5.1 HMC扫描小型机
  17. html测试方案,网站测试方案.doc
  18. 计算机专业英语-01:Foreword
  19. 公众号seo排名优化技术,公众号名称优化排名
  20. luogu P2141 珠心算测验

热门文章

  1. SQL 在OPENQUERY中使用参数
  2. 老外听到哪些中式英文是崩溃的?(转自外贸Jackson)
  3. 美团点评资深产品专家刘远飞:了解业务要弄清楚这三个问题
  4. 干货整理及PPT下载福利 2017(上海)人工智能产品经理大会
  5. 你是别人眼中的废物产品经理吗?
  6. MySQL 隐式类型转换导致条件等号的异常
  7. 12月27日云栖精选夜读:实人认证 - 阿里云实人认证(公测)发布
  8. session开启慢的原因及解决办法
  9. js通过ajax发送header信息php接收
  10. 解决百度云大文件不能被其他下载器下载