ABAP Select data from SAP table FC05RCLDOC 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 FC05RCLDOC 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 FC05RCLDOC. 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 FC05RCLDOC 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_FC05RCLDOC TYPE STANDARD TABLE OF FC05RCLDOC, WA_FC05RCLDOC TYPE FC05RCLDOC, 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: <FC05RCLDOC> TYPE FC05RCLDOC. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_FC05RCLDOC. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM FC05RCLDOC INTO TABLE IT_FC05RCLDOC. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM FC05RCLDOC * INTO TABLE @DATA(IT_FC05RCLDOC2). *--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_FC05RCLDOC INDEX 1 INTO DATA(WA_FC05RCLDOC2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_FC05RCLDOC ASSIGNING <FC05RCLDOC>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<FC05RCLDOC>-SUMIND = 1.
<FC05RCLDOC>-CONGR_HL = 1.
<FC05RCLDOC>-CONGR_HI = 1.
<FC05RCLDOC>-IBUNIT = 1.
<FC05RCLDOC>-SEQNO = 1.
ENDLOOP. LOOP AT IT_FC05RCLDOC INTO WA_FC05RCLDOC. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_FC05RCLDOC-IRTCUR, sy-vline,
WA_FC05RCLDOC-IITEM, sy-vline,
WA_FC05RCLDOC-ISITYP, sy-vline,
WA_FC05RCLDOC-ISITEM, sy-vline,
WA_FC05RCLDOC-IBUPTR, sy-vline,
WA_FC05RCLDOC-POSTBUNIT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FC05RCLDOC 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_FC05RCLDOC 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_FC05RCLDOC INTO WA_FC05RCLDOC. *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 IBUNIT CALL FUNCTION 'CONVERSION_EXIT_AFIMC_OUTPUT' EXPORTING input = WA_FC05RCLDOC-IBUNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-IBUNIT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit BFIMC, internal->external for field IITEM CALL FUNCTION 'CONVERSION_EXIT_BFIMC_OUTPUT' EXPORTING input = WA_FC05RCLDOC-IITEM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-IITEM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AFIMC, internal->external for field IBUPTR CALL FUNCTION 'CONVERSION_EXIT_AFIMC_OUTPUT' EXPORTING input = WA_FC05RCLDOC-IBUPTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-IBUPTR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AFIMC, internal->external for field POSTBUNIT CALL FUNCTION 'CONVERSION_EXIT_AFIMC_OUTPUT' EXPORTING input = WA_FC05RCLDOC-POSTBUNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-POSTBUNIT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit BFIMC, internal->external for field FITEM CALL FUNCTION 'CONVERSION_EXIT_BFIMC_OUTPUT' EXPORTING input = WA_FC05RCLDOC-FITEM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-FITEM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AFIMC, internal->external for field FBUPTR CALL FUNCTION 'CONVERSION_EXIT_AFIMC_OUTPUT' EXPORTING input = WA_FC05RCLDOC-FBUPTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-FBUPTR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AFIMC, internal->external for field CONGR CALL FUNCTION 'CONVERSION_EXIT_AFIMC_OUTPUT' EXPORTING input = WA_FC05RCLDOC-CONGR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-CONGR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC172, internal->external for field IVTCUR CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC05RCLDOC-IVTCUR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-IVTCUR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC172, internal->external for field IVLCUR CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC05RCLDOC-IVLCUR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-IVLCUR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC172, internal->external for field IVGCUR CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC05RCLDOC-IVGCUR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-IVGCUR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC172, internal->external for field VTCUR CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC05RCLDOC-VTCUR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-VTCUR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC172, internal->external for field VLCUR CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC05RCLDOC-VLCUR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-VLCUR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit AC172, internal->external for field VGCUR CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_FC05RCLDOC-VGCUR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-VGCUR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field DOCNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FC05RCLDOC-DOCNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-DOCNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field NEWDOC CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FC05RCLDOC-NEWDOC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FC05RCLDOC-NEWDOC.
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_FC05RCLDOC_STR,
SUMIND TYPE STRING,
CONGR_HL TYPE STRING,
CONGR_HI TYPE STRING,
IBUNIT TYPE STRING,
SEQNO TYPE STRING,
IRTCUR TYPE STRING,
IITEM TYPE STRING,
ISITYP TYPE STRING,
ISITEM TYPE STRING,
IBUPTR TYPE STRING,
POSTBUNIT TYPE STRING,
FITEM TYPE STRING,
FSITYP TYPE STRING,
FSITEM TYPE STRING,
FBUPTR TYPE STRING,
IRLCUR TYPE STRING,
IRGCUR TYPE STRING,
CONGR TYPE STRING,
RPFLG TYPE STRING,
IVTCUR TYPE STRING,
IVLCUR TYPE STRING,
IVGCUR TYPE STRING,
RTCUR TYPE STRING,
RLCUR TYPE STRING,
RGCUR TYPE STRING,
VTCUR TYPE STRING,
VLCUR TYPE STRING,
VGCUR TYPE STRING,
AUTOM TYPE STRING,
ERRFLG TYPE STRING,
MSGID TYPE STRING,
DOCNR TYPE STRING,
DOCLN TYPE STRING,
NEWDOC TYPE STRING,END OF T_EKKO_STR. DATA: WA_FC05RCLDOC_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_FC05RCLDOC_STR-SUMIND sy-vline
WA_FC05RCLDOC_STR-CONGR_HL sy-vline
WA_FC05RCLDOC_STR-CONGR_HI sy-vline
WA_FC05RCLDOC_STR-IBUNIT sy-vline
WA_FC05RCLDOC_STR-SEQNO sy-vline
WA_FC05RCLDOC_STR-IRTCUR sy-vline
WA_FC05RCLDOC_STR-IITEM sy-vline
WA_FC05RCLDOC_STR-ISITYP sy-vline
WA_FC05RCLDOC_STR-ISITEM sy-vline
WA_FC05RCLDOC_STR-IBUPTR sy-vline
WA_FC05RCLDOC_STR-POSTBUNIT sy-vline
WA_FC05RCLDOC_STR-FITEM sy-vline
WA_FC05RCLDOC_STR-FSITYP sy-vline
WA_FC05RCLDOC_STR-FSITEM sy-vline
WA_FC05RCLDOC_STR-FBUPTR sy-vline
WA_FC05RCLDOC_STR-IRLCUR sy-vline
WA_FC05RCLDOC_STR-IRGCUR sy-vline
WA_FC05RCLDOC_STR-CONGR sy-vline
WA_FC05RCLDOC_STR-RPFLG sy-vline
WA_FC05RCLDOC_STR-IVTCUR sy-vline
WA_FC05RCLDOC_STR-IVLCUR sy-vline
WA_FC05RCLDOC_STR-IVGCUR sy-vline
WA_FC05RCLDOC_STR-RTCUR sy-vline
WA_FC05RCLDOC_STR-RLCUR sy-vline
WA_FC05RCLDOC_STR-RGCUR sy-vline
WA_FC05RCLDOC_STR-VTCUR sy-vline
WA_FC05RCLDOC_STR-VLCUR sy-vline
WA_FC05RCLDOC_STR-VGCUR sy-vline
WA_FC05RCLDOC_STR-AUTOM sy-vline
WA_FC05RCLDOC_STR-ERRFLG sy-vline
WA_FC05RCLDOC_STR-MSGID sy-vline
WA_FC05RCLDOC_STR-DOCNR sy-vline
WA_FC05RCLDOC_STR-DOCLN sy-vline
WA_FC05RCLDOC_STR-NEWDOC sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.