ABAP Select data from SAP table CLPROF 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 CLPROF 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 CLPROF. 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 CLPROF 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_CLPROF TYPE STANDARD TABLE OF CLPROF,
      WA_CLPROF TYPE CLPROF,
      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: <CLPROF> TYPE CLPROF.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CLPROF
*  INTO TABLE @DATA(IT_CLPROF2).
*--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_CLPROF INDEX 1 INTO DATA(WA_CLPROF2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CLPROF ASSIGNING <CLPROF>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CLPROF>-MANDT = 1.
<CLPROF>-OBJART = 1.
<CLPROF>-OBNAME = 1.
<CLPROF>-PROFIL = 1.
<CLPROF>-DOBJD = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CLPROF-DMRKM, sy-vline,
WA_CLPROF-DMWRT, sy-vline,
WA_CLPROF-DPAGE, sy-vline,
WA_CLPROF-DMABW, sy-vline,
WA_CLPROF-DMKEY, sy-vline,
WA_CLPROF-AINFO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CLPROF 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_CLPROF 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_CLPROF INTO WA_CLPROF. *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 ISOLA, internal->external for field LANGU CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_CLPROF-LANGU IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CLPROF-LANGU.
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_CLPROF_STR,
MANDT TYPE STRING,
OBJART TYPE STRING,
OBNAME TYPE STRING,
PROFIL TYPE STRING,
DOBJD TYPE STRING,
DMRKM TYPE STRING,
DMWRT TYPE STRING,
DPAGE TYPE STRING,
DMABW TYPE STRING,
DMKEY TYPE STRING,
AINFO TYPE STRING,
FDINKB TYPE STRING,
FOBLIG TYPE STRING,
MEMUS TYPE STRING,
MEOPT TYPE STRING,
MEMIT TYPE STRING,
MEOHN TYPE STRING,
MEMMV TYPE STRING,
MEZUM TYPE STRING,
MEMAS TYPE STRING,
LANGU TYPE STRING,
NEUTR TYPE STRING,
NLANG TYPE STRING,
NVALUE TYPE STRING,
NCHART TYPE STRING,
SVALUE TYPE STRING,
SCHART TYPE STRING,
DVRST TYPE STRING,
DVSET TYPE STRING,
DVMAR TYPE STRING,
DVUEB TYPE STRING,
DVBST TYPE STRING,
DAR_OBJ TYPE STRING,
DAR_BEZ TYPE STRING,
DAR_OBJBEZ TYPE STRING,
DAR_EIN TYPE STRING,
DAR_NORM TYPE STRING,
DAR_KLASKZ TYPE STRING,
DAR_OBJINT TYPE STRING,
DAR_UNB TYPE STRING,
DAR_SPERR TYPE STRING,
DAR_UNV TYPE STRING,
DAR_FREI TYPE STRING,
DAR_SRT TYPE STRING,
DAR_SRT_N TYPE STRING,
DAR_SRT_A TYPE STRING,
DAR_SRT_TYP TYPE STRING,
DAR_SRT_NO TYPE STRING,
DAR_SRT_OBJNAM TYPE STRING,
DAR_SRT_OBJBEZ TYPE STRING,
DAR_ATNAM TYPE STRING,
DAR_MBEZ TYPE STRING,
DAR_UBER TYPE STRING,
DAR_OBTYP TYPE STRING,
DAR_MAX_HITS TYPE STRING,
STRING TYPE STRING,
KLART TYPE STRING,
SICHT TYPE STRING,
UCHANGE TYPE STRING,
CLASS TYPE STRING,
EXPL_HIER TYPE STRING,
KDOKNAZ TYPE STRING,END OF T_EKKO_STR. DATA: WA_CLPROF_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_CLPROF_STR-MANDT sy-vline
WA_CLPROF_STR-OBJART sy-vline
WA_CLPROF_STR-OBNAME sy-vline
WA_CLPROF_STR-PROFIL sy-vline
WA_CLPROF_STR-DOBJD sy-vline
WA_CLPROF_STR-DMRKM sy-vline
WA_CLPROF_STR-DMWRT sy-vline
WA_CLPROF_STR-DPAGE sy-vline
WA_CLPROF_STR-DMABW sy-vline
WA_CLPROF_STR-DMKEY sy-vline
WA_CLPROF_STR-AINFO sy-vline
WA_CLPROF_STR-FDINKB sy-vline
WA_CLPROF_STR-FOBLIG sy-vline
WA_CLPROF_STR-MEMUS sy-vline
WA_CLPROF_STR-MEOPT sy-vline
WA_CLPROF_STR-MEMIT sy-vline
WA_CLPROF_STR-MEOHN sy-vline
WA_CLPROF_STR-MEMMV sy-vline
WA_CLPROF_STR-MEZUM sy-vline
WA_CLPROF_STR-MEMAS sy-vline
WA_CLPROF_STR-LANGU sy-vline
WA_CLPROF_STR-NEUTR sy-vline
WA_CLPROF_STR-NLANG sy-vline
WA_CLPROF_STR-NVALUE sy-vline
WA_CLPROF_STR-NCHART sy-vline
WA_CLPROF_STR-SVALUE sy-vline
WA_CLPROF_STR-SCHART sy-vline
WA_CLPROF_STR-DVRST sy-vline
WA_CLPROF_STR-DVSET sy-vline
WA_CLPROF_STR-DVMAR sy-vline
WA_CLPROF_STR-DVUEB sy-vline
WA_CLPROF_STR-DVBST sy-vline
WA_CLPROF_STR-DAR_OBJ sy-vline
WA_CLPROF_STR-DAR_BEZ sy-vline
WA_CLPROF_STR-DAR_OBJBEZ sy-vline
WA_CLPROF_STR-DAR_EIN sy-vline
WA_CLPROF_STR-DAR_NORM sy-vline
WA_CLPROF_STR-DAR_KLASKZ sy-vline
WA_CLPROF_STR-DAR_OBJINT sy-vline
WA_CLPROF_STR-DAR_UNB sy-vline
WA_CLPROF_STR-DAR_SPERR sy-vline
WA_CLPROF_STR-DAR_UNV sy-vline
WA_CLPROF_STR-DAR_FREI sy-vline
WA_CLPROF_STR-DAR_SRT sy-vline
WA_CLPROF_STR-DAR_SRT_N sy-vline
WA_CLPROF_STR-DAR_SRT_A sy-vline
WA_CLPROF_STR-DAR_SRT_TYP sy-vline
WA_CLPROF_STR-DAR_SRT_NO sy-vline
WA_CLPROF_STR-DAR_SRT_OBJNAM sy-vline
WA_CLPROF_STR-DAR_SRT_OBJBEZ sy-vline
WA_CLPROF_STR-DAR_ATNAM sy-vline
WA_CLPROF_STR-DAR_MBEZ sy-vline
WA_CLPROF_STR-DAR_UBER sy-vline
WA_CLPROF_STR-DAR_OBTYP sy-vline
WA_CLPROF_STR-DAR_MAX_HITS sy-vline
WA_CLPROF_STR-STRING sy-vline
WA_CLPROF_STR-KLART sy-vline
WA_CLPROF_STR-SICHT sy-vline
WA_CLPROF_STR-UCHANGE sy-vline
WA_CLPROF_STR-CLASS sy-vline
WA_CLPROF_STR-EXPL_HIER sy-vline
WA_CLPROF_STR-KDOKNAZ sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.