ABAP Select data from SAP table VTI_HEADER 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 VTI_HEADER 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 VTI_HEADER. 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 VTI_HEADER 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_VTI_HEADER TYPE STANDARD TABLE OF VTI_HEADER,
      WA_VTI_HEADER TYPE VTI_HEADER,
      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: <VTI_HEADER> TYPE VTI_HEADER.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM VTI_HEADER
*  INTO TABLE @DATA(IT_VTI_HEADER2).
*--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_VTI_HEADER INDEX 1 INTO DATA(WA_VTI_HEADER2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_VTI_HEADER ASSIGNING <VTI_HEADER>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<VTI_HEADER>-MANDT = 1.
<VTI_HEADER>-OFGATT = 1.
<VTI_HEADER>-DMATUR = 1.
<VTI_HEADER>-XDMATUR = 1.
<VTI_HEADER>-RANTYP = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_VTI_HEADER-SANLF, sy-vline,
WA_VTI_HEADER-SGSART, sy-vline,
WA_VTI_HEADER-XSGSART, sy-vline,
WA_VTI_HEADER-KONTRH, sy-vline,
WA_VTI_HEADER-SROLEXT, sy-vline,
WA_VTI_HEADER-MARGART, sy-vline.
ENDLOOP. *Add any further fields from structure WA_VTI_HEADER 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_VTI_HEADER 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_VTI_HEADER INTO WA_VTI_HEADER. *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 OFGATT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VTI_HEADER-OFGATT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTI_HEADER-OFGATT.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit GJAHR, internal->external for field VERYEAR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_VTI_HEADER-VERYEAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTI_HEADER-VERYEAR.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field ORFHA CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VTI_HEADER-ORFHA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VTI_HEADER-ORFHA.
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_VTI_HEADER_STR,
MANDT TYPE STRING,
OFGATT TYPE STRING,
DMATUR TYPE STRING,
XDMATUR TYPE STRING,
RANTYP TYPE STRING,
SANLF TYPE STRING,
SGSART TYPE STRING,
XSGSART TYPE STRING,
KONTRH TYPE STRING,
SROLEXT TYPE STRING,
MARGART TYPE STRING,
VERFDA TYPE STRING,
VERMON TYPE STRING,
VERYEAR TYPE STRING,
XOFBEZ1 TYPE STRING,
USANLF TYPE STRING,
URANTYP TYPE STRING,
URFHA TYPE STRING,
USFHAART TYPE STRING,
USFGZUTYP TYPE STRING,
USGSART TYPE STRING,
UNUMBER TYPE STRING,
REAUNUMBER TYPE STRING,
SOPTAUS TYPE STRING,
XOPTAUS TYPE STRING,
XNAME TYPE STRING,
NOTTYPE TYPE STRING,
OFWAERS TYPE STRING,
OSTRIKE TYPE STRING,
XSTRIKE TYPE STRING,
OSINDEX TYPE STRING,
OSPROZE TYPE STRING,
BNOTPT TYPE STRING,
BPROZE TYPE STRING,
XCOMSTR TYPE STRING,
UNOTTYP TYPE STRING,
ONOTPT TYPE STRING,
OPROZE TYPE STRING,
ONOTWAE TYPE STRING,
SABRMET TYPE STRING,
DOFSTAR TYPE STRING,
XDOFSTAR TYPE STRING,
ORFHA TYPE STRING,
XRFHA TYPE STRING,
SETTLFL TYPE STRING,
XSETTLFL TYPE STRING,
OPTTYP TYPE STRING,
OSKURS TYPE STRING,
WLWAERS TYPE STRING,
OSSIGN TYPE STRING,
XPUTCAL TYPE STRING,
WLWAERB TYPE STRING,
WFWAERB TYPE STRING,
KWKURB1 TYPE STRING,
KWKURB2 TYPE STRING,
SPUTCAL TYPE STRING,
FWD_VOLA TYPE STRING,END OF T_EKKO_STR. DATA: WA_VTI_HEADER_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_VTI_HEADER_STR-MANDT sy-vline
WA_VTI_HEADER_STR-OFGATT sy-vline
WA_VTI_HEADER_STR-DMATUR sy-vline
WA_VTI_HEADER_STR-XDMATUR sy-vline
WA_VTI_HEADER_STR-RANTYP sy-vline
WA_VTI_HEADER_STR-SANLF sy-vline
WA_VTI_HEADER_STR-SGSART sy-vline
WA_VTI_HEADER_STR-XSGSART sy-vline
WA_VTI_HEADER_STR-KONTRH sy-vline
WA_VTI_HEADER_STR-SROLEXT sy-vline
WA_VTI_HEADER_STR-MARGART sy-vline
WA_VTI_HEADER_STR-VERFDA sy-vline
WA_VTI_HEADER_STR-VERMON sy-vline
WA_VTI_HEADER_STR-VERYEAR sy-vline
WA_VTI_HEADER_STR-XOFBEZ1 sy-vline
WA_VTI_HEADER_STR-USANLF sy-vline
WA_VTI_HEADER_STR-URANTYP sy-vline
WA_VTI_HEADER_STR-URFHA sy-vline
WA_VTI_HEADER_STR-USFHAART sy-vline
WA_VTI_HEADER_STR-USFGZUTYP sy-vline
WA_VTI_HEADER_STR-USGSART sy-vline
WA_VTI_HEADER_STR-UNUMBER sy-vline
WA_VTI_HEADER_STR-REAUNUMBER sy-vline
WA_VTI_HEADER_STR-SOPTAUS sy-vline
WA_VTI_HEADER_STR-XOPTAUS sy-vline
WA_VTI_HEADER_STR-XNAME sy-vline
WA_VTI_HEADER_STR-NOTTYPE sy-vline
WA_VTI_HEADER_STR-OFWAERS sy-vline
WA_VTI_HEADER_STR-OSTRIKE sy-vline
WA_VTI_HEADER_STR-XSTRIKE sy-vline
WA_VTI_HEADER_STR-OSINDEX sy-vline
WA_VTI_HEADER_STR-OSPROZE sy-vline
WA_VTI_HEADER_STR-BNOTPT sy-vline
WA_VTI_HEADER_STR-BPROZE sy-vline
WA_VTI_HEADER_STR-XCOMSTR sy-vline
WA_VTI_HEADER_STR-UNOTTYP sy-vline
WA_VTI_HEADER_STR-ONOTPT sy-vline
WA_VTI_HEADER_STR-OPROZE sy-vline
WA_VTI_HEADER_STR-ONOTWAE sy-vline
WA_VTI_HEADER_STR-SABRMET sy-vline
WA_VTI_HEADER_STR-DOFSTAR sy-vline
WA_VTI_HEADER_STR-XDOFSTAR sy-vline
WA_VTI_HEADER_STR-ORFHA sy-vline
WA_VTI_HEADER_STR-XRFHA sy-vline
WA_VTI_HEADER_STR-SETTLFL sy-vline
WA_VTI_HEADER_STR-XSETTLFL sy-vline
WA_VTI_HEADER_STR-OPTTYP sy-vline
WA_VTI_HEADER_STR-OSKURS sy-vline
WA_VTI_HEADER_STR-WLWAERS sy-vline
WA_VTI_HEADER_STR-OSSIGN sy-vline
WA_VTI_HEADER_STR-XPUTCAL sy-vline
WA_VTI_HEADER_STR-WLWAERB sy-vline
WA_VTI_HEADER_STR-WFWAERB sy-vline
WA_VTI_HEADER_STR-KWKURB1 sy-vline
WA_VTI_HEADER_STR-KWKURB2 sy-vline
WA_VTI_HEADER_STR-SPUTCAL sy-vline
WA_VTI_HEADER_STR-FWD_VOLA sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.