Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Creating Objects →  CREATE DATA →  CREATE DATA - TYPE abap_type 

creating elementary data objects

The example demonstrates the creation of elementary data objects.

Other versions: 7.31 | 7.40 | 7.54

Source Code

REPORT demo_create_simple_data.

PARAMETERS: type(10) TYPE c,
            length   TYPE i,
            decimals TYPE i.

CLASS create_demo DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS main.
  PRIVATE SECTION.
    CLASS-METHODS create_data IMPORTING
                                value(typ) TYPE c
                                value(len) TYPE i
                                value(dec) TYPE i
                              RETURNING
                               value(dref) TYPE REF TO data
                              RAISING cx_sy_create_data_error.
ENDCLASS.

CLASS create_demo IMPLEMENTATION.
  METHOD main.
    DATA dref TYPE REF TO data.
    FIELD-SYMBOLS <fs> TYPE ANY.
    TRY.
        dref = create_data( typ = type
                            len = length
                            dec = decimals ).
        ASSIGN dref->* TO <fs>.
        DESCRIBE FIELD <fs> TYPE type
                            LENGTH length IN BYTE MODE
                            DECIMALS decimals.
        WRITE: type, length, decimals.
      CATCH cx_sy_create_data_error.
        WRITE: 'Error creating', type, length, decimals.
    ENDTRY.
  ENDMETHOD.
  METHOD create_data.
    TRANSLATE typ TO LOWER CASE.
    CASE typ.
      WHEN 'd' OR 'decfloat16' OR 'decfloat34' OR 'f' OR 'i'
               OR 'string' OR 't' OR 'xstring'.
        CREATE DATA dref TYPE (typ).
      WHEN 'c' OR 'n' OR 'x'.
        CREATE DATA dref TYPE (typ) LENGTH len.
      WHEN 'p'.
        CREATE DATA dref TYPE p LENGTH len DECIMALS dec.
      WHEN OTHERS.
        RAISE EXCEPTION TYPE cx_sy_create_data_error.
    ENDCASE.
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  create_demo=>main( ).

Description

The create_data method creates all elementary data objects that are possible with built-in ABAP types, depending on the parameters passed.