ABAP Select data from SAP table VMP_S_PLNSCP_DET 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 VMP_S_PLNSCP_DET 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 VMP_S_PLNSCP_DET. 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 VMP_S_PLNSCP_DET 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_VMP_S_PLNSCP_DET TYPE STANDARD TABLE OF VMP_S_PLNSCP_DET,
      WA_VMP_S_PLNSCP_DET TYPE VMP_S_PLNSCP_DET,
      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: <VMP_S_PLNSCP_DET> TYPE VMP_S_PLNSCP_DET.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM VMP_S_PLNSCP_DET
*  INTO TABLE @DATA(IT_VMP_S_PLNSCP_DET2).
*--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_VMP_S_PLNSCP_DET INDEX 1 INTO DATA(WA_VMP_S_PLNSCP_DET2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_VMP_S_PLNSCP_DET ASSIGNING <VMP_S_PLNSCP_DET>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<VMP_S_PLNSCP_DET>-ALTERNATIVE = 1.
<VMP_S_PLNSCP_DET>-DOKNR = 1.
<VMP_S_PLNSCP_DET>-DOKAR = 1.
<VMP_S_PLNSCP_DET>-DOKTL = 1.
<VMP_S_PLNSCP_DET>-DOKVR = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_VMP_S_PLNSCP_DET-DESCR, sy-vline,
WA_VMP_S_PLNSCP_DET-RFCDEST, sy-vline,
WA_VMP_S_PLNSCP_DET-MATNR, sy-vline,
WA_VMP_S_PLNSCP_DET-WERKS, sy-vline,
WA_VMP_S_PLNSCP_DET-STLAN, sy-vline,
WA_VMP_S_PLNSCP_DET-STLAL, sy-vline.
ENDLOOP. *Add any further fields from structure WA_VMP_S_PLNSCP_DET 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_VMP_S_PLNSCP_DET 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_VMP_S_PLNSCP_DET INTO WA_VMP_S_PLNSCP_DET. *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 ALPHA, internal->external for field ALTERNATIVE CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VMP_S_PLNSCP_DET-ALTERNATIVE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VMP_S_PLNSCP_DET-ALTERNATIVE.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

*Conversion exit ABPSN, internal->external for field PSPNR CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT' EXPORTING input = WA_VMP_S_PLNSCP_DET-PSPNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VMP_S_PLNSCP_DET-PSPNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit ALPHA, internal->external for field SOURCE_CHANGE_NUMBER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VMP_S_PLNSCP_DET-SOURCE_CHANGE_NUMBER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VMP_S_PLNSCP_DET-SOURCE_CHANGE_NUMBER.
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_VMP_S_PLNSCP_DET_STR,
ALTERNATIVE TYPE STRING,
DOKNR TYPE STRING,
DOKAR TYPE STRING,
DOKTL TYPE STRING,
DOKVR TYPE STRING,
DESCR TYPE STRING,
RFCDEST TYPE STRING,
MATNR TYPE STRING,
WERKS TYPE STRING,
STLAN TYPE STRING,
STLAL TYPE STRING,
AENNR TYPE STRING,
PURC_PART TYPE STRING,
CHECKOUT_FLAG TYPE STRING,
MAKTX TYPE STRING,
PLNSCP_SCENARIO TYPE STRING,
LAST_SYNC_ON TYPE STRING,
LAST_SYNC_BY TYPE STRING,
CHECKOUT_USER TYPE STRING,
SRC_MATNR TYPE STRING,
PSM_NODE TYPE STRING,
PSM_EXP_DATE TYPE STRING,
SIMULATION TYPE STRING,
TRGT_MATNR TYPE STRING,
STLTY TYPE STRING,
MAKTX_TRGT TYPE STRING,
PSPNR TYPE STRING,
VBELN TYPE STRING,
POSNR TYPE STRING,
DOCUMENTID TYPE STRING,
ROUTING_ECN TYPE STRING,
STLST TYPE STRING,
ALT_STATUS TYPE STRING,
PSM_NODE_CLASS TYPE STRING,
PSM_CLASS_TYPE TYPE STRING,
PSM_PLANT TYPE STRING,
PSM_USAGE TYPE STRING,
REF_MATNR TYPE STRING,
WITH_MBOMS TYPE STRING,
CREATED_ON TYPE STRING,
CREATED_BY TYPE STRING,
SOURCE_FILTER TYPE STRING,
SOURCE_PLANT TYPE STRING,
SOURCE_BOM_ALT TYPE STRING,
SOURCE_BOM_USAGE TYPE STRING,
SOURCE_VALIDITY TYPE STRING,
SOURCE_BOM_TYPE TYPE STRING,
IS_PARAMETER_EFFECTIVITY TYPE STRING,
RELATED_PLANNINGSCOPE TYPE STRING,
SOURCE_CHANGE_NUMBER TYPE STRING,
CHANGE_RECORD_ID TYPE STRING,END OF T_EKKO_STR. DATA: WA_VMP_S_PLNSCP_DET_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_VMP_S_PLNSCP_DET_STR-ALTERNATIVE sy-vline
WA_VMP_S_PLNSCP_DET_STR-DOKNR sy-vline
WA_VMP_S_PLNSCP_DET_STR-DOKAR sy-vline
WA_VMP_S_PLNSCP_DET_STR-DOKTL sy-vline
WA_VMP_S_PLNSCP_DET_STR-DOKVR sy-vline
WA_VMP_S_PLNSCP_DET_STR-DESCR sy-vline
WA_VMP_S_PLNSCP_DET_STR-RFCDEST sy-vline
WA_VMP_S_PLNSCP_DET_STR-MATNR sy-vline
WA_VMP_S_PLNSCP_DET_STR-WERKS sy-vline
WA_VMP_S_PLNSCP_DET_STR-STLAN sy-vline
WA_VMP_S_PLNSCP_DET_STR-STLAL sy-vline
WA_VMP_S_PLNSCP_DET_STR-AENNR sy-vline
WA_VMP_S_PLNSCP_DET_STR-PURC_PART sy-vline
WA_VMP_S_PLNSCP_DET_STR-CHECKOUT_FLAG sy-vline
WA_VMP_S_PLNSCP_DET_STR-MAKTX sy-vline
WA_VMP_S_PLNSCP_DET_STR-PLNSCP_SCENARIO sy-vline
WA_VMP_S_PLNSCP_DET_STR-LAST_SYNC_ON sy-vline
WA_VMP_S_PLNSCP_DET_STR-LAST_SYNC_BY sy-vline
WA_VMP_S_PLNSCP_DET_STR-CHECKOUT_USER sy-vline
WA_VMP_S_PLNSCP_DET_STR-SRC_MATNR sy-vline
WA_VMP_S_PLNSCP_DET_STR-PSM_NODE sy-vline
WA_VMP_S_PLNSCP_DET_STR-PSM_EXP_DATE sy-vline
WA_VMP_S_PLNSCP_DET_STR-SIMULATION sy-vline
WA_VMP_S_PLNSCP_DET_STR-TRGT_MATNR sy-vline
WA_VMP_S_PLNSCP_DET_STR-STLTY sy-vline
WA_VMP_S_PLNSCP_DET_STR-MAKTX_TRGT sy-vline
WA_VMP_S_PLNSCP_DET_STR-PSPNR sy-vline
WA_VMP_S_PLNSCP_DET_STR-VBELN sy-vline
WA_VMP_S_PLNSCP_DET_STR-POSNR sy-vline
WA_VMP_S_PLNSCP_DET_STR-DOCUMENTID sy-vline
WA_VMP_S_PLNSCP_DET_STR-ROUTING_ECN sy-vline
WA_VMP_S_PLNSCP_DET_STR-STLST sy-vline
WA_VMP_S_PLNSCP_DET_STR-ALT_STATUS sy-vline
WA_VMP_S_PLNSCP_DET_STR-PSM_NODE_CLASS sy-vline
WA_VMP_S_PLNSCP_DET_STR-PSM_CLASS_TYPE sy-vline
WA_VMP_S_PLNSCP_DET_STR-PSM_PLANT sy-vline
WA_VMP_S_PLNSCP_DET_STR-PSM_USAGE sy-vline
WA_VMP_S_PLNSCP_DET_STR-REF_MATNR sy-vline
WA_VMP_S_PLNSCP_DET_STR-WITH_MBOMS sy-vline
WA_VMP_S_PLNSCP_DET_STR-CREATED_ON sy-vline
WA_VMP_S_PLNSCP_DET_STR-CREATED_BY sy-vline
WA_VMP_S_PLNSCP_DET_STR-SOURCE_FILTER sy-vline
WA_VMP_S_PLNSCP_DET_STR-SOURCE_PLANT sy-vline
WA_VMP_S_PLNSCP_DET_STR-SOURCE_BOM_ALT sy-vline
WA_VMP_S_PLNSCP_DET_STR-SOURCE_BOM_USAGE sy-vline
WA_VMP_S_PLNSCP_DET_STR-SOURCE_VALIDITY sy-vline
WA_VMP_S_PLNSCP_DET_STR-SOURCE_BOM_TYPE sy-vline
WA_VMP_S_PLNSCP_DET_STR-IS_PARAMETER_EFFECTIVITY sy-vline
WA_VMP_S_PLNSCP_DET_STR-RELATED_PLANNINGSCOPE sy-vline
WA_VMP_S_PLNSCP_DET_STR-SOURCE_CHANGE_NUMBER sy-vline
WA_VMP_S_PLNSCP_DET_STR-CHANGE_RECORD_ID sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.