ABAP Select data from SAP table ITCFX 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 ITCFX 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 ITCFX. 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 ITCFX 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_ITCFX TYPE STANDARD TABLE OF ITCFX,
      WA_ITCFX TYPE ITCFX,
      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: <ITCFX> TYPE ITCFX.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM ITCFX
*  INTO TABLE @DATA(IT_ITCFX2).
*--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_ITCFX INDEX 1 INTO DATA(WA_ITCFX2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_ITCFX ASSIGNING <ITCFX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<ITCFX>-RTITLE = 1.
<ITCFX>-RNAME1 = 1.
<ITCFX>-RNAME2 = 1.
<ITCFX>-RNAME3 = 1.
<ITCFX>-RNAME4 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_ITCFX-RPOCODE, sy-vline,
WA_ITCFX-RCITY1, sy-vline,
WA_ITCFX-RCITY2, sy-vline,
WA_ITCFX-RPOCODE2, sy-vline,
WA_ITCFX-RPOBOX, sy-vline,
WA_ITCFX-RPOPLACE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_ITCFX 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_ITCFX 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_ITCFX INTO WA_ITCFX. *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 ISOLA, internal->external for field RLANGU CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_ITCFX-RLANGU IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ITCFX-RLANGU.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ISOLA, internal->external for field TDLANGU CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_ITCFX-TDLANGU IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ITCFX-TDLANGU.
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_ITCFX_STR,
RTITLE TYPE STRING,
RNAME1 TYPE STRING,
RNAME2 TYPE STRING,
RNAME3 TYPE STRING,
RNAME4 TYPE STRING,
RPOCODE TYPE STRING,
RCITY1 TYPE STRING,
RCITY2 TYPE STRING,
RPOCODE2 TYPE STRING,
RPOBOX TYPE STRING,
RPOPLACE TYPE STRING,
RSTREET TYPE STRING,
RCOUNTRY TYPE STRING,
RREGIO TYPE STRING,
RLANGU TYPE STRING,
RHOMECNTRY TYPE STRING,
RLINES TYPE STRING,
RCTITLE TYPE STRING,
RCFNAME TYPE STRING,
RCLNAME TYPE STRING,
RCNAME1 TYPE STRING,
RCNAME2 TYPE STRING,
RCDEPTM TYPE STRING,
RCFAXNR TYPE STRING,
STITLE TYPE STRING,
SNAME1 TYPE STRING,
SNAME2 TYPE STRING,
SNAME3 TYPE STRING,
SNAME4 TYPE STRING,
SPOCODE TYPE STRING,
SCITY1 TYPE STRING,
SCITY2 TYPE STRING,
SPOCODE2 TYPE STRING,
SPOBOX TYPE STRING,
SPOPLACE TYPE STRING,
SSTREET TYPE STRING,
SCOUNTRY TYPE STRING,
SREGIO TYPE STRING,
SHOMECNTRY TYPE STRING,
SLINES TYPE STRING,
SCTITLE TYPE STRING,
SCFNAME TYPE STRING,
SCLNAME TYPE STRING,
SCNAME1 TYPE STRING,
SCNAME2 TYPE STRING,
SCDEPTM TYPE STRING,
SCCOSTC TYPE STRING,
SCROOMN TYPE STRING,
SCBUILD TYPE STRING,
SCPHONENR1 TYPE STRING,
SCPHONENR2 TYPE STRING,
SCFAXNR TYPE STRING,
HEADER TYPE STRING,
FOOTER TYPE STRING,
SIGNATURE TYPE STRING,
TDID TYPE STRING,
TDLANGU TYPE STRING,
SUBJECT TYPE STRING,END OF T_EKKO_STR. DATA: WA_ITCFX_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_ITCFX_STR-RTITLE sy-vline
WA_ITCFX_STR-RNAME1 sy-vline
WA_ITCFX_STR-RNAME2 sy-vline
WA_ITCFX_STR-RNAME3 sy-vline
WA_ITCFX_STR-RNAME4 sy-vline
WA_ITCFX_STR-RPOCODE sy-vline
WA_ITCFX_STR-RCITY1 sy-vline
WA_ITCFX_STR-RCITY2 sy-vline
WA_ITCFX_STR-RPOCODE2 sy-vline
WA_ITCFX_STR-RPOBOX sy-vline
WA_ITCFX_STR-RPOPLACE sy-vline
WA_ITCFX_STR-RSTREET sy-vline
WA_ITCFX_STR-RCOUNTRY sy-vline
WA_ITCFX_STR-RREGIO sy-vline
WA_ITCFX_STR-RLANGU sy-vline
WA_ITCFX_STR-RHOMECNTRY sy-vline
WA_ITCFX_STR-RLINES sy-vline
WA_ITCFX_STR-RCTITLE sy-vline
WA_ITCFX_STR-RCFNAME sy-vline
WA_ITCFX_STR-RCLNAME sy-vline
WA_ITCFX_STR-RCNAME1 sy-vline
WA_ITCFX_STR-RCNAME2 sy-vline
WA_ITCFX_STR-RCDEPTM sy-vline
WA_ITCFX_STR-RCFAXNR sy-vline
WA_ITCFX_STR-STITLE sy-vline
WA_ITCFX_STR-SNAME1 sy-vline
WA_ITCFX_STR-SNAME2 sy-vline
WA_ITCFX_STR-SNAME3 sy-vline
WA_ITCFX_STR-SNAME4 sy-vline
WA_ITCFX_STR-SPOCODE sy-vline
WA_ITCFX_STR-SCITY1 sy-vline
WA_ITCFX_STR-SCITY2 sy-vline
WA_ITCFX_STR-SPOCODE2 sy-vline
WA_ITCFX_STR-SPOBOX sy-vline
WA_ITCFX_STR-SPOPLACE sy-vline
WA_ITCFX_STR-SSTREET sy-vline
WA_ITCFX_STR-SCOUNTRY sy-vline
WA_ITCFX_STR-SREGIO sy-vline
WA_ITCFX_STR-SHOMECNTRY sy-vline
WA_ITCFX_STR-SLINES sy-vline
WA_ITCFX_STR-SCTITLE sy-vline
WA_ITCFX_STR-SCFNAME sy-vline
WA_ITCFX_STR-SCLNAME sy-vline
WA_ITCFX_STR-SCNAME1 sy-vline
WA_ITCFX_STR-SCNAME2 sy-vline
WA_ITCFX_STR-SCDEPTM sy-vline
WA_ITCFX_STR-SCCOSTC sy-vline
WA_ITCFX_STR-SCROOMN sy-vline
WA_ITCFX_STR-SCBUILD sy-vline
WA_ITCFX_STR-SCPHONENR1 sy-vline
WA_ITCFX_STR-SCPHONENR2 sy-vline
WA_ITCFX_STR-SCFAXNR sy-vline
WA_ITCFX_STR-HEADER sy-vline
WA_ITCFX_STR-FOOTER sy-vline
WA_ITCFX_STR-SIGNATURE sy-vline
WA_ITCFX_STR-TDID sy-vline
WA_ITCFX_STR-TDLANGU sy-vline
WA_ITCFX_STR-SUBJECT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.