Extract 是SAP中除内表外的另一种大量内存数据处理方式,允许用户动态地存储并排序结构化数据,同时通过循环处理。在一个ABAP程序中,最多只能创建一个未命名的ABAP Extract。Extract的数据行数和列数都是动态可变的。
EXTRACT的行结构分配的语法:FIELD-GROUPS FG.
字段组FG的具体结构则通过下述语句在程序中动态生成:INSERT F1 F2 ... INTO FG.
其中F1、F2是程序定义的内部全局数据对象,其类型需为扁平结构。
填充EXTRACT的语法格式为:EXTRACT FG.
该语句将定义好的字段组填充给Extract,在同一个Extract中可以包含多个不同结构的字段组。如果一个字段组被命名为HEADER,则其被视为是其他所有字段组的标题行,并将作为标准排序关键字使用。
Extract 可以使用SORT语句排序,使用LOOP语句逐行获得字段组,当这些语句中没有内表名称出现时,则视为对Extract进行操作。
Extract在处理具有部分相同字段的多个数据库表时常使用。
例子:
DATA:
F1 TYPE I,
F2 TYPE I.
FIELD-GROUPS HEADER.
INSERT F1 F2 INTO HEADER.
DO 10 TIMES.
F1 = SY-INDEX.
F2 = SY-INDEX ** 2.
EXTRACT HEADER.
ENDDO.
SORT DESCENDING.
LOOP.
WRITE:
/ F1,
F2.
ENDLOOP.