ABAP Select data from SAP table HRVCHIST 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 HRVCHIST 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 HRVCHIST. 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 HRVCHIST 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_HRVCHIST TYPE STANDARD TABLE OF HRVCHIST,
      WA_HRVCHIST TYPE HRVCHIST,
      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: <HRVCHIST> TYPE HRVCHIST.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM HRVCHIST
*  INTO TABLE @DATA(IT_HRVCHIST2).
*--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_HRVCHIST INDEX 1 INTO DATA(WA_HRVCHIST2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_HRVCHIST ASSIGNING <HRVCHIST>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<HRVCHIST>-PLVAR = 1.
<HRVCHIST>-SELVIEW = 1.
<HRVCHIST>-AFRAM = 1.
<HRVCHIST>-PTXTN = 1.
<HRVCHIST>-ET_SRK = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_HRVCHIST-ET_ID, sy-vline,
WA_HRVCHIST-ET_SHRT, sy-vline,
WA_HRVCHIST-ET_STXT, sy-vline,
WA_HRVCHIST-ET_ISTAT, sy-vline,
WA_HRVCHIST-ET_BEGDA, sy-vline,
WA_HRVCHIST-ET_ENDDA, sy-vline.
ENDLOOP. *Add any further fields from structure WA_HRVCHIST 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_HRVCHIST 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_HRVCHIST INTO WA_HRVCHIST. *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_HRVCHIST_STR,
PLVAR TYPE STRING,
SELVIEW TYPE STRING,
AFRAM TYPE STRING,
PTXTN TYPE STRING,
ET_SRK TYPE STRING,
ET_ID TYPE STRING,
ET_SHRT TYPE STRING,
ET_STXT TYPE STRING,
ET_ISTAT TYPE STRING,
ET_BEGDA TYPE STRING,
ET_ENDDA TYPE STRING,
EV_SRK TYPE STRING,
EV_ID TYPE STRING,
EV_SHRT TYPE STRING,
EV_STXT TYPE STRING,
EV_ISTAT TYPE STRING,
EV_BEGDA TYPE STRING,
EV_ENDDA TYPE STRING,
EV_HISTO TYPE STRING,
AD_TYP TYPE STRING,
AD_TYTX TYPE STRING,
AD_SRK TYPE STRING,
AD_ID TYPE STRING,
AD_SHRT TYPE STRING,
AD_STXT TYPE STRING,
O_TYP TYPE STRING,
O_TYTX TYPE STRING,
O_ID TYPE STRING,
O_SHRT TYPE STRING,
O_STXT TYPE STRING,
BFRAM TYPE STRING,
NORMA TYPE STRING,
OBLIG TYPE STRING,
WAITL TYPE STRING,
SELALL TYPE STRING,
SELEVT TYPE STRING,
SELEVE TYPE STRING,
SELOSRK TYPE STRING,
SELOBJ TYPE STRING,
SELSTXT TYPE STRING,
SFRAM TYPE STRING,
TFRAM TYPE STRING,
PROTEZ TYPE STRING,
SELBEG TYPE STRING,
SELEND TYPE STRING,
PROTR1 TYPE STRING,
PROTR2 TYPE STRING,
PROTR3 TYPE STRING,
PROTR4 TYPE STRING,
PROTR5 TYPE STRING,
PROTR6 TYPE STRING,
PROTR7 TYPE STRING,
GFRAM TYPE STRING,
OPST0 TYPE STRING,
OPST1 TYPE STRING,
OPST2 TYPE STRING,
OPST3 TYPE STRING,
USSRK TYPE STRING,
UNAME TYPE STRING,
USRTX TYPE STRING,
LFCOD TYPE STRING,
LFCODT TYPE STRING,END OF T_EKKO_STR. DATA: WA_HRVCHIST_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_HRVCHIST_STR-PLVAR sy-vline
WA_HRVCHIST_STR-SELVIEW sy-vline
WA_HRVCHIST_STR-AFRAM sy-vline
WA_HRVCHIST_STR-PTXTN sy-vline
WA_HRVCHIST_STR-ET_SRK sy-vline
WA_HRVCHIST_STR-ET_ID sy-vline
WA_HRVCHIST_STR-ET_SHRT sy-vline
WA_HRVCHIST_STR-ET_STXT sy-vline
WA_HRVCHIST_STR-ET_ISTAT sy-vline
WA_HRVCHIST_STR-ET_BEGDA sy-vline
WA_HRVCHIST_STR-ET_ENDDA sy-vline
WA_HRVCHIST_STR-EV_SRK sy-vline
WA_HRVCHIST_STR-EV_ID sy-vline
WA_HRVCHIST_STR-EV_SHRT sy-vline
WA_HRVCHIST_STR-EV_STXT sy-vline
WA_HRVCHIST_STR-EV_ISTAT sy-vline
WA_HRVCHIST_STR-EV_BEGDA sy-vline
WA_HRVCHIST_STR-EV_ENDDA sy-vline
WA_HRVCHIST_STR-EV_HISTO sy-vline
WA_HRVCHIST_STR-AD_TYP sy-vline
WA_HRVCHIST_STR-AD_TYTX sy-vline
WA_HRVCHIST_STR-AD_SRK sy-vline
WA_HRVCHIST_STR-AD_ID sy-vline
WA_HRVCHIST_STR-AD_SHRT sy-vline
WA_HRVCHIST_STR-AD_STXT sy-vline
WA_HRVCHIST_STR-O_TYP sy-vline
WA_HRVCHIST_STR-O_TYTX sy-vline
WA_HRVCHIST_STR-O_ID sy-vline
WA_HRVCHIST_STR-O_SHRT sy-vline
WA_HRVCHIST_STR-O_STXT sy-vline
WA_HRVCHIST_STR-BFRAM sy-vline
WA_HRVCHIST_STR-NORMA sy-vline
WA_HRVCHIST_STR-OBLIG sy-vline
WA_HRVCHIST_STR-WAITL sy-vline
WA_HRVCHIST_STR-SELALL sy-vline
WA_HRVCHIST_STR-SELEVT sy-vline
WA_HRVCHIST_STR-SELEVE sy-vline
WA_HRVCHIST_STR-SELOSRK sy-vline
WA_HRVCHIST_STR-SELOBJ sy-vline
WA_HRVCHIST_STR-SELSTXT sy-vline
WA_HRVCHIST_STR-SFRAM sy-vline
WA_HRVCHIST_STR-TFRAM sy-vline
WA_HRVCHIST_STR-PROTEZ sy-vline
WA_HRVCHIST_STR-SELBEG sy-vline
WA_HRVCHIST_STR-SELEND sy-vline
WA_HRVCHIST_STR-PROTR1 sy-vline
WA_HRVCHIST_STR-PROTR2 sy-vline
WA_HRVCHIST_STR-PROTR3 sy-vline
WA_HRVCHIST_STR-PROTR4 sy-vline
WA_HRVCHIST_STR-PROTR5 sy-vline
WA_HRVCHIST_STR-PROTR6 sy-vline
WA_HRVCHIST_STR-PROTR7 sy-vline
WA_HRVCHIST_STR-GFRAM sy-vline
WA_HRVCHIST_STR-OPST0 sy-vline
WA_HRVCHIST_STR-OPST1 sy-vline
WA_HRVCHIST_STR-OPST2 sy-vline
WA_HRVCHIST_STR-OPST3 sy-vline
WA_HRVCHIST_STR-USSRK sy-vline
WA_HRVCHIST_STR-UNAME sy-vline
WA_HRVCHIST_STR-USRTX sy-vline
WA_HRVCHIST_STR-LFCOD sy-vline
WA_HRVCHIST_STR-LFCODT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.