ABAP Select data from SAP table FMABP_DATA 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 FMABP_DATA 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 FMABP_DATA. 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 FMABP_DATA 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_FMABP_DATA TYPE STANDARD TABLE OF FMABP_DATA, WA_FMABP_DATA TYPE FMABP_DATA, 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: <FMABP_DATA> TYPE FMABP_DATA. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_FMABP_DATA. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM FMABP_DATA INTO TABLE IT_FMABP_DATA. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM FMABP_DATA * INTO TABLE @DATA(IT_FMABP_DATA2). *--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_FMABP_DATA INDEX 1 INTO DATA(WA_FMABP_DATA2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_FMABP_DATA ASSIGNING <FMABP_DATA>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<FMABP_DATA>-BUDGET_RELEVANT = 1.
<FMABP_DATA>-SENDER_DATA = 1.
<FMABP_DATA>-RLDNR = 1.
<FMABP_DATA>-WRTTP = 1.
<FMABP_DATA>-VRGNG = 1.
ENDLOOP. LOOP AT IT_FMABP_DATA INTO WA_FMABP_DATA. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_FMABP_DATA-VBUND_FLG, sy-vline,
WA_FMABP_DATA-PROCESS, sy-vline,
WA_FMABP_DATA-VERSION, sy-vline,
WA_FMABP_DATA-DOCTYPE, sy-vline,
WA_FMABP_DATA-FIKRS, sy-vline,
WA_FMABP_DATA-RBUDTYPE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FMABP_DATA 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_FMABP_DATA 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_FMABP_DATA INTO WA_FMABP_DATA. *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 RLDNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FMABP_DATA-RLDNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMABP_DATA-RLDNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field VERSION CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FMABP_DATA-VERSION IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMABP_DATA-VERSION.
WRITE:/ 'New Value:', ld_input.
*Conversion exit FMCIL, internal->external for field RCMMTITEM CALL FUNCTION 'CONVERSION_EXIT_FMCIL_OUTPUT' EXPORTING input = WA_FMABP_DATA-RCMMTITEM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMABP_DATA-RCMMTITEM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field RGRANT_NBR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FMABP_DATA-RGRANT_NBR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMABP_DATA-RGRANT_NBR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit FMCIL, internal->external for field SCMMTITEM CALL FUNCTION 'CONVERSION_EXIT_FMCIL_OUTPUT' EXPORTING input = WA_FMABP_DATA-SCMMTITEM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMABP_DATA-SCMMTITEM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field SGRANT_NBR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FMABP_DATA-SGRANT_NBR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMABP_DATA-SGRANT_NBR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit GJAHR, internal->external for field GJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_FMABP_DATA-GJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMABP_DATA-GJAHR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit GJAHR, internal->external for field CEFFYEAR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_FMABP_DATA-CEFFYEAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMABP_DATA-CEFFYEAR.
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_FMABP_DATA_STR,
BUDGET_RELEVANT TYPE STRING,
SENDER_DATA TYPE STRING,
RLDNR TYPE STRING,
WRTTP TYPE STRING,
VRGNG TYPE STRING,
VBUND_FLG TYPE STRING,
PROCESS TYPE STRING,
VERSION TYPE STRING,
DOCTYPE TYPE STRING,
FIKRS TYPE STRING,
RBUDTYPE TYPE STRING,
RBUDVALTYPE TYPE STRING,
RFUND TYPE STRING,
RBUDGET_PD TYPE STRING,
RFUNDSCTR TYPE STRING,
RCMMTITEM TYPE STRING,
RFUNCAREA TYPE STRING,
RMEASURE TYPE STRING,
RGRANT_NBR TYPE STRING,
RUSERDIM TYPE STRING,
SBUDTYPE TYPE STRING,
SBUDVALTYPE TYPE STRING,
SFUND TYPE STRING,
SBUDGET_PD TYPE STRING,
SFUNDSCTR TYPE STRING,
SCMMTITEM TYPE STRING,
SFUNCAREA TYPE STRING,
SMEASURE TYPE STRING,
SGRANT_NBR TYPE STRING,
SUSERDIM TYPE STRING,
GJAHR TYPE STRING,
PERIO TYPE STRING,
BUDAT TYPE STRING,
BLDAT TYPE STRING,
TRBTR TYPE STRING,
FKBTR TYPE STRING,
TWAER TYPE STRING,
TRANR TYPE STRING,
CFLEV TYPE STRING,
NEG_BUDGET_AMOUNT TYPE STRING,
CEFFYEAR TYPE STRING,
CONTROLRECOVERYAMOUNT TYPE STRING,END OF T_EKKO_STR. DATA: WA_FMABP_DATA_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_FMABP_DATA_STR-BUDGET_RELEVANT sy-vline
WA_FMABP_DATA_STR-SENDER_DATA sy-vline
WA_FMABP_DATA_STR-RLDNR sy-vline
WA_FMABP_DATA_STR-WRTTP sy-vline
WA_FMABP_DATA_STR-VRGNG sy-vline
WA_FMABP_DATA_STR-VBUND_FLG sy-vline
WA_FMABP_DATA_STR-PROCESS sy-vline
WA_FMABP_DATA_STR-VERSION sy-vline
WA_FMABP_DATA_STR-DOCTYPE sy-vline
WA_FMABP_DATA_STR-FIKRS sy-vline
WA_FMABP_DATA_STR-RBUDTYPE sy-vline
WA_FMABP_DATA_STR-RBUDVALTYPE sy-vline
WA_FMABP_DATA_STR-RFUND sy-vline
WA_FMABP_DATA_STR-RBUDGET_PD sy-vline
WA_FMABP_DATA_STR-RFUNDSCTR sy-vline
WA_FMABP_DATA_STR-RCMMTITEM sy-vline
WA_FMABP_DATA_STR-RFUNCAREA sy-vline
WA_FMABP_DATA_STR-RMEASURE sy-vline
WA_FMABP_DATA_STR-RGRANT_NBR sy-vline
WA_FMABP_DATA_STR-RUSERDIM sy-vline
WA_FMABP_DATA_STR-SBUDTYPE sy-vline
WA_FMABP_DATA_STR-SBUDVALTYPE sy-vline
WA_FMABP_DATA_STR-SFUND sy-vline
WA_FMABP_DATA_STR-SBUDGET_PD sy-vline
WA_FMABP_DATA_STR-SFUNDSCTR sy-vline
WA_FMABP_DATA_STR-SCMMTITEM sy-vline
WA_FMABP_DATA_STR-SFUNCAREA sy-vline
WA_FMABP_DATA_STR-SMEASURE sy-vline
WA_FMABP_DATA_STR-SGRANT_NBR sy-vline
WA_FMABP_DATA_STR-SUSERDIM sy-vline
WA_FMABP_DATA_STR-GJAHR sy-vline
WA_FMABP_DATA_STR-PERIO sy-vline
WA_FMABP_DATA_STR-BUDAT sy-vline
WA_FMABP_DATA_STR-BLDAT sy-vline
WA_FMABP_DATA_STR-TRBTR sy-vline
WA_FMABP_DATA_STR-FKBTR sy-vline
WA_FMABP_DATA_STR-TWAER sy-vline
WA_FMABP_DATA_STR-TRANR sy-vline
WA_FMABP_DATA_STR-CFLEV sy-vline
WA_FMABP_DATA_STR-NEG_BUDGET_AMOUNT sy-vline
WA_FMABP_DATA_STR-CEFFYEAR sy-vline
WA_FMABP_DATA_STR-CONTROLRECOVERYAMOUNT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.