SAP DATA ABAP Statements

Get Example source ABAP code based on a different SAP table
  


Standard SAP Help for DATA

DATA

Short Reference
• TYPE STATICS
• LIKE STATICS
• TYPE CONSTANTS
• LIKE CONSTANTS
• DATA ABAP Statement
• LIKE CLASS-DATA
• TYPE CLASS-DATA
• TYPE DATA
• LIKE DATA


ABAP Syntax


Using Predefined Types

1 DATA { {var[(len)] TYPE abap_type [DECIMALS dec]}
| {var TYPE abap_type [LENGTH len] [DECIMALS dec]} }
[VALUE val|{IS INITIAL}]
[READ-ONLY].

Reference to Existing Types

2 DATA var { {TYPE [LINE OF] type}
| {LIKE [LINE OF] dobj} }
[VALUE val|{IS INITIAL}]
[READ-ONLY].

Reference Variables

3 DATA ref { {TYPE REF TO type}
| {LIKE REF TO dobj} }
[VALUE IS INITIAL]
[READ-ONLY].

Structures

4 DATA BEGIN OF struc [READ-ONLY].
...
DATA comp ...
ABAP Code Snippet
...
DATA END OF struc.

Internal Tables

5 DATA itab { {TYPE tabkind OF [REF TO] type}
| {LIKE tabkind OF dobj} }
[tabkeys] [INITIAL SIZE n]
[WITH HEADER LINE]
[VALUE IS INITIAL]
[READ-ONLY].

Ranges Table

6 DATA rtab {TYPE RANGE OF type}|{LIKE RANGE OF dobj}
[INITIAL SIZE n]
[WITH HEADER LINE]
[VALUE IS INITIAL]
[READ-ONLY].

LOB Handle Structures

7 DATA dtype TYPE dbtab [READ-ONLY]
lob_handle_type FOR lob_handle_columns
[lob_handle_type FOR lob_handle_columns
... ].

Static Boxed Components

8 DATA struc TYPE struc_type BOXED.

What does it do? The statement DATA declares a variable of any data type. The declared data object is visible within the current context as of this position. Within the declaration part of a class or an interface, DATA declares an instance attribute whose validity is bound to an instance of a class.

This statement has various syntax forms, which allow elementary data types, reference types, structured types, and table types to be defined. With the exception of two additions (VALUE and READ-ONLY), these are the same syntax forms as in the statement TYPES. In this way, a new data type can be defined when declaring a data object. The most important difference compared with the statement TYPES is that a data type defined using DATA (and not derived from an existing type) is available only as a property of the declared data object and is not independent. This kind of data type is bound to its data object.

For the definition of a structure struc, any data declarations specified are enclosed in two DATA statements with the additions BEGIN OF and END OF. Here a struc structure is declared that contains the enclosed data objects comp as a struc-comp component. Structure definitions can be nested.

For the names var, ref, struc, comp, itab, and rtab, the naming conventions apply.

Latest notes:The syntax of the DATA statement corresponds to the syntax of the TYPES statement, with the exception of two additions. In this way, a new data type can be defined when declaring a data object. The most important difference compared with the statement TYPES is that a data type defined using DATA (and not derived from an existing type) is available only as a property of the declared data object and is not independent. This kind of data type is bound to its data object.
Data objects that are declared in a program, but cannot be accessed there statically, produce a warning message in the enhanced program check.
An inline declaration of variables can be made using the declaration operator DATA.
The obsolete variant DATA ... COMMON PART declares interface work areas.
INTHINT There still is an undocumented addition NON-LOCAL to
INTHINT DATA, CONSTANTS, and STATICS that can be used in
INTHINT function modules and subroutines. This addition
INTHINT changes local data objects into global data objects of
INTHINT the program.

Return to menu