ABAP Select data from SAP table ROIU_ME_MEITM 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 ROIU_ME_MEITM 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 ROIU_ME_MEITM. 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 ROIU_ME_MEITM 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_ROIU_ME_MEITM TYPE STANDARD TABLE OF ROIU_ME_MEITM,
      WA_ROIU_ME_MEITM TYPE ROIU_ME_MEITM,
      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: <ROIU_ME_MEITM> TYPE ROIU_ME_MEITM.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM ROIU_ME_MEITM
*  INTO TABLE @DATA(IT_ROIU_ME_MEITM2).
*--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_ROIU_ME_MEITM INDEX 1 INTO DATA(WA_ROIU_ME_MEITM2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_ROIU_ME_MEITM ASSIGNING <ROIU_ME_MEITM>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<ROIU_ME_MEITM>-MESRC = 1.
<ROIU_ME_MEITM>-METYP = 1.
<ROIU_ME_MEITM>-DOCNR = 1.
<ROIU_ME_MEITM>-DOCYR = 1.
<ROIU_ME_MEITM>-MRGRP = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_ROIU_ME_MEITM-INROW, sy-vline,
WA_ROIU_ME_MEITM-INCOL, sy-vline,
WA_ROIU_ME_MEITM-SRC_DOCNR, sy-vline,
WA_ROIU_ME_MEITM-SRC_DOCYR, sy-vline,
WA_ROIU_ME_MEITM-RETYP, sy-vline,
WA_ROIU_ME_MEITM-RDGID, sy-vline.
ENDLOOP. *Add any further fields from structure WA_ROIU_ME_MEITM 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_ROIU_ME_MEITM 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_ROIU_ME_MEITM INTO WA_ROIU_ME_MEITM. *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 ALPHA, internal->external for field MESRC CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_ROIU_ME_MEITM-MESRC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ROIU_ME_MEITM-MESRC.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit GJAHR, internal->external for field DOCYR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_ROIU_ME_MEITM-DOCYR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ROIU_ME_MEITM-DOCYR.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit GJAHR, internal->external for field SRC_DOCYR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_ROIU_ME_MEITM-SRC_DOCYR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ROIU_ME_MEITM-SRC_DOCYR.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit CUNIT, internal->external for field RUNIT_ORIG CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_ROIU_ME_MEITM-RUNIT_ORIG IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ROIU_ME_MEITM-RUNIT_ORIG.
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_ROIU_ME_MEITM_STR,
MESRC TYPE STRING,
METYP TYPE STRING,
DOCNR TYPE STRING,
DOCYR TYPE STRING,
MRGRP TYPE STRING,
INROW TYPE STRING,
INCOL TYPE STRING,
SRC_DOCNR TYPE STRING,
SRC_DOCYR TYPE STRING,
RETYP TYPE STRING,
RDGID TYPE STRING,
REFMT TYPE STRING,
MERDG_C TYPE STRING,
CONVEXIT TYPE STRING,
MERDG_F TYPE STRING,
MERDG_D TYPE STRING,
MERDG_T TYPE STRING,
RUNIT TYPE STRING,
MSEHI TYPE STRING,
MSEH3 TYPE STRING,
MSEH6 TYPE STRING,
MSEHT TYPE STRING,
DIMID TYPE STRING,
RDLEN TYPE STRING,
RDLEN_SCR TYPE STRING,
RDDEC TYPE STRING,
XRNDG TYPE STRING,
RFACT_RT TYPE STRING,
RFACT TYPE STRING,
XNEGA TYPE STRING,
XDRVD TYPE STRING,
XOBSV TYPE STRING,
XHIDE TYPE STRING,
XDISO TYPE STRING,
XUOMC TYPE STRING,
XUOMR TYPE STRING,
RDFMT TYPE STRING,
XFTIN TYPE STRING,
XREQD TYPE STRING,
XNVAL TYPE STRING,
XVOBS TYPE STRING,
XVDEF TYPE STRING,
NCOPY TYPE STRING,
VLDEF_F TYPE STRING,
VLDEF_C TYPE STRING,
VLDEF_D TYPE STRING,
VLDEF_T TYPE STRING,
RUNIT_ORIG TYPE STRING,
XVWRN TYPE STRING,
VLMIN_W TYPE STRING,
VLMAX_W TYPE STRING,
XVERR TYPE STRING,
VLMIN_E TYPE STRING,
VLMAX_E TYPE STRING,
MRTXL TYPE STRING,
MRTXS TYPE STRING,
TABNM TYPE STRING,
FLDNM TYPE STRING,
DOMNM TYPE STRING,
SHELP TYPE STRING,
SPARM TYPE STRING,
ATNAM TYPE STRING,
MOBTS TYPE STRING,
MOBTL TYPE STRING,
SEL TYPE STRING,
ACTION TYPE STRING,
TABIX TYPE STRING,END OF T_EKKO_STR. DATA: WA_ROIU_ME_MEITM_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_ROIU_ME_MEITM_STR-MESRC sy-vline
WA_ROIU_ME_MEITM_STR-METYP sy-vline
WA_ROIU_ME_MEITM_STR-DOCNR sy-vline
WA_ROIU_ME_MEITM_STR-DOCYR sy-vline
WA_ROIU_ME_MEITM_STR-MRGRP sy-vline
WA_ROIU_ME_MEITM_STR-INROW sy-vline
WA_ROIU_ME_MEITM_STR-INCOL sy-vline
WA_ROIU_ME_MEITM_STR-SRC_DOCNR sy-vline
WA_ROIU_ME_MEITM_STR-SRC_DOCYR sy-vline
WA_ROIU_ME_MEITM_STR-RETYP sy-vline
WA_ROIU_ME_MEITM_STR-RDGID sy-vline
WA_ROIU_ME_MEITM_STR-REFMT sy-vline
WA_ROIU_ME_MEITM_STR-MERDG_C sy-vline
WA_ROIU_ME_MEITM_STR-CONVEXIT sy-vline
WA_ROIU_ME_MEITM_STR-MERDG_F sy-vline
WA_ROIU_ME_MEITM_STR-MERDG_D sy-vline
WA_ROIU_ME_MEITM_STR-MERDG_T sy-vline
WA_ROIU_ME_MEITM_STR-RUNIT sy-vline
WA_ROIU_ME_MEITM_STR-MSEHI sy-vline
WA_ROIU_ME_MEITM_STR-MSEH3 sy-vline
WA_ROIU_ME_MEITM_STR-MSEH6 sy-vline
WA_ROIU_ME_MEITM_STR-MSEHT sy-vline
WA_ROIU_ME_MEITM_STR-DIMID sy-vline
WA_ROIU_ME_MEITM_STR-RDLEN sy-vline
WA_ROIU_ME_MEITM_STR-RDLEN_SCR sy-vline
WA_ROIU_ME_MEITM_STR-RDDEC sy-vline
WA_ROIU_ME_MEITM_STR-XRNDG sy-vline
WA_ROIU_ME_MEITM_STR-RFACT_RT sy-vline
WA_ROIU_ME_MEITM_STR-RFACT sy-vline
WA_ROIU_ME_MEITM_STR-XNEGA sy-vline
WA_ROIU_ME_MEITM_STR-XDRVD sy-vline
WA_ROIU_ME_MEITM_STR-XOBSV sy-vline
WA_ROIU_ME_MEITM_STR-XHIDE sy-vline
WA_ROIU_ME_MEITM_STR-XDISO sy-vline
WA_ROIU_ME_MEITM_STR-XUOMC sy-vline
WA_ROIU_ME_MEITM_STR-XUOMR sy-vline
WA_ROIU_ME_MEITM_STR-RDFMT sy-vline
WA_ROIU_ME_MEITM_STR-XFTIN sy-vline
WA_ROIU_ME_MEITM_STR-XREQD sy-vline
WA_ROIU_ME_MEITM_STR-XNVAL sy-vline
WA_ROIU_ME_MEITM_STR-XVOBS sy-vline
WA_ROIU_ME_MEITM_STR-XVDEF sy-vline
WA_ROIU_ME_MEITM_STR-NCOPY sy-vline
WA_ROIU_ME_MEITM_STR-VLDEF_F sy-vline
WA_ROIU_ME_MEITM_STR-VLDEF_C sy-vline
WA_ROIU_ME_MEITM_STR-VLDEF_D sy-vline
WA_ROIU_ME_MEITM_STR-VLDEF_T sy-vline
WA_ROIU_ME_MEITM_STR-RUNIT_ORIG sy-vline
WA_ROIU_ME_MEITM_STR-XVWRN sy-vline
WA_ROIU_ME_MEITM_STR-VLMIN_W sy-vline
WA_ROIU_ME_MEITM_STR-VLMAX_W sy-vline
WA_ROIU_ME_MEITM_STR-XVERR sy-vline
WA_ROIU_ME_MEITM_STR-VLMIN_E sy-vline
WA_ROIU_ME_MEITM_STR-VLMAX_E sy-vline
WA_ROIU_ME_MEITM_STR-MRTXL sy-vline
WA_ROIU_ME_MEITM_STR-MRTXS sy-vline
WA_ROIU_ME_MEITM_STR-TABNM sy-vline
WA_ROIU_ME_MEITM_STR-FLDNM sy-vline
WA_ROIU_ME_MEITM_STR-DOMNM sy-vline
WA_ROIU_ME_MEITM_STR-SHELP sy-vline
WA_ROIU_ME_MEITM_STR-SPARM sy-vline
WA_ROIU_ME_MEITM_STR-ATNAM sy-vline
WA_ROIU_ME_MEITM_STR-MOBTS sy-vline
WA_ROIU_ME_MEITM_STR-MOBTL sy-vline
WA_ROIU_ME_MEITM_STR-SEL sy-vline
WA_ROIU_ME_MEITM_STR-ACTION sy-vline
WA_ROIU_ME_MEITM_STR-TABIX sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.