ABAP Select data from SAP table DB2QXST 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 DB2QXST 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 DB2QXST. 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 DB2QXST 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_DB2QXST TYPE STANDARD TABLE OF DB2QXST,
      WA_DB2QXST TYPE DB2QXST,
      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: <DB2QXST> TYPE DB2QXST.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM DB2QXST
*  INTO TABLE @DATA(IT_DB2QXST2).
*--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_DB2QXST INDEX 1 INTO DATA(WA_DB2QXST2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_DB2QXST ASSIGNING <DB2QXST>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<DB2QXST>-QXSELECT = 1.
<DB2QXST>-QXINSRT = 1.
<DB2QXST>-QXUPDTE = 1.
<DB2QXST>-QXDELET = 1.
<DB2QXST>-QXDESC = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_DB2QXST-QXPREP, sy-vline,
WA_DB2QXST-QXOPEN, sy-vline,
WA_DB2QXST-QXCLOSE, sy-vline,
WA_DB2QXST-QXCRTAB, sy-vline,
WA_DB2QXST-QXCRINX, sy-vline,
WA_DB2QXST-QXCTABS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_DB2QXST 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_DB2QXST 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_DB2QXST INTO WA_DB2QXST. *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_DB2QXST_STR,
QXSELECT TYPE STRING,
QXINSRT TYPE STRING,
QXUPDTE TYPE STRING,
QXDELET TYPE STRING,
QXDESC TYPE STRING,
QXPREP TYPE STRING,
QXOPEN TYPE STRING,
QXCLOSE TYPE STRING,
QXCRTAB TYPE STRING,
QXCRINX TYPE STRING,
QXCTABS TYPE STRING,
QXCRSYN TYPE STRING,
QXCRDAB TYPE STRING,
QXCRSTG TYPE STRING,
QXDEFVU TYPE STRING,
QXDRPIX TYPE STRING,
QXDRPTA TYPE STRING,
QXDRPTS TYPE STRING,
QXDRPDB TYPE STRING,
QXDRPSY TYPE STRING,
QXDRPST TYPE STRING,
QXDRPVU TYPE STRING,
QXALTST TYPE STRING,
QXFETCH TYPE STRING,
QXALTTS TYPE STRING,
QXALTTA TYPE STRING,
QXALTIX TYPE STRING,
QXCMTON TYPE STRING,
QXLOCK TYPE STRING,
QXGRANT TYPE STRING,
QXREVOK TYPE STRING,
QXINCRB TYPE STRING,
QXLABON TYPE STRING,
QXSETSQL TYPE STRING,
QXCRALS TYPE STRING,
QXDRPAL TYPE STRING,
QXMIAP TYPE STRING,
QXNSMIAP TYPE STRING,
QXMRMIAP TYPE STRING,
QXSETHV TYPE STRING,
QXALDAB TYPE STRING,
QXDRPPKG TYPE STRING,
QXDSCRTB TYPE STRING,
QXMAXDEG TYPE STRING,
QXTOTGRP TYPE STRING,
QXDEGCUR TYPE STRING,
QXDEGESA TYPE STRING,
QXDEGBUF TYPE STRING,
QXREDGRP TYPE STRING,
QXNORGRP TYPE STRING,
QXCON1 TYPE STRING,
QXCON2 TYPE STRING,
QXREL TYPE STRING,
QXSETCON TYPE STRING,
QXSETCDG TYPE STRING,
QXSETCRL TYPE STRING,
QXCALL TYPE STRING,
QXCALLAB TYPE STRING,
QXCALLTO TYPE STRING,
QXCALLRJ TYPE STRING,
QXDEGENC TYPE STRING,
QXRLFDPA TYPE STRING,
QXSTRES1 TYPE STRING,
QXCOORNO TYPE STRING,
QXISORR TYPE STRING,
QXCRGTT TYPE STRING,
QXSTREOP TYPE STRING,
QXXCBPNX TYPE STRING,
QXXCSKIP TYPE STRING,
QXALOCL TYPE STRING,
QXALOCC TYPE STRING,
QXSTFND TYPE STRING,
QXSTNFND TYPE STRING,
QXSTIPRP TYPE STRING,
QXSTNPRP TYPE STRING,
QXSTDEXP TYPE STRING,
QXSTDINV TYPE STRING,
QXRNTAB TYPE STRING,
QXFULLP TYPE STRING,
QXCTRIG TYPE STRING,
QXDRPTR TYPE STRING,
QXSETPTH TYPE STRING,
QXDRPFN TYPE STRING,
QXDRPPR TYPE STRING,
QXCDIST TYPE STRING,
QXDDIST TYPE STRING,
QXCRUDF TYPE STRING,
QXCRPRO TYPE STRING,
QXHOLDL TYPE STRING,
QXFREEL TYPE STRING,
QXREPOP1 TYPE STRING,
QXREPOP2 TYPE STRING,
QXCRATB TYPE STRING,
QXSTLOBV TYPE STRING,
QXALUDF TYPE STRING,
QXALPRO TYPE STRING,
QXROIMAT TYPE STRING,
QXROIIDX TYPE STRING,
QXROITS TYPE STRING,
QXSTTRG TYPE STRING,
QXROWTRG TYPE STRING,
QXTRGERR TYPE STRING,
QXCASCDP TYPE STRING,
QXCAUD TYPE STRING,
QXCAUDAB TYPE STRING,
QXCAUDTO TYPE STRING,
QXCAUDRJ TYPE STRING,
GHITRATIO TYPE STRING,
LHITRATIO TYPE STRING,
REPREPRAT TYPE STRING,
PREPREQ TYPE STRING,
SHORTPREP TYPE STRING,
QXALTJR TYPE STRING,
QXMERGE TYPE STRING,
QXTRTBL TYPE STRING,
QXCRROL TYPE STRING,
QXDRPROL TYPE STRING,
QXCRCTX TYPE STRING,
QXALTCTX TYPE STRING,
QXDRPCTX TYPE STRING,
QXRNIX TYPE STRING,END OF T_EKKO_STR. DATA: WA_DB2QXST_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_DB2QXST_STR-QXSELECT sy-vline
WA_DB2QXST_STR-QXINSRT sy-vline
WA_DB2QXST_STR-QXUPDTE sy-vline
WA_DB2QXST_STR-QXDELET sy-vline
WA_DB2QXST_STR-QXDESC sy-vline
WA_DB2QXST_STR-QXPREP sy-vline
WA_DB2QXST_STR-QXOPEN sy-vline
WA_DB2QXST_STR-QXCLOSE sy-vline
WA_DB2QXST_STR-QXCRTAB sy-vline
WA_DB2QXST_STR-QXCRINX sy-vline
WA_DB2QXST_STR-QXCTABS sy-vline
WA_DB2QXST_STR-QXCRSYN sy-vline
WA_DB2QXST_STR-QXCRDAB sy-vline
WA_DB2QXST_STR-QXCRSTG sy-vline
WA_DB2QXST_STR-QXDEFVU sy-vline
WA_DB2QXST_STR-QXDRPIX sy-vline
WA_DB2QXST_STR-QXDRPTA sy-vline
WA_DB2QXST_STR-QXDRPTS sy-vline
WA_DB2QXST_STR-QXDRPDB sy-vline
WA_DB2QXST_STR-QXDRPSY sy-vline
WA_DB2QXST_STR-QXDRPST sy-vline
WA_DB2QXST_STR-QXDRPVU sy-vline
WA_DB2QXST_STR-QXALTST sy-vline
WA_DB2QXST_STR-QXFETCH sy-vline
WA_DB2QXST_STR-QXALTTS sy-vline
WA_DB2QXST_STR-QXALTTA sy-vline
WA_DB2QXST_STR-QXALTIX sy-vline
WA_DB2QXST_STR-QXCMTON sy-vline
WA_DB2QXST_STR-QXLOCK sy-vline
WA_DB2QXST_STR-QXGRANT sy-vline
WA_DB2QXST_STR-QXREVOK sy-vline
WA_DB2QXST_STR-QXINCRB sy-vline
WA_DB2QXST_STR-QXLABON sy-vline
WA_DB2QXST_STR-QXSETSQL sy-vline
WA_DB2QXST_STR-QXCRALS sy-vline
WA_DB2QXST_STR-QXDRPAL sy-vline
WA_DB2QXST_STR-QXMIAP sy-vline
WA_DB2QXST_STR-QXNSMIAP sy-vline
WA_DB2QXST_STR-QXMRMIAP sy-vline
WA_DB2QXST_STR-QXSETHV sy-vline
WA_DB2QXST_STR-QXALDAB sy-vline
WA_DB2QXST_STR-QXDRPPKG sy-vline
WA_DB2QXST_STR-QXDSCRTB sy-vline
WA_DB2QXST_STR-QXMAXDEG sy-vline
WA_DB2QXST_STR-QXTOTGRP sy-vline
WA_DB2QXST_STR-QXDEGCUR sy-vline
WA_DB2QXST_STR-QXDEGESA sy-vline
WA_DB2QXST_STR-QXDEGBUF sy-vline
WA_DB2QXST_STR-QXREDGRP sy-vline
WA_DB2QXST_STR-QXNORGRP sy-vline
WA_DB2QXST_STR-QXCON1 sy-vline
WA_DB2QXST_STR-QXCON2 sy-vline
WA_DB2QXST_STR-QXREL sy-vline
WA_DB2QXST_STR-QXSETCON sy-vline
WA_DB2QXST_STR-QXSETCDG sy-vline
WA_DB2QXST_STR-QXSETCRL sy-vline
WA_DB2QXST_STR-QXCALL sy-vline
WA_DB2QXST_STR-QXCALLAB sy-vline
WA_DB2QXST_STR-QXCALLTO sy-vline
WA_DB2QXST_STR-QXCALLRJ sy-vline
WA_DB2QXST_STR-QXDEGENC sy-vline
WA_DB2QXST_STR-QXRLFDPA sy-vline
WA_DB2QXST_STR-QXSTRES1 sy-vline
WA_DB2QXST_STR-QXCOORNO sy-vline
WA_DB2QXST_STR-QXISORR sy-vline
WA_DB2QXST_STR-QXCRGTT sy-vline
WA_DB2QXST_STR-QXSTREOP sy-vline
WA_DB2QXST_STR-QXXCBPNX sy-vline
WA_DB2QXST_STR-QXXCSKIP sy-vline
WA_DB2QXST_STR-QXALOCL sy-vline
WA_DB2QXST_STR-QXALOCC sy-vline
WA_DB2QXST_STR-QXSTFND sy-vline
WA_DB2QXST_STR-QXSTNFND sy-vline
WA_DB2QXST_STR-QXSTIPRP sy-vline
WA_DB2QXST_STR-QXSTNPRP sy-vline
WA_DB2QXST_STR-QXSTDEXP sy-vline
WA_DB2QXST_STR-QXSTDINV sy-vline
WA_DB2QXST_STR-QXRNTAB sy-vline
WA_DB2QXST_STR-QXFULLP sy-vline
WA_DB2QXST_STR-QXCTRIG sy-vline
WA_DB2QXST_STR-QXDRPTR sy-vline
WA_DB2QXST_STR-QXSETPTH sy-vline
WA_DB2QXST_STR-QXDRPFN sy-vline
WA_DB2QXST_STR-QXDRPPR sy-vline
WA_DB2QXST_STR-QXCDIST sy-vline
WA_DB2QXST_STR-QXDDIST sy-vline
WA_DB2QXST_STR-QXCRUDF sy-vline
WA_DB2QXST_STR-QXCRPRO sy-vline
WA_DB2QXST_STR-QXHOLDL sy-vline
WA_DB2QXST_STR-QXFREEL sy-vline
WA_DB2QXST_STR-QXREPOP1 sy-vline
WA_DB2QXST_STR-QXREPOP2 sy-vline
WA_DB2QXST_STR-QXCRATB sy-vline
WA_DB2QXST_STR-QXSTLOBV sy-vline
WA_DB2QXST_STR-QXALUDF sy-vline
WA_DB2QXST_STR-QXALPRO sy-vline
WA_DB2QXST_STR-QXROIMAT sy-vline
WA_DB2QXST_STR-QXROIIDX sy-vline
WA_DB2QXST_STR-QXROITS sy-vline
WA_DB2QXST_STR-QXSTTRG sy-vline
WA_DB2QXST_STR-QXROWTRG sy-vline
WA_DB2QXST_STR-QXTRGERR sy-vline
WA_DB2QXST_STR-QXCASCDP sy-vline
WA_DB2QXST_STR-QXCAUD sy-vline
WA_DB2QXST_STR-QXCAUDAB sy-vline
WA_DB2QXST_STR-QXCAUDTO sy-vline
WA_DB2QXST_STR-QXCAUDRJ sy-vline
WA_DB2QXST_STR-GHITRATIO sy-vline
WA_DB2QXST_STR-LHITRATIO sy-vline
WA_DB2QXST_STR-REPREPRAT sy-vline
WA_DB2QXST_STR-PREPREQ sy-vline
WA_DB2QXST_STR-SHORTPREP sy-vline
WA_DB2QXST_STR-QXALTJR sy-vline
WA_DB2QXST_STR-QXMERGE sy-vline
WA_DB2QXST_STR-QXTRTBL sy-vline
WA_DB2QXST_STR-QXCRROL sy-vline
WA_DB2QXST_STR-QXDRPROL sy-vline
WA_DB2QXST_STR-QXCRCTX sy-vline
WA_DB2QXST_STR-QXALTCTX sy-vline
WA_DB2QXST_STR-QXDRPCTX sy-vline
WA_DB2QXST_STR-QXRNIX sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.