ABAP/ABAP Objects - Inline-Datentyp-Deklarationen

  Entwicklung von und mit ABAP / ABAP Objects   Home  Profil  Links  Datenschutz  Impressum

Deklaration von Variablen

Explizite Daten-Deklaration
 
DATA lv_var1 TYPE i.
lv_var1 = 2.
Inline-Daten-Deklaration
 
DATA(lv_var1) = 2.
 
DATA lv_var2.
lv_var2 = lv_var1.
DATA(lv_var2) = lv_var1.
 
DATA lv_result TYPE char5.
sample_method(
  EXPORTING iv_input = iv_test
  IMPORTING iv_result = lv_result ).
sample_method(
  EXPORTING iv_input = iv_test
  IMPORTING iv_result = DATA(lv_result) ).
 
DATA lv_count TYPE i.
FIND 'l' IN 'Hello World!' MATCH COUNT lv_count.
FIND 'l' IN 'Hello World!' MATCH COUNT DATA(lv_count).
 
DATA lv_char TYPE char LENGTH 17.
lv_char = 'Text vom Typ CHAR'.
DATA(lv_char) = 'Text vom Typ CHAR'.
  "Hinweis: grundsätzlich wird der Datentyp CHAR verwendet
 
DATA lv_string TYPE string.
lv_string = 'Text vom Typ STRING'.
DATA(lv_string) = `Dies ist ein String vom Typ CHAR-Like`.
  "Hinweis: Zuweisung erfolgt mittels ` anstelle von '
 
DATA lv_lines1 TYPE i.
DESCRIBE TABLE lt_itab1 LINES lv_lines1.
DATA(lv_lines1) = LINES(lt_itab1).
 
DATA lv_lines2 TYPE i.
lv_lines2 = LINES(lt_itab2).
DATA(lv_lines2) = LINES(lt_itab2).
 
DATA:
  lo_material TYPE REF TO zcl_material,
  lv_material_type TYPE string,
  lv_material_text TYPE string VALUE 'Boskop',
  lv_material_status TYPE string.
CREATE OBJECT lo_material EXPORTING type = 'Apfel'.
CALL METHOD lo_material->update_properties
  EXPORTING
    update = lv_material_text
  IMPORTING
    model = lv_material_type
    status = lv_material_status.
DATA(lo_material) = NEW zcl_material( type = 'Apfel' ).
DATA(lv_material_text) = 'Boskop'.
lo_material->update_properties(
  EXPORTING update = lv_material_text
  IMPORTING model  = DATA(lv_material_type)
            status = DATA(lv_material_status) ).
 

 

Deklaration einer internen Tabelle

Explizite Daten-Deklaration
 
DATA lt_sflight1 TYPE STANDARD TABLE OF sflight WITH EMPTY KEY.
SELECT * FROM sflight INTO TABLE lt_sflight1.
Inline-Daten-Deklaration
 
SELECT * FROM sflight INTO TABLE @DATA(lt_sflight1).
 
DATA lt_sflight2_tmp LIKE lt_sflight1.
lt_sflight2_tmp = lt_sflight1.
DATA(lt_sflight2_tmp) = lt_sflight1.
 
TYPES:
  BEGIN OF ts_sflight3,
    carrid TYPE sflight-carrid,
    connid TYPE sflight-connid,
    fldate TYPE sflight-fldate,
  END OF ts_sflight3.
DATA lt_sflight3 TYPE STANDARD TABLE OF ts_sflight3 WITH EMPTY KEY.
SELECT carrid connid fldate FROM sflight
  INTO TABLE lt_sflight3.
SELECT carrid, connid, fldate FROM sflight
  INTO TABLE @DATA(lt_sflight3).
 

 

Deklaration einer Workarea einer interne Tabelle

Explizite Daten-Deklaration
 
DATA ls_itab1 LIKE LINE OF lt_itab1.
LOOP AT lt_itab1 INTO ls_itab1.
  "... Verarbeitung
ENDLOOP.
Inline-Daten-Deklaration 
 
LOOP AT lt_itab1 INTO DATA(ls_itab1).
  "... Verarbeitung
ENDLOOP.
 
FIELD-SYMBOLS <ls_itab2> LIKE LINE OF lt_itab2.
LOOP AT lt_itab2 ASSIGNING <ls_itab2>.
  "... Verarbeitung
ENDLOOP.
LOOP AT lt_itab2 ASSIGNING FIELD-SYMBOL(<ls_itab2>).
  "... Verarbeitung
ENDLOOP.
 
DATA ls_itab3 LIKE LINE OF lt_itab3.
READ TABLE lt_itab3 INTO ls_itab3 INDEX 1.
IF sy-subrc EQ 0.
  "... Verarbeitung
ELSE.
  "... Fehlerbehandlung
