Professional Documents
Culture Documents
[ Learning Points
Simplified mobile business app development with Portal on Device Near-native user experience with HTML5-based mobile web applications Lower TCO with the device-agnostic approach to mobile app development
[ Agenda
Introduction to Portal on Device Create the Application Skeleton Device-Portal Interaction Model Consume NetWeaver Gateway Services
Java-based Consumption Take the Load off Portal Lets Take This Offline Shake it to Find Local Banks
Easy consumption via browser or mobile devices Appealing branding based on Ajax Framework Aligned offering with Sybase portfolio Smart integration with on demand solutions (SAP and third party services) Social Intelligence tools for SAP StreamWork Support for common web standards Improvements for portal core (TCO reduction) Enhancing Enterprise Workspaces Professional Web Content Management Professional Document Management Reliable infrastructure with minimal TCO
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
[ Agenda
Introduction to Portal on Device Create the Application Skeleton Device-Portal Interaction Model Consume NetWeaver Gateway Services
Java-based Consumption Take the Load off Portal Lets Take This Offline Shake it to Find Local Banks
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
Override service method of AbstractPortalComponent Use the utility library to set the correct DOCTYPE
public void service(IPortalComponentRequest request, IPortalComponentResponse response) throws PortalComponentException { EnhancedPortalResponse epResponse = new EnhancedPortalResponse(request, true, false); epResponse.setDocTypeToHtml5(); super.service(request, response); }
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
11
[ Useful Tips
The HTML5 utility library can be used to add additional elements, e.g.
Custom URL schemes can be used to launch native apps, bridging the web app and native 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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
[ Agenda
Introduction to Portal on Device Create the Application Skeleton Device-Portal Interaction Model Consume NetWeaver Gateway Services
Java-based Consumption Take the Load off Portal Lets Take This Offline Shake it to Find Local Banks
13
[ The Scenario
Add a page to show a list of sales orders retrieved from an ECC system
JCA (Java EE Connector Architecture) will be used to connect to the ECC system.
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
Portal
Portal Services
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
[ Overall Steps
Add build-time and runtime references for JCA Create a separate portal component to handle sales order retrieval and delivery Add JavaScript functions to retrieve JSON-formatted sales orders by AJAX calls
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
17
[ Useful Tips
JSON utility classes can be found in the HTML5 utility library. To output pure JSON, bypass document hooks by using the following URL:
/irj/servlet/prt/prtrw/prtroot/myMobileApp.SalesOrder
Build semi-static data into the DOM for smooth navigation back and forth.
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
[ Agenda
Introduction to Portal on Device Create the Application Skeleton Device-Portal Interaction Model Consume NetWeaver Gateway Services
Java-based Consumption Take the Load off Portal Lets Take This Offline Shake it to Find Local Banks
19
Overall Steps:
21
[ Agenda
Introduction to Portal on Device Create the Application Skeleton Backend Data Consumption Model Consume NetWeaver Gateway Services
Java-based Consumption Take the Load off Portal Lets Take This Offline Shake it to Find Local Banks
22
[ The Scenario
Scenario: Retrieve the list of banks directly from NetWeaver Gateway by JavaScript.
Challenge: Impossible to retrieve data from Gateway due to JavaScript Same-Origin Policy
Mobile Browser
Portal
http://<portal>
Main Page
datajs lib
REST calls
Gateway http://<Gateway>
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
Add a ProxyPage on the Gateway system to handle generic Gateway calls by datajs. Use HTML5 Cross Document Messaging for cross-domain data exchange
Main page dynamically spawns a hidden iframe that points to the ProxyPage.
Main page sends commands to the ProxyPage to perform data retrieval/update/etc. ProxyPage sends REST data (in JSON format) back to main page Mobile Browser
Main Page http://<portal>
Cross Document Messaging
Portal
Hidden iframe
http://<gateway>/ProxyPage.html Datajs lib
Real Experience. Real Advantage.
Gateway
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
25
[ Best Practices
Take the load off portal for better scalability if the data is already exposed to Internet directly
The typical cross-domain challenge can be addressed by Cross Document Messaging and Cross-Origin Resource Sharing (CORS) Generalize ProxyPage in the Gateway system to suit all kinds of consuming applications
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
[ Agenda
Introduction to Portal on Device Create the Application Skeleton Device-Portal Interaction Model Consume NetWeaver Gateway Services
Java-based Consumption Take the Load off Portal Lets Take This Offline Shake it to Find Local Banks
27
Appify offline-capable iViews (HTML5 Offline Web App) to make it always available Sync semi-static data to the browsers local database, eliminating unnecessary roundtrips to portal Use a dedicated Web Worker thread for background synchronization to create a highly responsive UI Ideal for lightweight data centric application
Offline iView
Main Thread Web Worker
Sync
Portal
DB
Real Experience. Real Advantage.
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
29
[ Best Practices
Place the pages in a HTML file (not JSP) in the portal application, which will serve as the entry point to install the offline app. Use HTML5 offline cache to speed up loading of both online and offline applications Configure AS Java to serve the correct MIME type for the cache manifest.
Configure your offline app to run full-screen with a startup image to give it a professional look
Android browser does not support Web Workers yet. Use inthread sync instead. Consider Sybase Unwired Platform for complex DB sync
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
[ Agenda
Introduction to Portal on Device Create the Application Skeleton Device-Portal Interaction Model Consume NetWeaver Gateway Services
Java-based Consumption Take the Load off Portal Lets Take This Offline Shake it to Find Local Banks
31
Use the new ways of human interaction to create highly professional mobile web applications
Modern mobile devices are equipped with smart sensors that were never available to desktops and laptops The smart sensors have made possible cool new ways of human-machine interaction HTML5 applications have access to most sensors including accelerometer, gyroscope, GPS, compass, camera*, microphone*.
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
33
[ Agenda
Introduction to Portal on Device Create the Application Skeleton Device-Portal Interaction Model Consume NetWeaver Gateway Services
Java-based Consumption Take the Load off Portal Lets Take This Offline Shake it to Find Local Banks
34
Requirements Retrieve data from HANA and show it on mobile devices in an appealing way.
Solution:
Use HTML5 Canvas or SVG to visualize the data. SVG and Canvas are well supported on popular mobile devices.
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 kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
36
[ Agenda
Introduction to Portal on Device Create the Application Skeleton Device-Portal Interaction Model Consume NetWeaver Gateway Services
Java-based Consumption Take the Load off Portal Lets Take This Offline Shake it to Find Local Banks
37
[ Key Learnings
Leverage NetWeaver Portals rich connectivity to various backend systems. Separate business logic and UI into different portal components to allow UI flexibility, responsiveness and reusability Use cross-site data retrieval via JavaScript whenever possible to build a highly scalable solution Make offline-capable iViews always available on home screen. Use HTML5 Canvas and SVG for a more vivid user experience without browser plug-ins. Leverage new ways of human interaction to impress your users
38
[ Further information
General Information Follow us on Twitter: http://twitter.com/#!/PORTAL_SAP Demo videos: http://www.youtube.com/user/SAPNetWeaverPortals Decisions Makers Overview information on www.sap.com Technical Consultants, Developers & Architects SCN Portal Community: http://scn.sap.com/community/portal Detailed release notes for SAP NetWeaver 7.3 Project Managers Release Notes, Documentation: http://help.sap.com > SAP NetWeaver SAP Release Brochure: http://service.sap.com/releasestrategy Partners Partner Portal: https://service.sap.com/partnerportal/products Solutions on SAP EcoHub: http://ecohub.sdn.sap.com
Real Experience. Real Advantage.
39
40
]
41