ABAP Select data from SAP table P02VS_PR_TAB_RECORD_DATA 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 P02VS_PR_TAB_RECORD_DATA 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 P02VS_PR_TAB_RECORD_DATA. 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 P02VS_PR_TAB_RECORD_DATA 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_P02VS_PR_TAB_RECORD_DATA TYPE STANDARD TABLE OF P02VS_PR_TAB_RECORD_DATA,
      WA_P02VS_PR_TAB_RECORD_DATA TYPE P02VS_PR_TAB_RECORD_DATA,
      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: <P02VS_PR_TAB_RECORD_DATA> TYPE P02VS_PR_TAB_RECORD_DATA.

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

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

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


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_P02VS_PR_TAB_RECORD_DATA ASSIGNING <P02VS_PR_TAB_RECORD_DATA>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<P02VS_PR_TAB_RECORD_DATA>-V0101 = 1.
<P02VS_PR_TAB_RECORD_DATA>-V0102 = 1.
<P02VS_PR_TAB_RECORD_DATA>-V0103 = 1.
<P02VS_PR_TAB_RECORD_DATA>-V0104 = 1.
<P02VS_PR_TAB_RECORD_DATA>-V0105 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_P02VS_PR_TAB_RECORD_DATA-V0106, sy-vline,
WA_P02VS_PR_TAB_RECORD_DATA-V0107, sy-vline,
WA_P02VS_PR_TAB_RECORD_DATA-V0108, sy-vline,
WA_P02VS_PR_TAB_RECORD_DATA-V0109, sy-vline,
WA_P02VS_PR_TAB_RECORD_DATA-V0110, sy-vline,
WA_P02VS_PR_TAB_RECORD_DATA-V0201, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P02VS_PR_TAB_RECORD_DATA 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_P02VS_PR_TAB_RECORD_DATA 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_P02VS_PR_TAB_RECORD_DATA INTO WA_P02VS_PR_TAB_RECORD_DATA. *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_P02VS_PR_TAB_RECORD_DATA_STR,
V0101 TYPE STRING,
V0102 TYPE STRING,
V0103 TYPE STRING,
V0104 TYPE STRING,
V0105 TYPE STRING,
V0106 TYPE STRING,
V0107 TYPE STRING,
V0108 TYPE STRING,
V0109 TYPE STRING,
V0110 TYPE STRING,
V0201 TYPE STRING,
V0202 TYPE STRING,
V0203 TYPE STRING,
V0204 TYPE STRING,
V0205 TYPE STRING,
V0206 TYPE STRING,
V0207 TYPE STRING,
V0208 TYPE STRING,
V0209 TYPE STRING,
V0210 TYPE STRING,
V0211 TYPE STRING,
V0212 TYPE STRING,
V0213 TYPE STRING,
V0214 TYPE STRING,
V0215 TYPE STRING,
V0216 TYPE STRING,
V0217 TYPE STRING,
V0218 TYPE STRING,
V0219 TYPE STRING,
V0220 TYPE STRING,
V0221 TYPE STRING,
V0222 TYPE STRING,
V0223 TYPE STRING,
V0224 TYPE STRING,
V0225 TYPE STRING,
V0226 TYPE STRING,
V0227 TYPE STRING,
V0228 TYPE STRING,
V0229 TYPE STRING,
V0230 TYPE STRING,
V0231 TYPE STRING,
V0232 TYPE STRING,
V0233 TYPE STRING,
V0234 TYPE STRING,
V0235 TYPE STRING,
V0236 TYPE STRING,
V0237 TYPE STRING,
V0238 TYPE STRING,
V0239 TYPE STRING,
V0240 TYPE STRING,
V0241 TYPE STRING,
V0242 TYPE STRING,
V0243 TYPE STRING,
V0244 TYPE STRING,
V0245 TYPE STRING,
V0246 TYPE STRING,
V0247 TYPE STRING,
V0248 TYPE STRING,
V0249 TYPE STRING,
V0250 TYPE STRING,
V0301 TYPE STRING,
V0302 TYPE STRING,
V0303 TYPE STRING,
V0304 TYPE STRING,
V0305 TYPE STRING,
V0306 TYPE STRING,
V0307 TYPE STRING,
V0308 TYPE STRING,
V0309 TYPE STRING,
V0310 TYPE STRING,
V0701 TYPE STRING,
V0702 TYPE STRING,
V0703 TYPE STRING,
V0704 TYPE STRING,
V0705 TYPE STRING,END OF T_EKKO_STR. DATA: WA_P02VS_PR_TAB_RECORD_DATA_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_P02VS_PR_TAB_RECORD_DATA_STR-V0101 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0102 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0103 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0104 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0105 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0106 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0107 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0108 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0109 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0110 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0201 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0202 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0203 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0204 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0205 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0206 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0207 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0208 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0209 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0210 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0211 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0212 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0213 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0214 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0215 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0216 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0217 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0218 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0219 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0220 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0221 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0222 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0223 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0224 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0225 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0226 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0227 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0228 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0229 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0230 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0231 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0232 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0233 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0234 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0235 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0236 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0237 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0238 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0239 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0240 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0241 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0242 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0243 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0244 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0245 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0246 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0247 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0248 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0249 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0250 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0301 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0302 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0303 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0304 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0305 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0306 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0307 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0308 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0309 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0310 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0701 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0702 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0703 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0704 sy-vline
WA_P02VS_PR_TAB_RECORD_DATA_STR-V0705 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.