ABAP Select data from SAP table PS3240 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 PS3240 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 PS3240. 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 PS3240 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_PS3240 TYPE STANDARD TABLE OF PS3240,
      WA_PS3240 TYPE PS3240,
      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: <PS3240> TYPE PS3240.

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

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

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


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PS3240 ASSIGNING <PS3240>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PS3240>-BEG01 = 1.
<PS3240>-END01 = 1.
<PS3240>-RSR01 = 1.
<PS3240>-MOL01 = 1.
<PS3240>-BEG02 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PS3240-END02, sy-vline,
WA_PS3240-RSR02, sy-vline,
WA_PS3240-MOL02, sy-vline,
WA_PS3240-BEG03, sy-vline,
WA_PS3240-END03, sy-vline,
WA_PS3240-RSR03, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PS3240 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_PS3240 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_PS3240 INTO WA_PS3240. *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_PS3240_STR,
BEG01 TYPE STRING,
END01 TYPE STRING,
RSR01 TYPE STRING,
MOL01 TYPE STRING,
BEG02 TYPE STRING,
END02 TYPE STRING,
RSR02 TYPE STRING,
MOL02 TYPE STRING,
BEG03 TYPE STRING,
END03 TYPE STRING,
RSR03 TYPE STRING,
MOL03 TYPE STRING,
BEG04 TYPE STRING,
END04 TYPE STRING,
RSR04 TYPE STRING,
MOL04 TYPE STRING,
BEG05 TYPE STRING,
END05 TYPE STRING,
RSR05 TYPE STRING,
MOL05 TYPE STRING,
BEG06 TYPE STRING,
END06 TYPE STRING,
RSR06 TYPE STRING,
MOL06 TYPE STRING,
BEG07 TYPE STRING,
END07 TYPE STRING,
RSR07 TYPE STRING,
MOL07 TYPE STRING,
BEG08 TYPE STRING,
END08 TYPE STRING,
RSR08 TYPE STRING,
MOL08 TYPE STRING,
BEG09 TYPE STRING,
END09 TYPE STRING,
RSR09 TYPE STRING,
MOL09 TYPE STRING,
BEG10 TYPE STRING,
END10 TYPE STRING,
RSR10 TYPE STRING,
MOL10 TYPE STRING,
BEG11 TYPE STRING,
END11 TYPE STRING,
RSR11 TYPE STRING,
MOL11 TYPE STRING,
BEG12 TYPE STRING,
END12 TYPE STRING,
RSR12 TYPE STRING,
MOL12 TYPE STRING,
BEG13 TYPE STRING,
END13 TYPE STRING,
RSR13 TYPE STRING,
MOL13 TYPE STRING,
BEG14 TYPE STRING,
END14 TYPE STRING,
RSR14 TYPE STRING,
MOL14 TYPE STRING,
BEG15 TYPE STRING,
END15 TYPE STRING,
RSR15 TYPE STRING,
MOL15 TYPE STRING,
BEG16 TYPE STRING,
END16 TYPE STRING,
RSR16 TYPE STRING,
MOL16 TYPE STRING,
BEG17 TYPE STRING,
END17 TYPE STRING,
RSR17 TYPE STRING,
MOL17 TYPE STRING,
BEG18 TYPE STRING,
END18 TYPE STRING,
RSR18 TYPE STRING,
MOL18 TYPE STRING,
BEG19 TYPE STRING,
END19 TYPE STRING,
RSR19 TYPE STRING,
MOL19 TYPE STRING,
BEG20 TYPE STRING,
END20 TYPE STRING,
RSR20 TYPE STRING,
MOL20 TYPE STRING,
BEG21 TYPE STRING,
END21 TYPE STRING,
RSR21 TYPE STRING,
MOL21 TYPE STRING,
BEG22 TYPE STRING,
END22 TYPE STRING,
RSR22 TYPE STRING,
MOL22 TYPE STRING,
BEG23 TYPE STRING,
END23 TYPE STRING,
RSR23 TYPE STRING,
MOL23 TYPE STRING,
BEG24 TYPE STRING,
END24 TYPE STRING,
RSR24 TYPE STRING,
MOL24 TYPE STRING,
BEG25 TYPE STRING,
END25 TYPE STRING,
RSR25 TYPE STRING,
MOL25 TYPE STRING,
BEG26 TYPE STRING,
END26 TYPE STRING,
RSR26 TYPE STRING,
MOL26 TYPE STRING,
BEG27 TYPE STRING,
END27 TYPE STRING,
RSR27 TYPE STRING,
MOL27 TYPE STRING,
BEG28 TYPE STRING,
END28 TYPE STRING,
RSR28 TYPE STRING,
MOL28 TYPE STRING,
BEG29 TYPE STRING,
END29 TYPE STRING,
RSR29 TYPE STRING,
MOL29 TYPE STRING,
BEG30 TYPE STRING,
END30 TYPE STRING,
RSR30 TYPE STRING,
MOL30 TYPE STRING,
YR001 TYPE STRING,
NOD01 TYPE STRING,
STA01 TYPE STRING,
YR002 TYPE STRING,
NOD02 TYPE STRING,
STA02 TYPE STRING,
YR003 TYPE STRING,
NOD03 TYPE STRING,
STA03 TYPE STRING,
YR004 TYPE STRING,
NOD04 TYPE STRING,
STA04 TYPE STRING,
YR005 TYPE STRING,
NOD05 TYPE STRING,
STA05 TYPE STRING,
YR006 TYPE STRING,
NOD06 TYPE STRING,
STA06 TYPE STRING,
YR007 TYPE STRING,
NOD07 TYPE STRING,
STA07 TYPE STRING,
YR008 TYPE STRING,
NOD08 TYPE STRING,
STA08 TYPE STRING,
YR009 TYPE STRING,
NOD09 TYPE STRING,
STA09 TYPE STRING,
YR010 TYPE STRING,
NOD10 TYPE STRING,
STA10 TYPE STRING,
YR011 TYPE STRING,
NOD11 TYPE STRING,
STA11 TYPE STRING,
YR012 TYPE STRING,
NOD12 TYPE STRING,
STA12 TYPE STRING,
YR013 TYPE STRING,
NOD13 TYPE STRING,
STA13 TYPE STRING,
YR014 TYPE STRING,
NOD14 TYPE STRING,
STA14 TYPE STRING,
YR015 TYPE STRING,
NOD15 TYPE STRING,
STA15 TYPE STRING,
NODAY TYPE STRING,
STATS TYPE STRING,
OVERI TYPE STRING,END OF T_EKKO_STR. DATA: WA_PS3240_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_PS3240_STR-BEG01 sy-vline
WA_PS3240_STR-END01 sy-vline
WA_PS3240_STR-RSR01 sy-vline
WA_PS3240_STR-MOL01 sy-vline
WA_PS3240_STR-BEG02 sy-vline
WA_PS3240_STR-END02 sy-vline
WA_PS3240_STR-RSR02 sy-vline
WA_PS3240_STR-MOL02 sy-vline
WA_PS3240_STR-BEG03 sy-vline
WA_PS3240_STR-END03 sy-vline
WA_PS3240_STR-RSR03 sy-vline
WA_PS3240_STR-MOL03 sy-vline
WA_PS3240_STR-BEG04 sy-vline
WA_PS3240_STR-END04 sy-vline
WA_PS3240_STR-RSR04 sy-vline
WA_PS3240_STR-MOL04 sy-vline
WA_PS3240_STR-BEG05 sy-vline
WA_PS3240_STR-END05 sy-vline
WA_PS3240_STR-RSR05 sy-vline
WA_PS3240_STR-MOL05 sy-vline
WA_PS3240_STR-BEG06 sy-vline
WA_PS3240_STR-END06 sy-vline
WA_PS3240_STR-RSR06 sy-vline
WA_PS3240_STR-MOL06 sy-vline
WA_PS3240_STR-BEG07 sy-vline
WA_PS3240_STR-END07 sy-vline
WA_PS3240_STR-RSR07 sy-vline
WA_PS3240_STR-MOL07 sy-vline
WA_PS3240_STR-BEG08 sy-vline
WA_PS3240_STR-END08 sy-vline
WA_PS3240_STR-RSR08 sy-vline
WA_PS3240_STR-MOL08 sy-vline
WA_PS3240_STR-BEG09 sy-vline
WA_PS3240_STR-END09 sy-vline
WA_PS3240_STR-RSR09 sy-vline
WA_PS3240_STR-MOL09 sy-vline
WA_PS3240_STR-BEG10 sy-vline
WA_PS3240_STR-END10 sy-vline
WA_PS3240_STR-RSR10 sy-vline
WA_PS3240_STR-MOL10 sy-vline
WA_PS3240_STR-BEG11 sy-vline
WA_PS3240_STR-END11 sy-vline
WA_PS3240_STR-RSR11 sy-vline
WA_PS3240_STR-MOL11 sy-vline
WA_PS3240_STR-BEG12 sy-vline
WA_PS3240_STR-END12 sy-vline
WA_PS3240_STR-RSR12 sy-vline
WA_PS3240_STR-MOL12 sy-vline
WA_PS3240_STR-BEG13 sy-vline
WA_PS3240_STR-END13 sy-vline
WA_PS3240_STR-RSR13 sy-vline
WA_PS3240_STR-MOL13 sy-vline
WA_PS3240_STR-BEG14 sy-vline
WA_PS3240_STR-END14 sy-vline
WA_PS3240_STR-RSR14 sy-vline
WA_PS3240_STR-MOL14 sy-vline
WA_PS3240_STR-BEG15 sy-vline
WA_PS3240_STR-END15 sy-vline
WA_PS3240_STR-RSR15 sy-vline
WA_PS3240_STR-MOL15 sy-vline
WA_PS3240_STR-BEG16 sy-vline
WA_PS3240_STR-END16 sy-vline
WA_PS3240_STR-RSR16 sy-vline
WA_PS3240_STR-MOL16 sy-vline
WA_PS3240_STR-BEG17 sy-vline
WA_PS3240_STR-END17 sy-vline
WA_PS3240_STR-RSR17 sy-vline
WA_PS3240_STR-MOL17 sy-vline
WA_PS3240_STR-BEG18 sy-vline
WA_PS3240_STR-END18 sy-vline
WA_PS3240_STR-RSR18 sy-vline
WA_PS3240_STR-MOL18 sy-vline
WA_PS3240_STR-BEG19 sy-vline
WA_PS3240_STR-END19 sy-vline
WA_PS3240_STR-RSR19 sy-vline
WA_PS3240_STR-MOL19 sy-vline
WA_PS3240_STR-BEG20 sy-vline
WA_PS3240_STR-END20 sy-vline
WA_PS3240_STR-RSR20 sy-vline
WA_PS3240_STR-MOL20 sy-vline
WA_PS3240_STR-BEG21 sy-vline
WA_PS3240_STR-END21 sy-vline
WA_PS3240_STR-RSR21 sy-vline
WA_PS3240_STR-MOL21 sy-vline
WA_PS3240_STR-BEG22 sy-vline
WA_PS3240_STR-END22 sy-vline
WA_PS3240_STR-RSR22 sy-vline
WA_PS3240_STR-MOL22 sy-vline
WA_PS3240_STR-BEG23 sy-vline
WA_PS3240_STR-END23 sy-vline
WA_PS3240_STR-RSR23 sy-vline
WA_PS3240_STR-MOL23 sy-vline
WA_PS3240_STR-BEG24 sy-vline
WA_PS3240_STR-END24 sy-vline
WA_PS3240_STR-RSR24 sy-vline
WA_PS3240_STR-MOL24 sy-vline
WA_PS3240_STR-BEG25 sy-vline
WA_PS3240_STR-END25 sy-vline
WA_PS3240_STR-RSR25 sy-vline
WA_PS3240_STR-MOL25 sy-vline
WA_PS3240_STR-BEG26 sy-vline
WA_PS3240_STR-END26 sy-vline
WA_PS3240_STR-RSR26 sy-vline
WA_PS3240_STR-MOL26 sy-vline
WA_PS3240_STR-BEG27 sy-vline
WA_PS3240_STR-END27 sy-vline
WA_PS3240_STR-RSR27 sy-vline
WA_PS3240_STR-MOL27 sy-vline
WA_PS3240_STR-BEG28 sy-vline
WA_PS3240_STR-END28 sy-vline
WA_PS3240_STR-RSR28 sy-vline
WA_PS3240_STR-MOL28 sy-vline
WA_PS3240_STR-BEG29 sy-vline
WA_PS3240_STR-END29 sy-vline
WA_PS3240_STR-RSR29 sy-vline
WA_PS3240_STR-MOL29 sy-vline
WA_PS3240_STR-BEG30 sy-vline
WA_PS3240_STR-END30 sy-vline
WA_PS3240_STR-RSR30 sy-vline
WA_PS3240_STR-MOL30 sy-vline
WA_PS3240_STR-YR001 sy-vline
WA_PS3240_STR-NOD01 sy-vline
WA_PS3240_STR-STA01 sy-vline
WA_PS3240_STR-YR002 sy-vline
WA_PS3240_STR-NOD02 sy-vline
WA_PS3240_STR-STA02 sy-vline
WA_PS3240_STR-YR003 sy-vline
WA_PS3240_STR-NOD03 sy-vline
WA_PS3240_STR-STA03 sy-vline
WA_PS3240_STR-YR004 sy-vline
WA_PS3240_STR-NOD04 sy-vline
WA_PS3240_STR-STA04 sy-vline
WA_PS3240_STR-YR005 sy-vline
WA_PS3240_STR-NOD05 sy-vline
WA_PS3240_STR-STA05 sy-vline
WA_PS3240_STR-YR006 sy-vline
WA_PS3240_STR-NOD06 sy-vline
WA_PS3240_STR-STA06 sy-vline
WA_PS3240_STR-YR007 sy-vline
WA_PS3240_STR-NOD07 sy-vline
WA_PS3240_STR-STA07 sy-vline
WA_PS3240_STR-YR008 sy-vline
WA_PS3240_STR-NOD08 sy-vline
WA_PS3240_STR-STA08 sy-vline
WA_PS3240_STR-YR009 sy-vline
WA_PS3240_STR-NOD09 sy-vline
WA_PS3240_STR-STA09 sy-vline
WA_PS3240_STR-YR010 sy-vline
WA_PS3240_STR-NOD10 sy-vline
WA_PS3240_STR-STA10 sy-vline
WA_PS3240_STR-YR011 sy-vline
WA_PS3240_STR-NOD11 sy-vline
WA_PS3240_STR-STA11 sy-vline
WA_PS3240_STR-YR012 sy-vline
WA_PS3240_STR-NOD12 sy-vline
WA_PS3240_STR-STA12 sy-vline
WA_PS3240_STR-YR013 sy-vline
WA_PS3240_STR-NOD13 sy-vline
WA_PS3240_STR-STA13 sy-vline
WA_PS3240_STR-YR014 sy-vline
WA_PS3240_STR-NOD14 sy-vline
WA_PS3240_STR-STA14 sy-vline
WA_PS3240_STR-YR015 sy-vline
WA_PS3240_STR-NOD15 sy-vline
WA_PS3240_STR-STA15 sy-vline
WA_PS3240_STR-NODAY sy-vline
WA_PS3240_STR-STATS sy-vline
WA_PS3240_STR-OVERI sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.