ABAP Select data from SAP table KKS02 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 KKS02 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 KKS02. 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 KKS02 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_KKS02 TYPE STANDARD TABLE OF KKS02,
      WA_KKS02 TYPE KKS02,
      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: <KKS02> TYPE KKS02.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM KKS02
*  INTO TABLE @DATA(IT_KKS022).
*--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_KKS02 INDEX 1 INTO DATA(WA_KKS022).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_KKS02 ASSIGNING <KKS02>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<KKS02>-KOKRS = 1.
<KKS02>-BEZEI = 1.
<KKS02>-WERKS = 1.
<KKS02>-WRKTX = 1.
<KKS02>-INCLF = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_KKS02-INCLP, sy-vline,
WA_KKS02-INCLI, sy-vline,
WA_KKS02-MATNR, sy-vline,
WA_KKS02-MATTX, sy-vline,
WA_KKS02-MATNB, sy-vline,
WA_KKS02-VERID, sy-vline.
ENDLOOP. *Add any further fields from structure WA_KKS02 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_KKS02 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_KKS02 INTO WA_KKS02. *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_KKS02-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KKS02-MATNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field MATNB CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_KKS02-MATNB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KKS02-MATNB.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

*Conversion exit ABPSP, internal->external for field PROJN CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_KKS02-PROJN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KKS02-PROJN.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ABPSP, internal->external for field PROJB CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_KKS02-PROJB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KKS02-PROJB.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit ALPHA, internal->external for field WLID CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_KKS02-WLID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_KKS02-WLID.
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_KKS02_STR,
KOKRS TYPE STRING,
BEZEI TYPE STRING,
WERKS TYPE STRING,
WRKTX TYPE STRING,
INCLF TYPE STRING,
INCLP TYPE STRING,
INCLI TYPE STRING,
MATNR TYPE STRING,
MATTX TYPE STRING,
MATNB TYPE STRING,
VERID TYPE STRING,
VERTX TYPE STRING,
AUFNR TYPE STRING,
KTEXT TYPE STRING,
AUFNB TYPE STRING,
POSNR TYPE STRING,
AUART TYPE STRING,
ARTXT TYPE STRING,
AUTYP TYPE STRING,
TYPTX TYPE STRING,
SAFNR TYPE STRING,
SAFTX TYPE STRING,
SAFNB TYPE STRING,
PROCNR TYPE STRING,
PROCNB TYPE STRING,
PROCTX TYPE STRING,
PROBTX TYPE STRING,
KDAUF TYPE STRING,
KDAUB TYPE STRING,
KDPOS TYPE STRING,
PROJN TYPE STRING,
PROJB TYPE STRING,
AWVRS TYPE STRING,
AWSTX TYPE STRING,
POPER TYPE STRING,
GJAHR TYPE STRING,
AWVAL TYPE STRING,
VSALL TYPE STRING,
AWVSE TYPE STRING,
VSSEL TYPE STRING,
BATCH TYPE STRING,
TESTL TYPE STRING,
LISTF TYPE STRING,
STAKZ TYPE STRING,
SETVS 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,
TCODE TYPE STRING,
DYNNR TYPE STRING,
OKCOD TYPE STRING,
OBART TYPE STRING,
TRART TYPE STRING,
OBJKT TYPE STRING,
SAMML TYPE STRING,
MODUS TYPE STRING,
VERWS TYPE STRING,
FORTS TYPE STRING,
PRIMS TYPE STRING,
TSTKZ TYPE STRING,
RFCGR TYPE STRING,
TASKS TYPE STRING,
DEBUG TYPE STRING,
STANO TYPE STRING,
STAMD TYPE STRING,
SKASS TYPE STRING,
OBJID TYPE STRING,
USERK TYPE STRING,
DBKNZ TYPE STRING,
WITEM TYPE STRING,
JOBID TYPE STRING,
EXDET TYPE STRING,
FBDET TYPE STRING,
FBDDE TYPE STRING,
EXBAS TYPE STRING,
FBBAS TYPE STRING,
FBDBA TYPE STRING,
WLACT TYPE STRING,
WLID TYPE STRING,
WLSTEP TYPE STRING,
WLCAT TYPE STRING,
ORDFT TYPE STRING,
ORDCH TYPE STRING,
ANZOR TYPE STRING,
ANZVS TYPE STRING,
ANZVL TYPE STRING,
WLCNT TYPE STRING,
ORDRE TYPE STRING,
ORDBE TYPE STRING,
ORDOK TYPE STRING,
ANZFS TYPE STRING,
ANZPN TYPE STRING,
ANZKD TYPE STRING,
ANZKE TYPE STRING,
ANZPJ TYPE STRING,
ANZPE TYPE STRING,
ANZPI TYPE STRING,
ANZPK TYPE STRING,
ANZFA TYPE STRING,
ANZMP TYPE STRING,
ANZFK TYPE STRING,
ANZKT TYPE STRING,
ANZAS TYPE STRING,
ANZLK TYPE STRING,
ANZKB TYPE STRING,
ANZFP TYPE STRING,
ANZPC TYPE STRING,
ANZAP TYPE STRING,
ANZAK TYPE STRING,
NOTAR TYPE STRING,
NOVAR TYPE STRING,
NOSCP TYPE STRING,
NOCTL TYPE STRING,
ERTAR TYPE STRING,
ERVAR TYPE STRING,
ERSCP TYPE STRING,
ERCTL TYPE STRING,
MAXFS TYPE STRING,
MAXMT TYPE STRING,
ANZMS TYPE STRING,
SUBRC TYPE STRING,
CMFNR TYPE STRING,
IMESS TYPE STRING,
WMESS TYPE STRING,
EMESS TYPE STRING,
AMESS TYPE STRING,
WLERR TYPE STRING,
WLFER TYPE STRING,
WLMER TYPE STRING,
WLHER TYPE STRING,
WLNRE TYPE STRING,
WLOKY TYPE STRING,
FLERR TYPE STRING,
FLMER TYPE STRING,
FLNRE TYPE STRING,
FLGOK TYPE STRING,
DATUM TYPE STRING,
UZEIT TYPE STRING,
UNAME TYPE STRING,
JNAME TYPE STRING,
JNUMM TYPE STRING,
SPONR TYPE STRING,
SHOST TYPE STRING,
STERM TYPE STRING,
SIPAD TYPE STRING,
SWPNO TYPE STRING,
SWPID TYPE STRING,
SKREL TYPE STRING,
SKDBR TYPE STRING,
SCPON TYPE STRING,
SCPAT TYPE STRING,
SPLVL TYPE STRING,
SELKZ TYPE STRING,END OF T_EKKO_STR. DATA: WA_KKS02_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_KKS02_STR-KOKRS sy-vline
WA_KKS02_STR-BEZEI sy-vline
WA_KKS02_STR-WERKS sy-vline
WA_KKS02_STR-WRKTX sy-vline
WA_KKS02_STR-INCLF sy-vline
WA_KKS02_STR-INCLP sy-vline
WA_KKS02_STR-INCLI sy-vline
WA_KKS02_STR-MATNR sy-vline
WA_KKS02_STR-MATTX sy-vline
WA_KKS02_STR-MATNB sy-vline
WA_KKS02_STR-VERID sy-vline
WA_KKS02_STR-VERTX sy-vline
WA_KKS02_STR-AUFNR sy-vline
WA_KKS02_STR-KTEXT sy-vline
WA_KKS02_STR-AUFNB sy-vline
WA_KKS02_STR-POSNR sy-vline
WA_KKS02_STR-AUART sy-vline
WA_KKS02_STR-ARTXT sy-vline
WA_KKS02_STR-AUTYP sy-vline
WA_KKS02_STR-TYPTX sy-vline
WA_KKS02_STR-SAFNR sy-vline
WA_KKS02_STR-SAFTX sy-vline
WA_KKS02_STR-SAFNB sy-vline
WA_KKS02_STR-PROCNR sy-vline
WA_KKS02_STR-PROCNB sy-vline
WA_KKS02_STR-PROCTX sy-vline
WA_KKS02_STR-PROBTX sy-vline
WA_KKS02_STR-KDAUF sy-vline
WA_KKS02_STR-KDAUB sy-vline
WA_KKS02_STR-KDPOS sy-vline
WA_KKS02_STR-PROJN sy-vline
WA_KKS02_STR-PROJB sy-vline
WA_KKS02_STR-AWVRS sy-vline
WA_KKS02_STR-AWSTX sy-vline
WA_KKS02_STR-POPER sy-vline
WA_KKS02_STR-GJAHR sy-vline
WA_KKS02_STR-AWVAL sy-vline
WA_KKS02_STR-VSALL sy-vline
WA_KKS02_STR-AWVSE sy-vline
WA_KKS02_STR-VSSEL sy-vline
WA_KKS02_STR-BATCH sy-vline
WA_KKS02_STR-TESTL sy-vline
WA_KKS02_STR-LISTF sy-vline
WA_KKS02_STR-STAKZ sy-vline
WA_KKS02_STR-SETVS sy-vline
WA_KKS02_STR-MESPRI sy-vline
WA_KKS02_STR-SAVE_DETAIL sy-vline
WA_KKS02_STR-PRINT_DETAIL sy-vline
WA_KKS02_STR-CURRTYP sy-vline
WA_KKS02_STR-VARIANT_NAME sy-vline
WA_KKS02_STR-VARIANT_TEXT sy-vline
WA_KKS02_STR-REPORT sy-vline
WA_KKS02_STR-HANDLE sy-vline
WA_KKS02_STR-LOG_GROUP sy-vline
WA_KKS02_STR-USERNAME sy-vline
WA_KKS02_STR-EXNAME sy-vline
WA_KKS02_STR-TCODE sy-vline
WA_KKS02_STR-DYNNR sy-vline
WA_KKS02_STR-OKCOD sy-vline
WA_KKS02_STR-OBART sy-vline
WA_KKS02_STR-TRART sy-vline
WA_KKS02_STR-OBJKT sy-vline
WA_KKS02_STR-SAMML sy-vline
WA_KKS02_STR-MODUS sy-vline
WA_KKS02_STR-VERWS sy-vline
WA_KKS02_STR-FORTS sy-vline
WA_KKS02_STR-PRIMS sy-vline
WA_KKS02_STR-TSTKZ sy-vline
WA_KKS02_STR-RFCGR sy-vline
WA_KKS02_STR-TASKS sy-vline
WA_KKS02_STR-DEBUG sy-vline
WA_KKS02_STR-STANO sy-vline
WA_KKS02_STR-STAMD sy-vline
WA_KKS02_STR-SKASS sy-vline
WA_KKS02_STR-OBJID sy-vline
WA_KKS02_STR-USERK sy-vline
WA_KKS02_STR-DBKNZ sy-vline
WA_KKS02_STR-WITEM sy-vline
WA_KKS02_STR-JOBID sy-vline
WA_KKS02_STR-EXDET sy-vline
WA_KKS02_STR-FBDET sy-vline
WA_KKS02_STR-FBDDE sy-vline
WA_KKS02_STR-EXBAS sy-vline
WA_KKS02_STR-FBBAS sy-vline
WA_KKS02_STR-FBDBA sy-vline
WA_KKS02_STR-WLACT sy-vline
WA_KKS02_STR-WLID sy-vline
WA_KKS02_STR-WLSTEP sy-vline
WA_KKS02_STR-WLCAT sy-vline
WA_KKS02_STR-ORDFT sy-vline
WA_KKS02_STR-ORDCH sy-vline
WA_KKS02_STR-ANZOR sy-vline
WA_KKS02_STR-ANZVS sy-vline
WA_KKS02_STR-ANZVL sy-vline
WA_KKS02_STR-WLCNT sy-vline
WA_KKS02_STR-ORDRE sy-vline
WA_KKS02_STR-ORDBE sy-vline
WA_KKS02_STR-ORDOK sy-vline
WA_KKS02_STR-ANZFS sy-vline
WA_KKS02_STR-ANZPN sy-vline
WA_KKS02_STR-ANZKD sy-vline
WA_KKS02_STR-ANZKE sy-vline
WA_KKS02_STR-ANZPJ sy-vline
WA_KKS02_STR-ANZPE sy-vline
WA_KKS02_STR-ANZPI sy-vline
WA_KKS02_STR-ANZPK sy-vline
WA_KKS02_STR-ANZFA sy-vline
WA_KKS02_STR-ANZMP sy-vline
WA_KKS02_STR-ANZFK sy-vline
WA_KKS02_STR-ANZKT sy-vline
WA_KKS02_STR-ANZAS sy-vline
WA_KKS02_STR-ANZLK sy-vline
WA_KKS02_STR-ANZKB sy-vline
WA_KKS02_STR-ANZFP sy-vline
WA_KKS02_STR-ANZPC sy-vline
WA_KKS02_STR-ANZAP sy-vline
WA_KKS02_STR-ANZAK sy-vline
WA_KKS02_STR-NOTAR sy-vline
WA_KKS02_STR-NOVAR sy-vline
WA_KKS02_STR-NOSCP sy-vline
WA_KKS02_STR-NOCTL sy-vline
WA_KKS02_STR-ERTAR sy-vline
WA_KKS02_STR-ERVAR sy-vline
WA_KKS02_STR-ERSCP sy-vline
WA_KKS02_STR-ERCTL sy-vline
WA_KKS02_STR-MAXFS sy-vline
WA_KKS02_STR-MAXMT sy-vline
WA_KKS02_STR-ANZMS sy-vline
WA_KKS02_STR-SUBRC sy-vline
WA_KKS02_STR-CMFNR sy-vline
WA_KKS02_STR-IMESS sy-vline
WA_KKS02_STR-WMESS sy-vline
WA_KKS02_STR-EMESS sy-vline
WA_KKS02_STR-AMESS sy-vline
WA_KKS02_STR-WLERR sy-vline
WA_KKS02_STR-WLFER sy-vline
WA_KKS02_STR-WLMER sy-vline
WA_KKS02_STR-WLHER sy-vline
WA_KKS02_STR-WLNRE sy-vline
WA_KKS02_STR-WLOKY sy-vline
WA_KKS02_STR-FLERR sy-vline
WA_KKS02_STR-FLMER sy-vline
WA_KKS02_STR-FLNRE sy-vline
WA_KKS02_STR-FLGOK sy-vline
WA_KKS02_STR-DATUM sy-vline
WA_KKS02_STR-UZEIT sy-vline
WA_KKS02_STR-UNAME sy-vline
WA_KKS02_STR-JNAME sy-vline
WA_KKS02_STR-JNUMM sy-vline
WA_KKS02_STR-SPONR sy-vline
WA_KKS02_STR-SHOST sy-vline
WA_KKS02_STR-STERM sy-vline
WA_KKS02_STR-SIPAD sy-vline
WA_KKS02_STR-SWPNO sy-vline
WA_KKS02_STR-SWPID sy-vline
WA_KKS02_STR-SKREL sy-vline
WA_KKS02_STR-SKDBR sy-vline
WA_KKS02_STR-SCPON sy-vline
WA_KKS02_STR-SCPAT sy-vline
WA_KKS02_STR-SPLVL sy-vline
WA_KKS02_STR-SELKZ sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.