ABAP Select data from SAP table CSUPPLIST 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 CSUPPLIST 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 CSUPPLIST. 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 CSUPPLIST 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_CSUPPLIST TYPE STANDARD TABLE OF CSUPPLIST,
      WA_CSUPPLIST TYPE CSUPPLIST,
      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: <CSUPPLIST> TYPE CSUPPLIST.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CSUPPLIST
*  INTO TABLE @DATA(IT_CSUPPLIST2).
*--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_CSUPPLIST INDEX 1 INTO DATA(WA_CSUPPLIST2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CSUPPLIST ASSIGNING <CSUPPLIST>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CSUPPLIST>-MANDT = 1.
<CSUPPLIST>-SUPPLIER = 1.
<CSUPPLIST>-COMPANYCODE = 1.
<CSUPPLIST>-BUSINESSPARTNER = 1.
<CSUPPLIST>-PURCHASINGORGANIZATION = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CSUPPLIST-BANKCOUNTRY, sy-vline,
WA_CSUPPLIST-BANK, sy-vline,
WA_CSUPPLIST-BANKACCOUNT, sy-vline,
WA_CSUPPLIST-COUNTRY, sy-vline,
WA_CSUPPLIST-BPTAXTYPE, sy-vline,
WA_CSUPPLIST-SUPPLIERNAME, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CSUPPLIST 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_CSUPPLIST 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_CSUPPLIST INTO WA_CSUPPLIST. *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 SUPPLIER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CSUPPLIST-SUPPLIER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CSUPPLIST-SUPPLIER.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

*Conversion exit SXIDN, internal->external for field EMAILADDRESS CALL FUNCTION 'CONVERSION_EXIT_SXIDN_OUTPUT' EXPORTING input = WA_CSUPPLIST-EMAILADDRESS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CSUPPLIST-EMAILADDRESS.
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_CSUPPLIST_STR,
MANDT TYPE STRING,
SUPPLIER TYPE STRING,
COMPANYCODE TYPE STRING,
BUSINESSPARTNER TYPE STRING,
PURCHASINGORGANIZATION TYPE STRING,
BANKCOUNTRY TYPE STRING,
BANK TYPE STRING,
BANKACCOUNT TYPE STRING,
COUNTRY TYPE STRING,
BPTAXTYPE TYPE STRING,
SUPPLIERNAME TYPE STRING,
ORGANIZATIONBPNAME1 TYPE STRING,
ORGANIZATIONBPNAME2 TYPE STRING,
SUPPLIERCOUNTRYNAME TYPE STRING,
REGION TYPE STRING,
REGIONNAME TYPE STRING,
POSTALCODE TYPE STRING,
CITYNAME TYPE STRING,
STREETNAME TYPE STRING,
STREETPREFIXNAME TYPE STRING,
ADDITIONALSTREETPREFIXNAME TYPE STRING,
STREETSUFFIXNAME TYPE STRING,
ADDITIONALSTREETSUFFIXNAME TYPE STRING,
PHONENUMBER1 TYPE STRING,
FAXNUMBER TYPE STRING,
CREATIONDATE TYPE STRING,
CREATEDBYUSER TYPE STRING,
PHONENUMBER2 TYPE STRING,
ISNATURALPERSON TYPE STRING,
TAXNUMBER1 TYPE STRING,
TAXNUMBER2 TYPE STRING,
TAXNUMBER3 TYPE STRING,
TAXNUMBER4 TYPE STRING,
TAXNUMBER5 TYPE STRING,
VATREGISTRATION TYPE STRING,
TAXTYPENAME TYPE STRING,
RESPONSIBLETYPE TYPE STRING,
TAXNUMBERTYPE TYPE STRING,
TAXNUMBERRESPONSIBLE TYPE STRING,
ADDRESSID TYPE STRING,
DELETIONINDICATOR TYPE STRING,
TRADINGPARTNER TYPE STRING,
SUPPLIERACCOUNTGROUP TYPE STRING,
ACCOUNTGROUPNAME TYPE STRING,
AUTHORIZATIONGROUP TYPE STRING,
ACCOUNTISBLOCKEDFORPOSTING TYPE STRING,
PAYMENTISBLOCKEDFORSUPPLIER TYPE STRING,
ALTERNATIVEPAYEEACCOUNTNUMBER TYPE STRING,
SEARCHSTRING TYPE STRING,
LAYOUTSORTINGRULE TYPE STRING,
RECONCILIATIONACCOUNT TYPE STRING,
PAYMENTMETHODSLIST TYPE STRING,
ACCOUNTINGCLERK TYPE STRING,
ACCOUNTINGCLERKFAXNUMBER TYPE STRING,
SUPPLIERCLERKURL TYPE STRING,
ACCOUNTINGCLERKPHONENUMBER TYPE STRING,
SUPLRCOCODEPAYMENTTERMS TYPE STRING,
PAYMENTBLOCKINGREASON TYPE STRING,
SUPLRISDELTDCOCODE TYPE STRING,
CASHPLANNINGGROUP TYPE STRING,
ISTOBECHECKEDFORDUPLICATES TYPE STRING,
COMPANYCODENAME TYPE STRING,
SUPPLIERISBLOCKEDFORPOSTING TYPE STRING,
PURORDAUTOGENERATIONISALLOWED TYPE STRING,
PURCHASINGGROUP TYPE STRING,
SUPPLIERPURGORGPAYMENTTERMS TYPE STRING,
PURCHASINGISBLOCKEDFORSUPPLIER TYPE STRING,
SUPLRISDELTDPURGORG TYPE STRING,
INVOICEISGOODSRECEIPTBASED TYPE STRING,
PURCHASEORDERCURRENCY TYPE STRING,
SUPPLIERRELEASEGROUP TYPE STRING,
EMAILADDRESS TYPE STRING,
SEARCHEMAILADDRESS TYPE STRING,
BANKNAME TYPE STRING,
BANKINTERNALID TYPE STRING,
SWIFTCODE TYPE STRING,
IBAN TYPE STRING,
BANKCONTROLKEY TYPE STRING,
BANKACCOUNTHOLDERNAME TYPE STRING,
COUNTRYNAME TYPE STRING,
BUSPARTPOBOXDVTGCITYNAME TYPE STRING,
VATLIABILITY TYPE STRING,
WITHHOLDINGTAXCOUNTRY TYPE STRING,
FULLNAME TYPE STRING,
SEARCHTERM1 TYPE STRING,
SEARCHTERM2 TYPE STRING,
BRANCHCODE TYPE STRING,
TH_BRANCHCODEDESCRIPTION TYPE STRING,
ISDEFAULTVALUE TYPE STRING,
PREVIOUSACCOUNTNUMBER TYPE STRING,END OF T_EKKO_STR. DATA: WA_CSUPPLIST_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_CSUPPLIST_STR-MANDT sy-vline
WA_CSUPPLIST_STR-SUPPLIER sy-vline
WA_CSUPPLIST_STR-COMPANYCODE sy-vline
WA_CSUPPLIST_STR-BUSINESSPARTNER sy-vline
WA_CSUPPLIST_STR-PURCHASINGORGANIZATION sy-vline
WA_CSUPPLIST_STR-BANKCOUNTRY sy-vline
WA_CSUPPLIST_STR-BANK sy-vline
WA_CSUPPLIST_STR-BANKACCOUNT sy-vline
WA_CSUPPLIST_STR-COUNTRY sy-vline
WA_CSUPPLIST_STR-BPTAXTYPE sy-vline
WA_CSUPPLIST_STR-SUPPLIERNAME sy-vline
WA_CSUPPLIST_STR-ORGANIZATIONBPNAME1 sy-vline
WA_CSUPPLIST_STR-ORGANIZATIONBPNAME2 sy-vline
WA_CSUPPLIST_STR-SUPPLIERCOUNTRYNAME sy-vline
WA_CSUPPLIST_STR-REGION sy-vline
WA_CSUPPLIST_STR-REGIONNAME sy-vline
WA_CSUPPLIST_STR-POSTALCODE sy-vline
WA_CSUPPLIST_STR-CITYNAME sy-vline
WA_CSUPPLIST_STR-STREETNAME sy-vline
WA_CSUPPLIST_STR-STREETPREFIXNAME sy-vline
WA_CSUPPLIST_STR-ADDITIONALSTREETPREFIXNAME sy-vline
WA_CSUPPLIST_STR-STREETSUFFIXNAME sy-vline
WA_CSUPPLIST_STR-ADDITIONALSTREETSUFFIXNAME sy-vline
WA_CSUPPLIST_STR-PHONENUMBER1 sy-vline
WA_CSUPPLIST_STR-FAXNUMBER sy-vline
WA_CSUPPLIST_STR-CREATIONDATE sy-vline
WA_CSUPPLIST_STR-CREATEDBYUSER sy-vline
WA_CSUPPLIST_STR-PHONENUMBER2 sy-vline
WA_CSUPPLIST_STR-ISNATURALPERSON sy-vline
WA_CSUPPLIST_STR-TAXNUMBER1 sy-vline
WA_CSUPPLIST_STR-TAXNUMBER2 sy-vline
WA_CSUPPLIST_STR-TAXNUMBER3 sy-vline
WA_CSUPPLIST_STR-TAXNUMBER4 sy-vline
WA_CSUPPLIST_STR-TAXNUMBER5 sy-vline
WA_CSUPPLIST_STR-VATREGISTRATION sy-vline
WA_CSUPPLIST_STR-TAXTYPENAME sy-vline
WA_CSUPPLIST_STR-RESPONSIBLETYPE sy-vline
WA_CSUPPLIST_STR-TAXNUMBERTYPE sy-vline
WA_CSUPPLIST_STR-TAXNUMBERRESPONSIBLE sy-vline
WA_CSUPPLIST_STR-ADDRESSID sy-vline
WA_CSUPPLIST_STR-DELETIONINDICATOR sy-vline
WA_CSUPPLIST_STR-TRADINGPARTNER sy-vline
WA_CSUPPLIST_STR-SUPPLIERACCOUNTGROUP sy-vline
WA_CSUPPLIST_STR-ACCOUNTGROUPNAME sy-vline
WA_CSUPPLIST_STR-AUTHORIZATIONGROUP sy-vline
WA_CSUPPLIST_STR-ACCOUNTISBLOCKEDFORPOSTING sy-vline
WA_CSUPPLIST_STR-PAYMENTISBLOCKEDFORSUPPLIER sy-vline
WA_CSUPPLIST_STR-ALTERNATIVEPAYEEACCOUNTNUMBER sy-vline
WA_CSUPPLIST_STR-SEARCHSTRING sy-vline
WA_CSUPPLIST_STR-LAYOUTSORTINGRULE sy-vline
WA_CSUPPLIST_STR-RECONCILIATIONACCOUNT sy-vline
WA_CSUPPLIST_STR-PAYMENTMETHODSLIST sy-vline
WA_CSUPPLIST_STR-ACCOUNTINGCLERK sy-vline
WA_CSUPPLIST_STR-ACCOUNTINGCLERKFAXNUMBER sy-vline
WA_CSUPPLIST_STR-SUPPLIERCLERKURL sy-vline
WA_CSUPPLIST_STR-ACCOUNTINGCLERKPHONENUMBER sy-vline
WA_CSUPPLIST_STR-SUPLRCOCODEPAYMENTTERMS sy-vline
WA_CSUPPLIST_STR-PAYMENTBLOCKINGREASON sy-vline
WA_CSUPPLIST_STR-SUPLRISDELTDCOCODE sy-vline
WA_CSUPPLIST_STR-CASHPLANNINGGROUP sy-vline
WA_CSUPPLIST_STR-ISTOBECHECKEDFORDUPLICATES sy-vline
WA_CSUPPLIST_STR-COMPANYCODENAME sy-vline
WA_CSUPPLIST_STR-SUPPLIERISBLOCKEDFORPOSTING sy-vline
WA_CSUPPLIST_STR-PURORDAUTOGENERATIONISALLOWED sy-vline
WA_CSUPPLIST_STR-PURCHASINGGROUP sy-vline
WA_CSUPPLIST_STR-SUPPLIERPURGORGPAYMENTTERMS sy-vline
WA_CSUPPLIST_STR-PURCHASINGISBLOCKEDFORSUPPLIER sy-vline
WA_CSUPPLIST_STR-SUPLRISDELTDPURGORG sy-vline
WA_CSUPPLIST_STR-INVOICEISGOODSRECEIPTBASED sy-vline
WA_CSUPPLIST_STR-PURCHASEORDERCURRENCY sy-vline
WA_CSUPPLIST_STR-SUPPLIERRELEASEGROUP sy-vline
WA_CSUPPLIST_STR-EMAILADDRESS sy-vline
WA_CSUPPLIST_STR-SEARCHEMAILADDRESS sy-vline
WA_CSUPPLIST_STR-BANKNAME sy-vline
WA_CSUPPLIST_STR-BANKINTERNALID sy-vline
WA_CSUPPLIST_STR-SWIFTCODE sy-vline
WA_CSUPPLIST_STR-IBAN sy-vline
WA_CSUPPLIST_STR-BANKCONTROLKEY sy-vline
WA_CSUPPLIST_STR-BANKACCOUNTHOLDERNAME sy-vline
WA_CSUPPLIST_STR-COUNTRYNAME sy-vline
WA_CSUPPLIST_STR-BUSPARTPOBOXDVTGCITYNAME sy-vline
WA_CSUPPLIST_STR-VATLIABILITY sy-vline
WA_CSUPPLIST_STR-WITHHOLDINGTAXCOUNTRY sy-vline
WA_CSUPPLIST_STR-FULLNAME sy-vline
WA_CSUPPLIST_STR-SEARCHTERM1 sy-vline
WA_CSUPPLIST_STR-SEARCHTERM2 sy-vline
WA_CSUPPLIST_STR-BRANCHCODE sy-vline
WA_CSUPPLIST_STR-TH_BRANCHCODEDESCRIPTION sy-vline
WA_CSUPPLIST_STR-ISDEFAULTVALUE sy-vline
WA_CSUPPLIST_STR-PREVIOUSACCOUNTNUMBER sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.