ABAP Select data from SAP table V_TVAP 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 V_TVAP 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 V_TVAP. 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 V_TVAP 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_V_TVAP TYPE STANDARD TABLE OF V_TVAP,
      WA_V_TVAP TYPE V_TVAP,
      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: <V_TVAP> TYPE V_TVAP.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM V_TVAP
*  INTO TABLE @DATA(IT_V_TVAP2).
*--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_V_TVAP INDEX 1 INTO DATA(WA_V_TVAP2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_V_TVAP ASSIGNING <V_TVAP>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<V_TVAP>-MANDT = 1.
<V_TVAP>-PSTYV = 1.
<V_TVAP>-FKREL = 1.
<V_TVAP>-PRSFD = 1.
<V_TVAP>-POSGR = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_V_TVAP-PARGR, sy-vline,
WA_V_TVAP-PSGRP, sy-vline,
WA_V_TVAP-STULI, sy-vline,
WA_V_TVAP-ASWPA, sy-vline,
WA_V_TVAP-STRUM, sy-vline,
WA_V_TVAP-PROPAGATE_PAOBJNR_BOM, sy-vline.
ENDLOOP. *Add any further fields from structure WA_V_TVAP 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_V_TVAP 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_V_TVAP INTO WA_V_TVAP. *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 STGAP CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_V_TVAP-STGAP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_V_TVAP-STGAP.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field WKMAT CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_V_TVAP-WKMAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_V_TVAP-WKMAT.
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_V_TVAP_STR,
MANDT TYPE STRING,
PSTYV TYPE STRING,
FKREL TYPE STRING,
PRSFD TYPE STRING,
POSGR TYPE STRING,
PARGR TYPE STRING,
PSGRP TYPE STRING,
STULI TYPE STRING,
ASWPA TYPE STRING,
STRUM TYPE STRING,
PROPAGATE_PAOBJNR_BOM TYPE STRING,
EVRWR TYPE STRING,
KOWRR TYPE STRING,
FELDP TYPE STRING,
FAKSP TYPE STRING,
SHELL TYPE STRING,
ERLRE TYPE STRING,
TXN08 TYPE STRING,
DIAFM TYPE STRING,
KDERL TYPE STRING,
TXTGR TYPE STRING,
POSAR TYPE STRING,
LFREL TYPE STRING,
ERNAM TYPE STRING,
ETERL TYPE STRING,
GWREL TYPE STRING,
KOMPP TYPE STRING,
FEHGR TYPE STRING,
SHKZG TYPE STRING,
EQMAT TYPE STRING,
STGAP TYPE STRING,
KALSM TYPE STRING,
SOBKZ TYPE STRING,
CMPNT TYPE STRING,
STRAT TYPE STRING,
STSMA TYPE STRING,
VTEXT TYPE STRING,
ALEKZ TYPE STRING,
SVGNG TYPE STRING,
MENG1 TYPE STRING,
FPART TYPE STRING,
CHAUT TYPE STRING,
EXCOP TYPE STRING,
TYPFD TYPE STRING,
LTYPA TYPE STRING,
LTYPV TYPE STRING,
WKMAT TYPE STRING,
RKTIO TYPE STRING,
RDERL TYPE STRING,
EFFEC TYPE STRING,
FFPRF TYPE STRING,
SCHEME_RMA TYPE STRING,
SCHEME_VF TYPE STRING,
FAKTF TYPE STRING,
RRREL TYPE STRING,
ACDATV TYPE STRING,
OIBOM TYPE STRING,
OIBCST TYPE STRING,
OIUSEREXIT TYPE STRING,
MILL_BATCH_REF TYPE STRING,
MILL_BATCH_SEL_D TYPE STRING,
RBACONTROL TYPE STRING,
AUTO_DEALLOC TYPE STRING,END OF T_EKKO_STR. DATA: WA_V_TVAP_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_V_TVAP_STR-MANDT sy-vline
WA_V_TVAP_STR-PSTYV sy-vline
WA_V_TVAP_STR-FKREL sy-vline
WA_V_TVAP_STR-PRSFD sy-vline
WA_V_TVAP_STR-POSGR sy-vline
WA_V_TVAP_STR-PARGR sy-vline
WA_V_TVAP_STR-PSGRP sy-vline
WA_V_TVAP_STR-STULI sy-vline
WA_V_TVAP_STR-ASWPA sy-vline
WA_V_TVAP_STR-STRUM sy-vline
WA_V_TVAP_STR-PROPAGATE_PAOBJNR_BOM sy-vline
WA_V_TVAP_STR-EVRWR sy-vline
WA_V_TVAP_STR-KOWRR sy-vline
WA_V_TVAP_STR-FELDP sy-vline
WA_V_TVAP_STR-FAKSP sy-vline
WA_V_TVAP_STR-SHELL sy-vline
WA_V_TVAP_STR-ERLRE sy-vline
WA_V_TVAP_STR-TXN08 sy-vline
WA_V_TVAP_STR-DIAFM sy-vline
WA_V_TVAP_STR-KDERL sy-vline
WA_V_TVAP_STR-TXTGR sy-vline
WA_V_TVAP_STR-POSAR sy-vline
WA_V_TVAP_STR-LFREL sy-vline
WA_V_TVAP_STR-ERNAM sy-vline
WA_V_TVAP_STR-ETERL sy-vline
WA_V_TVAP_STR-GWREL sy-vline
WA_V_TVAP_STR-KOMPP sy-vline
WA_V_TVAP_STR-FEHGR sy-vline
WA_V_TVAP_STR-SHKZG sy-vline
WA_V_TVAP_STR-EQMAT sy-vline
WA_V_TVAP_STR-STGAP sy-vline
WA_V_TVAP_STR-KALSM sy-vline
WA_V_TVAP_STR-SOBKZ sy-vline
WA_V_TVAP_STR-CMPNT sy-vline
WA_V_TVAP_STR-STRAT sy-vline
WA_V_TVAP_STR-STSMA sy-vline
WA_V_TVAP_STR-VTEXT sy-vline
WA_V_TVAP_STR-ALEKZ sy-vline
WA_V_TVAP_STR-SVGNG sy-vline
WA_V_TVAP_STR-MENG1 sy-vline
WA_V_TVAP_STR-FPART sy-vline
WA_V_TVAP_STR-CHAUT sy-vline
WA_V_TVAP_STR-EXCOP sy-vline
WA_V_TVAP_STR-TYPFD sy-vline
WA_V_TVAP_STR-LTYPA sy-vline
WA_V_TVAP_STR-LTYPV sy-vline
WA_V_TVAP_STR-WKMAT sy-vline
WA_V_TVAP_STR-RKTIO sy-vline
WA_V_TVAP_STR-RDERL sy-vline
WA_V_TVAP_STR-EFFEC sy-vline
WA_V_TVAP_STR-FFPRF sy-vline
WA_V_TVAP_STR-SCHEME_RMA sy-vline
WA_V_TVAP_STR-SCHEME_VF sy-vline
WA_V_TVAP_STR-FAKTF sy-vline
WA_V_TVAP_STR-RRREL sy-vline
WA_V_TVAP_STR-ACDATV sy-vline
WA_V_TVAP_STR-OIBOM sy-vline
WA_V_TVAP_STR-OIBCST sy-vline
WA_V_TVAP_STR-OIUSEREXIT sy-vline
WA_V_TVAP_STR-MILL_BATCH_REF sy-vline
WA_V_TVAP_STR-MILL_BATCH_SEL_D sy-vline
WA_V_TVAP_STR-RBACONTROL sy-vline
WA_V_TVAP_STR-AUTO_DEALLOC sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.