ABAP Select data from SAP table TST04INF64 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 TST04INF64 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 TST04INF64. 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 TST04INF64 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_TST04INF64 TYPE STANDARD TABLE OF TST04INF64,
      WA_TST04INF64 TYPE TST04INF64,
      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: <TST04INF64> TYPE TST04INF64.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM TST04INF64
*  INTO TABLE @DATA(IT_TST04INF642).
*--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_TST04INF64 INDEX 1 INTO DATA(WA_TST04INF642).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_TST04INF64 ASSIGNING <TST04INF64>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<TST04INF64>-BUFSIZETOT = 1.
<TST04INF64>-BUFREADS = 1.
<TST04INF64>-DSKREADS = 1.
<TST04INF64>-BUFWRITES = 1.
<TST04INF64>-DSKWRITES = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_TST04INF64-PLGPAGEWRI, sy-vline,
WA_TST04INF64-PLGWRITES, sy-vline,
WA_TST04INF64-LLGPAGEWRI, sy-vline,
WA_TST04INF64-LLGWRITES, sy-vline,
WA_TST04INF64-BUFPOOLFLU, sy-vline,
WA_TST04INF64-FGWRITES, sy-vline.
ENDLOOP. *Add any further fields from structure WA_TST04INF64 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_TST04INF64 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_TST04INF64 INTO WA_TST04INF64. *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_TST04INF64_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,
LOGFILES TYPE STRING,
LOGSIZETOT 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,
MAXPDQPRIO TYPE STRING,
DSMAXQUERY TYPE STRING,
DSMAXSCANS TYPE STRING,
DSTOTALMEM TYPE STRING,
ISAMREADS TYPE STRING,
ISAMWRITES TYPE STRING,
ISAMREWRIT TYPE STRING,
ISAMDELETE TYPE STRING,
ISAMSTARTS TYPE STRING,
MAXSORTSPC TYPE STRING,
SHMVSEGCNT TYPE STRING,
SQLREADLD TYPE STRING,
MEMSORTS TYPE STRING,
DISKSORTS TYPE STRING,
WRITEACTIV TYPE STRING,
LONG_TX TYPE STRING,
LOCKWAITS TYPE STRING,
LOCKREQS TYPE STRING,
LOCKWTPCNT TYPE STRING,
LKTOUTS TYPE STRING,
DEADLKS TYPE STRING,
LOCKSHELD TYPE STRING,END OF T_EKKO_STR. DATA: WA_TST04INF64_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_TST04INF64_STR-BUFSIZETOT sy-vline
WA_TST04INF64_STR-BUFREADS sy-vline
WA_TST04INF64_STR-DSKREADS sy-vline
WA_TST04INF64_STR-BUFWRITES sy-vline
WA_TST04INF64_STR-DSKWRITES sy-vline
WA_TST04INF64_STR-PLGPAGEWRI sy-vline
WA_TST04INF64_STR-PLGWRITES sy-vline
WA_TST04INF64_STR-LLGPAGEWRI sy-vline
WA_TST04INF64_STR-LLGWRITES sy-vline
WA_TST04INF64_STR-BUFPOOLFLU sy-vline
WA_TST04INF64_STR-FGWRITES sy-vline
WA_TST04INF64_STR-LRUWRITES sy-vline
WA_TST04INF64_STR-CHUNKWRITE sy-vline
WA_TST04INF64_STR-ISCOMMITS sy-vline
WA_TST04INF64_STR-ISROLLBACK sy-vline
WA_TST04INF64_STR-ISAMTOT sy-vline
WA_TST04INF64_STR-SEQSCANS sy-vline
WA_TST04INF64_STR-NUMCKPTS sy-vline
WA_TST04INF64_STR-READQUAL sy-vline
WA_TST04INF64_STR-WRITEQUAL sy-vline
WA_TST04INF64_STR-PHYSLOG_IO sy-vline
WA_TST04INF64_STR-LOGLOG_IO sy-vline
WA_TST04INF64_STR-ACTIVESESS sy-vline
WA_TST04INF64_STR-TRANS_MIN sy-vline
WA_TST04INF64_STR-ISCALLS_TR sy-vline
WA_TST04INF64_STR-CKPTCORR sy-vline
WA_TST04INF64_STR-PHYSCORR sy-vline
WA_TST04INF64_STR-CORR_3 sy-vline
WA_TST04INF64_STR-BUFFERS sy-vline
WA_TST04INF64_STR-PAGESIZE sy-vline
WA_TST04INF64_STR-PHYSBUFF sy-vline
WA_TST04INF64_STR-LOGBUFF sy-vline
WA_TST04INF64_STR-CLEANERS sy-vline
WA_TST04INF64_STR-LRUS sy-vline
WA_TST04INF64_STR-LRUMAXDIRT sy-vline
WA_TST04INF64_STR-LRUMINDIRT sy-vline
WA_TST04INF64_STR-CKPTINTVL sy-vline
WA_TST04INF64_STR-NUMCPUVPS sy-vline
WA_TST04INF64_STR-PHYSFILE sy-vline
WA_TST04INF64_STR-LOGSIZ sy-vline
WA_TST04INF64_STR-LOGFILES sy-vline
WA_TST04INF64_STR-LOGSIZETOT sy-vline
WA_TST04INF64_STR-DBSERVERNA sy-vline
WA_TST04INF64_STR-LTXHWM sy-vline
WA_TST04INF64_STR-LOCKS sy-vline
WA_TST04INF64_STR-RA_PAGES sy-vline
WA_TST04INF64_STR-RA_THRESH sy-vline
WA_TST04INF64_STR-RA_USED sy-vline
WA_TST04INF64_STR-RA_COUNT sy-vline
WA_TST04INF64_STR-RA_PERSCAN sy-vline
WA_TST04INF64_STR-RA_PCNT sy-vline
WA_TST04INF64_STR-IDL_WRITES sy-vline
WA_TST04INF64_STR-PC_SLEEP sy-vline
WA_TST04INF64_STR-OVBUFF sy-vline
WA_TST04INF64_STR-SHMVIRT sy-vline
WA_TST04INF64_STR-FLUSHCKPTS sy-vline
WA_TST04INF64_STR-SHMTOTAL sy-vline
WA_TST04INF64_STR-NUMAIOVPS sy-vline
WA_TST04INF64_STR-DBFILES sy-vline
WA_TST04INF64_STR-SHMRES sy-vline
WA_TST04INF64_STR-SHMMES sy-vline
WA_TST04INF64_STR-KAIOTHREAD sy-vline
WA_TST04INF64_STR-UP_SINCE sy-vline
WA_TST04INF64_STR-RESET_STAT sy-vline
WA_TST04INF64_STR-PAGREADS sy-vline
WA_TST04INF64_STR-PAGWRITES sy-vline
WA_TST04INF64_STR-BUFWTS sy-vline
WA_TST04INF64_STR-BUFWTPCNT sy-vline
WA_TST04INF64_STR-MAXPDQPRIO sy-vline
WA_TST04INF64_STR-DSMAXQUERY sy-vline
WA_TST04INF64_STR-DSMAXSCANS sy-vline
WA_TST04INF64_STR-DSTOTALMEM sy-vline
WA_TST04INF64_STR-ISAMREADS sy-vline
WA_TST04INF64_STR-ISAMWRITES sy-vline
WA_TST04INF64_STR-ISAMREWRIT sy-vline
WA_TST04INF64_STR-ISAMDELETE sy-vline
WA_TST04INF64_STR-ISAMSTARTS sy-vline
WA_TST04INF64_STR-MAXSORTSPC sy-vline
WA_TST04INF64_STR-SHMVSEGCNT sy-vline
WA_TST04INF64_STR-SQLREADLD sy-vline
WA_TST04INF64_STR-MEMSORTS sy-vline
WA_TST04INF64_STR-DISKSORTS sy-vline
WA_TST04INF64_STR-WRITEACTIV sy-vline
WA_TST04INF64_STR-LONG_TX sy-vline
WA_TST04INF64_STR-LOCKWAITS sy-vline
WA_TST04INF64_STR-LOCKREQS sy-vline
WA_TST04INF64_STR-LOCKWTPCNT sy-vline
WA_TST04INF64_STR-LKTOUTS sy-vline
WA_TST04INF64_STR-DEADLKS sy-vline
WA_TST04INF64_STR-LOCKSHELD sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.