Skip to Content

/wp-content/uploads/2015/07/sap_logo_752834.png

Appendix L:  SAP HANA Cloud Platform Mobile Services(HCPms)

The samples written for this guide were developed and tested against the SMP 3.0 server on premise version.  This section will demonstrate how Kapsel can be used with SAP HANA Cloud Platform Mobile Services(HCPms) and point out a few differences.

One benefit of using software in the cloud is that with just a few clicks, an instance of the software is ready to be used.  By comparison the download for the SMP 3.0 server install is over 2 GB and can take a while to download and install.  In general a server that is hosted in the cloud will automatically have patches applied to it, have backups taken, handle failover, and have hardware capacity added or removed as needed.  When the server is in the cloud, depending on the setup, individual developers may have less access to configuration files, log files and changes made by one developer could affect all others using the shared server.

One of the first differences seen between the cloud and on premise versions of the server is that the management cockpit is different.  It is Fiori based.

Another difference is that the management cockpit host and the host used to access the server are different.  The following is an example of the URL used for the management cockpit.

https://hcpmsadmin-i82xxxxtrial.dispatcher.hanatrial.ondemand.com/sap/mobile/admin/ui/home/index.html

The following is the host name used to connect to the server from within the app.

hcpms-i82xxxxtrial.hanatrial.ondemand.com

One more difference is that the user name and password to access the HCPms server is your SAP Community Network user name and password or possibly an SAP supplied client certificate.

See also
SAP HANA Cloud Platform Mobile Services Released
How to Enable HANA Cloud Platform Mobile Services Trial
Setting up an SAP HANA Cloud Platform Mobile Services Developer Account

The following sections provide some examples and guidance for Kapsel plugins that interact with the HCPms.

Registering
Logon Plugin and Proxied Data
AppUpdate
Push
Logging
Offline
SAP Fiori Client

Registering

  • Open the Mobile Services Cockpit.
    image0.PNG
  • Click on Applications, then click on the + icon in the bottom toolbar.
    Create a new Application with an application ID of
    com.mycompany.logon

    and a name of

    Logon Demo

    The type should be Hybrid and the Security Configuration can be set to None.

    image1a.PNG

    Provide the following URL for a Backend URL.

    http://sapes1.sapdevcenter.com:8080/sap/opu/odata/IWFND/RMTSAMPLEFLIGHT/

    Set the Authentication Type to be Basic Authentication and provide the user name and password to access the Backend URL.
    The proxy type can be No Rewriting or Rewrite URL on HANA Mobile Server
    Select Proxy Type Internet since this URL is a publicly available URL as opposed to one that is only available internally on a corporate network.
    image1.PNG

  • Register against this server in Chrome using register.html from the Logon section.
    Remember to place a copy of datajs-1.1.2.min.js in the same directory as register.html.
    Change the getSMPURL method to use HTTPS and port 443.
    Also change the value for the SMP Host to be the URL for your server instance such as hcpms-i82xxxxtrial.hanatrial.ondemand.com.
    Finally remember to restart Chrome using the –disable-web-security flag to avoid CORS errors.
    image5.PNG

    The registrations for the application com.mycompany.logon can be examined by clicking on the Home icon > Registrations and Users > Application ID (All) > Application ID (com.mycompany.logon).
    image2.PNG

Logon Plugin and Proxied Data

  • In order to use the Logon plugin to register against an SMP server that uses HTTPS, the mobile device or simulator will have to trust the certificate that the server is using.  The certificate authority used by a particular HCPms server can be seen by examining the site in a Chrome browser as shown below.
    image3.PNGimage4.PNGimage6.PNG

    Note, the Baltimore CyberTrust Root is installed by default on Android and iOS devices and emulators.

  • If your network uses a proxy to access the internet, you may need to set a proxy for your device or emulator so that it can access the HCPms server.  See also Proxy Setting for Android.
  • Create or reuse a project similar to the one shown in the Logon section.  Modify the serverHost variable to point to the name of the server hosting the HCPms, use port 443, and https=true.
    In the management cockpit for the backend notice that the following URL which uses HTTP rather than HTTPS is used.
    http://sapes1.sapdevcenter.com:8080/sap/opu/odata/IWFND/RMTSAMPLEFLIGHT

    If you do wish to use HTTPS, the following instructions may be helpful.  How to use HTTPS Connections with SMP Cloud.

    Deploy and run the project.
    image7.PNG

App Update

The steps for using the AppUpdate plugin are essentially the same between the on premise and cloud server.  Follow the instructions from the AppUpdatesection of the guide and make sure to change the host, port and https settings in index.html to match the values used for your HCPms server.

"serverHost": "hcpms-i82xxxxtrial.hanatrial.ondemand.com", //Place your SMP 3.0 server name here
"https": "true",
"serverPort": "443",

Also, when running the kapsel deploy command make sure to change the servername, port, user name and password.

kapsel package
kapsel deploy com.mycompany.appupdate hcpms-i82xxxxtrial.hanatrial.ondemand.com:443 i82xxxx mypassword

