Demystifying Field Groups in
Demystifying Field Groups in
Brief Definition
A field group does not reserve storage space for the fields but
contains pointers to existing fields.> Internal take up memory.
Depending on how much memory your system has . > Once you have
declared the possible record types as field groups and defined their
structure you can fill the extract dataset using the following
statements: EXTRACT. When the first EXTRACT statement occurs in a
program the system creates the extract dataset and adds the first
extract record to it. In each subsequent EXTRACT statement the new
extract record is added to the dataset EXTRACT HEADER. When you
extract the data the record is filled with the current values of the
corresponding fields. As soon as the system has processed the first
EXTRACT statement for a field group the structure of the
corresponding extract record in the extract dataset is fixed. You can
no longer insert new fields into the field groups and HEADER. If you
try to modify one of the field groups afterwards and use it in another
EXTRACT statement a runtime error occurs. By processing EXTRACT
statements several times using different field groups you fill the
extract dataset with records of different length and structure. Since
you can modify field groups dynamically up to their first usage in an
EXTRACT statement extract datasets provide the advantage that you
need not determine the structure at the beginning of the program.
Helper Statements
INSERT f1 f2 INTO fg
EXTRACT fg
SORT BY fg
LOOP … ENDLOOP
INSERT f1 f2 INTO fg
———————
EXTRACT fg
———-
This will combine all the fields in the fieldgroup and write them to a
sequential dataset as a single record.
SORT BY fg
———-
LOOP.
AT ***
……
….
ENDAT.
AT ***
…..
….
ENDAT.
ENDLOOP.
Sample Code
*&———————————————————————*
*& Report ZSPFLI *
*& *
*&———————————————————————*
INSERT:
SPFLI-CARRID
SPFLI-CONNID
SFLIGHT-FLDATE
SBOOK-BOOKID
INTO HEADER,
SPFLI-CARRID
SPFLI-CONNID
SPFLI-CITYFROM
SPFLI-AIRPFROM
SPFLI-CITYTO
SPFLI-AIRPTO
SPFLI-DEPTIME
SCARR-CARRNAME
INTO SPFLI_FG,
SFLIGHT-FLDATE
SFLIGHT-SEATSMAX
SFLIGHT-SEATSOCC
SFLIGHT-PRICE
INTO SFLIGHT_FG,
SBOOK-BOOKID
SBOOK-CUSTOMID
SBOOK-CUSTTYPE
SBOOK-SMOKER
INTO SBOOK_FG.
SORT.
LOOP.
AT SPFLI_FG.
FORMAT COLOR COL_HEADING.
WRITE: / SCARR-CARRNAME,
SPFLI-CONNID, SPFLI-CITYFROM,
SPFLI-AIRPFROM, SPFLI-CITYTO, SPFLI-AIRPTO, SPFLI-DEPTIME.
FORMAT COLOR OFF.
ENDAT.
AT SFLIGHT_FG.
WRITE: /15 SFLIGHT-FLDATE, SFLIGHT-PRICE, SFLIGHT-SEATSMAX,
SFLIGHT-SEATSOCC.
ENDAT.
AT SBOOK_FG.
WRITE: /30 SBOOK-BOOKID, SBOOK-CUSTOMID,
SBOOK-CUSTTYPE, SBOOK-SMOKER.
ENDAT.
ENDLOOP.