ABAP Select data from SAP table FC03TAB 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 FC03TAB 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 FC03TAB. 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 FC03TAB 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_FC03TAB TYPE STANDARD TABLE OF FC03TAB, WA_FC03TAB TYPE FC03TAB, 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: <FC03TAB> TYPE FC03TAB. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_FC03TAB. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM FC03TAB INTO TABLE IT_FC03TAB. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM FC03TAB * INTO TABLE @DATA(IT_FC03TAB2). *--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_FC03TAB INDEX 1 INTO DATA(WA_FC03TAB2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_FC03TAB ASSIGNING <FC03TAB>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<FC03TAB>-MANDT = 1.
<FC03TAB>-DIMEN = 1.
<FC03TAB>-DEFRM = 1.
<FC03TAB>-BUNIT = 1.
<FC03TAB>-IPTYP = 1.
ENDLOOP. LOOP AT IT_FC03TAB INTO WA_FC03TAB. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_FC03TAB-ITEM_FROM, sy-vline,
WA_FC03TAB-ITEM_TO, sy-vline,
WA_FC03TAB-ITGRP, sy-vline,
WA_FC03TAB-ITSIND, sy-vline,
WA_FC03TAB-TEXT1, sy-vline,
WA_FC03TAB-TEXT2, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FC03TAB 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_FC03TAB 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_FC03TAB INTO WA_FC03TAB. *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 AFIMC, internal->external for field BUNIT CALL FUNCTION 'CONVERSION_EXIT_AFIMC_OUTPUT' EXPORTING input = WA_FC03TAB-BUNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC03TAB-BUNIT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit BFIMC, internal->external for field ITEM_FROM CALL FUNCTION 'CONVERSION_EXIT_BFIMC_OUTPUT' EXPORTING input = WA_FC03TAB-ITEM_FROM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC03TAB-ITEM_FROM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit BFIMC, internal->external for field ITEM_TO CALL FUNCTION 'CONVERSION_EXIT_BFIMC_OUTPUT' EXPORTING input = WA_FC03TAB-ITEM_TO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC03TAB-ITEM_TO.
WRITE:/ 'New Value:', ld_input.
*Conversion exit BFIMC, internal->external for field SUM_ITEM CALL FUNCTION 'CONVERSION_EXIT_BFIMC_OUTPUT' EXPORTING input = WA_FC03TAB-SUM_ITEM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC03TAB-SUM_ITEM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field RLDNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FC03TAB-RLDNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC03TAB-RLDNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field RVERS CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FC03TAB-RVERS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC03TAB-RVERS.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field FIXVS CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FC03TAB-FIXVS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC03TAB-FIXVS.
WRITE:/ 'New Value:', ld_input.
*Conversion exit GJAHR, internal->external for field RYEAR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_FC03TAB-RYEAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC03TAB-RYEAR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AFIMC, internal->external for field CONGR CALL FUNCTION 'CONVERSION_EXIT_AFIMC_OUTPUT' EXPORTING input = WA_FC03TAB-CONGR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC03TAB-CONGR.
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_FC03TAB_STR,
MANDT TYPE STRING,
DIMEN TYPE STRING,
DEFRM TYPE STRING,
BUNIT TYPE STRING,
IPTYP TYPE STRING,
ITEM_FROM TYPE STRING,
ITEM_TO TYPE STRING,
ITGRP TYPE STRING,
ITSIND TYPE STRING,
TEXT1 TYPE STRING,
TEXT2 TYPE STRING,
TEXT3 TYPE STRING,
TEXT4 TYPE STRING,
TEXT5 TYPE STRING,
TEXT6 TYPE STRING,
TEXT7 TYPE STRING,
TEXT8 TYPE STRING,
TEXT9 TYPE STRING,
TEXT10 TYPE STRING,
BUTTON1 TYPE STRING,
BUTTON2 TYPE STRING,
BUTTON3 TYPE STRING,
ITCLG TYPE STRING,
TITLE TYPE STRING,
OK_CODE TYPE STRING,
CHBOX TYPE STRING,
SUM_ITEM TYPE STRING,
TXTMI TYPE STRING,
SETITEM TYPE STRING,
TXTSH TYPE STRING,
TEXT11 TYPE STRING,
TEXT12 TYPE STRING,
TXTMETH TYPE STRING,
PL00_FILE TYPE STRING,
PL00_FORM TYPE STRING,
PL00_LFILE TYPE STRING,
PL00_PRES TYPE STRING,
PL00_APPL TYPE STRING,
PL00_UPCAT TYPE STRING,
PL00_METH TYPE STRING,
PL00_TEST TYPE STRING,
PL00_LORIG TYPE STRING,
PL00_PROT TYPE STRING,
PL00_PROTX TYPE STRING,
PL00_PROTY TYPE STRING,
PL00_PROTZ TYPE STRING,
PL00_SIGMD TYPE STRING,
PL00_ADOPT TYPE STRING,
PL00_EDIT TYPE STRING,
PL00_YTDAT TYPE STRING,
PL00_PERIO TYPE STRING,
PL00_SERV TYPE STRING,
PL00_SIGN TYPE STRING,
PL00_POST TYPE STRING,
PL00_UPDM TYPE STRING,
PL00_PRTXT TYPE STRING,
PL00_TETXT TYPE STRING,
RLDNR TYPE STRING,
RVERS TYPE STRING,
FIXVS TYPE STRING,
RYEAR TYPE STRING,
POPER TYPE STRING,
CONGR TYPE STRING,
TRANS_U TYPE STRING,
TRANS_A TYPE STRING,
TRANS_P TYPE STRING,
TRANS_O TYPE STRING,
DOCTY TYPE STRING,
PERIO TYPE STRING,
CACTI TYPE STRING,END OF T_EKKO_STR. DATA: WA_FC03TAB_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_FC03TAB_STR-MANDT sy-vline
WA_FC03TAB_STR-DIMEN sy-vline
WA_FC03TAB_STR-DEFRM sy-vline
WA_FC03TAB_STR-BUNIT sy-vline
WA_FC03TAB_STR-IPTYP sy-vline
WA_FC03TAB_STR-ITEM_FROM sy-vline
WA_FC03TAB_STR-ITEM_TO sy-vline
WA_FC03TAB_STR-ITGRP sy-vline
WA_FC03TAB_STR-ITSIND sy-vline
WA_FC03TAB_STR-TEXT1 sy-vline
WA_FC03TAB_STR-TEXT2 sy-vline
WA_FC03TAB_STR-TEXT3 sy-vline
WA_FC03TAB_STR-TEXT4 sy-vline
WA_FC03TAB_STR-TEXT5 sy-vline
WA_FC03TAB_STR-TEXT6 sy-vline
WA_FC03TAB_STR-TEXT7 sy-vline
WA_FC03TAB_STR-TEXT8 sy-vline
WA_FC03TAB_STR-TEXT9 sy-vline
WA_FC03TAB_STR-TEXT10 sy-vline
WA_FC03TAB_STR-BUTTON1 sy-vline
WA_FC03TAB_STR-BUTTON2 sy-vline
WA_FC03TAB_STR-BUTTON3 sy-vline
WA_FC03TAB_STR-ITCLG sy-vline
WA_FC03TAB_STR-TITLE sy-vline
WA_FC03TAB_STR-OK_CODE sy-vline
WA_FC03TAB_STR-CHBOX sy-vline
WA_FC03TAB_STR-SUM_ITEM sy-vline
WA_FC03TAB_STR-TXTMI sy-vline
WA_FC03TAB_STR-SETITEM sy-vline
WA_FC03TAB_STR-TXTSH sy-vline
WA_FC03TAB_STR-TEXT11 sy-vline
WA_FC03TAB_STR-TEXT12 sy-vline
WA_FC03TAB_STR-TXTMETH sy-vline
WA_FC03TAB_STR-PL00_FILE sy-vline
WA_FC03TAB_STR-PL00_FORM sy-vline
WA_FC03TAB_STR-PL00_LFILE sy-vline
WA_FC03TAB_STR-PL00_PRES sy-vline
WA_FC03TAB_STR-PL00_APPL sy-vline
WA_FC03TAB_STR-PL00_UPCAT sy-vline
WA_FC03TAB_STR-PL00_METH sy-vline
WA_FC03TAB_STR-PL00_TEST sy-vline
WA_FC03TAB_STR-PL00_LORIG sy-vline
WA_FC03TAB_STR-PL00_PROT sy-vline
WA_FC03TAB_STR-PL00_PROTX sy-vline
WA_FC03TAB_STR-PL00_PROTY sy-vline
WA_FC03TAB_STR-PL00_PROTZ sy-vline
WA_FC03TAB_STR-PL00_SIGMD sy-vline
WA_FC03TAB_STR-PL00_ADOPT sy-vline
WA_FC03TAB_STR-PL00_EDIT sy-vline
WA_FC03TAB_STR-PL00_YTDAT sy-vline
WA_FC03TAB_STR-PL00_PERIO sy-vline
WA_FC03TAB_STR-PL00_SERV sy-vline
WA_FC03TAB_STR-PL00_SIGN sy-vline
WA_FC03TAB_STR-PL00_POST sy-vline
WA_FC03TAB_STR-PL00_UPDM sy-vline
WA_FC03TAB_STR-PL00_PRTXT sy-vline
WA_FC03TAB_STR-PL00_TETXT sy-vline
WA_FC03TAB_STR-RLDNR sy-vline
WA_FC03TAB_STR-RVERS sy-vline
WA_FC03TAB_STR-FIXVS sy-vline
WA_FC03TAB_STR-RYEAR sy-vline
WA_FC03TAB_STR-POPER sy-vline
WA_FC03TAB_STR-CONGR sy-vline
WA_FC03TAB_STR-TRANS_U sy-vline
WA_FC03TAB_STR-TRANS_A sy-vline
WA_FC03TAB_STR-TRANS_P sy-vline
WA_FC03TAB_STR-TRANS_O sy-vline
WA_FC03TAB_STR-DOCTY sy-vline
WA_FC03TAB_STR-PERIO sy-vline
WA_FC03TAB_STR-CACTI sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.