Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Declarations →  Declaration Statements →  Data Types and Data Objects →  Declaring Data Objects 

DATA

Short Reference

Other versions: 7.31 | 7.40 | 7.54

Syntax Forms



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 ...
     INCLUDE {TYPE|STRUCTURE} ...
     ...
  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|view [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.

Effect

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.


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.

Continue

DATA - TYPE abap_type

DATA - TYPE, LIKE

DATA - REF TO

DATA - BEGIN OF struc

DATA - TABLE OF

DATA - RANGE OF

DATA - LOB HANDLE

DATA - BOXED

DATA - data_options