ABAP Select data from SAP table DB6CSTRACE 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 DB6CSTRACE 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 DB6CSTRACE. 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 DB6CSTRACE 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_DB6CSTRACE TYPE STANDARD TABLE OF DB6CSTRACE,
      WA_DB6CSTRACE TYPE DB6CSTRACE,
      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: <DB6CSTRACE> TYPE DB6CSTRACE.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM DB6CSTRACE
*  INTO TABLE @DATA(IT_DB6CSTRACE2).
*--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_DB6CSTRACE INDEX 1 INTO DATA(WA_DB6CSTRACE2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_DB6CSTRACE ASSIGNING <DB6CSTRACE>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<DB6CSTRACE>-PID = 1.
<DB6CSTRACE>-DBNAME = 1.
<DB6CSTRACE>-APPSERV = 1.
<DB6CSTRACE>-DMODTYPE = 1.
<DB6CSTRACE>-DMODULE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_DB6CSTRACE-TIMESTAMP, sy-vline,
WA_DB6CSTRACE-STMTNUM, sy-vline,
WA_DB6CSTRACE-OPTLEVEL, sy-vline,
WA_DB6CSTRACE-TABLENAME, sy-vline,
WA_DB6CSTRACE-PROG, sy-vline,
WA_DB6CSTRACE-CONT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_DB6CSTRACE 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_DB6CSTRACE 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_DB6CSTRACE INTO WA_DB6CSTRACE. *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_DB6CSTRACE_STR,
PID TYPE STRING,
DBNAME TYPE STRING,
APPSERV TYPE STRING,
DMODTYPE TYPE STRING,
DMODULE TYPE STRING,
TIMESTAMP TYPE STRING,
STMTNUM TYPE STRING,
OPTLEVEL TYPE STRING,
TABLENAME TYPE STRING,
PROG TYPE STRING,
CONT TYPE STRING,
FIRST_TIME TYPE STRING,
LAST_TIME TYPE STRING,
PREP_CNT TYPE STRING,
EXEC_CNT TYPE STRING,
FET_CNT TYPE STRING,
EFET_CNT TYPE STRING,
CLSE_CNT TYPE STRING,
PREP_TIME TYPE STRING,
EXEC_TIME TYPE STRING,
FET_TIME TYPE STRING,
EFET_TIME TYPE STRING,
CLSE_TIME TYPE STRING,
PREP_5S TYPE STRING,
PREP_1S TYPE STRING,
PREP_500MS TYPE STRING,
PREP_100MS TYPE STRING,
PREP_50MS TYPE STRING,
PREP_20MS TYPE STRING,
PREP_10MS TYPE STRING,
PREP_5MS TYPE STRING,
PREP_2MS TYPE STRING,
PREP_1MS TYPE STRING,
PREP_LT1MS TYPE STRING,
EXEC_5S TYPE STRING,
EXEC_1S TYPE STRING,
EXEC_500MS TYPE STRING,
EXEC_100MS TYPE STRING,
EXEC_50MS TYPE STRING,
EXEC_20MS TYPE STRING,
EXEC_10MS TYPE STRING,
EXEC_5MS TYPE STRING,
EXEC_2MS TYPE STRING,
EXEC_1MS TYPE STRING,
EXEC_LT1MS TYPE STRING,
FET_5S TYPE STRING,
FET_1S TYPE STRING,
FET_500MS TYPE STRING,
FET_100MS TYPE STRING,
FET_50MS TYPE STRING,
FET_20MS TYPE STRING,
FET_10MS TYPE STRING,
FET_5MS TYPE STRING,
FET_2MS TYPE STRING,
FET_1MS TYPE STRING,
FET_LT1MS TYPE STRING,
EFET_5S TYPE STRING,
EFET_1S TYPE STRING,
EFET_500MS TYPE STRING,
EFET_100MS TYPE STRING,
EFET_50MS TYPE STRING,
EFET_20MS TYPE STRING,
EFET_10MS TYPE STRING,
EFET_5MS TYPE STRING,
EFET_2MS TYPE STRING,
EFET_1MS TYPE STRING,
EFET_LT1MS TYPE STRING,
CLSE_5S TYPE STRING,
CLSE_1S TYPE STRING,
CLSE_500MS TYPE STRING,
CLSE_100MS TYPE STRING,
CLSE_50MS TYPE STRING,
CLSE_20MS TYPE STRING,
CLSE_10MS TYPE STRING,
CLSE_5MS TYPE STRING,
CLSE_2MS TYPE STRING,
CLSE_1MS TYPE STRING,
CLSE_LT1MS TYPE STRING,
STMT_SUBST TYPE STRING,
STMT_LEN TYPE STRING,
STMT_TEXT TYPE STRING,END OF T_EKKO_STR. DATA: WA_DB6CSTRACE_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_DB6CSTRACE_STR-PID sy-vline
WA_DB6CSTRACE_STR-DBNAME sy-vline
WA_DB6CSTRACE_STR-APPSERV sy-vline
WA_DB6CSTRACE_STR-DMODTYPE sy-vline
WA_DB6CSTRACE_STR-DMODULE sy-vline
WA_DB6CSTRACE_STR-TIMESTAMP sy-vline
WA_DB6CSTRACE_STR-STMTNUM sy-vline
WA_DB6CSTRACE_STR-OPTLEVEL sy-vline
WA_DB6CSTRACE_STR-TABLENAME sy-vline
WA_DB6CSTRACE_STR-PROG sy-vline
WA_DB6CSTRACE_STR-CONT sy-vline
WA_DB6CSTRACE_STR-FIRST_TIME sy-vline
WA_DB6CSTRACE_STR-LAST_TIME sy-vline
WA_DB6CSTRACE_STR-PREP_CNT sy-vline
WA_DB6CSTRACE_STR-EXEC_CNT sy-vline
WA_DB6CSTRACE_STR-FET_CNT sy-vline
WA_DB6CSTRACE_STR-EFET_CNT sy-vline
WA_DB6CSTRACE_STR-CLSE_CNT sy-vline
WA_DB6CSTRACE_STR-PREP_TIME sy-vline
WA_DB6CSTRACE_STR-EXEC_TIME sy-vline
WA_DB6CSTRACE_STR-FET_TIME sy-vline
WA_DB6CSTRACE_STR-EFET_TIME sy-vline
WA_DB6CSTRACE_STR-CLSE_TIME sy-vline
WA_DB6CSTRACE_STR-PREP_5S sy-vline
WA_DB6CSTRACE_STR-PREP_1S sy-vline
WA_DB6CSTRACE_STR-PREP_500MS sy-vline
WA_DB6CSTRACE_STR-PREP_100MS sy-vline
WA_DB6CSTRACE_STR-PREP_50MS sy-vline
WA_DB6CSTRACE_STR-PREP_20MS sy-vline
WA_DB6CSTRACE_STR-PREP_10MS sy-vline
WA_DB6CSTRACE_STR-PREP_5MS sy-vline
WA_DB6CSTRACE_STR-PREP_2MS sy-vline
WA_DB6CSTRACE_STR-PREP_1MS sy-vline
WA_DB6CSTRACE_STR-PREP_LT1MS sy-vline
WA_DB6CSTRACE_STR-EXEC_5S sy-vline
WA_DB6CSTRACE_STR-EXEC_1S sy-vline
WA_DB6CSTRACE_STR-EXEC_500MS sy-vline
WA_DB6CSTRACE_STR-EXEC_100MS sy-vline
WA_DB6CSTRACE_STR-EXEC_50MS sy-vline
WA_DB6CSTRACE_STR-EXEC_20MS sy-vline
WA_DB6CSTRACE_STR-EXEC_10MS sy-vline
WA_DB6CSTRACE_STR-EXEC_5MS sy-vline
WA_DB6CSTRACE_STR-EXEC_2MS sy-vline
WA_DB6CSTRACE_STR-EXEC_1MS sy-vline
WA_DB6CSTRACE_STR-EXEC_LT1MS sy-vline
WA_DB6CSTRACE_STR-FET_5S sy-vline
WA_DB6CSTRACE_STR-FET_1S sy-vline
WA_DB6CSTRACE_STR-FET_500MS sy-vline
WA_DB6CSTRACE_STR-FET_100MS sy-vline
WA_DB6CSTRACE_STR-FET_50MS sy-vline
WA_DB6CSTRACE_STR-FET_20MS sy-vline
WA_DB6CSTRACE_STR-FET_10MS sy-vline
WA_DB6CSTRACE_STR-FET_5MS sy-vline
WA_DB6CSTRACE_STR-FET_2MS sy-vline
WA_DB6CSTRACE_STR-FET_1MS sy-vline
WA_DB6CSTRACE_STR-FET_LT1MS sy-vline
WA_DB6CSTRACE_STR-EFET_5S sy-vline
WA_DB6CSTRACE_STR-EFET_1S sy-vline
WA_DB6CSTRACE_STR-EFET_500MS sy-vline
WA_DB6CSTRACE_STR-EFET_100MS sy-vline
WA_DB6CSTRACE_STR-EFET_50MS sy-vline
WA_DB6CSTRACE_STR-EFET_20MS sy-vline
WA_DB6CSTRACE_STR-EFET_10MS sy-vline
WA_DB6CSTRACE_STR-EFET_5MS sy-vline
WA_DB6CSTRACE_STR-EFET_2MS sy-vline
WA_DB6CSTRACE_STR-EFET_1MS sy-vline
WA_DB6CSTRACE_STR-EFET_LT1MS sy-vline
WA_DB6CSTRACE_STR-CLSE_5S sy-vline
WA_DB6CSTRACE_STR-CLSE_1S sy-vline
WA_DB6CSTRACE_STR-CLSE_500MS sy-vline
WA_DB6CSTRACE_STR-CLSE_100MS sy-vline
WA_DB6CSTRACE_STR-CLSE_50MS sy-vline
WA_DB6CSTRACE_STR-CLSE_20MS sy-vline
WA_DB6CSTRACE_STR-CLSE_10MS sy-vline
WA_DB6CSTRACE_STR-CLSE_5MS sy-vline
WA_DB6CSTRACE_STR-CLSE_2MS sy-vline
WA_DB6CSTRACE_STR-CLSE_1MS sy-vline
WA_DB6CSTRACE_STR-CLSE_LT1MS sy-vline
WA_DB6CSTRACE_STR-STMT_SUBST sy-vline
WA_DB6CSTRACE_STR-STMT_LEN sy-vline
WA_DB6CSTRACE_STR-STMT_TEXT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.