ABAP Select data from SAP table KOMZRPEX 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 KOMZRPEX 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 KOMZRPEX. 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 KOMZRPEX 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_KOMZRPEX TYPE STANDARD TABLE OF KOMZRPEX,
      WA_KOMZRPEX TYPE KOMZRPEX,
      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: <KOMZRPEX> TYPE KOMZRPEX.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM KOMZRPEX
*  INTO TABLE @DATA(IT_KOMZRPEX2).
*--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_KOMZRPEX INDEX 1 INTO DATA(WA_KOMZRPEX2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_KOMZRPEX ASSIGNING <KOMZRPEX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<KOMZRPEX>-WBELN = 1.
<KOMZRPEX>-POSNR = 1.
<KOMZRPEX>-MATNR = 1.
<KOMZRPEX>-MATKL = 1.
<KOMZRPEX>-WERKS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_KOMZRPEX-LTSNR, sy-vline,
WA_KOMZRPEX-MWSKZ, sy-vline,
WA_KOMZRPEX-MWSK2, sy-vline,
WA_KOMZRPEX-PRSDT, sy-vline,
WA_KOMZRPEX-PNETWR, sy-vline,
WA_KOMZRPEX-PBRTWR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_KOMZRPEX 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_KOMZRPEX 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_KOMZRPEX INTO WA_KOMZRPEX. *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 WBELN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_KOMZRPEX-WBELN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KOMZRPEX-WBELN.
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_KOMZRPEX_STR,
WBELN TYPE STRING,
POSNR TYPE STRING,
MATNR TYPE STRING,
MATKL TYPE STRING,
WERKS TYPE STRING,
LTSNR TYPE STRING,
MWSKZ TYPE STRING,
MWSK2 TYPE STRING,
PRSDT TYPE STRING,
PNETWR TYPE STRING,
PBRTWR TYPE STRING,
PMWSBP TYPE STRING,
SKTOF TYPE STRING,
WBELNV TYPE STRING,
POSNRV TYPE STRING,
LFTYPV TYPE STRING,
LFGRU TYPE STRING,
ARKTX TYPE STRING,
TXJCD TYPE STRING,
KOSTL TYPE STRING,
PRCTR TYPE STRING,
EKKOL TYPE STRING,
GSBER TYPE STRING,
PNETPR TYPE STRING,
BONUS TYPE STRING,
EBON2 TYPE STRING,
EBON3 TYPE STRING,
ITEMCAT TYPE STRING,
IDNLF TYPE STRING,
CONTRACT TYPE STRING,
CONTRACT_TYPE TYPE STRING,
GUID_REF TYPE STRING,
BEMOT TYPE STRING,
AUFNR TYPE STRING,
MENGE TYPE STRING,
NTGEW TYPE STRING,
BRGEW TYPE STRING,
GEWEI TYPE STRING,
VOLUM TYPE STRING,
VOLEH TYPE STRING,
UPDKZ TYPE STRING,
PS_PSP_PNR TYPE STRING,
INCO1_P TYPE STRING,
INCO2_P TYPE STRING,
FBUDA TYPE STRING,
KOWRR TYPE STRING,
PRCTRD TYPE STRING,
KOSTLD TYPE STRING,
AUFNRD TYPE STRING,
GSBERD TYPE STRING,
INCOV_P TYPE STRING,
INCO2_L_P TYPE STRING,
INCO3_L_P TYPE STRING,
DUMMY_WBRP_INCL_EEW_PS TYPE STRING,
SERVCONF_ITEM TYPE STRING,
STATUS TYPE STRING,
CUSTOMER TYPE STRING,
KOLIF TYPE STRING,
GJAHRV TYPE STRING,
WBELN_V TYPE STRING,
POSNR_V TYPE STRING,
FTYPV_V TYPE STRING,
IV_CHECK_TYPE_I TYPE STRING,
VKORG_I TYPE STRING,
VTWEG_I TYPE STRING,
SPART_I TYPE STRING,
SETTL_STATUS_I_V TYPE STRING,
SETTL_STATUS_I_C TYPE STRING,
PROVG TYPE STRING,
KONDM TYPE STRING,
REBATE_GRP TYPE STRING,
MVGR1 TYPE STRING,
MVGR2 TYPE STRING,
MVGR3 TYPE STRING,
MVGR4 TYPE STRING,
MVGR5 TYPE STRING,
TAX_COUNTRY TYPE STRING,
TAX_COUNTRY_IC TYPE STRING,
TXJCD_IC TYPE STRING,
STCEGD_I TYPE STRING,
LANDTX_I TYPE STRING,
LAND1TX_I TYPE STRING,
STCEG_I TYPE STRING,
PRODH TYPE STRING,END OF T_EKKO_STR. DATA: WA_KOMZRPEX_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_KOMZRPEX_STR-WBELN sy-vline
WA_KOMZRPEX_STR-POSNR sy-vline
WA_KOMZRPEX_STR-MATNR sy-vline
WA_KOMZRPEX_STR-MATKL sy-vline
WA_KOMZRPEX_STR-WERKS sy-vline
WA_KOMZRPEX_STR-LTSNR sy-vline
WA_KOMZRPEX_STR-MWSKZ sy-vline
WA_KOMZRPEX_STR-MWSK2 sy-vline
WA_KOMZRPEX_STR-PRSDT sy-vline
WA_KOMZRPEX_STR-PNETWR sy-vline
WA_KOMZRPEX_STR-PBRTWR sy-vline
WA_KOMZRPEX_STR-PMWSBP sy-vline
WA_KOMZRPEX_STR-SKTOF sy-vline
WA_KOMZRPEX_STR-WBELNV sy-vline
WA_KOMZRPEX_STR-POSNRV sy-vline
WA_KOMZRPEX_STR-LFTYPV sy-vline
WA_KOMZRPEX_STR-LFGRU sy-vline
WA_KOMZRPEX_STR-ARKTX sy-vline
WA_KOMZRPEX_STR-TXJCD sy-vline
WA_KOMZRPEX_STR-KOSTL sy-vline
WA_KOMZRPEX_STR-PRCTR sy-vline
WA_KOMZRPEX_STR-EKKOL sy-vline
WA_KOMZRPEX_STR-GSBER sy-vline
WA_KOMZRPEX_STR-PNETPR sy-vline
WA_KOMZRPEX_STR-BONUS sy-vline
WA_KOMZRPEX_STR-EBON2 sy-vline
WA_KOMZRPEX_STR-EBON3 sy-vline
WA_KOMZRPEX_STR-ITEMCAT sy-vline
WA_KOMZRPEX_STR-IDNLF sy-vline
WA_KOMZRPEX_STR-CONTRACT sy-vline
WA_KOMZRPEX_STR-CONTRACT_TYPE sy-vline
WA_KOMZRPEX_STR-GUID_REF sy-vline
WA_KOMZRPEX_STR-BEMOT sy-vline
WA_KOMZRPEX_STR-AUFNR sy-vline
WA_KOMZRPEX_STR-MENGE sy-vline
WA_KOMZRPEX_STR-NTGEW sy-vline
WA_KOMZRPEX_STR-BRGEW sy-vline
WA_KOMZRPEX_STR-GEWEI sy-vline
WA_KOMZRPEX_STR-VOLUM sy-vline
WA_KOMZRPEX_STR-VOLEH sy-vline
WA_KOMZRPEX_STR-UPDKZ sy-vline
WA_KOMZRPEX_STR-PS_PSP_PNR sy-vline
WA_KOMZRPEX_STR-INCO1_P sy-vline
WA_KOMZRPEX_STR-INCO2_P sy-vline
WA_KOMZRPEX_STR-FBUDA sy-vline
WA_KOMZRPEX_STR-KOWRR sy-vline
WA_KOMZRPEX_STR-PRCTRD sy-vline
WA_KOMZRPEX_STR-KOSTLD sy-vline
WA_KOMZRPEX_STR-AUFNRD sy-vline
WA_KOMZRPEX_STR-GSBERD sy-vline
WA_KOMZRPEX_STR-INCOV_P sy-vline
WA_KOMZRPEX_STR-INCO2_L_P sy-vline
WA_KOMZRPEX_STR-INCO3_L_P sy-vline
WA_KOMZRPEX_STR-DUMMY_WBRP_INCL_EEW_PS sy-vline
WA_KOMZRPEX_STR-SERVCONF_ITEM sy-vline
WA_KOMZRPEX_STR-STATUS sy-vline
WA_KOMZRPEX_STR-CUSTOMER sy-vline
WA_KOMZRPEX_STR-KOLIF sy-vline
WA_KOMZRPEX_STR-GJAHRV sy-vline
WA_KOMZRPEX_STR-WBELN_V sy-vline
WA_KOMZRPEX_STR-POSNR_V sy-vline
WA_KOMZRPEX_STR-FTYPV_V sy-vline
WA_KOMZRPEX_STR-IV_CHECK_TYPE_I sy-vline
WA_KOMZRPEX_STR-VKORG_I sy-vline
WA_KOMZRPEX_STR-VTWEG_I sy-vline
WA_KOMZRPEX_STR-SPART_I sy-vline
WA_KOMZRPEX_STR-SETTL_STATUS_I_V sy-vline
WA_KOMZRPEX_STR-SETTL_STATUS_I_C sy-vline
WA_KOMZRPEX_STR-PROVG sy-vline
WA_KOMZRPEX_STR-KONDM sy-vline
WA_KOMZRPEX_STR-REBATE_GRP sy-vline
WA_KOMZRPEX_STR-MVGR1 sy-vline
WA_KOMZRPEX_STR-MVGR2 sy-vline
WA_KOMZRPEX_STR-MVGR3 sy-vline
WA_KOMZRPEX_STR-MVGR4 sy-vline
WA_KOMZRPEX_STR-MVGR5 sy-vline
WA_KOMZRPEX_STR-TAX_COUNTRY sy-vline
WA_KOMZRPEX_STR-TAX_COUNTRY_IC sy-vline
WA_KOMZRPEX_STR-TXJCD_IC sy-vline
WA_KOMZRPEX_STR-STCEGD_I sy-vline
WA_KOMZRPEX_STR-LANDTX_I sy-vline
WA_KOMZRPEX_STR-LAND1TX_I sy-vline
WA_KOMZRPEX_STR-STCEG_I sy-vline
WA_KOMZRPEX_STR-PRODH sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.