ABAP Select data from SAP table FCOM_EXP_ACTVAL 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 FCOM_EXP_ACTVAL 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 FCOM_EXP_ACTVAL. 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 FCOM_EXP_ACTVAL 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_FCOM_EXP_ACTVAL TYPE STANDARD TABLE OF FCOM_EXP_ACTVAL,
      WA_FCOM_EXP_ACTVAL TYPE FCOM_EXP_ACTVAL,
      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: <FCOM_EXP_ACTVAL> TYPE FCOM_EXP_ACTVAL.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM FCOM_EXP_ACTVAL
*  INTO TABLE @DATA(IT_FCOM_EXP_ACTVAL2).
*--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_FCOM_EXP_ACTVAL INDEX 1 INTO DATA(WA_FCOM_EXP_ACTVAL2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_FCOM_EXP_ACTVAL ASSIGNING <FCOM_EXP_ACTVAL>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<FCOM_EXP_ACTVAL>-KOSTL = 1.
<FCOM_EXP_ACTVAL>-KOSTLTEXT = 1.
<FCOM_EXP_ACTVAL>-LSTAR = 1.
<FCOM_EXP_ACTVAL>-LSTARTEXT = 1.
<FCOM_EXP_ACTVAL>-KSTAR = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_FCOM_EXP_ACTVAL-KSTARTEXT, sy-vline,
WA_FCOM_EXP_ACTVAL-KATYP, sy-vline,
WA_FCOM_EXP_ACTVAL-FRONTEND_ADD_KA, sy-vline,
WA_FCOM_EXP_ACTVAL-FRONTEND_ADD_LA, sy-vline,
WA_FCOM_EXP_ACTVAL-FISC_YEAR, sy-vline,
WA_FCOM_EXP_ACTVAL-WRTTP, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FCOM_EXP_ACTVAL 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_FCOM_EXP_ACTVAL 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_FCOM_EXP_ACTVAL INTO WA_FCOM_EXP_ACTVAL. *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 CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FCOM_EXP_ACTVAL-KSTAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FCOM_EXP_ACTVAL-KSTAR.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit ALPHA, internal->external for field VERSN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FCOM_EXP_ACTVAL-VERSN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FCOM_EXP_ACTVAL-VERSN.
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_FCOM_EXP_ACTVAL_STR,
KOSTL TYPE STRING,
KOSTLTEXT TYPE STRING,
LSTAR TYPE STRING,
LSTARTEXT TYPE STRING,
KSTAR TYPE STRING,
KSTARTEXT TYPE STRING,
KATYP TYPE STRING,
FRONTEND_ADD_KA TYPE STRING,
FRONTEND_ADD_LA TYPE STRING,
FISC_YEAR TYPE STRING,
WRTTP TYPE STRING,
VERSN TYPE STRING,
WAERS TYPE STRING,
DECAN TYPE STRING,
ANDEC TYPE STRING,
SPRED TYPE STRING,
PER01FIX TYPE STRING,
PER02FIX TYPE STRING,
PER03FIX TYPE STRING,
PER04FIX TYPE STRING,
PER05FIX TYPE STRING,
PER06FIX TYPE STRING,
PER07FIX TYPE STRING,
PER08FIX TYPE STRING,
PER09FIX TYPE STRING,
PER10FIX TYPE STRING,
PER11FIX TYPE STRING,
PER12FIX TYPE STRING,
PER13FIX TYPE STRING,
PER14FIX TYPE STRING,
PER15FIX TYPE STRING,
PER16FIX TYPE STRING,
PER01VAR TYPE STRING,
PER02VAR TYPE STRING,
PER03VAR TYPE STRING,
PER04VAR TYPE STRING,
PER05VAR TYPE STRING,
PER06VAR TYPE STRING,
PER07VAR TYPE STRING,
PER08VAR TYPE STRING,
PER09VAR TYPE STRING,
PER10VAR TYPE STRING,
PER11VAR TYPE STRING,
PER12VAR TYPE STRING,
PER13VAR TYPE STRING,
PER14VAR TYPE STRING,
PER15VAR TYPE STRING,
PER16VAR TYPE STRING,
YEARFIX TYPE STRING,
YEARVAR TYPE STRING,END OF T_EKKO_STR. DATA: WA_FCOM_EXP_ACTVAL_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_FCOM_EXP_ACTVAL_STR-KOSTL sy-vline
WA_FCOM_EXP_ACTVAL_STR-KOSTLTEXT sy-vline
WA_FCOM_EXP_ACTVAL_STR-LSTAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-LSTARTEXT sy-vline
WA_FCOM_EXP_ACTVAL_STR-KSTAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-KSTARTEXT sy-vline
WA_FCOM_EXP_ACTVAL_STR-KATYP sy-vline
WA_FCOM_EXP_ACTVAL_STR-FRONTEND_ADD_KA sy-vline
WA_FCOM_EXP_ACTVAL_STR-FRONTEND_ADD_LA sy-vline
WA_FCOM_EXP_ACTVAL_STR-FISC_YEAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-WRTTP sy-vline
WA_FCOM_EXP_ACTVAL_STR-VERSN sy-vline
WA_FCOM_EXP_ACTVAL_STR-WAERS sy-vline
WA_FCOM_EXP_ACTVAL_STR-DECAN sy-vline
WA_FCOM_EXP_ACTVAL_STR-ANDEC sy-vline
WA_FCOM_EXP_ACTVAL_STR-SPRED sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER01FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER02FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER03FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER04FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER05FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER06FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER07FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER08FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER09FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER10FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER11FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER12FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER13FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER14FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER15FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER16FIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER01VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER02VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER03VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER04VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER05VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER06VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER07VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER08VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER09VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER10VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER11VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER12VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER13VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER14VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER15VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-PER16VAR sy-vline
WA_FCOM_EXP_ACTVAL_STR-YEARFIX sy-vline
WA_FCOM_EXP_ACTVAL_STR-YEARVAR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.