ABAP Select data from SAP table CVDDISTSEL 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 CVDDISTSEL 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 CVDDISTSEL. 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 CVDDISTSEL 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_CVDDISTSEL TYPE STANDARD TABLE OF CVDDISTSEL,
      WA_CVDDISTSEL TYPE CVDDISTSEL,
      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: <CVDDISTSEL> TYPE CVDDISTSEL.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CVDDISTSEL
*  INTO TABLE @DATA(IT_CVDDISTSEL2).
*--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_CVDDISTSEL INDEX 1 INTO DATA(WA_CVDDISTSEL2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CVDDISTSEL ASSIGNING <CVDDISTSEL>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CVDDISTSEL>-RECN = 1.
<CVDDISTSEL>-DDOID = 1.
<CVDDISTSEL>-EXTSTAT = 1.
<CVDDISTSEL>-EXTSTATNAM = 1.
<CVDDISTSEL>-STATUS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CVDDISTSEL-INITIATOR, sy-vline,
WA_CVDDISTSEL-VTEXT, sy-vline,
WA_CVDDISTSEL-CRDAT_FROM, sy-vline,
WA_CVDDISTSEL-CRTIM_FROM, sy-vline,
WA_CVDDISTSEL-CRDAT_TO, sy-vline,
WA_CVDDISTSEL-CRTIM_TO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CVDDISTSEL 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_CVDDISTSEL 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_CVDDISTSEL INTO WA_CVDDISTSEL. *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 RECN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CVDDISTSEL-RECN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CVDDISTSEL-RECN.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

*Conversion exit SPEC1, internal->external for field DISTSUBID CALL FUNCTION 'CONVERSION_EXIT_SPEC1_OUTPUT' EXPORTING input = WA_CVDDISTSEL-DISTSUBID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CVDDISTSEL-DISTSUBID.
WRITE:/ 'New Value:', ld_input.

*Conversion exit SPEC1, internal->external for field SUBID CALL FUNCTION 'CONVERSION_EXIT_SPEC1_OUTPUT' EXPORTING input = WA_CVDDISTSEL-SUBID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CVDDISTSEL-SUBID.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ISOLA, internal->external for field LANGU CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_CVDDISTSEL-LANGU IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CVDDISTSEL-LANGU.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CHRID, internal->external for field SBGVID CALL FUNCTION 'CONVERSION_EXIT_CHRID_OUTPUT' EXPORTING input = WA_CVDDISTSEL-SBGVID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CVDDISTSEL-SBGVID.
WRITE:/ 'New Value:', ld_input.

*Conversion exit SPDEV, internal->external for field PDEST CALL FUNCTION 'CONVERSION_EXIT_SPDEV_OUTPUT' EXPORTING input = WA_CVDDISTSEL-PDEST IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CVDDISTSEL-PDEST.
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_CVDDISTSEL_STR,
RECN TYPE STRING,
DDOID TYPE STRING,
EXTSTAT TYPE STRING,
EXTSTATNAM TYPE STRING,
STATUS TYPE STRING,
INITIATOR TYPE STRING,
VTEXT TYPE STRING,
CRDAT_FROM TYPE STRING,
CRTIM_FROM TYPE STRING,
CRDAT_TO TYPE STRING,
CRTIM_TO TYPE STRING,
CRNAM TYPE STRING,
SEDAT TYPE STRING,
SETIM TYPE STRING,
DDPID TYPE STRING,
COM_ART TYPE STRING,
COMDES TYPE STRING,
REASONTYP TYPE STRING,
REASONCAT TYPE STRING,
REASONBPR TYPE STRING,
BPRNAM TYPE STRING,
KUNNR TYPE STRING,
KUNNAME1 TYPE STRING,
PARTNER TYPE STRING,
PARTNAME1 TYPE STRING,
PARNR TYPE STRING,
PARNAME1 TYPE STRING,
SOUSER TYPE STRING,
SOUSERNAM TYPE STRING,
REPORTREC TYPE STRING,
REPRECNAM TYPE STRING,
DISTSUBID TYPE STRING,
SUBID TYPE STRING,
MATNR TYPE STRING,
MATNAM TYPE STRING,
LANGU TYPE STRING,
LANGUTEXT TYPE STRING,
SBGVID TYPE STRING,
SBGVNAM TYPE STRING,
REPTYPE TYPE STRING,
REPTNAM TYPE STRING,
COM_GRP TYPE STRING,
COM_GRPNAM TYPE STRING,
PDEST TYPE STRING,
PAMSG TYPE STRING,
HPFLG TYPE STRING,
ACKFLG TYPE STRING,
OCFLG TYPE STRING,
STARTDAT TYPE STRING,
RESFLG TYPE STRING,
PROCESSCAT TYPE STRING,
STATBUTTON TYPE STRING,END OF T_EKKO_STR. DATA: WA_CVDDISTSEL_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_CVDDISTSEL_STR-RECN sy-vline
WA_CVDDISTSEL_STR-DDOID sy-vline
WA_CVDDISTSEL_STR-EXTSTAT sy-vline
WA_CVDDISTSEL_STR-EXTSTATNAM sy-vline
WA_CVDDISTSEL_STR-STATUS sy-vline
WA_CVDDISTSEL_STR-INITIATOR sy-vline
WA_CVDDISTSEL_STR-VTEXT sy-vline
WA_CVDDISTSEL_STR-CRDAT_FROM sy-vline
WA_CVDDISTSEL_STR-CRTIM_FROM sy-vline
WA_CVDDISTSEL_STR-CRDAT_TO sy-vline
WA_CVDDISTSEL_STR-CRTIM_TO sy-vline
WA_CVDDISTSEL_STR-CRNAM sy-vline
WA_CVDDISTSEL_STR-SEDAT sy-vline
WA_CVDDISTSEL_STR-SETIM sy-vline
WA_CVDDISTSEL_STR-DDPID sy-vline
WA_CVDDISTSEL_STR-COM_ART sy-vline
WA_CVDDISTSEL_STR-COMDES sy-vline
WA_CVDDISTSEL_STR-REASONTYP sy-vline
WA_CVDDISTSEL_STR-REASONCAT sy-vline
WA_CVDDISTSEL_STR-REASONBPR sy-vline
WA_CVDDISTSEL_STR-BPRNAM sy-vline
WA_CVDDISTSEL_STR-KUNNR sy-vline
WA_CVDDISTSEL_STR-KUNNAME1 sy-vline
WA_CVDDISTSEL_STR-PARTNER sy-vline
WA_CVDDISTSEL_STR-PARTNAME1 sy-vline
WA_CVDDISTSEL_STR-PARNR sy-vline
WA_CVDDISTSEL_STR-PARNAME1 sy-vline
WA_CVDDISTSEL_STR-SOUSER sy-vline
WA_CVDDISTSEL_STR-SOUSERNAM sy-vline
WA_CVDDISTSEL_STR-REPORTREC sy-vline
WA_CVDDISTSEL_STR-REPRECNAM sy-vline
WA_CVDDISTSEL_STR-DISTSUBID sy-vline
WA_CVDDISTSEL_STR-SUBID sy-vline
WA_CVDDISTSEL_STR-MATNR sy-vline
WA_CVDDISTSEL_STR-MATNAM sy-vline
WA_CVDDISTSEL_STR-LANGU sy-vline
WA_CVDDISTSEL_STR-LANGUTEXT sy-vline
WA_CVDDISTSEL_STR-SBGVID sy-vline
WA_CVDDISTSEL_STR-SBGVNAM sy-vline
WA_CVDDISTSEL_STR-REPTYPE sy-vline
WA_CVDDISTSEL_STR-REPTNAM sy-vline
WA_CVDDISTSEL_STR-COM_GRP sy-vline
WA_CVDDISTSEL_STR-COM_GRPNAM sy-vline
WA_CVDDISTSEL_STR-PDEST sy-vline
WA_CVDDISTSEL_STR-PAMSG sy-vline
WA_CVDDISTSEL_STR-HPFLG sy-vline
WA_CVDDISTSEL_STR-ACKFLG sy-vline
WA_CVDDISTSEL_STR-OCFLG sy-vline
WA_CVDDISTSEL_STR-STARTDAT sy-vline
WA_CVDDISTSEL_STR-RESFLG sy-vline
WA_CVDDISTSEL_STR-PROCESSCAT sy-vline
WA_CVDDISTSEL_STR-STATBUTTON sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.