ABAP Select data from SAP table P3405 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 P3405 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 P3405. 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 P3405 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_P3405 TYPE STANDARD TABLE OF P3405,
      WA_P3405 TYPE P3405,
      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: <P3405> TYPE P3405.

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

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

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


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_P3405 ASSIGNING <P3405>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<P3405>-PERNR = 1.
<P3405>-INFTY = 1.
<P3405>-SUBTY = 1.
<P3405>-OBJPS = 1.
<P3405>-SPRPS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_P3405-ENDDA, sy-vline,
WA_P3405-BEGDA, sy-vline,
WA_P3405-SEQNR, sy-vline,
WA_P3405-AEDTM, sy-vline,
WA_P3405-UNAME, sy-vline,
WA_P3405-HISTO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P3405 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_P3405 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_P3405 INTO WA_P3405. *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_P3405_STR,
PERNR TYPE STRING,
INFTY TYPE STRING,
SUBTY TYPE STRING,
OBJPS TYPE STRING,
SPRPS TYPE STRING,
ENDDA TYPE STRING,
BEGDA TYPE STRING,
SEQNR TYPE STRING,
AEDTM TYPE STRING,
UNAME TYPE STRING,
HISTO TYPE STRING,
ITXEX TYPE STRING,
REFEX TYPE STRING,
ORDEX TYPE STRING,
ITBLD TYPE STRING,
PREAS TYPE STRING,
FLAG1 TYPE STRING,
FLAG2 TYPE STRING,
FLAG3 TYPE STRING,
FLAG4 TYPE STRING,
RESE1 TYPE STRING,
RESE2 TYPE STRING,
GRPVL TYPE STRING,
DAT01 TYPE STRING,
HOU01 TYPE STRING,
IND01 TYPE STRING,
REA01 TYPE STRING,
DAT02 TYPE STRING,
HOU02 TYPE STRING,
IND02 TYPE STRING,
REA02 TYPE STRING,
DAT03 TYPE STRING,
HOU03 TYPE STRING,
IND03 TYPE STRING,
REA03 TYPE STRING,
DAT04 TYPE STRING,
HOU04 TYPE STRING,
IND04 TYPE STRING,
REA04 TYPE STRING,
DAT05 TYPE STRING,
HOU05 TYPE STRING,
IND05 TYPE STRING,
REA05 TYPE STRING,
DAT06 TYPE STRING,
HOU06 TYPE STRING,
IND06 TYPE STRING,
REA06 TYPE STRING,
DAT07 TYPE STRING,
HOU07 TYPE STRING,
IND07 TYPE STRING,
REA07 TYPE STRING,
DAT08 TYPE STRING,
HOU08 TYPE STRING,
IND08 TYPE STRING,
REA08 TYPE STRING,
DAT09 TYPE STRING,
HOU09 TYPE STRING,
IND09 TYPE STRING,
REA09 TYPE STRING,
DAT10 TYPE STRING,
HOU10 TYPE STRING,
IND10 TYPE STRING,
REA10 TYPE STRING,
DAT11 TYPE STRING,
HOU11 TYPE STRING,
IND11 TYPE STRING,
REA11 TYPE STRING,
DAT12 TYPE STRING,
HOU12 TYPE STRING,
IND12 TYPE STRING,
REA12 TYPE STRING,
DAT13 TYPE STRING,
HOU13 TYPE STRING,
IND13 TYPE STRING,
REA13 TYPE STRING,
DAT14 TYPE STRING,
HOU14 TYPE STRING,
IND14 TYPE STRING,
REA14 TYPE STRING,
DAT15 TYPE STRING,
HOU15 TYPE STRING,
IND15 TYPE STRING,
REA15 TYPE STRING,
DAT16 TYPE STRING,
HOU16 TYPE STRING,
IND16 TYPE STRING,
REA16 TYPE STRING,
DAT17 TYPE STRING,
HOU17 TYPE STRING,
IND17 TYPE STRING,
REA17 TYPE STRING,
DAT18 TYPE STRING,
HOU18 TYPE STRING,
IND18 TYPE STRING,
REA18 TYPE STRING,
DAT19 TYPE STRING,
HOU19 TYPE STRING,
IND19 TYPE STRING,
REA19 TYPE STRING,
DAT20 TYPE STRING,
HOU20 TYPE STRING,
IND20 TYPE STRING,
REA20 TYPE STRING,
DAT21 TYPE STRING,
HOU21 TYPE STRING,
IND21 TYPE STRING,
REA21 TYPE STRING,
DAT22 TYPE STRING,
HOU22 TYPE STRING,
IND22 TYPE STRING,
REA22 TYPE STRING,
DAT23 TYPE STRING,
HOU23 TYPE STRING,
IND23 TYPE STRING,
REA23 TYPE STRING,
DAT24 TYPE STRING,
HOU24 TYPE STRING,
IND24 TYPE STRING,
REA24 TYPE STRING,
DAT25 TYPE STRING,
HOU25 TYPE STRING,
IND25 TYPE STRING,
REA25 TYPE STRING,
DAT26 TYPE STRING,
HOU26 TYPE STRING,
IND26 TYPE STRING,
REA26 TYPE STRING,
DAT27 TYPE STRING,
HOU27 TYPE STRING,
IND27 TYPE STRING,
REA27 TYPE STRING,
DAT28 TYPE STRING,
HOU28 TYPE STRING,
IND28 TYPE STRING,
REA28 TYPE STRING,
DAT29 TYPE STRING,
HOU29 TYPE STRING,
IND29 TYPE STRING,
REA29 TYPE STRING,
DAT30 TYPE STRING,
HOU30 TYPE STRING,
IND30 TYPE STRING,
REA30 TYPE STRING,
DAT31 TYPE STRING,
HOU31 TYPE STRING,
IND31 TYPE STRING,
REA31 TYPE STRING,
PRSTA TYPE STRING,
CMAMT TYPE STRING,
PRDAT TYPE STRING,
WAERS TYPE STRING,END OF T_EKKO_STR. DATA: WA_P3405_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_P3405_STR-PERNR sy-vline
WA_P3405_STR-INFTY sy-vline
WA_P3405_STR-SUBTY sy-vline
WA_P3405_STR-OBJPS sy-vline
WA_P3405_STR-SPRPS sy-vline
WA_P3405_STR-ENDDA sy-vline
WA_P3405_STR-BEGDA sy-vline
WA_P3405_STR-SEQNR sy-vline
WA_P3405_STR-AEDTM sy-vline
WA_P3405_STR-UNAME sy-vline
WA_P3405_STR-HISTO sy-vline
WA_P3405_STR-ITXEX sy-vline
WA_P3405_STR-REFEX sy-vline
WA_P3405_STR-ORDEX sy-vline
WA_P3405_STR-ITBLD sy-vline
WA_P3405_STR-PREAS sy-vline
WA_P3405_STR-FLAG1 sy-vline
WA_P3405_STR-FLAG2 sy-vline
WA_P3405_STR-FLAG3 sy-vline
WA_P3405_STR-FLAG4 sy-vline
WA_P3405_STR-RESE1 sy-vline
WA_P3405_STR-RESE2 sy-vline
WA_P3405_STR-GRPVL sy-vline
WA_P3405_STR-DAT01 sy-vline
WA_P3405_STR-HOU01 sy-vline
WA_P3405_STR-IND01 sy-vline
WA_P3405_STR-REA01 sy-vline
WA_P3405_STR-DAT02 sy-vline
WA_P3405_STR-HOU02 sy-vline
WA_P3405_STR-IND02 sy-vline
WA_P3405_STR-REA02 sy-vline
WA_P3405_STR-DAT03 sy-vline
WA_P3405_STR-HOU03 sy-vline
WA_P3405_STR-IND03 sy-vline
WA_P3405_STR-REA03 sy-vline
WA_P3405_STR-DAT04 sy-vline
WA_P3405_STR-HOU04 sy-vline
WA_P3405_STR-IND04 sy-vline
WA_P3405_STR-REA04 sy-vline
WA_P3405_STR-DAT05 sy-vline
WA_P3405_STR-HOU05 sy-vline
WA_P3405_STR-IND05 sy-vline
WA_P3405_STR-REA05 sy-vline
WA_P3405_STR-DAT06 sy-vline
WA_P3405_STR-HOU06 sy-vline
WA_P3405_STR-IND06 sy-vline
WA_P3405_STR-REA06 sy-vline
WA_P3405_STR-DAT07 sy-vline
WA_P3405_STR-HOU07 sy-vline
WA_P3405_STR-IND07 sy-vline
WA_P3405_STR-REA07 sy-vline
WA_P3405_STR-DAT08 sy-vline
WA_P3405_STR-HOU08 sy-vline
WA_P3405_STR-IND08 sy-vline
WA_P3405_STR-REA08 sy-vline
WA_P3405_STR-DAT09 sy-vline
WA_P3405_STR-HOU09 sy-vline
WA_P3405_STR-IND09 sy-vline
WA_P3405_STR-REA09 sy-vline
WA_P3405_STR-DAT10 sy-vline
WA_P3405_STR-HOU10 sy-vline
WA_P3405_STR-IND10 sy-vline
WA_P3405_STR-REA10 sy-vline
WA_P3405_STR-DAT11 sy-vline
WA_P3405_STR-HOU11 sy-vline
WA_P3405_STR-IND11 sy-vline
WA_P3405_STR-REA11 sy-vline
WA_P3405_STR-DAT12 sy-vline
WA_P3405_STR-HOU12 sy-vline
WA_P3405_STR-IND12 sy-vline
WA_P3405_STR-REA12 sy-vline
WA_P3405_STR-DAT13 sy-vline
WA_P3405_STR-HOU13 sy-vline
WA_P3405_STR-IND13 sy-vline
WA_P3405_STR-REA13 sy-vline
WA_P3405_STR-DAT14 sy-vline
WA_P3405_STR-HOU14 sy-vline
WA_P3405_STR-IND14 sy-vline
WA_P3405_STR-REA14 sy-vline
WA_P3405_STR-DAT15 sy-vline
WA_P3405_STR-HOU15 sy-vline
WA_P3405_STR-IND15 sy-vline
WA_P3405_STR-REA15 sy-vline
WA_P3405_STR-DAT16 sy-vline
WA_P3405_STR-HOU16 sy-vline
WA_P3405_STR-IND16 sy-vline
WA_P3405_STR-REA16 sy-vline
WA_P3405_STR-DAT17 sy-vline
WA_P3405_STR-HOU17 sy-vline
WA_P3405_STR-IND17 sy-vline
WA_P3405_STR-REA17 sy-vline
WA_P3405_STR-DAT18 sy-vline
WA_P3405_STR-HOU18 sy-vline
WA_P3405_STR-IND18 sy-vline
WA_P3405_STR-REA18 sy-vline
WA_P3405_STR-DAT19 sy-vline
WA_P3405_STR-HOU19 sy-vline
WA_P3405_STR-IND19 sy-vline
WA_P3405_STR-REA19 sy-vline
WA_P3405_STR-DAT20 sy-vline
WA_P3405_STR-HOU20 sy-vline
WA_P3405_STR-IND20 sy-vline
WA_P3405_STR-REA20 sy-vline
WA_P3405_STR-DAT21 sy-vline
WA_P3405_STR-HOU21 sy-vline
WA_P3405_STR-IND21 sy-vline
WA_P3405_STR-REA21 sy-vline
WA_P3405_STR-DAT22 sy-vline
WA_P3405_STR-HOU22 sy-vline
WA_P3405_STR-IND22 sy-vline
WA_P3405_STR-REA22 sy-vline
WA_P3405_STR-DAT23 sy-vline
WA_P3405_STR-HOU23 sy-vline
WA_P3405_STR-IND23 sy-vline
WA_P3405_STR-REA23 sy-vline
WA_P3405_STR-DAT24 sy-vline
WA_P3405_STR-HOU24 sy-vline
WA_P3405_STR-IND24 sy-vline
WA_P3405_STR-REA24 sy-vline
WA_P3405_STR-DAT25 sy-vline
WA_P3405_STR-HOU25 sy-vline
WA_P3405_STR-IND25 sy-vline
WA_P3405_STR-REA25 sy-vline
WA_P3405_STR-DAT26 sy-vline
WA_P3405_STR-HOU26 sy-vline
WA_P3405_STR-IND26 sy-vline
WA_P3405_STR-REA26 sy-vline
WA_P3405_STR-DAT27 sy-vline
WA_P3405_STR-HOU27 sy-vline
WA_P3405_STR-IND27 sy-vline
WA_P3405_STR-REA27 sy-vline
WA_P3405_STR-DAT28 sy-vline
WA_P3405_STR-HOU28 sy-vline
WA_P3405_STR-IND28 sy-vline
WA_P3405_STR-REA28 sy-vline
WA_P3405_STR-DAT29 sy-vline
WA_P3405_STR-HOU29 sy-vline
WA_P3405_STR-IND29 sy-vline
WA_P3405_STR-REA29 sy-vline
WA_P3405_STR-DAT30 sy-vline
WA_P3405_STR-HOU30 sy-vline
WA_P3405_STR-IND30 sy-vline
WA_P3405_STR-REA30 sy-vline
WA_P3405_STR-DAT31 sy-vline
WA_P3405_STR-HOU31 sy-vline
WA_P3405_STR-IND31 sy-vline
WA_P3405_STR-REA31 sy-vline
WA_P3405_STR-PRSTA sy-vline
WA_P3405_STR-CMAMT sy-vline
WA_P3405_STR-PRDAT sy-vline
WA_P3405_STR-WAERS sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.