ABAP Select data from SAP table TST04INF 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 TST04INF 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 TST04INF. 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 TST04INF 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_TST04INF TYPE STANDARD TABLE OF TST04INF, WA_TST04INF TYPE TST04INF, 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: <TST04INF> TYPE TST04INF. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_TST04INF. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM TST04INF INTO TABLE IT_TST04INF. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM TST04INF * INTO TABLE @DATA(IT_TST04INF2). *--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_TST04INF INDEX 1 INTO DATA(WA_TST04INF2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_TST04INF ASSIGNING <TST04INF>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<TST04INF>-BUFSIZETOT = 1.
<TST04INF>-BUFREADS = 1.
<TST04INF>-DSKREADS = 1.
<TST04INF>-BUFWRITES = 1.
<TST04INF>-DSKWRITES = 1.
ENDLOOP. LOOP AT IT_TST04INF INTO WA_TST04INF. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_TST04INF-PLGPAGEWRI, sy-vline,
WA_TST04INF-PLGWRITES, sy-vline,
WA_TST04INF-LLGPAGEWRI, sy-vline,
WA_TST04INF-LLGWRITES, sy-vline,
WA_TST04INF-BUFPOOLFLU, sy-vline,
WA_TST04INF-FGWRITES, sy-vline.
ENDLOOP. *Add any further fields from structure WA_TST04INF 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_TST04INF 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_TST04INF INTO WA_TST04INF. *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_TST04INF_STR,
BUFSIZETOT TYPE STRING,
BUFREADS TYPE STRING,
DSKREADS TYPE STRING,
BUFWRITES TYPE STRING,
DSKWRITES TYPE STRING,
PLGPAGEWRI TYPE STRING,
PLGWRITES TYPE STRING,
LLGPAGEWRI TYPE STRING,
LLGWRITES TYPE STRING,
BUFPOOLFLU TYPE STRING,
FGWRITES TYPE STRING,
LRUWRITES TYPE STRING,
CHUNKWRITE TYPE STRING,
ISCOMMITS TYPE STRING,
ISROLLBACK TYPE STRING,
ISAMTOT TYPE STRING,
SEQSCANS TYPE STRING,
NUMCKPTS TYPE STRING,
READQUAL TYPE STRING,
WRITEQUAL TYPE STRING,
PHYSLOG_IO TYPE STRING,
LOGLOG_IO TYPE STRING,
ACTIVESESS TYPE STRING,
TRANS_MIN TYPE STRING,
ISCALLS_TR TYPE STRING,
CKPTCORR TYPE STRING,
PHYSCORR TYPE STRING,
CORR_3 TYPE STRING,
BUFFERS TYPE STRING,
PAGESIZE TYPE STRING,
PHYSBUFF TYPE STRING,
LOGBUFF TYPE STRING,
CLEANERS TYPE STRING,
LRUS TYPE STRING,
LRUMAXDIRT TYPE STRING,
LRUMINDIRT TYPE STRING,
CKPTINTVL TYPE STRING,
NUMCPUVPS TYPE STRING,
PHYSFILE TYPE STRING,
LOGSIZ TYPE STRING,
DBSERVERNA TYPE STRING,
LTXHWM TYPE STRING,
LOCKS TYPE STRING,
RA_PAGES TYPE STRING,
RA_THRESH TYPE STRING,
RA_USED TYPE STRING,
RA_COUNT TYPE STRING,
RA_PERSCAN TYPE STRING,
RA_PCNT TYPE STRING,
IDL_WRITES TYPE STRING,
PC_SLEEP TYPE STRING,
OVBUFF TYPE STRING,
SHMVIRT TYPE STRING,
FLUSHCKPTS TYPE STRING,
SHMTOTAL TYPE STRING,
NUMAIOVPS TYPE STRING,
DBFILES TYPE STRING,
SHMRES TYPE STRING,
SHMMES TYPE STRING,
KAIOTHREAD TYPE STRING,
UP_SINCE TYPE STRING,
RESET_STAT TYPE STRING,
PAGREADS TYPE STRING,
PAGWRITES TYPE STRING,
BUFWTS TYPE STRING,
BUFWTPCNT TYPE STRING,END OF T_EKKO_STR. DATA: WA_TST04INF_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_TST04INF_STR-BUFSIZETOT sy-vline
WA_TST04INF_STR-BUFREADS sy-vline
WA_TST04INF_STR-DSKREADS sy-vline
WA_TST04INF_STR-BUFWRITES sy-vline
WA_TST04INF_STR-DSKWRITES sy-vline
WA_TST04INF_STR-PLGPAGEWRI sy-vline
WA_TST04INF_STR-PLGWRITES sy-vline
WA_TST04INF_STR-LLGPAGEWRI sy-vline
WA_TST04INF_STR-LLGWRITES sy-vline
WA_TST04INF_STR-BUFPOOLFLU sy-vline
WA_TST04INF_STR-FGWRITES sy-vline
WA_TST04INF_STR-LRUWRITES sy-vline
WA_TST04INF_STR-CHUNKWRITE sy-vline
WA_TST04INF_STR-ISCOMMITS sy-vline
WA_TST04INF_STR-ISROLLBACK sy-vline
WA_TST04INF_STR-ISAMTOT sy-vline
WA_TST04INF_STR-SEQSCANS sy-vline
WA_TST04INF_STR-NUMCKPTS sy-vline
WA_TST04INF_STR-READQUAL sy-vline
WA_TST04INF_STR-WRITEQUAL sy-vline
WA_TST04INF_STR-PHYSLOG_IO sy-vline
WA_TST04INF_STR-LOGLOG_IO sy-vline
WA_TST04INF_STR-ACTIVESESS sy-vline
WA_TST04INF_STR-TRANS_MIN sy-vline
WA_TST04INF_STR-ISCALLS_TR sy-vline
WA_TST04INF_STR-CKPTCORR sy-vline
WA_TST04INF_STR-PHYSCORR sy-vline
WA_TST04INF_STR-CORR_3 sy-vline
WA_TST04INF_STR-BUFFERS sy-vline
WA_TST04INF_STR-PAGESIZE sy-vline
WA_TST04INF_STR-PHYSBUFF sy-vline
WA_TST04INF_STR-LOGBUFF sy-vline
WA_TST04INF_STR-CLEANERS sy-vline
WA_TST04INF_STR-LRUS sy-vline
WA_TST04INF_STR-LRUMAXDIRT sy-vline
WA_TST04INF_STR-LRUMINDIRT sy-vline
WA_TST04INF_STR-CKPTINTVL sy-vline
WA_TST04INF_STR-NUMCPUVPS sy-vline
WA_TST04INF_STR-PHYSFILE sy-vline
WA_TST04INF_STR-LOGSIZ sy-vline
WA_TST04INF_STR-DBSERVERNA sy-vline
WA_TST04INF_STR-LTXHWM sy-vline
WA_TST04INF_STR-LOCKS sy-vline
WA_TST04INF_STR-RA_PAGES sy-vline
WA_TST04INF_STR-RA_THRESH sy-vline
WA_TST04INF_STR-RA_USED sy-vline
WA_TST04INF_STR-RA_COUNT sy-vline
WA_TST04INF_STR-RA_PERSCAN sy-vline
WA_TST04INF_STR-RA_PCNT sy-vline
WA_TST04INF_STR-IDL_WRITES sy-vline
WA_TST04INF_STR-PC_SLEEP sy-vline
WA_TST04INF_STR-OVBUFF sy-vline
WA_TST04INF_STR-SHMVIRT sy-vline
WA_TST04INF_STR-FLUSHCKPTS sy-vline
WA_TST04INF_STR-SHMTOTAL sy-vline
WA_TST04INF_STR-NUMAIOVPS sy-vline
WA_TST04INF_STR-DBFILES sy-vline
WA_TST04INF_STR-SHMRES sy-vline
WA_TST04INF_STR-SHMMES sy-vline
WA_TST04INF_STR-KAIOTHREAD sy-vline
WA_TST04INF_STR-UP_SINCE sy-vline
WA_TST04INF_STR-RESET_STAT sy-vline
WA_TST04INF_STR-PAGREADS sy-vline
WA_TST04INF_STR-PAGWRITES sy-vline
WA_TST04INF_STR-BUFWTS sy-vline
WA_TST04INF_STR-BUFWTPCNT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.