ABAP Select data from SAP table REIS_MS_ALL 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 REIS_MS_ALL 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 REIS_MS_ALL. 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 REIS_MS_ALL 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_REIS_MS_ALL TYPE STANDARD TABLE OF REIS_MS_ALL,
      WA_REIS_MS_ALL TYPE REIS_MS_ALL,
      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: <REIS_MS_ALL> TYPE REIS_MS_ALL.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM REIS_MS_ALL
*  INTO TABLE @DATA(IT_REIS_MS_ALL2).
*--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_REIS_MS_ALL INDEX 1 INTO DATA(WA_REIS_MS_ALL2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_REIS_MS_ALL ASSIGNING <REIS_MS_ALL>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<REIS_MS_ALL>-MEASVALUE0101 = 1.
<REIS_MS_ALL>-MEASUNIT0101 = 1.
<REIS_MS_ALL>-MEASVALUE0201 = 1.
<REIS_MS_ALL>-MEASUNIT0201 = 1.
<REIS_MS_ALL>-MEASVALUE0301 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_REIS_MS_ALL-MEASUNIT0301, sy-vline,
WA_REIS_MS_ALL-MEASVALUE0401, sy-vline,
WA_REIS_MS_ALL-MEASUNIT0401, sy-vline,
WA_REIS_MS_ALL-MEASVALUE0501, sy-vline,
WA_REIS_MS_ALL-MEASUNIT0501, sy-vline,
WA_REIS_MS_ALL-MEASVALUE0601, sy-vline.
ENDLOOP. *Add any further fields from structure WA_REIS_MS_ALL 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_REIS_MS_ALL 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_REIS_MS_ALL INTO WA_REIS_MS_ALL. *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 CUNIT, internal->external for field MEASUNIT0101 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0101 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0101.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0201 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0201 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0201.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0301 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0301 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0301.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0401 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0401 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0401.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0501 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0501 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0501.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0601 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0601 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0601.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0701 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0701 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0701.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0801 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0801 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0801.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0901 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0901 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0901.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT1001 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT1001 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT1001.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0102 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0102 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0102.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0202 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0202 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0202.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0302 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0302 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0302.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0402 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0402 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0402.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0502 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0502 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0502.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0602 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0602 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0602.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0702 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0702 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0702.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0802 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0802 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0802.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT0902 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT0902 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT0902.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEASUNIT1002 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_REIS_MS_ALL-MEASUNIT1002 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_REIS_MS_ALL-MEASUNIT1002.
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_REIS_MS_ALL_STR,
MEASVALUE0101 TYPE STRING,
MEASUNIT0101 TYPE STRING,
MEASVALUE0201 TYPE STRING,
MEASUNIT0201 TYPE STRING,
MEASVALUE0301 TYPE STRING,
MEASUNIT0301 TYPE STRING,
MEASVALUE0401 TYPE STRING,
MEASUNIT0401 TYPE STRING,
MEASVALUE0501 TYPE STRING,
MEASUNIT0501 TYPE STRING,
MEASVALUE0601 TYPE STRING,
MEASUNIT0601 TYPE STRING,
MEASVALUE0701 TYPE STRING,
MEASUNIT0701 TYPE STRING,
MEASVALUE0801 TYPE STRING,
MEASUNIT0801 TYPE STRING,
MEASVALUE0901 TYPE STRING,
MEASUNIT0901 TYPE STRING,
MEASVALUE1001 TYPE STRING,
MEASUNIT1001 TYPE STRING,
MEASVALUE0102 TYPE STRING,
MEASUNIT0102 TYPE STRING,
MEASVALUE0202 TYPE STRING,
MEASUNIT0202 TYPE STRING,
MEASVALUE0302 TYPE STRING,
MEASUNIT0302 TYPE STRING,
MEASVALUE0402 TYPE STRING,
MEASUNIT0402 TYPE STRING,
MEASVALUE0502 TYPE STRING,
MEASUNIT0502 TYPE STRING,
MEASVALUE0602 TYPE STRING,
MEASUNIT0602 TYPE STRING,
MEASVALUE0702 TYPE STRING,
MEASUNIT0702 TYPE STRING,
MEASVALUE0802 TYPE STRING,
MEASUNIT0802 TYPE STRING,
MEASVALUE0902 TYPE STRING,
MEASUNIT0902 TYPE STRING,
MEASVALUE1002 TYPE STRING,
MEASUNIT1002 TYPE STRING,END OF T_EKKO_STR. DATA: WA_REIS_MS_ALL_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_REIS_MS_ALL_STR-MEASVALUE0101 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0101 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0201 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0201 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0301 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0301 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0401 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0401 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0501 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0501 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0601 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0601 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0701 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0701 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0801 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0801 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0901 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0901 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE1001 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT1001 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0102 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0102 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0202 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0202 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0302 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0302 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0402 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0402 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0502 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0502 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0602 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0602 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0702 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0702 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0802 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0802 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE0902 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT0902 sy-vline
WA_REIS_MS_ALL_STR-MEASVALUE1002 sy-vline
WA_REIS_MS_ALL_STR-MEASUNIT1002 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.