ABAP Select data from SAP table CSAP_S_COMPARE_ATTR 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 CSAP_S_COMPARE_ATTR 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 CSAP_S_COMPARE_ATTR. 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 CSAP_S_COMPARE_ATTR 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_CSAP_S_COMPARE_ATTR TYPE STANDARD TABLE OF CSAP_S_COMPARE_ATTR,
      WA_CSAP_S_COMPARE_ATTR TYPE CSAP_S_COMPARE_ATTR,
      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: <CSAP_S_COMPARE_ATTR> TYPE CSAP_S_COMPARE_ATTR.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CSAP_S_COMPARE_ATTR
*  INTO TABLE @DATA(IT_CSAP_S_COMPARE_ATTR2).
*--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_CSAP_S_COMPARE_ATTR INDEX 1 INTO DATA(WA_CSAP_S_COMPARE_ATTR2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CSAP_S_COMPARE_ATTR ASSIGNING <CSAP_S_COMPARE_ATTR>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CSAP_S_COMPARE_ATTR>-BOMCOMPARISONUUID = 1.
<CSAP_S_COMPARE_ATTR>-BOMCOMPONENTPRIMARY = 1.
<CSAP_S_COMPARE_ATTR>-BOMCOMPONENTSECONDARY = 1.
<CSAP_S_COMPARE_ATTR>-BOMCOMPARISONRESULT = 1.
<CSAP_S_COMPARE_ATTR>-MATERIALTYPEPRIMARY = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CSAP_S_COMPARE_ATTR-MATERIALTYPESECONDARY, sy-vline,
WA_CSAP_S_COMPARE_ATTR-BOMITEMQUANTITYPRIMARY, sy-vline,
WA_CSAP_S_COMPARE_ATTR-BOMITEMQUANTITYSECONDARY, sy-vline,
WA_CSAP_S_COMPARE_ATTR-BOMITEMCATEGORYPRIMARY, sy-vline,
WA_CSAP_S_COMPARE_ATTR-BOMITEMCATEGORYSECONDARY, sy-vline,
WA_CSAP_S_COMPARE_ATTR-BOMITEMNUMBERPRIMARY, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CSAP_S_COMPARE_ATTR 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_CSAP_S_COMPARE_ATTR 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_CSAP_S_COMPARE_ATTR INTO WA_CSAP_S_COMPARE_ATTR. *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 BOMCOMPONENTPRIMARY CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_CSAP_S_COMPARE_ATTR-BOMCOMPONENTPRIMARY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CSAP_S_COMPARE_ATTR-BOMCOMPONENTPRIMARY.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit NUMCV, internal->external for field BOMITEMNUMBERPRIMARY CALL FUNCTION 'CONVERSION_EXIT_NUMCV_OUTPUT' EXPORTING input = WA_CSAP_S_COMPARE_ATTR-BOMITEMNUMBERPRIMARY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CSAP_S_COMPARE_ATTR-BOMITEMNUMBERPRIMARY.
WRITE:/ 'New Value:', ld_input.

*Conversion exit NUMCV, internal->external for field BOMITEMNUMBERSECONDARY CALL FUNCTION 'CONVERSION_EXIT_NUMCV_OUTPUT' EXPORTING input = WA_CSAP_S_COMPARE_ATTR-BOMITEMNUMBERSECONDARY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CSAP_S_COMPARE_ATTR-BOMITEMNUMBERSECONDARY.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field SUPPLIERSECONDARY CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CSAP_S_COMPARE_ATTR-SUPPLIERSECONDARY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CSAP_S_COMPARE_ATTR-SUPPLIERSECONDARY.
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_CSAP_S_COMPARE_ATTR_STR,
BOMCOMPARISONUUID TYPE STRING,
BOMCOMPONENTPRIMARY TYPE STRING,
BOMCOMPONENTSECONDARY TYPE STRING,
BOMCOMPARISONRESULT TYPE STRING,
MATERIALTYPEPRIMARY TYPE STRING,
MATERIALTYPESECONDARY TYPE STRING,
BOMITEMQUANTITYPRIMARY TYPE STRING,
BOMITEMQUANTITYSECONDARY TYPE STRING,
BOMITEMCATEGORYPRIMARY TYPE STRING,
BOMITEMCATEGORYSECONDARY TYPE STRING,
BOMITEMNUMBERPRIMARY TYPE STRING,
BOMITEMNUMBERSECONDARY TYPE STRING,
COMPLETEMAINTSTATUSPRIMARY TYPE STRING,
COMPLETEMAINTSTATUSSECONDARY TYPE STRING,
BOMITEMDESCRIPTIONPRIMARY TYPE STRING,
BOMITEMDESCRIPTIONSECONDARY TYPE STRING,
BOMHEADERBASEUNITPRIMARY TYPE STRING,
BOMHEADERBASEUNITSECONDARY TYPE STRING,
BOMITEMUNITPRIMARY TYPE STRING,
BOMITEMUNITSECONDARY TYPE STRING,
ISPRODUCTIONRELEVANTPRIMARY TYPE STRING,
ISPRODUCTIONRELEVANTSECOND TYPE STRING,
ITEMISCOSTINGRELEVANTPRIMARY TYPE STRING,
ITEMISCOSTINGRELEVANTSECONDARY TYPE STRING,
ISHEADERDELETEPRIMARY TYPE STRING,
ISHEADERDELETESECONDARY TYPE STRING,
SPCLPROCUREMENTTYPEPRIMARY TYPE STRING,
MATLISCONFIGURABLEPRIMARY TYPE STRING,
ISMATERIALPROVISIONPRIMARY TYPE STRING,
ISCADPRIMARY TYPE STRING,
LEADTIMEOFFSETPRIMARY TYPE STRING,
PURCHASINGGROUPPRIMARY TYPE STRING,
DELIVDURATIONINDAYSPRIMARY TYPE STRING,
SUPPLIERPRIMARY TYPE STRING,
BOMITEMPRICEPRIMARY TYPE STRING,
BOMITEMPRICEUNITPRIMARY TYPE STRING,
NMBROFVARBLSIZEITEMPRIMARY TYPE STRING,
SIZE1PRIMARY TYPE STRING,
SIZE2PRIMARY TYPE STRING,
SIZE3PRIMARY TYPE STRING,
QTYVARIABLESIZEITEMPRIMARY TYPE STRING,
FORMULAKEYPRIMARY TYPE STRING,
GOODSRECEIPTDURATIONPRIMARY TYPE STRING,
MATERIALGROUPPRIMARY TYPE STRING,
SPCLPROCUREMENTTYPESECONDARY TYPE STRING,
MATLISCONFIGURABLESECONDARY TYPE STRING,
ISMATERIALPROVISIONSECONDARY TYPE STRING,
ISCADSECONDARY TYPE STRING,
LEADTIMEOFFSETSECONDARY TYPE STRING,
PURCHASINGGROUPSECONDARY TYPE STRING,
DELIVDURATIONINDAYSSECONDARY TYPE STRING,
SUPPLIERSECONDARY TYPE STRING,
BOMITEMPRICESECONDARY TYPE STRING,
BOMITEMPRICEUNITSECONDARY TYPE STRING,
NMBROFVARBLSIZEITEMSECONDARY TYPE STRING,
SIZE1SECONDARY TYPE STRING,
SIZE2SECONDARY TYPE STRING,
SIZE3SECONDARY TYPE STRING,
QTYVARIABLESIZEITEMSECONDARY TYPE STRING,
FORMULAKEYSECONDARY TYPE STRING,
GOODSRECEIPTDURATIONSECONDARY TYPE STRING,
MATERIALGROUPSECONDARY TYPE STRING,END OF T_EKKO_STR. DATA: WA_CSAP_S_COMPARE_ATTR_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_CSAP_S_COMPARE_ATTR_STR-BOMCOMPARISONUUID sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMCOMPONENTPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMCOMPONENTSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMCOMPARISONRESULT sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-MATERIALTYPEPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-MATERIALTYPESECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMQUANTITYPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMQUANTITYSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMCATEGORYPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMCATEGORYSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMNUMBERPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMNUMBERSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-COMPLETEMAINTSTATUSPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-COMPLETEMAINTSTATUSSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMDESCRIPTIONPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMDESCRIPTIONSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMHEADERBASEUNITPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMHEADERBASEUNITSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMUNITPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMUNITSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-ISPRODUCTIONRELEVANTPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-ISPRODUCTIONRELEVANTSECOND sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-ITEMISCOSTINGRELEVANTPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-ITEMISCOSTINGRELEVANTSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-ISHEADERDELETEPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-ISHEADERDELETESECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-SPCLPROCUREMENTTYPEPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-MATLISCONFIGURABLEPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-ISMATERIALPROVISIONPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-ISCADPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-LEADTIMEOFFSETPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-PURCHASINGGROUPPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-DELIVDURATIONINDAYSPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-SUPPLIERPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMPRICEPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMPRICEUNITPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-NMBROFVARBLSIZEITEMPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-SIZE1PRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-SIZE2PRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-SIZE3PRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-QTYVARIABLESIZEITEMPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-FORMULAKEYPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-GOODSRECEIPTDURATIONPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-MATERIALGROUPPRIMARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-SPCLPROCUREMENTTYPESECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-MATLISCONFIGURABLESECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-ISMATERIALPROVISIONSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-ISCADSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-LEADTIMEOFFSETSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-PURCHASINGGROUPSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-DELIVDURATIONINDAYSSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-SUPPLIERSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMPRICESECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-BOMITEMPRICEUNITSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-NMBROFVARBLSIZEITEMSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-SIZE1SECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-SIZE2SECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-SIZE3SECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-QTYVARIABLESIZEITEMSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-FORMULAKEYSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-GOODSRECEIPTDURATIONSECONDARY sy-vline
WA_CSAP_S_COMPARE_ATTR_STR-MATERIALGROUPSECONDARY sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.