ABAP Select data from SAP table REG85 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 REG85 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 REG85. 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 REG85 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_REG85 TYPE STANDARD TABLE OF REG85,
      WA_REG85 TYPE REG85,
      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: <REG85> TYPE REG85.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM REG85
*  INTO TABLE @DATA(IT_REG852).
*--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_REG85 INDEX 1 INTO DATA(WA_REG852).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_REG85 ASSIGNING <REG85>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<REG85>-E_ZZEILE1 = 1.
<REG85>-ZSPALTE11 = 1.
<REG85>-ZSPALTE12 = 1.
<REG85>-ZSPALTE13 = 1.
<REG85>-ZSPALTE14 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_REG85-ZSPALTE15, sy-vline,
WA_REG85-ZSPALTE16, sy-vline,
WA_REG85-E_ZZEILE2, sy-vline,
WA_REG85-ZSPALTE21, sy-vline,
WA_REG85-ZSPALTE22, sy-vline,
WA_REG85-ZSPALTE23, sy-vline.
ENDLOOP. *Add any further fields from structure WA_REG85 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_REG85 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_REG85 INTO WA_REG85. *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.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_REG85_STR,
E_ZZEILE1 TYPE STRING,
ZSPALTE11 TYPE STRING,
ZSPALTE12 TYPE STRING,
ZSPALTE13 TYPE STRING,
ZSPALTE14 TYPE STRING,
ZSPALTE15 TYPE STRING,
ZSPALTE16 TYPE STRING,
E_ZZEILE2 TYPE STRING,
ZSPALTE21 TYPE STRING,
ZSPALTE22 TYPE STRING,
ZSPALTE23 TYPE STRING,
ZSPALTE24 TYPE STRING,
ZSPALTE25 TYPE STRING,
ZSPALTE26 TYPE STRING,
E_ZZEILE3 TYPE STRING,
ZSPALTE31 TYPE STRING,
ZSPALTE32 TYPE STRING,
ZSPALTE33 TYPE STRING,
ZSPALTE34 TYPE STRING,
ZSPALTE35 TYPE STRING,
ZSPALTE36 TYPE STRING,
STARTZ TYPE STRING,
PRANZ1 TYPE STRING,
RESERV1 TYPE STRING,
PRANZ2 TYPE STRING,
RESERV2 TYPE STRING,
LAGERINC1 TYPE STRING,
LAGERINC2 TYPE STRING,
TEXT30 TYPE STRING,
PRUEFANZ_PERC_P1 TYPE STRING,
PRUEFANZ_PERC_R1 TYPE STRING,
PRUEFANZ_PERC_P2 TYPE STRING,
PRUEFANZ_PERC_R2 TYPE STRING,
SEED TYPE STRING,
SEED1 TYPE STRING,
SEED2 TYPE STRING,
SEED3 TYPE STRING,
SEED4 TYPE STRING,
SEED5 TYPE STRING,END OF T_EKKO_STR. DATA: WA_REG85_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_REG85_STR-E_ZZEILE1 sy-vline
WA_REG85_STR-ZSPALTE11 sy-vline
WA_REG85_STR-ZSPALTE12 sy-vline
WA_REG85_STR-ZSPALTE13 sy-vline
WA_REG85_STR-ZSPALTE14 sy-vline
WA_REG85_STR-ZSPALTE15 sy-vline
WA_REG85_STR-ZSPALTE16 sy-vline
WA_REG85_STR-E_ZZEILE2 sy-vline
WA_REG85_STR-ZSPALTE21 sy-vline
WA_REG85_STR-ZSPALTE22 sy-vline
WA_REG85_STR-ZSPALTE23 sy-vline
WA_REG85_STR-ZSPALTE24 sy-vline
WA_REG85_STR-ZSPALTE25 sy-vline
WA_REG85_STR-ZSPALTE26 sy-vline
WA_REG85_STR-E_ZZEILE3 sy-vline
WA_REG85_STR-ZSPALTE31 sy-vline
WA_REG85_STR-ZSPALTE32 sy-vline
WA_REG85_STR-ZSPALTE33 sy-vline
WA_REG85_STR-ZSPALTE34 sy-vline
WA_REG85_STR-ZSPALTE35 sy-vline
WA_REG85_STR-ZSPALTE36 sy-vline
WA_REG85_STR-STARTZ sy-vline
WA_REG85_STR-PRANZ1 sy-vline
WA_REG85_STR-RESERV1 sy-vline
WA_REG85_STR-PRANZ2 sy-vline
WA_REG85_STR-RESERV2 sy-vline
WA_REG85_STR-LAGERINC1 sy-vline
WA_REG85_STR-LAGERINC2 sy-vline
WA_REG85_STR-TEXT30 sy-vline
WA_REG85_STR-PRUEFANZ_PERC_P1 sy-vline
WA_REG85_STR-PRUEFANZ_PERC_R1 sy-vline
WA_REG85_STR-PRUEFANZ_PERC_P2 sy-vline
WA_REG85_STR-PRUEFANZ_PERC_R2 sy-vline
WA_REG85_STR-SEED sy-vline
WA_REG85_STR-SEED1 sy-vline
WA_REG85_STR-SEED2 sy-vline
WA_REG85_STR-SEED3 sy-vline
WA_REG85_STR-SEED4 sy-vline
WA_REG85_STR-SEED5 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.