ABAP Select data from SAP table KKS04 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 KKS04 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 KKS04. 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 KKS04 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_KKS04 TYPE STANDARD TABLE OF KKS04,
      WA_KKS04 TYPE KKS04,
      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: <KKS04> TYPE KKS04.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM KKS04
*  INTO TABLE @DATA(IT_KKS042).
*--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_KKS04 INDEX 1 INTO DATA(WA_KKS042).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_KKS04 ASSIGNING <KKS04>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<KKS04>-TEST1 = 1.
<KKS04>-TEST2 = 1.
<KKS04>-TEST3 = 1.
<KKS04>-TEST4 = 1.
<KKS04>-TEST5 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_KKS04-TEST6, sy-vline,
WA_KKS04-TEST7, sy-vline,
WA_KKS04-TEST8, sy-vline,
WA_KKS04-TEST9, sy-vline,
WA_KKS04-TEST10, sy-vline,
WA_KKS04-TEST11, sy-vline.
ENDLOOP. *Add any further fields from structure WA_KKS04 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_KKS04 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_KKS04 INTO WA_KKS04. *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.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_KKS04_STR,
TEST1 TYPE STRING,
TEST2 TYPE STRING,
TEST3 TYPE STRING,
TEST4 TYPE STRING,
TEST5 TYPE STRING,
TEST6 TYPE STRING,
TEST7 TYPE STRING,
TEST8 TYPE STRING,
TEST9 TYPE STRING,
TEST10 TYPE STRING,
TEST11 TYPE STRING,
TEST12 TYPE STRING,
TEST13 TYPE STRING,
TEST14 TYPE STRING,
TEST15 TYPE STRING,
TEST16 TYPE STRING,
TEST17 TYPE STRING,
TEST18 TYPE STRING,
TEST19 TYPE STRING,
TEST20 TYPE STRING,
TURBO TYPE STRING,
SYSKZ TYPE STRING,
ADDPA TYPE STRING,
ADELE TYPE STRING,
VDELE TYPE STRING,
NDELE TYPE STRING,
SDELE TYPE STRING,
SRVKZ TYPE STRING,END OF T_EKKO_STR. DATA: WA_KKS04_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_KKS04_STR-TEST1 sy-vline
WA_KKS04_STR-TEST2 sy-vline
WA_KKS04_STR-TEST3 sy-vline
WA_KKS04_STR-TEST4 sy-vline
WA_KKS04_STR-TEST5 sy-vline
WA_KKS04_STR-TEST6 sy-vline
WA_KKS04_STR-TEST7 sy-vline
WA_KKS04_STR-TEST8 sy-vline
WA_KKS04_STR-TEST9 sy-vline
WA_KKS04_STR-TEST10 sy-vline
WA_KKS04_STR-TEST11 sy-vline
WA_KKS04_STR-TEST12 sy-vline
WA_KKS04_STR-TEST13 sy-vline
WA_KKS04_STR-TEST14 sy-vline
WA_KKS04_STR-TEST15 sy-vline
WA_KKS04_STR-TEST16 sy-vline
WA_KKS04_STR-TEST17 sy-vline
WA_KKS04_STR-TEST18 sy-vline
WA_KKS04_STR-TEST19 sy-vline
WA_KKS04_STR-TEST20 sy-vline
WA_KKS04_STR-TURBO sy-vline
WA_KKS04_STR-SYSKZ sy-vline
WA_KKS04_STR-ADDPA sy-vline
WA_KKS04_STR-ADELE sy-vline
WA_KKS04_STR-VDELE sy-vline
WA_KKS04_STR-NDELE sy-vline
WA_KKS04_STR-SDELE sy-vline
WA_KKS04_STR-SRVKZ sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.