ABAP Select data from SAP table CE9S_AL_IQ 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 CE9S_AL_IQ 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 CE9S_AL_IQ. 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 CE9S_AL_IQ 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_CE9S_AL_IQ TYPE STANDARD TABLE OF CE9S_AL_IQ, WA_CE9S_AL_IQ TYPE CE9S_AL_IQ, 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: <CE9S_AL_IQ> TYPE CE9S_AL_IQ. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_CE9S_AL_IQ. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM CE9S_AL_IQ INTO TABLE IT_CE9S_AL_IQ. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM CE9S_AL_IQ * INTO TABLE @DATA(IT_CE9S_AL_IQ2). *--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_CE9S_AL_IQ INDEX 1 INTO DATA(WA_CE9S_AL_IQ2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_CE9S_AL_IQ ASSIGNING <CE9S_AL_IQ>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<CE9S_AL_IQ>-MANDT = 1.
<CE9S_AL_IQ>-BELNR = 1.
<CE9S_AL_IQ>-POSNR = 1.
<CE9S_AL_IQ>-SUBNR = 1.
<CE9S_AL_IQ>-KSTAR = 1.
ENDLOOP. LOOP AT IT_CE9S_AL_IQ INTO WA_CE9S_AL_IQ. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_CE9S_AL_IQ-KSTARS, sy-vline,
WA_CE9S_AL_IQ-KWBLOK, sy-vline,
WA_CE9S_AL_IQ-KWBLOK_ME, sy-vline,
WA_CE9S_AL_IQ-KWFLHR, sy-vline,
WA_CE9S_AL_IQ-KWFLHR_ME, sy-vline,
WA_CE9S_AL_IQ-KWFLKM, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CE9S_AL_IQ 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_CE9S_AL_IQ 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_CE9S_AL_IQ INTO WA_CE9S_AL_IQ. *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 BELNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CE9S_AL_IQ-BELNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CE9S_AL_IQ-BELNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field KSTAR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CE9S_AL_IQ-KSTAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CE9S_AL_IQ-KSTAR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field KSTARS CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CE9S_AL_IQ-KSTARS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CE9S_AL_IQ-KSTARS.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field KWBLOK_ME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CE9S_AL_IQ-KWBLOK_ME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CE9S_AL_IQ-KWBLOK_ME.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field KWFLHR_ME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CE9S_AL_IQ-KWFLHR_ME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CE9S_AL_IQ-KWFLHR_ME.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field KWFLKM_ME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CE9S_AL_IQ-KWFLKM_ME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CE9S_AL_IQ-KWFLKM_ME.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field KWFUEL_ME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CE9S_AL_IQ-KWFUEL_ME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CE9S_AL_IQ-KWFUEL_ME.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field KWPAXS_ME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CE9S_AL_IQ-KWPAXS_ME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CE9S_AL_IQ-KWPAXS_ME.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field KWSEAT_ME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CE9S_AL_IQ-KWSEAT_ME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CE9S_AL_IQ-KWSEAT_ME.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field KWBKPZ_ME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CE9S_AL_IQ-KWBKPZ_ME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CE9S_AL_IQ-KWBKPZ_ME.
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_CE9S_AL_IQ_STR,
MANDT TYPE STRING,
BELNR TYPE STRING,
POSNR TYPE STRING,
SUBNR TYPE STRING,
KSTAR TYPE STRING,
KSTARS TYPE STRING,
KWBLOK TYPE STRING,
KWBLOK_ME TYPE STRING,
KWFLHR TYPE STRING,
KWFLHR_ME TYPE STRING,
KWFLKM TYPE STRING,
KWFLKM_ME TYPE STRING,
KWFUEL TYPE STRING,
KWFUEL_ME TYPE STRING,
KWPAXS TYPE STRING,
KWPAXS_ME TYPE STRING,
KWSEAT TYPE STRING,
KWSEAT_ME TYPE STRING,
KWBKPZ TYPE STRING,
KWBKPZ_ME TYPE STRING,END OF T_EKKO_STR. DATA: WA_CE9S_AL_IQ_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_CE9S_AL_IQ_STR-MANDT sy-vline
WA_CE9S_AL_IQ_STR-BELNR sy-vline
WA_CE9S_AL_IQ_STR-POSNR sy-vline
WA_CE9S_AL_IQ_STR-SUBNR sy-vline
WA_CE9S_AL_IQ_STR-KSTAR sy-vline
WA_CE9S_AL_IQ_STR-KSTARS sy-vline
WA_CE9S_AL_IQ_STR-KWBLOK sy-vline
WA_CE9S_AL_IQ_STR-KWBLOK_ME sy-vline
WA_CE9S_AL_IQ_STR-KWFLHR sy-vline
WA_CE9S_AL_IQ_STR-KWFLHR_ME sy-vline
WA_CE9S_AL_IQ_STR-KWFLKM sy-vline
WA_CE9S_AL_IQ_STR-KWFLKM_ME sy-vline
WA_CE9S_AL_IQ_STR-KWFUEL sy-vline
WA_CE9S_AL_IQ_STR-KWFUEL_ME sy-vline
WA_CE9S_AL_IQ_STR-KWPAXS sy-vline
WA_CE9S_AL_IQ_STR-KWPAXS_ME sy-vline
WA_CE9S_AL_IQ_STR-KWSEAT sy-vline
WA_CE9S_AL_IQ_STR-KWSEAT_ME sy-vline
WA_CE9S_AL_IQ_STR-KWBKPZ sy-vline
WA_CE9S_AL_IQ_STR-KWBKPZ_ME sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.