ABAP Select data from SAP table RM06E 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 RM06E 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 RM06E. 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 RM06E 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_RM06E TYPE STANDARD TABLE OF RM06E,
      WA_RM06E TYPE RM06E,
      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: <RM06E> TYPE RM06E.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RM06E
*  INTO TABLE @DATA(IT_RM06E2).
*--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_RM06E INDEX 1 INTO DATA(WA_RM06E2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RM06E ASSIGNING <RM06E>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RM06E>-REFBS = 1.
<RM06E>-REFPV = 1.
<RM06E>-REFPB = 1.
<RM06E>-REFPS = 1.
<RM06E>-REFBA = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RM06E-REFDT, sy-vline,
WA_RM06E-BSTNR, sy-vline,
WA_RM06E-BSTPO, sy-vline,
WA_RM06E-EVRTN, sy-vline,
WA_RM06E-EVRTP, sy-vline,
WA_RM06E-RFKTR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RM06E 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_RM06E 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_RM06E INTO WA_RM06E. *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 REFBS CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RM06E-REFBS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM06E-REFBS.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

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

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

*Conversion exit ISOLA, internal->external for field SPRAS CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_RM06E-SPRAS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM06E-SPRAS.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field AKTNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RM06E-AKTNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM06E-AKTNR.
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_RM06E_STR,
REFBS TYPE STRING,
REFPV TYPE STRING,
REFPB TYPE STRING,
REFPS TYPE STRING,
REFBA TYPE STRING,
REFDT TYPE STRING,
BSTNR TYPE STRING,
BSTPO TYPE STRING,
EVRTN TYPE STRING,
EVRTP TYPE STRING,
RFKTR TYPE STRING,
KTRPV TYPE STRING,
KTRPB TYPE STRING,
KTRPO TYPE STRING,
RFANF TYPE STRING,
MKNTM TYPE STRING,
MEIN1 TYPE STRING,
MEIN2 TYPE STRING,
MEIN3 TYPE STRING,
MEIN4 TYPE STRING,
BPRM1 TYPE STRING,
LIEFK TYPE STRING,
SELKZ TYPE STRING,
EINTE TYPE STRING,
ETSTA TYPE STRING,
BSFAK TYPE STRING,
EZMNG TYPE STRING,
ANMNG TYPE STRING,
OKTMN TYPE STRING,
POMNG TYPE STRING,
ETMNG TYPE STRING,
REFMG TYPE STRING,
BAFMG TYPE STRING,
OLDZL TYPE STRING,
EBELP TYPE STRING,
WERKS TYPE STRING,
LGORT TYPE STRING,
LPEIN TYPE STRING,
EEIND TYPE STRING,
PSTYP TYPE STRING,
EPSTP TYPE STRING,
KNTTP TYPE STRING,
INFNR TYPE STRING,
ANFNR TYPE STRING,
ANFPS TYPE STRING,
ANFRP TYPE STRING,
ANFPV TYPE STRING,
ANFPB TYPE STRING,
MKNTW TYPE STRING,
OFFBA TYPE STRING,
BEDNR TYPE STRING,
LTKNZ TYPE STRING,
ZMEIN TYPE STRING,
NETPR TYPE STRING,
ETXT1 TYPE STRING,
ETXT2 TYPE STRING,
ETXT3 TYPE STRING,
ETXT4 TYPE STRING,
ETXT5 TYPE STRING,
WEMNG TYPE STRING,
WEWRT TYPE STRING,
REMNG TYPE STRING,
REWRT TYPE STRING,
WESBS TYPE STRING,
ANZAL TYPE STRING,
OBMNG TYPE STRING,
OBWRT TYPE STRING,
WAER1 TYPE STRING,
WAER2 TYPE STRING,
WAER3 TYPE STRING,
WAER4 TYPE STRING,
SLPOV TYPE STRING,
SLPOB TYPE STRING,
BSKNT TYPE STRING,
BSLAG TYPE STRING,
TEXT1 TYPE STRING,
FORM1 TYPE STRING,
FORM2 TYPE STRING,
LTEX1 TYPE STRING,
LTEX2 TYPE STRING,
KZLTX TYPE STRING,
FIXIE TYPE STRING,
STATU TYPE STRING,
ETEFZ TYPE STRING,
WEMFZ TYPE STRING,
VORFZ TYPE STRING,
WAMFZ TYPE STRING,
MSTAT TYPE STRING,
MFORT TYPE STRING,
BEDAT TYPE STRING,
VEDAT TYPE STRING,
ANFDT TYPE STRING,
BSART TYPE STRING,
EVART TYPE STRING,
ASART TYPE STRING,
ERWSE TYPE STRING,
SPRAS TYPE STRING,
KZABS TYPE STRING,
LABNR TYPE STRING,
MATKL TYPE STRING,
VORNR TYPE STRING,
ERGKZ TYPE STRING,
FIXTX TYPE STRING,
MEPTX TYPE STRING,
GSABW TYPE STRING,
PRDAT TYPE STRING,
SAMANZ TYPE STRING,
VARANZ TYPE STRING,
ALLANZ TYPE STRING,
NORANZ TYPE STRING,
ONELINE TYPE STRING,
TWOLINE TYPE STRING,
KOWRK TYPE STRING,
KPWRK TYPE STRING,
BSTYT TYPE STRING,
AKTNR TYPE STRING,
LTSNR TYPE STRING,
CHARG TYPE STRING,
LICHA TYPE STRING,
XFELD TYPE STRING,
ETNR1 TYPE STRING,
ETNR2 TYPE STRING,
BTEXT TYPE STRING,
AMPEL TYPE STRING,
STA_BSMNG TYPE STRING,
STA_WEMNG TYPE STRING,
STA_REMNG TYPE STRING,
STA_OWEMG TYPE STRING,
KTPNR TYPE STRING,
REDIFF TYPE STRING,
COMMITMENT TYPE STRING,
SUMLIMIT TYPE STRING,
SUMNOLIM TYPE STRING,
ACTVALUE TYPE STRING,
SRV_EXIST TYPE STRING,
LIM_EXIST TYPE STRING,
SRV_VALUE TYPE STRING,
ABSGR_TXT TYPE STRING,
AWEFZ TYPE STRING,
MFZHI TYPE STRING,
FFZHI TYPE STRING,
TCSELFLAG TYPE STRING,
UMSON TYPE STRING,
TEXTFLAG TYPE STRING,
NAME1 TYPE STRING,
LOEKZ TYPE STRING,
QS_DEL_DAY TYPE STRING,
QS_ETART TYPE STRING,
QS_LAV_MNG TYPE STRING,
QS_WE_MNG TYPE STRING,
QS_LAV_OPN TYPE STRING,
QS_LAB_OPN TYPE STRING,
QS_LAB_LAV TYPE STRING,
QS_SUM_DIF TYPE STRING,
SGT_SCAT_KO TYPE STRING,
SGT_SCAT_KP TYPE STRING,
SERVICEPERFORMERNAME TYPE STRING,
EXPECTED_VALUE TYPE STRING,
HIER_EXP_COL TYPE STRING,
RFM_PRIORITY TYPE STRING,
RFM_SEASON_CATEGORY TYPE STRING,END OF T_EKKO_STR. DATA: WA_RM06E_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_RM06E_STR-REFBS sy-vline
WA_RM06E_STR-REFPV sy-vline
WA_RM06E_STR-REFPB sy-vline
WA_RM06E_STR-REFPS sy-vline
WA_RM06E_STR-REFBA sy-vline
WA_RM06E_STR-REFDT sy-vline
WA_RM06E_STR-BSTNR sy-vline
WA_RM06E_STR-BSTPO sy-vline
WA_RM06E_STR-EVRTN sy-vline
WA_RM06E_STR-EVRTP sy-vline
WA_RM06E_STR-RFKTR sy-vline
WA_RM06E_STR-KTRPV sy-vline
WA_RM06E_STR-KTRPB sy-vline
WA_RM06E_STR-KTRPO sy-vline
WA_RM06E_STR-RFANF sy-vline
WA_RM06E_STR-MKNTM sy-vline
WA_RM06E_STR-MEIN1 sy-vline
WA_RM06E_STR-MEIN2 sy-vline
WA_RM06E_STR-MEIN3 sy-vline
WA_RM06E_STR-MEIN4 sy-vline
WA_RM06E_STR-BPRM1 sy-vline
WA_RM06E_STR-LIEFK sy-vline
WA_RM06E_STR-SELKZ sy-vline
WA_RM06E_STR-EINTE sy-vline
WA_RM06E_STR-ETSTA sy-vline
WA_RM06E_STR-BSFAK sy-vline
WA_RM06E_STR-EZMNG sy-vline
WA_RM06E_STR-ANMNG sy-vline
WA_RM06E_STR-OKTMN sy-vline
WA_RM06E_STR-POMNG sy-vline
WA_RM06E_STR-ETMNG sy-vline
WA_RM06E_STR-REFMG sy-vline
WA_RM06E_STR-BAFMG sy-vline
WA_RM06E_STR-OLDZL sy-vline
WA_RM06E_STR-EBELP sy-vline
WA_RM06E_STR-WERKS sy-vline
WA_RM06E_STR-LGORT sy-vline
WA_RM06E_STR-LPEIN sy-vline
WA_RM06E_STR-EEIND sy-vline
WA_RM06E_STR-PSTYP sy-vline
WA_RM06E_STR-EPSTP sy-vline
WA_RM06E_STR-KNTTP sy-vline
WA_RM06E_STR-INFNR sy-vline
WA_RM06E_STR-ANFNR sy-vline
WA_RM06E_STR-ANFPS sy-vline
WA_RM06E_STR-ANFRP sy-vline
WA_RM06E_STR-ANFPV sy-vline
WA_RM06E_STR-ANFPB sy-vline
WA_RM06E_STR-MKNTW sy-vline
WA_RM06E_STR-OFFBA sy-vline
WA_RM06E_STR-BEDNR sy-vline
WA_RM06E_STR-LTKNZ sy-vline
WA_RM06E_STR-ZMEIN sy-vline
WA_RM06E_STR-NETPR sy-vline
WA_RM06E_STR-ETXT1 sy-vline
WA_RM06E_STR-ETXT2 sy-vline
WA_RM06E_STR-ETXT3 sy-vline
WA_RM06E_STR-ETXT4 sy-vline
WA_RM06E_STR-ETXT5 sy-vline
WA_RM06E_STR-WEMNG sy-vline
WA_RM06E_STR-WEWRT sy-vline
WA_RM06E_STR-REMNG sy-vline
WA_RM06E_STR-REWRT sy-vline
WA_RM06E_STR-WESBS sy-vline
WA_RM06E_STR-ANZAL sy-vline
WA_RM06E_STR-OBMNG sy-vline
WA_RM06E_STR-OBWRT sy-vline
WA_RM06E_STR-WAER1 sy-vline
WA_RM06E_STR-WAER2 sy-vline
WA_RM06E_STR-WAER3 sy-vline
WA_RM06E_STR-WAER4 sy-vline
WA_RM06E_STR-SLPOV sy-vline
WA_RM06E_STR-SLPOB sy-vline
WA_RM06E_STR-BSKNT sy-vline
WA_RM06E_STR-BSLAG sy-vline
WA_RM06E_STR-TEXT1 sy-vline
WA_RM06E_STR-FORM1 sy-vline
WA_RM06E_STR-FORM2 sy-vline
WA_RM06E_STR-LTEX1 sy-vline
WA_RM06E_STR-LTEX2 sy-vline
WA_RM06E_STR-KZLTX sy-vline
WA_RM06E_STR-FIXIE sy-vline
WA_RM06E_STR-STATU sy-vline
WA_RM06E_STR-ETEFZ sy-vline
WA_RM06E_STR-WEMFZ sy-vline
WA_RM06E_STR-VORFZ sy-vline
WA_RM06E_STR-WAMFZ sy-vline
WA_RM06E_STR-MSTAT sy-vline
WA_RM06E_STR-MFORT sy-vline
WA_RM06E_STR-BEDAT sy-vline
WA_RM06E_STR-VEDAT sy-vline
WA_RM06E_STR-ANFDT sy-vline
WA_RM06E_STR-BSART sy-vline
WA_RM06E_STR-EVART sy-vline
WA_RM06E_STR-ASART sy-vline
WA_RM06E_STR-ERWSE sy-vline
WA_RM06E_STR-SPRAS sy-vline
WA_RM06E_STR-KZABS sy-vline
WA_RM06E_STR-LABNR sy-vline
WA_RM06E_STR-MATKL sy-vline
WA_RM06E_STR-VORNR sy-vline
WA_RM06E_STR-ERGKZ sy-vline
WA_RM06E_STR-FIXTX sy-vline
WA_RM06E_STR-MEPTX sy-vline
WA_RM06E_STR-GSABW sy-vline
WA_RM06E_STR-PRDAT sy-vline
WA_RM06E_STR-SAMANZ sy-vline
WA_RM06E_STR-VARANZ sy-vline
WA_RM06E_STR-ALLANZ sy-vline
WA_RM06E_STR-NORANZ sy-vline
WA_RM06E_STR-ONELINE sy-vline
WA_RM06E_STR-TWOLINE sy-vline
WA_RM06E_STR-KOWRK sy-vline
WA_RM06E_STR-KPWRK sy-vline
WA_RM06E_STR-BSTYT sy-vline
WA_RM06E_STR-AKTNR sy-vline
WA_RM06E_STR-LTSNR sy-vline
WA_RM06E_STR-CHARG sy-vline
WA_RM06E_STR-LICHA sy-vline
WA_RM06E_STR-XFELD sy-vline
WA_RM06E_STR-ETNR1 sy-vline
WA_RM06E_STR-ETNR2 sy-vline
WA_RM06E_STR-BTEXT sy-vline
WA_RM06E_STR-AMPEL sy-vline
WA_RM06E_STR-STA_BSMNG sy-vline
WA_RM06E_STR-STA_WEMNG sy-vline
WA_RM06E_STR-STA_REMNG sy-vline
WA_RM06E_STR-STA_OWEMG sy-vline
WA_RM06E_STR-KTPNR sy-vline
WA_RM06E_STR-REDIFF sy-vline
WA_RM06E_STR-COMMITMENT sy-vline
WA_RM06E_STR-SUMLIMIT sy-vline
WA_RM06E_STR-SUMNOLIM sy-vline
WA_RM06E_STR-ACTVALUE sy-vline
WA_RM06E_STR-SRV_EXIST sy-vline
WA_RM06E_STR-LIM_EXIST sy-vline
WA_RM06E_STR-SRV_VALUE sy-vline
WA_RM06E_STR-ABSGR_TXT sy-vline
WA_RM06E_STR-AWEFZ sy-vline
WA_RM06E_STR-MFZHI sy-vline
WA_RM06E_STR-FFZHI sy-vline
WA_RM06E_STR-TCSELFLAG sy-vline
WA_RM06E_STR-UMSON sy-vline
WA_RM06E_STR-TEXTFLAG sy-vline
WA_RM06E_STR-NAME1 sy-vline
WA_RM06E_STR-LOEKZ sy-vline
WA_RM06E_STR-QS_DEL_DAY sy-vline
WA_RM06E_STR-QS_ETART sy-vline
WA_RM06E_STR-QS_LAV_MNG sy-vline
WA_RM06E_STR-QS_WE_MNG sy-vline
WA_RM06E_STR-QS_LAV_OPN sy-vline
WA_RM06E_STR-QS_LAB_OPN sy-vline
WA_RM06E_STR-QS_LAB_LAV sy-vline
WA_RM06E_STR-QS_SUM_DIF sy-vline
WA_RM06E_STR-SGT_SCAT_KO sy-vline
WA_RM06E_STR-SGT_SCAT_KP sy-vline
WA_RM06E_STR-SERVICEPERFORMERNAME sy-vline
WA_RM06E_STR-EXPECTED_VALUE sy-vline
WA_RM06E_STR-HIER_EXP_COL sy-vline
WA_RM06E_STR-RFM_PRIORITY sy-vline
WA_RM06E_STR-RFM_SEASON_CATEGORY sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.