SAP DATA INLINE

Get Example source ABAP code based on a different SAP table
  


ARTICLE
• DATA ABAP_OPERATOR

DATA - Inline Declaration

Syntax
... DATA(var) ...

Effect
A declaration expression with the declaration operator DATA declares a variable var used as an operand in the current writer position . The declared variable is visible statically in the program from 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 every compatible declaration position. The date type of the variable is determined by the operand type. It must be possible to derive this type statically in full.
Wenn die Variable var mehrmals innerhalb der Anweisung mit dem
Deklarationsausdruck DATA(var) vorkommt, muss dieser vor den
anderen Nennungen aufgeführt sein mit einer Ausnahme: Bei Zuweisungen
mit dem Gleichheitszeichen = wird erst die rechte und dann die
linke Seite ausgewertet.
A variable var declared inline cannot be used in a reader position of the same statement.

ABAP_PGL Only use inline declarations locally.

Notes
A valid statement with an inline declaration of a variable can generally be interpreted as a short form for a declaration statement used as a direct prefix. DATA var TYPE ...
... var ... Exceptions to this rule occur only if an identically named data object from a more global context is used in the same statement. This field symbol is still valid and is only hidden after the statement.
INTHINT The opposite direction is not always possible,
INTHINT namely if the same variable is used multiply in one
INTHINT statement and if the sequence rule cannot be fulfilled.
Just like the statement DATA, an inline declaration does not open a local context for the current statement block. An inline declaration for a variable can only be made once within a context and the variable cannot yet be declared there using DATA.
The operand position and the types of other operands can be included in the static derivation of the operand type. If the type of a different operand cannot be identified statically (perhaps because it is specified as a generically typed field symbol), either a suitable standard type is used or no inline declaration is possible.
If more than one equally valid operand type is possible in the same declaration position, the recommended preferred data type is generally used.
INTHINT If a field named 'data' is already declared in a context,
INTHINT the syntax 'data(...)' at an operand position is not
INTHINT an inline declaration but an offset length access to 'data'.
INTHINT Only if 'data' is not yet declared, the syntax
INTHINT 'data(data)' declares 'data'.

Example
Inline declaration of an internal table as a 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.