ABAP Select data from SAP table KKP_CH 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 KKP_CH 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 KKP_CH. 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 KKP_CH 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_KKP_CH TYPE STANDARD TABLE OF KKP_CH,
      WA_KKP_CH TYPE KKP_CH,
      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: <KKP_CH> TYPE KKP_CH.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM KKP_CH
*  INTO TABLE @DATA(IT_KKP_CH2).
*--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_KKP_CH INDEX 1 INTO DATA(WA_KKP_CH2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_KKP_CH ASSIGNING <KKP_CH>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<KKP_CH>-MANDT = 1.
<KKP_CH>-KSTRG = 1.
<KKP_CH>-DATBI = 1.
<KKP_CH>-DATAB = 1.
<KKP_CH>-KOKRS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_KKP_CH-BUKRS, sy-vline,
WA_KKP_CH-WERKS, sy-vline,
WA_KKP_CH-GSBER, sy-vline,
WA_KKP_CH-FUNC_AREA, sy-vline,
WA_KKP_CH-PRCTR, sy-vline,
WA_KKP_CH-OBJNR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_KKP_CH 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_KKP_CH 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_KKP_CH INTO WA_KKP_CH. *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 PRCTR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_KKP_CH-PRCTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KKP_CH-PRCTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field GJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_KKP_CH-GJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KKP_CH-GJAHR.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit ISOLA, internal->external for field SPRAS CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_KKP_CH-SPRAS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KKP_CH-SPRAS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field FILTW CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_KKP_CH-FILTW IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KKP_CH-FILTW.
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_KKP_CH_STR,
MANDT TYPE STRING,
KSTRG TYPE STRING,
DATBI TYPE STRING,
DATAB TYPE STRING,
KOKRS TYPE STRING,
BUKRS TYPE STRING,
WERKS TYPE STRING,
GSBER TYPE STRING,
FUNC_AREA TYPE STRING,
PRCTR TYPE STRING,
OBJNR TYPE STRING,
UEKTR TYPE STRING,
UEDATB TYPE STRING,
KTRTY TYPE STRING,
VAKTR TYPE STRING,
KTEXT TYPE STRING,
LTEXT TYPE STRING,
ERNAM TYPE STRING,
ERDAT TYPE STRING,
AENAM TYPE STRING,
AEDAT TYPE STRING,
KSTAT TYPE STRING,
STDAT TYPE STRING,
LOEKZ TYPE STRING,
LOEKENNZ TYPE STRING,
OBJWR TYPE STRING,
KVEWE TYPE STRING,
KAPPL TYPE STRING,
KALSM TYPE STRING,
ZSCHL TYPE STRING,
AWOBA TYPE STRING,
AWSLS TYPE STRING,
FCPMG TYPE STRING,
REFKT TYPE STRING,
REFDATB TYPE STRING,
GJAHR TYPE STRING,
VERSN TYPE STRING,
PERIO TYPE STRING,
AWVRS TYPE STRING,
AWVRS2 TYPE STRING,
VSSEL TYPE STRING,
VSALL TYPE STRING,
KSTRG2 TYPE STRING,
DATBI2 TYPE STRING,
SPRAS TYPE STRING,
VONDAT TYPE STRING,
BISDAT TYPE STRING,
SAPRL TYPE STRING,
EZBEA TYPE STRING,
HIBEA TYPE STRING,
JNAME TYPE STRING,
JOGRP TYPE STRING,
DRUCK TYPE STRING,
KTRAT TYPE STRING,
KATXT TYPE STRING,
KALNR TYPE STRING,
KLVAR TYPE STRING,
BOOK TYPE STRING,
LIST TYPE STRING,
BATCH TYPE STRING,
LISTSING TYPE STRING,
WSDAT TYPE STRING,
TESTL TYPE STRING,
AWVAL TYPE STRING,
AWVSE TYPE STRING,
SRTF1 TYPE STRING,
SRTF2 TYPE STRING,
SRTF3 TYPE STRING,
VARNR TYPE STRING,
XDESC TYPE STRING,
FILTN TYPE STRING,
FILTW TYPE STRING,
MESPRI TYPE STRING,
SAVE_DETAIL TYPE STRING,
PRINT_DETAIL TYPE STRING,
CURRTYP TYPE STRING,
VARIANT_NAME TYPE STRING,
VARIANT_TEXT TYPE STRING,
REPORT TYPE STRING,
HANDLE TYPE STRING,
LOG_GROUP TYPE STRING,
USERNAME TYPE STRING,
EXNAME TYPE STRING,
KTRZB TYPE STRING,
AVFLG TYPE STRING,
PROGR TYPE STRING,
UEPGR TYPE STRING,
SCRTEXT_M1 TYPE STRING,
SCRTEXT_M2 TYPE STRING,
INCL_KSTRG TYPE STRING,
RFCGR TYPE STRING,
TASKS TYPE STRING,END OF T_EKKO_STR. DATA: WA_KKP_CH_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_KKP_CH_STR-MANDT sy-vline
WA_KKP_CH_STR-KSTRG sy-vline
WA_KKP_CH_STR-DATBI sy-vline
WA_KKP_CH_STR-DATAB sy-vline
WA_KKP_CH_STR-KOKRS sy-vline
WA_KKP_CH_STR-BUKRS sy-vline
WA_KKP_CH_STR-WERKS sy-vline
WA_KKP_CH_STR-GSBER sy-vline
WA_KKP_CH_STR-FUNC_AREA sy-vline
WA_KKP_CH_STR-PRCTR sy-vline
WA_KKP_CH_STR-OBJNR sy-vline
WA_KKP_CH_STR-UEKTR sy-vline
WA_KKP_CH_STR-UEDATB sy-vline
WA_KKP_CH_STR-KTRTY sy-vline
WA_KKP_CH_STR-VAKTR sy-vline
WA_KKP_CH_STR-KTEXT sy-vline
WA_KKP_CH_STR-LTEXT sy-vline
WA_KKP_CH_STR-ERNAM sy-vline
WA_KKP_CH_STR-ERDAT sy-vline
WA_KKP_CH_STR-AENAM sy-vline
WA_KKP_CH_STR-AEDAT sy-vline
WA_KKP_CH_STR-KSTAT sy-vline
WA_KKP_CH_STR-STDAT sy-vline
WA_KKP_CH_STR-LOEKZ sy-vline
WA_KKP_CH_STR-LOEKENNZ sy-vline
WA_KKP_CH_STR-OBJWR sy-vline
WA_KKP_CH_STR-KVEWE sy-vline
WA_KKP_CH_STR-KAPPL sy-vline
WA_KKP_CH_STR-KALSM sy-vline
WA_KKP_CH_STR-ZSCHL sy-vline
WA_KKP_CH_STR-AWOBA sy-vline
WA_KKP_CH_STR-AWSLS sy-vline
WA_KKP_CH_STR-FCPMG sy-vline
WA_KKP_CH_STR-REFKT sy-vline
WA_KKP_CH_STR-REFDATB sy-vline
WA_KKP_CH_STR-GJAHR sy-vline
WA_KKP_CH_STR-VERSN sy-vline
WA_KKP_CH_STR-PERIO sy-vline
WA_KKP_CH_STR-AWVRS sy-vline
WA_KKP_CH_STR-AWVRS2 sy-vline
WA_KKP_CH_STR-VSSEL sy-vline
WA_KKP_CH_STR-VSALL sy-vline
WA_KKP_CH_STR-KSTRG2 sy-vline
WA_KKP_CH_STR-DATBI2 sy-vline
WA_KKP_CH_STR-SPRAS sy-vline
WA_KKP_CH_STR-VONDAT sy-vline
WA_KKP_CH_STR-BISDAT sy-vline
WA_KKP_CH_STR-SAPRL sy-vline
WA_KKP_CH_STR-EZBEA sy-vline
WA_KKP_CH_STR-HIBEA sy-vline
WA_KKP_CH_STR-JNAME sy-vline
WA_KKP_CH_STR-JOGRP sy-vline
WA_KKP_CH_STR-DRUCK sy-vline
WA_KKP_CH_STR-KTRAT sy-vline
WA_KKP_CH_STR-KATXT sy-vline
WA_KKP_CH_STR-KALNR sy-vline
WA_KKP_CH_STR-KLVAR sy-vline
WA_KKP_CH_STR-BOOK sy-vline
WA_KKP_CH_STR-LIST sy-vline
WA_KKP_CH_STR-BATCH sy-vline
WA_KKP_CH_STR-LISTSING sy-vline
WA_KKP_CH_STR-WSDAT sy-vline
WA_KKP_CH_STR-TESTL sy-vline
WA_KKP_CH_STR-AWVAL sy-vline
WA_KKP_CH_STR-AWVSE sy-vline
WA_KKP_CH_STR-SRTF1 sy-vline
WA_KKP_CH_STR-SRTF2 sy-vline
WA_KKP_CH_STR-SRTF3 sy-vline
WA_KKP_CH_STR-VARNR sy-vline
WA_KKP_CH_STR-XDESC sy-vline
WA_KKP_CH_STR-FILTN sy-vline
WA_KKP_CH_STR-FILTW sy-vline
WA_KKP_CH_STR-MESPRI sy-vline
WA_KKP_CH_STR-SAVE_DETAIL sy-vline
WA_KKP_CH_STR-PRINT_DETAIL sy-vline
WA_KKP_CH_STR-CURRTYP sy-vline
WA_KKP_CH_STR-VARIANT_NAME sy-vline
WA_KKP_CH_STR-VARIANT_TEXT sy-vline
WA_KKP_CH_STR-REPORT sy-vline
WA_KKP_CH_STR-HANDLE sy-vline
WA_KKP_CH_STR-LOG_GROUP sy-vline
WA_KKP_CH_STR-USERNAME sy-vline
WA_KKP_CH_STR-EXNAME sy-vline
WA_KKP_CH_STR-KTRZB sy-vline
WA_KKP_CH_STR-AVFLG sy-vline
WA_KKP_CH_STR-PROGR sy-vline
WA_KKP_CH_STR-UEPGR sy-vline
WA_KKP_CH_STR-SCRTEXT_M1 sy-vline
WA_KKP_CH_STR-SCRTEXT_M2 sy-vline
WA_KKP_CH_STR-INCL_KSTRG sy-vline
WA_KKP_CH_STR-RFCGR sy-vline
WA_KKP_CH_STR-TASKS sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.