ABAP Select data from SAP table ATRA_STR_TRACE_STATEMENT 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 ATRA_STR_TRACE_STATEMENT 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 ATRA_STR_TRACE_STATEMENT. 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 ATRA_STR_TRACE_STATEMENT 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_ATRA_STR_TRACE_STATEMENT TYPE STANDARD TABLE OF ATRA_STR_TRACE_STATEMENT,
      WA_ATRA_STR_TRACE_STATEMENT TYPE ATRA_STR_TRACE_STATEMENT,
      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: <ATRA_STR_TRACE_STATEMENT> TYPE ATRA_STR_TRACE_STATEMENT.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM ATRA_STR_TRACE_STATEMENT
*  INTO TABLE @DATA(IT_ATRA_STR_TRACE_STATEMENT2).
*--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_ATRA_STR_TRACE_STATEMENT INDEX 1 INTO DATA(WA_ATRA_STR_TRACE_STATEMENT2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_ATRA_STR_TRACE_STATEMENT ASSIGNING <ATRA_STR_TRACE_STATEMENT>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<ATRA_STR_TRACE_STATEMENT>-INDEX = 1.
<ATRA_STR_TRACE_STATEMENT>-START = 1.
<ATRA_STR_TRACE_STATEMENT>-END = 1.
<ATRA_STR_TRACE_STATEMENT>-CALLER = 1.
<ATRA_STR_TRACE_STATEMENT>-EBENE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_ATRA_STR_TRACE_STATEMENT-RECURSION, sy-vline,
WA_ATRA_STR_TRACE_STATEMENT-EVENT, sy-vline,
WA_ATRA_STR_TRACE_STATEMENT-RECTYPE, sy-vline,
WA_ATRA_STR_TRACE_STATEMENT-ID, sy-vline,
WA_ATRA_STR_TRACE_STATEMENT-SUBID, sy-vline,
WA_ATRA_STR_TRACE_STATEMENT-CONTOFFS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_ATRA_STR_TRACE_STATEMENT 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_ATRA_STR_TRACE_STATEMENT 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_ATRA_STR_TRACE_STATEMENT INTO WA_ATRA_STR_TRACE_STATEMENT. *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_ATRA_STR_TRACE_STATEMENT_STR,
INDEX TYPE STRING,
START TYPE STRING,
END TYPE STRING,
CALLER TYPE STRING,
EBENE TYPE STRING,
RECURSION TYPE STRING,
EVENT TYPE STRING,
RECTYPE TYPE STRING,
ID TYPE STRING,
SUBID TYPE STRING,
CONTOFFS TYPE STRING,
BRUTTO TYPE STRING,
NETTO TYPE STRING,
HITS TYPE STRING,
PROGINDEX TYPE STRING,
METHINDEX TYPE STRING,
TEXTINDEX TYPE STRING,
PR_2INDEX TYPE STRING,
PAKETINDEX TYPE STRING,
STORAGE TYPE STRING,
ET_TYPE TYPE STRING,
EG_GROUP TYPE STRING,
STORAGE_INCREASE TYPE STRING,
INSTANCE TYPE STRING,
TABINDEX TYPE STRING,
INTFINDEX TYPE STRING,
NET0 TYPE STRING,
CALLING_PROC TYPE STRING,
LEVEL_PROCBLOCKS TYPE STRING,
IDX_CALLTREE TYPE STRING,
IDX_HITLIST TYPE STRING,
IDX_METHHTLST TYPE STRING,
IDX_DB_HITS TYPE STRING,
DYNPRO_NR TYPE STRING,
DYNPRO_LINE TYPE STRING,END OF T_EKKO_STR. DATA: WA_ATRA_STR_TRACE_STATEMENT_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_ATRA_STR_TRACE_STATEMENT_STR-INDEX sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-START sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-END sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-CALLER sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-EBENE sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-RECURSION sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-EVENT sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-RECTYPE sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-ID sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-SUBID sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-CONTOFFS sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-BRUTTO sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-NETTO sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-HITS sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-PROGINDEX sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-METHINDEX sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-TEXTINDEX sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-PR_2INDEX sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-PAKETINDEX sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-STORAGE sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-ET_TYPE sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-EG_GROUP sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-STORAGE_INCREASE sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-INSTANCE sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-TABINDEX sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-INTFINDEX sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-NET0 sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-CALLING_PROC sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-LEVEL_PROCBLOCKS sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-IDX_CALLTREE sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-IDX_HITLIST sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-IDX_METHHTLST sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-IDX_DB_HITS sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-DYNPRO_NR sy-vline
WA_ATRA_STR_TRACE_STATEMENT_STR-DYNPRO_LINE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.