ABAP Select data from SAP table CLIST_DISPLAY 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 CLIST_DISPLAY 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 CLIST_DISPLAY. 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 CLIST_DISPLAY 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_CLIST_DISPLAY TYPE STANDARD TABLE OF CLIST_DISPLAY,
      WA_CLIST_DISPLAY TYPE CLIST_DISPLAY,
      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: <CLIST_DISPLAY> TYPE CLIST_DISPLAY.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CLIST_DISPLAY
*  INTO TABLE @DATA(IT_CLIST_DISPLAY2).
*--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_CLIST_DISPLAY INDEX 1 INTO DATA(WA_CLIST_DISPLAY2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CLIST_DISPLAY ASSIGNING <CLIST_DISPLAY>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CLIST_DISPLAY>-MATON = 1.
<CLIST_DISPLAY>-MATOFF = 1.
<CLIST_DISPLAY>-SNON = 1.
<CLIST_DISPLAY>-SNOFF = 1.
<CLIST_DISPLAY>-ORDERNO = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CLIST_DISPLAY-OPERATION, sy-vline,
WA_CLIST_DISPLAY-REQ_QTY, sy-vline,
WA_CLIST_DISPLAY-REQ_UNIT, sy-vline,
WA_CLIST_DISPLAY-P_MODE, sy-vline,
WA_CLIST_DISPLAY-STATUS, sy-vline,
WA_CLIST_DISPLAY-BATCHOFF, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CLIST_DISPLAY 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_CLIST_DISPLAY 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_CLIST_DISPLAY INTO WA_CLIST_DISPLAY. *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 MATN1, internal->external for field MATON CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_CLIST_DISPLAY-MATON IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CLIST_DISPLAY-MATON.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit GERNR, internal->external for field SNON CALL FUNCTION 'CONVERSION_EXIT_GERNR_OUTPUT' EXPORTING input = WA_CLIST_DISPLAY-SNON IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CLIST_DISPLAY-SNON.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GERNR, internal->external for field SNOFF CALL FUNCTION 'CONVERSION_EXIT_GERNR_OUTPUT' EXPORTING input = WA_CLIST_DISPLAY-SNOFF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CLIST_DISPLAY-SNOFF.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit CUNIT, internal->external for field REQ_UNIT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CLIST_DISPLAY-REQ_UNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CLIST_DISPLAY-REQ_UNIT.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit TPLNR, internal->external for field STPLNR CALL FUNCTION 'CONVERSION_EXIT_TPLNR_OUTPUT' EXPORTING input = WA_CLIST_DISPLAY-STPLNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CLIST_DISPLAY-STPLNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

*Conversion exit ABPSP, internal->external for field PSPELON CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_CLIST_DISPLAY-PSPELON IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CLIST_DISPLAY-PSPELON.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ABPSP, internal->external for field PSPELOFF CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_CLIST_DISPLAY-PSPELOFF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CLIST_DISPLAY-PSPELOFF.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field LIFNROFF CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CLIST_DISPLAY-LIFNROFF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CLIST_DISPLAY-LIFNROFF.
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_CLIST_DISPLAY_STR,
MATON TYPE STRING,
MATOFF TYPE STRING,
SNON TYPE STRING,
SNOFF TYPE STRING,
ORDERNO TYPE STRING,
OPERATION TYPE STRING,
REQ_QTY TYPE STRING,
REQ_UNIT TYPE STRING,
P_MODE TYPE STRING,
STATUS TYPE STRING,
BATCHOFF TYPE STRING,
BATCHON TYPE STRING,
EVENT TYPE STRING,
COND TYPE STRING,
NOTIFTEXT TYPE STRING,
RESNOON TYPE STRING,
RESNOOFF TYPE STRING,
SEQUNR TYPE STRING,
STPLNR TYPE STRING,
SPOSNR TYPE STRING,
P_DATE TYPE STRING,
P_TIME TYPE STRING,
P_ZONE TYPE STRING,
PLANTON TYPE STRING,
SLOCON TYPE STRING,
PLANTOFF TYPE STRING,
SLOCOFF TYPE STRING,
MATON_TXT TYPE STRING,
MATOFF_TXT TYPE STRING,
EQUION TYPE STRING,
EQUIOFF TYPE STRING,
BWARTON TYPE STRING,
BWARTOFF TYPE STRING,
SOBKZON TYPE STRING,
SOBKZOFF TYPE STRING,
KDAUFON TYPE STRING,
KDAUFOFF TYPE STRING,
KDPOSON TYPE STRING,
KDPOSOFF TYPE STRING,
PSPELON TYPE STRING,
PSPELOFF TYPE STRING,
LIFNRON TYPE STRING,
LIFNROFF TYPE STRING,
UIION TYPE STRING,
UIIOFF TYPE STRING,END OF T_EKKO_STR. DATA: WA_CLIST_DISPLAY_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_CLIST_DISPLAY_STR-MATON sy-vline
WA_CLIST_DISPLAY_STR-MATOFF sy-vline
WA_CLIST_DISPLAY_STR-SNON sy-vline
WA_CLIST_DISPLAY_STR-SNOFF sy-vline
WA_CLIST_DISPLAY_STR-ORDERNO sy-vline
WA_CLIST_DISPLAY_STR-OPERATION sy-vline
WA_CLIST_DISPLAY_STR-REQ_QTY sy-vline
WA_CLIST_DISPLAY_STR-REQ_UNIT sy-vline
WA_CLIST_DISPLAY_STR-P_MODE sy-vline
WA_CLIST_DISPLAY_STR-STATUS sy-vline
WA_CLIST_DISPLAY_STR-BATCHOFF sy-vline
WA_CLIST_DISPLAY_STR-BATCHON sy-vline
WA_CLIST_DISPLAY_STR-EVENT sy-vline
WA_CLIST_DISPLAY_STR-COND sy-vline
WA_CLIST_DISPLAY_STR-NOTIFTEXT sy-vline
WA_CLIST_DISPLAY_STR-RESNOON sy-vline
WA_CLIST_DISPLAY_STR-RESNOOFF sy-vline
WA_CLIST_DISPLAY_STR-SEQUNR sy-vline
WA_CLIST_DISPLAY_STR-STPLNR sy-vline
WA_CLIST_DISPLAY_STR-SPOSNR sy-vline
WA_CLIST_DISPLAY_STR-P_DATE sy-vline
WA_CLIST_DISPLAY_STR-P_TIME sy-vline
WA_CLIST_DISPLAY_STR-P_ZONE sy-vline
WA_CLIST_DISPLAY_STR-PLANTON sy-vline
WA_CLIST_DISPLAY_STR-SLOCON sy-vline
WA_CLIST_DISPLAY_STR-PLANTOFF sy-vline
WA_CLIST_DISPLAY_STR-SLOCOFF sy-vline
WA_CLIST_DISPLAY_STR-MATON_TXT sy-vline
WA_CLIST_DISPLAY_STR-MATOFF_TXT sy-vline
WA_CLIST_DISPLAY_STR-EQUION sy-vline
WA_CLIST_DISPLAY_STR-EQUIOFF sy-vline
WA_CLIST_DISPLAY_STR-BWARTON sy-vline
WA_CLIST_DISPLAY_STR-BWARTOFF sy-vline
WA_CLIST_DISPLAY_STR-SOBKZON sy-vline
WA_CLIST_DISPLAY_STR-SOBKZOFF sy-vline
WA_CLIST_DISPLAY_STR-KDAUFON sy-vline
WA_CLIST_DISPLAY_STR-KDAUFOFF sy-vline
WA_CLIST_DISPLAY_STR-KDPOSON sy-vline
WA_CLIST_DISPLAY_STR-KDPOSOFF sy-vline
WA_CLIST_DISPLAY_STR-PSPELON sy-vline
WA_CLIST_DISPLAY_STR-PSPELOFF sy-vline
WA_CLIST_DISPLAY_STR-LIFNRON sy-vline
WA_CLIST_DISPLAY_STR-LIFNROFF sy-vline
WA_CLIST_DISPLAY_STR-UIION sy-vline
WA_CLIST_DISPLAY_STR-UIIOFF sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.