Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Processing Internal Data →  Internal Tables →  Processing Statements for Internal Tables →  APPEND 

APPEND - line_spec

Short Reference

Other versions: 7.31 | 7.40 | 7.54

Syntax


... wa 
  | {INITIAL LINE}
 | {LINES OF jtab [FROM idx1] [TO idx2] [USING KEY keyname]} ... .

Alternatives

1. ... wa
2. ... INITIAL LINE
3. ... LINES OF jtab [FROM idx1] [TO idx2] [USING KEY keyname]

Effect

You can append either a workarea wa, an inital row INITIAL LINE or several rows of an internal table jtab.

Alternative 1

... wa

Effect

A new row is appended to which the content of the workarea wa is assigned. wa is a functional operand position. wa may be incompatible with the row type of the internal table and, if necessary, is converted to the row type in accordance with the conversion rules.


Notes

  • If a conflict occurs with an existing unique primary table type, this causes an unhandled exception when appending a single row. In the case of a conflict with a unique secondary table key, a handleable exception of the class CX_SY_ITAB_DUPLICATE_KEY is raised.
  • With the exception, an obsolete short form is possible where wa TO can be omitted, if the internal table has a header line itab with the same name. The statement then uses the header line as the work area implicitly.

Example

Appending square numbers to a sorted table with elementary row type.

DATA: int  TYPE i, 
      itab LIKE SORTED TABLE OF int 
           WITH UNIQUE KEY table_line. 

DO 10 TIMES. 
  int = sy-index ** 2. 
  APPEND int TO itab. 
ENDDO. 

Alternative 2

... INITIAL LINE

Effect

A new row is added in which every component contains the type-specific initial value.
.


Example

Attaching an initial row which is also linked to a field symbol by the ASSIGNING addition. This means that initial rows can be processed directly.

DATA itab TYPE TABLE OF spfli. 

FIELD-SYMBOLS <line> LIKE LINE OF itab. 

APPEND INITIAL LINE TO itab ASSIGNING <line>. 
 <line>-carrid = '...'. 
... 

Alternative 3

... LINES OF jtab [FROM idx1] [TO idx2] [USING KEY keyname]

Effect

The rows of an internal table jtab are added as a block. jtab is a functional operand position.

The inserted rows are sequentially taken from the table jtab. The row type of jtab can be incompatible with the row type of the internal table itab and it is converted to the row type of the target table (if necessary), in accordance with the conversion rules.

The order in which the rows are taken is the same as for the statement LOOP and can also be influenced by specifying a table key keyname after USING KEY. The additions FROM idx1 and TO idx2 have, in relation to jtab, the same syntax and effect as for LOOP.


Note

If a conflict with existing primary or secondary table keys occurs, this always causes an unhandled exception when you append multiple rows.

Continue

Internal Table, Appending Rows