Sei sulla pagina 1di 6

ABAP/4

Internal Tables
• Internal Table
– Temporary table stored in RAM on
application server (not on GUI)
– Created & filled during execution of program
– Consists of one or more rows with identical
structure.
– Identical to a field string declaration
• Consist of a body & optional header line.
– Body holds the rows of data
• Defined using the occurs n
– Header line holds current row being
retrieved or added to the table.
• Automatically created using begin of…
• Using like will not create header line.
• Nested internal table does not have header line
ABAP/4
Internal Tables
1data: BEGIN OF itab1 OCCURS 10,
f1,
f2,
f3,
END OF itab1.
data itab2 LIKE ztxlfa1 OCCURS 100.
data itab3 LIKE ztxlfa1 OCCURS 100
with header line.

•BEGIN OF creates header


•LIKE does not create a header line
•LIKE add WITH HEADER LINE creates
a header line.
ABAP/4
Internal Tables
• Adding data to an Internal Table
– APPEND [wa TO] itab.
• Wa must have same structure as row of body
(Explicit work area)
• After APPEND sy-tabix is set to the relative row
number of row just appended.
– APPEND itab to itab is identical to
– APPEND itab. (Default header line –implicit
work area)
– APPEND INITIAL LINE TO itab
• Appends a row containing initial values (blanks
& zeros)
• Same as CLEAR ITAB
• APPEND ITAB
ABAP/4
Internal Tables
• Using the OCCURS addition:
– OCCURS 10 does not limit the
number of rows.
– The system uses the OCCURS
clause as a guideline to determine
how much memory to allocate.
– More is allocated if needed.
– By default use OCCURS 0 – The
system then allocates 8 KB of
memory at run time.
ABAP/4
Internal Tables
• Reading Data from an Internal
Table:
– LOOP AT
• Reads multiple rows from an internal
table into a work area..
f1 f2
1 A XX
Itab 2 B YY
3 C YY

LOOP AT itab.
write: / sy-tabix, itab-f1, itab-f2.
ENDLOOP.
WRITE: / 'done. sy-tabix =', sy-tabix,
/ ' sy-subrc =', sy-subrc.
OUTPUTS:
1 A XX
2 B YY
3 C YY
Done sy-tabix = 99
sy-subrc = 0
ABAP/4
Internal Tables
• Restricting rows read from an
internal table.
– Using FROM, TO and WHERE
• WHERE returns a subset but always
performs a full table scan!.
– LOOP AT itab WHERE f2= ‘YY’
– LOOP AT itab from 2 to 3.
• Use EXIT, CONTINUE or CHECK
to control LOOP AT.

Potrebbero piacerti anche