In previous SAP Netweaver Gateway tutorials part1, part2, part3 and part4 we retrieved the list of Sales Orders. In this tutorial we are going to retrieve a particular Sales Order. We need to implement the method Get Entity (Read) of an OData service.
1. Go back to SEGW and choose the service name ZSL_EPM_DEMO.
2. Expand the service. Service Implementation → GetEntity(Read) → Right Click → Go to ABAP Workbench.
3. Find the method SALESORDERSET_GET_ENTITY in DPC (Data Provider Class) ZCL_ZSL_EPM_DEMO_EXT and click on Redefine to redefine the method.
4. Let’s have a look at the signature of the method.
IT_KEY_TAB – stores the all key values and its value of the request. In our entity type the key is “SoId” .
ER_ENTITY – this is the exporting structure in which we need to pass the sales order details.
5. Write the below code in the method SALESORDERSET_GET_ENTITY
DATA: lwa_key_tab TYPE /iwbep/s_mgw_name_value_pair, lv_so_id TYPE snwd_so_id, lwa_snwd_so TYPE snwd_so. * To get the Sales Order# READ TABLE it_key_tab INTO lwa_key_tab WITH KEY name = 'SoId'. IF sy-subrc = 0. lv_so_id = lwa_key_tab-value. ENDIF. * Alpha Conversion CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = lv_so_id IMPORTING output = lv_so_id. * Get the data from the table SELECT SINGLE * FROM snwd_so INTO CORRESPONDING FIELDS OF er_entity WHERE so_id = lv_so_id.
6. Save and activate the method and then DPC extension class.
7. Go to SAP Netweaver Gateway Client /IWFND/GW_CLIENT to test the service. Enter the service name with sales order number like below and the Execute.
8. The result will look like below.
You have successfully implemented a Single Read in SAP Netweaver Gateway OData service.
Stay tuned to us for more SAP Netweaver Gateway tutorials.Please feel free to comment and let us know your feedback.