ABAP Select data from SAP table MDR1INSINGLEROUND 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 MDR1INSINGLEROUND 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 MDR1INSINGLEROUND. 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 MDR1INSINGLEROUND 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_MDR1INSINGLEROUND TYPE STANDARD TABLE OF MDR1INSINGLEROUND,
      WA_MDR1INSINGLEROUND TYPE MDR1INSINGLEROUND,
      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: <MDR1INSINGLEROUND> TYPE MDR1INSINGLEROUND.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM MDR1INSINGLEROUND
*  INTO TABLE @DATA(IT_MDR1INSINGLEROUND2).
*--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_MDR1INSINGLEROUND INDEX 1 INTO DATA(WA_MDR1INSINGLEROUND2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_MDR1INSINGLEROUND ASSIGNING <MDR1INSINGLEROUND>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<MDR1INSINGLEROUND>-OPCODE = 1.
<MDR1INSINGLEROUND>-MATNR = 1.
<MDR1INSINGLEROUND>-MENGE = 1.
<MDR1INSINGLEROUND>-MEINH = 1.
<MDR1INSINGLEROUND>-UMREZ = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_MDR1INSINGLEROUND-UMREN, sy-vline,
WA_MDR1INSINGLEROUND-NO_MIN_MAX_CHECK, sy-vline,
WA_MDR1INSINGLEROUND-KONNR, sy-vline,
WA_MDR1INSINGLEROUND-KMEINH, sy-vline,
WA_MDR1INSINGLEROUND-KUMREZ, sy-vline,
WA_MDR1INSINGLEROUND-KUMREN, sy-vline.
ENDLOOP. *Add any further fields from structure WA_MDR1INSINGLEROUND 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_MDR1INSINGLEROUND 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_MDR1INSINGLEROUND INTO WA_MDR1INSINGLEROUND. *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 MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_MDR1INSINGLEROUND-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_MDR1INSINGLEROUND-MATNR.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field KONNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_MDR1INSINGLEROUND-KONNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_MDR1INSINGLEROUND-KONNR.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field LIFNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_MDR1INSINGLEROUND-LIFNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_MDR1INSINGLEROUND-LIFNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field INFNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_MDR1INSINGLEROUND-INFNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_MDR1INSINGLEROUND-INFNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field BANFN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_MDR1INSINGLEROUND-BANFN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_MDR1INSINGLEROUND-BANFN.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field KUNNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_MDR1INSINGLEROUND-KUNNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_MDR1INSINGLEROUND-KUNNR.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit CUNIT, internal->external for field SCHME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_MDR1INSINGLEROUND-SCHME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_MDR1INSINGLEROUND-SCHME.
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_MDR1INSINGLEROUND_STR,
OPCODE TYPE STRING,
MATNR TYPE STRING,
MENGE TYPE STRING,
MEINH TYPE STRING,
UMREZ TYPE STRING,
UMREN TYPE STRING,
NO_MIN_MAX_CHECK TYPE STRING,
KONNR TYPE STRING,
KMEINH TYPE STRING,
KUMREZ TYPE STRING,
KUMREN TYPE STRING,
LIFNR TYPE STRING,
WERKS_KRED TYPE STRING,
EKORG TYPE STRING,
INFNR TYPE STRING,
PSTYP TYPE STRING,
BANFN TYPE STRING,
BNFPO TYPE STRING,
WERKS TYPE STRING,
CHARG TYPE STRING,
SDMEINH TYPE STRING,
SDUMREZ TYPE STRING,
SDUMREN TYPE STRING,
VKORG TYPE STRING,
VTWEG TYPE STRING,
SPART TYPE STRING,
KUNNR TYPE STRING,
INFLS TYPE STRING,
DEFQTUNIT TYPE STRING,
DEFUMREZ TYPE STRING,
DEFUMREN TYPE STRING,
VENUNITGR TYPE STRING,
BUYUNITGR TYPE STRING,
RDPRF TYPE STRING,
RDPR TYPE STRING,
MANDT TYPE STRING,
WERKS TYPE STRING,
RDPRF TYPE STRING,
RDZAE TYPE STRING,
BDMNG TYPE STRING,
VORMG TYPE STRING,
RDMPO TYPE STRING,
RDRGL TYPE STRING,
CHKMELI TYPE STRING,
CHKMEKU TYPE STRING,
MAXQT TYPE STRING,
MINQT TYPE STRING,
MAMIQTUNIT TYPE STRING,
MAMIUMREZ TYPE STRING,
MAMIUMREN TYPE STRING,
INTVEND TYPE STRING,
VABME TYPE STRING,
BSTRF TYPE STRING,
VAVME TYPE STRING,
SCMNG TYPE STRING,
SCHME TYPE STRING,
SCHMEUMREZ TYPE STRING,
SCHMEUMREN TYPE STRING,
SIMUROUNDING TYPE STRING,
RAPPL TYPE STRING,
MANDT TYPE STRING,
CPROF TYPE STRING,
RVALU TYPE STRING,
RDYNA TYPE STRING,
RSTAT TYPE STRING,
RMAMI TYPE STRING,
RCHALUM TYPE STRING,
RVALDEC TYPE STRING,
PURPAR TYPE STRING,
RLEAVE TYPE STRING,
RAUFAB TYPE STRING,
RMUFSD_WADDON TYPE STRING,
TCODE TYPE STRING,
SGT_SCAT TYPE STRING,END OF T_EKKO_STR. DATA: WA_MDR1INSINGLEROUND_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_MDR1INSINGLEROUND_STR-OPCODE sy-vline
WA_MDR1INSINGLEROUND_STR-MATNR sy-vline
WA_MDR1INSINGLEROUND_STR-MENGE sy-vline
WA_MDR1INSINGLEROUND_STR-MEINH sy-vline
WA_MDR1INSINGLEROUND_STR-UMREZ sy-vline
WA_MDR1INSINGLEROUND_STR-UMREN sy-vline
WA_MDR1INSINGLEROUND_STR-NO_MIN_MAX_CHECK sy-vline
WA_MDR1INSINGLEROUND_STR-KONNR sy-vline
WA_MDR1INSINGLEROUND_STR-KMEINH sy-vline
WA_MDR1INSINGLEROUND_STR-KUMREZ sy-vline
WA_MDR1INSINGLEROUND_STR-KUMREN sy-vline
WA_MDR1INSINGLEROUND_STR-LIFNR sy-vline
WA_MDR1INSINGLEROUND_STR-WERKS_KRED sy-vline
WA_MDR1INSINGLEROUND_STR-EKORG sy-vline
WA_MDR1INSINGLEROUND_STR-INFNR sy-vline
WA_MDR1INSINGLEROUND_STR-PSTYP sy-vline
WA_MDR1INSINGLEROUND_STR-BANFN sy-vline
WA_MDR1INSINGLEROUND_STR-BNFPO sy-vline
WA_MDR1INSINGLEROUND_STR-WERKS sy-vline
WA_MDR1INSINGLEROUND_STR-CHARG sy-vline
WA_MDR1INSINGLEROUND_STR-SDMEINH sy-vline
WA_MDR1INSINGLEROUND_STR-SDUMREZ sy-vline
WA_MDR1INSINGLEROUND_STR-SDUMREN sy-vline
WA_MDR1INSINGLEROUND_STR-VKORG sy-vline
WA_MDR1INSINGLEROUND_STR-VTWEG sy-vline
WA_MDR1INSINGLEROUND_STR-SPART sy-vline
WA_MDR1INSINGLEROUND_STR-KUNNR sy-vline
WA_MDR1INSINGLEROUND_STR-INFLS sy-vline
WA_MDR1INSINGLEROUND_STR-DEFQTUNIT sy-vline
WA_MDR1INSINGLEROUND_STR-DEFUMREZ sy-vline
WA_MDR1INSINGLEROUND_STR-DEFUMREN sy-vline
WA_MDR1INSINGLEROUND_STR-VENUNITGR sy-vline
WA_MDR1INSINGLEROUND_STR-BUYUNITGR sy-vline
WA_MDR1INSINGLEROUND_STR-RDPRF sy-vline
WA_MDR1INSINGLEROUND_STR-RDPR sy-vline
WA_MDR1INSINGLEROUND_STR-MANDT sy-vline
WA_MDR1INSINGLEROUND_STR-WERKS sy-vline
WA_MDR1INSINGLEROUND_STR-RDPRF sy-vline
WA_MDR1INSINGLEROUND_STR-RDZAE sy-vline
WA_MDR1INSINGLEROUND_STR-BDMNG sy-vline
WA_MDR1INSINGLEROUND_STR-VORMG sy-vline
WA_MDR1INSINGLEROUND_STR-RDMPO sy-vline
WA_MDR1INSINGLEROUND_STR-RDRGL sy-vline
WA_MDR1INSINGLEROUND_STR-CHKMELI sy-vline
WA_MDR1INSINGLEROUND_STR-CHKMEKU sy-vline
WA_MDR1INSINGLEROUND_STR-MAXQT sy-vline
WA_MDR1INSINGLEROUND_STR-MINQT sy-vline
WA_MDR1INSINGLEROUND_STR-MAMIQTUNIT sy-vline
WA_MDR1INSINGLEROUND_STR-MAMIUMREZ sy-vline
WA_MDR1INSINGLEROUND_STR-MAMIUMREN sy-vline
WA_MDR1INSINGLEROUND_STR-INTVEND sy-vline
WA_MDR1INSINGLEROUND_STR-VABME sy-vline
WA_MDR1INSINGLEROUND_STR-BSTRF sy-vline
WA_MDR1INSINGLEROUND_STR-VAVME sy-vline
WA_MDR1INSINGLEROUND_STR-SCMNG sy-vline
WA_MDR1INSINGLEROUND_STR-SCHME sy-vline
WA_MDR1INSINGLEROUND_STR-SCHMEUMREZ sy-vline
WA_MDR1INSINGLEROUND_STR-SCHMEUMREN sy-vline
WA_MDR1INSINGLEROUND_STR-SIMUROUNDING sy-vline
WA_MDR1INSINGLEROUND_STR-RAPPL sy-vline
WA_MDR1INSINGLEROUND_STR-MANDT sy-vline
WA_MDR1INSINGLEROUND_STR-CPROF sy-vline
WA_MDR1INSINGLEROUND_STR-RVALU sy-vline
WA_MDR1INSINGLEROUND_STR-RDYNA sy-vline
WA_MDR1INSINGLEROUND_STR-RSTAT sy-vline
WA_MDR1INSINGLEROUND_STR-RMAMI sy-vline
WA_MDR1INSINGLEROUND_STR-RCHALUM sy-vline
WA_MDR1INSINGLEROUND_STR-RVALDEC sy-vline
WA_MDR1INSINGLEROUND_STR-PURPAR sy-vline
WA_MDR1INSINGLEROUND_STR-RLEAVE sy-vline
WA_MDR1INSINGLEROUND_STR-RAUFAB sy-vline
WA_MDR1INSINGLEROUND_STR-RMUFSD_WADDON sy-vline
WA_MDR1INSINGLEROUND_STR-TCODE sy-vline
WA_MDR1INSINGLEROUND_STR-SGT_SCAT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.