ABAP Select data from SAP table RNLMR2 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 RNLMR2 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 RNLMR2. 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 RNLMR2 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_RNLMR2 TYPE STANDARD TABLE OF RNLMR2,
      WA_RNLMR2 TYPE RNLMR2,
      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: <RNLMR2> TYPE RNLMR2.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RNLMR2
*  INTO TABLE @DATA(IT_RNLMR22).
*--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_RNLMR2 INDEX 1 INTO DATA(WA_RNLMR22).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RNLMR2 ASSIGNING <RNLMR2>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RNLMR2>-RECNR = 1.
<RNLMR2>-INSNR = 1.
<RNLMR2>-OPNNR = 1.
<RNLMR2>-PERNR = 1.
<RNLMR2>-SPNR1 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RNLMR2-SPVN2, sy-vline,
WA_RNLMR2-SPNR2, sy-vline,
WA_RNLMR2-SPMC2, sy-vline,
WA_RNLMR2-SPVN3, sy-vline,
WA_RNLMR2-SPNR3, sy-vline,
WA_RNLMR2-SPMC3, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RNLMR2 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_RNLMR2 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_RNLMR2 INTO WA_RNLMR2. *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 OPNNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RNLMR2-OPNNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RNLMR2-OPNNR.
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_RNLMR2_STR,
RECNR TYPE STRING,
INSNR TYPE STRING,
OPNNR TYPE STRING,
PERNR TYPE STRING,
SPNR1 TYPE STRING,
SPVN2 TYPE STRING,
SPNR2 TYPE STRING,
SPMC2 TYPE STRING,
SPVN3 TYPE STRING,
SPNR3 TYPE STRING,
SPMC3 TYPE STRING,
SPVN4 TYPE STRING,
SPNR4 TYPE STRING,
SPMC4 TYPE STRING,
SPVN5 TYPE STRING,
SPNR5 TYPE STRING,
SPMC5 TYPE STRING,
SPVN6 TYPE STRING,
SPNR6 TYPE STRING,
SPMC6 TYPE STRING,
SPVN7 TYPE STRING,
SPNR7 TYPE STRING,
SPMC7 TYPE STRING,
SPVN8 TYPE STRING,
SPNR8 TYPE STRING,
SPMC8 TYPE STRING,
SPVN9 TYPE STRING,
SPNR9 TYPE STRING,
SPMC9 TYPE STRING,
DEMCP TYPE STRING,
DCDEP TYPE STRING,
DAANP TYPE STRING,
NRPRI TYPE STRING,
DVLG1 TYPE STRING,
DEMC1 TYPE STRING,
DCDE1 TYPE STRING,
DAAN1 TYPE STRING,
DVER1 TYPE STRING,
DVLG2 TYPE STRING,
DEMC2 TYPE STRING,
DCDE2 TYPE STRING,
DAAN2 TYPE STRING,
DVER2 TYPE STRING,
DVLG3 TYPE STRING,
DEMC3 TYPE STRING,
DCDE3 TYPE STRING,
DAAN3 TYPE STRING,
DVER3 TYPE STRING,
DVLG4 TYPE STRING,
DEMC4 TYPE STRING,
DCDE4 TYPE STRING,
DAAN4 TYPE STRING,
DVER4 TYPE STRING,
DVLG5 TYPE STRING,
DEMC5 TYPE STRING,
DCDE5 TYPE STRING,
DAAN5 TYPE STRING,
DVER5 TYPE STRING,
DVLG6 TYPE STRING,
DEMC6 TYPE STRING,
DCDE6 TYPE STRING,
DAAN6 TYPE STRING,
DVER6 TYPE STRING,
DVLG7 TYPE STRING,
DEMC7 TYPE STRING,
DCDE7 TYPE STRING,
DAAN7 TYPE STRING,
DVER7 TYPE STRING,
DVLG8 TYPE STRING,
DEMC8 TYPE STRING,
DCDE8 TYPE STRING,
DAAN8 TYPE STRING,
DVER8 TYPE STRING,
DVLG9 TYPE STRING,
DEMC9 TYPE STRING,
DCDE9 TYPE STRING,
DAAN9 TYPE STRING,
DVER9 TYPE STRING,
DVLG0 TYPE STRING,
DEMC0 TYPE STRING,
DCDE0 TYPE STRING,
DAAN0 TYPE STRING,
DVER0 TYPE STRING,
OODAT TYPE STRING,
INDVR TYPE STRING,
VRRMT TYPE STRING,
PDIAG TYPE STRING,
DIAG1 TYPE STRING,
DIAG2 TYPE STRING,
DIAG3 TYPE STRING,
DIAG4 TYPE STRING,
DIAG5 TYPE STRING,
DIAG6 TYPE STRING,
DIAG7 TYPE STRING,
DIAG8 TYPE STRING,
DIAG9 TYPE STRING,
DIAG0 TYPE STRING,END OF T_EKKO_STR. DATA: WA_RNLMR2_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_RNLMR2_STR-RECNR sy-vline
WA_RNLMR2_STR-INSNR sy-vline
WA_RNLMR2_STR-OPNNR sy-vline
WA_RNLMR2_STR-PERNR sy-vline
WA_RNLMR2_STR-SPNR1 sy-vline
WA_RNLMR2_STR-SPVN2 sy-vline
WA_RNLMR2_STR-SPNR2 sy-vline
WA_RNLMR2_STR-SPMC2 sy-vline
WA_RNLMR2_STR-SPVN3 sy-vline
WA_RNLMR2_STR-SPNR3 sy-vline
WA_RNLMR2_STR-SPMC3 sy-vline
WA_RNLMR2_STR-SPVN4 sy-vline
WA_RNLMR2_STR-SPNR4 sy-vline
WA_RNLMR2_STR-SPMC4 sy-vline
WA_RNLMR2_STR-SPVN5 sy-vline
WA_RNLMR2_STR-SPNR5 sy-vline
WA_RNLMR2_STR-SPMC5 sy-vline
WA_RNLMR2_STR-SPVN6 sy-vline
WA_RNLMR2_STR-SPNR6 sy-vline
WA_RNLMR2_STR-SPMC6 sy-vline
WA_RNLMR2_STR-SPVN7 sy-vline
WA_RNLMR2_STR-SPNR7 sy-vline
WA_RNLMR2_STR-SPMC7 sy-vline
WA_RNLMR2_STR-SPVN8 sy-vline
WA_RNLMR2_STR-SPNR8 sy-vline
WA_RNLMR2_STR-SPMC8 sy-vline
WA_RNLMR2_STR-SPVN9 sy-vline
WA_RNLMR2_STR-SPNR9 sy-vline
WA_RNLMR2_STR-SPMC9 sy-vline
WA_RNLMR2_STR-DEMCP sy-vline
WA_RNLMR2_STR-DCDEP sy-vline
WA_RNLMR2_STR-DAANP sy-vline
WA_RNLMR2_STR-NRPRI sy-vline
WA_RNLMR2_STR-DVLG1 sy-vline
WA_RNLMR2_STR-DEMC1 sy-vline
WA_RNLMR2_STR-DCDE1 sy-vline
WA_RNLMR2_STR-DAAN1 sy-vline
WA_RNLMR2_STR-DVER1 sy-vline
WA_RNLMR2_STR-DVLG2 sy-vline
WA_RNLMR2_STR-DEMC2 sy-vline
WA_RNLMR2_STR-DCDE2 sy-vline
WA_RNLMR2_STR-DAAN2 sy-vline
WA_RNLMR2_STR-DVER2 sy-vline
WA_RNLMR2_STR-DVLG3 sy-vline
WA_RNLMR2_STR-DEMC3 sy-vline
WA_RNLMR2_STR-DCDE3 sy-vline
WA_RNLMR2_STR-DAAN3 sy-vline
WA_RNLMR2_STR-DVER3 sy-vline
WA_RNLMR2_STR-DVLG4 sy-vline
WA_RNLMR2_STR-DEMC4 sy-vline
WA_RNLMR2_STR-DCDE4 sy-vline
WA_RNLMR2_STR-DAAN4 sy-vline
WA_RNLMR2_STR-DVER4 sy-vline
WA_RNLMR2_STR-DVLG5 sy-vline
WA_RNLMR2_STR-DEMC5 sy-vline
WA_RNLMR2_STR-DCDE5 sy-vline
WA_RNLMR2_STR-DAAN5 sy-vline
WA_RNLMR2_STR-DVER5 sy-vline
WA_RNLMR2_STR-DVLG6 sy-vline
WA_RNLMR2_STR-DEMC6 sy-vline
WA_RNLMR2_STR-DCDE6 sy-vline
WA_RNLMR2_STR-DAAN6 sy-vline
WA_RNLMR2_STR-DVER6 sy-vline
WA_RNLMR2_STR-DVLG7 sy-vline
WA_RNLMR2_STR-DEMC7 sy-vline
WA_RNLMR2_STR-DCDE7 sy-vline
WA_RNLMR2_STR-DAAN7 sy-vline
WA_RNLMR2_STR-DVER7 sy-vline
WA_RNLMR2_STR-DVLG8 sy-vline
WA_RNLMR2_STR-DEMC8 sy-vline
WA_RNLMR2_STR-DCDE8 sy-vline
WA_RNLMR2_STR-DAAN8 sy-vline
WA_RNLMR2_STR-DVER8 sy-vline
WA_RNLMR2_STR-DVLG9 sy-vline
WA_RNLMR2_STR-DEMC9 sy-vline
WA_RNLMR2_STR-DCDE9 sy-vline
WA_RNLMR2_STR-DAAN9 sy-vline
WA_RNLMR2_STR-DVER9 sy-vline
WA_RNLMR2_STR-DVLG0 sy-vline
WA_RNLMR2_STR-DEMC0 sy-vline
WA_RNLMR2_STR-DCDE0 sy-vline
WA_RNLMR2_STR-DAAN0 sy-vline
WA_RNLMR2_STR-DVER0 sy-vline
WA_RNLMR2_STR-OODAT sy-vline
WA_RNLMR2_STR-INDVR sy-vline
WA_RNLMR2_STR-VRRMT sy-vline
WA_RNLMR2_STR-PDIAG sy-vline
WA_RNLMR2_STR-DIAG1 sy-vline
WA_RNLMR2_STR-DIAG2 sy-vline
WA_RNLMR2_STR-DIAG3 sy-vline
WA_RNLMR2_STR-DIAG4 sy-vline
WA_RNLMR2_STR-DIAG5 sy-vline
WA_RNLMR2_STR-DIAG6 sy-vline
WA_RNLMR2_STR-DIAG7 sy-vline
WA_RNLMR2_STR-DIAG8 sy-vline
WA_RNLMR2_STR-DIAG9 sy-vline
WA_RNLMR2_STR-DIAG0 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.