ABAP Select data from SAP table PUNVS_PR_TAB_RECORD 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 PUNVS_PR_TAB_RECORD 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 PUNVS_PR_TAB_RECORD. 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 PUNVS_PR_TAB_RECORD 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_PUNVS_PR_TAB_RECORD TYPE STANDARD TABLE OF PUNVS_PR_TAB_RECORD,
      WA_PUNVS_PR_TAB_RECORD TYPE PUNVS_PR_TAB_RECORD,
      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: <PUNVS_PR_TAB_RECORD> TYPE PUNVS_PR_TAB_RECORD.

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

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

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


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PUNVS_PR_TAB_RECORD ASSIGNING <PUNVS_PR_TAB_RECORD>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PUNVS_PR_TAB_RECORD>-PRTYP = 1.
<PUNVS_PR_TAB_RECORD>-SUMLV = 1.
<PUNVS_PR_TAB_RECORD>-COUNT = 1.
<PUNVS_PR_TAB_RECORD>-STATS = 1.
<PUNVS_PR_TAB_RECORD>-PERNR = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PUNVS_PR_TAB_RECORD-AHVNR, sy-vline,
WA_PUNVS_PR_TAB_RECORD-ENAME, sy-vline,
WA_PUNVS_PR_TAB_RECORD-GESCH, sy-vline,
WA_PUNVS_PR_TAB_RECORD-KASSE, sy-vline,
WA_PUNVS_PR_TAB_RECORD-BUKRS, sy-vline,
WA_PUNVS_PR_TAB_RECORD-KOKRS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PUNVS_PR_TAB_RECORD 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_PUNVS_PR_TAB_RECORD 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_PUNVS_PR_TAB_RECORD INTO WA_PUNVS_PR_TAB_RECORD. *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.

*Conversion exit AHVNR, internal->external for field AHVNR CALL FUNCTION 'CONVERSION_EXIT_AHVNR_OUTPUT' EXPORTING input = WA_PUNVS_PR_TAB_RECORD-AHVNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PUNVS_PR_TAB_RECORD-AHVNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field KOSTL CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PUNVS_PR_TAB_RECORD-KOSTL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PUNVS_PR_TAB_RECORD-KOSTL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ISOLA, internal->external for field SPRAS CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_PUNVS_PR_TAB_RECORD-SPRAS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PUNVS_PR_TAB_RECORD-SPRAS.
WRITE:/ 'New Value:', ld_input.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_PUNVS_PR_TAB_RECORD_STR,
PRTYP TYPE STRING,
SUMLV TYPE STRING,
COUNT TYPE STRING,
STATS TYPE STRING,
PERNR TYPE STRING,
AHVNR TYPE STRING,
ENAME TYPE STRING,
GESCH TYPE STRING,
KASSE TYPE STRING,
BUKRS TYPE STRING,
KOKRS TYPE STRING,
PERSG TYPE STRING,
PERSK TYPE STRING,
WERKS TYPE STRING,
BTRTL TYPE STRING,
KOSTL TYPE STRING,
FLD01 TYPE STRING,
FLD02 TYPE STRING,
FLD03 TYPE STRING,
FLD04 TYPE STRING,
SCHTX TYPE STRING,
ANRED TYPE STRING,
TITLE_PERS TYPE STRING,
NAME_PERS TYPE STRING,
NAME1 TYPE STRING,
NAME2 TYPE STRING,
NAME_CO TYPE STRING,
SPRAS TYPE STRING,
STRAS TYPE STRING,
HOUSE_NUM TYPE STRING,
POSTA TYPE STRING,
PSTLZ TYPE STRING,
PSTL2 TYPE STRING,
ORT01 TYPE STRING,
ORT02 TYPE STRING,
REGIO TYPE STRING,
LAND1 TYPE STRING,
PO_BOX TYPE STRING,
TITLE TYPE STRING,
TITXT TYPE STRING,
LOCAT TYPE STRING,
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,
V0401 TYPE STRING,
V0402 TYPE STRING,
V0403 TYPE STRING,
V0404 TYPE STRING,
V0405 TYPE STRING,
V0406 TYPE STRING,
V0407 TYPE STRING,
V0408 TYPE STRING,
V0409 TYPE STRING,
V0410 TYPE STRING,
V0501 TYPE STRING,
V0502 TYPE STRING,
V0503 TYPE STRING,
V0504 TYPE STRING,
V0505 TYPE STRING,
V0506 TYPE STRING,
V0507 TYPE STRING,
V0508 TYPE STRING,
V0509 TYPE STRING,
V0510 TYPE STRING,
V0511 TYPE STRING,
V0512 TYPE STRING,
V0513 TYPE STRING,
V0514 TYPE STRING,
V0515 TYPE STRING,
V9901 TYPE STRING,
V9902 TYPE STRING,
V9903 TYPE STRING,
V9904 TYPE STRING,
V9905 TYPE STRING,
V9906 TYPE STRING,
V9907 TYPE STRING,
V9908 TYPE STRING,
V9909 TYPE STRING,
V9910 TYPE STRING,END OF T_EKKO_STR. DATA: WA_PUNVS_PR_TAB_RECORD_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_PUNVS_PR_TAB_RECORD_STR-PRTYP sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-SUMLV sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-COUNT sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-STATS sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-PERNR sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-AHVNR sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-ENAME sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-GESCH sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-KASSE sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-BUKRS sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-KOKRS sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-PERSG sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-PERSK sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-WERKS sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-BTRTL sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-KOSTL sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-FLD01 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-FLD02 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-FLD03 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-FLD04 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-SCHTX sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-ANRED sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-TITLE_PERS sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-NAME_PERS sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-NAME1 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-NAME2 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-NAME_CO sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-SPRAS sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-STRAS sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-HOUSE_NUM sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-POSTA sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-PSTLZ sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-PSTL2 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-ORT01 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-ORT02 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-REGIO sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-LAND1 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-PO_BOX sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-TITLE sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-TITXT sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-LOCAT sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0101 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0102 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0103 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0104 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0105 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0106 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0107 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0108 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0109 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0110 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0201 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0202 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0203 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0204 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0205 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0206 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0207 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0208 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0209 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0210 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0211 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0212 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0213 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0214 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0215 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0216 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0217 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0218 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0219 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0220 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0221 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0222 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0223 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0224 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0225 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0226 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0227 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0228 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0229 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0230 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0231 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0232 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0233 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0234 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0235 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0236 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0237 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0238 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0239 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0240 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0241 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0242 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0243 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0244 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0245 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0246 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0247 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0248 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0249 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0250 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0301 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0302 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0303 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0304 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0305 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0306 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0307 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0308 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0309 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0310 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0701 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0702 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0703 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0704 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0705 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0401 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0402 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0403 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0404 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0405 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0406 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0407 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0408 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0409 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0410 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0501 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0502 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0503 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0504 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0505 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0506 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0507 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0508 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0509 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0510 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0511 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0512 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0513 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0514 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V0515 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V9901 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V9902 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V9903 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V9904 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V9905 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V9906 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V9907 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V9908 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V9909 sy-vline
WA_PUNVS_PR_TAB_RECORD_STR-V9910 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.