ABAP Select data from SAP table COMBOS 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 COMBOS 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 COMBOS. 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 COMBOS 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_COMBOS TYPE STANDARD TABLE OF COMBOS,
      WA_COMBOS TYPE COMBOS,
      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: <COMBOS> TYPE COMBOS.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM COMBOS
*  INTO TABLE @DATA(IT_COMBOS2).
*--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_COMBOS INDEX 1 INTO DATA(WA_COMBOS2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_COMBOS ASSIGNING <COMBOS>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<COMBOS>-VKORG = 1.
<COMBOS>-VTWEG = 1.
<COMBOS>-SPART = 1.
<COMBOS>-BZIRK = 1.
<COMBOS>-VKGRP = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_COMBOS-VKBUR, sy-vline,
WA_COMBOS-KONDA, sy-vline,
WA_COMBOS-KDGRP, sy-vline,
WA_COMBOS-PLTYP, sy-vline,
WA_COMBOS-KURST, sy-vline,
WA_COMBOS-KURRF_DAT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_COMBOS 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_COMBOS 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_COMBOS INTO WA_COMBOS. *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 KUNNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_COMBOS-KUNNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_COMBOS-KUNNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit AUART, internal->external for field SD_AUART CALL FUNCTION 'CONVERSION_EXIT_AUART_OUTPUT' EXPORTING input = WA_COMBOS-SD_AUART IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_COMBOS-SD_AUART.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field PLN_VBELN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_COMBOS-PLN_VBELN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_COMBOS-PLN_VBELN.
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_COMBOS_STR,
VKORG TYPE STRING,
VTWEG TYPE STRING,
SPART TYPE STRING,
BZIRK TYPE STRING,
VKGRP TYPE STRING,
VKBUR TYPE STRING,
KONDA TYPE STRING,
KDGRP TYPE STRING,
PLTYP TYPE STRING,
KURST TYPE STRING,
KURRF_DAT TYPE STRING,
KUNNR TYPE STRING,
KNRZE TYPE STRING,
VBELN TYPE STRING,
POSNR TYPE STRING,
VBTYP TYPE STRING,
REF_VBTYP TYPE STRING,
REF_POSNR TYPE STRING,
REF_VBELN TYPE STRING,
SD_AUART TYPE STRING,
PSTYV TYPE STRING,
UPD_EK TYPE STRING,
PLN_POSNR TYPE STRING,
PLN_VBELN TYPE STRING,
FKT_PACKNO TYPE STRING,
FKT_INTROW TYPE STRING,
NEW_PRICING TYPE STRING,
BOS_RFSTA TYPE STRING,
UPD_ECP TYPE STRING,
OUTLKZ TYPE STRING,
BPROZ TYPE STRING,
LVKOP TYPE STRING,
/SAPBOQ/SICOPY TYPE STRING,
/SAPBOQ/DV_CKQTY TYPE STRING,
/SAPBOQ/QT_REL TYPE STRING,
/SAPBOQ/ROWDELTA TYPE STRING,
/SAPBOQ/SI TYPE STRING,
/SAPBOQ/PRC_COPY TYPE STRING,END OF T_EKKO_STR. DATA: WA_COMBOS_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_COMBOS_STR-VKORG sy-vline
WA_COMBOS_STR-VTWEG sy-vline
WA_COMBOS_STR-SPART sy-vline
WA_COMBOS_STR-BZIRK sy-vline
WA_COMBOS_STR-VKGRP sy-vline
WA_COMBOS_STR-VKBUR sy-vline
WA_COMBOS_STR-KONDA sy-vline
WA_COMBOS_STR-KDGRP sy-vline
WA_COMBOS_STR-PLTYP sy-vline
WA_COMBOS_STR-KURST sy-vline
WA_COMBOS_STR-KURRF_DAT sy-vline
WA_COMBOS_STR-KUNNR sy-vline
WA_COMBOS_STR-KNRZE sy-vline
WA_COMBOS_STR-VBELN sy-vline
WA_COMBOS_STR-POSNR sy-vline
WA_COMBOS_STR-VBTYP sy-vline
WA_COMBOS_STR-REF_VBTYP sy-vline
WA_COMBOS_STR-REF_POSNR sy-vline
WA_COMBOS_STR-REF_VBELN sy-vline
WA_COMBOS_STR-SD_AUART sy-vline
WA_COMBOS_STR-PSTYV sy-vline
WA_COMBOS_STR-UPD_EK sy-vline
WA_COMBOS_STR-PLN_POSNR sy-vline
WA_COMBOS_STR-PLN_VBELN sy-vline
WA_COMBOS_STR-FKT_PACKNO sy-vline
WA_COMBOS_STR-FKT_INTROW sy-vline
WA_COMBOS_STR-NEW_PRICING sy-vline
WA_COMBOS_STR-BOS_RFSTA sy-vline
WA_COMBOS_STR-UPD_ECP sy-vline
WA_COMBOS_STR-OUTLKZ sy-vline
WA_COMBOS_STR-BPROZ sy-vline
WA_COMBOS_STR-LVKOP sy-vline
WA_COMBOS_STR-/SAPBOQ/SICOPY sy-vline
WA_COMBOS_STR-/SAPBOQ/DV_CKQTY sy-vline
WA_COMBOS_STR-/SAPBOQ/QT_REL sy-vline
WA_COMBOS_STR-/SAPBOQ/ROWDELTA sy-vline
WA_COMBOS_STR-/SAPBOQ/SI sy-vline
WA_COMBOS_STR-/SAPBOQ/PRC_COPY sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.