ABAP Select data from SAP table DB2QTST 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 DB2QTST 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 DB2QTST. 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 DB2QTST 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_DB2QTST TYPE STANDARD TABLE OF DB2QTST,
      WA_DB2QTST TYPE DB2QTST,
      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: <DB2QTST> TYPE DB2QTST.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM DB2QTST
*  INTO TABLE @DATA(IT_DB2QTST2).
*--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_DB2QTST INDEX 1 INTO DATA(WA_DB2QTST2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_DB2QTST ASSIGNING <DB2QTST>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<DB2QTST>-QTID = 1.
<DB2QTST>-QTLEN = 1.
<DB2QTST>-QTEYE = 1.
<DB2QTST>-QTALLOCA = 1.
<DB2QTST>-QTALLOC = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_DB2QTST-QTABINDA, sy-vline,
WA_DB2QTST-QTABIND, sy-vline,
WA_DB2QTST-QTINVRID, sy-vline,
WA_DB2QTST-QTBINDA, sy-vline,
WA_DB2QTST-QTBINDR, sy-vline,
WA_DB2QTST-QTTESTB, sy-vline.
ENDLOOP. *Add any further fields from structure WA_DB2QTST 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_DB2QTST 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_DB2QTST INTO WA_DB2QTST. *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_DB2QTST_STR,
QTID TYPE STRING,
QTLEN TYPE STRING,
QTEYE TYPE STRING,
QTALLOCA TYPE STRING,
QTALLOC TYPE STRING,
QTABINDA TYPE STRING,
QTABIND TYPE STRING,
QTINVRID TYPE STRING,
QTBINDA TYPE STRING,
QTBINDR TYPE STRING,
QTTESTB TYPE STRING,
QTPLNBD TYPE STRING,
QTREBIND TYPE STRING,
QTRBINDA TYPE STRING,
QTPLNRBD TYPE STRING,
QTFREE TYPE STRING,
QTFREEA TYPE STRING,
QTPLNFRD TYPE STRING,
QTAUCHK TYPE STRING,
QTAUSUC TYPE STRING,
QTDSOPN TYPE STRING,
QTMAXDS TYPE STRING,
QTAUCCH TYPE STRING,
QTAUPUB TYPE STRING,
QTMAXPB TYPE STRING,
QTPACAUT TYPE STRING,
QTPACPUB TYPE STRING,
QTPACNOT TYPE STRING,
QTREOPN TYPE STRING,
QTPACOW1 TYPE STRING,
QTPACOW2 TYPE STRING,
QTSTRES1 TYPE STRING,
QTDSDRN TYPE STRING,
QTPCCT TYPE STRING,
QTSLWDD TYPE STRING,
QTBINDPA TYPE STRING,
QTBINDPR TYPE STRING,
QTPKGBD TYPE STRING,
QTRBINDP TYPE STRING,
QTRBNDPA TYPE STRING,
QTPKGRBD TYPE STRING,
QTFREEP TYPE STRING,
QTFREEAP TYPE STRING,
QTPKGFRD TYPE STRING,
QTAUTOBA TYPE STRING,
QTPKABND TYPE STRING,
QTPKALLA TYPE STRING,
QTPKALL TYPE STRING,
QTRACAUT TYPE STRING,
QTRACPUB TYPE STRING,
QTRACNOT TYPE STRING,
QTRACOW1 TYPE STRING,
QTRACOW2 TYPE STRING,
QTRACNAC TYPE STRING,END OF T_EKKO_STR. DATA: WA_DB2QTST_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_DB2QTST_STR-QTID sy-vline
WA_DB2QTST_STR-QTLEN sy-vline
WA_DB2QTST_STR-QTEYE sy-vline
WA_DB2QTST_STR-QTALLOCA sy-vline
WA_DB2QTST_STR-QTALLOC sy-vline
WA_DB2QTST_STR-QTABINDA sy-vline
WA_DB2QTST_STR-QTABIND sy-vline
WA_DB2QTST_STR-QTINVRID sy-vline
WA_DB2QTST_STR-QTBINDA sy-vline
WA_DB2QTST_STR-QTBINDR sy-vline
WA_DB2QTST_STR-QTTESTB sy-vline
WA_DB2QTST_STR-QTPLNBD sy-vline
WA_DB2QTST_STR-QTREBIND sy-vline
WA_DB2QTST_STR-QTRBINDA sy-vline
WA_DB2QTST_STR-QTPLNRBD sy-vline
WA_DB2QTST_STR-QTFREE sy-vline
WA_DB2QTST_STR-QTFREEA sy-vline
WA_DB2QTST_STR-QTPLNFRD sy-vline
WA_DB2QTST_STR-QTAUCHK sy-vline
WA_DB2QTST_STR-QTAUSUC sy-vline
WA_DB2QTST_STR-QTDSOPN sy-vline
WA_DB2QTST_STR-QTMAXDS sy-vline
WA_DB2QTST_STR-QTAUCCH sy-vline
WA_DB2QTST_STR-QTAUPUB sy-vline
WA_DB2QTST_STR-QTMAXPB sy-vline
WA_DB2QTST_STR-QTPACAUT sy-vline
WA_DB2QTST_STR-QTPACPUB sy-vline
WA_DB2QTST_STR-QTPACNOT sy-vline
WA_DB2QTST_STR-QTREOPN sy-vline
WA_DB2QTST_STR-QTPACOW1 sy-vline
WA_DB2QTST_STR-QTPACOW2 sy-vline
WA_DB2QTST_STR-QTSTRES1 sy-vline
WA_DB2QTST_STR-QTDSDRN sy-vline
WA_DB2QTST_STR-QTPCCT sy-vline
WA_DB2QTST_STR-QTSLWDD sy-vline
WA_DB2QTST_STR-QTBINDPA sy-vline
WA_DB2QTST_STR-QTBINDPR sy-vline
WA_DB2QTST_STR-QTPKGBD sy-vline
WA_DB2QTST_STR-QTRBINDP sy-vline
WA_DB2QTST_STR-QTRBNDPA sy-vline
WA_DB2QTST_STR-QTPKGRBD sy-vline
WA_DB2QTST_STR-QTFREEP sy-vline
WA_DB2QTST_STR-QTFREEAP sy-vline
WA_DB2QTST_STR-QTPKGFRD sy-vline
WA_DB2QTST_STR-QTAUTOBA sy-vline
WA_DB2QTST_STR-QTPKABND sy-vline
WA_DB2QTST_STR-QTPKALLA sy-vline
WA_DB2QTST_STR-QTPKALL sy-vline
WA_DB2QTST_STR-QTRACAUT sy-vline
WA_DB2QTST_STR-QTRACPUB sy-vline
WA_DB2QTST_STR-QTRACNOT sy-vline
WA_DB2QTST_STR-QTRACOW1 sy-vline
WA_DB2QTST_STR-QTRACOW2 sy-vline
WA_DB2QTST_STR-QTRACNAC sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.