ABAP Select data from SAP table Q3671 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 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. 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 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 TYPE STANDARD TABLE OF Q3671,
      WA_Q3671 TYPE Q3671,
      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> TYPE Q3671.

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

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

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


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_Q3671 ASSIGNING <Q3671>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<Q3671>-BSTRA = 1.
<Q3671>-BPLZ0 = 1.
<Q3671>-BORT0 = 1.
<Q3671>-BLAND1 = 1.
<Q3671>-STRAS = 1.
ENDLOOP.

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

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