ABAP Select data from SAP table RMQEA 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 RMQEA 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 RMQEA. 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 RMQEA 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_RMQEA TYPE STANDARD TABLE OF RMQEA,
      WA_RMQEA TYPE RMQEA,
      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: <RMQEA> TYPE RMQEA.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RMQEA
*  INTO TABLE @DATA(IT_RMQEA2).
*--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_RMQEA INDEX 1 INTO DATA(WA_RMQEA2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RMQEA ASSIGNING <RMQEA>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RMQEA>-CHARGE = 1.
<RMQEA>-DBEWERTG = 1.
<RMQEA>-MBEWERTG = 1.
<RMQEA>-DRUCK_PA = 1.
<RMQEA>-DRUCK_PZA = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RMQEA-HERKUNFT, sy-vline,
WA_RMQEA-KZLANGTEXT, sy-vline,
WA_RMQEA-ICON_LTEXT, sy-vline,
WA_RMQEA-MATNR, sy-vline,
WA_RMQEA-REVLV, sy-vline,
WA_RMQEA-MERKNR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RMQEA 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_RMQEA 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_RMQEA INTO WA_RMQEA. *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_RMQEA-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMQEA-MATNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit NUMCV, internal->external for field REVLV CALL FUNCTION 'CONVERSION_EXIT_NUMCV_OUTPUT' EXPORTING input = WA_RMQEA-REVLV IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMQEA-REVLV.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit NUMCV, internal->external for field VORNR CALL FUNCTION 'CONVERSION_EXIT_NUMCV_OUTPUT' EXPORTING input = WA_RMQEA-VORNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMQEA-VORNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

*Conversion exit CUNIT, internal->external for field /CWM/MENGENEINH CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RMQEA-/CWM/MENGENEINH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMQEA-/CWM/MENGENEINH.
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_RMQEA_STR,
CHARGE TYPE STRING,
DBEWERTG TYPE STRING,
MBEWERTG TYPE STRING,
DRUCK_PA TYPE STRING,
DRUCK_PZA TYPE STRING,
HERKUNFT TYPE STRING,
KZLANGTEXT TYPE STRING,
ICON_LTEXT TYPE STRING,
MATNR TYPE STRING,
REVLV TYPE STRING,
MERKNR TYPE STRING,
MODUS TYPE STRING,
HERSTELLER TYPE STRING,
NAMHERSTEL TYPE STRING,
NAMEKUNDE TYPE STRING,
NAMLIEFERT TYPE STRING,
STORNO TYPE STRING,
KZABBR TYPE STRING,
KZLOESCH TYPE STRING,
KZDATEN TYPE STRING,
KUNNR TYPE STRING,
KURZTEXT TYPE STRING,
LIFNR TYPE STRING,
SATZSTATUS TYPE STRING,
STICHTAG TYPE STRING,
STICHPROBE TYPE STRING,
PPLVERW TYPE STRING,
VORNR TYPE STRING,
WERKS TYPE STRING,
LOSMENGE TYPE STRING,
GESSTICHPR TYPE STRING,
ANZGEB TYPE STRING,
GEBEH TYPE STRING,
TYPTEXT TYPE STRING,
VERWTEXT TYPE STRING,
LMENGE01 TYPE STRING,
LMENGE02 TYPE STRING,
LMENGE03 TYPE STRING,
LMENGE04 TYPE STRING,
LMENGE05 TYPE STRING,
LMENGE06 TYPE STRING,
LMENGE07 TYPE STRING,
LMENGE08 TYPE STRING,
LMENGE09 TYPE STRING,
MENGENEINH TYPE STRING,
EINHPROBE TYPE STRING,
MSEHI TYPE STRING,
INSMK TYPE STRING,
ERSTELDAT TYPE STRING,
STATUSTEXT TYPE STRING,
ANW_STATUS TYPE STRING,
KZ_ANWSTAT TYPE STRING,
LOS_AKTUEL TYPE STRING,
STAT_STIP TYPE STRING,
STAT_SKIP TYPE STRING,
STAT_QIGE TYPE STRING,
STAT_PLZU TYPE STRING,
STAT_PAKU TYPE STRING,
STAT_BERF TYPE STRING,
SUCHFELD TYPE STRING,
ISTMENGEK TYPE STRING,
BLDAT TYPE STRING,
BUDAT TYPE STRING,
BKTXT TYPE STRING,
GRUND TYPE STRING,
ELIKZ TYPE STRING,
UMLWERK TYPE STRING,
UMLLGORT TYPE STRING,
ADDON_DUMMY TYPE STRING,
WARPL TYPE STRING,
WAPOS TYPE STRING,
ABNUM TYPE STRING,
STRAT TYPE STRING,
TRIALID TYPE STRING,
RESPONSIBLE TYPE STRING,
/CWM/LOSMENGE TYPE STRING,
/CWM/ISTMENGE TYPE STRING,
/CWM/ISTMENGEK TYPE STRING,
/CWM/LMENGEZUB TYPE STRING,
/CWM/MENGENEINH TYPE STRING,END OF T_EKKO_STR. DATA: WA_RMQEA_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_RMQEA_STR-CHARGE sy-vline
WA_RMQEA_STR-DBEWERTG sy-vline
WA_RMQEA_STR-MBEWERTG sy-vline
WA_RMQEA_STR-DRUCK_PA sy-vline
WA_RMQEA_STR-DRUCK_PZA sy-vline
WA_RMQEA_STR-HERKUNFT sy-vline
WA_RMQEA_STR-KZLANGTEXT sy-vline
WA_RMQEA_STR-ICON_LTEXT sy-vline
WA_RMQEA_STR-MATNR sy-vline
WA_RMQEA_STR-REVLV sy-vline
WA_RMQEA_STR-MERKNR sy-vline
WA_RMQEA_STR-MODUS sy-vline
WA_RMQEA_STR-HERSTELLER sy-vline
WA_RMQEA_STR-NAMHERSTEL sy-vline
WA_RMQEA_STR-NAMEKUNDE sy-vline
WA_RMQEA_STR-NAMLIEFERT sy-vline
WA_RMQEA_STR-STORNO sy-vline
WA_RMQEA_STR-KZABBR sy-vline
WA_RMQEA_STR-KZLOESCH sy-vline
WA_RMQEA_STR-KZDATEN sy-vline
WA_RMQEA_STR-KUNNR sy-vline
WA_RMQEA_STR-KURZTEXT sy-vline
WA_RMQEA_STR-LIFNR sy-vline
WA_RMQEA_STR-SATZSTATUS sy-vline
WA_RMQEA_STR-STICHTAG sy-vline
WA_RMQEA_STR-STICHPROBE sy-vline
WA_RMQEA_STR-PPLVERW sy-vline
WA_RMQEA_STR-VORNR sy-vline
WA_RMQEA_STR-WERKS sy-vline
WA_RMQEA_STR-LOSMENGE sy-vline
WA_RMQEA_STR-GESSTICHPR sy-vline
WA_RMQEA_STR-ANZGEB sy-vline
WA_RMQEA_STR-GEBEH sy-vline
WA_RMQEA_STR-TYPTEXT sy-vline
WA_RMQEA_STR-VERWTEXT sy-vline
WA_RMQEA_STR-LMENGE01 sy-vline
WA_RMQEA_STR-LMENGE02 sy-vline
WA_RMQEA_STR-LMENGE03 sy-vline
WA_RMQEA_STR-LMENGE04 sy-vline
WA_RMQEA_STR-LMENGE05 sy-vline
WA_RMQEA_STR-LMENGE06 sy-vline
WA_RMQEA_STR-LMENGE07 sy-vline
WA_RMQEA_STR-LMENGE08 sy-vline
WA_RMQEA_STR-LMENGE09 sy-vline
WA_RMQEA_STR-MENGENEINH sy-vline
WA_RMQEA_STR-EINHPROBE sy-vline
WA_RMQEA_STR-MSEHI sy-vline
WA_RMQEA_STR-INSMK sy-vline
WA_RMQEA_STR-ERSTELDAT sy-vline
WA_RMQEA_STR-STATUSTEXT sy-vline
WA_RMQEA_STR-ANW_STATUS sy-vline
WA_RMQEA_STR-KZ_ANWSTAT sy-vline
WA_RMQEA_STR-LOS_AKTUEL sy-vline
WA_RMQEA_STR-STAT_STIP sy-vline
WA_RMQEA_STR-STAT_SKIP sy-vline
WA_RMQEA_STR-STAT_QIGE sy-vline
WA_RMQEA_STR-STAT_PLZU sy-vline
WA_RMQEA_STR-STAT_PAKU sy-vline
WA_RMQEA_STR-STAT_BERF sy-vline
WA_RMQEA_STR-SUCHFELD sy-vline
WA_RMQEA_STR-ISTMENGEK sy-vline
WA_RMQEA_STR-BLDAT sy-vline
WA_RMQEA_STR-BUDAT sy-vline
WA_RMQEA_STR-BKTXT sy-vline
WA_RMQEA_STR-GRUND sy-vline
WA_RMQEA_STR-ELIKZ sy-vline
WA_RMQEA_STR-UMLWERK sy-vline
WA_RMQEA_STR-UMLLGORT sy-vline
WA_RMQEA_STR-ADDON_DUMMY sy-vline
WA_RMQEA_STR-WARPL sy-vline
WA_RMQEA_STR-WAPOS sy-vline
WA_RMQEA_STR-ABNUM sy-vline
WA_RMQEA_STR-STRAT sy-vline
WA_RMQEA_STR-TRIALID sy-vline
WA_RMQEA_STR-RESPONSIBLE sy-vline
WA_RMQEA_STR-/CWM/LOSMENGE sy-vline
WA_RMQEA_STR-/CWM/ISTMENGE sy-vline
WA_RMQEA_STR-/CWM/ISTMENGEK sy-vline
WA_RMQEA_STR-/CWM/LMENGEZUB sy-vline
WA_RMQEA_STR-/CWM/MENGENEINH sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.