ABAP Select data from SAP table IFMUDECK 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 IFMUDECK 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 IFMUDECK. 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 IFMUDECK 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_IFMUDECK TYPE STANDARD TABLE OF IFMUDECK,
      WA_IFMUDECK TYPE IFMUDECK,
      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: <IFMUDECK> TYPE IFMUDECK.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM IFMUDECK
*  INTO TABLE @DATA(IT_IFMUDECK2).
*--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_IFMUDECK INDEX 1 INTO DATA(WA_IFMUDECK2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_IFMUDECK ASSIGNING <IFMUDECK>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<IFMUDECK>-ITABKEY = 1.
<IFMUDECK>-DOCTYP = 1.
<IFMUDECK>-BELNR = 1.
<IFMUDECK>-BLPOS = 1.
<IFMUDECK>-FCBELNR = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_IFMUDECK-FCBLPOS, sy-vline,
WA_IFMUDECK-FIBUKRS, sy-vline,
WA_IFMUDECK-FIGJAHR, sy-vline,
WA_IFMUDECK-FIBELNR, sy-vline,
WA_IFMUDECK-FIBUZEI, sy-vline,
WA_IFMUDECK-FIKRS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_IFMUDECK 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_IFMUDECK 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_IFMUDECK INTO WA_IFMUDECK. *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 BELNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_IFMUDECK-BELNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IFMUDECK-BELNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field COMBLNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_IFMUDECK-COMBLNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IFMUDECK-COMBLNR.
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_IFMUDECK_STR,
ITABKEY TYPE STRING,
DOCTYP TYPE STRING,
BELNR TYPE STRING,
BLPOS TYPE STRING,
FCBELNR TYPE STRING,
FCBLPOS TYPE STRING,
FIBUKRS TYPE STRING,
FIGJAHR TYPE STRING,
FIBELNR TYPE STRING,
FIBUZEI TYPE STRING,
FIKRS TYPE STRING,
INCFIPOS TYPE STRING,
INCFICTR TYPE STRING,
INCFONDS TYPE STRING,
PAYFIPOS TYPE STRING,
PAYPOSIT TYPE STRING,
PAYFICTR TYPE STRING,
PAYOBJNR TYPE STRING,
PAYFONDS TYPE STRING,
WRBTR TYPE STRING,
TWAER TYPE STRING,
ERHBTR TYPE STRING,
CSUMBGBTR TYPE STRING,
PSUMBGBTR TYPE STRING,
ERHPROZ TYPE STRING,
ERNPROZ TYPE STRING,
DBACTION TYPE STRING,
COMFIPOS TYPE STRING,
COMPOSIT TYPE STRING,
COMFICTR TYPE STRING,
COMOBJNR TYPE STRING,
COMFONDS TYPE STRING,
OLDFIPOS TYPE STRING,
OLDFICTR TYPE STRING,
OLDFONDS TYPE STRING,
COMBLNR TYPE STRING,
COMBLPO TYPE STRING,
COMINEX TYPE STRING,
COMBGBELNR TYPE STRING,
COMBGBUZEI TYPE STRING,
PAYINEX TYPE STRING,
PAYBGBELNR TYPE STRING,
PAYBGBUZEI TYPE STRING,
MANDT TYPE STRING,
BUKRS TYPE STRING,
BUDAT TYPE STRING,
BZDAT TYPE STRING,
INCFAREA TYPE STRING,
PAYFAREA TYPE STRING,
COMFAREA TYPE STRING,
OLDFAREA TYPE STRING,END OF T_EKKO_STR. DATA: WA_IFMUDECK_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_IFMUDECK_STR-ITABKEY sy-vline
WA_IFMUDECK_STR-DOCTYP sy-vline
WA_IFMUDECK_STR-BELNR sy-vline
WA_IFMUDECK_STR-BLPOS sy-vline
WA_IFMUDECK_STR-FCBELNR sy-vline
WA_IFMUDECK_STR-FCBLPOS sy-vline
WA_IFMUDECK_STR-FIBUKRS sy-vline
WA_IFMUDECK_STR-FIGJAHR sy-vline
WA_IFMUDECK_STR-FIBELNR sy-vline
WA_IFMUDECK_STR-FIBUZEI sy-vline
WA_IFMUDECK_STR-FIKRS sy-vline
WA_IFMUDECK_STR-INCFIPOS sy-vline
WA_IFMUDECK_STR-INCFICTR sy-vline
WA_IFMUDECK_STR-INCFONDS sy-vline
WA_IFMUDECK_STR-PAYFIPOS sy-vline
WA_IFMUDECK_STR-PAYPOSIT sy-vline
WA_IFMUDECK_STR-PAYFICTR sy-vline
WA_IFMUDECK_STR-PAYOBJNR sy-vline
WA_IFMUDECK_STR-PAYFONDS sy-vline
WA_IFMUDECK_STR-WRBTR sy-vline
WA_IFMUDECK_STR-TWAER sy-vline
WA_IFMUDECK_STR-ERHBTR sy-vline
WA_IFMUDECK_STR-CSUMBGBTR sy-vline
WA_IFMUDECK_STR-PSUMBGBTR sy-vline
WA_IFMUDECK_STR-ERHPROZ sy-vline
WA_IFMUDECK_STR-ERNPROZ sy-vline
WA_IFMUDECK_STR-DBACTION sy-vline
WA_IFMUDECK_STR-COMFIPOS sy-vline
WA_IFMUDECK_STR-COMPOSIT sy-vline
WA_IFMUDECK_STR-COMFICTR sy-vline
WA_IFMUDECK_STR-COMOBJNR sy-vline
WA_IFMUDECK_STR-COMFONDS sy-vline
WA_IFMUDECK_STR-OLDFIPOS sy-vline
WA_IFMUDECK_STR-OLDFICTR sy-vline
WA_IFMUDECK_STR-OLDFONDS sy-vline
WA_IFMUDECK_STR-COMBLNR sy-vline
WA_IFMUDECK_STR-COMBLPO sy-vline
WA_IFMUDECK_STR-COMINEX sy-vline
WA_IFMUDECK_STR-COMBGBELNR sy-vline
WA_IFMUDECK_STR-COMBGBUZEI sy-vline
WA_IFMUDECK_STR-PAYINEX sy-vline
WA_IFMUDECK_STR-PAYBGBELNR sy-vline
WA_IFMUDECK_STR-PAYBGBUZEI sy-vline
WA_IFMUDECK_STR-MANDT sy-vline
WA_IFMUDECK_STR-BUKRS sy-vline
WA_IFMUDECK_STR-BUDAT sy-vline
WA_IFMUDECK_STR-BZDAT sy-vline
WA_IFMUDECK_STR-INCFAREA sy-vline
WA_IFMUDECK_STR-PAYFAREA sy-vline
WA_IFMUDECK_STR-COMFAREA sy-vline
WA_IFMUDECK_STR-OLDFAREA sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.