ABAP Select data from SAP table VTV_EXKALK into internal table

Get Example source ABAP code based on a different SAP table
  

Below is a number of ABAP code snippets to demonstrate how to select data from SAP VTV_EXKALK table and store it within an internal table, including using the newer @DATA inline declaration methods. It also shows you various ways to process this data using ABAP work area, inline declaration or field symbols including executing all the relevant CONVERSION_EXIT routines specific to VTV_EXKALK. See here for more generic Select statement tips.

Sometimes data within SAP is stored within the database table in a different format to what it is displayed to the user. These input/output conversation FM routines are what translates the data between the two formats.

There is also a full declaration of the VTV_EXKALK table where each field has a char/string type for you to simply copy and paste. This allows you to use processing that is only available to these field types such as the CONCATENATE statement.

DATA: IT_VTV_EXKALK TYPE STANDARD TABLE OF VTV_EXKALK,
      WA_VTV_EXKALK TYPE VTV_EXKALK,
      GD_STR TYPE STRING.

DATA: lo_typedescr type REF TO cl_abap_typedescr.
DATA: lv_fieldname type fieldname.

FIELD-SYMBOLS: <FIELD> TYPE any.
FIELD-SYMBOLS: <VTV_EXKALK> TYPE VTV_EXKALK.

*Process all fields in table header/work area as string values
  PERFORM process_as_string_field_values CHANGING wa_VTV_EXKALK.

SELECT *
*restrict ABAP select to first 10 rows
 UP TO 10 ROWS      
  FROM VTV_EXKALK
  INTO TABLE IT_VTV_EXKALK.

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM VTV_EXKALK
*  INTO TABLE @DATA(IT_VTV_EXKALK2).
*--Further methods of using ABAP code to  select data from SAP database tables