Note that when using the kapsel deploy command the staged version (if there is one) is set to be the current version rather than the version being deployed.  This has been reported as BCP issue 1570460186

The Management Cockpit can also be used to deploy the zip file generated by the kapsel package command.  Under App Specific Settings, choose Upload Kapsel and then once uploaded, select it and choose Deploy.

image8.PNG

In the above screenshot, the app with a deployment version of 1.0.5 is currently deployed to all users.  The newer version could be made available as a staging version to testers by clicking on the stage link.  Once it has been tested, it could then be deployed for all users.
To enable a user to receive staged versions, go to Registrations and Users, select the user and enable the Is Tester toggle.

Push

Follow the instructions from the Push section of the guide and make sure to change the host, port and https settings in index.html to match the values used for your HCPms server.  One difference is how a user is assigned to the Notification User role.  This is the user name and password that is allowed to send a notification from the HCPms server to the registered devices.

Open the SAP HANA Cloud Platform Cockpit

https://account.hanatrial.ondemand.com/cockpit

Click on Services
Under SAP HANA Cloud Platform Mobile Services, click on the Roles icon.
Click on Roles, select the Notification User role and assign your user id to the role.
Note, it may take some time before this setting takes effect.

image9.PNGimage9b.PNG

The following is an example of sending a notification to an app that has registered with the HCPms server.  Notice that for the unauthenticated user is named public rather than nosec_identity as it would be if using the on premise version of the server.
image11.PNG

Logging and Settings

Follow the instructions from the Logger section of the guide and make sure to change the host, port and https settings in index.html to match the values used for your HCPms server.  The uploaded log files can be viewed under Logs > Logs and Traces.  Various filters can be set to help find the uploaded log entry such as filtering by the application ID and by type.
image10.PNG

Follow the instructions from the Settings section of the guide to enable the log level of the application to be set by the management cockpit and the settings plugin.

Offline

Follow the instructions from the Offline section of the guide and make sure to change the host, port and https settings in index.html to match the values used for your HCPms server.
The Maximum Connections setting under the Backend tab in the management cockpit for the application com.mycompany.offline2 must be set to 0 to workaround a problem where a read request against services.odata.org would take 60 + seconds following an update.

SAP Fiori Client

Follow the instructions from the SAP Fiori Client section of the guide and make sure to change the host, port and https settings in index.html to match the values used for your HCPms server.

Note that the Fiori Demo URL cannot be used when proxying through either the on premise or HCPms server.

On the BackEnd tab, select Rewrite Mode of Rewrite URL on Backend and then check the Via HCP HTML5 App as shown below.image12.PNG

The fiori lauchpad will call the path / after logout. Doing this will lead into a 401 because / is not mapped to the oDP session context.

Back to Getting Started With Kapsel

To report this post you need to login first.

3 Comments

You must be Logged on to comment or reply to a post.

  1. Jens Glander

    Hi Daniel,

     

    I’m following your ‘Registration’ section but unfortunately it results in my case in a javascript error:

     

    Here is the error as screenshot:

    /wp-content/uploads/2015/11/register_with_js_error_828383.png

    The user has registered successfully, but returns with an error:

    /wp-content/uploads/2015/11/registered_user_828384.png

    And here is my logon app config as screenshot:

    /wp-content/uploads/2015/11/logon_app_config_828385.png

    Any idea what’s wrong here?

     

    Many Thanks you for your help.

    Jens

    (0) 
    1. Michael Jess

      Hi Jens,

       

      Generally I would recommend to read up on CORS in order to understand what’s going on here: https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

       

      Now what you are seeing here is a limitation of Chrome when it comes to CORS with local files. In short, Chrome will set the Origin request header to “null” when you are opening local files, and therefore Chrome will fail to match the Origin with Access-Control-Allow-Origin response header, even when the server returns wildcards. The result is that Chrome will prevent you from accessing the HCPms endpoint via AJAX. So much for the issue, now let’s take a look at what we can do about it.

       

      Your first quick and dirty option is to launch Chrome with the –disable-web-security flag, that will completely disable the Same Origin Policy client-side. This will work nicely for testing. Make sure there are no residual chrome.exe images running before you do so.

       

      Secondly, you could serve the HTML file from a local web server and have HCPms disable the Same Origin Policy. That way Chrome will be able to set some Origin header (probably localhost), and HCPms will return wildcards for allowed hosts, which Chrome can then match.

       

      Thirdly, you could also just stick with the local file, but switch to another browser. In this case HCPms needs to be configured to disable the Same Origin Policy, too, though.

       

      Last but not least, the Same Origin Policy simply does not apply to Cordova apps, so when you deploy your web page to a Mobile device, all the above does not matter. It will just work, since it is not enforced.

       

      Hope that helps,

      Michael

      (0) 
      1. Jens Glander

        Great Help, Michael!

         

        Launching Chrome with –disable-web-security flag (1) and serving register.html from a local web server (2) works as one can see here 🙂

        /wp-content/uploads/2015/11/successfully_registered_828795.png

        ManyThanks.


        Regards,

        Jens

        (0) 

Leave a Reply