ABAP Select data from SAP table KKB_KENNZ 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 KKB_KENNZ 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 KKB_KENNZ. 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 KKB_KENNZ 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_KKB_KENNZ TYPE STANDARD TABLE OF KKB_KENNZ,
      WA_KKB_KENNZ TYPE KKB_KENNZ,
      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: <KKB_KENNZ> TYPE KKB_KENNZ.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM KKB_KENNZ
*  INTO TABLE @DATA(IT_KKB_KENNZ2).
*--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_KKB_KENNZ INDEX 1 INTO DATA(WA_KKB_KENNZ2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_KKB_KENNZ ASSIGNING <KKB_KENNZ>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<KKB_KENNZ>-OBJNR = 1.
<KKB_KENNZ>-WAERS = 1.
<KKB_KENNZ>-MEINH = 1.
<KKB_KENNZ>-PVERS = 1.
<KKB_KENNZ>-PLANKOST_G = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_KKB_KENNZ-PLANKOST_F, sy-vline,
WA_KKB_KENNZ-PLANKOST_V, sy-vline,
WA_KKB_KENNZ-PLANBEL_G, sy-vline,
WA_KKB_KENNZ-PLANBEL_F, sy-vline,
WA_KKB_KENNZ-PLANBEL_V, sy-vline,
WA_KKB_KENNZ-PLANENTL_G, sy-vline.
ENDLOOP. *Add any further fields from structure WA_KKB_KENNZ 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_KKB_KENNZ 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_KKB_KENNZ INTO WA_KKB_KENNZ. *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 CUNIT, internal->external for field MEINH CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_KKB_KENNZ-MEINH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KKB_KENNZ-MEINH.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit ALPHA, internal->external for field AVERS CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_KKB_KENNZ-AVERS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KKB_KENNZ-AVERS.
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_KKB_KENNZ_STR,
OBJNR TYPE STRING,
WAERS TYPE STRING,
MEINH TYPE STRING,
PVERS TYPE STRING,
PLANKOST_G TYPE STRING,
PLANKOST_F TYPE STRING,
PLANKOST_V TYPE STRING,
PLANBEL_G TYPE STRING,
PLANBEL_F TYPE STRING,
PLANBEL_V TYPE STRING,
PLANENTL_G TYPE STRING,
PLANENTL_F TYPE STRING,
PLANENTL_V TYPE STRING,
PLANMENGE TYPE STRING,
PLANERLOES TYPE STRING,
PLANERLSCHM TYPE STRING,
PLANERL_G TYPE STRING,
PLANGEWINN_AB TYPE STRING,
PLANGEWINN_PR TYPE STRING,
IVERS TYPE STRING,
ISTKOST_G TYPE STRING,
ISTKOST_F TYPE STRING,
ISTKOST_V TYPE STRING,
ISTBEL_G TYPE STRING,
ISTBEL_F TYPE STRING,
ISTBEL_V TYPE STRING,
ISTENTL_G TYPE STRING,
ISTENTL_F TYPE STRING,
ISTENTL_V TYPE STRING,
ISTMENGE TYPE STRING,
ISTERLOES TYPE STRING,
ISTERLSCHM TYPE STRING,
ISTERL_G TYPE STRING,
ISTGEWINN_AB TYPE STRING,
ISTGEWINN_PR TYPE STRING,
SVERS TYPE STRING,
SOLLKOST_G TYPE STRING,
SOLLBEL_G TYPE STRING,
SOLLENTL_G TYPE STRING,
KONTKOST_G TYPE STRING,
KONTBEL_G TYPE STRING,
KONTENTL_G TYPE STRING,
ABWGES TYPE STRING,
ABWPREIS TYPE STRING,
ABWSTRUKT TYPE STRING,
ABWMENG TYPE STRING,
ABWEINS TYPE STRING,
AUSSCH TYPE STRING,
ABWMISCHP TYPE STRING,
ABWVERRP TYPE STRING,
ABWVERM TYPE STRING,
ABWFIXKO TYPE STRING,
ABWREST TYPE STRING,
AVERS TYPE STRING,
ABGRWIP TYPE STRING,
ABGRUEKFK TYPE STRING,
ABGRUEKDV TYPE STRING,
ABGERGERL TYPE STRING,
ABGERLBES TYPE STRING,
ABGERLUEB TYPE STRING,
ABGKOUMS TYPE STRING,
ABGBESGES TYPE STRING,
ABGRUKGES TYPE STRING,
ABGERGEB TYPE STRING,
PLIS_KOST_A TYPE STRING,
SOIS_KOST_A TYPE STRING,
SOKO_KOST_A TYPE STRING,
PLIS_KOST_P TYPE STRING,
SOIS_KOST_P TYPE STRING,
SOKO_KOST_P TYPE STRING,
PLIS_MEABS TYPE STRING,
PLIS_MEPRC TYPE STRING,END OF T_EKKO_STR. DATA: WA_KKB_KENNZ_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_KKB_KENNZ_STR-OBJNR sy-vline
WA_KKB_KENNZ_STR-WAERS sy-vline
WA_KKB_KENNZ_STR-MEINH sy-vline
WA_KKB_KENNZ_STR-PVERS sy-vline
WA_KKB_KENNZ_STR-PLANKOST_G sy-vline
WA_KKB_KENNZ_STR-PLANKOST_F sy-vline
WA_KKB_KENNZ_STR-PLANKOST_V sy-vline
WA_KKB_KENNZ_STR-PLANBEL_G sy-vline
WA_KKB_KENNZ_STR-PLANBEL_F sy-vline
WA_KKB_KENNZ_STR-PLANBEL_V sy-vline
WA_KKB_KENNZ_STR-PLANENTL_G sy-vline
WA_KKB_KENNZ_STR-PLANENTL_F sy-vline
WA_KKB_KENNZ_STR-PLANENTL_V sy-vline
WA_KKB_KENNZ_STR-PLANMENGE sy-vline
WA_KKB_KENNZ_STR-PLANERLOES sy-vline
WA_KKB_KENNZ_STR-PLANERLSCHM sy-vline
WA_KKB_KENNZ_STR-PLANERL_G sy-vline
WA_KKB_KENNZ_STR-PLANGEWINN_AB sy-vline
WA_KKB_KENNZ_STR-PLANGEWINN_PR sy-vline
WA_KKB_KENNZ_STR-IVERS sy-vline
WA_KKB_KENNZ_STR-ISTKOST_G sy-vline
WA_KKB_KENNZ_STR-ISTKOST_F sy-vline
WA_KKB_KENNZ_STR-ISTKOST_V sy-vline
WA_KKB_KENNZ_STR-ISTBEL_G sy-vline
WA_KKB_KENNZ_STR-ISTBEL_F sy-vline
WA_KKB_KENNZ_STR-ISTBEL_V sy-vline
WA_KKB_KENNZ_STR-ISTENTL_G sy-vline
WA_KKB_KENNZ_STR-ISTENTL_F sy-vline
WA_KKB_KENNZ_STR-ISTENTL_V sy-vline
WA_KKB_KENNZ_STR-ISTMENGE sy-vline
WA_KKB_KENNZ_STR-ISTERLOES sy-vline
WA_KKB_KENNZ_STR-ISTERLSCHM sy-vline
WA_KKB_KENNZ_STR-ISTERL_G sy-vline
WA_KKB_KENNZ_STR-ISTGEWINN_AB sy-vline
WA_KKB_KENNZ_STR-ISTGEWINN_PR sy-vline
WA_KKB_KENNZ_STR-SVERS sy-vline
WA_KKB_KENNZ_STR-SOLLKOST_G sy-vline
WA_KKB_KENNZ_STR-SOLLBEL_G sy-vline
WA_KKB_KENNZ_STR-SOLLENTL_G sy-vline
WA_KKB_KENNZ_STR-KONTKOST_G sy-vline
WA_KKB_KENNZ_STR-KONTBEL_G sy-vline
WA_KKB_KENNZ_STR-KONTENTL_G sy-vline
WA_KKB_KENNZ_STR-ABWGES sy-vline
WA_KKB_KENNZ_STR-ABWPREIS sy-vline
WA_KKB_KENNZ_STR-ABWSTRUKT sy-vline
WA_KKB_KENNZ_STR-ABWMENG sy-vline
WA_KKB_KENNZ_STR-ABWEINS sy-vline
WA_KKB_KENNZ_STR-AUSSCH sy-vline
WA_KKB_KENNZ_STR-ABWMISCHP sy-vline
WA_KKB_KENNZ_STR-ABWVERRP sy-vline
WA_KKB_KENNZ_STR-ABWVERM sy-vline
WA_KKB_KENNZ_STR-ABWFIXKO sy-vline
WA_KKB_KENNZ_STR-ABWREST sy-vline
WA_KKB_KENNZ_STR-AVERS sy-vline
WA_KKB_KENNZ_STR-ABGRWIP sy-vline
WA_KKB_KENNZ_STR-ABGRUEKFK sy-vline
WA_KKB_KENNZ_STR-ABGRUEKDV sy-vline
WA_KKB_KENNZ_STR-ABGERGERL sy-vline
WA_KKB_KENNZ_STR-ABGERLBES sy-vline
WA_KKB_KENNZ_STR-ABGERLUEB sy-vline
WA_KKB_KENNZ_STR-ABGKOUMS sy-vline
WA_KKB_KENNZ_STR-ABGBESGES sy-vline
WA_KKB_KENNZ_STR-ABGRUKGES sy-vline
WA_KKB_KENNZ_STR-ABGERGEB sy-vline
WA_KKB_KENNZ_STR-PLIS_KOST_A sy-vline
WA_KKB_KENNZ_STR-SOIS_KOST_A sy-vline
WA_KKB_KENNZ_STR-SOKO_KOST_A sy-vline
WA_KKB_KENNZ_STR-PLIS_KOST_P sy-vline
WA_KKB_KENNZ_STR-SOIS_KOST_P sy-vline
WA_KKB_KENNZ_STR-SOKO_KOST_P sy-vline
WA_KKB_KENNZ_STR-PLIS_MEABS sy-vline
WA_KKB_KENNZ_STR-PLIS_MEPRC sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.