ABAP Select data from SAP table TPMUS 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 TPMUS 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 TPMUS. 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 TPMUS 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_TPMUS TYPE STANDARD TABLE OF TPMUS,
      WA_TPMUS TYPE TPMUS,
      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: <TPMUS> TYPE TPMUS.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM TPMUS
*  INTO TABLE @DATA(IT_TPMUS2).
*--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_TPMUS INDEX 1 INTO DATA(WA_TPMUS2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_TPMUS ASSIGNING <TPMUS>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<TPMUS>-MANDT = 1.
<TPMUS>-UNAME = 1.
<TPMUS>-IWERK = 1.
<TPMUS>-AUART = 1.
<TPMUS>-INGRP = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_TPMUS-QMART, sy-vline,
WA_TPMUS-OKSTAR, sy-vline,
WA_TPMUS-OEKORG, sy-vline,
WA_TPMUS-OEKGRP, sy-vline,
WA_TPMUS-OMATKL, sy-vline,
WA_TPMUS-OWEMPF, sy-vline.
ENDLOOP. *Add any further fields from structure WA_TPMUS 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_TPMUS 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_TPMUS INTO WA_TPMUS. *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 OKSTAR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_TPMUS-OKSTAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TPMUS-OKSTAR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

*Conversion exit GERNR, internal->external for field SERIALNR CALL FUNCTION 'CONVERSION_EXIT_GERNR_OUTPUT' EXPORTING input = WA_TPMUS-SERIALNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TPMUS-SERIALNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit GERNR, internal->external for field QSERIALNR CALL FUNCTION 'CONVERSION_EXIT_GERNR_OUTPUT' EXPORTING input = WA_TPMUS-QSERIALNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TPMUS-QSERIALNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit ABPSP, internal->external for field PSP_NR CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_TPMUS-PSP_NR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TPMUS-PSP_NR.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit EAMQF, internal->external for field HORIZ_QUALIFIER CALL FUNCTION 'CONVERSION_EXIT_EAMQF_OUTPUT' EXPORTING input = WA_TPMUS-HORIZ_QUALIFIER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TPMUS-HORIZ_QUALIFIER.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field HUNIT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_TPMUS-HUNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TPMUS-HUNIT.
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_TPMUS_STR,
MANDT TYPE STRING,
UNAME TYPE STRING,
IWERK TYPE STRING,
AUART TYPE STRING,
INGRP TYPE STRING,
QMART TYPE STRING,
OKSTAR TYPE STRING,
OEKORG TYPE STRING,
OEKGRP TYPE STRING,
OMATKL TYPE STRING,
OWEMPF TYPE STRING,
OABLAD TYPE STRING,
OMGVRG TYPE STRING,
OMEINH TYPE STRING,
MKSTAR TYPE STRING,
MEKORG TYPE STRING,
MEKGRP TYPE STRING,
MMATKL TYPE STRING,
MWEMPF TYPE STRING,
MABLAD TYPE STRING,
PM_OBJTY TYPE STRING,
GEWRK TYPE STRING,
GSBER TYPE STRING,
TPLNR TYPE STRING,
EQUNR TYPE STRING,
BAUTL TYPE STRING,
SERIALNR TYPE STRING,
MATNR TYPE STRING,
PRCTR TYPE STRING,
SCREENTY TYPE STRING,
SEL_OPR TYPE STRING,
WCENTER TYPE STRING,
NEW_NUM TYPE STRING,
ONE_OPR TYPE STRING,
SEQUENC TYPE STRING,
BUIA TYPE STRING,
BUIP TYPE STRING,
ABRV TYPE STRING,
PRWIN TYPE STRING,
VKBUR TYPE STRING,
VKGRP TYPE STRING,
SPART TYPE STRING,
VKORG TYPE STRING,
VTWEG TYPE STRING,
QQMART TYPE STRING,
QSCREENTY TYPE STRING,
QMATNR TYPE STRING,
QSERIALNR TYPE STRING,
QMAWERK TYPE STRING,
QQKUNUM TYPE STRING,
QLIFNUM TYPE STRING,
QQLIFNR TYPE STRING,
QEKORG TYPE STRING,
QBKGRP TYPE STRING,
QARBPL TYPE STRING,
INDSTATUSB TYPE STRING,
INDTOOLB TYPE STRING,
ABDU TYPE STRING,
LTHE_ON TYPE STRING,
ADDT_ON TYPE STRING,
PMAD_ON TYPE STRING,
PROFIL TYPE STRING,
ACTIONBOX TYPE STRING,
QGMART TYPE STRING,
QCMART TYPE STRING,
AUSWIRK TYPE STRING,
PSP_NR TYPE STRING,
OPPONENT TYPE STRING,
TL_DEFAULT TYPE STRING,
PRTWOSAVE TYPE STRING,
EAMS_DLFL TYPE STRING,
EAMS_RESET_DLFL TYPE STRING,
EAMS_TECO TYPE STRING,
EAMS_RESET_TECO TYPE STRING,
EAMS_CLOSE TYPE STRING,
EAMS_DO_NOT_EXEC TYPE STRING,
EAMS_TECO_CONF TYPE STRING,
EAMS_NO_SF_REL TYPE STRING,
EAMS_AUART_UC TYPE STRING,
EAM_DEFAULT_STORAGE_LOCATION TYPE STRING,
WARPL TYPE STRING,
WPTXT TYPE STRING,
FCODE TYPE STRING,
MPLANREF_INACTIVE TYPE STRING,
MPLANREF_INIT_DT_AND_CNTR TYPE STRING,
MPLANREF_COPY_HEADER TYPE STRING,
MPLANREF_COPY_SCHED_PARAM TYPE STRING,
MPLANREF_COPY_MAINT_ITEMS TYPE STRING,
MPLANREF_COPY_OBJECT_LIST TYPE STRING,
MPLANREF_COPY_CUST_FIELDS TYPE STRING,
MPLANREF_COPY_CLFN TYPE STRING,
MPLANREF_COPY_COMPL TYPE STRING,
VSPOS TYPE STRING,
VSNEG TYPE STRING,
TOPOS TYPE STRING,
TONEG TYPE STRING,
FABKL TYPE STRING,
HORIZ TYPE STRING,
HORIZ_QUALIFIER TYPE STRING,
ABRHO TYPE STRING,
HUNIT TYPE STRING,
CALL_CONFIRM TYPE STRING,
ZEIT TYPE STRING,
STICH TYPE STRING,
KALENDER TYPE STRING,
OR_KNZ TYPE STRING,
AND_KNZ TYPE STRING,
SFAKT TYPE STRING,
RECIPIENT_LOCATION_CODE TYPE STRING,
RWEMPF TYPE STRING,
RABLAD TYPE STRING,
REAM_DEFAULT_STORAGE_LOCATION TYPE STRING,
RQMAWERK TYPE STRING,END OF T_EKKO_STR. DATA: WA_TPMUS_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_TPMUS_STR-MANDT sy-vline
WA_TPMUS_STR-UNAME sy-vline
WA_TPMUS_STR-IWERK sy-vline
WA_TPMUS_STR-AUART sy-vline
WA_TPMUS_STR-INGRP sy-vline
WA_TPMUS_STR-QMART sy-vline
WA_TPMUS_STR-OKSTAR sy-vline
WA_TPMUS_STR-OEKORG sy-vline
WA_TPMUS_STR-OEKGRP sy-vline
WA_TPMUS_STR-OMATKL sy-vline
WA_TPMUS_STR-OWEMPF sy-vline
WA_TPMUS_STR-OABLAD sy-vline
WA_TPMUS_STR-OMGVRG sy-vline
WA_TPMUS_STR-OMEINH sy-vline
WA_TPMUS_STR-MKSTAR sy-vline
WA_TPMUS_STR-MEKORG sy-vline
WA_TPMUS_STR-MEKGRP sy-vline
WA_TPMUS_STR-MMATKL sy-vline
WA_TPMUS_STR-MWEMPF sy-vline
WA_TPMUS_STR-MABLAD sy-vline
WA_TPMUS_STR-PM_OBJTY sy-vline
WA_TPMUS_STR-GEWRK sy-vline
WA_TPMUS_STR-GSBER sy-vline
WA_TPMUS_STR-TPLNR sy-vline
WA_TPMUS_STR-EQUNR sy-vline
WA_TPMUS_STR-BAUTL sy-vline
WA_TPMUS_STR-SERIALNR sy-vline
WA_TPMUS_STR-MATNR sy-vline
WA_TPMUS_STR-PRCTR sy-vline
WA_TPMUS_STR-SCREENTY sy-vline
WA_TPMUS_STR-SEL_OPR sy-vline
WA_TPMUS_STR-WCENTER sy-vline
WA_TPMUS_STR-NEW_NUM sy-vline
WA_TPMUS_STR-ONE_OPR sy-vline
WA_TPMUS_STR-SEQUENC sy-vline
WA_TPMUS_STR-BUIA sy-vline
WA_TPMUS_STR-BUIP sy-vline
WA_TPMUS_STR-ABRV sy-vline
WA_TPMUS_STR-PRWIN sy-vline
WA_TPMUS_STR-VKBUR sy-vline
WA_TPMUS_STR-VKGRP sy-vline
WA_TPMUS_STR-SPART sy-vline
WA_TPMUS_STR-VKORG sy-vline
WA_TPMUS_STR-VTWEG sy-vline
WA_TPMUS_STR-QQMART sy-vline
WA_TPMUS_STR-QSCREENTY sy-vline
WA_TPMUS_STR-QMATNR sy-vline
WA_TPMUS_STR-QSERIALNR sy-vline
WA_TPMUS_STR-QMAWERK sy-vline
WA_TPMUS_STR-QQKUNUM sy-vline
WA_TPMUS_STR-QLIFNUM sy-vline
WA_TPMUS_STR-QQLIFNR sy-vline
WA_TPMUS_STR-QEKORG sy-vline
WA_TPMUS_STR-QBKGRP sy-vline
WA_TPMUS_STR-QARBPL sy-vline
WA_TPMUS_STR-INDSTATUSB sy-vline
WA_TPMUS_STR-INDTOOLB sy-vline
WA_TPMUS_STR-ABDU sy-vline
WA_TPMUS_STR-LTHE_ON sy-vline
WA_TPMUS_STR-ADDT_ON sy-vline
WA_TPMUS_STR-PMAD_ON sy-vline
WA_TPMUS_STR-PROFIL sy-vline
WA_TPMUS_STR-ACTIONBOX sy-vline
WA_TPMUS_STR-QGMART sy-vline
WA_TPMUS_STR-QCMART sy-vline
WA_TPMUS_STR-AUSWIRK sy-vline
WA_TPMUS_STR-PSP_NR sy-vline
WA_TPMUS_STR-OPPONENT sy-vline
WA_TPMUS_STR-TL_DEFAULT sy-vline
WA_TPMUS_STR-PRTWOSAVE sy-vline
WA_TPMUS_STR-EAMS_DLFL sy-vline
WA_TPMUS_STR-EAMS_RESET_DLFL sy-vline
WA_TPMUS_STR-EAMS_TECO sy-vline
WA_TPMUS_STR-EAMS_RESET_TECO sy-vline
WA_TPMUS_STR-EAMS_CLOSE sy-vline
WA_TPMUS_STR-EAMS_DO_NOT_EXEC sy-vline
WA_TPMUS_STR-EAMS_TECO_CONF sy-vline
WA_TPMUS_STR-EAMS_NO_SF_REL sy-vline
WA_TPMUS_STR-EAMS_AUART_UC sy-vline
WA_TPMUS_STR-EAM_DEFAULT_STORAGE_LOCATION sy-vline
WA_TPMUS_STR-WARPL sy-vline
WA_TPMUS_STR-WPTXT sy-vline
WA_TPMUS_STR-FCODE sy-vline
WA_TPMUS_STR-MPLANREF_INACTIVE sy-vline
WA_TPMUS_STR-MPLANREF_INIT_DT_AND_CNTR sy-vline
WA_TPMUS_STR-MPLANREF_COPY_HEADER sy-vline
WA_TPMUS_STR-MPLANREF_COPY_SCHED_PARAM sy-vline
WA_TPMUS_STR-MPLANREF_COPY_MAINT_ITEMS sy-vline
WA_TPMUS_STR-MPLANREF_COPY_OBJECT_LIST sy-vline
WA_TPMUS_STR-MPLANREF_COPY_CUST_FIELDS sy-vline
WA_TPMUS_STR-MPLANREF_COPY_CLFN sy-vline
WA_TPMUS_STR-MPLANREF_COPY_COMPL sy-vline
WA_TPMUS_STR-VSPOS sy-vline
WA_TPMUS_STR-VSNEG sy-vline
WA_TPMUS_STR-TOPOS sy-vline
WA_TPMUS_STR-TONEG sy-vline
WA_TPMUS_STR-FABKL sy-vline
WA_TPMUS_STR-HORIZ sy-vline
WA_TPMUS_STR-HORIZ_QUALIFIER sy-vline
WA_TPMUS_STR-ABRHO sy-vline
WA_TPMUS_STR-HUNIT sy-vline
WA_TPMUS_STR-CALL_CONFIRM sy-vline
WA_TPMUS_STR-ZEIT sy-vline
WA_TPMUS_STR-STICH sy-vline
WA_TPMUS_STR-KALENDER sy-vline
WA_TPMUS_STR-OR_KNZ sy-vline
WA_TPMUS_STR-AND_KNZ sy-vline
WA_TPMUS_STR-SFAKT sy-vline
WA_TPMUS_STR-RECIPIENT_LOCATION_CODE sy-vline
WA_TPMUS_STR-RWEMPF sy-vline
WA_TPMUS_STR-RABLAD sy-vline
WA_TPMUS_STR-REAM_DEFAULT_STORAGE_LOCATION sy-vline
WA_TPMUS_STR-RQMAWERK sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.