This article demonstrates how to prepare an OData service Service in SAP and use it as a Data Source in Excel.
Procedure
In this example, we will be using create an OData Service based on an existing application as a reference for the OData Service.
...
Step 1
...
called IQX_IM_CER.
Step 1 | In the backend system, create a Structure in transaction SE11 based on the fields that you would like to display from the application’s Data Model. Image Added |
Step 2 | In the backend system, create a Project in transaction SEGW. Image Modified |
Step 2Create a Structure in transaction SE11 based on the 3 | Create an Entity Type by right-clicking on Entity Types > Create Image Added |
Step 4 | Define the ABAP Structure Type Name of the Entity Set using the structure created in Step 1. Image Added |
Step 5 | Import the fields from the structure by right-clicking on the name of the Entity Type > Import > Properties In the Wizard, select all the fields that you would like to display from the Data Modelto import and define the Key. Image Added |
Step 6 | Click the button Generate Runtime Objects to generate the Implementation Class. Image AddedImage AddedImage Added Take note the names of the Data Provider Extension Class, Method Name for the GetEntitySet (Query), and the Registered Service. |
Step 7 | Redefine the Method in transaction SE24 or SE80. Sample code: Code Block |
---|
METHOD requestset_get_entityset.
DATA:
lv_formname TYPE /iqx/form_name,
lv_where TYPE string,
lt_inst TYPE STANDARD TABLE OF /iqx/formhd_inst,
ls_inst LIKE LINE OF lt_inst,
lt_data TYPE /iqx/forms_instance_data_tt,
lt_related_data TYPE /iqx/forms_related_data_tt,
ls_data TYPE zcl_iqx_im_cer=>t_data,
lo_data TYPE REF TO data,
lr_data TYPE REF TO zcl_iqx_im_cer=>t_data,
lo_assist TYPE REF TO /iqx/cl_forms_assist.
FIELD-SYMBOLS <ls_data> TYPE any.
lv_formname = 'IQX_IM_CER'.
SELECT * FROM /iqx/formhd_inst INTO TABLE lt_inst WHERE zform_name = lv_formname AND deleted = space.
LOOP AT lt_inst INTO ls_inst.
CLEAR: lo_assist, ls_data.
CREATE OBJECT lo_assist.
CALL METHOD lo_assist->read_form_data
EXPORTING
iv_form_name = lv_formname
iv_instance = ls_inst-zinstance
IMPORTING
er_data = lo_data
EXCEPTIONS
no_authorization = 1
no_instance_data = 2
OTHERS = 3.
CHECK sy-subrc = 0.
ASSIGN lo_data->* TO <ls_data>.
MOVE-CORRESPONDING <ls_data> TO ls_data .
APPEND INITIAL LINE TO et_entityset ASSIGNING FIELD-SYMBOL(<ls_entity>).
<ls_entity>-req_id = ls_data-zdocumentnumber.
<ls_entity>-current_status = ls_data-currentstatus.
<ls_entity>-proj_name = ls_data-summary-projectname.
<ls_entity>-grand_total = ls_data-header-grandtotal.
<ls_entity>-company_code_currency = ls_data-summary-companycodecurrency.
<ls_entity>-inv_reason = ls_data-summary-investmentreason.
<ls_entity>-inv_reason_desc = ls_data-summary-investmentreasondescription.
<ls_entity>-asset_cat = ls_data-summary-assetcategory.
<ls_entity>-asset_cat_desc = ls_data-summary-assetcategorydescription.
<ls_entity>-fund_cat_desc = ls_data-summary-fundingcategorydescription.
<ls_entity>-total_budget_used = ls_data-summary-totalbudgetused.
<ls_entity>-expected_start = ls_data-summary-expectedstart.
<ls_entity>-expected_capitalization = ls_data-summary-expectedcapitalization.
<ls_entity>-fiscal_year = ls_data-summary-fiscalyear.
ENDLOOP.
SORT et_entityset BY expected_start DESCENDING.
ENDMETHOD. |
|