ABAP 数据簇(IMPORT&EXPORT)

背景:

        应用开发过程中,数据存储必不可少,常见的存储方式为创建对应数据格式的数据库表并将数据对应存表。

        在跨应用传递数据时,可以使用 IMPORY/EXPORT MEMORY 直接将数据存入内存,此时不用定义额外的内容。

        如果我们需要像存入内存一样将待使用数据存入数据库中,而不必根据数据创建大量的数据库表,那么可以使用数据簇。

简介:

        SAP 中使用数据簇形式存储数据的表有表INDX和表PCL2(薪资结果)。

以INDX表为例,如下图

ABAP 数据簇(IMPORT&EXPORT)_第1张图片

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,sap,abap)