ABAP Select data from SAP table CVDMANSEL 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 CVDMANSEL 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 CVDMANSEL. 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 CVDMANSEL 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_CVDMANSEL TYPE STANDARD TABLE OF CVDMANSEL,
      WA_CVDMANSEL TYPE CVDMANSEL,
      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: <CVDMANSEL> TYPE CVDMANSEL.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CVDMANSEL
*  INTO TABLE @DATA(IT_CVDMANSEL2).
*--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_CVDMANSEL INDEX 1 INTO DATA(WA_CVDMANSEL2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CVDMANSEL ASSIGNING <CVDMANSEL>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CVDMANSEL>-COM_ART = 1.
<CVDMANSEL>-COMDES = 1.
<CVDMANSEL>-COM_GROUP = 1.
<CVDMANSEL>-COM_GRPNAM = 1.
<CVDMANSEL>-KUNNR = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CVDMANSEL-KUNNAME1, sy-vline,
WA_CVDMANSEL-PARTNER, sy-vline,
WA_CVDMANSEL-PARTNAME1, sy-vline,
WA_CVDMANSEL-PARNR, sy-vline,
WA_CVDMANSEL-PARNAME1, sy-vline,
WA_CVDMANSEL-SOUSER, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CVDMANSEL 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_CVDMANSEL 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_CVDMANSEL INTO WA_CVDMANSEL. *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_CVDMANSEL-KUNNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CVDMANSEL-KUNNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

*Conversion exit SPDEV, internal->external for field PDEST CALL FUNCTION 'CONVERSION_EXIT_SPDEV_OUTPUT' EXPORTING input = WA_CVDMANSEL-PDEST IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CVDMANSEL-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_CVDMANSEL_STR,
COM_ART TYPE STRING,
COMDES TYPE STRING,
COM_GROUP TYPE STRING,
COM_GRPNAM 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,
HPFLG TYPE STRING,
ACKFLG TYPE STRING,
OCFLG TYPE STRING,
STARTDAT TYPE STRING,
RESFLG TYPE STRING,
PROCESSCAT TYPE STRING,
PAMSG TYPE STRING,
RECTYPE TYPE STRING,
RECGROUP TYPE STRING,
RECADR_C TYPE STRING,
RECADR_P TYPE STRING,
RECTITLE_C TYPE STRING,
RECNAME_C TYPE STRING,
RECLAND_C TYPE STRING,
RECREGIO_C TYPE STRING,
RECCITY_C TYPE STRING,
RECCODE_C TYPE STRING,
RECLANGU_C TYPE STRING,
RECTITLE_P TYPE STRING,
RECFNAME_P TYPE STRING,
RECLNAME_P TYPE STRING,
RECLAND_P TYPE STRING,
RECREGIO_P TYPE STRING,
RECCITY_P TYPE STRING,
RECCODE_P TYPE STRING,
RECLANGU_P TYPE STRING,
RECDEFCOM TYPE STRING,
RECADR_INT TYPE STRING,
RECADR_RML TYPE STRING,
RECADR_FAX TYPE STRING,
RECADR_LET TYPE STRING,
RECSAPNAME TYPE STRING,
PDEST TYPE STRING,
PRCOP TYPE STRING,
PLIST TYPE STRING,
PRTXT TYPE STRING,
PRIMM TYPE STRING,
PRREL TYPE STRING,
PRNEW TYPE STRING,
PEXPI TYPE STRING,
LINCT TYPE STRING,
LINSZ TYPE STRING,
PAART TYPE STRING,
PRBIG TYPE STRING,
PRSAP TYPE STRING,
PRREC TYPE STRING,
PRABT TYPE STRING,
PRBER TYPE STRING,
PRDSN TYPE STRING,
PTYPE TYPE STRING,
ARMOD TYPE STRING,
FOOTL TYPE STRING,
PRIOT TYPE STRING,
PRUNX TYPE STRING,
PRKEYEXT TYPE STRING,
PRCHK TYPE STRING,END OF T_EKKO_STR. DATA: WA_CVDMANSEL_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_CVDMANSEL_STR-COM_ART sy-vline
WA_CVDMANSEL_STR-COMDES sy-vline
WA_CVDMANSEL_STR-COM_GROUP sy-vline
WA_CVDMANSEL_STR-COM_GRPNAM sy-vline
WA_CVDMANSEL_STR-KUNNR sy-vline
WA_CVDMANSEL_STR-KUNNAME1 sy-vline
WA_CVDMANSEL_STR-PARTNER sy-vline
WA_CVDMANSEL_STR-PARTNAME1 sy-vline
WA_CVDMANSEL_STR-PARNR sy-vline
WA_CVDMANSEL_STR-PARNAME1 sy-vline
WA_CVDMANSEL_STR-SOUSER sy-vline
WA_CVDMANSEL_STR-SOUSERNAM sy-vline
WA_CVDMANSEL_STR-REPORTREC sy-vline
WA_CVDMANSEL_STR-REPRECNAM sy-vline
WA_CVDMANSEL_STR-HPFLG sy-vline
WA_CVDMANSEL_STR-ACKFLG sy-vline
WA_CVDMANSEL_STR-OCFLG sy-vline
WA_CVDMANSEL_STR-STARTDAT sy-vline
WA_CVDMANSEL_STR-RESFLG sy-vline
WA_CVDMANSEL_STR-PROCESSCAT sy-vline
WA_CVDMANSEL_STR-PAMSG sy-vline
WA_CVDMANSEL_STR-RECTYPE sy-vline
WA_CVDMANSEL_STR-RECGROUP sy-vline
WA_CVDMANSEL_STR-RECADR_C sy-vline
WA_CVDMANSEL_STR-RECADR_P sy-vline
WA_CVDMANSEL_STR-RECTITLE_C sy-vline
WA_CVDMANSEL_STR-RECNAME_C sy-vline
WA_CVDMANSEL_STR-RECLAND_C sy-vline
WA_CVDMANSEL_STR-RECREGIO_C sy-vline
WA_CVDMANSEL_STR-RECCITY_C sy-vline
WA_CVDMANSEL_STR-RECCODE_C sy-vline
WA_CVDMANSEL_STR-RECLANGU_C sy-vline
WA_CVDMANSEL_STR-RECTITLE_P sy-vline
WA_CVDMANSEL_STR-RECFNAME_P sy-vline
WA_CVDMANSEL_STR-RECLNAME_P sy-vline
WA_CVDMANSEL_STR-RECLAND_P sy-vline
WA_CVDMANSEL_STR-RECREGIO_P sy-vline
WA_CVDMANSEL_STR-RECCITY_P sy-vline
WA_CVDMANSEL_STR-RECCODE_P sy-vline
WA_CVDMANSEL_STR-RECLANGU_P sy-vline
WA_CVDMANSEL_STR-RECDEFCOM sy-vline
WA_CVDMANSEL_STR-RECADR_INT sy-vline
WA_CVDMANSEL_STR-RECADR_RML sy-vline
WA_CVDMANSEL_STR-RECADR_FAX sy-vline
WA_CVDMANSEL_STR-RECADR_LET sy-vline
WA_CVDMANSEL_STR-RECSAPNAME sy-vline
WA_CVDMANSEL_STR-PDEST sy-vline
WA_CVDMANSEL_STR-PRCOP sy-vline
WA_CVDMANSEL_STR-PLIST sy-vline
WA_CVDMANSEL_STR-PRTXT sy-vline
WA_CVDMANSEL_STR-PRIMM sy-vline
WA_CVDMANSEL_STR-PRREL sy-vline
WA_CVDMANSEL_STR-PRNEW sy-vline
WA_CVDMANSEL_STR-PEXPI sy-vline
WA_CVDMANSEL_STR-LINCT sy-vline
WA_CVDMANSEL_STR-LINSZ sy-vline
WA_CVDMANSEL_STR-PAART sy-vline
WA_CVDMANSEL_STR-PRBIG sy-vline
WA_CVDMANSEL_STR-PRSAP sy-vline
WA_CVDMANSEL_STR-PRREC sy-vline
WA_CVDMANSEL_STR-PRABT sy-vline
WA_CVDMANSEL_STR-PRBER sy-vline
WA_CVDMANSEL_STR-PRDSN sy-vline
WA_CVDMANSEL_STR-PTYPE sy-vline
WA_CVDMANSEL_STR-ARMOD sy-vline
WA_CVDMANSEL_STR-FOOTL sy-vline
WA_CVDMANSEL_STR-PRIOT sy-vline
WA_CVDMANSEL_STR-PRUNX sy-vline
WA_CVDMANSEL_STR-PRKEYEXT sy-vline
WA_CVDMANSEL_STR-PRCHK sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.