ABAP Select data from SAP table EKOND 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 EKOND 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 EKOND. 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 EKOND 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_EKOND TYPE STANDARD TABLE OF EKOND,
      WA_EKOND TYPE EKOND,
      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: <EKOND> TYPE EKOND.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM EKOND
*  INTO TABLE @DATA(IT_EKOND2).
*--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_EKOND INDEX 1 INTO DATA(WA_EKOND2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_EKOND ASSIGNING <EKOND>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<EKOND>-MANDT = 1.
<EKOND>-KONZVER = 1.
<EKOND>-BUKRS = 1.
<EKOND>-SPARTE = 1.
<EKOND>-KUNDE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_EKOND-KAVERF, sy-vline,
WA_EKOND-KAVERF_EA16, sy-vline,
WA_EKOND-BEARKZ, sy-vline,
WA_EKOND-VERTART, sy-vline,
WA_EKOND-VERLZEIT, sy-vline,
WA_EKOND-VERWGEM, sy-vline.
ENDLOOP. *Add any further fields from structure WA_EKOND 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_EKOND 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_EKOND INTO WA_EKOND. *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 KONZVER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_EKOND-KONZVER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_EKOND-KONZVER.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field V_KONZVER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_EKOND-V_KONZVER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_EKOND-V_KONZVER.
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_EKOND_STR,
MANDT TYPE STRING,
KONZVER TYPE STRING,
BUKRS TYPE STRING,
SPARTE TYPE STRING,
KUNDE TYPE STRING,
KAVERF TYPE STRING,
KAVERF_EA16 TYPE STRING,
BEARKZ TYPE STRING,
VERTART TYPE STRING,
VERLZEIT TYPE STRING,
VERWGEM TYPE STRING,
ERDAT TYPE STRING,
ERNAM TYPE STRING,
AEDAT TYPE STRING,
AENAM TYPE STRING,
BEGRU TYPE STRING,
LOEVM TYPE STRING,
VBEGINN TYPE STRING,
VENDE TYPE STRING,
VERLDAT TYPE STRING,
KUENDAT TYPE STRING,
ANZVERL TYPE STRING,
VERLEINH TYPE STRING,
ANZKUEN TYPE STRING,
KUENEINH TYPE STRING,
V_KONZVER TYPE STRING,
NUM_RANGE TYPE STRING,
TWAERS TYPE STRING,
AB TYPE STRING,
KONZIGR TYPE STRING,
AKLASSE TYPE STRING,
ZONENNR TYPE STRING,
KAVON TYPE STRING,
KABIS TYPE STRING,
KONKUN TYPE STRING,
KONEVU TYPE STRING,
KABETRG TYPE STRING,
GPTEXT TYPE STRING,
MARK TYPE STRING,
VORLAGE TYPE STRING,
RAHMEN1 TYPE STRING,
RAHMEN2 TYPE STRING,
RAHMEN3 TYPE STRING,
RAHMEN4 TYPE STRING,
RAHMEN5 TYPE STRING,
WVLKONZV TYPE STRING,
KAVERF_BRUTTO_EA16 TYPE STRING,
KAVERF_MAXBRUTTO_EA16 TYPE STRING,
KAVERF_NETTO_EA16 TYPE STRING,
KAVERF_BRUTTO TYPE STRING,
KAVERF_NETTO TYPE STRING,
KAVERF_MAXBRUTTO TYPE STRING,
VERLEINH_TAG TYPE STRING,
VERLEINH_MONAT TYPE STRING,
VERLEINH_JAHR TYPE STRING,
KUEINH_TAG TYPE STRING,
KUEINH_MONAT TYPE STRING,
KUEINH_JAHR TYPE STRING,
TSGRENZMENGE TYPE STRING,
TSGRENZLEISTUNG TYPE STRING,
TSLANZAHL TYPE STRING,
QVIEW TYPE STRING,END OF T_EKKO_STR. DATA: WA_EKOND_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_EKOND_STR-MANDT sy-vline
WA_EKOND_STR-KONZVER sy-vline
WA_EKOND_STR-BUKRS sy-vline
WA_EKOND_STR-SPARTE sy-vline
WA_EKOND_STR-KUNDE sy-vline
WA_EKOND_STR-KAVERF sy-vline
WA_EKOND_STR-KAVERF_EA16 sy-vline
WA_EKOND_STR-BEARKZ sy-vline
WA_EKOND_STR-VERTART sy-vline
WA_EKOND_STR-VERLZEIT sy-vline
WA_EKOND_STR-VERWGEM sy-vline
WA_EKOND_STR-ERDAT sy-vline
WA_EKOND_STR-ERNAM sy-vline
WA_EKOND_STR-AEDAT sy-vline
WA_EKOND_STR-AENAM sy-vline
WA_EKOND_STR-BEGRU sy-vline
WA_EKOND_STR-LOEVM sy-vline
WA_EKOND_STR-VBEGINN sy-vline
WA_EKOND_STR-VENDE sy-vline
WA_EKOND_STR-VERLDAT sy-vline
WA_EKOND_STR-KUENDAT sy-vline
WA_EKOND_STR-ANZVERL sy-vline
WA_EKOND_STR-VERLEINH sy-vline
WA_EKOND_STR-ANZKUEN sy-vline
WA_EKOND_STR-KUENEINH sy-vline
WA_EKOND_STR-V_KONZVER sy-vline
WA_EKOND_STR-NUM_RANGE sy-vline
WA_EKOND_STR-TWAERS sy-vline
WA_EKOND_STR-AB sy-vline
WA_EKOND_STR-KONZIGR sy-vline
WA_EKOND_STR-AKLASSE sy-vline
WA_EKOND_STR-ZONENNR sy-vline
WA_EKOND_STR-KAVON sy-vline
WA_EKOND_STR-KABIS sy-vline
WA_EKOND_STR-KONKUN sy-vline
WA_EKOND_STR-KONEVU sy-vline
WA_EKOND_STR-KABETRG sy-vline
WA_EKOND_STR-GPTEXT sy-vline
WA_EKOND_STR-MARK sy-vline
WA_EKOND_STR-VORLAGE sy-vline
WA_EKOND_STR-RAHMEN1 sy-vline
WA_EKOND_STR-RAHMEN2 sy-vline
WA_EKOND_STR-RAHMEN3 sy-vline
WA_EKOND_STR-RAHMEN4 sy-vline
WA_EKOND_STR-RAHMEN5 sy-vline
WA_EKOND_STR-WVLKONZV sy-vline
WA_EKOND_STR-KAVERF_BRUTTO_EA16 sy-vline
WA_EKOND_STR-KAVERF_MAXBRUTTO_EA16 sy-vline
WA_EKOND_STR-KAVERF_NETTO_EA16 sy-vline
WA_EKOND_STR-KAVERF_BRUTTO sy-vline
WA_EKOND_STR-KAVERF_NETTO sy-vline
WA_EKOND_STR-KAVERF_MAXBRUTTO sy-vline
WA_EKOND_STR-VERLEINH_TAG sy-vline
WA_EKOND_STR-VERLEINH_MONAT sy-vline
WA_EKOND_STR-VERLEINH_JAHR sy-vline
WA_EKOND_STR-KUEINH_TAG sy-vline
WA_EKOND_STR-KUEINH_MONAT sy-vline
WA_EKOND_STR-KUEINH_JAHR sy-vline
WA_EKOND_STR-TSGRENZMENGE sy-vline
WA_EKOND_STR-TSGRENZLEISTUNG sy-vline
WA_EKOND_STR-TSLANZAHL sy-vline
WA_EKOND_STR-QVIEW sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.