ABAP Select data from SAP table RN1SRV_X 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 RN1SRV_X 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 RN1SRV_X. 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 RN1SRV_X 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_RN1SRV_X TYPE STANDARD TABLE OF RN1SRV_X,
      WA_RN1SRV_X TYPE RN1SRV_X,
      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: <RN1SRV_X> TYPE RN1SRV_X.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RN1SRV_X
*  INTO TABLE @DATA(IT_RN1SRV_X2).
*--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_RN1SRV_X INDEX 1 INTO DATA(WA_RN1SRV_X2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RN1SRV_X ASSIGNING <RN1SRV_X>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RN1SRV_X>-MANDT = 1.
<RN1SRV_X>-EINRI = 1.
<RN1SRV_X>-LEIST = 1.
<RN1SRV_X>-LEIST_X = 1.
<RN1SRV_X>-LNRLS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RN1SRV_X-HAUST, sy-vline,
WA_RN1SRV_X-OTYPL, sy-vline,
WA_RN1SRV_X-FALNR, sy-vline,
WA_RN1SRV_X-FALNR_X, sy-vline,
WA_RN1SRV_X-PATNR, sy-vline,
WA_RN1SRV_X-PATNR_X, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RN1SRV_X 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_RN1SRV_X 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_RN1SRV_X INTO WA_RN1SRV_X. *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 EINRI CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RN1SRV_X-EINRI IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RN1SRV_X-EINRI.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field VMA CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RN1SRV_X-VMA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RN1SRV_X-VMA.
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_RN1SRV_X_STR,
MANDT TYPE STRING,
EINRI TYPE STRING,
LEIST TYPE STRING,
LEIST_X TYPE STRING,
LNRLS TYPE STRING,
HAUST TYPE STRING,
OTYPL TYPE STRING,
FALNR TYPE STRING,
FALNR_X TYPE STRING,
PATNR TYPE STRING,
PATNR_X TYPE STRING,
PAPID TYPE STRING,
PAPID_X TYPE STRING,
LFDBEW TYPE STRING,
LFDBEW_X TYPE STRING,
ANFOE TYPE STRING,
ANFOE_X TYPE STRING,
ERBOE TYPE STRING,
ERBOE_X TYPE STRING,
ANPOE TYPE STRING,
ANPOE_X TYPE STRING,
MATNR TYPE STRING,
MATNR_X TYPE STRING,
LEINH TYPE STRING,
LEINH_X TYPE STRING,
STALS TYPE STRING,
STALS_X TYPE STRING,
LEITX TYPE STRING,
LEITX_X TYPE STRING,
MENG TYPE STRING,
MENG_X TYPE STRING,
BGDT TYPE STRING,
BGDT_X TYPE STRING,
ENDT TYPE STRING,
ENDT_X TYPE STRING,
BZT TYPE STRING,
BZT_X TYPE STRING,
EZT TYPE STRING,
EZT_X TYPE STRING,
LSSTAE TYPE STRING,
LSSTAE_X TYPE STRING,
ANFID TYPE STRING,
ANFID_X TYPE STRING,
NTRKZ TYPE STRING,
NTRKZ_X TYPE STRING,
WBGDT TYPE STRING,
WBGDT_X TYPE STRING,
WBGZT TYPE STRING,
WBGZT_X TYPE STRING,
ERGTX TYPE STRING,
ERGTX_X TYPE STRING,
ERLTX TYPE STRING,
ERLTX_X TYPE STRING,
BEFR TYPE STRING,
BEFR_X TYPE STRING,
BFEINH TYPE STRING,
BFEINH_X TYPE STRING,
BFENDDT TYPE STRING,
BFENDDT_X TYPE STRING,
SORTLEIST TYPE STRING,
SORTLEIST_X TYPE STRING,
WBZPI TYPE STRING,
WBZPI_X TYPE STRING,
DAUER TYPE STRING,
DAUER_X TYPE STRING,
ZIMMR TYPE STRING,
ZIMMR_X TYPE STRING,
IFG TYPE STRING,
IFG_X TYPE STRING,
ANERF TYPE STRING,
ANERF_X TYPE STRING,
LSLOK TYPE STRING,
LSLOK_X TYPE STRING,
PATEIN TYPE STRING,
PATEIN_X TYPE STRING,
PMEDFG TYPE STRING,
PMEDFG_X TYPE STRING,
PMEDVS TYPE STRING,
PMEDVS_X TYPE STRING,
PZMAN TYPE STRING,
PZMAN_X TYPE STRING,
ANKLS TYPE STRING,
OPNR TYPE STRING,
OPNR_X TYPE STRING,
PATNUE TYPE STRING,
PATNUE_X TYPE STRING,
TERMINF TYPE STRING,
TERMINF_X TYPE STRING,
LIDI TYPE STRING,
LIDI_X TYPE STRING,
VKGID TYPE STRING,
VKGID_X TYPE STRING,
TMNID TYPE STRING,
TMNID_X TYPE STRING,
GPART TYPE STRING,
GPART_X TYPE STRING,
STORN TYPE STRING,
STORN_X TYPE STRING,
ABRKZ TYPE STRING,
ABRKZ_X TYPE STRING,
HIC_FREE TYPE STRING,
HIC_FREE_X TYPE STRING,
HIC_FREE_MED TYPE STRING,
HIC_FREE_MED_X TYPE STRING,
CYSRVTPLID TYPE STRING,
CYSRVTPLID_X TYPE STRING,
CYDAT TYPE STRING,
CYDAT_X TYPE STRING,
CYTIM TYPE STRING,
CYTIM_X TYPE STRING,
CYDEFID TYPE STRING,
CYDEFID_X TYPE STRING,
GENCYID TYPE STRING,
GENCYID_X TYPE STRING,
MODE TYPE STRING,
VMA TYPE STRING,END OF T_EKKO_STR. DATA: WA_RN1SRV_X_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_RN1SRV_X_STR-MANDT sy-vline
WA_RN1SRV_X_STR-EINRI sy-vline
WA_RN1SRV_X_STR-LEIST sy-vline
WA_RN1SRV_X_STR-LEIST_X sy-vline
WA_RN1SRV_X_STR-LNRLS sy-vline
WA_RN1SRV_X_STR-HAUST sy-vline
WA_RN1SRV_X_STR-OTYPL sy-vline
WA_RN1SRV_X_STR-FALNR sy-vline
WA_RN1SRV_X_STR-FALNR_X sy-vline
WA_RN1SRV_X_STR-PATNR sy-vline
WA_RN1SRV_X_STR-PATNR_X sy-vline
WA_RN1SRV_X_STR-PAPID sy-vline
WA_RN1SRV_X_STR-PAPID_X sy-vline
WA_RN1SRV_X_STR-LFDBEW sy-vline
WA_RN1SRV_X_STR-LFDBEW_X sy-vline
WA_RN1SRV_X_STR-ANFOE sy-vline
WA_RN1SRV_X_STR-ANFOE_X sy-vline
WA_RN1SRV_X_STR-ERBOE sy-vline
WA_RN1SRV_X_STR-ERBOE_X sy-vline
WA_RN1SRV_X_STR-ANPOE sy-vline
WA_RN1SRV_X_STR-ANPOE_X sy-vline
WA_RN1SRV_X_STR-MATNR sy-vline
WA_RN1SRV_X_STR-MATNR_X sy-vline
WA_RN1SRV_X_STR-LEINH sy-vline
WA_RN1SRV_X_STR-LEINH_X sy-vline
WA_RN1SRV_X_STR-STALS sy-vline
WA_RN1SRV_X_STR-STALS_X sy-vline
WA_RN1SRV_X_STR-LEITX sy-vline
WA_RN1SRV_X_STR-LEITX_X sy-vline
WA_RN1SRV_X_STR-MENG sy-vline
WA_RN1SRV_X_STR-MENG_X sy-vline
WA_RN1SRV_X_STR-BGDT sy-vline
WA_RN1SRV_X_STR-BGDT_X sy-vline
WA_RN1SRV_X_STR-ENDT sy-vline
WA_RN1SRV_X_STR-ENDT_X sy-vline
WA_RN1SRV_X_STR-BZT sy-vline
WA_RN1SRV_X_STR-BZT_X sy-vline
WA_RN1SRV_X_STR-EZT sy-vline
WA_RN1SRV_X_STR-EZT_X sy-vline
WA_RN1SRV_X_STR-LSSTAE sy-vline
WA_RN1SRV_X_STR-LSSTAE_X sy-vline
WA_RN1SRV_X_STR-ANFID sy-vline
WA_RN1SRV_X_STR-ANFID_X sy-vline
WA_RN1SRV_X_STR-NTRKZ sy-vline
WA_RN1SRV_X_STR-NTRKZ_X sy-vline
WA_RN1SRV_X_STR-WBGDT sy-vline
WA_RN1SRV_X_STR-WBGDT_X sy-vline
WA_RN1SRV_X_STR-WBGZT sy-vline
WA_RN1SRV_X_STR-WBGZT_X sy-vline
WA_RN1SRV_X_STR-ERGTX sy-vline
WA_RN1SRV_X_STR-ERGTX_X sy-vline
WA_RN1SRV_X_STR-ERLTX sy-vline
WA_RN1SRV_X_STR-ERLTX_X sy-vline
WA_RN1SRV_X_STR-BEFR sy-vline
WA_RN1SRV_X_STR-BEFR_X sy-vline
WA_RN1SRV_X_STR-BFEINH sy-vline
WA_RN1SRV_X_STR-BFEINH_X sy-vline
WA_RN1SRV_X_STR-BFENDDT sy-vline
WA_RN1SRV_X_STR-BFENDDT_X sy-vline
WA_RN1SRV_X_STR-SORTLEIST sy-vline
WA_RN1SRV_X_STR-SORTLEIST_X sy-vline
WA_RN1SRV_X_STR-WBZPI sy-vline
WA_RN1SRV_X_STR-WBZPI_X sy-vline
WA_RN1SRV_X_STR-DAUER sy-vline
WA_RN1SRV_X_STR-DAUER_X sy-vline
WA_RN1SRV_X_STR-ZIMMR sy-vline
WA_RN1SRV_X_STR-ZIMMR_X sy-vline
WA_RN1SRV_X_STR-IFG sy-vline
WA_RN1SRV_X_STR-IFG_X sy-vline
WA_RN1SRV_X_STR-ANERF sy-vline
WA_RN1SRV_X_STR-ANERF_X sy-vline
WA_RN1SRV_X_STR-LSLOK sy-vline
WA_RN1SRV_X_STR-LSLOK_X sy-vline
WA_RN1SRV_X_STR-PATEIN sy-vline
WA_RN1SRV_X_STR-PATEIN_X sy-vline
WA_RN1SRV_X_STR-PMEDFG sy-vline
WA_RN1SRV_X_STR-PMEDFG_X sy-vline
WA_RN1SRV_X_STR-PMEDVS sy-vline
WA_RN1SRV_X_STR-PMEDVS_X sy-vline
WA_RN1SRV_X_STR-PZMAN sy-vline
WA_RN1SRV_X_STR-PZMAN_X sy-vline
WA_RN1SRV_X_STR-ANKLS sy-vline
WA_RN1SRV_X_STR-OPNR sy-vline
WA_RN1SRV_X_STR-OPNR_X sy-vline
WA_RN1SRV_X_STR-PATNUE sy-vline
WA_RN1SRV_X_STR-PATNUE_X sy-vline
WA_RN1SRV_X_STR-TERMINF sy-vline
WA_RN1SRV_X_STR-TERMINF_X sy-vline
WA_RN1SRV_X_STR-LIDI sy-vline
WA_RN1SRV_X_STR-LIDI_X sy-vline
WA_RN1SRV_X_STR-VKGID sy-vline
WA_RN1SRV_X_STR-VKGID_X sy-vline
WA_RN1SRV_X_STR-TMNID sy-vline
WA_RN1SRV_X_STR-TMNID_X sy-vline
WA_RN1SRV_X_STR-GPART sy-vline
WA_RN1SRV_X_STR-GPART_X sy-vline
WA_RN1SRV_X_STR-STORN sy-vline
WA_RN1SRV_X_STR-STORN_X sy-vline
WA_RN1SRV_X_STR-ABRKZ sy-vline
WA_RN1SRV_X_STR-ABRKZ_X sy-vline
WA_RN1SRV_X_STR-HIC_FREE sy-vline
WA_RN1SRV_X_STR-HIC_FREE_X sy-vline
WA_RN1SRV_X_STR-HIC_FREE_MED sy-vline
WA_RN1SRV_X_STR-HIC_FREE_MED_X sy-vline
WA_RN1SRV_X_STR-CYSRVTPLID sy-vline
WA_RN1SRV_X_STR-CYSRVTPLID_X sy-vline
WA_RN1SRV_X_STR-CYDAT sy-vline
WA_RN1SRV_X_STR-CYDAT_X sy-vline
WA_RN1SRV_X_STR-CYTIM sy-vline
WA_RN1SRV_X_STR-CYTIM_X sy-vline
WA_RN1SRV_X_STR-CYDEFID sy-vline
WA_RN1SRV_X_STR-CYDEFID_X sy-vline
WA_RN1SRV_X_STR-GENCYID sy-vline
WA_RN1SRV_X_STR-GENCYID_X sy-vline
WA_RN1SRV_X_STR-MODE sy-vline
WA_RN1SRV_X_STR-VMA sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.