ABAP - Keyword Documentation →  ABAP - Programming Language →  Declarations →  Inline Declarations → 

DATA, Inline Declaration

Syntax

... DATA(var) ...

Effect

A declaration expression with the declaration operator DATA declares a variable var that is used as an operand in the current write position. The declared variable is visible statically in the program as of DATA(var) and is valid in the current context. The declaration is made when the program is compiled, regardless of whether the statement is actually executed.

The declaration operator DATA can be specified in any designated declaration position. The date type of the variable is determined by the operand type. It must be possible to derive this type completely statically.

A variable var declared inline cannot be used in a read position of the same statement.

If a data object called data already exists in the current context, DATA(var) is interpreted as a substring access and not as an inline declaration. A syntax warning indicates this. DATA(var) only works as an inline declaration if there is no data object called data yet.

Programming Guideline

Only use inline declarations locally.

Hints

Example

Inline declaration of an internal table as the target field of an assignment and inline declaration of an appropriate work area in a LOOP.

TYPES t_itab TYPE TABLE OF i
             WITH NON-UNIQUE KEY table_line.

DATA(itab) = VALUE t_itab( ( 1 ) ( 2 ) ( 3 ) ).
LOOP AT itab INTO DATA(wa).
  ...
ENDLOOP.

Example

Inline declaration of an internal table as a target field of a SELECT statement and inline declaration of a variable for the table transformed to HTML. The data type of the variable is determined by the return value of the method.

SELECT *
       FROM scarr
       INTO TABLE @DATA(itab).

DATA(html) = cl_demo_output=>get( itab ).

Example

If a data object called data does not exist in the current context, the first statement is an inline declaration and the second statement executes a substring access.

DATA(data) = '1'.
DATA(data) = '2'.