ABAP Select data from SAP table CSL_DE 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 CSL_DE 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 CSL_DE. 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 CSL_DE 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_CSL_DE TYPE STANDARD TABLE OF CSL_DE,
      WA_CSL_DE TYPE CSL_DE,
      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: <CSL_DE> TYPE CSL_DE.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CSL_DE
*  INTO TABLE @DATA(IT_CSL_DE2).
*--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_CSL_DE INDEX 1 INTO DATA(WA_CSL_DE2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CSL_DE ASSIGNING <CSL_DE>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CSL_DE>-AC = 1.
<CSL_DE>-AODT = 1.
<CSL_DE>-AOKY = 1.
<CSL_DE>-BOOL = 1.
<CSL_DE>-CCHLE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CSL_DE-CCHLEM, sy-vline,
WA_CSL_DE-CIANU, sy-vline,
WA_CSL_DE-CIASY, sy-vline,
WA_CSL_DE-CIRNU, sy-vline,
WA_CSL_DE-CIRSY, sy-vline,
WA_CSL_DE-COLL, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CSL_DE 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_CSL_DE 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_CSL_DE INTO WA_CSL_DE. *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 CIASY CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CSL_DE-CIASY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CSL_DE-CIASY.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field THSY CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CSL_DE-THSY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CSL_DE-THSY.
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_CSL_DE_STR,
AC TYPE STRING,
AODT TYPE STRING,
AOKY TYPE STRING,
BOOL TYPE STRING,
CCHLE TYPE STRING,
CCHLEM TYPE STRING,
CIANU TYPE STRING,
CIASY TYPE STRING,
CIRNU TYPE STRING,
CIRSY TYPE STRING,
COLL TYPE STRING,
CPLNU TYPE STRING,
CPLSY TYPE STRING,
CPPNU TYPE STRING,
CPPPO TYPE STRING,
CPPSY TYPE STRING,
EOARGS TYPE STRING,
EOCOLS TYPE STRING,
EOCOUS TYPE STRING,
EOCVSO TYPE STRING,
EODD TYPE STRING,
EOEQLS TYPE STRING,
EOLS TYPE STRING,
EOMPKY TYPE STRING,
EOTYKY TYPE STRING,
EOURLS TYPE STRING,
GUID TYPE STRING,
GUIDC TYPE STRING,
ISACC TYPE STRING,
ISACL TYPE STRING,
ISACMC TYPE STRING,
ISACML TYPE STRING,
ISACMT TYPE STRING,
ISACT TYPE STRING,
LHNU TYPE STRING,
LHSY TYPE STRING,
LLUW TYPE STRING,
LLUWC TYPE STRING,
LMI TYPE STRING,
LNU TYPE STRING,
LNUC TYPE STRING,
LOGSYS TYPE STRING,
LRCNT TYPE STRING,
LS TYPE STRING,
LTS TYPE STRING,
LUS TYPE STRING,
MI TYPE STRING,
MNU TYPE STRING,
MSY TYPE STRING,
MTLKST TYPE STRING,
MVCSH TYPE STRING,
MVCST TYPE STRING,
MVDSNU TYPE STRING,
MVDSSY TYPE STRING,
MVNU TYPE STRING,
MVNUC TYPE STRING,
MVSRNU TYPE STRING,
MVSRSY TYPE STRING,
MVTS TYPE STRING,
RAC TYPE STRING,
RARCNT TYPE STRING,
RNU TYPE STRING,
RNUC TYPE STRING,
RRRCNT TYPE STRING,
RST TYPE STRING,
SC TYPE STRING,
SN TYPE STRING,
T TYPE STRING,
THNU TYPE STRING,
THSY TYPE STRING,
TR_EXT TYPE STRING,
TS TYPE STRING,
TWRKY TYPE STRING,
TWRTS TYPE STRING,
TWRTY TYPE STRING,
VERSKY TYPE STRING,
WT TYPE STRING,END OF T_EKKO_STR. DATA: WA_CSL_DE_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_CSL_DE_STR-AC sy-vline
WA_CSL_DE_STR-AODT sy-vline
WA_CSL_DE_STR-AOKY sy-vline
WA_CSL_DE_STR-BOOL sy-vline
WA_CSL_DE_STR-CCHLE sy-vline
WA_CSL_DE_STR-CCHLEM sy-vline
WA_CSL_DE_STR-CIANU sy-vline
WA_CSL_DE_STR-CIASY sy-vline
WA_CSL_DE_STR-CIRNU sy-vline
WA_CSL_DE_STR-CIRSY sy-vline
WA_CSL_DE_STR-COLL sy-vline
WA_CSL_DE_STR-CPLNU sy-vline
WA_CSL_DE_STR-CPLSY sy-vline
WA_CSL_DE_STR-CPPNU sy-vline
WA_CSL_DE_STR-CPPPO sy-vline
WA_CSL_DE_STR-CPPSY sy-vline
WA_CSL_DE_STR-EOARGS sy-vline
WA_CSL_DE_STR-EOCOLS sy-vline
WA_CSL_DE_STR-EOCOUS sy-vline
WA_CSL_DE_STR-EOCVSO sy-vline
WA_CSL_DE_STR-EODD sy-vline
WA_CSL_DE_STR-EOEQLS sy-vline
WA_CSL_DE_STR-EOLS sy-vline
WA_CSL_DE_STR-EOMPKY sy-vline
WA_CSL_DE_STR-EOTYKY sy-vline
WA_CSL_DE_STR-EOURLS sy-vline
WA_CSL_DE_STR-GUID sy-vline
WA_CSL_DE_STR-GUIDC sy-vline
WA_CSL_DE_STR-ISACC sy-vline
WA_CSL_DE_STR-ISACL sy-vline
WA_CSL_DE_STR-ISACMC sy-vline
WA_CSL_DE_STR-ISACML sy-vline
WA_CSL_DE_STR-ISACMT sy-vline
WA_CSL_DE_STR-ISACT sy-vline
WA_CSL_DE_STR-LHNU sy-vline
WA_CSL_DE_STR-LHSY sy-vline
WA_CSL_DE_STR-LLUW sy-vline
WA_CSL_DE_STR-LLUWC sy-vline
WA_CSL_DE_STR-LMI sy-vline
WA_CSL_DE_STR-LNU sy-vline
WA_CSL_DE_STR-LNUC sy-vline
WA_CSL_DE_STR-LOGSYS sy-vline
WA_CSL_DE_STR-LRCNT sy-vline
WA_CSL_DE_STR-LS sy-vline
WA_CSL_DE_STR-LTS sy-vline
WA_CSL_DE_STR-LUS sy-vline
WA_CSL_DE_STR-MI sy-vline
WA_CSL_DE_STR-MNU sy-vline
WA_CSL_DE_STR-MSY sy-vline
WA_CSL_DE_STR-MTLKST sy-vline
WA_CSL_DE_STR-MVCSH sy-vline
WA_CSL_DE_STR-MVCST sy-vline
WA_CSL_DE_STR-MVDSNU sy-vline
WA_CSL_DE_STR-MVDSSY sy-vline
WA_CSL_DE_STR-MVNU sy-vline
WA_CSL_DE_STR-MVNUC sy-vline
WA_CSL_DE_STR-MVSRNU sy-vline
WA_CSL_DE_STR-MVSRSY sy-vline
WA_CSL_DE_STR-MVTS sy-vline
WA_CSL_DE_STR-RAC sy-vline
WA_CSL_DE_STR-RARCNT sy-vline
WA_CSL_DE_STR-RNU sy-vline
WA_CSL_DE_STR-RNUC sy-vline
WA_CSL_DE_STR-RRRCNT sy-vline
WA_CSL_DE_STR-RST sy-vline
WA_CSL_DE_STR-SC sy-vline
WA_CSL_DE_STR-SN sy-vline
WA_CSL_DE_STR-T sy-vline
WA_CSL_DE_STR-THNU sy-vline
WA_CSL_DE_STR-THSY sy-vline
WA_CSL_DE_STR-TR_EXT sy-vline
WA_CSL_DE_STR-TS sy-vline
WA_CSL_DE_STR-TWRKY sy-vline
WA_CSL_DE_STR-TWRTS sy-vline
WA_CSL_DE_STR-TWRTY sy-vline
WA_CSL_DE_STR-VERSKY sy-vline
WA_CSL_DE_STR-WT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.