ABAP Select data from SAP table RMF64 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 RMF64 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 RMF64. 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 RMF64 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_RMF64 TYPE STANDARD TABLE OF RMF64,
      WA_RMF64 TYPE RMF64,
      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: <RMF64> TYPE RMF64.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RMF64
*  INTO TABLE @DATA(IT_RMF642).
*--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_RMF64 INDEX 1 INTO DATA(WA_RMF642).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RMF64 ASSIGNING <RMF64>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RMF64>-XANLF = 1.
<RMF64>-XSTATI = 1.
<RMF64>-XAKAR = 1.
<RMF64>-XNOTI = 1.
<RMF64>-XVBRE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RMF64-XFOTY, sy-vline,
WA_RMF64-XOEFF, sy-vline,
WA_RMF64-XCUEX, sy-vline,
WA_RMF64-XARTBEZ, sy-vline,
WA_RMF64-XAKTTYP, sy-vline,
WA_RMF64-XWPKLASS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RMF64 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_RMF64 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_RMF64 INTO WA_RMF64. *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 RKONTRAH CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RMF64-RKONTRAH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMF64-RKONTRAH.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field RZBANK CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RMF64-RZBANK IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMF64-RZBANK.
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_RMF64_STR,
XANLF TYPE STRING,
XSTATI TYPE STRING,
XAKAR TYPE STRING,
XNOTI TYPE STRING,
XVBRE TYPE STRING,
XFOTY TYPE STRING,
XOEFF TYPE STRING,
XCUEX TYPE STRING,
XARTBEZ TYPE STRING,
XAKTTYP TYPE STRING,
XWPKLASS TYPE STRING,
XEFFMETH TYPE STRING,
XZBMETH TYPE STRING,
XTILGART TYPE STRING,
XTILGRHY TYPE STRING,
XVERROPT TYPE STRING,
XOPTTYP TYPE STRING,
XINDEART TYPE STRING,
XOPTAUS TYPE STRING,
XKHERK TYPE STRING,
XZAHLDIV TYPE STRING,
XKURSART TYPE STRING,
XUDEC TYPE STRING,
XSKZB TYPE STRING,
XVERWA TYPE STRING,
XBEWK TYPE STRING,
XEWHR TYPE STRING,
XWHRAUSG TYPE STRING,
XWHRKOND TYPE STRING,
XWBZP TYPE STRING,
XWAUF TYPE STRING,
SNOTIZ TYPE STRING,
XNOTIZ TYPE STRING,
RKONTRAH TYPE STRING,
REMITT TYPE STRING,
RBEGUEN TYPE STRING,
RDBANK TYPE STRING,
RHAPL TYPE STRING,
XFIBG TYPE STRING,
XGLZBB TYPE STRING,
XBILK TYPE STRING,
XGBAV TYPE STRING,
XBAV501 TYPE STRING,
XUABN TYPE STRING,
XDVNR TYPE STRING,
XDEPOT TYPE STRING,
XBEGUEN TYPE STRING,
XSKTXT TYPE STRING,
XOPTVERT TYPE STRING,
XJN1 TYPE STRING,
XJN2 TYPE STRING,
XJN3 TYPE STRING,
XJN4 TYPE STRING,
XJN5 TYPE STRING,
XJN6 TYPE STRING,
XJN7 TYPE STRING,
XJN8 TYPE STRING,
RANTYP TYPE STRING,
DBILK TYPE STRING,
DBESANT TYPE STRING,
BBESANT TYPE STRING,
BBILK TYPE STRING,
DEMBEG TYPE STRING,
DENDFAE TYPE STRING,
PEMREND TYPE STRING,
SRENDMETH TYPE STRING,
XGLZBD TYPE STRING,
XREPKE TYPE STRING,
XKURZBEZ1 TYPE STRING,
XKURZBEZ2 TYPE STRING,
RANLALT1 TYPE STRING,
RANLALT2 TYPE STRING,
RZBANK TYPE STRING,
XRZBANK TYPE STRING,
XRKONTRAH TYPE STRING,
XFOART TYPE STRING,
XALKZ TYPE STRING,
XDISKO TYPE STRING,
XINDWHR TYPE STRING,
XWHRBAS TYPE STRING,
XBEZWHR TYPE STRING,
XREFKONT TYPE STRING,
SINKKOKO TYPE STRING,
XKWG14NEU TYPE STRING,
XLOSHKZ TYPE STRING,
XPOSTYP TYPE STRING,
XZLSCH TYPE STRING,
XRAHKTID TYPE STRING,
XRPBANK TYPE STRING,
XDEV_PAYER TYPE STRING,
XPAYER TYPE STRING,
XBANKA TYPE STRING,
XGSART2 TYPE STRING,
MARK TYPE STRING,END OF T_EKKO_STR. DATA: WA_RMF64_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_RMF64_STR-XANLF sy-vline
WA_RMF64_STR-XSTATI sy-vline
WA_RMF64_STR-XAKAR sy-vline
WA_RMF64_STR-XNOTI sy-vline
WA_RMF64_STR-XVBRE sy-vline
WA_RMF64_STR-XFOTY sy-vline
WA_RMF64_STR-XOEFF sy-vline
WA_RMF64_STR-XCUEX sy-vline
WA_RMF64_STR-XARTBEZ sy-vline
WA_RMF64_STR-XAKTTYP sy-vline
WA_RMF64_STR-XWPKLASS sy-vline
WA_RMF64_STR-XEFFMETH sy-vline
WA_RMF64_STR-XZBMETH sy-vline
WA_RMF64_STR-XTILGART sy-vline
WA_RMF64_STR-XTILGRHY sy-vline
WA_RMF64_STR-XVERROPT sy-vline
WA_RMF64_STR-XOPTTYP sy-vline
WA_RMF64_STR-XINDEART sy-vline
WA_RMF64_STR-XOPTAUS sy-vline
WA_RMF64_STR-XKHERK sy-vline
WA_RMF64_STR-XZAHLDIV sy-vline
WA_RMF64_STR-XKURSART sy-vline
WA_RMF64_STR-XUDEC sy-vline
WA_RMF64_STR-XSKZB sy-vline
WA_RMF64_STR-XVERWA sy-vline
WA_RMF64_STR-XBEWK sy-vline
WA_RMF64_STR-XEWHR sy-vline
WA_RMF64_STR-XWHRAUSG sy-vline
WA_RMF64_STR-XWHRKOND sy-vline
WA_RMF64_STR-XWBZP sy-vline
WA_RMF64_STR-XWAUF sy-vline
WA_RMF64_STR-SNOTIZ sy-vline
WA_RMF64_STR-XNOTIZ sy-vline
WA_RMF64_STR-RKONTRAH sy-vline
WA_RMF64_STR-REMITT sy-vline
WA_RMF64_STR-RBEGUEN sy-vline
WA_RMF64_STR-RDBANK sy-vline
WA_RMF64_STR-RHAPL sy-vline
WA_RMF64_STR-XFIBG sy-vline
WA_RMF64_STR-XGLZBB sy-vline
WA_RMF64_STR-XBILK sy-vline
WA_RMF64_STR-XGBAV sy-vline
WA_RMF64_STR-XBAV501 sy-vline
WA_RMF64_STR-XUABN sy-vline
WA_RMF64_STR-XDVNR sy-vline
WA_RMF64_STR-XDEPOT sy-vline
WA_RMF64_STR-XBEGUEN sy-vline
WA_RMF64_STR-XSKTXT sy-vline
WA_RMF64_STR-XOPTVERT sy-vline
WA_RMF64_STR-XJN1 sy-vline
WA_RMF64_STR-XJN2 sy-vline
WA_RMF64_STR-XJN3 sy-vline
WA_RMF64_STR-XJN4 sy-vline
WA_RMF64_STR-XJN5 sy-vline
WA_RMF64_STR-XJN6 sy-vline
WA_RMF64_STR-XJN7 sy-vline
WA_RMF64_STR-XJN8 sy-vline
WA_RMF64_STR-RANTYP sy-vline
WA_RMF64_STR-DBILK sy-vline
WA_RMF64_STR-DBESANT sy-vline
WA_RMF64_STR-BBESANT sy-vline
WA_RMF64_STR-BBILK sy-vline
WA_RMF64_STR-DEMBEG sy-vline
WA_RMF64_STR-DENDFAE sy-vline
WA_RMF64_STR-PEMREND sy-vline
WA_RMF64_STR-SRENDMETH sy-vline
WA_RMF64_STR-XGLZBD sy-vline
WA_RMF64_STR-XREPKE sy-vline
WA_RMF64_STR-XKURZBEZ1 sy-vline
WA_RMF64_STR-XKURZBEZ2 sy-vline
WA_RMF64_STR-RANLALT1 sy-vline
WA_RMF64_STR-RANLALT2 sy-vline
WA_RMF64_STR-RZBANK sy-vline
WA_RMF64_STR-XRZBANK sy-vline
WA_RMF64_STR-XRKONTRAH sy-vline
WA_RMF64_STR-XFOART sy-vline
WA_RMF64_STR-XALKZ sy-vline
WA_RMF64_STR-XDISKO sy-vline
WA_RMF64_STR-XINDWHR sy-vline
WA_RMF64_STR-XWHRBAS sy-vline
WA_RMF64_STR-XBEZWHR sy-vline
WA_RMF64_STR-XREFKONT sy-vline
WA_RMF64_STR-SINKKOKO sy-vline
WA_RMF64_STR-XKWG14NEU sy-vline
WA_RMF64_STR-XLOSHKZ sy-vline
WA_RMF64_STR-XPOSTYP sy-vline
WA_RMF64_STR-XZLSCH sy-vline
WA_RMF64_STR-XRAHKTID sy-vline
WA_RMF64_STR-XRPBANK sy-vline
WA_RMF64_STR-XDEV_PAYER sy-vline
WA_RMF64_STR-XPAYER sy-vline
WA_RMF64_STR-XBANKA sy-vline
WA_RMF64_STR-XGSART2 sy-vline
WA_RMF64_STR-MARK sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.