ABAP Select data from SAP table KKPP 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 KKPP 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 KKPP. 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 KKPP 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_KKPP TYPE STANDARD TABLE OF KKPP,
      WA_KKPP TYPE KKPP,
      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: <KKPP> TYPE KKPP.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM KKPP
*  INTO TABLE @DATA(IT_KKPP2).
*--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_KKPP INDEX 1 INTO DATA(WA_KKPP2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_KKPP ASSIGNING <KKPP>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<KKPP>-QS_18 = 1.
<KKPP>-SQS_18 = 1.
<KKPP>-F_1_18_S = 1.
<KKPP>-V_1_18_S = 1.
<KKPP>-F_1_18 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_KKPP-V_1_18, sy-vline,
WA_KKPP-H_WERTV8, sy-vline,
WA_KKPP-WERTFAKTOR, sy-vline,
WA_KKPP-SELKZ, sy-vline,
WA_KKPP-LOSGR, sy-vline,
WA_KKPP-MATNR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_KKPP 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_KKPP 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_KKPP INTO WA_KKPP. *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 MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_KKPP-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KKPP-MATNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

*Conversion exit MATN1, internal->external for field REF_MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_KKPP-REF_MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KKPP-REF_MATNR.
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_KKPP_STR,
QS_18 TYPE STRING,
SQS_18 TYPE STRING,
F_1_18_S TYPE STRING,
V_1_18_S TYPE STRING,
F_1_18 TYPE STRING,
V_1_18 TYPE STRING,
H_WERTV8 TYPE STRING,
WERTFAKTOR TYPE STRING,
SELKZ TYPE STRING,
LOSGR TYPE STRING,
MATNR TYPE STRING,
MEINS TYPE STRING,
WERKS TYPE STRING,
PEINH TYPE STRING,
EINTRAG TYPE STRING,
KALKA TYPE STRING,
KADAT TYPE STRING,
KLVAR TYPE STRING,
BWKEY TYPE STRING,
TVERS TYPE STRING,
AUFGEL TYPE STRING,
BWVAR TYPE STRING,
MAKTX TYPE STRING,
BIDAM TYPE STRING,
WERKSNAME TYPE STRING,
TXKLV TYPE STRING,
DISST TYPE STRING,
FEHLKZ TYPE STRING,
STLAN TYPE STRING,
STNUM TYPE STRING,
STALT TYPE STRING,
PLNTY TYPE STRING,
PLNNR TYPE STRING,
PLNAL TYPE STRING,
KADAM TYPE STRING,
BIDAT TYPE STRING,
BWDAT TYPE STRING,
BEDAT TYPE STRING,
ALDAT TYPE STRING,
EINTRAG3 TYPE STRING,
GESAMT3 TYPE STRING,
POPER TYPE STRING,
BDATJ TYPE STRING,
ERFNM TYPE STRING,
FEH_STA TYPE STRING,
FEH_ANZ TYPE STRING,
FREIG TYPE STRING,
KKZMA TYPE STRING,
KALAID TYPE STRING,
KALADAT TYPE STRING,
PARAVB1 TYPE STRING,
PARAVB2 TYPE STRING,
PARAVB3 TYPE STRING,
PARAVB4 TYPE STRING,
HKGES TYPE STRING,
HKFIX TYPE STRING,
HKVAR TYPE STRING,
VVGES TYPE STRING,
VVFIX TYPE STRING,
VVVAR TYPE STRING,
SKGES TYPE STRING,
SKFIX TYPE STRING,
SKVAR TYPE STRING,
SICHT TYPE STRING,
TXSIC TYPE STRING,
KALABEZ TYPE STRING,
MANKZ TYPE STRING,
ERF_VORLAGE TYPE STRING,
REF_LEDNR TYPE STRING,
REF_BZOBJ TYPE STRING,
REF_KALNR TYPE STRING,
REF_KALKA TYPE STRING,
REF_KADKY TYPE STRING,
REF_KLVAR TYPE STRING,
REF_MATNR TYPE STRING,
REF_WERKS TYPE STRING,
REF_TVERS TYPE STRING,
REF_KADAT TYPE STRING,
REF_BIDAT TYPE STRING,
REF_BWVAR TYPE STRING,
REF_KKZMA TYPE STRING,
REF_KOKRS TYPE STRING,
REF_WERKNM TYPE STRING,
REF_TXKLV TYPE STRING,
REF_BWKEY TYPE STRING,
REF_PERIV TYPE STRING,
REF_AMDAT TYPE STRING,END OF T_EKKO_STR. DATA: WA_KKPP_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_KKPP_STR-QS_18 sy-vline
WA_KKPP_STR-SQS_18 sy-vline
WA_KKPP_STR-F_1_18_S sy-vline
WA_KKPP_STR-V_1_18_S sy-vline
WA_KKPP_STR-F_1_18 sy-vline
WA_KKPP_STR-V_1_18 sy-vline
WA_KKPP_STR-H_WERTV8 sy-vline
WA_KKPP_STR-WERTFAKTOR sy-vline
WA_KKPP_STR-SELKZ sy-vline
WA_KKPP_STR-LOSGR sy-vline
WA_KKPP_STR-MATNR sy-vline
WA_KKPP_STR-MEINS sy-vline
WA_KKPP_STR-WERKS sy-vline
WA_KKPP_STR-PEINH sy-vline
WA_KKPP_STR-EINTRAG sy-vline
WA_KKPP_STR-KALKA sy-vline
WA_KKPP_STR-KADAT sy-vline
WA_KKPP_STR-KLVAR sy-vline
WA_KKPP_STR-BWKEY sy-vline
WA_KKPP_STR-TVERS sy-vline
WA_KKPP_STR-AUFGEL sy-vline
WA_KKPP_STR-BWVAR sy-vline
WA_KKPP_STR-MAKTX sy-vline
WA_KKPP_STR-BIDAM sy-vline
WA_KKPP_STR-WERKSNAME sy-vline
WA_KKPP_STR-TXKLV sy-vline
WA_KKPP_STR-DISST sy-vline
WA_KKPP_STR-FEHLKZ sy-vline
WA_KKPP_STR-STLAN sy-vline
WA_KKPP_STR-STNUM sy-vline
WA_KKPP_STR-STALT sy-vline
WA_KKPP_STR-PLNTY sy-vline
WA_KKPP_STR-PLNNR sy-vline
WA_KKPP_STR-PLNAL sy-vline
WA_KKPP_STR-KADAM sy-vline
WA_KKPP_STR-BIDAT sy-vline
WA_KKPP_STR-BWDAT sy-vline
WA_KKPP_STR-BEDAT sy-vline
WA_KKPP_STR-ALDAT sy-vline
WA_KKPP_STR-EINTRAG3 sy-vline
WA_KKPP_STR-GESAMT3 sy-vline
WA_KKPP_STR-POPER sy-vline
WA_KKPP_STR-BDATJ sy-vline
WA_KKPP_STR-ERFNM sy-vline
WA_KKPP_STR-FEH_STA sy-vline
WA_KKPP_STR-FEH_ANZ sy-vline
WA_KKPP_STR-FREIG sy-vline
WA_KKPP_STR-KKZMA sy-vline
WA_KKPP_STR-KALAID sy-vline
WA_KKPP_STR-KALADAT sy-vline
WA_KKPP_STR-PARAVB1 sy-vline
WA_KKPP_STR-PARAVB2 sy-vline
WA_KKPP_STR-PARAVB3 sy-vline
WA_KKPP_STR-PARAVB4 sy-vline
WA_KKPP_STR-HKGES sy-vline
WA_KKPP_STR-HKFIX sy-vline
WA_KKPP_STR-HKVAR sy-vline
WA_KKPP_STR-VVGES sy-vline
WA_KKPP_STR-VVFIX sy-vline
WA_KKPP_STR-VVVAR sy-vline
WA_KKPP_STR-SKGES sy-vline
WA_KKPP_STR-SKFIX sy-vline
WA_KKPP_STR-SKVAR sy-vline
WA_KKPP_STR-SICHT sy-vline
WA_KKPP_STR-TXSIC sy-vline
WA_KKPP_STR-KALABEZ sy-vline
WA_KKPP_STR-MANKZ sy-vline
WA_KKPP_STR-ERF_VORLAGE sy-vline
WA_KKPP_STR-REF_LEDNR sy-vline
WA_KKPP_STR-REF_BZOBJ sy-vline
WA_KKPP_STR-REF_KALNR sy-vline
WA_KKPP_STR-REF_KALKA sy-vline
WA_KKPP_STR-REF_KADKY sy-vline
WA_KKPP_STR-REF_KLVAR sy-vline
WA_KKPP_STR-REF_MATNR sy-vline
WA_KKPP_STR-REF_WERKS sy-vline
WA_KKPP_STR-REF_TVERS sy-vline
WA_KKPP_STR-REF_KADAT sy-vline
WA_KKPP_STR-REF_BIDAT sy-vline
WA_KKPP_STR-REF_BWVAR sy-vline
WA_KKPP_STR-REF_KKZMA sy-vline
WA_KKPP_STR-REF_KOKRS sy-vline
WA_KKPP_STR-REF_WERKNM sy-vline
WA_KKPP_STR-REF_TXKLV sy-vline
WA_KKPP_STR-REF_BWKEY sy-vline
WA_KKPP_STR-REF_PERIV sy-vline
WA_KKPP_STR-REF_AMDAT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.