ABAP 数据簇(IMPORT&EXPORT)
数据簇INDX表IMPORT FROM DATABASE/EXPORT TO DATABASE无固定格式数据存储直接存储纵深结构的数据RELID IMPORT/EXPORT 数据表中的区域SRTFD键值,和RELID一起用来标识数据的唯一SRTF2存储数据过大时分行的计数器CLUSTR 数据长度字段CLUSTD 数据(长字节字符串)
背景:
应用开发过程中,数据存储必不可少,常见的存储方式为创建对应数据格式的数据库表并将数据对应存表。
在跨应用传递数据时,可以使用 IMPORY/EXPORT MEMORY 直接将数据存入内存,此时不用定义额外的内容。
如果我们需要像存入内存一样将待使用数据存入数据库中,而不必根据数据创建大量的数据库表,那么可以使用数据簇。
简介:
SAP 中使用数据簇形式存储数据的表有表INDX和表PCL2(薪资结果)。
以INDX表为例,如下图
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. 其它......

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)