ABAP Select data from SAP table Q3671_IN_DB 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 Q3671_IN_DB 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 Q3671_IN_DB. 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 Q3671_IN_DB 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_Q3671_IN_DB TYPE STANDARD TABLE OF Q3671_IN_DB,
      WA_Q3671_IN_DB TYPE Q3671_IN_DB,
      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: <Q3671_IN_DB> TYPE Q3671_IN_DB.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM Q3671_IN_DB
*  INTO TABLE @DATA(IT_Q3671_IN_DB2).
*--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_Q3671_IN_DB INDEX 1 INTO DATA(WA_Q3671_IN_DB2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_Q3671_IN_DB ASSIGNING <Q3671_IN_DB>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<Q3671_IN_DB>-PERNRPSK = 1.
<Q3671_IN_DB>-INFTYPSK = 1.
<Q3671_IN_DB>-SUBTYPSK = 1.
<Q3671_IN_DB>-OBJPSPSK = 1.
<Q3671_IN_DB>-SPRPSPSK = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_Q3671_IN_DB-ENDDAPSK, sy-vline,
WA_Q3671_IN_DB-BEGDAPSK, sy-vline,
WA_Q3671_IN_DB-SEQNRPSK, sy-vline,
WA_Q3671_IN_DB-DGNA1, sy-vline,
WA_Q3671_IN_DB-BKNR1, sy-vline,
WA_Q3671_IN_DB-DGREFO1, sy-vline.
ENDLOOP. *Add any further fields from structure WA_Q3671_IN_DB 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_Q3671_IN_DB 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_Q3671_IN_DB INTO WA_Q3671_IN_DB. *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_Q3671_IN_DB_STR,
PERNRPSK TYPE STRING,
INFTYPSK TYPE STRING,
SUBTYPSK TYPE STRING,
OBJPSPSK TYPE STRING,
SPRPSPSK TYPE STRING,
ENDDAPSK TYPE STRING,
BEGDAPSK TYPE STRING,
SEQNRPSK TYPE STRING,
DGNA1 TYPE STRING,
BKNR1 TYPE STRING,
DGREFO1 TYPE STRING,
DGFBNR1 TYPE STRING,
DGSTR1 TYPE STRING,
DGLAND11 TYPE STRING,
DGPLZ1 TYPE STRING,
DGORT1 TYPE STRING,
DGTEL1 TYPE STRING,
DGMAIL1 TYPE STRING,
DGWS1 TYPE STRING,
DGNA2 TYPE STRING,
BKNR2 TYPE STRING,
DGREFO2 TYPE STRING,
DGFBNR2 TYPE STRING,
DGSTR2 TYPE STRING,
DGLAND12 TYPE STRING,
DGPLZ2 TYPE STRING,
DGORT2 TYPE STRING,
DGTEL2 TYPE STRING,
DGMAIL2 TYPE STRING,
DGWS2 TYPE STRING,
DGNA3 TYPE STRING,
BKNR3 TYPE STRING,
DGREFO3 TYPE STRING,
DGFBNR3 TYPE STRING,
DGSTR3 TYPE STRING,
DGLAND13 TYPE STRING,
DGPLZ3 TYPE STRING,
DGORT3 TYPE STRING,
DGTEL3 TYPE STRING,
DGMAIL3 TYPE STRING,
DGWS3 TYPE STRING,
DGNA4 TYPE STRING,
BKNR4 TYPE STRING,
DGREFO4 TYPE STRING,
DGFBNR4 TYPE STRING,
DGSTR4 TYPE STRING,
DGLAND14 TYPE STRING,
DGPLZ4 TYPE STRING,
DGORT4 TYPE STRING,
DGTEL4 TYPE STRING,
DGMAIL4 TYPE STRING,
DGWS4 TYPE STRING,
DGNA5 TYPE STRING,
BKNR5 TYPE STRING,
DGREFO5 TYPE STRING,
DGFBNR5 TYPE STRING,
DGSTR5 TYPE STRING,
DGLAND15 TYPE STRING,
DGPLZ5 TYPE STRING,
DGORT5 TYPE STRING,
DGTEL5 TYPE STRING,
DGMAIL5 TYPE STRING,
DGWS5 TYPE STRING,
MOLGASA1 TYPE STRING,
ANKEYSA1 TYPE STRING,
ANARTSA1 TYPE STRING,
STAB1 TYPE STRING,
STLAND11 TYPE STRING,
STJOB1 TYPE STRING,
STBLAND11 TYPE STRING,
STBEG1 TYPE STRING,
STEND1 TYPE STRING,
STREFO1 TYPE STRING,
STFNA1 TYPE STRING,
STSTR1 TYPE STRING,
STPLZ1 TYPE STRING,
STORT1 TYPE STRING,
STTEL1 TYPE STRING,
STMAIL1 TYPE STRING,
STSL1 TYPE STRING,
STBLAND1 TYPE STRING,
MOLGASA2 TYPE STRING,
ANKEYSA2 TYPE STRING,
ANARTSA2 TYPE STRING,
STAB2 TYPE STRING,
STLAND12 TYPE STRING,
STJOB2 TYPE STRING,
STBLAND12 TYPE STRING,
STBEG2 TYPE STRING,
STEND2 TYPE STRING,
STREFO2 TYPE STRING,
STFNA2 TYPE STRING,
STSTR2 TYPE STRING,
STPLZ2 TYPE STRING,
STORT2 TYPE STRING,
STTEL2 TYPE STRING,
STMAIL2 TYPE STRING,
STSL2 TYPE STRING,
STBLAND2 TYPE STRING,
MOLGASA3 TYPE STRING,
ANKEYSA3 TYPE STRING,
ANARTSA3 TYPE STRING,
STAB3 TYPE STRING,
STLAND13 TYPE STRING,
STJOB3 TYPE STRING,
STBLAND13 TYPE STRING,
STBEG3 TYPE STRING,
STEND3 TYPE STRING,
STREFO3 TYPE STRING,
STFNA3 TYPE STRING,
STSTR3 TYPE STRING,
STPLZ3 TYPE STRING,
STORT3 TYPE STRING,
STTEL3 TYPE STRING,
STMAIL3 TYPE STRING,
STSL3 TYPE STRING,
STBLAND3 TYPE STRING,
BART1 TYPE STRING,
ANKZ1 TYPE STRING,
STAATHB1 TYPE STRING,
BART2 TYPE STRING,
ANKZ2 TYPE STRING,
STAATHB2 TYPE STRING,
BART3 TYPE STRING,
ANKZ3 TYPE STRING,
STAATHB3 TYPE STRING,
BART4 TYPE STRING,
ANKZ4 TYPE STRING,
STAATHB4 TYPE STRING,
BART5 TYPE STRING,
ANKZ5 TYPE STRING,
STAATHB5 TYPE STRING,
REFN0DUP TYPE STRING,
REFU0DUP TYPE STRING,
MART0DUP TYPE STRING,
WTEL0 TYPE STRING,END OF T_EKKO_STR. DATA: WA_Q3671_IN_DB_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_Q3671_IN_DB_STR-PERNRPSK sy-vline
WA_Q3671_IN_DB_STR-INFTYPSK sy-vline
WA_Q3671_IN_DB_STR-SUBTYPSK sy-vline
WA_Q3671_IN_DB_STR-OBJPSPSK sy-vline
WA_Q3671_IN_DB_STR-SPRPSPSK sy-vline
WA_Q3671_IN_DB_STR-ENDDAPSK sy-vline
WA_Q3671_IN_DB_STR-BEGDAPSK sy-vline
WA_Q3671_IN_DB_STR-SEQNRPSK sy-vline
WA_Q3671_IN_DB_STR-DGNA1 sy-vline
WA_Q3671_IN_DB_STR-BKNR1 sy-vline
WA_Q3671_IN_DB_STR-DGREFO1 sy-vline
WA_Q3671_IN_DB_STR-DGFBNR1 sy-vline
WA_Q3671_IN_DB_STR-DGSTR1 sy-vline
WA_Q3671_IN_DB_STR-DGLAND11 sy-vline
WA_Q3671_IN_DB_STR-DGPLZ1 sy-vline
WA_Q3671_IN_DB_STR-DGORT1 sy-vline
WA_Q3671_IN_DB_STR-DGTEL1 sy-vline
WA_Q3671_IN_DB_STR-DGMAIL1 sy-vline
WA_Q3671_IN_DB_STR-DGWS1 sy-vline
WA_Q3671_IN_DB_STR-DGNA2 sy-vline
WA_Q3671_IN_DB_STR-BKNR2 sy-vline
WA_Q3671_IN_DB_STR-DGREFO2 sy-vline
WA_Q3671_IN_DB_STR-DGFBNR2 sy-vline
WA_Q3671_IN_DB_STR-DGSTR2 sy-vline
WA_Q3671_IN_DB_STR-DGLAND12 sy-vline
WA_Q3671_IN_DB_STR-DGPLZ2 sy-vline
WA_Q3671_IN_DB_STR-DGORT2 sy-vline
WA_Q3671_IN_DB_STR-DGTEL2 sy-vline
WA_Q3671_IN_DB_STR-DGMAIL2 sy-vline
WA_Q3671_IN_DB_STR-DGWS2 sy-vline
WA_Q3671_IN_DB_STR-DGNA3 sy-vline
WA_Q3671_IN_DB_STR-BKNR3 sy-vline
WA_Q3671_IN_DB_STR-DGREFO3 sy-vline
WA_Q3671_IN_DB_STR-DGFBNR3 sy-vline
WA_Q3671_IN_DB_STR-DGSTR3 sy-vline
WA_Q3671_IN_DB_STR-DGLAND13 sy-vline
WA_Q3671_IN_DB_STR-DGPLZ3 sy-vline
WA_Q3671_IN_DB_STR-DGORT3 sy-vline
WA_Q3671_IN_DB_STR-DGTEL3 sy-vline
WA_Q3671_IN_DB_STR-DGMAIL3 sy-vline
WA_Q3671_IN_DB_STR-DGWS3 sy-vline
WA_Q3671_IN_DB_STR-DGNA4 sy-vline
WA_Q3671_IN_DB_STR-BKNR4 sy-vline
WA_Q3671_IN_DB_STR-DGREFO4 sy-vline
WA_Q3671_IN_DB_STR-DGFBNR4 sy-vline
WA_Q3671_IN_DB_STR-DGSTR4 sy-vline
WA_Q3671_IN_DB_STR-DGLAND14 sy-vline
WA_Q3671_IN_DB_STR-DGPLZ4 sy-vline
WA_Q3671_IN_DB_STR-DGORT4 sy-vline
WA_Q3671_IN_DB_STR-DGTEL4 sy-vline
WA_Q3671_IN_DB_STR-DGMAIL4 sy-vline
WA_Q3671_IN_DB_STR-DGWS4 sy-vline
WA_Q3671_IN_DB_STR-DGNA5 sy-vline
WA_Q3671_IN_DB_STR-BKNR5 sy-vline
WA_Q3671_IN_DB_STR-DGREFO5 sy-vline
WA_Q3671_IN_DB_STR-DGFBNR5 sy-vline
WA_Q3671_IN_DB_STR-DGSTR5 sy-vline
WA_Q3671_IN_DB_STR-DGLAND15 sy-vline
WA_Q3671_IN_DB_STR-DGPLZ5 sy-vline
WA_Q3671_IN_DB_STR-DGORT5 sy-vline
WA_Q3671_IN_DB_STR-DGTEL5 sy-vline
WA_Q3671_IN_DB_STR-DGMAIL5 sy-vline
WA_Q3671_IN_DB_STR-DGWS5 sy-vline
WA_Q3671_IN_DB_STR-MOLGASA1 sy-vline
WA_Q3671_IN_DB_STR-ANKEYSA1 sy-vline
WA_Q3671_IN_DB_STR-ANARTSA1 sy-vline
WA_Q3671_IN_DB_STR-STAB1 sy-vline
WA_Q3671_IN_DB_STR-STLAND11 sy-vline
WA_Q3671_IN_DB_STR-STJOB1 sy-vline
WA_Q3671_IN_DB_STR-STBLAND11 sy-vline
WA_Q3671_IN_DB_STR-STBEG1 sy-vline
WA_Q3671_IN_DB_STR-STEND1 sy-vline
WA_Q3671_IN_DB_STR-STREFO1 sy-vline
WA_Q3671_IN_DB_STR-STFNA1 sy-vline
WA_Q3671_IN_DB_STR-STSTR1 sy-vline
WA_Q3671_IN_DB_STR-STPLZ1 sy-vline
WA_Q3671_IN_DB_STR-STORT1 sy-vline
WA_Q3671_IN_DB_STR-STTEL1 sy-vline
WA_Q3671_IN_DB_STR-STMAIL1 sy-vline
WA_Q3671_IN_DB_STR-STSL1 sy-vline
WA_Q3671_IN_DB_STR-STBLAND1 sy-vline
WA_Q3671_IN_DB_STR-MOLGASA2 sy-vline
WA_Q3671_IN_DB_STR-ANKEYSA2 sy-vline
WA_Q3671_IN_DB_STR-ANARTSA2 sy-vline
WA_Q3671_IN_DB_STR-STAB2 sy-vline
WA_Q3671_IN_DB_STR-STLAND12 sy-vline
WA_Q3671_IN_DB_STR-STJOB2 sy-vline
WA_Q3671_IN_DB_STR-STBLAND12 sy-vline
WA_Q3671_IN_DB_STR-STBEG2 sy-vline
WA_Q3671_IN_DB_STR-STEND2 sy-vline
WA_Q3671_IN_DB_STR-STREFO2 sy-vline
WA_Q3671_IN_DB_STR-STFNA2 sy-vline
WA_Q3671_IN_DB_STR-STSTR2 sy-vline
WA_Q3671_IN_DB_STR-STPLZ2 sy-vline
WA_Q3671_IN_DB_STR-STORT2 sy-vline
WA_Q3671_IN_DB_STR-STTEL2 sy-vline
WA_Q3671_IN_DB_STR-STMAIL2 sy-vline
WA_Q3671_IN_DB_STR-STSL2 sy-vline
WA_Q3671_IN_DB_STR-STBLAND2 sy-vline
WA_Q3671_IN_DB_STR-MOLGASA3 sy-vline
WA_Q3671_IN_DB_STR-ANKEYSA3 sy-vline
WA_Q3671_IN_DB_STR-ANARTSA3 sy-vline
WA_Q3671_IN_DB_STR-STAB3 sy-vline
WA_Q3671_IN_DB_STR-STLAND13 sy-vline
WA_Q3671_IN_DB_STR-STJOB3 sy-vline
WA_Q3671_IN_DB_STR-STBLAND13 sy-vline
WA_Q3671_IN_DB_STR-STBEG3 sy-vline
WA_Q3671_IN_DB_STR-STEND3 sy-vline
WA_Q3671_IN_DB_STR-STREFO3 sy-vline
WA_Q3671_IN_DB_STR-STFNA3 sy-vline
WA_Q3671_IN_DB_STR-STSTR3 sy-vline
WA_Q3671_IN_DB_STR-STPLZ3 sy-vline
WA_Q3671_IN_DB_STR-STORT3 sy-vline
WA_Q3671_IN_DB_STR-STTEL3 sy-vline
WA_Q3671_IN_DB_STR-STMAIL3 sy-vline
WA_Q3671_IN_DB_STR-STSL3 sy-vline
WA_Q3671_IN_DB_STR-STBLAND3 sy-vline
WA_Q3671_IN_DB_STR-BART1 sy-vline
WA_Q3671_IN_DB_STR-ANKZ1 sy-vline
WA_Q3671_IN_DB_STR-STAATHB1 sy-vline
WA_Q3671_IN_DB_STR-BART2 sy-vline
WA_Q3671_IN_DB_STR-ANKZ2 sy-vline
WA_Q3671_IN_DB_STR-STAATHB2 sy-vline
WA_Q3671_IN_DB_STR-BART3 sy-vline
WA_Q3671_IN_DB_STR-ANKZ3 sy-vline
WA_Q3671_IN_DB_STR-STAATHB3 sy-vline
WA_Q3671_IN_DB_STR-BART4 sy-vline
WA_Q3671_IN_DB_STR-ANKZ4 sy-vline
WA_Q3671_IN_DB_STR-STAATHB4 sy-vline
WA_Q3671_IN_DB_STR-BART5 sy-vline
WA_Q3671_IN_DB_STR-ANKZ5 sy-vline
WA_Q3671_IN_DB_STR-STAATHB5 sy-vline
WA_Q3671_IN_DB_STR-REFN0DUP sy-vline
WA_Q3671_IN_DB_STR-REFU0DUP sy-vline
WA_Q3671_IN_DB_STR-MART0DUP sy-vline
WA_Q3671_IN_DB_STR-WTEL0 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.