*You can also declare the header/work area using the in-line DATA declaration method
READ TABLE IT_VTV_EXKALK INDEX 1 INTO DATA(WA_VTV_EXKALK2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_VTV_EXKALK ASSIGNING <VTV_EXKALK>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<VTV_EXKALK>-TYP1 = 1.
<VTV_EXKALK>-OSTRIKE1 = 1.
<VTV_EXKALK>-BARRIER1 = 1.
<VTV_EXKALK>-REBETR1 = 1.
<VTV_EXKALK>-RESSIGN1 = 1.
ENDLOOP.

LOOP AT IT_VTV_EXKALK INTO WA_VTV_EXKALK.
*Write horizonal line to screen report.
  WRITE:/ sy-uline.

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_VTV_EXKALK-PR_GE1, sy-vline,
WA_VTV_EXKALK-PR_BR1, sy-vline,
WA_VTV_EXKALK-TYP2, sy-vline,
WA_VTV_EXKALK-OSTRIKE2, sy-vline,
WA_VTV_EXKALK-BARRIER2, sy-vline,
WA_VTV_EXKALK-REBETR2, sy-vline.
ENDLOOP. *Add any further fields from structure WA_VTV_EXKALK you want to display... WRITE:/ sy-uline. * Aternatively use generic code to Write field values (and NAME) to screen report DO. ASSIGN COMPONENT sy-index OF STRUCTURE wa_VTV_EXKALK TO <field>. IF sy-subrc <> 0. EXIT. ENDIF. WRITE:/ 'Field Value', <field>, sy-vline. gd_str = <field> . lo_typedescr ?= CL_ABAP_DATADESCR=>DESCRIBE_BY_DATA( <field> ). lv_fieldname = lo_typedescr->GET_RELATIVE_NAME( ). WRITE:/ 'Field Name', lv_fieldname. ENDDO. *Redo loop but convert all fields from internal to out value LOOP AT IT_VTV_EXKALK INTO WA_VTV_EXKALK. *Write horizonal line to screen report. WRITE:/ sy-uline. *Convert all fields to display/output versions using conversion routines PERFORM convert_all_field_values CHANGING wa_EKKO. ENDLOOP. *&---------------------------------------------------------------------* *& Form convert_all_field_values *&---------------------------------------------------------------------* FORM convert_all_field_values CHANGING p_EKKO LIKE wa_EKKO. DATA: ld_input(1000) TYPE c, ld_output(1000) TYPE C.

*Conversion exit EXCRT, internal->external for field OSTRIKE1 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-OSTRIKE1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-OSTRIKE1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field BARRIER1 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-BARRIER1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-BARRIER1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field REBETR1 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-REBETR1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-REBETR1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field PR_GE1 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-PR_GE1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-PR_GE1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field PR_BR1 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-PR_BR1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-PR_BR1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field OSTRIKE2 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-OSTRIKE2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-OSTRIKE2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field BARRIER2 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-BARRIER2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-BARRIER2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field REBETR2 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-REBETR2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-REBETR2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field PR_GE2 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-PR_GE2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-PR_GE2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field PR_BR2 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-PR_BR2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-PR_BR2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field OSTRIKE3 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-OSTRIKE3 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-OSTRIKE3.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field BARRIER3 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-BARRIER3 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-BARRIER3.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field REBETR3 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-REBETR3 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-REBETR3.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field PR_GE3 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-PR_GE3 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-PR_GE3.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field PR_BR3 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-PR_BR3 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-PR_BR3.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field OSTRIKE4 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-OSTRIKE4 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-OSTRIKE4.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field BARRIER4 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-BARRIER4 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-BARRIER4.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field REBETR4 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-REBETR4 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-REBETR4.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field PR_GE4 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-PR_GE4 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-PR_GE4.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field PR_BR4 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-PR_BR4 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-PR_BR4.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field OSTRIKE5 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-OSTRIKE5 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-OSTRIKE5.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field BARRIER5 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-BARRIER5 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-BARRIER5.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field REBETR5 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-REBETR5 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-REBETR5.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field PR_GE5 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-PR_GE5 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-PR_GE5.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field PR_BR5 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-PR_BR5 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-PR_BR5.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field OSTRIKE6 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-OSTRIKE6 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-OSTRIKE6.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field BARRIER6 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-BARRIER6 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-BARRIER6.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field REBETR6 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-REBETR6 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-REBETR6.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field PR_GE6 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-PR_GE6 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-PR_GE6.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EXCRT, internal->external for field PR_BR6 CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_VTV_EXKALK-PR_BR6 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTV_EXKALK-PR_BR6.
WRITE:/ 'New Value:', ld_input.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_VTV_EXKALK_STR,
TYP1 TYPE STRING,
OSTRIKE1 TYPE STRING,
BARRIER1 TYPE STRING,
REBETR1 TYPE STRING,
RESSIGN1 TYPE STRING,
PR_GE1 TYPE STRING,
PR_BR1 TYPE STRING,
TYP2 TYPE STRING,
OSTRIKE2 TYPE STRING,
BARRIER2 TYPE STRING,
REBETR2 TYPE STRING,
RESSIGN2 TYPE STRING,
PR_GE2 TYPE STRING,
PR_BR2 TYPE STRING,
TYP3 TYPE STRING,
OSTRIKE3 TYPE STRING,
BARRIER3 TYPE STRING,
REBETR3 TYPE STRING,
RESSIGN3 TYPE STRING,
PR_GE3 TYPE STRING,
PR_BR3 TYPE STRING,
TYP4 TYPE STRING,
OSTRIKE4 TYPE STRING,
BARRIER4 TYPE STRING,
REBETR4 TYPE STRING,
RESSIGN4 TYPE STRING,
PR_GE4 TYPE STRING,
PR_BR4 TYPE STRING,
TYP5 TYPE STRING,
OSTRIKE5 TYPE STRING,
BARRIER5 TYPE STRING,
REBETR5 TYPE STRING,
RESSIGN5 TYPE STRING,
PR_GE5 TYPE STRING,
PR_BR5 TYPE STRING,
TYP6 TYPE STRING,
OSTRIKE6 TYPE STRING,
BARRIER6 TYPE STRING,
REBETR6 TYPE STRING,
RESSIGN6 TYPE STRING,
PR_GE6 TYPE STRING,
PR_BR6 TYPE STRING,END OF T_EKKO_STR. DATA: WA_VTV_EXKALK_STR type T_EKKO_STR. DATA: ld_text TYPE string. LOOP AT IT_EKKO INTO WA_EKKO. MOVE-CORRESPONDING wa_EKKO TO WA_EKKO_STR. CONCATENATE: sy-vline
WA_VTV_EXKALK_STR-TYP1 sy-vline
WA_VTV_EXKALK_STR-OSTRIKE1 sy-vline
WA_VTV_EXKALK_STR-BARRIER1 sy-vline
WA_VTV_EXKALK_STR-REBETR1 sy-vline
WA_VTV_EXKALK_STR-RESSIGN1 sy-vline
WA_VTV_EXKALK_STR-PR_GE1 sy-vline
WA_VTV_EXKALK_STR-PR_BR1 sy-vline
WA_VTV_EXKALK_STR-TYP2 sy-vline
WA_VTV_EXKALK_STR-OSTRIKE2 sy-vline
WA_VTV_EXKALK_STR-BARRIER2 sy-vline
WA_VTV_EXKALK_STR-REBETR2 sy-vline
WA_VTV_EXKALK_STR-RESSIGN2 sy-vline
WA_VTV_EXKALK_STR-PR_GE2 sy-vline
WA_VTV_EXKALK_STR-PR_BR2 sy-vline
WA_VTV_EXKALK_STR-TYP3 sy-vline
WA_VTV_EXKALK_STR-OSTRIKE3 sy-vline
WA_VTV_EXKALK_STR-BARRIER3 sy-vline
WA_VTV_EXKALK_STR-REBETR3 sy-vline
WA_VTV_EXKALK_STR-RESSIGN3 sy-vline
WA_VTV_EXKALK_STR-PR_GE3 sy-vline
WA_VTV_EXKALK_STR-PR_BR3 sy-vline
WA_VTV_EXKALK_STR-TYP4 sy-vline
WA_VTV_EXKALK_STR-OSTRIKE4 sy-vline
WA_VTV_EXKALK_STR-BARRIER4 sy-vline
WA_VTV_EXKALK_STR-REBETR4 sy-vline
WA_VTV_EXKALK_STR-RESSIGN4 sy-vline
WA_VTV_EXKALK_STR-PR_GE4 sy-vline
WA_VTV_EXKALK_STR-PR_BR4 sy-vline
WA_VTV_EXKALK_STR-TYP5 sy-vline
WA_VTV_EXKALK_STR-OSTRIKE5 sy-vline
WA_VTV_EXKALK_STR-BARRIER5 sy-vline
WA_VTV_EXKALK_STR-REBETR5 sy-vline
WA_VTV_EXKALK_STR-RESSIGN5 sy-vline
WA_VTV_EXKALK_STR-PR_GE5 sy-vline
WA_VTV_EXKALK_STR-PR_BR5 sy-vline
WA_VTV_EXKALK_STR-TYP6 sy-vline
WA_VTV_EXKALK_STR-OSTRIKE6 sy-vline
WA_VTV_EXKALK_STR-BARRIER6 sy-vline
WA_VTV_EXKALK_STR-REBETR6 sy-vline
WA_VTV_EXKALK_STR-RESSIGN6 sy-vline
WA_VTV_EXKALK_STR-PR_GE6 sy-vline
WA_VTV_EXKALK_STR-PR_BR6 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.