ABAP Select data from SAP table PMRP_PRODUCT_RAW 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 PMRP_PRODUCT_RAW 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 PMRP_PRODUCT_RAW. 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 PMRP_PRODUCT_RAW 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_PMRP_PRODUCT_RAW TYPE STANDARD TABLE OF PMRP_PRODUCT_RAW,
      WA_PMRP_PRODUCT_RAW TYPE PMRP_PRODUCT_RAW,
      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: <PMRP_PRODUCT_RAW> TYPE PMRP_PRODUCT_RAW.

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

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

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


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PMRP_PRODUCT_RAW ASSIGNING <PMRP_PRODUCT_RAW>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PMRP_PRODUCT_RAW>-DISST = 1.
<PMRP_PRODUCT_RAW>-MATNR = 1.
<PMRP_PRODUCT_RAW>-WERKS = 1.
<PMRP_PRODUCT_RAW>-BERID = 1.
<PMRP_PRODUCT_RAW>-SOBSL = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PMRP_PRODUCT_RAW-ITSOB, sy-vline,
WA_PMRP_PRODUCT_RAW-BAUGR, sy-vline,
WA_PMRP_PRODUCT_RAW-UOM, sy-vline,
WA_PMRP_PRODUCT_RAW-FABKL, sy-vline,
WA_PMRP_PRODUCT_RAW-BESKZ, sy-vline,
WA_PMRP_PRODUCT_RAW-DISPO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PMRP_PRODUCT_RAW 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_PMRP_PRODUCT_RAW 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_PMRP_PRODUCT_RAW INTO WA_PMRP_PRODUCT_RAW. *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 MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_PMRP_PRODUCT_RAW-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PMRP_PRODUCT_RAW-MATNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field BAUGR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_PMRP_PRODUCT_RAW-BAUGR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PMRP_PRODUCT_RAW-BAUGR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field UOM CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_PMRP_PRODUCT_RAW-UOM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PMRP_PRODUCT_RAW-UOM.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field NFMAT CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_PMRP_PRODUCT_RAW-NFMAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PMRP_PRODUCT_RAW-NFMAT.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit MATN1, internal->external for field IMATN CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_PMRP_PRODUCT_RAW-IMATN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PMRP_PRODUCT_RAW-IMATN.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field VPMAT CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_PMRP_PRODUCT_RAW-VPMAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PMRP_PRODUCT_RAW-VPMAT.
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_PMRP_PRODUCT_RAW_STR,
DISST TYPE STRING,
MATNR TYPE STRING,
WERKS TYPE STRING,
BERID TYPE STRING,
SOBSL TYPE STRING,
ITSOB TYPE STRING,
BAUGR TYPE STRING,
UOM TYPE STRING,
FABKL TYPE STRING,
BESKZ TYPE STRING,
DISPO TYPE STRING,
DISMM TYPE STRING,
DISVF TYPE STRING,
MATKL TYPE STRING,
EISBE TYPE STRING,
DZEIT TYPE STRING,
PLIFZ TYPE STRING,
WEBAZ TYPE STRING,
WRK02 TYPE STRING,
REWRK TYPE STRING,
KZAUS TYPE STRING,
AUSDT TYPE STRING,
NFMAT TYPE STRING,
PICNUM TYPE STRING,
IMATN TYPE STRING,
KZKFG TYPE STRING,
CUOBJ TYPE STRING,
VERKZ TYPE STRING,
KZKUP TYPE STRING,
DUMPS TYPE STRING,
STRGR TYPE STRING,
MISKZ TYPE STRING,
VPMAT TYPE STRING,
VPWRK TYPE STRING,
SFTY_STK_METH TYPE STRING,
STOCK_QTY TYPE STRING,
AGG_STOCK_QTY TYPE STRING,
AGG_SAFETY_STOCK TYPE STRING,
RECURS_BOM TYPE STRING,
SUCC_DONE TYPE STRING,
BOM_EX_RERUN TYPE STRING,
EXCLUDED TYPE STRING,
COMMENT TYPE STRING,
KANBAN_INDICATOR TYPE STRING,END OF T_EKKO_STR. DATA: WA_PMRP_PRODUCT_RAW_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_PMRP_PRODUCT_RAW_STR-DISST sy-vline
WA_PMRP_PRODUCT_RAW_STR-MATNR sy-vline
WA_PMRP_PRODUCT_RAW_STR-WERKS sy-vline
WA_PMRP_PRODUCT_RAW_STR-BERID sy-vline
WA_PMRP_PRODUCT_RAW_STR-SOBSL sy-vline
WA_PMRP_PRODUCT_RAW_STR-ITSOB sy-vline
WA_PMRP_PRODUCT_RAW_STR-BAUGR sy-vline
WA_PMRP_PRODUCT_RAW_STR-UOM sy-vline
WA_PMRP_PRODUCT_RAW_STR-FABKL sy-vline
WA_PMRP_PRODUCT_RAW_STR-BESKZ sy-vline
WA_PMRP_PRODUCT_RAW_STR-DISPO sy-vline
WA_PMRP_PRODUCT_RAW_STR-DISMM sy-vline
WA_PMRP_PRODUCT_RAW_STR-DISVF sy-vline
WA_PMRP_PRODUCT_RAW_STR-MATKL sy-vline
WA_PMRP_PRODUCT_RAW_STR-EISBE sy-vline
WA_PMRP_PRODUCT_RAW_STR-DZEIT sy-vline
WA_PMRP_PRODUCT_RAW_STR-PLIFZ sy-vline
WA_PMRP_PRODUCT_RAW_STR-WEBAZ sy-vline
WA_PMRP_PRODUCT_RAW_STR-WRK02 sy-vline
WA_PMRP_PRODUCT_RAW_STR-REWRK sy-vline
WA_PMRP_PRODUCT_RAW_STR-KZAUS sy-vline
WA_PMRP_PRODUCT_RAW_STR-AUSDT sy-vline
WA_PMRP_PRODUCT_RAW_STR-NFMAT sy-vline
WA_PMRP_PRODUCT_RAW_STR-PICNUM sy-vline
WA_PMRP_PRODUCT_RAW_STR-IMATN sy-vline
WA_PMRP_PRODUCT_RAW_STR-KZKFG sy-vline
WA_PMRP_PRODUCT_RAW_STR-CUOBJ sy-vline
WA_PMRP_PRODUCT_RAW_STR-VERKZ sy-vline
WA_PMRP_PRODUCT_RAW_STR-KZKUP sy-vline
WA_PMRP_PRODUCT_RAW_STR-DUMPS sy-vline
WA_PMRP_PRODUCT_RAW_STR-STRGR sy-vline
WA_PMRP_PRODUCT_RAW_STR-MISKZ sy-vline
WA_PMRP_PRODUCT_RAW_STR-VPMAT sy-vline
WA_PMRP_PRODUCT_RAW_STR-VPWRK sy-vline
WA_PMRP_PRODUCT_RAW_STR-SFTY_STK_METH sy-vline
WA_PMRP_PRODUCT_RAW_STR-STOCK_QTY sy-vline
WA_PMRP_PRODUCT_RAW_STR-AGG_STOCK_QTY sy-vline
WA_PMRP_PRODUCT_RAW_STR-AGG_SAFETY_STOCK sy-vline
WA_PMRP_PRODUCT_RAW_STR-RECURS_BOM sy-vline
WA_PMRP_PRODUCT_RAW_STR-SUCC_DONE sy-vline
WA_PMRP_PRODUCT_RAW_STR-BOM_EX_RERUN sy-vline
WA_PMRP_PRODUCT_RAW_STR-EXCLUDED sy-vline
WA_PMRP_PRODUCT_RAW_STR-COMMENT sy-vline
WA_PMRP_PRODUCT_RAW_STR-KANBAN_INDICATOR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.