ABAP Select data from SAP table IMOVOBJMDATA 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 IMOVOBJMDATA 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 IMOVOBJMDATA. 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 IMOVOBJMDATA 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_IMOVOBJMDATA TYPE STANDARD TABLE OF IMOVOBJMDATA,
      WA_IMOVOBJMDATA TYPE IMOVOBJMDATA,
      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: <IMOVOBJMDATA> TYPE IMOVOBJMDATA.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM IMOVOBJMDATA
*  INTO TABLE @DATA(IT_IMOVOBJMDATA2).
*--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_IMOVOBJMDATA INDEX 1 INTO DATA(WA_IMOVOBJMDATA2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_IMOVOBJMDATA ASSIGNING <IMOVOBJMDATA>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<IMOVOBJMDATA>-MANDT = 1.
<IMOVOBJMDATA>-MOVABLEOBJECTUUID = 1.
<IMOVOBJMDATA>-MOVABLEOBJECTCATEGORY = 1.
<IMOVOBJMDATA>-MOVABLEOBJECTTYPE = 1.
<IMOVOBJMDATA>-MOVABLEOBJECTID = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_IMOVOBJMDATA-MOVABLEOBJECTDESCRIPTION, sy-vline,
WA_IMOVOBJMDATA-MOVABLEOBJECTISACCESSORY, sy-vline,
WA_IMOVOBJMDATA-MOVABLEOBJECTMODELNAME, sy-vline,
WA_IMOVOBJMDATA-MOVABLEOBJECTMANUFACTURERNAME, sy-vline,
WA_IMOVOBJMDATA-MOVABLEOBJECTMANUFACTUREDATE, sy-vline,
WA_IMOVOBJMDATA-MOVABLEOBJECTADDRESSID, sy-vline.
ENDLOOP. *Add any further fields from structure WA_IMOVOBJMDATA 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_IMOVOBJMDATA 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_IMOVOBJMDATA INTO WA_IMOVOBJMDATA. *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 MOVABLEOBJECTID CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_IMOVOBJMDATA-MOVABLEOBJECTID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IMOVOBJMDATA-MOVABLEOBJECTID.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit CUNIT, internal->external for field AIRCRAFTOBJMAXTAKEOFFWGTUNIT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_IMOVOBJMDATA-AIRCRAFTOBJMAXTAKEOFFWGTUNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IMOVOBJMDATA-AIRCRAFTOBJMAXTAKEOFFWGTUNIT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field VEHOBJMAXPERMISSIBLEWGTUNIT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_IMOVOBJMDATA-VEHOBJMAXPERMISSIBLEWGTUNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IMOVOBJMDATA-VEHOBJMAXPERMISSIBLEWGTUNIT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field INVENTORYOBJSTOCKUNITMEASURE CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_IMOVOBJMDATA-INVENTORYOBJSTOCKUNITMEASURE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IMOVOBJMDATA-INVENTORYOBJSTOCKUNITMEASURE.
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_IMOVOBJMDATA_STR,
MANDT TYPE STRING,
MOVABLEOBJECTUUID TYPE STRING,
MOVABLEOBJECTCATEGORY TYPE STRING,
MOVABLEOBJECTTYPE TYPE STRING,
MOVABLEOBJECTID TYPE STRING,
MOVABLEOBJECTDESCRIPTION TYPE STRING,
MOVABLEOBJECTISACCESSORY TYPE STRING,
MOVABLEOBJECTMODELNAME TYPE STRING,
MOVABLEOBJECTMANUFACTURERNAME TYPE STRING,
MOVABLEOBJECTMANUFACTUREDATE TYPE STRING,
MOVABLEOBJECTADDRESSID TYPE STRING,
MOVABLEOBJECTLOCATION TYPE STRING,
MOVABLEOBJECTLOCATIONCOMMENT TYPE STRING,
MOVABLEOBJECTBANKIDNTYPE TYPE STRING,
MOVABLEOBJECTBANKIDNDESC TYPE STRING,
MOVABLEOBJECTPURCHASEDATE TYPE STRING,
MOVABLEOBJECTCOMMERCIALUSAGE TYPE STRING,
MOVABLEOBJECTUSE TYPE STRING,
MOVABLEOBJECTMFGCNTRY TYPE STRING,
MOVABLEOBJECTCLASSIFICATION TYPE STRING,
MOVABLEOBJECTEXTREFNUMBER TYPE STRING,
DEVICEOBJECTCOUNTRYKEY TYPE STRING,
DEVICEOBJECTMACHINENUMBER TYPE STRING,
AIRCRAFTOBJECTDELIVERYDATE TYPE STRING,
AIRCRAFTOBJECTISREGISTERED TYPE STRING,
AIRCRAFTOBJECTREGNCNTRY TYPE STRING,
AIRCRAFTOBJECTREGISTRATIONMARK TYPE STRING,
AIRCRAFTOBJECTREGNCMNT TYPE STRING,
AIRCRAFTOBJECTENGNMFRNAME TYPE STRING,
AIRCRAFTOBJECTENGINEMODELNAME TYPE STRING,
AIRCRAFTOBJENGNPOOLINGTTL TYPE STRING,
AIRCRAFTOBJENGNPOOLINGCMNT TYPE STRING,
AIRCRAFTOBJECTNUMBEROFENGINES TYPE STRING,
AIRCRAFTOBJECTNAME TYPE STRING,
AIRCRAFTOBJECTMAXTAKEOFFWEIGHT TYPE STRING,
AIRCRAFTOBJMAXTAKEOFFWGTUNIT TYPE STRING,
AIRCRAFTOBJECTMFRSERIALNMBR TYPE STRING,
AIRCRAFTOBJECTRATINGCLASS TYPE STRING,
AIRCRAFTOBJECTRATINGDATE TYPE STRING,
VEHICLEOBJMAXPERMISSIBLEWEIGHT TYPE STRING,
VEHOBJMAXPERMISSIBLEWGTUNIT TYPE STRING,
VEHICLEOBJECTREGNLOCDESC TYPE STRING,
VEHICLEOBJECTREGISTRATIONMARK TYPE STRING,
VEHICLEOBJECTREGISTRATIONDOCID TYPE STRING,
VEHICLEOBJECTCHASSISNUMBER TYPE STRING,
INVENTORYOBJECTBILLNUMBER TYPE STRING,
INVENTORYOBJECTUNITAMOUNT TYPE STRING,
INVENTORYOBJECTUNITCURRENCY TYPE STRING,
INVENTORYOBJSTOCKEXCHANGETYPE TYPE STRING,
INVENTORYOBJSTOCKEXCHANGEPLACE TYPE STRING,
INVENTORYOBJPREVQUOTATIONDATE TYPE STRING,
INVENTORYOBJECTDETERMINEDAMT TYPE STRING,
INVENTORYOBJECTDETERMINEDCRCY TYPE STRING,
INVENTORYOBJECTSTOCKQUANTITY TYPE STRING,
INVENTORYOBJSTOCKUNITMEASURE TYPE STRING,
COLLATERALADMINORGUNIT TYPE STRING,
MOVABLEOBJECTCREATEDDATETIME TYPE STRING,
MOVABLEOBJLASTCHANGEDDATETIME TYPE STRING,END OF T_EKKO_STR. DATA: WA_IMOVOBJMDATA_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_IMOVOBJMDATA_STR-MANDT sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTUUID sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTCATEGORY sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTTYPE sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTID sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTDESCRIPTION sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTISACCESSORY sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTMODELNAME sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTMANUFACTURERNAME sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTMANUFACTUREDATE sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTADDRESSID sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTLOCATION sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTLOCATIONCOMMENT sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTBANKIDNTYPE sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTBANKIDNDESC sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTPURCHASEDATE sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTCOMMERCIALUSAGE sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTUSE sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTMFGCNTRY sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTCLASSIFICATION sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTEXTREFNUMBER sy-vline
WA_IMOVOBJMDATA_STR-DEVICEOBJECTCOUNTRYKEY sy-vline
WA_IMOVOBJMDATA_STR-DEVICEOBJECTMACHINENUMBER sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJECTDELIVERYDATE sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJECTISREGISTERED sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJECTREGNCNTRY sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJECTREGISTRATIONMARK sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJECTREGNCMNT sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJECTENGNMFRNAME sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJECTENGINEMODELNAME sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJENGNPOOLINGTTL sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJENGNPOOLINGCMNT sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJECTNUMBEROFENGINES sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJECTNAME sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJECTMAXTAKEOFFWEIGHT sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJMAXTAKEOFFWGTUNIT sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJECTMFRSERIALNMBR sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJECTRATINGCLASS sy-vline
WA_IMOVOBJMDATA_STR-AIRCRAFTOBJECTRATINGDATE sy-vline
WA_IMOVOBJMDATA_STR-VEHICLEOBJMAXPERMISSIBLEWEIGHT sy-vline
WA_IMOVOBJMDATA_STR-VEHOBJMAXPERMISSIBLEWGTUNIT sy-vline
WA_IMOVOBJMDATA_STR-VEHICLEOBJECTREGNLOCDESC sy-vline
WA_IMOVOBJMDATA_STR-VEHICLEOBJECTREGISTRATIONMARK sy-vline
WA_IMOVOBJMDATA_STR-VEHICLEOBJECTREGISTRATIONDOCID sy-vline
WA_IMOVOBJMDATA_STR-VEHICLEOBJECTCHASSISNUMBER sy-vline
WA_IMOVOBJMDATA_STR-INVENTORYOBJECTBILLNUMBER sy-vline
WA_IMOVOBJMDATA_STR-INVENTORYOBJECTUNITAMOUNT sy-vline
WA_IMOVOBJMDATA_STR-INVENTORYOBJECTUNITCURRENCY sy-vline
WA_IMOVOBJMDATA_STR-INVENTORYOBJSTOCKEXCHANGETYPE sy-vline
WA_IMOVOBJMDATA_STR-INVENTORYOBJSTOCKEXCHANGEPLACE sy-vline
WA_IMOVOBJMDATA_STR-INVENTORYOBJPREVQUOTATIONDATE sy-vline
WA_IMOVOBJMDATA_STR-INVENTORYOBJECTDETERMINEDAMT sy-vline
WA_IMOVOBJMDATA_STR-INVENTORYOBJECTDETERMINEDCRCY sy-vline
WA_IMOVOBJMDATA_STR-INVENTORYOBJECTSTOCKQUANTITY sy-vline
WA_IMOVOBJMDATA_STR-INVENTORYOBJSTOCKUNITMEASURE sy-vline
WA_IMOVOBJMDATA_STR-COLLATERALADMINORGUNIT sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJECTCREATEDDATETIME sy-vline
WA_IMOVOBJMDATA_STR-MOVABLEOBJLASTCHANGEDDATETIME sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.