ABAP Select data from SAP table FMITPODD 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 FMITPODD 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 FMITPODD. 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 FMITPODD 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_FMITPODD TYPE STANDARD TABLE OF FMITPODD,
      WA_FMITPODD TYPE FMITPODD,
      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: <FMITPODD> TYPE FMITPODD.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM FMITPODD
*  INTO TABLE @DATA(IT_FMITPODD2).
*--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_FMITPODD INDEX 1 INTO DATA(WA_FMITPODD2).


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

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_FMITPODD-GJAHR, sy-vline,
WA_FMITPODD-GJAHR_MO, sy-vline,
WA_FMITPODD-BELNR, sy-vline,
WA_FMITPODD-BELNR_MO, sy-vline,
WA_FMITPODD-BUZEI, sy-vline,
WA_FMITPODD-WAERS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_FMITPODD 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_FMITPODD 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_FMITPODD INTO WA_FMITPODD. *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 GJAHR, internal->external for field GJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_FMITPODD-GJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMITPODD-GJAHR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

*Conversion exit GJAHR, internal->external for field GJAHR2 CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_FMITPODD-GJAHR2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_FMITPODD-GJAHR2.
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_FMITPODD_STR,
MANDT TYPE STRING,
BUKRS TYPE STRING,
FIKRS TYPE STRING,
BUKRS_MO TYPE STRING,
HWAER TYPE STRING,
GJAHR TYPE STRING,
GJAHR_MO TYPE STRING,
BELNR TYPE STRING,
BELNR_MO TYPE STRING,
BUZEI TYPE STRING,
WAERS TYPE STRING,
KOART TYPE STRING,
BLDAT TYPE STRING,
BUDAT TYPE STRING,
ZFBDT1 TYPE STRING,
ZFBDT2 TYPE STRING,
NEBTR TYPE STRING,
WRBTR TYPE STRING,
WRB_E TYPE STRING,
BLART1 TYPE STRING,
BLART2 TYPE STRING,
BLART_MO TYPE STRING,
WRBTR_TC TYPE STRING,
LMARK_TC TYPE STRING,
KUNNR1 TYPE STRING,
KUNNR2 TYPE STRING,
KUNNR2_TC TYPE STRING,
LIFNR1 TYPE STRING,
LIFNR2 TYPE STRING,
LIFNR2_TC TYPE STRING,
MWSKZ1 TYPE STRING,
MWSKZ2 TYPE STRING,
MWSKZ2_TC TYPE STRING,
PSOEA1 TYPE STRING,
PSOEA2 TYPE STRING,
PSOEA2_TC TYPE STRING,
FIPEX1 TYPE STRING,
FIPEX2 TYPE STRING,
FIPEX2_TC TYPE STRING,
FIPOS2_TC TYPE STRING,
FISTL1 TYPE STRING,
FISTL2 TYPE STRING,
FISTL2_TC TYPE STRING,
SGTXT1 TYPE STRING,
SGTXT2 TYPE STRING,
SGTXT2_TC TYPE STRING,
ZLSCH TYPE STRING,
NAME1 TYPE STRING,
STRAS TYPE STRING,
ORT01 TYPE STRING,
PSTLZ TYPE STRING,
BANKL TYPE STRING,
BANKN TYPE STRING,
BELNR_SOLL TYPE STRING,
BUZEI_SOLL TYPE STRING,
GJAHR_SOLL TYPE STRING,
BLART_SOLL TYPE STRING,
ZFBDT_SOLL TYPE STRING,
WRBTR_SOLL TYPE STRING,
WAERS_SOLL TYPE STRING,
BUDAT_SOLL TYPE STRING,
BELNR_RUEL TYPE STRING,
BUZEI_RUEL TYPE STRING,
GJAHR_RUEL TYPE STRING,
BLART_RUEL TYPE STRING,
ZFBDT_RUEL TYPE STRING,
WRBTR_RUEL TYPE STRING,
WAERS_RUEL TYPE STRING,
BUDAT_RUEL TYPE STRING,
BLART1T TYPE STRING,
BLART2T TYPE STRING,
BLART_RUELT TYPE STRING,
BLART_SOLLT TYPE STRING,
ZLSCHT TYPE STRING,
KUNNR1T TYPE STRING,
KUNNR2T TYPE STRING,
LIFNR1T TYPE STRING,
LIFNR2T TYPE STRING,
PSOEA1T TYPE STRING,
PSOEA2T TYPE STRING,
FIPEX1T TYPE STRING,
FIPEX2T TYPE STRING,
FISTL1T TYPE STRING,
FISTL2T TYPE STRING,
BKTXT_MO TYPE STRING,
LMARK_MO TYPE STRING,
BLARTT_MO TYPE STRING,
BUDAT_MO TYPE STRING,
FM_UMART TYPE STRING,
FM_UMART_MO TYPE STRING,
KUNNR_BEZ TYPE STRING,
BUKRS_2 TYPE STRING,
FIKRS2 TYPE STRING,
BVORG_MO TYPE STRING,
KBLNR TYPE STRING,
KBLPOS TYPE STRING,
KBLNR2 TYPE STRING,
KBLPOS2 TYPE STRING,
KBLNR_TC TYPE STRING,
KBLPOS_TC TYPE STRING,
BVTYP TYPE STRING,
EMPFB TYPE STRING,
BLDAT2 TYPE STRING,
BUDAT2 TYPE STRING,
GJAHR2 TYPE STRING,END OF T_EKKO_STR. DATA: WA_FMITPODD_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_FMITPODD_STR-MANDT sy-vline
WA_FMITPODD_STR-BUKRS sy-vline
WA_FMITPODD_STR-FIKRS sy-vline
WA_FMITPODD_STR-BUKRS_MO sy-vline
WA_FMITPODD_STR-HWAER sy-vline
WA_FMITPODD_STR-GJAHR sy-vline
WA_FMITPODD_STR-GJAHR_MO sy-vline
WA_FMITPODD_STR-BELNR sy-vline
WA_FMITPODD_STR-BELNR_MO sy-vline
WA_FMITPODD_STR-BUZEI sy-vline
WA_FMITPODD_STR-WAERS sy-vline
WA_FMITPODD_STR-KOART sy-vline
WA_FMITPODD_STR-BLDAT sy-vline
WA_FMITPODD_STR-BUDAT sy-vline
WA_FMITPODD_STR-ZFBDT1 sy-vline
WA_FMITPODD_STR-ZFBDT2 sy-vline
WA_FMITPODD_STR-NEBTR sy-vline
WA_FMITPODD_STR-WRBTR sy-vline
WA_FMITPODD_STR-WRB_E sy-vline
WA_FMITPODD_STR-BLART1 sy-vline
WA_FMITPODD_STR-BLART2 sy-vline
WA_FMITPODD_STR-BLART_MO sy-vline
WA_FMITPODD_STR-WRBTR_TC sy-vline
WA_FMITPODD_STR-LMARK_TC sy-vline
WA_FMITPODD_STR-KUNNR1 sy-vline
WA_FMITPODD_STR-KUNNR2 sy-vline
WA_FMITPODD_STR-KUNNR2_TC sy-vline
WA_FMITPODD_STR-LIFNR1 sy-vline
WA_FMITPODD_STR-LIFNR2 sy-vline
WA_FMITPODD_STR-LIFNR2_TC sy-vline
WA_FMITPODD_STR-MWSKZ1 sy-vline
WA_FMITPODD_STR-MWSKZ2 sy-vline
WA_FMITPODD_STR-MWSKZ2_TC sy-vline
WA_FMITPODD_STR-PSOEA1 sy-vline
WA_FMITPODD_STR-PSOEA2 sy-vline
WA_FMITPODD_STR-PSOEA2_TC sy-vline
WA_FMITPODD_STR-FIPEX1 sy-vline
WA_FMITPODD_STR-FIPEX2 sy-vline
WA_FMITPODD_STR-FIPEX2_TC sy-vline
WA_FMITPODD_STR-FIPOS2_TC sy-vline
WA_FMITPODD_STR-FISTL1 sy-vline
WA_FMITPODD_STR-FISTL2 sy-vline
WA_FMITPODD_STR-FISTL2_TC sy-vline
WA_FMITPODD_STR-SGTXT1 sy-vline
WA_FMITPODD_STR-SGTXT2 sy-vline
WA_FMITPODD_STR-SGTXT2_TC sy-vline
WA_FMITPODD_STR-ZLSCH sy-vline
WA_FMITPODD_STR-NAME1 sy-vline
WA_FMITPODD_STR-STRAS sy-vline
WA_FMITPODD_STR-ORT01 sy-vline
WA_FMITPODD_STR-PSTLZ sy-vline
WA_FMITPODD_STR-BANKL sy-vline
WA_FMITPODD_STR-BANKN sy-vline
WA_FMITPODD_STR-BELNR_SOLL sy-vline
WA_FMITPODD_STR-BUZEI_SOLL sy-vline
WA_FMITPODD_STR-GJAHR_SOLL sy-vline
WA_FMITPODD_STR-BLART_SOLL sy-vline
WA_FMITPODD_STR-ZFBDT_SOLL sy-vline
WA_FMITPODD_STR-WRBTR_SOLL sy-vline
WA_FMITPODD_STR-WAERS_SOLL sy-vline
WA_FMITPODD_STR-BUDAT_SOLL sy-vline
WA_FMITPODD_STR-BELNR_RUEL sy-vline
WA_FMITPODD_STR-BUZEI_RUEL sy-vline
WA_FMITPODD_STR-GJAHR_RUEL sy-vline
WA_FMITPODD_STR-BLART_RUEL sy-vline
WA_FMITPODD_STR-ZFBDT_RUEL sy-vline
WA_FMITPODD_STR-WRBTR_RUEL sy-vline
WA_FMITPODD_STR-WAERS_RUEL sy-vline
WA_FMITPODD_STR-BUDAT_RUEL sy-vline
WA_FMITPODD_STR-BLART1T sy-vline
WA_FMITPODD_STR-BLART2T sy-vline
WA_FMITPODD_STR-BLART_RUELT sy-vline
WA_FMITPODD_STR-BLART_SOLLT sy-vline
WA_FMITPODD_STR-ZLSCHT sy-vline
WA_FMITPODD_STR-KUNNR1T sy-vline
WA_FMITPODD_STR-KUNNR2T sy-vline
WA_FMITPODD_STR-LIFNR1T sy-vline
WA_FMITPODD_STR-LIFNR2T sy-vline
WA_FMITPODD_STR-PSOEA1T sy-vline
WA_FMITPODD_STR-PSOEA2T sy-vline
WA_FMITPODD_STR-FIPEX1T sy-vline
WA_FMITPODD_STR-FIPEX2T sy-vline
WA_FMITPODD_STR-FISTL1T sy-vline
WA_FMITPODD_STR-FISTL2T sy-vline
WA_FMITPODD_STR-BKTXT_MO sy-vline
WA_FMITPODD_STR-LMARK_MO sy-vline
WA_FMITPODD_STR-BLARTT_MO sy-vline
WA_FMITPODD_STR-BUDAT_MO sy-vline
WA_FMITPODD_STR-FM_UMART sy-vline
WA_FMITPODD_STR-FM_UMART_MO sy-vline
WA_FMITPODD_STR-KUNNR_BEZ sy-vline
WA_FMITPODD_STR-BUKRS_2 sy-vline
WA_FMITPODD_STR-FIKRS2 sy-vline
WA_FMITPODD_STR-BVORG_MO sy-vline
WA_FMITPODD_STR-KBLNR sy-vline
WA_FMITPODD_STR-KBLPOS sy-vline
WA_FMITPODD_STR-KBLNR2 sy-vline
WA_FMITPODD_STR-KBLPOS2 sy-vline
WA_FMITPODD_STR-KBLNR_TC sy-vline
WA_FMITPODD_STR-KBLPOS_TC sy-vline
WA_FMITPODD_STR-BVTYP sy-vline
WA_FMITPODD_STR-EMPFB sy-vline
WA_FMITPODD_STR-BLDAT2 sy-vline
WA_FMITPODD_STR-BUDAT2 sy-vline
WA_FMITPODD_STR-GJAHR2 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.