Cannot Use Short Forms in Line Operations

You cannot use the short form in any of the operations performed on the lines of a table in ABAP Objects. Instead you must always work with an explicit work area or field symbol.

In ABAP Objects, the following statements cause an error message:

Operations for all table types

INSERT TABLE itab.
COLLECT itab.
READ TABLE itab ...
MODIFY TABLE itab ...
MODIFY itab ... WHERE ...
DELETE TABLE itab.
LOOP AT itab ...

Operationen for index tables


APPEND itab.
INSERT itab ...
MODIFY itab ...

Correct syntax:

Operations for all table types

INSERT wa INTO TABLE itab.
COLLECT wa INTO itab.
READ TABLE itab ... INTO wa | ASSIGNING <fs>.
MODIFY TABLE itab FROM wa ...
MODIFY itab FROM wa ... WHERE ...
DELETE TABLE itab FROM wa.
LOOP AT itab INTO wa ... | ASSIGNING <fs> ...

Operations for index tables

APPEND wa TO itab.
INSERT wa INTO itab ...
MODIFY itab FROM wa ...

Cause:

The reasons for this lie in the unambiguous separation of tables from work areas. This programs easier to read. Since you can from now on declare only tables without a header in classes, this is only a constraint in local classes when accessing global tables in the main program.

Overview:

Replacement for Obsolete Statements ABAP Objects