ABAP Select data from SAP table HRVPV 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 HRVPV 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 HRVPV. 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 HRVPV 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_HRVPV TYPE STANDARD TABLE OF HRVPV,
      WA_HRVPV TYPE HRVPV,
      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: <HRVPV> TYPE HRVPV.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM HRVPV
*  INTO TABLE @DATA(IT_HRVPV2).
*--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_HRVPV INDEX 1 INTO DATA(WA_HRVPV2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_HRVPV ASSIGNING <HRVPV>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<HRVPV>-EVGRP = 1.
<HRVPV>-EVGTX = 1.
<HRVPV>-ETSRK = 1.
<HRVPV>-ETYID = 1.
<HRVPV>-ETSHT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_HRVPV-EVTTX, sy-vline,
WA_HRVPV-EVBGD, sy-vline,
WA_HRVPV-EVEND, sy-vline,
WA_HRVPV-TFRAM, sy-vline,
WA_HRVPV-PTYP1, sy-vline,
WA_HRVPV-PTXT1, sy-vline.
ENDLOOP. *Add any further fields from structure WA_HRVPV 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_HRVPV 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_HRVPV INTO WA_HRVPV. *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 ISOLA, internal->external for field EVLNG CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_HRVPV-EVLNG IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HRVPV-EVLNG.
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_HRVPV_STR,
EVGRP TYPE STRING,
EVGTX TYPE STRING,
ETSRK TYPE STRING,
ETYID TYPE STRING,
ETSHT TYPE STRING,
EVTTX TYPE STRING,
EVBGD TYPE STRING,
EVEND TYPE STRING,
TFRAM TYPE STRING,
PTYP1 TYPE STRING,
PTXT1 TYPE STRING,
PTYP2 TYPE STRING,
PTXT2 TYPE STRING,
PTYP3 TYPE STRING,
PTXT3 TYPE STRING,
PTYP4 TYPE STRING,
PTXT4 TYPE STRING,
PTYP5 TYPE STRING,
PTXT5 TYPE STRING,
PTYP6 TYPE STRING,
PTXT6 TYPE STRING,
PTYPN TYPE STRING,
PTXTN TYPE STRING,
TLSRK TYPE STRING,
TLTXT TYPE STRING,
ANZTX TYPE STRING,
MANZL TYPE STRING,
OZTYP TYPE STRING,
OTYTX TYPE STRING,
OZTEX TYPE STRING,
OZTXT TYPE STRING,
BFRAM TYPE STRING,
BPRTX TYPE STRING,
NORMA TYPE STRING,
OBLIG TYPE STRING,
WAITL TYPE STRING,
BPRIO TYPE STRING,
OBLOW TYPE STRING,
OBHIG TYPE STRING,
NOLOW TYPE STRING,
NOHIG TYPE STRING,
WALOW TYPE STRING,
WAHIG TYPE STRING,
BOFRAM TYPE STRING,
EFRAM TYPE STRING,
RBUPD TYPE STRING,
EBEGD TYPE STRING,
EENDA TYPE STRING,
EVSRK TYPE STRING,
EVEID TYPE STRING,
EVTEX TYPE STRING,
ETEXT TYPE STRING,
FCONT TYPE STRING,
BCONT TYPE STRING,
WCONT TYPE STRING,
OCONT TYPE STRING,
EVEXT TYPE STRING,
EVFIX TYPE STRING,
EVLOC TYPE STRING,
BLTX1 TYPE STRING,
BLTX2 TYPE STRING,
BLTX3 TYPE STRING,
BLTX4 TYPE STRING,
EVDAT TYPE STRING,
EVDTX TYPE STRING,
BEGUZ TYPE STRING,
ENDUZ TYPE STRING,
BLOC1 TYPE STRING,
BLOC2 TYPE STRING,
BLOC3 TYPE STRING,
BLOC4 TYPE STRING,
CBLC1 TYPE STRING,
CBLC2 TYPE STRING,
CBLC3 TYPE STRING,
CBLC4 TYPE STRING,
BANZL TYPE STRING,
BUDAT TYPE STRING,
EVLNG TYPE STRING,
EVLTX TYPE STRING,
VFRAM TYPE STRING,
DFRAM TYPE STRING,
PRTPE TYPE STRING,
PASRK TYPE STRING,
PATEX TYPE STRING,
POZTX TYPE STRING,
NANZL TYPE STRING,
RANZL TYPE STRING,
PBUPD TYPE STRING,
PBDEL TYPE STRING,
PBPRE TYPE STRING,
PBMOV TYPE STRING,
HISTO TYPE STRING,
LOCKM TYPE STRING,
DELET TYPE STRING,
RBFKT TYPE STRING,
RBINL TYPE STRING,
RBFRE TYPE STRING,
PRFRAM TYPE STRING,
DFRST TYPE STRING,
DNEXT TYPE STRING,
DPREV TYPE STRING,
DLAST TYPE STRING,
BNEXT TYPE STRING,
BPREV TYPE STRING,
LEBEG TYPE STRING,
LEEND TYPE STRING,
LETXT TYPE STRING,
LPRIO TYPE STRING,
LEXTR TYPE STRING,
LEFIX TYPE STRING,
PRCFL TYPE STRING,
OZSRK TYPE STRING,
LOSRK TYPE STRING,
LTEXT TYPE STRING,
CAATR TYPE STRING,
CAATRT TYPE STRING,
CRPRZ TYPE STRING,
PARLI TYPE STRING,
PRELI TYPE STRING,
POZSH TYPE STRING,
ASTATE TYPE STRING,
SELCRT TYPE STRING,
DEFVAL TYPE STRING,
FREVDATE TYPE STRING,
COSTUNIT TYPE STRING,
DMEOK TYPE STRING,
DNEU TYPE STRING,END OF T_EKKO_STR. DATA: WA_HRVPV_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_HRVPV_STR-EVGRP sy-vline
WA_HRVPV_STR-EVGTX sy-vline
WA_HRVPV_STR-ETSRK sy-vline
WA_HRVPV_STR-ETYID sy-vline
WA_HRVPV_STR-ETSHT sy-vline
WA_HRVPV_STR-EVTTX sy-vline
WA_HRVPV_STR-EVBGD sy-vline
WA_HRVPV_STR-EVEND sy-vline
WA_HRVPV_STR-TFRAM sy-vline
WA_HRVPV_STR-PTYP1 sy-vline
WA_HRVPV_STR-PTXT1 sy-vline
WA_HRVPV_STR-PTYP2 sy-vline
WA_HRVPV_STR-PTXT2 sy-vline
WA_HRVPV_STR-PTYP3 sy-vline
WA_HRVPV_STR-PTXT3 sy-vline
WA_HRVPV_STR-PTYP4 sy-vline
WA_HRVPV_STR-PTXT4 sy-vline
WA_HRVPV_STR-PTYP5 sy-vline
WA_HRVPV_STR-PTXT5 sy-vline
WA_HRVPV_STR-PTYP6 sy-vline
WA_HRVPV_STR-PTXT6 sy-vline
WA_HRVPV_STR-PTYPN sy-vline
WA_HRVPV_STR-PTXTN sy-vline
WA_HRVPV_STR-TLSRK sy-vline
WA_HRVPV_STR-TLTXT sy-vline
WA_HRVPV_STR-ANZTX sy-vline
WA_HRVPV_STR-MANZL sy-vline
WA_HRVPV_STR-OZTYP sy-vline
WA_HRVPV_STR-OTYTX sy-vline
WA_HRVPV_STR-OZTEX sy-vline
WA_HRVPV_STR-OZTXT sy-vline
WA_HRVPV_STR-BFRAM sy-vline
WA_HRVPV_STR-BPRTX sy-vline
WA_HRVPV_STR-NORMA sy-vline
WA_HRVPV_STR-OBLIG sy-vline
WA_HRVPV_STR-WAITL sy-vline
WA_HRVPV_STR-BPRIO sy-vline
WA_HRVPV_STR-OBLOW sy-vline
WA_HRVPV_STR-OBHIG sy-vline
WA_HRVPV_STR-NOLOW sy-vline
WA_HRVPV_STR-NOHIG sy-vline
WA_HRVPV_STR-WALOW sy-vline
WA_HRVPV_STR-WAHIG sy-vline
WA_HRVPV_STR-BOFRAM sy-vline
WA_HRVPV_STR-EFRAM sy-vline
WA_HRVPV_STR-RBUPD sy-vline
WA_HRVPV_STR-EBEGD sy-vline
WA_HRVPV_STR-EENDA sy-vline
WA_HRVPV_STR-EVSRK sy-vline
WA_HRVPV_STR-EVEID sy-vline
WA_HRVPV_STR-EVTEX sy-vline
WA_HRVPV_STR-ETEXT sy-vline
WA_HRVPV_STR-FCONT sy-vline
WA_HRVPV_STR-BCONT sy-vline
WA_HRVPV_STR-WCONT sy-vline
WA_HRVPV_STR-OCONT sy-vline
WA_HRVPV_STR-EVEXT sy-vline
WA_HRVPV_STR-EVFIX sy-vline
WA_HRVPV_STR-EVLOC sy-vline
WA_HRVPV_STR-BLTX1 sy-vline
WA_HRVPV_STR-BLTX2 sy-vline
WA_HRVPV_STR-BLTX3 sy-vline
WA_HRVPV_STR-BLTX4 sy-vline
WA_HRVPV_STR-EVDAT sy-vline
WA_HRVPV_STR-EVDTX sy-vline
WA_HRVPV_STR-BEGUZ sy-vline
WA_HRVPV_STR-ENDUZ sy-vline
WA_HRVPV_STR-BLOC1 sy-vline
WA_HRVPV_STR-BLOC2 sy-vline
WA_HRVPV_STR-BLOC3 sy-vline
WA_HRVPV_STR-BLOC4 sy-vline
WA_HRVPV_STR-CBLC1 sy-vline
WA_HRVPV_STR-CBLC2 sy-vline
WA_HRVPV_STR-CBLC3 sy-vline
WA_HRVPV_STR-CBLC4 sy-vline
WA_HRVPV_STR-BANZL sy-vline
WA_HRVPV_STR-BUDAT sy-vline
WA_HRVPV_STR-EVLNG sy-vline
WA_HRVPV_STR-EVLTX sy-vline
WA_HRVPV_STR-VFRAM sy-vline
WA_HRVPV_STR-DFRAM sy-vline
WA_HRVPV_STR-PRTPE sy-vline
WA_HRVPV_STR-PASRK sy-vline
WA_HRVPV_STR-PATEX sy-vline
WA_HRVPV_STR-POZTX sy-vline
WA_HRVPV_STR-NANZL sy-vline
WA_HRVPV_STR-RANZL sy-vline
WA_HRVPV_STR-PBUPD sy-vline
WA_HRVPV_STR-PBDEL sy-vline
WA_HRVPV_STR-PBPRE sy-vline
WA_HRVPV_STR-PBMOV sy-vline
WA_HRVPV_STR-HISTO sy-vline
WA_HRVPV_STR-LOCKM sy-vline
WA_HRVPV_STR-DELET sy-vline
WA_HRVPV_STR-RBFKT sy-vline
WA_HRVPV_STR-RBINL sy-vline
WA_HRVPV_STR-RBFRE sy-vline
WA_HRVPV_STR-PRFRAM sy-vline
WA_HRVPV_STR-DFRST sy-vline
WA_HRVPV_STR-DNEXT sy-vline
WA_HRVPV_STR-DPREV sy-vline
WA_HRVPV_STR-DLAST sy-vline
WA_HRVPV_STR-BNEXT sy-vline
WA_HRVPV_STR-BPREV sy-vline
WA_HRVPV_STR-LEBEG sy-vline
WA_HRVPV_STR-LEEND sy-vline
WA_HRVPV_STR-LETXT sy-vline
WA_HRVPV_STR-LPRIO sy-vline
WA_HRVPV_STR-LEXTR sy-vline
WA_HRVPV_STR-LEFIX sy-vline
WA_HRVPV_STR-PRCFL sy-vline
WA_HRVPV_STR-OZSRK sy-vline
WA_HRVPV_STR-LOSRK sy-vline
WA_HRVPV_STR-LTEXT sy-vline
WA_HRVPV_STR-CAATR sy-vline
WA_HRVPV_STR-CAATRT sy-vline
WA_HRVPV_STR-CRPRZ sy-vline
WA_HRVPV_STR-PARLI sy-vline
WA_HRVPV_STR-PRELI sy-vline
WA_HRVPV_STR-POZSH sy-vline
WA_HRVPV_STR-ASTATE sy-vline
WA_HRVPV_STR-SELCRT sy-vline
WA_HRVPV_STR-DEFVAL sy-vline
WA_HRVPV_STR-FREVDATE sy-vline
WA_HRVPV_STR-COSTUNIT sy-vline
WA_HRVPV_STR-DMEOK sy-vline
WA_HRVPV_STR-DNEU sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.