ABAP Select data from SAP table DB2QTHDDTL 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 DB2QTHDDTL 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 DB2QTHDDTL. 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 DB2QTHDDTL 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_DB2QTHDDTL TYPE STANDARD TABLE OF DB2QTHDDTL,
      WA_DB2QTHDDTL TYPE DB2QTHDDTL,
      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: <DB2QTHDDTL> TYPE DB2QTHDDTL.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM DB2QTHDDTL
*  INTO TABLE @DATA(IT_DB2QTHDDTL2).
*--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_DB2QTHDDTL INDEX 1 INTO DATA(WA_DB2QTHDDTL2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_DB2QTHDDTL ASSIGNING <DB2QTHDDTL>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<DB2QTHDDTL>-MEMBNM = 1.
<DB2QTHDDTL>-USERID = 1.
<DB2QTHDDTL>-ACE = 1.
<DB2QTHDDTL>-QXSELECT = 1.
<DB2QTHDDTL>-QXINSRT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_DB2QTHDDTL-QXUPDTE, sy-vline,
WA_DB2QTHDDTL-QXDELET, sy-vline,
WA_DB2QTHDDTL-QXDESC, sy-vline,
WA_DB2QTHDDTL-QXPREP, sy-vline,
WA_DB2QTHDDTL-QXOPEN, sy-vline,
WA_DB2QTHDDTL-QXCLOSE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_DB2QTHDDTL 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_DB2QTHDDTL 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_DB2QTHDDTL INTO WA_DB2QTHDDTL. *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_DB2QTHDDTL_STR,
MEMBNM TYPE STRING,
USERID TYPE STRING,
ACE TYPE STRING,
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,
QTXADEA TYPE STRING,
QTXASLOC TYPE STRING,
QTXATIM TYPE STRING,
QTXALES TYPE STRING,
QTXALEX TYPE STRING,
QTXAFLG1 TYPE STRING,
QTXARES1 TYPE STRING,
QTXARLID TYPE STRING,
QTXAPREC TYPE STRING,
QTXASLMT TYPE STRING,
QTXACLMT TYPE STRING,
QTXACHUS TYPE STRING,
QTXASLAT TYPE STRING,
QTXASOTH TYPE STRING,
QTXALOCK TYPE STRING,
QTXAUNLK TYPE STRING,
QTXAQRY TYPE STRING,
QTXACHG TYPE STRING,
QTXAIRLM TYPE STRING,
QTXACLNO TYPE STRING,
QTXACLUN TYPE STRING,
QTXADRNO TYPE STRING,
QTXADRUN TYPE STRING,
QTGALPLK TYPE STRING,
QTGAUPLK TYPE STRING,
QTGACPLK TYPE STRING,
QTGALSLM TYPE STRING,
QTGACSLM TYPE STRING,
QTGAUSLM TYPE STRING,
QTGAIGLO TYPE STRING,
QTGASGLO TYPE STRING,
QTGAFLSE TYPE STRING,
QTGADRTA TYPE STRING,
QTGANTFY TYPE STRING,
GCONTRATE TYPE STRING,
FCONTRATE TYPE STRING,
TLOPTRATE TYPE STRING,
STMTTYPE TYPE STRING,
RDIPROGN TYPE STRING,
RDISTNUM TYPE STRING,
DDISTNUM TYPE STRING,
QW0124ST TYPE STRING,
QW01242L TYPE STRING,
QW01242 TYPE STRING,
QW0148CI TYPE STRING,
QW0148ST TYPE STRING,END OF T_EKKO_STR. DATA: WA_DB2QTHDDTL_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_DB2QTHDDTL_STR-MEMBNM sy-vline
WA_DB2QTHDDTL_STR-USERID sy-vline
WA_DB2QTHDDTL_STR-ACE sy-vline
WA_DB2QTHDDTL_STR-QXSELECT sy-vline
WA_DB2QTHDDTL_STR-QXINSRT sy-vline
WA_DB2QTHDDTL_STR-QXUPDTE sy-vline
WA_DB2QTHDDTL_STR-QXDELET sy-vline
WA_DB2QTHDDTL_STR-QXDESC sy-vline
WA_DB2QTHDDTL_STR-QXPREP sy-vline
WA_DB2QTHDDTL_STR-QXOPEN sy-vline
WA_DB2QTHDDTL_STR-QXCLOSE sy-vline
WA_DB2QTHDDTL_STR-QXCRTAB sy-vline
WA_DB2QTHDDTL_STR-QXCRINX sy-vline
WA_DB2QTHDDTL_STR-QXCTABS sy-vline
WA_DB2QTHDDTL_STR-QXCRSYN sy-vline
WA_DB2QTHDDTL_STR-QXCRDAB sy-vline
WA_DB2QTHDDTL_STR-QXCRSTG sy-vline
WA_DB2QTHDDTL_STR-QXDEFVU sy-vline
WA_DB2QTHDDTL_STR-QXDRPIX sy-vline
WA_DB2QTHDDTL_STR-QXDRPTA sy-vline
WA_DB2QTHDDTL_STR-QXDRPTS sy-vline
WA_DB2QTHDDTL_STR-QXDRPDB sy-vline
WA_DB2QTHDDTL_STR-QXDRPSY sy-vline
WA_DB2QTHDDTL_STR-QXDRPST sy-vline
WA_DB2QTHDDTL_STR-QXDRPVU sy-vline
WA_DB2QTHDDTL_STR-QXALTST sy-vline
WA_DB2QTHDDTL_STR-QXFETCH sy-vline
WA_DB2QTHDDTL_STR-QXALTTS sy-vline
WA_DB2QTHDDTL_STR-QXALTTA sy-vline
WA_DB2QTHDDTL_STR-QXALTIX sy-vline
WA_DB2QTHDDTL_STR-QXCMTON sy-vline
WA_DB2QTHDDTL_STR-QXLOCK sy-vline
WA_DB2QTHDDTL_STR-QXGRANT sy-vline
WA_DB2QTHDDTL_STR-QXREVOK sy-vline
WA_DB2QTHDDTL_STR-QXINCRB sy-vline
WA_DB2QTHDDTL_STR-QXLABON sy-vline
WA_DB2QTHDDTL_STR-QXSETSQL sy-vline
WA_DB2QTHDDTL_STR-QXCRALS sy-vline
WA_DB2QTHDDTL_STR-QXDRPAL sy-vline
WA_DB2QTHDDTL_STR-QXMIAP sy-vline
WA_DB2QTHDDTL_STR-QXNSMIAP sy-vline
WA_DB2QTHDDTL_STR-QXMRMIAP sy-vline
WA_DB2QTHDDTL_STR-QXSETHV sy-vline
WA_DB2QTHDDTL_STR-QXALDAB sy-vline
WA_DB2QTHDDTL_STR-QXDRPPKG sy-vline
WA_DB2QTHDDTL_STR-QXDSCRTB sy-vline
WA_DB2QTHDDTL_STR-QXMAXDEG sy-vline
WA_DB2QTHDDTL_STR-QXTOTGRP sy-vline
WA_DB2QTHDDTL_STR-QXDEGCUR sy-vline
WA_DB2QTHDDTL_STR-QXDEGESA sy-vline
WA_DB2QTHDDTL_STR-QXDEGBUF sy-vline
WA_DB2QTHDDTL_STR-QXREDGRP sy-vline
WA_DB2QTHDDTL_STR-QXNORGRP sy-vline
WA_DB2QTHDDTL_STR-QXCON1 sy-vline
WA_DB2QTHDDTL_STR-QXCON2 sy-vline
WA_DB2QTHDDTL_STR-QXREL sy-vline
WA_DB2QTHDDTL_STR-QXSETCON sy-vline
WA_DB2QTHDDTL_STR-QXSETCDG sy-vline
WA_DB2QTHDDTL_STR-QXSETCRL sy-vline
WA_DB2QTHDDTL_STR-QXCALL sy-vline
WA_DB2QTHDDTL_STR-QXCALLAB sy-vline
WA_DB2QTHDDTL_STR-QXCALLTO sy-vline
WA_DB2QTHDDTL_STR-QXCALLRJ sy-vline
WA_DB2QTHDDTL_STR-QXDEGENC sy-vline
WA_DB2QTHDDTL_STR-QXRLFDPA sy-vline
WA_DB2QTHDDTL_STR-QXSTRES1 sy-vline
WA_DB2QTHDDTL_STR-QXCOORNO sy-vline
WA_DB2QTHDDTL_STR-QXISORR sy-vline
WA_DB2QTHDDTL_STR-QXCRGTT sy-vline
WA_DB2QTHDDTL_STR-QXSTREOP sy-vline
WA_DB2QTHDDTL_STR-QXXCBPNX sy-vline
WA_DB2QTHDDTL_STR-QXXCSKIP sy-vline
WA_DB2QTHDDTL_STR-QXALOCL sy-vline
WA_DB2QTHDDTL_STR-QXALOCC sy-vline
WA_DB2QTHDDTL_STR-QXSTFND sy-vline
WA_DB2QTHDDTL_STR-QXSTNFND sy-vline
WA_DB2QTHDDTL_STR-QXSTIPRP sy-vline
WA_DB2QTHDDTL_STR-QXSTNPRP sy-vline
WA_DB2QTHDDTL_STR-QXSTDEXP sy-vline
WA_DB2QTHDDTL_STR-QXSTDINV sy-vline
WA_DB2QTHDDTL_STR-QXRNTAB sy-vline
WA_DB2QTHDDTL_STR-QXFULLP sy-vline
WA_DB2QTHDDTL_STR-QXCTRIG sy-vline
WA_DB2QTHDDTL_STR-QXDRPTR sy-vline
WA_DB2QTHDDTL_STR-QXSETPTH sy-vline
WA_DB2QTHDDTL_STR-QXDRPFN sy-vline
WA_DB2QTHDDTL_STR-QXDRPPR sy-vline
WA_DB2QTHDDTL_STR-QXCDIST sy-vline
WA_DB2QTHDDTL_STR-QXDDIST sy-vline
WA_DB2QTHDDTL_STR-QXCRUDF sy-vline
WA_DB2QTHDDTL_STR-QXCRPRO sy-vline
WA_DB2QTHDDTL_STR-QXHOLDL sy-vline
WA_DB2QTHDDTL_STR-QXFREEL sy-vline
WA_DB2QTHDDTL_STR-QXREPOP1 sy-vline
WA_DB2QTHDDTL_STR-QXREPOP2 sy-vline
WA_DB2QTHDDTL_STR-QXCRATB sy-vline
WA_DB2QTHDDTL_STR-QXSTLOBV sy-vline
WA_DB2QTHDDTL_STR-QXALUDF sy-vline
WA_DB2QTHDDTL_STR-QXALPRO sy-vline
WA_DB2QTHDDTL_STR-QXROIMAT sy-vline
WA_DB2QTHDDTL_STR-QXROIIDX sy-vline
WA_DB2QTHDDTL_STR-QXROITS sy-vline
WA_DB2QTHDDTL_STR-QXSTTRG sy-vline
WA_DB2QTHDDTL_STR-QXROWTRG sy-vline
WA_DB2QTHDDTL_STR-QXTRGERR sy-vline
WA_DB2QTHDDTL_STR-QXCASCDP sy-vline
WA_DB2QTHDDTL_STR-QXCAUD sy-vline
WA_DB2QTHDDTL_STR-QXCAUDAB sy-vline
WA_DB2QTHDDTL_STR-QXCAUDTO sy-vline
WA_DB2QTHDDTL_STR-QXCAUDRJ sy-vline
WA_DB2QTHDDTL_STR-GHITRATIO sy-vline
WA_DB2QTHDDTL_STR-LHITRATIO sy-vline
WA_DB2QTHDDTL_STR-REPREPRAT sy-vline
WA_DB2QTHDDTL_STR-PREPREQ sy-vline
WA_DB2QTHDDTL_STR-SHORTPREP sy-vline
WA_DB2QTHDDTL_STR-QXALTJR sy-vline
WA_DB2QTHDDTL_STR-QXMERGE sy-vline
WA_DB2QTHDDTL_STR-QXTRTBL sy-vline
WA_DB2QTHDDTL_STR-QXCRROL sy-vline
WA_DB2QTHDDTL_STR-QXDRPROL sy-vline
WA_DB2QTHDDTL_STR-QXCRCTX sy-vline
WA_DB2QTHDDTL_STR-QXALTCTX sy-vline
WA_DB2QTHDDTL_STR-QXDRPCTX sy-vline
WA_DB2QTHDDTL_STR-QXRNIX sy-vline
WA_DB2QTHDDTL_STR-QTXADEA sy-vline
WA_DB2QTHDDTL_STR-QTXASLOC sy-vline
WA_DB2QTHDDTL_STR-QTXATIM sy-vline
WA_DB2QTHDDTL_STR-QTXALES sy-vline
WA_DB2QTHDDTL_STR-QTXALEX sy-vline
WA_DB2QTHDDTL_STR-QTXAFLG1 sy-vline
WA_DB2QTHDDTL_STR-QTXARES1 sy-vline
WA_DB2QTHDDTL_STR-QTXARLID sy-vline
WA_DB2QTHDDTL_STR-QTXAPREC sy-vline
WA_DB2QTHDDTL_STR-QTXASLMT sy-vline
WA_DB2QTHDDTL_STR-QTXACLMT sy-vline
WA_DB2QTHDDTL_STR-QTXACHUS sy-vline
WA_DB2QTHDDTL_STR-QTXASLAT sy-vline
WA_DB2QTHDDTL_STR-QTXASOTH sy-vline
WA_DB2QTHDDTL_STR-QTXALOCK sy-vline
WA_DB2QTHDDTL_STR-QTXAUNLK sy-vline
WA_DB2QTHDDTL_STR-QTXAQRY sy-vline
WA_DB2QTHDDTL_STR-QTXACHG sy-vline
WA_DB2QTHDDTL_STR-QTXAIRLM sy-vline
WA_DB2QTHDDTL_STR-QTXACLNO sy-vline
WA_DB2QTHDDTL_STR-QTXACLUN sy-vline
WA_DB2QTHDDTL_STR-QTXADRNO sy-vline
WA_DB2QTHDDTL_STR-QTXADRUN sy-vline
WA_DB2QTHDDTL_STR-QTGALPLK sy-vline
WA_DB2QTHDDTL_STR-QTGAUPLK sy-vline
WA_DB2QTHDDTL_STR-QTGACPLK sy-vline
WA_DB2QTHDDTL_STR-QTGALSLM sy-vline
WA_DB2QTHDDTL_STR-QTGACSLM sy-vline
WA_DB2QTHDDTL_STR-QTGAUSLM sy-vline
WA_DB2QTHDDTL_STR-QTGAIGLO sy-vline
WA_DB2QTHDDTL_STR-QTGASGLO sy-vline
WA_DB2QTHDDTL_STR-QTGAFLSE sy-vline
WA_DB2QTHDDTL_STR-QTGADRTA sy-vline
WA_DB2QTHDDTL_STR-QTGANTFY sy-vline
WA_DB2QTHDDTL_STR-GCONTRATE sy-vline
WA_DB2QTHDDTL_STR-FCONTRATE sy-vline
WA_DB2QTHDDTL_STR-TLOPTRATE sy-vline
WA_DB2QTHDDTL_STR-STMTTYPE sy-vline
WA_DB2QTHDDTL_STR-RDIPROGN sy-vline
WA_DB2QTHDDTL_STR-RDISTNUM sy-vline
WA_DB2QTHDDTL_STR-DDISTNUM sy-vline
WA_DB2QTHDDTL_STR-QW0124ST sy-vline
WA_DB2QTHDDTL_STR-QW01242L sy-vline
WA_DB2QTHDDTL_STR-QW01242 sy-vline
WA_DB2QTHDDTL_STR-QW0148CI sy-vline
WA_DB2QTHDDTL_STR-QW0148ST sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.