ABAP Select data from SAP table RNT40 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 RNT40 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 RNT40. 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 RNT40 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_RNT40 TYPE STANDARD TABLE OF RNT40,
      WA_RNT40 TYPE RNT40,
      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: <RNT40> TYPE RNT40.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RNT40
*  INTO TABLE @DATA(IT_RNT402).
*--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_RNT40 INDEX 1 INTO DATA(WA_RNT402).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RNT40 ASSIGNING <RNT40>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RNT40>-BEGDT = 1.
<RNT40>-ENDDT = 1.
<RNT40>-PERNR = 1.
<RNT40>-MARK = 1.
<RNT40>-POAKT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RNT40-POGES, sy-vline,
WA_RNT40-GPNAM, sy-vline,
WA_RNT40-QTEXT, sy-vline,
WA_RNT40-TARIF, sy-vline,
WA_RNT40-TALST, sy-vline,
WA_RNT40-KTXT1, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RNT40 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_RNT40 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_RNT40 INTO WA_RNT40. *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 PERNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RNT40-PERNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RNT40-PERNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field ALTER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RNT40-ALTER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RNT40-ALTER.
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_RNT40_STR,
BEGDT TYPE STRING,
ENDDT TYPE STRING,
PERNR TYPE STRING,
MARK TYPE STRING,
POAKT TYPE STRING,
POGES TYPE STRING,
GPNAM TYPE STRING,
QTEXT TYPE STRING,
TARIF TYPE STRING,
TALST TYPE STRING,
KTXT1 TYPE STRING,
KATKB TYPE STRING,
STICH TYPE STRING,
EINRI TYPE STRING,
PLSTX TYPE STRING,
PNAME TYPE STRING,
N1MATKAT TYPE STRING,
N1MATER TYPE STRING,
N1MATTXT TYPE STRING,
NAME1 TYPE STRING,
NAME2 TYPE STRING,
PNAME2 TYPE STRING,
MATVOR TYPE STRING,
ANZAHL TYPE STRING,
FOLGSTO TYPE STRING,
BEWNR TYPE STRING,
LVORH TYPE STRING,
BUTTON1 TYPE STRING,
BUTTON2 TYPE STRING,
BUTTON3 TYPE STRING,
BUTTON4 TYPE STRING,
BUTTON5 TYPE STRING,
BUTTON6 TYPE STRING,
BUTTON7 TYPE STRING,
BUTTON8 TYPE STRING,
BUTTON9 TYPE STRING,
UEBARZT TYPE STRING,
PFLOE TYPE STRING,
LGTXT TYPE STRING,
MELTX TYPE STRING,
MFSEL TYPE STRING,
STAT_ALL TYPE STRING,
TGRKZ TYPE STRING,
WBGDT TYPE STRING,
WBGZT TYPE STRING,
ERBOE TYPE STRING,
DATVON TYPE STRING,
DATBIS TYPE STRING,
ZEITVON TYPE STRING,
ZEITBIS TYPE STRING,
DOCBUTTON1 TYPE STRING,
DOCBUTTON2 TYPE STRING,
DOCBUTTON3 TYPE STRING,
DOCBUTTON4 TYPE STRING,
DOCBUTTON5 TYPE STRING,
DOCBUTTON6 TYPE STRING,
FALAR_STAT TYPE STRING,
FALAR_AMB TYPE STRING,
N1MEDLEI TYPE STRING,
N1PFLLEI TYPE STRING,
N1ADMLEI TYPE STRING,
ANF_STORN TYPE STRING,
ABRKZ TYPE STRING,
KNAME TYPE STRING,
N1MELTX TYPE STRING,
N1LGTXT TYPE STRING,
GPNAME TYPE STRING,
ANF_O_DOK TYPE STRING,
HIERARCHIE TYPE STRING,
LAST_UPUSR TYPE STRING,
OP_ANFOS TYPE STRING,
PFL_PROFIL TYPE STRING,
ERBR_RB TYPE STRING,
WUN_RB TYPE STRING,
ANFO_RB TYPE STRING,
ZYKL_BUT TYPE STRING,
SHOW_ZYK TYPE STRING,
PATNUE_BUT TYPE STRING,
NUECHTERN_CB TYPE STRING,
EINWILL_CB TYPE STRING,
LIDE TYPE STRING,
DYNMATVOR TYPE STRING,
ALTER TYPE STRING,
TERMIN_RB TYPE STRING,
EXT_SAVE_CB TYPE STRING,
EXT_PROC_CB TYPE STRING,
EXT_PLAN_CB TYPE STRING,
EXT_COMP_CB TYPE STRING,
AUSPRG TYPE STRING,
ZDAUER TYPE STRING,
KLINIKNR TYPE STRING,
NB_DAY TYPE STRING,
VALUE TYPE STRING,
N1PFTIME TYPE STRING,
REGNR TYPE STRING,
NAMKZ TYPE STRING,
BUTTON10 TYPE STRING,
BUTTON11 TYPE STRING,
BUTTON12 TYPE STRING,
BUTTON13 TYPE STRING,
BUTTON14 TYPE STRING,
APRIE TYPE STRING,END OF T_EKKO_STR. DATA: WA_RNT40_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_RNT40_STR-BEGDT sy-vline
WA_RNT40_STR-ENDDT sy-vline
WA_RNT40_STR-PERNR sy-vline
WA_RNT40_STR-MARK sy-vline
WA_RNT40_STR-POAKT sy-vline
WA_RNT40_STR-POGES sy-vline
WA_RNT40_STR-GPNAM sy-vline
WA_RNT40_STR-QTEXT sy-vline
WA_RNT40_STR-TARIF sy-vline
WA_RNT40_STR-TALST sy-vline
WA_RNT40_STR-KTXT1 sy-vline
WA_RNT40_STR-KATKB sy-vline
WA_RNT40_STR-STICH sy-vline
WA_RNT40_STR-EINRI sy-vline
WA_RNT40_STR-PLSTX sy-vline
WA_RNT40_STR-PNAME sy-vline
WA_RNT40_STR-N1MATKAT sy-vline
WA_RNT40_STR-N1MATER sy-vline
WA_RNT40_STR-N1MATTXT sy-vline
WA_RNT40_STR-NAME1 sy-vline
WA_RNT40_STR-NAME2 sy-vline
WA_RNT40_STR-PNAME2 sy-vline
WA_RNT40_STR-MATVOR sy-vline
WA_RNT40_STR-ANZAHL sy-vline
WA_RNT40_STR-FOLGSTO sy-vline
WA_RNT40_STR-BEWNR sy-vline
WA_RNT40_STR-LVORH sy-vline
WA_RNT40_STR-BUTTON1 sy-vline
WA_RNT40_STR-BUTTON2 sy-vline
WA_RNT40_STR-BUTTON3 sy-vline
WA_RNT40_STR-BUTTON4 sy-vline
WA_RNT40_STR-BUTTON5 sy-vline
WA_RNT40_STR-BUTTON6 sy-vline
WA_RNT40_STR-BUTTON7 sy-vline
WA_RNT40_STR-BUTTON8 sy-vline
WA_RNT40_STR-BUTTON9 sy-vline
WA_RNT40_STR-UEBARZT sy-vline
WA_RNT40_STR-PFLOE sy-vline
WA_RNT40_STR-LGTXT sy-vline
WA_RNT40_STR-MELTX sy-vline
WA_RNT40_STR-MFSEL sy-vline
WA_RNT40_STR-STAT_ALL sy-vline
WA_RNT40_STR-TGRKZ sy-vline
WA_RNT40_STR-WBGDT sy-vline
WA_RNT40_STR-WBGZT sy-vline
WA_RNT40_STR-ERBOE sy-vline
WA_RNT40_STR-DATVON sy-vline
WA_RNT40_STR-DATBIS sy-vline
WA_RNT40_STR-ZEITVON sy-vline
WA_RNT40_STR-ZEITBIS sy-vline
WA_RNT40_STR-DOCBUTTON1 sy-vline
WA_RNT40_STR-DOCBUTTON2 sy-vline
WA_RNT40_STR-DOCBUTTON3 sy-vline
WA_RNT40_STR-DOCBUTTON4 sy-vline
WA_RNT40_STR-DOCBUTTON5 sy-vline
WA_RNT40_STR-DOCBUTTON6 sy-vline
WA_RNT40_STR-FALAR_STAT sy-vline
WA_RNT40_STR-FALAR_AMB sy-vline
WA_RNT40_STR-N1MEDLEI sy-vline
WA_RNT40_STR-N1PFLLEI sy-vline
WA_RNT40_STR-N1ADMLEI sy-vline
WA_RNT40_STR-ANF_STORN sy-vline
WA_RNT40_STR-ABRKZ sy-vline
WA_RNT40_STR-KNAME sy-vline
WA_RNT40_STR-N1MELTX sy-vline
WA_RNT40_STR-N1LGTXT sy-vline
WA_RNT40_STR-GPNAME sy-vline
WA_RNT40_STR-ANF_O_DOK sy-vline
WA_RNT40_STR-HIERARCHIE sy-vline
WA_RNT40_STR-LAST_UPUSR sy-vline
WA_RNT40_STR-OP_ANFOS sy-vline
WA_RNT40_STR-PFL_PROFIL sy-vline
WA_RNT40_STR-ERBR_RB sy-vline
WA_RNT40_STR-WUN_RB sy-vline
WA_RNT40_STR-ANFO_RB sy-vline
WA_RNT40_STR-ZYKL_BUT sy-vline
WA_RNT40_STR-SHOW_ZYK sy-vline
WA_RNT40_STR-PATNUE_BUT sy-vline
WA_RNT40_STR-NUECHTERN_CB sy-vline
WA_RNT40_STR-EINWILL_CB sy-vline
WA_RNT40_STR-LIDE sy-vline
WA_RNT40_STR-DYNMATVOR sy-vline
WA_RNT40_STR-ALTER sy-vline
WA_RNT40_STR-TERMIN_RB sy-vline
WA_RNT40_STR-EXT_SAVE_CB sy-vline
WA_RNT40_STR-EXT_PROC_CB sy-vline
WA_RNT40_STR-EXT_PLAN_CB sy-vline
WA_RNT40_STR-EXT_COMP_CB sy-vline
WA_RNT40_STR-AUSPRG sy-vline
WA_RNT40_STR-ZDAUER sy-vline
WA_RNT40_STR-KLINIKNR sy-vline
WA_RNT40_STR-NB_DAY sy-vline
WA_RNT40_STR-VALUE sy-vline
WA_RNT40_STR-N1PFTIME sy-vline
WA_RNT40_STR-REGNR sy-vline
WA_RNT40_STR-NAMKZ sy-vline
WA_RNT40_STR-BUTTON10 sy-vline
WA_RNT40_STR-BUTTON11 sy-vline
WA_RNT40_STR-BUTTON12 sy-vline
WA_RNT40_STR-BUTTON13 sy-vline
WA_RNT40_STR-BUTTON14 sy-vline
WA_RNT40_STR-APRIE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.