• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Notes
 

Notes

on

  • 478 views

 

Statistics

Views

Total Views
478
Views on SlideShare
478
Embed Views
0

Actions

Likes
1
Downloads
25
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Notes Notes Document Transcript

    • NetWeaver Gateway Development Paradigm 1. Building Online Mobile Applications with theSAP Mobile PlatformAndrew Whitaker SAP CSA 2. DisclaimerThis presentation outlines our general product direction and should not be relied on in making apurchase decision. This presentation is not subject to your license agreement or any other agreementwith SAP. SAP has no obligation to pursue any course of business outlined in this presentation or todevelop or release any functionality mentioned in this presentation. This presentation and SAPsstrategy and possible future developments are subject to change and may be changed by SAP at anytime for any reason without notice. This document is provided without a warranty of any kind, eitherexpress or implied, including but not limited to, the implied warranties of merchantability, fitness for aparticular purpose, or non-infringement. SAP assumes no responsibility for errors or omissions in thisdocument, except if such damages were caused by SAP intentionally or grossly negligent.©  2012 SAP AG. All rights reserved. 2   Introduction   Configure - On-Boarding, Security, User EnablementExerciseŸ   Code - Client LibrariesŸ   Model - Modeling OData ServicesŸ 3. AgendaSAP Mobility PlatformDevelopment Paradigm  & Demo©  2012 SAP AG. All rights reserved. 3 4. Development paradigm 5. Online Mobile Applications Development Paradigm Online Mobile Applications Task Flow Native application Modeling of oData Development Application Services User Onboarding using oData Enablement (identification) SDK‟s Model Code Configuration©  2012 SAP AG. All rights reserved. 5 6. SAP mobile platform SAP, Partner, and Custom Apps Native Apps Hybrid HTML5 Apps SMS Apps CODE Container Apps Development using oData SDK‟s SAP App Dev Tools Third Party App Dev Tools SAP Mobile Platform SAP Afaria App Catalog CONFIGURE Application Presentation Frameworks Application Onboarding Management Application Services Foundation Services Device Data Sync & Caching Authentication App Lifecycle Managment oData Proxy Notification … Management MODEL oData Services SAP NetWeaver Gateway SAP Business Suite Sybase 365 Databases Third Party Apps This presentation and SAP„s strategy and possible future developments are subject to change and may be changed by SAP at any time for any reason without notice. This document is provided without a warranty of any©  2012 SAP AG. All rights reserved. kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or noninfringement 6 7. MODEL – OData Services Modeling of oData Services (identification) Native application Development using oData SDK‟s Application Enablement User On-boarding We will use an existing service.©  2012 SAP AG. All rights reserved. 7
    • 8. CODE – Native Application Development Modeling of oData Services (identification) Native application Development using oData SDK‟s Application Enablement User OnboardingSDM Connectivity   Connectivity to OData Provider SDM Cache    Authentication   Caching OData Service Document, Meta Data andŸ Ÿ   Sync. Data Values  & Async. handling   Support for SAPPassport   In-Memory filtering of entriesŸ Ÿ SDM Persistency   Secure Data Persistency on the deviceSDM Parser Ÿ   Parsing of OData Service Documents, Meta Data and SDM Supportability    Logging Ÿ & Tracing Data Values (Atom entries and feeds)   Create, Update and Delete OData entries  Memory FootprintŸ Ÿ   Subscription to OData objects   Performance MeasurementsŸ Ÿ   Integration with SAP Solution Manager Ÿ MAKit   Graphical Controls for Analytic Uis©  2012 SAP AG. All rights reserved. Ÿ 8 9. CODE – Native Application Development Modeling of oData Services (identification) Native application Development using oData SDK‟s Application Enablement User Onboarding©  2012 SAP AG. All rights reserved. 9 10. CONFIGURE – SUP Administration Modeling of oData Services (identification) Native application Development using oData SDK‟s Application Enablement   Administrator registers an User On-boarding  application and service document   Automated on-boarding can be URLŸ configured based on –  X 509 certificates, –  SSO2 cookie – Basic authentication a gainst   Manual user on -boarding through backend  Device/User Registration   User enables the device©  2012 SAP AG. All rights reserved. explicit white listing in SUPŸ 10 11. Exercise & Demo 12. Exercise – Overview Device/User Service Document Metadata Document Data Calls Registration©  2012 SAP AG. All rights reserved. 12 13. Exercise – Overview Push Notifications Click Subscribe Create Subscription Receive Notification©  2012 SAP AG. All rights reserved. 13 14. Exercise Overview Modeling of oData Services (identification) Native application Development using oData SDK‟s Application Enablement User On-boarding SAP NetWeaver Gateway SUP Server Authentica Notificatio Proxy tion ns SFLIGHT OData OData Application Lifecycle Management Android Sybase Control Center http://server:port/../../RMTSAMPLEFLIGHT/ http://server:port/../../RMTSAMPLEFLIGHT/$metadata http://server:port/../../RMTSAMPLEFLIGHT/FlightCollection http://server:port/../../RMTSAMPLEFLIGHT/SubscriptionCollection©  2012 SAP AG. All rights reserved. 14 15. Exercise – Design TimePART Description Android SUP Gateway A Identify a Gateway Service B SUP Configuration (Application onboarding) C Develop an Android Application (User onboarding) D Enabling Push Notifications (Optional) *Query resource currently not supported©  2012 SAP AG. All rights reserved. 15 16. Further Information on MobileSAP Public Webhttp://wiki.sdn.sap.com/wiki/display/mobile/http://scn.sap.com/community/mobileS AP Education and Certification Opportunitieswww.sap.com/educationWatch SAP TechEd Onlinewww.sapteched.com/online©  2012 SAP AG. All rights reserved. 16
    • 1. GW100 SAP NetWeaver GatewayGateway Service ConsumptionMay 2012 INTE RNA L  Consumption of Gateway Services using Java Server Pages and JavaScript + HTML5©  2012 SAP AG. All rights reserved. 2  Creating an iPhone Application to Consume a Gateway Service Ÿ   Creation of OData proxy objects Ÿ  The general principles of consuming a Gateway Service Ÿ 2. Objectives At the end of this chapter, you will understand: Ÿ  Consumption Exercises – Java Server Pages, JavaScript ©  2012 SAP AG. All rights reserved. 3   Using the Gateway Developer Tool for XCode – Building an iPhone Appu  Creating OData Proxy Objectsu   Gateway Service Consumption Overviewu 3. Agendau  Consumption Exercises – Java Server Pages, JavaScript ©  2012 SAP AG. All rights reserved. 4   Using the Gateway Developer Tool for XCode – Building an iPhone Appu  Creating OData Proxy Objectsu   Gateway Service Consumption Overviewu 4. Agendau
    • 5. My Gateway Service Works… Now What? Once you’ve built a working Gateway Service, the next step is to create an application that can consume this service. OK, so how do I that? There are many possibilities. For instance, you could develop an application for a mobile client using the Sybase Unwired Platform (SUP), or you could use a wide variety of programming languages and freely available OData libraries.©  2012 SAP AG. All rights reserved. 5 6. Gateway Service Consumption – Where to Start?Since the application that consumes a Gateway Service executes outside the scopeof an SAP system, you will first need to choose a programming environment.You are free to choose any programming environment with which you arecomfortable… SAP places no restrictions on how Gateway services are to beconsumed.In this course, we will focus on two possible consumption options:•  Java Server Pages•  JavaScript (using the SAPUI5 libraries)©  2012 SAP AG. All rights reserved. 6 7. Gateway Service Consumption – General PrinciplesNo matter what programminglanguage you choose, youshould obtain at the veryleast, an OData SDK for yourchosen language.Many OData SDKs areavailable from the developerssection of the odata.orgwebsite.However, SAP offers someproxy generation tools thathelp accelerate applicationdevelopment.©  2012 SAP AG. All rights reserved. 7  Consumption Exercises – Java Server Pages, JavaScript ©  2012 SAP AG. All rights reserved. 8   Using the Gateway Developer Tool for XCode – Building an iPhone Appu  Creating OData Proxy Objectsu   Gateway Service Consumption Overviewu 8. Agendau Developer ToolsThe SAPUI5 JavaScript library can also be downloaded from SCN.©  2012 SAP AG. All rights reserved. 9 9. Gateway Service Consumption – Proxy GenerationSix different tools are available for creating OData proxy objects, five of which arewritten by SAP. Language Tool Shipped As Proxy Object CreatedJava Oracle Eclipse plug-in Manually at design timePHP PHP Group Eclipse plug-in Manually at design timeVisual C# Microsoft Visual Studio 2010 project template Manually at design timeObjective C Apple Stand alone tool Manually at design timeJavaScript ECMA Object within SAPUI5 library Implicitly at runtimeFlash Adobe Flash Builder plug-in from Adobe Manually at design timeThe generated OData proxy object acts as the interface to the SAP NetWeaverGateway system, and hides many of the lower level details of the OData protocol.All of these plug-ins can be downloaded from the SAP Community Network pagehttp://scn.sap.com/community/netweaver-gateway à “Proxy Generation” atdesign time.This functionality is installed as a plug-in for Eclipse.©  2012 SAP AG. All rights reserved. 10 10. Gateway Proxy Generation – Eclipse (Java or PHP) SAP NetWeaver
    • GatewayIn Eclipse Helios (3.6) or Indigo (3.7), a Gateway proxy object is created byselecting a project of type “SAP NetWeaver Gateway” à “Proxy Generation” atdesign time.This functionality is installed as a plug-in for Eclipse.©  2012 SAP AG. All rights reserved. 11 11. Gateway Proxy Generation – Eclipse (Java or PHP) SAP NetWeaver GatewayIn Eclipse Helios (3.6) or Indigo (3.7), a Gateway proxy object is created byselecting a project of type “SAP NetWeaver Gateway” à 12. Gateway Proxy Generation – Visual Studio 2010 (C#) SAP NetWeaver GatewayIn Visual Studio 2010, a Gateway proxy object is created by selecting project of type“SAP Web Application” at design time.This functionality is installed as a plug-in for Visual Studio.©  2012 SAP AG. All rights reserved. 12 13. Gateway Proxy Generation – Visual Studio 2010 (C#) SAP NetWeaver GatewayIn Visual Studio 2010, a Gateway proxy object is created by selecting project of type“SAP Web Application” at design time.This functionality is installed as a plug-in for Visual Studio.©  2012 SAP AG. All rights reserved. 13 “SAP Gateway”.This functionality is installed as a plug-in for Flash Builder.©  2012 SAP AG. All rights reserved. 14 “Connect to Data/Service Type” à 14. Gateway Proxy Generation – Flash Builder ≥4.5 (MXML) SAP NetWeaver GatewayIn Flash Builder ≥4.5, a Flex Project is created and then you select Data à 15. Gateway Proxy Generation – XCode (Objective C) Generated XCode Project SAP NetWeaver GatewayThe SAP NetWeaver Gateway developer tool for XCode is a stand-alone tool thatconnects to a Gateway server and generates an XCode project.This project is then opened in XCode and can be edited as required.©  2012 SAP AG. All rights reserved. 15 16. Gateway Proxy Generation – XCode (Objective C) Generated XCode Project SAP NetWeaver GatewayThe SAP NetWeaver Gateway developer tool for XCode is a stand-alone tool thatconnects to a Gateway server and generates an XCode project.This project is then opened in XCode and can be edited as required.©  2012 SAP AG. All rights reserved. 16 17. Gateway Proxy Generation – SAPUI5 (JavaScript+HTML5) SAP NetWeaver GatewayAt design time, you create an sap.ui.model.odata.ODataModel object.At runtime, the OData object is created
    • automatically.This functionality is contained both in plug-ins and libraries referenced by yourSAPUI5 Project.©  2012 SAP AG. All rights reserved. 17  Consumption Exercises – Java Server Pages, JavaScript ©  2012 SAP AG.  Using the Gateway Developer Tool for XCode – Building an iPhone Appu  Creating OData Proxy Objectsu   Gateway Service Consumption Overviewu 18. Agendau All rights reserved. 18 19. Creating a Basic iPhone Application – 1/11When you run the SAP NetWeaver Gateway developer tool for XCode, you are firstasked whether you want to create just a proxy object, or a proxy object wrapped ina basic application.The demo application being built here will show first a list of Airports.The user then selects an airport and will be shown a list of flights departing fromthat airport.Finally, the user can select an individual flight to see its bookings.©  2012 SAP AG. All rights reserved. 19 20. Creating a Basic iPhone Application – 2/11Before using the proxy generator tool, you must first configure it to point to theinstalled OData SDK and at least one Gateway server.Press ⌘ , (Command comma) to display the configuration screen.©  2012 SAP AG. All rights reserved. 20 21. Creating a Basic iPhone Application – 3/11Enter the application name and press Browse©  2012 SAP AG. All rights reserved. 21 22. Creating a Basic iPhone Application – 4/11Once you have selected a system, a list of available Gateway services will bedisplayed. Press OK, to use the selected service, then Next.©  2012 SAP AG. All rights reserved. 22 23. Creating a Basic iPhone Application – 5/11We now must construct the screens the application will use.Give the first screen a title (“Airports” in this case) and press the plus sign in thebottom right corner to add fields to this screen.©  2012 SAP AG. All rights reserved. 23 24. Creating a Basic iPhone Application – 6/11Knowing that our application will start by providing a list of Airports, we choosethis entity set from the drop down list.We then choose the appropriate fields from this entity set that we wish to display.GeoCoordinates is omitted because it is based on a Complex Type.©  2012 SAP AG. All rights reserved. 24
    • 25. Creating a Basic iPhone Application – 7/11Now add a second page by clicking on the plus sign in the bottom left corner.The second page will show only those flights departing from the airport selected onthe first screen.©  2012 SAP AG. All rights reserved. 25 26. Creating a Basic iPhone Application – 8/11Notice now that the dropdown list no longer displays entity sets. This is becausethe first screen uses the Airports entity set; therefore, we can only use fieldsavailable from the navigation paths belonging to Airports.In this case, we are interested in the DepartingFlights navigation path.©  2012 SAP AG. All rights reserved. 26 27. Creating a Basic iPhone Application – 9/11As with the Flights page, a third page is added for Bookings and fields are addedas seen earlier.This completes the design process for the screen fields, so we can now pressFinish.©  2012 SAP AG. All rights reserved. 27 28. Creating a Basic iPhone Application – 10/11After defining where you want the generated XCode project to be stored, you nowuse XCode to open that project.At this point you could simply run the application or you use the coding as thestarting point for your own custom application.©  2012 SAP AG. All rights reserved. 28 29. Creating a Basic iPhone Application – 11/11The application can then be run in the iOS simulator within XCode.©  2012 SAP AG. All rights reserved. 29  Consumption Exercises – Java Server Pages, JavaScript ©  2012 SAP AG. All rights reserved. 30  iPhone App Creationu   Creating OData Proxy Objectsu  Gateway Service Consumption Overviewu 30. Agendau 31. Hands-on ExerciseExercise 14Consume a Gateway Service Using JavaServer Pages©  2012 SAP AG. All rights reserved. 31 32. Hands-on ExerciseExercise 15Consume a Gateway Service Using theSAPUI5 JavaScript Libraries (Read-only)©  2012 SAP AG. All rights reserved. 32  Consumption of Gateway Services using Java Server Pages and JavaScript + HTML5©  2012 SAP AG. All rights reserved. 33  Creation of an iPhone Application to Consume a Gateway Service Ÿ  Creation of OData proxy objects Ÿ  The general principles of consuming a Gateway Service Ÿ 33. Summary You should now understand: Ÿ
    • 1. GW100 SAP NetWeaver GatewayGateway Service ConsumptionMay 2012 INTE RNA L 2. Objectives At the end of this chapter, you will understand:   The general principles of consuming a Gateway Service Ÿ   Creation of OData proxy objects Ÿ   Creating an iPhone Application to Consume a Gateway Service Ÿ   Consumption of Gateway Services using Java Server Pages and Ÿ JavaScript + HTML5©  2012 SAP AG. All rights reserved. 2   3. Agendau   Gateway Service Consumption Overviewu   Creating OData Proxy Objectsu   Using the Gateway Developer Tool for XCode – Building an iPhone Appu Consumption Exercises – Java Server Pages, JavaScript ©  2012 SAP AG. All rights reserved. 3   4. Agendau   Gateway Service Consumption Overviewu   Creating OData Proxy Objectsu   Using the Gateway Developer Tool for XCode – Building an iPhone Appu Consumption Exercises – Java Server Pages, JavaScript ©  2012 SAP AG. All rights reserved. 4 5. My Gateway Service Works… Now What? Once you‟ve built a working Gateway Service, the next step is to create an application that can consume this service. OK, so how do I that? There are many possibilities. For instance, you could develop an application for a mobile client using the Sybase Unwired Platform (SUP), or you could use a wide variety of programming languages and freely available OData libraries.©  2012 SAP AG. All rights reserved. 5 6. Gateway Service Consumption – Where to Start?Since the application that consumes a Gateway Service executes outside the scopeof an SAP system, you will first need to choose a programming environment.You are free to choose any programming environment with which you arecomfortable… SAP places no restrictions on how Gateway services are to beconsumed.In this course, we will focus on two possible consumption options:• Java Server Pages•  JavaScript (using the SAPUI5 libraries)©  2012 SAP AG. All rights reserved. 6 7. Gateway Service Consumption – General PrinciplesNo matter what programminglanguage you choose, youshould obtain at the veryleast, an OData SDK for yourchosen language.Many OData SDKs areavailable from the developerssection of the odata.orgwebsite.However, SAP offers someproxy generation tools thathelp accelerate applicationdevelopment.©  2012 SAP AG. All rights reserved. 7   8. Agendau   Gateway Service Consumption Overviewu   Creating OData Proxy Objectsu   Using the Gateway Developer Tool for XCode – Building an iPhone Appu Consumption Exercises – Java Server Pages, JavaScript ©  2012 SAP AG. All rights reserved. 8 9. Gateway Service Consumption – Proxy GenerationSix different tools are available for creating OData proxy objects, five of which arewritten by SAP. Language Tool Shipped As Proxy Object CreatedJava Oracle Eclipse plug-in Manually at design timePHP PHP Group Eclipse plug-in Manually at design timeVisual C# Microsoft Visual Studio 2010 project template Manually at design timeObjective C Apple Stand alone tool Manually at design timeJavaScript ECMA Object within SAPUI5 library Implicitly at runtimeFlash Adobe Flash Builder plug-in from Adobe Developer ToolsThe SAPUI5 JavaScript library can also be downloaded from SCN.©  2012 SAP AG. All rights reserved. Manually at design timeThe generated OData proxy object acts as the interface
    • to the SAP NetWeaverGateway system, and hides many of the lower level details of the OData protocol.All of these plug-ins can be downloaded from the SAP Community Network pagehttp://scn.sap.com/community/netweaver-gateway à 9 10. Gateway Proxy Generation – Eclipse (Java or PHP) SAP NetWeaver “Proxy Generation” atdesign time.This functionality is installed as a plug-in for Eclipse.©  2012 SAP AG. All rights reserved. GatewayIn Eclipse Helios (3.6) or Indigo (3.7), a Gateway proxy object is created byselecting a project of type “SAP NetWeaver Gateway” à 10 11. Gateway Proxy Generation – Eclipse (Java or PHP) SAP NetWeaver “Proxy Generation” atdesign time.This functionality is installed as a plug-in for Eclipse.©  2012 GatewayIn Eclipse Helios (3.6) or Indigo (3.7), a Gateway proxy object is created byselecting a project of type “SAP NetWeaver Gateway” à SAP AG. All rights reserved. 11 12. Gateway Proxy Generation – Visual Studio 2010 (C#) SAP NetWeaver GatewayIn Visual Studio 2010, a Gateway proxy object is created by selecting project of type“SAP Web Application” at design time.This functionality is installed as a plug-in for Visual Studio.©  2012 SAP AG. All rights reserved. 12 13. Gateway Proxy Generation – Visual Studio 2010 (C#) SAP NetWeaver GatewayIn Visual Studio 2010, a Gateway proxy object is created by selecting project of type“SAP Web Application” at design time.This functionality is installed as a plug-in for Visual Studio.©  2012 SAP AG. All rights reserved. 13 14. Gateway Proxy Generation – Flash Builder ≥4.5 (MXML) SAP NetWeaver “SAP Gateway”.This functionality is installed as a plug-in for Flash Builder.©  2012 SAP AG. All rights reserved. “Connect to Data/Service Type” à GatewayIn Flash Builder ≥4.5, a Flex Project is created and then you select Data à 14 15. Gateway Proxy Generation – XCode (Objective C) Generated XCode Project SAP NetWeaver GatewayThe SAP NetWeaver Gateway developer tool for XCode is a standalone tool thatconnects to a Gateway server and generates an XCode project.This project is then opened in XCode and can be edited as required.©  2012 SAP AG. All rights reserved. 15 16. Gateway Proxy Generation – XCode (Objective C) Generated XCode Project SAP NetWeaver GatewayThe SAP NetWeaver Gateway developer tool for XCode is a standalone tool thatconnects to a Gateway server and generates an XCode project.This project is then opened in XCode and can be edited as required.©  2012 SAP AG. All rights reserved. 16 17. Gateway Proxy Generation – SAPUI5 (JavaScript+HTML5) SAP NetWeaver GatewayAt design time, you create an sap.ui.model.odata.ODataModel object.At runtime, the OData object is created automatically.This functionality is contained both in plug-ins and libraries referenced by yourSAPUI5 Project.©  2012 SAP AG. All rights reserved. 17   18. Agendau   Gateway Service Consumption Overviewu   Creating OData Proxy Objectsu   Using the Gateway Developer Tool for XCode – Building an iPhone Appu Consumption Exercises – Java Server Pages, JavaScript ©  2012 SAP AG. All rights reserved. 18 19. Creating a Basic iPhone Application – 1/11When you run the SAP NetWeaver Gateway developer tool for XCode, you are firstasked whether you want to create just a
    • proxy object, or a proxy object wrapped ina basic application.The demo application being built here will show first a list of Airports.The user then selects an airport and will be shown a list of flights departing fromthat airport.Finally, the user can select an individual flight to see its bookings.©  2012 SAP AG. All rights reserved. 19 20. Creating a Basic iPhone Application – 2/11Before using the proxy generator tool, you must first configure it to point to theinstalled OData SDK and at least one Gateway server.Press ⌘, (Command comma) to display the configuration screen.©  2012 SAP AG. All rights reserved. 20 21. Creating a Basic iPhone Application – 3/11Enter the application name and press Browse©  2012 SAP AG. All rights reserved. 21 22. Creating a Basic iPhone Application – 4/11Once you have selected a system, a list of available Gateway services will bedisplayed. Press OK, to use the selected service, then Next.©  2012 SAP AG. All rights reserved. 22 23. Creating a Basic iPhone Application – 5/11We now must construct the screens the application will use.Give the first screen a title (“Airports” in this case) and press the plus sign in thebottom right corner to add fields to this screen.©  2012 SAP AG. All rights reserved. 23 24. Creating a Basic iPhone Application – 6/11Knowing that our application will start by providing a list of Airports, we choosethis entity set from the drop down list.We then choose the appropriate fields from this entity set that we wish to display.GeoCoordinates is omitted because it is based on a Complex Type.©  2012 SAP AG. All rights reserved. 24 25. Creating a Basic iPhone Application – 7/11Now add a second page by clicking on the plus sign in the bottom left corner.The second page will show only those flights departing from the airport selected onthe first screen.©  2012 SAP AG. All rights reserved. 25 26. Creating a Basic iPhone Application – 8/11Notice now that the dropdown list no longer displays entity sets. This is becausethe first screen uses the Airports entity set; therefore, we can only use fieldsavailable from the navigation paths belonging to Airports.In this case, we are interested in the DepartingFlights navigation path.©  2012 SAP AG. All rights reserved. 26 27. Creating a Basic iPhone Application – 9/11As with the Flights page, a third page is added for Bookings and fields are addedas seen earlier.This completes the design process for the screen fields, so we can now pressFinish.©  2012 SAP AG. All rights reserved. 27 28. Creating a Basic iPhone Application – 10/11After defining where you want the generated XCode project to be stored, you nowuse XCode to open that project.At this point you could simply run the application or you use the coding as thestarting point for your own custom application.©  2012 SAP AG. All rights reserved. 28 29. Creating a Basic iPhone Application – 11/11The application can then be run in the iOS simulator within XCode.©  2012 SAP AG. All rights reserved. 29   30. Agendau   Gateway Service Consumption Overviewu   Creating OData Proxy Objectsu   iPhone App Creationu Consumption Exercises – Java Server Pages, JavaScript ©  2012 SAP AG. All rights reserved. 30 31. Hands-on ExerciseExercise 14Consume a Gateway Service Using JavaServer Pages©  2012 SAP AG. All rights r eserved. 31
    • 32. Hands-on ExerciseExercise 15Consume a Gateway Service Using theSAPUI5 JavaScript Libraries (Read-only)©  2012 SAP AG. All rights reserved. 32 33. Summary You should now understand:   The general principles of consuming a Gateway Service Ÿ   Creation of OData proxy objects Ÿ   Creation of an iPhone Ÿ Application to Consume a Gateway Service   Consumption of Gateway Services using Java Server Pages and Ÿ JavaScript + HTML5©  2012 SAP AG. All rights reserved. 33
    • http://scn.sap.com/community/netweaver-gateway http://en.wikipedia.org/wiki/SAP_NetWeaver_Application_Server http://www.sybase.com/files/White_Papers/SYBASE_SUP_2.1_Architecture_WP.pdf
    • NetWeaver Gateway- Extend the Reach of SAP Applications 1. Extend the Reach of SAP Applications toBusiness Users with SAP NetWeaver GatewayJeff Gebo, Chris Whealy, Patrick KelleherSAP  Wrap-Up ©  2012 SAP AG. All rights reserved. 1  Next StepsØ   Business Scenarios and Application DemosØ  Demo of Provisioning and Consumption ToolsØ  Functionality, Architecture, and Development ProcessØ  What Is SAP NetWeaver® Gateway?Ø 2. AgendaØ 3. What Is SAP NetWeaver Gateway? 4. Technology Tipping Point Requires New IT ApproachNew devices and Growing new communities Simple access to complexexperiences of agile developers enterprise systemsConsumer innovations Expansion of business data Manage and control missionin the enterprise and decision makers critical systems AND deploy innovative solutions©  2012 SAP AG. All rights reserved. 3 5. Being a Best Run Company in a Changing Environment People Solutions IT Management Productivity Short Development Leadership Cycles Business Outcome Manage Innovation Volume Engagement Efficiency Business Focus©  2012 SAP AG. All rights reserved. 4 6. What Does “Better” Mean for You? Business process awareness IT as a competitive advantage across experiences Develop new solutions in days Save your employees’ time Dramatic increase of potential Attract the gen Y employees developers Efficiency in deploying Build models once, reuse solutions across clients©  2012 SAP AG. All rights reserved. 5 7. Enterprise Computing for Business ConsumersKey Challenges and Desired Outcome Browser Based Mobile Devices Enterprise Cloud Consumer Applications Software Devices Point to Point Solutions Increase Costs & Complexity SAP Business Suite CRM SRM SCM PLM ERP©  2012 SAP AG. All rights reserved. 6
    •  No SAP knowledge required for Sybase Duet Unwired Enter- consumption Platform prise OData SAP NetWeaver Gateway SAP Business Suite CRM SRM SCM PLM ERP©  2012 SAP AG. All rights reserved. 7   Non-disruptive, any SAP Business Suite Browser Based Mobile Devices Applications Enterprise Software Cloud Consumer Devices version Ÿ  Optimized for user interaction scenarios Ÿ   Any Environment, Any Platform, Any Experience Ÿ 8. Enterprise Computing for Business ConsumersKey Challenges and Desired Outcome Ÿ 9. Redefining SAP Development ExperienceOpening the door for millions of developers to create solutionsconnecting to SAPReduce complexity, skill set requirements, and deployment barriersShorten development times/cycles Consumption of SAP data and services no longer requires the developer to have knowledge of the internal workings of an SAP system Engage all developers with their choice of development tools RESTful service interfaces Non-proprietary data protocols (OData using ATOM+XML or JSON)©  2012 SAP AG. All rights reserved. 8 10. Functionality, Architecture, andDevelopment Process 11. SAP NetWeaver Gateway FunctionalityOpen, Standards-Based, Timeless for People and Developers Service Modeling, Runtime & Design Time & Landscape & IT Adaptation, Event Protocols Business Content ManagementPeople-centric Support for core Service development, Abstraction built onobject adaptation runtime services and generation tools and SAP NetWeaver industry standards consumption plug-ins ABAP stack•  Data aggregation from multiple objects •  Security, Supportability, •  Service provision tools •  Deploy to existing SAP Monitoring NetWeaver landscape•  Different ing SAP instances •  Generator using screens, and business suite •  RESTful interface to business objects and •  Changes to client don’t existing RFC, GenIL, BOL custom transactions impact SAP systems versions & SPI functionality •  Pre -defined models, •  Uses core ABAP life•  Push and pull business •  OData messages via workflow service cycle management events and notification ATOM+XML or JSON •  IDE Integration: Visual protocols St dio, Eclipse, XCode©  2012 SAP AG. All rights reserved. 10 u 12. SAP NetWeaver Gateway Architecture IDEs Consumer Consumer Consumer Plug-ins Tools (txn SEGW) Gateway Core OData with SAP Annotations Technology Supportability Metadata Generators Repository Custom Service Monitoring RFC, GenIL, SAP NetWeaver Dev Adaptation SPI, BOL etc. Events Security Data Source Data Conn. SAP NetWeaver Providers Gateway BAPI RFC WS SAP Business Suite [ERP, CRM, SRM … ]©  2012 SAP AG. All rights reserved. 11
    • 13. What is the Open Data Protocol (OData)?OData is a Microsoft developed extension to the AtomPublishing and Atom Syndication standards, which inturn, are based on XML and HTTP(S). SAP AnnotationsIt was designed to provide a standardised ODataimplementation of a RESTful API. In doing so, it offersdatabase-like access to server-side resources. Hence, Atom PublishingOData has been described as: “ODBC for the Web” Atom SyndicationIt can be used freely without the need for a license or XML or JSONcontract.OData is also extensible. This allows SAP to HTTP(S)supplement the data types used by OData with extrainformation from the ABAP Data Dictionary.©  2012 SAP AG. All rights reserved. 12 14. Entity Data Model – OverviewAn Entity Data Model (EDM) describes the organisation and relationship of the dataresources within a particular business scenario. Each entity type must An entity type is have at least one property aggregated into an nominated as a key field An Entity Type is the basic building block of a Entity Setdata model. It representsa specific business objectAn Entity Type is built from one or more properties A Navigation defines the runtime implementation of an association An association declares that a relationship exists between two entity types©  2012 SAP AG. All rights reserved. 13 15. SAP IDE Plug-InsIDE Plug-in tools Benefits CapabilitiesDevelopers require no SAP Knowledge IDE plug-in available for Visual Studio and EclipseApplicable to client developers Provide ease of consumption through search andIn their native [IDE] environment exploration capabilities on Gateway servicesIncrease productivity Enable proxy generation of Gateway servicesSimplify SAP service consumption Application starter kit Support all CRUD operations on Gateway services Push support for Visual Studio Provide out-of-box security and supportability capability IDEs Plug-ins©  2012 SAP AG. All rights reserved. 14 16. SAP IDE Plug-InsIDE Plug-in tools Benefits CapabilitiesDevelopers require no SAP Knowledge IDE plug-in available for Visual Studio and EclipseApplicable to client developers Provide ease of consumption through search and exploration capabilities on Gateway servicesIn their native [IDE] environment Not Mandatory!Increase productivity Enable proxy generation of Gateway services Many OpenSimplify SAP service consumption Application starter kit Source APIs for OData/REST! all CRUD operations on Gateway Support services Push support for Visual Studio Provide out-of-box security and supportability capability IDEs Plug-ins©  2012 SAP AG. All rights r served. 15 e
    • 17. Roles in the Development ProcessThere are two distinct steps in the development process:1)  Develop the Gateway Service in ABAP2)  Develop the client application using any language you like ABAP Developer Client App Developer©  2012 SAP AG. All rights reserved. 16 18. Development Process Consumer Create Application Create Proxy Consumer Using Plug-ins IDE Application Gateway SEGW Gateway Create Service SE80 Object Document SAP Create Model Business RFC, GW and Data GenIL etc Model Suite Provider Step 1 (Gateway Service) Step 2 (Consumer App) Pick some existing unit of functionality: E.G. a Create Proxy Classes using IDE plug-ins BAPI, a GenIL object or existing Gateway Model Create a consumer application Create a Data Source Model through the Gateway Design Time tools Create a simplified interface and generate the service document©  2012 SAP AG. All rights reserved. 17  Extensibility/Reuse of Gateway Services Professional ABAP Developer©  2012 SAP AG. All rights reserved. 18  EDMX-Model import Strong ABAP skills Ÿ  Integration and projection for important data sources like GenIL, SPI and BW Ÿ  Generation of service implementation from existing business functionality Ÿ   Generation of model definition Ÿ  The SAP NetWeaver Gateway Service Builder is a one stop shop tool that Technical covers the entire development lifecycle Consultant of a Gateway Service / BPX Ÿ  Developer productivity (low TCD) for Little or no ABAP skills ABAP Developer, Technical Consultant and Business Process Expert Ÿ 19. SAP NetWeaver Gateway Service Builder (SEGW)One-Stop-Shop for all GW OData Service Developers Ÿ 20. Gateway Service Builder - Development Flow (SP4) Starter kit service generation for once-off OData Service generation MPC and empty DPC ABAP classes. Defini.on in SEGW Professional ABAP developer Data Model Declara.ve Extensions or changes on source code level Target group à Import Definition Model Data Model Import DDIC* (MPC) Defini.on* (EDMX) ServiceImplementation Code-‐Based Implementa.on* (DPC) Code-‐Based Extensions* * Repeatable within one service ©  2012 SAP AG. All rights reserved. 19 21. SP5: Generate complete Service from RFC/BOR Service generation from RFC/BOR with little or no OData Service ABAP skills Defini.on in SEGW Technical Consultant / Business Declara.ve Entity centric mapping, enables combining different sources for mapping different operations Data Model Target group à Import Import DDIC/ Definition Model Data Model RFC/BOR Process Expert (BPX) (MPC) Defini.on* (EDMX) Interface* ServiceImplementation Code-‐Based Implementa.on* Map RFC/BOR (DPC) Code-‐Based Extensions* Opera.on* Service Service Registra.on *
    • Repeatable Maintenance and Hub Ac.va.on within one service ©  2012 SAP AG. All rights reserved. 20 22. SP5: Generate & Redefine service from GenIL, BW, SPI Service generation from Business OData Service Suite Frameworks like GeniL, SPI, Defini.on in BW integrated into Service Builder SEGW The generated services can also be redefined to have user-friendly Data Model external names or less number of Declara.ve Import Import DDIC/ Definition Model Data Model RFC/BOR artefacts (MPC) Redefine Defini.on* (EDMX) Interface* Data Source Service This wizard is extensible by any SAP (GenIL, BOL, internal team to support new SPI, BW frameworks. e.g. BOPF Service Easy Query, Code-‐Based Implementa.on* Map RFC/BOR Technical (DPC) Code-‐Based MDX) Implementation Target group à Extensions* Opera.on* Consultant / Business Process Expert (BPX) Service Service Registra.on * Repeatable Maintenance and Hub Ac.va.on within one service ©  2012 SAP AG. All rights reserved. 21 23. SP5: Compose multiple services (IW_BEP) OData Service Service Generation through Defini.on in composition of services. SEGW Enables Reuse of existing services within a new service Gateway runtime feature of Data Model Declara.ve Import Import DDIC/ composition is supported in a Definition Model Data Model RFC/BOR (MPC) Defini.on* (EDMX) Interface* Redefine codeless fashion Data Source Service Include (GenIL, BOL, Gateway SPI, BW Service* Service Easy Query, Code-‐Based Implementa.on* Map RFC/BOR MDX) Implementation (DPC) Code-‐Based Extensions* Opera.on* Service Service Registra.on * Repeatable Maintenance and Hub Ac.va.on within one service ©  2012 SAP AG. All rights reserved. 22 24. DemoProvisioning and Consumption Tools 25. Business Scenarios and Application Demos 26. Admissions Counselor iPad AppUniversity of Mississippi•  Enables prospective student lookup using a variety of search criteria•  Information retrieved via Gateway web services directly from the University’s ERP system©  2012 SAP AG. All rights reserved. 25 27. Search CapabilitiesUniversity of Mississippi•  People search directory on the University’s website: olemiss.edu/people•  Experts guide/Faculty profile listing on the University’s website: olemiss.edu/experts ©  2012 SAP AG. All rights reserved. 26
    • 28. Social Leads (Facebook/Twitter)Facebook/Twitter with SAP CRM to Drive Marketing CampaignsPublish product design polls in FacebookCollect feedback to impact product decisionsCapture leads into SAP CRM application Built in the Facebook framework Developed in 3 weeks©  2012 SAP AG. All rights reserved. 27 29. Know Your Customer (.NET)Face Recognition Integrated with CRM and Social NetworksFace recognition (using face.com)Customer Information from SAP CRMSocial network analysisPersonalized offer from SAP CRMLead capturing Built in .NET Developed in 3 weeks©  2012 SAP AG. All rights reserved. 28 30. Sales Manager (HTML5)Location-Based Customer Information and CollaborationGather Account Information fromSAP CRMPresent on a device location mapUpdate Team usingSAP Stream Work application Built using HTML5 Developed in 3 weeks©  2012 SAP AG. All rights reserved. 29 31. Next Steps 32. SAP NetWeaver Gateway Pre-Packaged Trial VersionSAP is offering a 90-day pre-packaged trial version ofGateway for developers:•  The trial allows developers to set up an SAP NetWeaver 90 -day Gateway environment and start developing applications in Pre-packaged just 1 hour Trial•  The environment contains the SAP NetWeaver ABAP Web Application Server and the SAP NetWeaver Gateway add-on•  The trial offers two pre -packaged, pre-configured trial versions: For Linux leverage the SUSE technology and for Microsoft Windows leverage the Hyper-V technology Download a copy of the trial: http://bit.ly/sPIWde© 2012 SAP AG. All rights reserved. 31 33. Adobe Flash Builder Plug-In for SAP NetWeaver GatewayWhat is it?Flash Builder (Flex IDE) plug-in for Gateway provides support forthe development of Flex Mobile and Web applications that canbrowse, interact, and consume SAP NetWeaver Gateway ServicesWhat does it provide?•  Developer workflow within Flash Builder•  SAP NetWeaver Gateway Service Catalog browser for developers•  Service introspection and ActionScript service wrapper generation•  Flash Builder Data Servic and es Design View integration Join the pre-release program: http://adobe.ly/v9ru8n Watch a demo: http://adobe.ly/rwCEom FAQ: http://adobe.ly/uDwFVY ©  2012 SAP AG. All rights reserved. 32 32 34. SAP NetWeaver GatewayOne Technology, a World of Experiences Promote new Drive innovation Engage developers with ways of working without IT disruption no SAP knowledge©  2012 SAP AG. All rights reserved. 33
    • 35. Wrap-up 36. Additional ResourcesSCN SAP NetWeaver Gateway Site (How To Guides, Developer Tools, GatewayTrial Download, and much, much more): www.sdn.sap.com/irj/sdn/gatewaySAP NetWeaver Gateway on ES Workplace (access sample services):www.sdn.sap.com/irj/sdn/gateway?rid=/webcontent/uuid/1051f6d9-e87a-2e10-d188e2786c7878b1SAP NetWeaver Gateway Help Documentation:http://help.sap.com/nwgatewaySAP NetWeaver Gateway Sizing Document:http://service.sap.com/sizing * > Sizing Guidelines > Solutions & Platform -New Structure > Mobile > SAP NetWeaver Gateway 2.0 SP5 (PDF)* Requires login credentials to the SAP Service Marketplace©  2012 SAP AG. All rights reserved. 35 37. 7 Key Points to Take HomeSAP NetWeaver Gateway …• Can expose your business content as restful services• Exposes restful services based on the Open Data Protocol (OData)• Pulls and pushes business content• Can expose Business Workflow via restful services• Allows you to create simple services out of complex business APIs• Expandsthe possibilities of which technologies, platforms and devices canconnect to SAP systems• Creates a powerful mobile platform when combined with the Sybase UnwiredPlatform©  2012 SAP AG. All rights reserved. 36 38. Thank You! Rapid Innovation Group, SAPJeff Gebo Chris Whealy Patrick Kelleherjeff.gebo@sap.com chris.whealy@sap.com patrick.kelleher@sap.com
    • Afaria
    • Developing Synchronized Mobile Apps with SAP Mobile PlatformPresentation Transcript 1. MOB102Developing Synchronized Mobile Applications withSybase Unwired PlatformVenugopal. N 2. DisclaimerThis presentation outlines our general product direction and should not be relied on in making apurchase decision. This presentation is not subject to your license agreement or any other agreementwith SAP. SAP has no obligation to pursue any course of business outlined in this presentation or todevelop or release any functionality mentioned in this presentation. This presentation and SAPsstrategy and possible future developments are subject to change and may be changed by SAP at anytime for any reason without notice. This document is provided without a warranty of any kind, eitherexpress or implied, including but not limited to, the implied warranties of merchantability, fitness for aparticular purpose, or non-infringement. SAP assumes no responsibility for errors or omissions in thisdocument, except if such damages were caused by SAP intentionally or grossly negligent.© 2012 SAP AG. All rights reserved. 2 Synchronized apps from SAPDeveloping Synchronized Mobile Applications• The MBO concept• Create and Configure MBOs© 2012 SAP AG. All rights reserved. Mobility Considerations What is it? OverviewSynchronized Mobile Applications 3. AgendaSAP Mobility Platform 3 4. SAP mobile platform SAP, Partner, and Custom Apps Native Apps Hybrid HTML5 Apps SMS Apps Container Apps SAP App Dev Tools Third Party App Dev Tools SAP Mobile Platform SAP Afaria App Catalog Presentation Frameworks Application Application Services Management Foundation Services Device Data Sync & Caching Authentication App Lifecycle Managment oData Proxy Notification … Management SAP NetWeaver Gateway SAP Business Suite Sybase 365 Databases Third Party Apps This presentation and SAP„s strategy and possible future developments are subject to change and may be changed by SAP at any time for any reason without notice. This document is provided without a warranty of any© 2012 SAP AG. All rights reserved. kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement 4
    • 5. Synchronized Mobile Applications Provides information needed to the end-user even when not connected, based on a set of 6. What is a Synchronized Application? Effectively utilizes network connectivity to ensure reliable data availability even in challenging defined rules Ensures efficient data provisioning to the devices in case of large scale data realignment network environments Leverages local device resources to ensure high performance© 2012 SAP AG. All rights reserved. scenarios (changing organizational structures, territory realignments) 6 Delta Data Determination between Device and Back Error Handling in Async communication Creation of Associated Entities while Offline Conflict Detection and Resolution 7. Key Considerations When Making Data Mobile Lifecycle of Distributed Data / Data Models© 2012 SAP AG. All rights reserved. end 7 8. SAP Mobile ApplicationsSynchronized Apps Online AppsSAP CRM Sales SAP Employee Productivity Apps Human Resources SAP Employee LookupSAP Field Service SAP Leave Request SAP Time Capture SAP HR ApprovalsSAP Retail Execution Procurement SAP Shopping Cart Approvals SAP SRM Supplier SearchSAP EAM Work Order SAP Quality Issue Finance SAP Travel Receipt Capture SAP Travel Report SAP Travel Expense Approvals SAP Payment Approvals Sales SAP Sales Order Notification SAP Material Availability SAP Customers and Contacts SAP Customer Financial Factsheet SAP Order Status© 2012 SAP AG. All rights reserved. 8 9. Developing Synchronized Mobile Applications 10. Synchronization Approach – Cache-basedThe synchronization architecture is based on a Cache DB that resides on the SUP Server, andreplicates and/or messages updates to the Client DB. Enterprise Operation Replay: operations Invoke the corresponding System SUP executed in Client DB are mapped EIS Operations replayed on Cache DB Server Fill Filter Client Operations DB Load Operations (with Device Cache Data parameters) to retrieve Operations are filtered by Repository Cache data from EIS Synchronization DB Parameters Operations defined in the MBO are generated in Object API class files© 2012 SAP AG. All rights reserved. 10 keep the model in sync between devices, SUP server, and EIS (Enterprise Information System).What is available? deploy the model to an SUP server define a mobile data model 11. Introduction to Modeling in SUPThe mobile platform allows you to Design tools for creating a model, and (optionally) building UI components Server components for managing the model and integrating with the backend EIS Client stack for maintaining the client-side aspect of the model, and supporting the application A „pipe‟ for delivering data and maintaining client-server synchronization Management and administration tools© 2012 SAP AG. All rights reserved. 11 The key to SUP is the concept of a data model: this represents the essence of what is being 12. Mobile Business Objects An MBO is basically a tabular representation of some entity that you want represented on the Central to this data model are MBOs – Mobile Business Objects. mobilized. Each MBO is designed to interact with an Enterprise Information System (EIS), and provides a device. standardised view of this interaction.© 2012 SAP AG. All rights reserved. 12 MBOs define a set of 13. Mobile Business Objects attributes, and one or more Enterprise System Device Representation Device applications don‟t need operations. to
    • worry about the EIS integration, and only need to be concerned about this „standardised‟ MBO model. Subset Personalize Mobilize© 2012 SAP AG. All rights reserved. 13 HTML5/JavaScript Container API Native Object API 14. Mobile Business ObjectsMBO‟s in SUP 2.x are the data interface to two development API‟s: SUP Development Task Flow Generate Develop Native Object Native Develop Deploy Mobile Code Application Deploy and Deploy and Mobile Business Test in Test on Business Objects to Generate Develop Simulator Device Objects Unwired Server HTML5/JavaS Hybrid cript Code Application© 2012 SAP AG. All rights reserved. 14 Native Object API: MBO configures server for synchronization, client DB 15. MBObased Apps DevelopmentThe behavior of the MBO, and the development practices are different for each API. & objects, and HTML5/JS Container API: MBO configures server cache, creates HTML5 storage key- generates query methods in Native Object API value structure, and generates request methods in JavaScript API SUP Development Task Flow Generate Develop Native Object Native Develop Deploy Mobile Code Application Deploy and Deploy and Mobile Business Test in Test on Business Objects to Generate Develop Simulator Device Objects Unwired Server HTML5/JavaS Hybrid cript Code Application© 2012 SAP AG. All rights reserved. 15 16. Native Object API MBOThe synchronization architecture is based on a Cache DB that resides on the SUP Server, andreplicates and/or messages updates to the Client DB Client SUP DB Server Synchronization Data Source Cache DB Client DB Cache Refresh Client DB© 2012 SAP AG. All rights reserved. 16 17. Native Object API MBOThe MBO provides configuration for all aspects of the architecture Client DB schema Object Class files Cache content (data filtering) Query & Operation Data methods Client Source Cache DB DB SUP Operations Server Cache Refresh Synchronization frequency Parameters Cache Synchronization DB frequency© 2012 SAP AG. All rights reserved. 17 18. Native Object API MBOMBO Properties include:Attributes• Data Source, Type, Connection SettingsOperations• Bind to Existing Operations, or Add NewRelationships• Mappings, Complex TypesObject Queries• Query methods generated in Object ClassesSynchronization Settings• Rules, Partitions© 2012 SAP AG. All rights reserved. 18 When the client code files are generated, they include the Class files with the attributes and types; the Client 19. Native Object API MBO: Data SchemaThe MBO maps EIS columns as attributes of an Object When the MBO is deployed to the SUP Server, the Cache DB creates tables for the Objects, and a table for DB creates tables for the Objects at runtime maintaining synch-parameter partitions Enterprise System Data Repository Client Cache DB Operations DB© 2012 SAP AG. All rights reserved. 19 20. Native Object API MBO: OperationsOperations Properties include:Data Source• Stored as a Connection ProfileParameters• Name, Type, Nullability, Required• Mapping: Variable (Personalization Key) mapping, rules for updating on device, old-value rulesRoles• Rules for Logical and Physical rolesCache Update Policy• On Demand, Scheduled, DCNSynchronization Settings© 2012 SAP AG. All rights reserved. 20 21. Native Object API MBO: OperationsOperations are staged from EIS to Cache, Cache to Client, and vis versa Enterprise Operation Replay: operations Invoke the corresponding System SUP executed in Client DB are mapped EIS Operations replayed on Cache DB Server Fill Filter Client Operation DB s Load Operations (with
    • Device Cache Data parameters) to retrieve Operations are filtered by Repository Cache data from EIS Synchronization DB Parameters Operations defined in the MBO are generated in Object API class files© 2012 SAP AG. All rights reserved. 21 22. Example: Synchronization Parameter Definition: SELECT * FROM Customer Data Source Type: SampleDB (SQL Anywhere) database Fill: Data is retrieved by executing the Load Operation (SELECT …) Customer ID Name Address City State 1 Intel 1 Intel Drive Santa Clara CACache DB 2 Cisco 1 Cisco Way San Jose CA 3 Ultra 1 Ultra Lane Santa Clara UT 4 AMD 1 AMD Ave Santa Clara CA 5 Oracle 1 Oracle Lane Redwood Shores CA 6 Qualcomm 1 Qualcomm Way San Diego CA 7 HP 1 HP Drive Santa Clara CA Filter: This MBO has one synchronization parameter [city] Mobile application sets the synchronization parameter prior to performing synchronization to „Santa Clara‟Client DB Customer ID Name Address City State 1 Intel 1 Intel Drive Santa Clara CA 3 Ultra 1 Ultra Lane Santa Clara UT 4 AMD 1 AMD Ave Santa Clara CA 7 HP 1 HP Drive Santa Clara CA © 2012 SAP AG. All rights reserved. 22 23. Example: Load and Synchronization Parameters Definition: SELECT * FROM Customer WHERE State = ? Data Source Type: SampleDB database Fill: Data is retrieved by executing the Load Operation with the load parameter set to „CA‟ Customer ID Name Address City State 1 Intel 1 Intel Drive Santa Clara CACache DB 2 Cisco 1 Cisco Way San Jose CA 4 AMD 1 AMD Ave Santa Clara CA 5 Oracle 1 Oracle Lane Redwood Shores CA 6 Qualcomm 1 Qualcomm Way San Diego CA 7 HP 1 HP Drive Santa Clara CA Filter: This MBO has one synchronization parameter [city] Mobile application sets the synchronization parameter prior to performing synchronization to „Santa Clara‟Client DB Customer ID Name Address City State 1 Intel 1 Intel Drive Santa Clara CA 3 Ultra 1 Ultra Lane Santa Clara UT 4 AMD 1 AMD Ave Santa Clara CA 7 HP 1 HP Drive Santa Clara CA © 2012 SAP AG. All rights reserved. 23 24. Development Task FlowMBO Definition is the first step of developing mobile applications with the Native Object APIDevelopers will also use the Eclipse tooling to deploy the MBO to SUP Server, and to generatethe Object code (Client API)We will discuss stages 1-3 for the Native Object API task flow SUP Development Task Flow Generate Develop Native Object Native Develop Deploy Mobile Code Application Deploy and Deploy and Mobile Business Test in Test on Business Objects to Generate Develop Simulator Device Objects Unwired Server HTML5/JavaS Hybrid cript Code Application© 2012 SAP AG. All rights reserved. 24 Web Services (SOAP, REST) JDBC (Oracle, DB2, SQL Anywhere, SQL Server) SAP ECC (RFC, BAPI) 25. 1 Develop Mobile Business ObjectsSUP provides an Eclipse plugin (WorkSpace) with a set of connector wizards for connection tostandard data sources: SUP Native Object API Development Task Flow Generate Develop Native Object Native Develop Deploy Mobile Code Application Deploy and Deploy and Mobile Business Test in Test on Business Objects to Simulator Device Objects Unwired Server© 2012 SAP AG. All rights reserved. 25 View service definitions View database tables Search ECC modules for BAPI‟s 26. 1 Develop Mobile Business ObjectsOnce the connection to the data source is made, the Eclipse Explorer allows the developer tonavigate the data source schema /or services SUP Native Object API Development Task Flow Generate Develop Native Object Native Develop Deploy Mobile Code Application Deploy and Deploy and Mobile Business Test
    • in Test on Business Objects to Simulator Device Objects Unwired Server© 2012 SAP AG. All rights reserved. 26 27. 1 Develop Mobile Business ObjectsDevelopers can select from the exposed services, and drag-and-drop the service to the „MBODiagram‟ canvas to create the MBO SUP Native Object API Development Task Flow Generate Develop Native Object Native Develop Deploy Mobile Code Application Deploy and Deploy and Mobile Business Test in Test on Business Objects to Simulator Device Objects Unwired Server© 2012 SAP AG. All rights reserved. 27 28. 1 Develop Mobile Business ObjectsFor Services/BAPIs, a wizard is provided which identifies inputs/outputs, and allowsdevelopers to select only the parameters relevant to the use case For example, a BAPI which creates a workflow notification may take 3 mandatory inputs, 6 optional inputs, and return 110 attributes, of which only 6 are relevant to the mobile UI. The unnecessary attributes can be left out of the MBO SUP Native Object API Development Task Flow Generate Develop Native Object Native Develop Deploy Mobile Code Application Deploy and Deploy and Mobile Business Test in Test on Business Objects to Simulator Device Objects Unwired Server© 2012 SAP AG. All rights reserved. 28 29. 1 Develop Mobile Business ObjectsFor all data sources, the wizard provides „preview‟ execution to test the connection andparameter behavior SUP Native Object API Development Task Flow Generate Develop Native Object Native Develop Deploy Mobile Code Application Deploy and Deploy and Mobile Business Test in Test on Business Objects to Simulator Device Objects Unwired Server© 2012 SAP AG. All rights reserved. 29 30. 1 Develop Mobile Business ObjectsRelationships and Structures can be designed in the MBO Diagram Relationships are defined between MBOs by linking attributes and parameters in one MBO to attributes and parameters in another MBO • One to Many, One to One, Many to One • Composite (N/A for Many to One) • Bi-Directional SUP Native Object API Development Task Flow Generate Develop Native Object Native Develop Deploy Mobile Code Application Deploy and Deploy and Mobile Business Test in Test on Business Objects to Simulator Device Objects Unwired Server© 2012 SAP AG. All rights reserved. 30 31. 1 Develop Mobile Business ObjectsMBO configurations: Personalization Keys, Synchronization Groups, Cache Groups, etc. aredefined in the Eclipse tooling in the Properties and WorkSpace Navigator windows. SUP Native Object API Development Task Flow Generate Develop Native Object Native Develop Deploy Mobile Code Application Deploy and Deploy and Mobile Business Test in Test on Business Objects to Simulator Device Objects Unwired Server© 2012 SAP AG. All rights reserved. 31 Data belonging to the MBO‟s within the package is staged on the Unwired Platform for 32. 2 Deploy Mobile Business ObjectsRelated MBO‟s are grouped within a package for deployment to SUP Server Packages can be versioned, and multiple versions of a package can be running synchronization. Staged data is loaded via Load Operations Packages can be modified in a variety of modes during development (update, replace, etc.), simultaneously, with duplication costs but a production package should not be modified SUP Native Object API Development Task Flow Generate Develop Native Object Native Develop Deploy Mobile Code Application Deploy and Deploy and Mobile
    • Business Test in Test on Business Objects to Simulator Device Objects Unwired Server© 2012 SAP AG. All rights reserved. 32 Select the synchronization type. In SUP 2.0.x, C# and Java support replication-based, and Supported languages include: Objective-C, C#, and Java (ME for BlackBerry) 33. 3 Generate Native Object CodeUse the Eclipse tooling to generate the Object Code for your target platform(s) In addition to the generated code, access the Client API libraries from the install dir Select output setting: Page Size, name/namespace/prefix, metadata options iOS devices use messaging-based. SUP Native Object API Development Task Flow Generate Develop Native Object Native Develop Deploy Mobile Code Application Deploy and Deploy and Mobile Business Test in Test on Business Objects to Simulator Device Objects Unwired Server© 2012 SAP AG. All rights reserved. 33 34. Further Information on MobileSAP Public Webhttp://wiki.sdn.sap.com/wiki/display/mobile/http://scn.sap.com/community/mobileS AP Education and Certification Opportunitieswww.sap.com/educationWatch SAP TechEd Onlinewww.sapteched.com/online© 2012 SAP AG. All rights reserved.
    • SAP NetWeaver Gateway - RFC & BOR Generators
    • 1. SAP NetWeaver GatewayRFC & BOR Generators (Read Only)May 2012 A Branded Service provided by SAP Customer Solution Adoption Test your Gateway Service from a browser© 2012 SAP AG. All rights reserved. 2 Expose a Gateway Service for consumption Create a read-only Gateway Service based on a Remote Function Module or an Object in the Business Object Repository (BOR) 2. Objectives At the end of this module, you will be able to: Developing Gateway Service based on a Remote Function Module or an Object in the Business Object Repository 1. Create a Gateway Data Model in the ABAP Development Workbench 2. Map your selected RFMs to Gateway Service operations using the Gateway Model Generator 3. Define the interface of the Gateway Service Operation based on the fields in the RFM 4. Generate the Gateway Data Model 5. Associate the Gateway Data Model with a Gateway Consumption Model 6. Associate the Gateway Service with a System Alias 7. Test your Gateway Service in a browser© 2012 SAP AG. All rights reserved. 3 Understanding Gateway Data and Consumption Models Remote Function Calls and Business Object Repository Overview 3. Agenda Developing Gateway Service based on a Remote Function Module or an Object in the Business Object Repository 1. Create a Gateway Data Model in the ABAP Development Workbench 2. Map your selected RFMs to Gateway Service operations using the Gateway Model Generator 3. Define the interface of the Gateway Service Operation based on the fields in the RFM 4. Generate the Gateway Data Model 5. Associate the Gateway Data Model with a Gateway Consumption Model 6. Associate the Gateway Service with a System Alias 7. Test your Gateway Service in a browser© 2012 SAP AG. All rights reserved. 4 Understanding Gateway Data and Consumption Models Remote Function Calls and Business Object Repository Overview 4. Agenda 5. Overview – Remote Function ModulesA Remote Function Module (RFM) is anyABAP Function Module that has had itsRemote-Enabled flag switched on.Activating this flag makes the functionmodule accessible from outside the SAPsystem using the Remote Function Call(RFC) protocol.Important!All SAP Business APIs (BAPIs) areremote enabled function modules, butnot all remote enabled function modulesare BAPIs.A BAPI is a remote enabled functionmodule that has been specifically writtento implement the method of a BusinessObject.© 2012 SAP AG. All rights reserved. 5 Events are used to notify others of some business eventThe BOR is accessed using transactionSWO2 (Letter “O”, not zero). Here, youcan create your own BOR objectsExisting BOR objects
    • can be extendedusing transaction SWO1© 2012 SAP AG. All rights reserved. 6 Key fields are mandatory fields used to identify an object instance Methods are usually mapped to BAPIs 6. Overview – Business Object Repository (BOR)The BOR arranges BAPIs intoBusiness ObjectsObjects contain methods, events, keyfields, and attributes Developing Gateway Service based on a Remote Function Module or an Object in the Business Object Repository 1. Create a Gateway Data Model in the ABAP Development Workbench 2. Map your selected RFMs to Gateway Service operations using the Gateway Model Generator 3. Define the interface of the Gateway Service Operation based on the fields in the RFM 4. Generate the Gateway Data Model 5. Associate the Gateway Data Model with a Gateway Consumption Model 6. Associate the Gateway Service with a System Alias 7. Test your Gateway Service in a browser© 2012 SAP AG. All rights reserved. 7 Understanding Gateway Data and Consumption Models Remote Function Calls and Business Object Repository Overview 7. Agenda 8. Gateway Data and Consumption ModelsThe Gateway Modelling Wizard willgenerate a Data ModelA generated Data Model encapsulatesthe functionality to be exposed as aGateway Service.Transaction SE80 allows you to create aGateway Data Model; however, such anobject is not immediately usable as aGateway Service.In order to expose a Gateway DataModel to the outside world, you must firstcreate a Gateway Consumption Modelobject which is then associated with theData Model.© 2012 SAP AG. All rights reserved. 8 Developing Gateway Service based on a Remote Function Module or an Object in the Business Object Repository 1. Create a Gateway Data Model in the ABAP Development Workbench 2. Map your selected RFMs to Gateway Service operations using the Gateway Model Generator 3. Define the interface of the Gateway Service Operation based on the fields in the RFM 4. Generate the Gateway Data Model 5. Associate the Gateway Data Model with a Gateway Consumption Model 6. Associate the Gateway Service with a System Alias 7. Test your Gateway Service in a browser© 2012 SAP AG. All rights reserved. 9 Understanding Gateway Data and Consumption Models Remote Function Calls and Business Object Repository Overview 9. Agenda 10. Gateway Data Models Based on BOR Objects - Overview Gateway Data Models can be created based on RFMs or BOR Objects. Gateway Objects are created using the ABAP Development Workbench (txn SE80) Once the Gateway Object is created, you are taken to the Gateway Object Modeller (txn /IWFND/GWO_GEN) The Gateway Object Modeller is where your service is created. Select
    • a BOR Object or RFM by performing a search. Each RFM or BOR Object method is then mapped to a service operation.© 2012 SAP AG. All rights reserved. 10 Developing Gateway Service based on a Remote Function Module or an Object in the Business Object Repository 1. Create a Gateway Data Model in the ABAP Development Workbench 2. Map your selected RFMs to Gateway Service operations using the Gateway Model Generator 3. Define the interface of the Gateway Service Operation based on the fields in the RFM 4. Generate the Gateway Data Model 5. Associate the Gateway Data Model with a Gateway Consumption Model 6. Associate the Gateway Service with a System Alias 7. Test your Gateway Service in a browser© 2012 SAP AG. All rights reserved. 11 Understanding Gateway Data and Consumption Models Remote Function Calls and Business Object Repository Overview 11. Agenda 12. Step 1) Create A Gateway Data Model – 1/2In SE80, select “GW Data Model” andenter a new object nameAfter confirming that you want to create anew object, you will see the pop-up shownon the right.The object type is “PS” (meaning PublicSolution)You should then select “Generate fromData Source Object” and leave the “ODataChannel” checkbox switched on. Switching this checkbox off will cause the generated model to use the older Generic Channel object model© 2012 SAP AG. All rights reserved. 12 13. Step 1) Create A Gateway Data Model – 2/2Now you must indicate from which type of data object the Gateway Service isto be generatedAfter entering a description, set the Data Source Type to “2 Remote Function Calls”and then enter the System Alias of the relevant backend systemSE80 will now take you directly to the Gateway Modelling Wizard.© 2012 SAP AG. All rights reserved. 13 Developing Gateway Service based on a Remote Function Module or an Object in the Business Object Repository 1. Create a Gateway Data Model in the ABAP Development Workbench 2. Map your selected RFMs to Gateway Service operations using the Gateway Model Generator 3. Define the interface of the Gateway Service Operation based on the fields in the RFM 4. Generate the Gateway Data Model 5. Associate the Gateway Data Model with a Gateway Consumption Model 6. Associate the Gateway Service with a System Alias 7. Test your Gateway Service in a browser© 2012 SAP AG. All rights reserved. 14 Understanding Gateway Data and Consumption Models Remote Function Calls and Business Object Repository Overview 14. Agenda 15. Step 2) Map RFM to Gateway Service Operation – 1/2Select the RFM by performing a search1) Press the Binoculars icon on the tool bar and search for your required RFM2) Enter the search pattern3) Select the required RFM© 2012 SAP AG. All rights reserved. 15
    • 16. Step 2) Map RFM to Gateway Service Operation – 2/2Now your selected RFM must be mapped to a Gateway Service OperationThis is where you decide which of the Create, Read, Update, Delete or Queryoperations this RFM will implement© 2012 SAP AG. All rights reserved. 16 Developing Gateway Service based on a Remote Function Module or an Object in the Business Object Repository 1. Create a Gateway Data Model in the ABAP Development Workbench 2. Map your selected RFMs to Gateway Service operations using the Gateway Model Generator 3. Define the interface of the Gateway Service Operation based on the fields in the RFM 4. Generate the Gateway Data Model 5. Associate the Gateway Data Model with a Gateway Consumption Model 6. Associate the Gateway Service with a System Alias 7. Test your Gateway Service in a browser© 2012 SAP AG. All rights reserved. 17 Understanding Gateway Data and Consumption Models Remote Function Calls and Business Object Repository Overview 17. Agenda 18. Step 3.1) Define the QUERY Operation’s InterfaceThe fields in the RFM interface define the fields that can be made available inthe Gateway Service Operation.IMPORTANT!Just because a field is present in the RFM’s interface does not mean it will bevisible in the OData interface! You must take care to ensure that mandatory inputfields are either supplied with a constant value or are visible in the OData interface.© 2012 SAP AG. All rights reserved. 18 19. Step 3.2) Add Mandatory Fields to the InterfaceAny mandatory fields in the RFM interface must be made visible in the ODatainterface; therefore, mapping routes must be defined for these fields.This action adds the mandatory field(s) to the OData operation’s interface.If this is not completed, the operation will be unusable because data cannot besupplied to a mandatory input field.© 2012 SAP AG. All rights reserved. 19 20. Step 3.2) Define Constant Values for Mandatory FieldsAlternatively, a mandatory input field might only require a static value.Supply a constant value for the mandatory input field. Remember that all non-numeric values must be specified within single quotes.This field will now not appear in the OData interface, but will always be suppliedwith the static value defined here.© 2012 SAP AG. All rights reserved. 20 21. Step 3.3) Remember Which Fields Hold Key ValuesThe QUERY operation will output a list of banks. The user can then select anindividual bank from this list to see its details.We must now take care to remember which fields contain the key data on theoutput side of the QUERY operation, because these fields must then be used tosupply the key data required by the subsequent READ operation.(If we were
    • creating a Gateway Service based on a BOR object, this step would be performed automatically)© 2012 SAP AG. All rights reserved. 21 22. Step 3.4) Define a Model KeyEach Data Model must have one ormore fields defined to act as keys.For instance, when you perform aQUERY, you receive multiple Entities inan Entity Set. We cannot then perform asubsequent READ operation unless wefirst know from where the key values canbe derived. Once the key fields have been defined, the values they contain can be passed from one operation to another.© 2012 SAP AG. All rights reserved. 22 23. Step 3.4) Map RFM Fields to the Model KeyOnce the Model Key fields have been defined, we map the RFM key fields.This allows key data to be passed from one operation to the next.1) At least one field in the OData interface must be flagged as a key field.2) For the RFM assigned to the QUERY operation, all its mandatory input fields must be visible in the OData operation’s interface3) On the output side of the QUERY RFM, the fields that will supply key data should be mapped to the OData key field(s)4) The mandatory input fields of the READ operation are now supplied by the OData key fields Flag OData Mandatory input interface field field of RFM as a key Key field on Key fields output side supply data to of RFM READ operation© 2012 SAP AG. All rights reserved. 23 Developing Gateway Service based on a Remote Function Module or an Object in the Business Object Repository 1. Create a Gateway Data Model in the ABAP Development Workbench 2. Map your selected RFMs to Gateway Service operations using the Gateway Model Generator 3. Define the interface of the Gateway Service Operation based on the fields in the RFM 4. Generate the Gateway Data Model 5. Associate the Gateway Data Model with a Gateway Consumption Model 6. Associate the Gateway Service with a System Alias 7. Test your Gateway Service in a browser© 2012 SAP AG. All rights reserved. 24 Understanding Gateway Data and Consumption Models Remote Function Calls and Business Object Repository Overview 24. Agenda 25. Step 2) A QUERY Operation On Its Own Is Not SufficientThe QUERY operation has now beencreated by mapping it to the functionmodule BAPI_BANK_GETLIST.However, the OData specificationrequires that all services implement atleast a QUERY and a READ operation.Therefore, we must also create a READoperation.© 2012 SAP AG. All rights reserved. 25 26. Step 2) Creating a READ Operation (Summary)1) Map the required RFM to the READ operation2) Define the fields from which this operation will obtain its key data3) Any 0..1 cardinality output
    • structures need to be flattened (i.e. fields that belong to data structures should be remapped to the Gateway Service’s root node)© 2012 SAP AG. All rights reserved. 26 27. Step 2.1) Define the Fields that Will Supply Key DataFor the RFM mapped to the READ operation, selecteach of its mandatory input fields and change theirmapping route to point to the correct Model Key field.Due to our previous mapping assignments, the inputfields of the READ RFM will now be populated withdata coming from the output side of the QUERYoperation.© 2012 SAP AG. All rights reserved. 27 28. Step 2.2) Flattening the Interface – 1/3The RFM mapped to the READ operation exposes the bank’s address in a datastructure called BANK_ADDRESS. If we left these fields within the data structure, wewould need to issue a second HTTP request to obtain the data.To remove the need for a second HTTP request, we must flatten the BANK_ADDRESSstructure by changing the mapping route of each field. These fields have been mapped to the root node These fields have yet to be mapped© 2012 SAP AG. All rights reserved. 28 29. Step 2.2) Flattening the Interface – 2/3As before, right-click on each field in the BANK_ADDRESS structure (this selects thefield but avoids deselecting the checkbox), then click “Change Mapping Route”.Select the root node of the Data Modeland press OK.This process must be repeated for eachfield in BANK_ADDRESS.© 2012 SAP AG. All rights reserved. 29 30. Step 2.2) Flattening the Interface – 3/3Once the BANK_ADDRESS structure has been flattened, the data it produces can thenbe supplied to other operations such as UPDATE or CREATE All fields have now been mapped© 2012 SAP AG. All rights reserved. 30 Developing Gateway Service based on a Remote Function Module or an Object in the Business Object Repository 1. Create a Gateway Data Model in the ABAP Development Workbench 2. Map your selected RFMs to Gateway Service operations using the Gateway Model Generator 3. Define the interface of the Gateway Service Operation based on the fields in the RFM 4. Generate the Gateway Data Model 5. Associate the Gateway Data Model with a Gateway Consumption Model 6. Associate the Gateway Service with a System Alias 7. Test your Gateway Service in a browser© 2012 SAP AG. All rights reserved. 31 Understanding Gateway Data and Consumption Models Remote Function Calls and Business Object Repository Overview 31. Agenda
    • 32. Step 4) Generate the Data Model Runtime ClassesOnce the mapping process is complete, the Data Model must be generated.Generating the Data Model createsthe classes that are used at runtimeA list of all generated classes will bedisplayed© 2012 SAP AG. All rights reserved. 32 Developing Gateway Service based on a Remote Function Module or an Object in the Business Object Repository 1. Create a Gateway Data Model in the ABAP Development Workbench 2. Map your selected RFMs to Gateway Service operations using the Gateway Model Generator 3. Define the interface of the Gateway Service Operation based on the fields in the RFM 4. Generate the Gateway Data Model 5. Associate the Gateway Data Model with a Gateway Consumption Model 6. Associate the Gateway Service with a System Alias 7. Test your Gateway Service in a browser© 2012 SAP AG. All rights reserved. 33 Understanding Gateway Data and Consumption Models Remote Function Calls and Business Object Repository Overview 33. Agenda 34. Step 5) Gateway Consumption Model – OverviewA GW Consumption Model is used toexpose your GW Data Model to theoutside worldConsumption Models are created in theABAP Developer WorkbenchOne or more GW Data Models can bebound to the GW Consumption Model.Also, one GW Data Model can beexposed through multiple GWConsumption Models.An ICF node is created under the path<default_host>/sap/opu/odata/sap/© 2012 SAP AG. All rights reserved. 34 35. Step 5) Gateway Consumption Model – 1/3Create a GW Consumption Model in theABAP Developer WorkbenchFirst create a new Consumption ModelEnter the Service’s Technical Name, being careful to provide a meaningful name.Whatever name you enter here becomes the service name seen in the URL. Do not uncheck this checkbox! Your Data Model and Consumption Model must use the same runtime.© 2012 SAP AG. All rights reserved. 35 36. Step 5) Gateway Consumption Model – 2/3Now assign your existing DataModel to the Consumption ModelRight click on the Consumption ModelEnter in the Data Model’sidentifier© 2012 SAP AG. All rights reserved. 36 37. Step 5) Gateway Consumption Model – 3/3The Consumption Model and DataModel are now associated with eachotherDouble click on the name of theconsumption modelThe URL of theGateway Service isnow shown.However, we’re not quiteready to test the GatewayService!© 2012 SAP AG. All rights reserved. 37
    • Developing Gateway Service based on a Remote Function Module or an Object in the Business Object Repository 1. Create a Gateway Data Model in the ABAP Development Workbench 2. Map your selected RFMs to Gateway Service operations using the Gateway Model Generator 3. Define the interface of the Gateway Service Operation based on the fields in the RFM 4. Generate the Gateway Data Model 5. Associate the Gateway Data Model with a Gateway Consumption Model 6. Associate the Gateway Service with a System Alias 7. Test your Gateway Service in a browser© 2012 SAP AG. All rights reserved. 38 Understanding Gateway Data and Consumption Models Remote Function Calls and Business Object Repository Overview 38. Agenda 39. Step 6) Assign System Alias to Gateway ServiceTransaction /IWFND/MAINT_SERVICE in Gateway HubThis transaction allows you to perform Gateway Service administration© 2012 SAP AG. All rights reserved. 39 40. Step 6.1) Locate Your Gateway ServiceYour Gateway Service is most easily located by selecting the “External ServiceName” column header and then sorting the list.© 2012 SAP AG. All rights reserved. 40 41. Step 6.2) Display Service Properties Once you have located and then selected your Gateway Service, you will see its properties displayed in the lower half of the screen. As can be seen, an active ICF node has been created automatically for the service However, no system alias is yet definedClick on “Add System Alias”© 2012 SAP AG. All rights reserved. 41 42. Step 6.3) Assign a System Alias Click “New Entries” and add a system alias for your service The “Service Document Identifier” is the full name of your Consumption Model Enter the system alias for the backend server that provides your business data If the Gateway add-ons have been installed in the same system as your backend Business Suite, then the system alias will typically be called LOCAL; however, this is only a convention and not a rule.© 2012 SAP AG. All rights reserved. 42 Developing Gateway Service based on a Remote Function Module or an Object in the Business Object Repository 1. Create a Gateway Data Model in the ABAP Development Workbench 2. Map your selected RFMs to Gateway Service operations using the Gateway Model Generator 3. Define the interface of the Gateway Service Operation based on the fields in the RFM 4. Generate the Gateway Data Model 5. Associate the Gateway Data Model with a Gateway Consumption Model 6. Associate the Gateway Service with a System Alias 7. Test your Gateway Service in a browser© 2012 SAP AG. All
    • rights reserved. 43 Understanding Gateway Data and Consumption Models Remote Function Calls and Business Object Repository Overview 43. Agenda 44. Step 7) Test Your Gateway Service – OverviewTesting a read-only Gateway Service can be done from a BrowserThe QUERY and READ operations of any Gateway Service use the HTTP GETmethod, and therefore can be tested from a browser.© 2012 SAP AG. All rights reserved. 44 45. Step 7.1) Invoke Gateway Service From a BrowserOnce you have saved your changes, you can test your Gateway Service bypressing the “Call Browser” button. This will display the “Service Document”© 2012 SAP AG. All rights reserved. 45 46. Step 7.2) The Gateway Service Document – 1/2The URL shown in SE80 for the Consumption Model points you to the ODataService Document.The Service Document is the starting point for Gateway Service consumption© 2012 SAP AG. All rights reserved. 46 47. Step 7.2) The Gateway Service Document – 2/2The Service Document lists the collections provided by this Gateway ServiceEach collection is identified by a relative URL.The collection’s relative URL should be appended to the service’s base URL© 2012 SAP AG. All rights reserved. 47 48. Step 7.3) Testing the QUERY Operation – 1/4To obtain an OData collection, append the collection’s relative URL to theservice’s base URLIn our case, we want to see a list of banks, so we construct the URL and issue thisfrom a browser.Be careful! Except for the Gateway Service part of the name, OData URLs arecase-sensitive.So let’s run the constructed URL... Hmmm, that’s not what we expected...© 2012 SAP AG. All rights reserved. 48 49. Step 7.3) Testing the QUERY Operation – 2/4We have not defined a constant value for the mandatory input field BANK_CTRYand neither has a value been supplied by the client.We can fix this by taking one of two approaches here:(Less flexible) Hardcode a constant value in the service definition, or(More flexible) Add a parameter to the URL to supply the missing value© 2012 SAP AG. All rights reserved. 49 50. Step 7.3) Testing the QUERY Operation – 3/4The most flexible option is to supply the missing parameter in the URLThe URL query string syntax for filtering an OData collection is as follows:?$filter=<field_name> <op> <value> “?” means “start ofYou must include a space or %20 the query string” field on which wethe operator Non-numeric The on either side of wish value. Comparison “$filter” is thefilter (case-sensitive!) to Operator such as in single quotes values must be OData command
    • eq or neImportant: As of Gateway 2.0 SP03, operators must be in lower case© 2012 SAP AG. All rights reserved. 50 51. Step 7.3) Testing the QUERY Operation – 4/4All data that matches the $filter command is now supplied to the clientThe QUERY operation returns 0..n <atom:entry>s in an <atom:feed> element?$filter=bank_ctry eq US© 2012 SAP AG. All rights reserved. 51 52. Step 7.4) Testing the READ Operation – 1/2Each <atom:entry> in an OData Collection contains an <atom:id> elementThis element contains the URL to perform the READ operation for that single entry© 2012 SAP AG. All rights reserved. 52 53. Step 7.4) Testing the READ Operation – 2/2The READ operation returns 0..1 entries in an <atom:entry> elementIf the entity cannot be found, then the <atom:content> element will be empty If found, the business data for the entry being READ will be contained within the <atom:content> element© 2012 SAP AG. All rights reserved. 53 Test your Gateway Service from a browser© 2012 SAP AG. All rights reserved. 54 Expose a Gateway Service for consumption Create a read-only Gateway Service based on a Remote Function Module or an Object in the Business Object Repository (BOR) 54. Summary You should now be able to:
    • NetWeaver Gateway- Service Builder 1. How To Build OData Services from anyBusiness Suite Data – Fast!Jeff Gebo, Chris WhealySeptember 2012
    •  Extensibility/Reuse of Gateway Services Professional ABAP Developer©  2012 SAP AG. All rights reserved. 2   EDMX-Model import Strong ABAP skills Ÿ   Integration and projection for important data sources like GenIL, SPI and BW Ÿ  Generation of service implementation from existing business functionality Ÿ  Generation of model definition Ÿ   The SAP NetWeaver Gateway Service Builder is a one stop shop tool that Technical covers the entire development lifecycle Consultant of a Gateway Service / BPX Ÿ   Developer productivity (low TCD) for Little or no ABAP skills ABAP Developer, Technical Consultant and Business Process Expert Ÿ 2. SAP NetWeaver Gateway Service Builder (SEGW)One-Stop-Shop for all GW OData Service Developers Ÿ  Define a new service completely from scratch©  2012 SAP AG. All rights reserved. 3  Take advantage of existing data sources and automatic content generation or…Ÿ   Consolidates all service design and runtime objectsFor both experienced and less-experienceddevelopersŸ  Define entity types, entity sets, associations etc.Project-based Service DevelopmentŸ 3. SAP NetWeaver GatewayService BuilderGateway’s Design-Time EnvironmentBuild and manage services from one locationOData modelling environmentŸ 4. Gateway Service Builder – Development Flow in Detail OData Service Defini.on in SEGW Data Model Declara.ve Import Import DDIC/ Definition (MPC) Data Model Defini.on Model Data Model RFC/BOR Redefine Defini.on* (EDMX) Interface* Data Source Service Include (GenIL, BOL, enera.on Service G Gateway SPI, BW Service* Service Easy Query, Implementation Service Implementa.on FC/BOR Code-‐Based Implementa.on* Map R MDX) Code-‐Based Extensions* mapping) Opera.on* (DPC) (Code based or Service * Repeatable Maintenance within Service Registra.on one service and Hub Ac.va.on ©  2012 SAP AG. All rights reserved. 4 5. Gateway Service Builder – Development Flow in Detail OData Service Defini.on in SEGW Data Model Declara.ve Import Import DDIC/ Definition Model Data Model RFC/BOR (MPC) Redefine Defini.on* (EDMX) Interface* Data Source Service Include (GenIL, BOL, Gateway SPI, BW Service* Service Easy Query, Code-‐Based Implementa.on* Map RFC/BOR MDX) Implementation (DPC) Code-‐Based Extensions* Opera.on* Service * Repeatable Maintenance within Service Registra.on one service and Hub Ac.va.on ©  2012 SAP AG. All rights reserved. 5
    •  Generate model provider class and stubs for data provider class©  2012 SAP AG. All rights reserved. 6   Modify properties as neededŸ   EDMX Modelling Tool (e.g. OData Visualizer in MS Visual Studio)Ÿ 6. Service BuilderFile ImportImport a Data ModelJumpstart service modellingŸ  Modify properties as needed©  2012 SAP AG. All rights reserved. 7  Wizard walks you through itŸ 7. Service BuilderImport Existing BOR/RFC Data Structure for Use in an OData ServiceImport a Data SourceRe-use Existing BOR/RFC InterfacesŸ  Drag-and-drop©  2012 SAP AG. All rights reserved. 8  Modify propertiesŸ  Add constantsŸ 8. Service BuilderGenerate an OData Service from an Existing BOR/RFC ObjectImplementation Without CodeMap to Data SourceŸ 9. Service BuilderAssociationsRelationships Between Entity TypesUse Service Builder to maintain associationsEnable navigation from one entity to another basedon associationAutomatic generation of associations in modelprovide class (MPC) and metadata©  2012 SAP AG. All rights reserved. 9 10. Service Builder – Runtime Artefacts NetWeaver System containing IW_BEP Registered Service Registered Model Name Name Data Provider Model Provider Base Class Base Class External Service Name Data Provider Model Provider Class Class Gateway Service©  2012 SAP AG. All rights reserved. 10 11. Demo©  2012 SAP AG. All rights reserved. 11 12. Use Case 1: RFC/BOR GeneratorImport from data source:1.  Create an entity “Account” from BOR Object Account BP ID* BP Role Email Phone …2.  Service Implementation for Account ©  2012 SAP AG. All rights reserved. 12 13. Use Case 2: CompositionImport from data source: Existing SalesOrder Service:1.  Create an entity “Account” from BOR Object SalesOrderHeader 0..N SO ID * Account Buyer ID BP ID* … 1 BP Role Email 1 Phone … SalesOrderItem SO ID* Item Position*2.  Service Implementation for Account 1..N Product ID3.  Composition with existing “Sales Order” service … ©  2012 SAP AG. All rights reserved. 13
    • 14. Use Case 3: Redefine a Service1. Create an OData Service from SPI PLM_MAT2. Redefine interface/metadata •  Select only relevant nodes •  Change labels •  Change External Names3. Overwrite/ Generate new service for adjusted interface©  2012 SAP AG. All rights reserved. 14 15. Thank youWhat’s new in Gateway SP5?http://help.sap.com/saphelp_gateway20sp05/helpdata/en/10/2b9c8a863a451ebe6bd4358d9d6adb/f rameset.htm 16. Legal DisclaimerThe information in this presentation is confidential and proprietary to SAP and may not be disclosed without thepermission of SAP. This presentation is not subject to your license agreement or any other service or subscriptionagreement with SAP. SAP has no obligation to pursue any course of business outlined in this document or anyrelated presentation, or to develop or release any functionality mentioned therein. This document, or any relatedpresentation and SAPs strategy and possible future developments, products and or platforms directions andfunctionality are all subject to change and may be changed by SAP at any time for any reason without notice. Theinformation on this document is not a commitment, promise or legal obligation to deliver any material, code orfunctionality. This document is provided without a warranty of any kind, either express or implied, including but notlimited to, the implied warranties of merchantability, fitness for a particular purpose, or noninfringement. Thisdocument is for informational purposes and may not be incorporated into a contract. SAP assumes no responsibilityfor errors or omissions in this document, except if such damages were caused by SAP intentionally or grosslynegligent.All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differmaterially from expectations. Readers are cautioned not to place undue reliance on these forward-lookingstatements, which speak only as of their dates, and they should not be relied upon in making purchasing decisions. ©  2012 SAP AG. All rights reserved. 16