RELID IMPORT/EXPORT 数据表中的区域
SRTFD 键值,和RELID一起用来标识数据的唯一
SRTF2 存储数据过大时分行的计数器
CLUSTR 数据长度字段
CLUSTD 数据(长字节字符串)
以上字段为数据簇存储必须字段,另外也可以定义一些自定义字段方便数据的查看读取。
使用:
数据簇的存储:
data:
自定义名称,读取和存储的要保持一致,可以同时EXPORT多个数据对象
gt_data:
需要存储的数据
indx:
存储数据簇的表
me:
数据表中的区域 ,对应字段SRTFD
ls_indx_line:
数据表中其它需要存储数据的字段
lv_srtfd_data:
数据唯一ID (SRTFD),用来唯一标识一份存入的数据
数据簇的读取:
data:
自定义名称,和存储时的一致
gt_data:
存放读取数据的abap数据对象,和IMPORT的数据对象结构一致
indx:
要读取数据簇的表
me:
数据表中的区域 (SRTFD)
ls_indx_line
数据表中数据
lv_srtfd_data:
读取数据时的唯一键值
注意:在使用时数据键值(SRTFD)和区域(RELID)用作标识一条数据,EXPORT 后跟的参数及数据 可以被覆盖,同一键值和区域只会保留最新一次EXPORT的参数及数据.
PS:可以使用USING 附加form调用处理一些特殊情况下的取值。
建议场景:
1. 一些动态数据的存储(如HR薪资数据)
2. 许多不同类型且需要存表的数据(如平台接口数据)
3. 一些绑定关键字的纵深结构数据
4. 其它......
缺点:
1.无法直接从数据库中查看数据
2.数据操作相对OPENSQL不太方便
3. 其它......
参考来源:ABAP 数据簇(IMPORT&EXPORT)_abap import export内存传递_Fireworks_me的博客-CSDN博客
测试数据:
1 DATA : E_XML TYPE STRING, 2 WA TYPE DEMO_INDX_BLOB, 3 ITAB TYPE TABLE OF ZFI_T_002, 4 ITABX TYPE TABLE OF ZFI_T_002, 5 LS_ITAB TYPE ZFI_T_002. "WITH EMPTY KEY 6 7 8 9 DATA: LW_ZHRS0333 TYPE ZHRS0333, "入参 - 日志 10 LW_ZHRS0334 TYPE ZHRS0334. "出参 11 DATA: L_JSON TYPE STRING, 12 L_JSRE TYPE STRING, 13 LW_HEADER TYPE ZTPI_HEADER_01. 14 15 DATA: IV_JSON TYPE STRING . "出json 16 DATA: IV_JSON2 TYPE STRING . "出json 17 DATA: ZIFNO TYPE CHAR20 . 18 DATA(OUT) = CL_DEMO_OUTPUT=>NEW( MODE = 'TEXT' ). 19 20 DATA GUID TYPE GUID_32 . 21 22 23 *&---------------传入参数转换格式 24 CLEAR LW_ZHRS0333. 25 LW_ZHRS0333-CONTROL-SYSID = 'BOOGOO'. 26 LW_ZHRS0333-CONTROL-IFNO = 'ZHRS0333'. 27 LW_ZHRS0333-CONTROL-IFID = 'ZHRFM_JHXX_QUERY'. 28 LW_ZHRS0333-CONTROL-SUSER = SY-UNAME. 29 LW_ZHRS0333-CONTROL-SDATE = SY-DATUM. 30 LW_ZHRS0333-CONTROL-STIME = SY-UZEIT. 31 LW_ZHRS0333-CONTROL-SDATATYPE = 'JSON'. 32 LW_ZHRS0333-DATUM = SY-DATUM. " 未知正确与否 33 34 "传入参数转换 35 L_JSON = /UI2/CL_JSON=>SERIALIZE( EXPORTING DATA = LW_ZHRS0333 ). 36 37 * NEW GUID 38 IF GUID IS NOT INITIAL . 39 CALL FUNCTION 'GUID_CREATE' 40 IMPORTING 41 EV_GUID_32 = GUID. 42 ENDIF. 43 44 45 46 ZIFNO = 'S0000000000000057367' . 47 *IMPORT data = e_xml FROM DATABASE ztpi_data_01(js) ID 'S0000000000000057367'. 48 49 50 * IMPORT DATA = L_JSON FROM DATABASE DEMO_INDX_BLOB(JS) ID ZIFNO . 51 BREAK-POINT. 52 EXPORT DATA = L_JSON TO DATABASE ZTPI_DATA_01(JS) ID ZIFNO . 53 IMPORT DATA = IV_JSON FROM DATABASE ZTPI_DATA_01(JS) ID ZIFNO. 54 *---------调用展示-------------------------- 55 *OUT->WRITE_JSON( IV_JSON ). 56 *OUT->DISPLAY( ). 57 58 LS_ITAB-WERKS = '2000' . 59 LS_ITAB-YGDM = '2000' . 60 LS_ITAB-FYEAR = '2000' . 61 LS_ITAB-FMONTH = '2000' . 62 LS_ITAB-GZRQ = '20220101' . 63 LS_ITAB-BMNAME = 3 . 64 LS_ITAB-YGNAME = 2. 65 LS_ITAB-GZJE = 1 . 66 APPEND LS_ITAB TO ITAB . 67 EXPORT SCATT_TAB = ITAB TO DATABASE DEMO_INDX_BLOB(JS) ID 'aa' . 68 IMPORT SCATT_TAB = ITABX FROM DATABASE DEMO_INDX_BLOB(JS) ID 'aa'. 69 * TO WA ID 'ZFI_T_002'. 70 *CL_DEMO_OUTPUT=>NEW( )->DISPLAY( ITAB ). 71 CL_DEMO_OUTPUT=>NEW( )->DISPLAY( ITABX ). 72 *->WRITE_DATA( WA-TIMESTAMP )->WRITE_DATA( WA-USERID )
本文来自博客园,作者:雨水果冻,转载请注明原文链接:https://www.cnblogs.com/yushuiguodong/p/17685519.html