ABAP Select data from SAP table FMDY 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 FMDY 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 FMDY. 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 FMDY 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_FMDY TYPE STANDARD TABLE OF FMDY,
      WA_FMDY TYPE FMDY,
      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: <FMDY> TYPE FMDY.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM FMDY
*  INTO TABLE @DATA(IT_FMDY2).
*--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_FMDY INDEX 1 INTO DATA(WA_FMDY2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_FMDY ASSIGNING <FMDY>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<FMDY>-MANDT = 1.
<FMDY>-BUKRS = 1.
<FMDY>-BUTXT = 1.
<FMDY>-FIKRS = 1.
<FMDY>-FITXT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_FMDY-FICTR, sy-vline,
WA_FMDY-FICTR_TXT, sy-vline,
WA_FMDY-CTR_OBJNR, sy-vline,
WA_FMDY-FIPOS, sy-vline,
WA_FMDY-FICPOS, sy-vline,
WA_FMDY-POSIT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FMDY 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_FMDY 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_FMDY INTO WA_FMDY. *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 FMCIS, internal->external for field FIPOS CALL FUNCTION 'CONVERSION_EXIT_FMCIS_OUTPUT' EXPORTING input = WA_FMDY-FIPOS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMDY-FIPOS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit FMCIS, internal->external for field FICPOS CALL FUNCTION 'CONVERSION_EXIT_FMCIS_OUTPUT' EXPORTING input = WA_FMDY-FICPOS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMDY-FICPOS.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit FMCIS, internal->external for field TOPFIPOS CALL FUNCTION 'CONVERSION_EXIT_FMCIS_OUTPUT' EXPORTING input = WA_FMDY-TOPFIPOS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMDY-TOPFIPOS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit FMCIL, internal->external for field ZMB_FPOS CALL FUNCTION 'CONVERSION_EXIT_FMCIL_OUTPUT' EXPORTING input = WA_FMDY-ZMB_FPOS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMDY-ZMB_FPOS.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit FMCIL, internal->external for field Z_FPOS_A CALL FUNCTION 'CONVERSION_EXIT_FMCIL_OUTPUT' EXPORTING input = WA_FMDY-Z_FPOS_A IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMDY-Z_FPOS_A.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit PERI7, internal->external for field PERIO CALL FUNCTION 'CONVERSION_EXIT_PERI7_OUTPUT' EXPORTING input = WA_FMDY-PERIO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMDY-PERIO.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit FMCIL, internal->external for field FIPEX CALL FUNCTION 'CONVERSION_EXIT_FMCIL_OUTPUT' EXPORTING input = WA_FMDY-FIPEX IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMDY-FIPEX.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit FMCIL, internal->external for field TOPFIPEX CALL FUNCTION 'CONVERSION_EXIT_FMCIL_OUTPUT' EXPORTING input = WA_FMDY-TOPFIPEX IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMDY-TOPFIPEX.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field GRANT_NBR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_FMDY-GRANT_NBR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMDY-GRANT_NBR.
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_FMDY_STR,
MANDT TYPE STRING,
BUKRS TYPE STRING,
BUTXT TYPE STRING,
FIKRS TYPE STRING,
FITXT TYPE STRING,
FICTR TYPE STRING,
FICTR_TXT TYPE STRING,
CTR_OBJNR TYPE STRING,
FIPOS TYPE STRING,
FICPOS TYPE STRING,
POSIT TYPE STRING,
POS_BEZ TYPE STRING,
FMA_OBJNR TYPE STRING,
POSHIVERS TYPE STRING,
DATBIS TYPE STRING,
DATAB TYPE STRING,
KEYDATE TYPE STRING,
ERFNAME TYPE STRING,
ERFDAT TYPE STRING,
AENNAME TYPE STRING,
AENDAT TYPE STRING,
FIVOR TYPE STRING,
KNZAEPO TYPE STRING,
DEAKTIV TYPE STRING,
LOEVM TYPE STRING,
BEZEICH TYPE STRING,
BESCHR TYPE STRING,
FINCODE TYPE STRING,
FINCODE_TXT TYPE STRING,
FINUSE TYPE STRING,
SPONSOR TYPE STRING,
XFELD TYPE STRING,
TOPFICTR TYPE STRING,
TOPFIPOS TYPE STRING,
APPLC_FM TYPE STRING,
FMERROR TYPE STRING,
ZMB_FPOS TYPE STRING,
ZMB_YEAR TYPE STRING,
ZMB_PERI TYPE STRING,
ZMB_UNAME TYPE STRING,
ZMB_DATE TYPE STRING,
Z_FPOS_A TYPE STRING,
Z_YEAR_A TYPE STRING,
TESTMODE TYPE STRING,
PERDE TYPE STRING,
PERIO TYPE STRING,
KBLKBLTYP TYPE STRING,
CF_ACTVT TYPE STRING,
GJAHRB1 TYPE STRING,
GJAHRB2 TYPE STRING,
FIPEX TYPE STRING,
FWAER TYPE STRING,
P_FCTRUP TYPE STRING,
P_FCTRDN TYPE STRING,
P_FPOSUP TYPE STRING,
P_FPOSDN TYPE STRING,
BSTEXT TYPE STRING,
TTEXT TYPE STRING,
RTEXT TYPE STRING,
CF_VALUES TYPE STRING,
CF_RULES TYPE STRING,
FIPGR TYPE STRING,
CFRULE TYPE STRING,
CAR_BUDCOM TYPE STRING,
CAR_BUDPAY TYPE STRING,
CAR_CTRCOM TYPE STRING,
CAR_CTRPAY TYPE STRING,
RE_WAER1 TYPE STRING,
RE_WTJHR TYPE STRING,
BUDPAY TYPE STRING,
BUDCOM TYPE STRING,
CHGDOC TYPE STRING,
BLCDOC TYPE STRING,
XONLYERR TYPE STRING,
XONLYFI TYPE STRING,
XONLYMM TYPE STRING,
XONLYNOF TYPE STRING,
XONLYBEG TYPE STRING,
XONLYAVC TYPE STRING,
XONLYMRES TYPE STRING,
XACOVERW TYPE STRING,
XACPERM TYPE STRING,
XACIGNR TYPE STRING,
XACASSB TYPE STRING,
P_STAMM TYPE STRING,
GOPOS TYPE STRING,
ISPOS TYPE STRING,
MAXPOS TYPE STRING,
REFBN TYPE STRING,
RFBPV TYPE STRING,
RFBPB TYPE STRING,
PSOSU TYPE STRING,
GJAHR TYPE STRING,
VARNT TYPE STRING,
XCPDD TYPE STRING,
XSAKN TYPE STRING,
XPOSTOPEN TYPE STRING,
XPOSTCLEARED TYPE STRING,
XPOSTCC TYPE STRING,
XDELEOPEN TYPE STRING,
XDELECLEARED TYPE STRING,
XDELECC TYPE STRING,
FM_EXTPROT TYPE STRING,
FM_ERRONLY TYPE STRING,
BSP_CPY_BUDYEAR TYPE STRING,
P_C_CURR TYPE STRING,
P_C_DATE TYPE STRING,
TOPFIPEX TYPE STRING,
P_FCTHIE TYPE STRING,
P_FPOHIE TYPE STRING,
P_CF_AB TYPE STRING,
P_CF_ABS TYPE STRING,
P_CF_ABT TYPE STRING,
BSP_GRP_TO_SINGL TYPE STRING,
P_FMAADN TYPE STRING,
P_FMAHIE TYPE STRING,
P_FMAAUP TYPE STRING,
BSP_GRP_TO_GRP TYPE STRING,
XDELETETOTALS_CO TYPE STRING,
XDELETEITEMS_CO TYPE STRING,
RC_UNASSIGNED TYPE STRING,
RC_ASSIGNED TYPE STRING,
SUBVO_BEZ TYPE STRING,
SUBVO TYPE STRING,
FAREA TYPE STRING,
FAREA_TXT TYPE STRING,
VERSN TYPE STRING,
VERSN_TXT TYPE STRING,
CVARNT TYPE STRING,
CO_GRP TYPE STRING,
XDATA TYPE STRING,
PSOSUFW TYPE STRING,
RE_WAER2 TYPE STRING,
P_ENTRY_HEADER TYPE STRING,
ADD_TEXT TYPE STRING,
P_KUM_C TYPE STRING,
P_KUM_IT TYPE STRING,
P_KUM_TIME TYPE STRING,
P_XOPIT TYPE STRING,
GRANT_NBR TYPE STRING,
BUDGET_PD TYPE STRING,END OF T_EKKO_STR. DATA: WA_FMDY_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_FMDY_STR-MANDT sy-vline
WA_FMDY_STR-BUKRS sy-vline
WA_FMDY_STR-BUTXT sy-vline
WA_FMDY_STR-FIKRS sy-vline
WA_FMDY_STR-FITXT sy-vline
WA_FMDY_STR-FICTR sy-vline
WA_FMDY_STR-FICTR_TXT sy-vline
WA_FMDY_STR-CTR_OBJNR sy-vline
WA_FMDY_STR-FIPOS sy-vline
WA_FMDY_STR-FICPOS sy-vline
WA_FMDY_STR-POSIT sy-vline
WA_FMDY_STR-POS_BEZ sy-vline
WA_FMDY_STR-FMA_OBJNR sy-vline
WA_FMDY_STR-POSHIVERS sy-vline
WA_FMDY_STR-DATBIS sy-vline
WA_FMDY_STR-DATAB sy-vline
WA_FMDY_STR-KEYDATE sy-vline
WA_FMDY_STR-ERFNAME sy-vline
WA_FMDY_STR-ERFDAT sy-vline
WA_FMDY_STR-AENNAME sy-vline
WA_FMDY_STR-AENDAT sy-vline
WA_FMDY_STR-FIVOR sy-vline
WA_FMDY_STR-KNZAEPO sy-vline
WA_FMDY_STR-DEAKTIV sy-vline
WA_FMDY_STR-LOEVM sy-vline
WA_FMDY_STR-BEZEICH sy-vline
WA_FMDY_STR-BESCHR sy-vline
WA_FMDY_STR-FINCODE sy-vline
WA_FMDY_STR-FINCODE_TXT sy-vline
WA_FMDY_STR-FINUSE sy-vline
WA_FMDY_STR-SPONSOR sy-vline
WA_FMDY_STR-XFELD sy-vline
WA_FMDY_STR-TOPFICTR sy-vline
WA_FMDY_STR-TOPFIPOS sy-vline
WA_FMDY_STR-APPLC_FM sy-vline
WA_FMDY_STR-FMERROR sy-vline
WA_FMDY_STR-ZMB_FPOS sy-vline
WA_FMDY_STR-ZMB_YEAR sy-vline
WA_FMDY_STR-ZMB_PERI sy-vline
WA_FMDY_STR-ZMB_UNAME sy-vline
WA_FMDY_STR-ZMB_DATE sy-vline
WA_FMDY_STR-Z_FPOS_A sy-vline
WA_FMDY_STR-Z_YEAR_A sy-vline
WA_FMDY_STR-TESTMODE sy-vline
WA_FMDY_STR-PERDE sy-vline
WA_FMDY_STR-PERIO sy-vline
WA_FMDY_STR-KBLKBLTYP sy-vline
WA_FMDY_STR-CF_ACTVT sy-vline
WA_FMDY_STR-GJAHRB1 sy-vline
WA_FMDY_STR-GJAHRB2 sy-vline
WA_FMDY_STR-FIPEX sy-vline
WA_FMDY_STR-FWAER sy-vline
WA_FMDY_STR-P_FCTRUP sy-vline
WA_FMDY_STR-P_FCTRDN sy-vline
WA_FMDY_STR-P_FPOSUP sy-vline
WA_FMDY_STR-P_FPOSDN sy-vline
WA_FMDY_STR-BSTEXT sy-vline
WA_FMDY_STR-TTEXT sy-vline
WA_FMDY_STR-RTEXT sy-vline
WA_FMDY_STR-CF_VALUES sy-vline
WA_FMDY_STR-CF_RULES sy-vline
WA_FMDY_STR-FIPGR sy-vline
WA_FMDY_STR-CFRULE sy-vline
WA_FMDY_STR-CAR_BUDCOM sy-vline
WA_FMDY_STR-CAR_BUDPAY sy-vline
WA_FMDY_STR-CAR_CTRCOM sy-vline
WA_FMDY_STR-CAR_CTRPAY sy-vline
WA_FMDY_STR-RE_WAER1 sy-vline
WA_FMDY_STR-RE_WTJHR sy-vline
WA_FMDY_STR-BUDPAY sy-vline
WA_FMDY_STR-BUDCOM sy-vline
WA_FMDY_STR-CHGDOC sy-vline
WA_FMDY_STR-BLCDOC sy-vline
WA_FMDY_STR-XONLYERR sy-vline
WA_FMDY_STR-XONLYFI sy-vline
WA_FMDY_STR-XONLYMM sy-vline
WA_FMDY_STR-XONLYNOF sy-vline
WA_FMDY_STR-XONLYBEG sy-vline
WA_FMDY_STR-XONLYAVC sy-vline
WA_FMDY_STR-XONLYMRES sy-vline
WA_FMDY_STR-XACOVERW sy-vline
WA_FMDY_STR-XACPERM sy-vline
WA_FMDY_STR-XACIGNR sy-vline
WA_FMDY_STR-XACASSB sy-vline
WA_FMDY_STR-P_STAMM sy-vline
WA_FMDY_STR-GOPOS sy-vline
WA_FMDY_STR-ISPOS sy-vline
WA_FMDY_STR-MAXPOS sy-vline
WA_FMDY_STR-REFBN sy-vline
WA_FMDY_STR-RFBPV sy-vline
WA_FMDY_STR-RFBPB sy-vline
WA_FMDY_STR-PSOSU sy-vline
WA_FMDY_STR-GJAHR sy-vline
WA_FMDY_STR-VARNT sy-vline
WA_FMDY_STR-XCPDD sy-vline
WA_FMDY_STR-XSAKN sy-vline
WA_FMDY_STR-XPOSTOPEN sy-vline
WA_FMDY_STR-XPOSTCLEARED sy-vline
WA_FMDY_STR-XPOSTCC sy-vline
WA_FMDY_STR-XDELEOPEN sy-vline
WA_FMDY_STR-XDELECLEARED sy-vline
WA_FMDY_STR-XDELECC sy-vline
WA_FMDY_STR-FM_EXTPROT sy-vline
WA_FMDY_STR-FM_ERRONLY sy-vline
WA_FMDY_STR-BSP_CPY_BUDYEAR sy-vline
WA_FMDY_STR-P_C_CURR sy-vline
WA_FMDY_STR-P_C_DATE sy-vline
WA_FMDY_STR-TOPFIPEX sy-vline
WA_FMDY_STR-P_FCTHIE sy-vline
WA_FMDY_STR-P_FPOHIE sy-vline
WA_FMDY_STR-P_CF_AB sy-vline
WA_FMDY_STR-P_CF_ABS sy-vline
WA_FMDY_STR-P_CF_ABT sy-vline
WA_FMDY_STR-BSP_GRP_TO_SINGL sy-vline
WA_FMDY_STR-P_FMAADN sy-vline
WA_FMDY_STR-P_FMAHIE sy-vline
WA_FMDY_STR-P_FMAAUP sy-vline
WA_FMDY_STR-BSP_GRP_TO_GRP sy-vline
WA_FMDY_STR-XDELETETOTALS_CO sy-vline
WA_FMDY_STR-XDELETEITEMS_CO sy-vline
WA_FMDY_STR-RC_UNASSIGNED sy-vline
WA_FMDY_STR-RC_ASSIGNED sy-vline
WA_FMDY_STR-SUBVO_BEZ sy-vline
WA_FMDY_STR-SUBVO sy-vline
WA_FMDY_STR-FAREA sy-vline
WA_FMDY_STR-FAREA_TXT sy-vline
WA_FMDY_STR-VERSN sy-vline
WA_FMDY_STR-VERSN_TXT sy-vline
WA_FMDY_STR-CVARNT sy-vline
WA_FMDY_STR-CO_GRP sy-vline
WA_FMDY_STR-XDATA sy-vline
WA_FMDY_STR-PSOSUFW sy-vline
WA_FMDY_STR-RE_WAER2 sy-vline
WA_FMDY_STR-P_ENTRY_HEADER sy-vline
WA_FMDY_STR-ADD_TEXT sy-vline
WA_FMDY_STR-P_KUM_C sy-vline
WA_FMDY_STR-P_KUM_IT sy-vline
WA_FMDY_STR-P_KUM_TIME sy-vline
WA_FMDY_STR-P_XOPIT sy-vline
WA_FMDY_STR-GRANT_NBR sy-vline
WA_FMDY_STR-BUDGET_PD sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.