ABAP Select data from SAP table TCA41 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 TCA41 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 TCA41. 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 TCA41 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_TCA41 TYPE STANDARD TABLE OF TCA41,
      WA_TCA41 TYPE TCA41,
      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: <TCA41> TYPE TCA41.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM TCA41
*  INTO TABLE @DATA(IT_TCA412).
*--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_TCA41 INDEX 1 INTO DATA(WA_TCA412).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_TCA41 ASSIGNING <TCA41>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<TCA41>-MANDT = 1.
<TCA41>-PLNAW = 1.
<TCA41>-PROFIDNETZ = 1.
<TCA41>-FLG_ERF_H = 1.
<TCA41>-ESOKZ = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_TCA41-EKORG, sy-vline,
WA_TCA41-KSTAR_FRMD, sy-vline,
WA_TCA41-STEUS_WORK, sy-vline,
WA_TCA41-STEUS_FRMD, sy-vline,
WA_TCA41-STEUS_PRIM, sy-vline,
WA_TCA41-KSTAR_COST, sy-vline.
ENDLOOP. *Add any further fields from structure WA_TCA41 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_TCA41 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_TCA41 INTO WA_TCA41. *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 KSTAR_FRMD CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_TCA41-KSTAR_FRMD IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TCA41-KSTAR_FRMD.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field KSTAR_NSI CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_TCA41-KSTAR_NSI IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TCA41-KSTAR_NSI.
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_TCA41_STR,
MANDT TYPE STRING,
PLNAW TYPE STRING,
PROFIDNETZ TYPE STRING,
FLG_ERF_H TYPE STRING,
ESOKZ TYPE STRING,
EKORG TYPE STRING,
KSTAR_FRMD TYPE STRING,
STEUS_WORK TYPE STRING,
STEUS_FRMD TYPE STRING,
STEUS_PRIM TYPE STRING,
KSTAR_COST TYPE STRING,
DAUNE TYPE STRING,
ARBEH TYPE STRING,
WAERS TYPE STRING,
SLWID TYPE STRING,
LVARI TYPE STRING,
INDET TYPE STRING,
BUKRS TYPE STRING,
AOB_KEY TYPE STRING,
VORNR_DEL TYPE STRING,
WERKS TYPE STRING,
NETSTUFE TYPE STRING,
PLNME TYPE STRING,
VERWE TYPE STRING,
STATU TYPE STRING,
UMREN TYPE STRING,
UMREZ TYPE STRING,
ZERMA TYPE STRING,
ESKOZ TYPE STRING,
BMSCH TYPE STRING,
STEUS TYPE STRING,
QMKDELTA TYPE STRING,
QMWDELTA TYPE STRING,
QMKEF TYPE STRING,
QMWEF TYPE STRING,
QPROBEMGEH TYPE STRING,
QPRUEFEINH TYPE STRING,
CF_PSNINC TYPE STRING,
RSCHL_OFER TYPE STRING,
RSCHL_OFRD TYPE STRING,
RSCHL_UFER TYPE STRING,
RSCHL_UFRD TYPE STRING,
GRPRF_GRUP TYPE STRING,
GRPRF_NAME TYPE STRING,
RSCHL_UCST TYPE STRING,
RSCHL_OCST TYPE STRING,
LVARI_TERM TYPE STRING,
FTNR_INC TYPE STRING,
FVNR_INC TYPE STRING,
AOB_DARST TYPE STRING,
VRG_DARST TYPE STRING,
PHS_DARST TYPE STRING,
KSTAR_SERV TYPE STRING,
STEUS_SERV TYPE STRING,
MATKL TYPE STRING,
LSTVAR TYPE STRING,
LSTVAR_T TYPE STRING,
EKGRP TYPE STRING,
LIFNR TYPE STRING,
NT_SEARCH1 TYPE STRING,
NT_SEARCH2 TYPE STRING,
NT_SEARCH3 TYPE STRING,
CHRULE TYPE STRING,
CCOAA TYPE STRING,
VGWTS TYPE STRING,
PRES TYPE STRING,
KSTAR_NSI TYPE STRING,
MATKL_NSI TYPE STRING,
EKORG_NSI TYPE STRING,
EKGRP_NSI TYPE STRING,
ABLAD_NSI TYPE STRING,
WEMPF_NSI TYPE STRING,
CRTYPE TYPE STRING,END OF T_EKKO_STR. DATA: WA_TCA41_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_TCA41_STR-MANDT sy-vline
WA_TCA41_STR-PLNAW sy-vline
WA_TCA41_STR-PROFIDNETZ sy-vline
WA_TCA41_STR-FLG_ERF_H sy-vline
WA_TCA41_STR-ESOKZ sy-vline
WA_TCA41_STR-EKORG sy-vline
WA_TCA41_STR-KSTAR_FRMD sy-vline
WA_TCA41_STR-STEUS_WORK sy-vline
WA_TCA41_STR-STEUS_FRMD sy-vline
WA_TCA41_STR-STEUS_PRIM sy-vline
WA_TCA41_STR-KSTAR_COST sy-vline
WA_TCA41_STR-DAUNE sy-vline
WA_TCA41_STR-ARBEH sy-vline
WA_TCA41_STR-WAERS sy-vline
WA_TCA41_STR-SLWID sy-vline
WA_TCA41_STR-LVARI sy-vline
WA_TCA41_STR-INDET sy-vline
WA_TCA41_STR-BUKRS sy-vline
WA_TCA41_STR-AOB_KEY sy-vline
WA_TCA41_STR-VORNR_DEL sy-vline
WA_TCA41_STR-WERKS sy-vline
WA_TCA41_STR-NETSTUFE sy-vline
WA_TCA41_STR-PLNME sy-vline
WA_TCA41_STR-VERWE sy-vline
WA_TCA41_STR-STATU sy-vline
WA_TCA41_STR-UMREN sy-vline
WA_TCA41_STR-UMREZ sy-vline
WA_TCA41_STR-ZERMA sy-vline
WA_TCA41_STR-ESKOZ sy-vline
WA_TCA41_STR-BMSCH sy-vline
WA_TCA41_STR-STEUS sy-vline
WA_TCA41_STR-QMKDELTA sy-vline
WA_TCA41_STR-QMWDELTA sy-vline
WA_TCA41_STR-QMKEF sy-vline
WA_TCA41_STR-QMWEF sy-vline
WA_TCA41_STR-QPROBEMGEH sy-vline
WA_TCA41_STR-QPRUEFEINH sy-vline
WA_TCA41_STR-CF_PSNINC sy-vline
WA_TCA41_STR-RSCHL_OFER sy-vline
WA_TCA41_STR-RSCHL_OFRD sy-vline
WA_TCA41_STR-RSCHL_UFER sy-vline
WA_TCA41_STR-RSCHL_UFRD sy-vline
WA_TCA41_STR-GRPRF_GRUP sy-vline
WA_TCA41_STR-GRPRF_NAME sy-vline
WA_TCA41_STR-RSCHL_UCST sy-vline
WA_TCA41_STR-RSCHL_OCST sy-vline
WA_TCA41_STR-LVARI_TERM sy-vline
WA_TCA41_STR-FTNR_INC sy-vline
WA_TCA41_STR-FVNR_INC sy-vline
WA_TCA41_STR-AOB_DARST sy-vline
WA_TCA41_STR-VRG_DARST sy-vline
WA_TCA41_STR-PHS_DARST sy-vline
WA_TCA41_STR-KSTAR_SERV sy-vline
WA_TCA41_STR-STEUS_SERV sy-vline
WA_TCA41_STR-MATKL sy-vline
WA_TCA41_STR-LSTVAR sy-vline
WA_TCA41_STR-LSTVAR_T sy-vline
WA_TCA41_STR-EKGRP sy-vline
WA_TCA41_STR-LIFNR sy-vline
WA_TCA41_STR-NT_SEARCH1 sy-vline
WA_TCA41_STR-NT_SEARCH2 sy-vline
WA_TCA41_STR-NT_SEARCH3 sy-vline
WA_TCA41_STR-CHRULE sy-vline
WA_TCA41_STR-CCOAA sy-vline
WA_TCA41_STR-VGWTS sy-vline
WA_TCA41_STR-PRES sy-vline
WA_TCA41_STR-KSTAR_NSI sy-vline
WA_TCA41_STR-MATKL_NSI sy-vline
WA_TCA41_STR-EKORG_NSI sy-vline
WA_TCA41_STR-EKGRP_NSI sy-vline
WA_TCA41_STR-ABLAD_NSI sy-vline
WA_TCA41_STR-WEMPF_NSI sy-vline
WA_TCA41_STR-CRTYPE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.