ABAP Select data from SAP table MMRP_MD_DYNP01 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 MMRP_MD_DYNP01 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 MMRP_MD_DYNP01. 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 MMRP_MD_DYNP01 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_MMRP_MD_DYNP01 TYPE STANDARD TABLE OF MMRP_MD_DYNP01,
      WA_MMRP_MD_DYNP01 TYPE MMRP_MD_DYNP01,
      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: <MMRP_MD_DYNP01> TYPE MMRP_MD_DYNP01.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM MMRP_MD_DYNP01
*  INTO TABLE @DATA(IT_MMRP_MD_DYNP012).
*--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_MMRP_MD_DYNP01 INDEX 1 INTO DATA(WA_MMRP_MD_DYNP012).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_MMRP_MD_DYNP01 ASSIGNING <MMRP_MD_DYNP01>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<MMRP_MD_DYNP01>-VRSIOID = 1.
<MMRP_MD_DYNP01>-MATNR = 1.
<MMRP_MD_DYNP01>-LOCNO = 1.
<MMRP_MD_DYNP01>-TR_NAME = 1.
<MMRP_MD_DYNP01>-SHOW_BF_INFO = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_MMRP_MD_DYNP01-PVS_HEADER, sy-vline,
WA_MMRP_MD_DYNP01-PLAN_HEADER, sy-vline,
WA_MMRP_MD_DYNP01-LINE_HEADER, sy-vline,
WA_MMRP_MD_DYNP01-NROFALLORDERS, sy-vline,
WA_MMRP_MD_DYNP01-ATDUMMY, sy-vline,
WA_MMRP_MD_DYNP01-ATNAM, sy-vline.
ENDLOOP. *Add any further fields from structure WA_MMRP_MD_DYNP01 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_MMRP_MD_DYNP01 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_MMRP_MD_DYNP01 INTO WA_MMRP_MD_DYNP01. *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 VRSIO, internal->external for field VRSIOID CALL FUNCTION 'CONVERSION_EXIT_VRSIO_OUTPUT' EXPORTING input = WA_MMRP_MD_DYNP01-VRSIOID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_MMRP_MD_DYNP01-VRSIOID.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit CUNIT, internal->external for field FC_ORDER_MEINS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_MMRP_MD_DYNP01-FC_ORDER_MEINS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_MMRP_MD_DYNP01-FC_ORDER_MEINS.
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_MMRP_MD_DYNP01_STR,
VRSIOID TYPE STRING,
MATNR TYPE STRING,
LOCNO TYPE STRING,
TR_NAME TYPE STRING,
SHOW_BF_INFO TYPE STRING,
PVS_HEADER TYPE STRING,
PLAN_HEADER TYPE STRING,
LINE_HEADER TYPE STRING,
NROFALLORDERS TYPE STRING,
ATDUMMY TYPE STRING,
ATNAM TYPE STRING,
ATWRT TYPE STRING,
NROFCONFIGS TYPE STRING,
ATBITS TYPE STRING,
PVDUMMY TYPE STRING,
PNODE TYPE STRING,
POSVAR TYPE STRING,
DATEFROM TYPE STRING,
ICON TYPE STRING,
PV_MATNR TYPE STRING,
NROFORDERS TYPE STRING,
PVBITS TYPE STRING,
ACTDUMMY TYPE STRING,
ACTIVITY TYPE STRING,
ACTMODE TYPE STRING,
ACTDATEFROM TYPE STRING,
ACTNROFORDERS TYPE STRING,
ACTBITS TYPE STRING,
FC_ORDER TYPE STRING,
FC_ORDER_QUAN TYPE STRING,
FC_ORDER_MEINS TYPE STRING,
FC_EXPLDATE TYPE STRING,
FC_REQDATE TYPE STRING,
FC_REQTIME TYPE STRING,
KIND_OF_MATRIX TYPE STRING,
RADIO_ORDER TYPE STRING,
RADIO_EXPLDATE TYPE STRING,
RADIO_REQDATE TYPE STRING,
RADIO_EXPLDATE2 TYPE STRING,
RADIO_REQDATE2 TYPE STRING,END OF T_EKKO_STR. DATA: WA_MMRP_MD_DYNP01_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_MMRP_MD_DYNP01_STR-VRSIOID sy-vline
WA_MMRP_MD_DYNP01_STR-MATNR sy-vline
WA_MMRP_MD_DYNP01_STR-LOCNO sy-vline
WA_MMRP_MD_DYNP01_STR-TR_NAME sy-vline
WA_MMRP_MD_DYNP01_STR-SHOW_BF_INFO sy-vline
WA_MMRP_MD_DYNP01_STR-PVS_HEADER sy-vline
WA_MMRP_MD_DYNP01_STR-PLAN_HEADER sy-vline
WA_MMRP_MD_DYNP01_STR-LINE_HEADER sy-vline
WA_MMRP_MD_DYNP01_STR-NROFALLORDERS sy-vline
WA_MMRP_MD_DYNP01_STR-ATDUMMY sy-vline
WA_MMRP_MD_DYNP01_STR-ATNAM sy-vline
WA_MMRP_MD_DYNP01_STR-ATWRT sy-vline
WA_MMRP_MD_DYNP01_STR-NROFCONFIGS sy-vline
WA_MMRP_MD_DYNP01_STR-ATBITS sy-vline
WA_MMRP_MD_DYNP01_STR-PVDUMMY sy-vline
WA_MMRP_MD_DYNP01_STR-PNODE sy-vline
WA_MMRP_MD_DYNP01_STR-POSVAR sy-vline
WA_MMRP_MD_DYNP01_STR-DATEFROM sy-vline
WA_MMRP_MD_DYNP01_STR-ICON sy-vline
WA_MMRP_MD_DYNP01_STR-PV_MATNR sy-vline
WA_MMRP_MD_DYNP01_STR-NROFORDERS sy-vline
WA_MMRP_MD_DYNP01_STR-PVBITS sy-vline
WA_MMRP_MD_DYNP01_STR-ACTDUMMY sy-vline
WA_MMRP_MD_DYNP01_STR-ACTIVITY sy-vline
WA_MMRP_MD_DYNP01_STR-ACTMODE sy-vline
WA_MMRP_MD_DYNP01_STR-ACTDATEFROM sy-vline
WA_MMRP_MD_DYNP01_STR-ACTNROFORDERS sy-vline
WA_MMRP_MD_DYNP01_STR-ACTBITS sy-vline
WA_MMRP_MD_DYNP01_STR-FC_ORDER sy-vline
WA_MMRP_MD_DYNP01_STR-FC_ORDER_QUAN sy-vline
WA_MMRP_MD_DYNP01_STR-FC_ORDER_MEINS sy-vline
WA_MMRP_MD_DYNP01_STR-FC_EXPLDATE sy-vline
WA_MMRP_MD_DYNP01_STR-FC_REQDATE sy-vline
WA_MMRP_MD_DYNP01_STR-FC_REQTIME sy-vline
WA_MMRP_MD_DYNP01_STR-KIND_OF_MATRIX sy-vline
WA_MMRP_MD_DYNP01_STR-RADIO_ORDER sy-vline
WA_MMRP_MD_DYNP01_STR-RADIO_EXPLDATE sy-vline
WA_MMRP_MD_DYNP01_STR-RADIO_REQDATE sy-vline
WA_MMRP_MD_DYNP01_STR-RADIO_EXPLDATE2 sy-vline
WA_MMRP_MD_DYNP01_STR-RADIO_REQDATE2 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.