Netweaver Gateway Development

how to implement $expand query(GET_EXPANDED_ENTITY method) in SAP?

                     The $expand query option is very powerful and allows you to provide multiple entities and/or entity sets in one single service call, instead of performing several calls subsequently.
                       In our previous tutorial we implemented GET_EXPANDED_ENTITYSET method.In this tutorial we will implement GET_EXPANDED_ENTITY method.ie $expand for single entry.
                       For $expand query to work an association or navigation property should be created.To know more about association refer Implement association.
                      In this tutorial we will create an association from our flight entity set to flight schedule entityset.Then we will implement get_expanded_entity method.

Pre-requisites


  1. GET_ENTITYSET of flightset implemented already.(GET_ENTITYSET implementation)
  2. GET_ENTITY of flightset implemented already.(Refer OData Service Implementation for GET_ENTITY)
  3. FlightScheduleSet created by importing ddic structure SPFLI table(Please refer  my previous post step-by-step-gateway-odata-service)
Syntax



Steps

  1. First step is creating association.For this Open the service and click on edit button.Expand Data Model.Right click on Associations and click on create button.Association wizard will be opened.
  2. In the association wizard you have to give Association Name,Principal entity type name,Dependant entity type name,cardinality and Navigation Property name.Navigation Property name is used when accessing associated entity data in our OData url.(Create related navigation property check box will be checked by default).After entering values to these fields click next.
  3. You will land on step 2 of association wizard.Select dependent property and click next.Dependent property will be the key relating two entities.
  4. In step 3 select Principal entityset and dependant entityset and click finish.
  5. Finally our odata service should look like this.See navigation propery is added to flight entity set.Also an association and association set is created.Press generate button.
  6. Now open our ****_DPC_EXT class and go to edit mode.
     
  7. From inherited methods node find /IWBEP/IF_MGW_APPL_SRV_RUNTIME~GET_EXPANDED_ENTITY and right click and press redefine.
  8. Its time for some coding.Paste below code inside GET_EXPANDED_ENTITY method.


  9. Now we can test  in gateway client( /IWFND/GW_CLIENT).Our service url look like this.http://<host>:<port>/sap/opu/odata/SAP/ZTEST_ODATA_SRV_01/FlightSet('AC')?$expand=ToFlightSchedules.Press execute button.ToFlightSchedules is the navigation property.
If you enjoyed this post, I’d be grateful if you’d help it spread by sharing.Thank you! See you soon

0 comments :

Post a Comment

Powered by Blogger.