ENDIF.
READ TABLE lt_itab3 INTO DATA(ls_itab3) INDEX 1.
IF sy-subrc EQ 0.
  "... Verarbeitung
ELSE.
  "... Fehlerbehandlung
ENDIF.
 

 
FIELD-SYMBOLS <ls_itab4> LIKE LINE OF lt_itab4.
READ TABLE lt_itab4 ASSIGNING <ls_itab4> INDEX 1.
IF sy-subrc EQ 0.
  "... Verarbeitung
ELSE.
  "... Fehlerbehandlung
ENDIF.
READ TABLE lt_itab4 ASSIGNING FIELD-SYMBOL(<ls_itab4>) INDEX 1.
IF sy-subrc EQ 0.
  "... Verarbeitung
ELSE.
  "... Fehlerbehandlung
ENDIF.
 

 
FIELD-SYMBOLS <ls_itab5> LIKE LINE OF lt_itab5.
READ TABLE lt_itab5 ASSIGNING <ls_itab5> INDEX 1.
IF sy-subrc EQ 0.
  "... Verarbeitung
ELSE.
  "... Fehlerbehandlung
ENDIF.
TRY.
    DATA(ls_itab5) = lt_itab5[ 1 ].
    "... Verarbeitung
  CATCH cx_sy_itab_line_not_found.
    "... Fehlerbehandlung
ENDTRY.
 

 

Objekte

Explizite Daten-Deklaration
 
DATA lo_object TYPE REF TO cl_class_instance.
CREATE OBJECT lo_object.
Inline-Daten-Deklaration
 
DATA(lo_object) = NEW cl_class_instance( ).
 

 
DATA:
  lo_material TYPE REF TO zcl_material,
  lv_material_type TYPE string,
  lv_material_text TYPE string VALUE 'Boskop',
  lv_material_status TYPE string.
CREATE OBJECT lo_material EXPORTING type = 'Apfel'.
CALL METHOD lo_material->update_properties
  EXPORTING
    update = lv_material_text
  IMPORTING
    model = lv_material_type
    status = lv_material_status.
DATA(lo_material) = NEW zcl_material( type = 'Apfel' ).
DATA(lv_material_text) = 'Boskop'.
lo_material->update_properties(
  EXPORTING update = lv_material_text
  IMPORTING model  = DATA(lv_material_type)
            status = DATA(lv_material_status) ).
 

 
DATA:
  lo_material TYPE REF TO zcl_material,
  lv_material_type TYPE string,
  lv_material_text TYPE string VALUE 'Boskop',
  lv_material_status TYPE string.
CREATE OBJECT lo_material EXPORTING type = 'Apfel'.
lo_material->update_properties(
  EXPORTING
    update = lv_material_text
  IMPORTING
    model = lv_material_type
    status = lv_material_status ).
DATA(lo_material) = NEW zcl_material( type = 'Apfel' ).
DATA(lv_material_text) = 'Boskop'.
lo_material->update_properties(
  EXPORTING update = lv_material_text
  IMPORTING model  = DATA(lv_material_type)
            status = DATA(lv_material_status) ).
 

 
DATA:
  lt_itab      TYPE STANDARD TABLE OF sflight WITH EMPTY KEY,
  lo_alv_table TYPE REF TO cl_salv_table,
  lo_function  TYPE REF TO cl_salv_functions_list,
  lx_msg       TYPE REF TO cx_salv_msg,
  lx_not_found TYPE REF TO cx_salv_not_found,
  lx_root      TYPE REF TO cx_root.
SELECT * FROM sflight INTO TABLE lt_itab.
TRY.
    cl_salv_table=>factory(
      IMPORTING r_salv_table = lo_alv_table
      CHANGING  t_table      = lt_itab ).
    lo_function = lo_alv_table->get_functions( ).
    lo_function->set_all( ).
    lo_alv_table->display( ).
  CATCH cx_salv_msg INTO lx_msg.
    "... Fehlerbehandlung
  CATCH cx_salv_not_found INTO lx_not_found.
    "... Fehlerbehandlung
  CATCH cx_root INTO lx_root.
    "... Fehlerbehandlung
ENDTRY.
DATA:
  lo_alv_table TYPE REF TO cl_salv_table.
SELECT * FROM sflight INTO TABLE @DATA(lt_itab).
TRY.
    cl_salv_table=>factory(
      IMPORTING r_salv_table = lo_alv_table
      CHANGING  t_table      = lt_itab ).
    DATA(lo_function) = lo_alv_table->get_functions( ).
    lo_function->set_all( ).
    lo_alv_table->display( ).
  CATCH cx_salv_msg INTO DATA(lx_msg).
    "... Fehlerbehandlung
  CATCH cx_salv_not_found INTO DATA(lx_not_found).
    "... Fehlerbehandlung
  CATCH cx_root INTO DATA(lx_root).
    "... Fehlerbehandlung
ENDTRY.