ABAP Select data from SAP table RM61R 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 RM61R 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 RM61R. 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 RM61R 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_RM61R TYPE STANDARD TABLE OF RM61R,
      WA_RM61R TYPE RM61R,
      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: <RM61R> TYPE RM61R.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RM61R
*  INTO TABLE @DATA(IT_RM61R2).
*--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_RM61R INDEX 1 INTO DATA(WA_RM61R2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RM61R ASSIGNING <RM61R>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RM61R>-MATNR = 1.
<RM61R>-TXMAT = 1.
<RM61R>-WERKS = 1.
<RM61R>-TXWRK = 1.
<RM61R>-PERKZ = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RM61R-PRAST, sy-vline,
WA_RM61R-FCODE, sy-vline,
WA_RM61R-DISST, sy-vline,
WA_RM61R-DISSB, sy-vline,
WA_RM61R-DISPO, sy-vline,
WA_RM61R-TXDSP, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RM61R 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_RM61R 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_RM61R INTO WA_RM61R. *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_RM61R-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM61R-MATNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit ABPSP, internal->external for field PSPEL CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_RM61R-PSPEL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM61R-PSPEL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field PRGRP CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_RM61R-PRGRP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM61R-PRGRP.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit MATN1, internal->external for field MPNMT CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_RM61R-MPNMT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM61R-MPNMT.
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_RM61R_STR,
MATNR TYPE STRING,
TXMAT TYPE STRING,
WERKS TYPE STRING,
TXWRK TYPE STRING,
PERKZ TYPE STRING,
PRAST TYPE STRING,
FCODE TYPE STRING,
DISST TYPE STRING,
DISSB TYPE STRING,
DISPO TYPE STRING,
TXDSP TYPE STRING,
KDAUF TYPE STRING,
KDPOS TYPE STRING,
KDEIN TYPE STRING,
DSDAV TYPE STRING,
DSDAB TYPE STRING,
BDBKZ TYPE STRING,
NBEKZ TYPE STRING,
SLKZ1 TYPE STRING,
SLKZ2 TYPE STRING,
SLKZ3 TYPE STRING,
SLKZ4 TYPE STRING,
SLKZ5 TYPE STRING,
SLKZ6 TYPE STRING,
SLKZ7 TYPE STRING,
SLKZ8 TYPE STRING,
BESKZ TYPE STRING,
SOBSL TYPE STRING,
DISMM TYPE STRING,
EXTRA TYPE STRING,
ATXT1 TYPE STRING,
ATXT2 TYPE STRING,
ATXT3 TYPE STRING,
ATXT4 TYPE STRING,
ATXT5 TYPE STRING,
ATXT6 TYPE STRING,
ATXT7 TYPE STRING,
ATXT8 TYPE STRING,
MAFIM TYPE STRING,
MAFIB TYPE STRING,
MATDT TYPE STRING,
PANEW TYPE STRING,
PASUM TYPE STRING,
MSGNO TYPE STRING,
MSGLI TYPE STRING,
GSAEN TYPE STRING,
NOGSA TYPE STRING,
AKKEN TYPE STRING,
RESDT TYPE STRING,
RESAL TYPE STRING,
RHYTD TYPE STRING,
DSATZ TYPE STRING,
BISDT TYPE STRING,
DSELK TYPE STRING,
ANZMA TYPE STRING,
ANZNE TYPE STRING,
ANZNT TYPE STRING,
ANZRP TYPE STRING,
ANZRS TYPE STRING,
ANZMP TYPE STRING,
MEINH TYPE STRING,
MEIN2 TYPE STRING,
MNGC1 TYPE STRING,
MNGC2 TYPE STRING,
MNGC3 TYPE STRING,
MNGC4 TYPE STRING,
MNGC5 TYPE STRING,
WRT05 TYPE STRING,
UEB05 TYPE STRING,
SPA05 TYPE STRING,
SUM01 TYPE STRING,
SUM02 TYPE STRING,
SUM03 TYPE STRING,
SUM04 TYPE STRING,
SUM05 TYPE STRING,
SEKDE TYPE STRING,
SEPOR TYPE STRING,
PSPEL TYPE STRING,
PLSCN TYPE STRING,
RWDA1 TYPE STRING,
RWDA2 TYPE STRING,
RWDA3 TYPE STRING,
RWDAV1 TYPE STRING,
RWDAV2 TYPE STRING,
RWDAV3 TYPE STRING,
BEADV TYPE STRING,
BEADB TYPE STRING,
NAUKZ TYPE STRING,
MATKZ TYPE STRING,
PRGRP TYPE STRING,
TXPRG TYPE STRING,
PRGKZ TYPE STRING,
DSPKZ TYPE STRING,
DSP01 TYPE STRING,
DSP02 TYPE STRING,
PANE2 TYPE STRING,
PASU2 TYPE STRING,
MANOT TYPE STRING,
KZPROMO TYPE STRING,
MMSTA TYPE STRING,
MAABC TYPE STRING,
CLASS TYPE STRING,
TXCLA TYPE STRING,
CLSKZ TYPE STRING,
KLART TYPE STRING,
TXCAR TYPE STRING,
LISKZ TYPE STRING,
BSTKZ TYPE STRING,
BANKZ TYPE STRING,
PAUKZ TYPE STRING,
ORDKZ TYPE STRING,
LIEKZ TYPE STRING,
ZUDAV TYPE STRING,
ZUDAB TYPE STRING,
LIFNR TYPE STRING,
TXLIF TYPE STRING,
FLIKZ TYPE STRING,
LINE1 TYPE STRING,
TXFLI TYPE STRING,
PLFKZ TYPE STRING,
FEAKZ TYPE STRING,
ZADAV TYPE STRING,
ZADAB TYPE STRING,
HIEKZ TYPE STRING,
HIERA TYPE STRING,
KNOTE TYPE STRING,
MDV02 TYPE STRING,
DTVON TYPE STRING,
DTBIS TYPE STRING,
LELIW TYPE STRING,
ONLRQ TYPE STRING,
KPFLG TYPE STRING,
MATSK TYPE STRING,
LINSK TYPE STRING,
PRDPL TYPE STRING,
PATVR TYPE STRING,
PERIO TYPE STRING,
NETPL TYPE STRING,
BRTPL TYPE STRING,
LGOR1 TYPE STRING,
LGOR2 TYPE STRING,
KNDPL TYPE STRING,
PROPL TYPE STRING,
MSTPL TYPE STRING,
VORPL TYPE STRING,
LGORT TYPE STRING,
FKABD TYPE STRING,
RKABD TYPE STRING,
SEQPL TYPE STRING,
SMEKZ TYPE STRING,
PLRST TYPE STRING,
DSPHZ TYPE STRING,
ABKOM TYPE STRING,
PLSCC TYPE STRING,
BERID TYPE STRING,
ANZKA TYPE STRING,
RJVW1 TYPE STRING,
RJVW2 TYPE STRING,
ERWMD TYPE STRING,
BERTX TYPE STRING,
DBRKZ TYPE STRING,
WRKKZ TYPE STRING,
IDBKZ TYPE STRING,
ADBKZ TYPE STRING,
ALGSA TYPE STRING,
DETLI TYPE STRING,
DETDI TYPE STRING,
TABST TYPE STRING,
MNTXT TYPE STRING,
MEMDA TYPE STRING,
MEMTI TYPE STRING,
MEMTM TYPE STRING,
DFILT TYPE STRING,
ERGBZ TYPE STRING,
FILBZ TYPE STRING,
AMPEL TYPE STRING,
ICON_AMPEL TYPE STRING,
AMSLR TYPE STRING,
AMSLY TYPE STRING,
AMSLG TYPE STRING,
DSTAT TYPE STRING,
WERKS2 TYPE STRING,
WERKS2TXT TYPE STRING,
HERKUNFT TYPE STRING,
MTART TYPE STRING,
EXMOD TYPE STRING,
EXTXT TYPE STRING,
MRP_LIVE TYPE STRING,
MPNKZ TYPE STRING,
MPNMT TYPE STRING,
PICKZ TYPE STRING,END OF T_EKKO_STR. DATA: WA_RM61R_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_RM61R_STR-MATNR sy-vline
WA_RM61R_STR-TXMAT sy-vline
WA_RM61R_STR-WERKS sy-vline
WA_RM61R_STR-TXWRK sy-vline
WA_RM61R_STR-PERKZ sy-vline
WA_RM61R_STR-PRAST sy-vline
WA_RM61R_STR-FCODE sy-vline
WA_RM61R_STR-DISST sy-vline
WA_RM61R_STR-DISSB sy-vline
WA_RM61R_STR-DISPO sy-vline
WA_RM61R_STR-TXDSP sy-vline
WA_RM61R_STR-KDAUF sy-vline
WA_RM61R_STR-KDPOS sy-vline
WA_RM61R_STR-KDEIN sy-vline
WA_RM61R_STR-DSDAV sy-vline
WA_RM61R_STR-DSDAB sy-vline
WA_RM61R_STR-BDBKZ sy-vline
WA_RM61R_STR-NBEKZ sy-vline
WA_RM61R_STR-SLKZ1 sy-vline
WA_RM61R_STR-SLKZ2 sy-vline
WA_RM61R_STR-SLKZ3 sy-vline
WA_RM61R_STR-SLKZ4 sy-vline
WA_RM61R_STR-SLKZ5 sy-vline
WA_RM61R_STR-SLKZ6 sy-vline
WA_RM61R_STR-SLKZ7 sy-vline
WA_RM61R_STR-SLKZ8 sy-vline
WA_RM61R_STR-BESKZ sy-vline
WA_RM61R_STR-SOBSL sy-vline
WA_RM61R_STR-DISMM sy-vline
WA_RM61R_STR-EXTRA sy-vline
WA_RM61R_STR-ATXT1 sy-vline
WA_RM61R_STR-ATXT2 sy-vline
WA_RM61R_STR-ATXT3 sy-vline
WA_RM61R_STR-ATXT4 sy-vline
WA_RM61R_STR-ATXT5 sy-vline
WA_RM61R_STR-ATXT6 sy-vline
WA_RM61R_STR-ATXT7 sy-vline
WA_RM61R_STR-ATXT8 sy-vline
WA_RM61R_STR-MAFIM sy-vline
WA_RM61R_STR-MAFIB sy-vline
WA_RM61R_STR-MATDT sy-vline
WA_RM61R_STR-PANEW sy-vline
WA_RM61R_STR-PASUM sy-vline
WA_RM61R_STR-MSGNO sy-vline
WA_RM61R_STR-MSGLI sy-vline
WA_RM61R_STR-GSAEN sy-vline
WA_RM61R_STR-NOGSA sy-vline
WA_RM61R_STR-AKKEN sy-vline
WA_RM61R_STR-RESDT sy-vline
WA_RM61R_STR-RESAL sy-vline
WA_RM61R_STR-RHYTD sy-vline
WA_RM61R_STR-DSATZ sy-vline
WA_RM61R_STR-BISDT sy-vline
WA_RM61R_STR-DSELK sy-vline
WA_RM61R_STR-ANZMA sy-vline
WA_RM61R_STR-ANZNE sy-vline
WA_RM61R_STR-ANZNT sy-vline
WA_RM61R_STR-ANZRP sy-vline
WA_RM61R_STR-ANZRS sy-vline
WA_RM61R_STR-ANZMP sy-vline
WA_RM61R_STR-MEINH sy-vline
WA_RM61R_STR-MEIN2 sy-vline
WA_RM61R_STR-MNGC1 sy-vline
WA_RM61R_STR-MNGC2 sy-vline
WA_RM61R_STR-MNGC3 sy-vline
WA_RM61R_STR-MNGC4 sy-vline
WA_RM61R_STR-MNGC5 sy-vline
WA_RM61R_STR-WRT05 sy-vline
WA_RM61R_STR-UEB05 sy-vline
WA_RM61R_STR-SPA05 sy-vline
WA_RM61R_STR-SUM01 sy-vline
WA_RM61R_STR-SUM02 sy-vline
WA_RM61R_STR-SUM03 sy-vline
WA_RM61R_STR-SUM04 sy-vline
WA_RM61R_STR-SUM05 sy-vline
WA_RM61R_STR-SEKDE sy-vline
WA_RM61R_STR-SEPOR sy-vline
WA_RM61R_STR-PSPEL sy-vline
WA_RM61R_STR-PLSCN sy-vline
WA_RM61R_STR-RWDA1 sy-vline
WA_RM61R_STR-RWDA2 sy-vline
WA_RM61R_STR-RWDA3 sy-vline
WA_RM61R_STR-RWDAV1 sy-vline
WA_RM61R_STR-RWDAV2 sy-vline
WA_RM61R_STR-RWDAV3 sy-vline
WA_RM61R_STR-BEADV sy-vline
WA_RM61R_STR-BEADB sy-vline
WA_RM61R_STR-NAUKZ sy-vline
WA_RM61R_STR-MATKZ sy-vline
WA_RM61R_STR-PRGRP sy-vline
WA_RM61R_STR-TXPRG sy-vline
WA_RM61R_STR-PRGKZ sy-vline
WA_RM61R_STR-DSPKZ sy-vline
WA_RM61R_STR-DSP01 sy-vline
WA_RM61R_STR-DSP02 sy-vline
WA_RM61R_STR-PANE2 sy-vline
WA_RM61R_STR-PASU2 sy-vline
WA_RM61R_STR-MANOT sy-vline
WA_RM61R_STR-KZPROMO sy-vline
WA_RM61R_STR-MMSTA sy-vline
WA_RM61R_STR-MAABC sy-vline
WA_RM61R_STR-CLASS sy-vline
WA_RM61R_STR-TXCLA sy-vline
WA_RM61R_STR-CLSKZ sy-vline
WA_RM61R_STR-KLART sy-vline
WA_RM61R_STR-TXCAR sy-vline
WA_RM61R_STR-LISKZ sy-vline
WA_RM61R_STR-BSTKZ sy-vline
WA_RM61R_STR-BANKZ sy-vline
WA_RM61R_STR-PAUKZ sy-vline
WA_RM61R_STR-ORDKZ sy-vline
WA_RM61R_STR-LIEKZ sy-vline
WA_RM61R_STR-ZUDAV sy-vline
WA_RM61R_STR-ZUDAB sy-vline
WA_RM61R_STR-LIFNR sy-vline
WA_RM61R_STR-TXLIF sy-vline
WA_RM61R_STR-FLIKZ sy-vline
WA_RM61R_STR-LINE1 sy-vline
WA_RM61R_STR-TXFLI sy-vline
WA_RM61R_STR-PLFKZ sy-vline
WA_RM61R_STR-FEAKZ sy-vline
WA_RM61R_STR-ZADAV sy-vline
WA_RM61R_STR-ZADAB sy-vline
WA_RM61R_STR-HIEKZ sy-vline
WA_RM61R_STR-HIERA sy-vline
WA_RM61R_STR-KNOTE sy-vline
WA_RM61R_STR-MDV02 sy-vline
WA_RM61R_STR-DTVON sy-vline
WA_RM61R_STR-DTBIS sy-vline
WA_RM61R_STR-LELIW sy-vline
WA_RM61R_STR-ONLRQ sy-vline
WA_RM61R_STR-KPFLG sy-vline
WA_RM61R_STR-MATSK sy-vline
WA_RM61R_STR-LINSK sy-vline
WA_RM61R_STR-PRDPL sy-vline
WA_RM61R_STR-PATVR sy-vline
WA_RM61R_STR-PERIO sy-vline
WA_RM61R_STR-NETPL sy-vline
WA_RM61R_STR-BRTPL sy-vline
WA_RM61R_STR-LGOR1 sy-vline
WA_RM61R_STR-LGOR2 sy-vline
WA_RM61R_STR-KNDPL sy-vline
WA_RM61R_STR-PROPL sy-vline
WA_RM61R_STR-MSTPL sy-vline
WA_RM61R_STR-VORPL sy-vline
WA_RM61R_STR-LGORT sy-vline
WA_RM61R_STR-FKABD sy-vline
WA_RM61R_STR-RKABD sy-vline
WA_RM61R_STR-SEQPL sy-vline
WA_RM61R_STR-SMEKZ sy-vline
WA_RM61R_STR-PLRST sy-vline
WA_RM61R_STR-DSPHZ sy-vline
WA_RM61R_STR-ABKOM sy-vline
WA_RM61R_STR-PLSCC sy-vline
WA_RM61R_STR-BERID sy-vline
WA_RM61R_STR-ANZKA sy-vline
WA_RM61R_STR-RJVW1 sy-vline
WA_RM61R_STR-RJVW2 sy-vline
WA_RM61R_STR-ERWMD sy-vline
WA_RM61R_STR-BERTX sy-vline
WA_RM61R_STR-DBRKZ sy-vline
WA_RM61R_STR-WRKKZ sy-vline
WA_RM61R_STR-IDBKZ sy-vline
WA_RM61R_STR-ADBKZ sy-vline
WA_RM61R_STR-ALGSA sy-vline
WA_RM61R_STR-DETLI sy-vline
WA_RM61R_STR-DETDI sy-vline
WA_RM61R_STR-TABST sy-vline
WA_RM61R_STR-MNTXT sy-vline
WA_RM61R_STR-MEMDA sy-vline
WA_RM61R_STR-MEMTI sy-vline
WA_RM61R_STR-MEMTM sy-vline
WA_RM61R_STR-DFILT sy-vline
WA_RM61R_STR-ERGBZ sy-vline
WA_RM61R_STR-FILBZ sy-vline
WA_RM61R_STR-AMPEL sy-vline
WA_RM61R_STR-ICON_AMPEL sy-vline
WA_RM61R_STR-AMSLR sy-vline
WA_RM61R_STR-AMSLY sy-vline
WA_RM61R_STR-AMSLG sy-vline
WA_RM61R_STR-DSTAT sy-vline
WA_RM61R_STR-WERKS2 sy-vline
WA_RM61R_STR-WERKS2TXT sy-vline
WA_RM61R_STR-HERKUNFT sy-vline
WA_RM61R_STR-MTART sy-vline
WA_RM61R_STR-EXMOD sy-vline
WA_RM61R_STR-EXTXT sy-vline
WA_RM61R_STR-MRP_LIVE sy-vline
WA_RM61R_STR-MPNKZ sy-vline
WA_RM61R_STR-MPNMT sy-vline
WA_RM61R_STR-PICKZ sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.