ABAP Select data from SAP table RF10N 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 RF10N 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 RF10N. 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 RF10N 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_RF10N TYPE STANDARD TABLE OF RF10N,
      WA_RF10N TYPE RF10N,
      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: <RF10N> TYPE RF10N.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RF10N
*  INTO TABLE @DATA(IT_RF10N2).
*--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_RF10N INDEX 1 INTO DATA(WA_RF10N2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RF10N ASSIGNING <RF10N>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RF10N>-RCOMP_L = 1.
<RF10N>-RCOMP_H = 1.
<RF10N>-RLDNR_L = 1.
<RF10N>-RLDNR_H = 1.
<RF10N>-RVERS_L = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RF10N-RVERS_H, sy-vline,
WA_RF10N-RYEAR_L, sy-vline,
WA_RF10N-RYEAR_H, sy-vline,
WA_RF10N-PERID_L, sy-vline,
WA_RF10N-PERID_H, sy-vline,
WA_RF10N-LANGU_L, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RF10N 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_RF10N 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_RF10N INTO WA_RF10N. *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 RCOMP_L CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RF10N-RCOMP_L IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RF10N-RCOMP_L.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field T876_H CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RF10N-T876_H IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RF10N-T876_H.
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_RF10N_STR,
RCOMP_L TYPE STRING,
RCOMP_H TYPE STRING,
RLDNR_L TYPE STRING,
RLDNR_H TYPE STRING,
RVERS_L TYPE STRING,
RVERS_H TYPE STRING,
RYEAR_L TYPE STRING,
RYEAR_H TYPE STRING,
PERID_L TYPE STRING,
PERID_H TYPE STRING,
LANGU_L TYPE STRING,
LANGU_H TYPE STRING,
SETS TYPE STRING,
T850 TYPE STRING,
T850_L TYPE STRING,
T850_H TYPE STRING,
T850K TYPE STRING,
T850S TYPE STRING,
T880B TYPE STRING,
T882C TYPE STRING,
T855 TYPE STRING,
T850A TYPE STRING,
T852 TYPE STRING,
T852_L TYPE STRING,
T852_H TYPE STRING,
T852G TYPE STRING,
COMPS TYPE STRING,
T870 TYPE STRING,
T854 TYPE STRING,
T854_L TYPE STRING,
T854_H TYPE STRING,
T854S TYPE STRING,
T856 TYPE STRING,
T856_L TYPE STRING,
T856_H TYPE STRING,
T856X TYPE STRING,
T859 TYPE STRING,
T859_L TYPE STRING,
T859_H TYPE STRING,
T857F TYPE STRING,
T857P TYPE STRING,
T863 TYPE STRING,
T863_L TYPE STRING,
T863_H TYPE STRING,
T863B TYPE STRING,
T852P TYPE STRING,
T858 TYPE STRING,
T858_L TYPE STRING,
T858_H TYPE STRING,
T881 TYPE STRING,
T881_L TYPE STRING,
T881_H TYPE STRING,
T876 TYPE STRING,
T876_L TYPE STRING,
T876_H TYPE STRING,
T884 TYPE STRING,
T884_L TYPE STRING,
T884_H TYPE STRING,
T864 TYPE STRING,
T865 TYPE STRING,
T865_L TYPE STRING,
T865_H TYPE STRING,
T866 TYPE STRING,
T869 TYPE STRING,
T869_L TYPE STRING,
T869_H TYPE STRING,
T868B TYPE STRING,
T875 TYPE STRING,
T851 TYPE STRING,
TITEL_1 TYPE STRING,
TITEL_2 TYPE STRING,
TITEL_3 TYPE STRING,
TITEL_4 TYPE STRING,
TITEL_5 TYPE STRING,
TITEL_6 TYPE STRING,END OF T_EKKO_STR. DATA: WA_RF10N_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_RF10N_STR-RCOMP_L sy-vline
WA_RF10N_STR-RCOMP_H sy-vline
WA_RF10N_STR-RLDNR_L sy-vline
WA_RF10N_STR-RLDNR_H sy-vline
WA_RF10N_STR-RVERS_L sy-vline
WA_RF10N_STR-RVERS_H sy-vline
WA_RF10N_STR-RYEAR_L sy-vline
WA_RF10N_STR-RYEAR_H sy-vline
WA_RF10N_STR-PERID_L sy-vline
WA_RF10N_STR-PERID_H sy-vline
WA_RF10N_STR-LANGU_L sy-vline
WA_RF10N_STR-LANGU_H sy-vline
WA_RF10N_STR-SETS sy-vline
WA_RF10N_STR-T850 sy-vline
WA_RF10N_STR-T850_L sy-vline
WA_RF10N_STR-T850_H sy-vline
WA_RF10N_STR-T850K sy-vline
WA_RF10N_STR-T850S sy-vline
WA_RF10N_STR-T880B sy-vline
WA_RF10N_STR-T882C sy-vline
WA_RF10N_STR-T855 sy-vline
WA_RF10N_STR-T850A sy-vline
WA_RF10N_STR-T852 sy-vline
WA_RF10N_STR-T852_L sy-vline
WA_RF10N_STR-T852_H sy-vline
WA_RF10N_STR-T852G sy-vline
WA_RF10N_STR-COMPS sy-vline
WA_RF10N_STR-T870 sy-vline
WA_RF10N_STR-T854 sy-vline
WA_RF10N_STR-T854_L sy-vline
WA_RF10N_STR-T854_H sy-vline
WA_RF10N_STR-T854S sy-vline
WA_RF10N_STR-T856 sy-vline
WA_RF10N_STR-T856_L sy-vline
WA_RF10N_STR-T856_H sy-vline
WA_RF10N_STR-T856X sy-vline
WA_RF10N_STR-T859 sy-vline
WA_RF10N_STR-T859_L sy-vline
WA_RF10N_STR-T859_H sy-vline
WA_RF10N_STR-T857F sy-vline
WA_RF10N_STR-T857P sy-vline
WA_RF10N_STR-T863 sy-vline
WA_RF10N_STR-T863_L sy-vline
WA_RF10N_STR-T863_H sy-vline
WA_RF10N_STR-T863B sy-vline
WA_RF10N_STR-T852P sy-vline
WA_RF10N_STR-T858 sy-vline
WA_RF10N_STR-T858_L sy-vline
WA_RF10N_STR-T858_H sy-vline
WA_RF10N_STR-T881 sy-vline
WA_RF10N_STR-T881_L sy-vline
WA_RF10N_STR-T881_H sy-vline
WA_RF10N_STR-T876 sy-vline
WA_RF10N_STR-T876_L sy-vline
WA_RF10N_STR-T876_H sy-vline
WA_RF10N_STR-T884 sy-vline
WA_RF10N_STR-T884_L sy-vline
WA_RF10N_STR-T884_H sy-vline
WA_RF10N_STR-T864 sy-vline
WA_RF10N_STR-T865 sy-vline
WA_RF10N_STR-T865_L sy-vline
WA_RF10N_STR-T865_H sy-vline
WA_RF10N_STR-T866 sy-vline
WA_RF10N_STR-T869 sy-vline
WA_RF10N_STR-T869_L sy-vline
WA_RF10N_STR-T869_H sy-vline
WA_RF10N_STR-T868B sy-vline
WA_RF10N_STR-T875 sy-vline
WA_RF10N_STR-T851 sy-vline
WA_RF10N_STR-TITEL_1 sy-vline
WA_RF10N_STR-TITEL_2 sy-vline
WA_RF10N_STR-TITEL_3 sy-vline
WA_RF10N_STR-TITEL_4 sy-vline
WA_RF10N_STR-TITEL_5 sy-vline
WA_RF10N_STR-TITEL_6 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.