ABAP Select data from SAP table DB2QDSCCONT 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 DB2QDSCCONT 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 DB2QDSCCONT. 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 DB2QDSCCONT 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_DB2QDSCCONT TYPE STANDARD TABLE OF DB2QDSCCONT,
      WA_DB2QDSCCONT TYPE DB2QDSCCONT,
      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: <DB2QDSCCONT> TYPE DB2QDSCCONT.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM DB2QDSCCONT
*  INTO TABLE @DATA(IT_DB2QDSCCONT2).
*--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_DB2QDSCCONT INDEX 1 INTO DATA(WA_DB2QDSCCONT2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_DB2QDSCCONT ASSIGNING <DB2QDSCCONT>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<DB2QDSCCONT>-QSTCSTNM = 1.
<DB2QDSCCONT>-QSTCUSE = 1.
<DB2QDSCCONT>-QSTCCOPY = 1.
<DB2QDSCCONT>-QSTCSTAT = 1.
<DB2QDSCCONT>-QSTCISTM = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_DB2QDSCCONT-QSTCEXEC, sy-vline,
WA_DB2QDSCCONT-QSTCRBUF, sy-vline,
WA_DB2QDSCCONT-QSTCGPAG, sy-vline,
WA_DB2QDSCCONT-DSTCGPAG, sy-vline,
WA_DB2QDSCCONT-QSTCEROW, sy-vline,
WA_DB2QDSCCONT-DSTCEROW, sy-vline.
ENDLOOP. *Add any further fields from structure WA_DB2QDSCCONT 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_DB2QDSCCONT 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_DB2QDSCCONT INTO WA_DB2QDSCCONT. *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_DB2QDSCCONT_STR,
QSTCSTNM TYPE STRING,
QSTCUSE TYPE STRING,
QSTCCOPY TYPE STRING,
QSTCSTAT TYPE STRING,
QSTCISTM TYPE STRING,
QSTCEXEC TYPE STRING,
QSTCRBUF TYPE STRING,
QSTCGPAG TYPE STRING,
DSTCGPAG TYPE STRING,
QSTCEROW TYPE STRING,
DSTCEROW TYPE STRING,
QSTCPROW TYPE STRING,
DSTCPROW TYPE STRING,
QSTCSORT TYPE STRING,
QSTCINDX TYPE STRING,
QSTCTSCN TYPE STRING,
QSTCPLGP TYPE STRING,
QSTCWRIT TYPE STRING,
QSTCAET TYPE STRING,
QSTCSTLN TYPE STRING,
QSTCSTMT TYPE STRING,
QW0316L1 TYPE STRING,
QW0316T1 TYPE STRING,
QW0316LX TYPE STRING,
QW0316L2 TYPE STRING,
QW0316T2 TYPE STRING,
QW0316L3 TYPE STRING,
QW0316T3 TYPE STRING,
QW0316X4 TYPE STRING,
QW0316X5 TYPE STRING,
QW0316X6 TYPE STRING,
QW0316X7T TYPE STRING,
QW0316X8T TYPE STRING,
QW0316X9T TYPE STRING,
QW0316XAT TYPE STRING,
QW0316XBT TYPE STRING,
QW0316XCT TYPE STRING,
QW0316TS TYPE STRING,
QW0316CT TYPE STRING,
QW0316W1 TYPE STRING,
QW0316W2 TYPE STRING,
QW0316W3 TYPE STRING,
QW0316W4 TYPE STRING,
QW0316W5 TYPE STRING,
QW0316W6 TYPE STRING,
QW0316RT TYPE STRING,
QW0316RS TYPE STRING,
QW0316UI TYPE STRING,
QW0316TD TYPE STRING,
BIND_RA_TOT TYPE STRING,
BIND_RO_TYPE TYPE STRING,
QW0317NM TYPE STRING,
QW0317ID TYPE STRING,
QW0317LN TYPE STRING,
QW0317TX TYPE STRING,
QW03172LN TYPE STRING,
QW03172TX TYPE STRING,END OF T_EKKO_STR. DATA: WA_DB2QDSCCONT_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_DB2QDSCCONT_STR-QSTCSTNM sy-vline
WA_DB2QDSCCONT_STR-QSTCUSE sy-vline
WA_DB2QDSCCONT_STR-QSTCCOPY sy-vline
WA_DB2QDSCCONT_STR-QSTCSTAT sy-vline
WA_DB2QDSCCONT_STR-QSTCISTM sy-vline
WA_DB2QDSCCONT_STR-QSTCEXEC sy-vline
WA_DB2QDSCCONT_STR-QSTCRBUF sy-vline
WA_DB2QDSCCONT_STR-QSTCGPAG sy-vline
WA_DB2QDSCCONT_STR-DSTCGPAG sy-vline
WA_DB2QDSCCONT_STR-QSTCEROW sy-vline
WA_DB2QDSCCONT_STR-DSTCEROW sy-vline
WA_DB2QDSCCONT_STR-QSTCPROW sy-vline
WA_DB2QDSCCONT_STR-DSTCPROW sy-vline
WA_DB2QDSCCONT_STR-QSTCSORT sy-vline
WA_DB2QDSCCONT_STR-QSTCINDX sy-vline
WA_DB2QDSCCONT_STR-QSTCTSCN sy-vline
WA_DB2QDSCCONT_STR-QSTCPLGP sy-vline
WA_DB2QDSCCONT_STR-QSTCWRIT sy-vline
WA_DB2QDSCCONT_STR-QSTCAET sy-vline
WA_DB2QDSCCONT_STR-QSTCSTLN sy-vline
WA_DB2QDSCCONT_STR-QSTCSTMT sy-vline
WA_DB2QDSCCONT_STR-QW0316L1 sy-vline
WA_DB2QDSCCONT_STR-QW0316T1 sy-vline
WA_DB2QDSCCONT_STR-QW0316LX sy-vline
WA_DB2QDSCCONT_STR-QW0316L2 sy-vline
WA_DB2QDSCCONT_STR-QW0316T2 sy-vline
WA_DB2QDSCCONT_STR-QW0316L3 sy-vline
WA_DB2QDSCCONT_STR-QW0316T3 sy-vline
WA_DB2QDSCCONT_STR-QW0316X4 sy-vline
WA_DB2QDSCCONT_STR-QW0316X5 sy-vline
WA_DB2QDSCCONT_STR-QW0316X6 sy-vline
WA_DB2QDSCCONT_STR-QW0316X7T sy-vline
WA_DB2QDSCCONT_STR-QW0316X8T sy-vline
WA_DB2QDSCCONT_STR-QW0316X9T sy-vline
WA_DB2QDSCCONT_STR-QW0316XAT sy-vline
WA_DB2QDSCCONT_STR-QW0316XBT sy-vline
WA_DB2QDSCCONT_STR-QW0316XCT sy-vline
WA_DB2QDSCCONT_STR-QW0316TS sy-vline
WA_DB2QDSCCONT_STR-QW0316CT sy-vline
WA_DB2QDSCCONT_STR-QW0316W1 sy-vline
WA_DB2QDSCCONT_STR-QW0316W2 sy-vline
WA_DB2QDSCCONT_STR-QW0316W3 sy-vline
WA_DB2QDSCCONT_STR-QW0316W4 sy-vline
WA_DB2QDSCCONT_STR-QW0316W5 sy-vline
WA_DB2QDSCCONT_STR-QW0316W6 sy-vline
WA_DB2QDSCCONT_STR-QW0316RT sy-vline
WA_DB2QDSCCONT_STR-QW0316RS sy-vline
WA_DB2QDSCCONT_STR-QW0316UI sy-vline
WA_DB2QDSCCONT_STR-QW0316TD sy-vline
WA_DB2QDSCCONT_STR-BIND_RA_TOT sy-vline
WA_DB2QDSCCONT_STR-BIND_RO_TYPE sy-vline
WA_DB2QDSCCONT_STR-QW0317NM sy-vline
WA_DB2QDSCCONT_STR-QW0317ID sy-vline
WA_DB2QDSCCONT_STR-QW0317LN sy-vline
WA_DB2QDSCCONT_STR-QW0317TX sy-vline
WA_DB2QDSCCONT_STR-QW03172LN sy-vline
WA_DB2QDSCCONT_STR-QW03172TX sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.