1 2 3 78 Previous Next

SAP for Mobile

1,164 Posts

Hi everyone,


This is the second part of the blog post to detail out the steps to build an X Code project for SAP Work Mgr. 6.2 with ESRI GIS libraries and SAP EAM SDK included. The first part of the blog is at the below link:

Integrate GIS libraries in SAP Work Mgr. - iOS - part 1



SAP EAM Mobile App SDK 1.0


1) Download the SAP EAM SDK from SAP Support Portal. You can find this under Installation and upgrades-> A-Z-> E


2) Now we need to include the SAP EAM libraries and resources in the X Code project. Right click in the blank area in X Code -> Show in Finder. Create a “Resources” folder in your project where the .xcodeproj file is located. Create 2 new folders under the “Resources” folder, CommonResources, GISResources

create folders.jpg


2 folders.JPG


3) Copy contents from the following path SDK/Common/Common.framework/Resources to the CommonResources folder that was created in step above. Copy contents from following path SDK/GIS/GIS.framework/Resources and past them in the GISResources folder just created




4) In the end, your “Resources” folder should look like this


assets folder.jpg




5) Right click in blank area in your X Code, add files to your project and add this newly created “Resources” folder. Current project structure is in thebelow screenshot.


add resources.jpg


proj struc.jpg


6) Now we need to add the Common. Framework and GIS. Framework to the project. Click on the “target” in the project navigation view in X Code and then click on “Build Phases”-> Link Binary. Click “+” button and choose add other


add common 1.jpg



add common 2.jpg


7) Navigate to the folder where you installed the Arc GIS SDK and add the common.framework file to the project (path SDK/Common/Common.framework). Repeat to add GIS.framework file to the project (path SDK/GIS/GIS.framework).


add gis and common.jpg


8) Add systemconfiguration.framework by navigating to build phases->Link Binary


system config.jpg


9) Build your project and run in simulator. You have now finished building a project with the ESRI and SAP EAM libraries included. IF ALL BACKEND CONFIGS(from a Syclo and GIS standpoint) are in place, you should start seeing asset data under the locations tab in the app.


Hope this helps.




Hi everyone,


This is my first SCN blog post :-). I just wanted to write a detailed step-by-step integration with screenshots on how to include ESRI/GIS libraries with SAP Work Mgr. on the iOS client. The entrie process will be detailed out in 2 blogs.


I am not an iOS/client side developer and had to learn this process with a lot of trial and error and with support from SCN members. I hope this document helps anyone who is trying to accomplish this. This document is written from a "non-iOS" developer point of view, so there might be too much detail for iOS developers.


P.S - this post is open to suggestions/modifications, there might be other(and even better) ways to do this. I have followed this process at least 6-7 times on different Mac books and it has worked for me.


P.P.S - Please review the “SAP EAM and service mobile app SDK 1.0 Installation Guide” in the “Installation & Upgrade guides” section of the SAP Support Portal to get an overview of all the components that are needed to enable GIS in SAP Work Mgr. This document is a step-by-step guide to include all libraries, once you understand what pieces that are needed.


SMP SDK set up


1)  Install SMP SDK for Mac(I used SMP SDK SP06) AND Windows(yes, you need the SDK for Windows also as the file you need SMPAgentryClientFramework-iOS-70.6.0.tgz is not available in the Mac version of the SMP SDK - strange!). Technically, installing SMP SDK on your Mac is optional if you are able to transfer the SMPAgentryClientFramework-iOS-70.6.0.tgz file from the Windows version of the SMP SDK to your Mac under the $Home\SAP\MobileSDK3 folder- see below screenshot(SMP SDK installation creates this directory for you, if you have chosen not to install the SDK you can create this folder manually)


windows file.jpg

2) Extract the contents of this file on your Mac

extract on Mac.jpg

XCode set up


1) There is a sample X Code project already included in the SDK. This is part of the SMPAgentryClientFramework-iOS-70.6.0.tgz that was extracted in step above.Path = SMPAgentryClientFramework - >iOS->Samples->SMPAgentryFrameworkSetup->SMPAgentrySetup.xcodeproj. Double click on this file, it should open in X Code.


2) Build and run this project in simulator just to make sure that there are no errors.

initial build success.jpg

3) Download ESRI SDK to your local machine. Navigate to https://developers.arcgis.com/ios/objective-c/guide/install.htm to install the latest version of the libraries (version number used in this document is 10.2.4). Assumption is that your organization/client have the required licenses from ESRI, covering that is beyond the scope of this document


4) Set up your X Code project to include the ESRI libraries (all instructions can be found at https://developers.arcgis.com/ios/objective-c/guide/install.htm

Below screenshots are from my X Code project corresponding to steps 1-4 in the ESRI instructions (in above screenshot). Again, the instructions on the ESRI website are quite detailed, please follow them carefully.


- Add ArcGIS to the framework search paths

framework search path.jpg

- Add build flags (I only copied part of the text from the Arc GIS website -> -framework ArcGIS -| c++

other linker flag.jpg

- Add dependencies(screenshot is only for adding the Assets library framework, likewise add all framework as mentioned on the ESRI website)

add dependencies.jpg


add dependencies2.jpg.png

- Add Arc GIS bundle to project. Navigate to the path where Arc GIS SDK is installed. Typically this is ${HOME}/Library/SDKs/ArcGIS/iOS/ArcGIS.framework/Versions/Current/Resources

add dependencies.jpg


add dependencies2.jpg.png


5) Build your project to check if there are any errors, you should see the app logon screen. I did not have to import the ArcGIS.h file to get the build to succeed


build with arc gis.jpg


I will complete the rest of the process in the next blog. The next step is to download the EAM SDK from SAP.




To all Agentry and SMP 2.3/3.0 users,


As a proactive effort by SAP Support (One Service), we would like to share an issue discussed by users when they upgrade their laptop/computers to Windows 8.X Enterprise system. This is normally seen when the IT department starts to order new laptops for new users or changing existing computers.


When this is done, the normal problems shown are that the standalone Agentry Test Environment provided by SAP in the Service Marketplace is not fully functional and not responsive. This is a known issue and the solution and changes to fix this is documented under:


SAP KBA article # 2167661 - Agentry Test Environment (ATE) - does not work in Windows Enterprise 8.0 or 8.1.


If you read the article, it will tell you what the problems  are, the causes and the solution. Under the solution it will include the limitation. Under reference, you will see the related SCN articles describing the changes.


Hope this helps.


Best Regards,

Mark Pe
SAP Senior Support Engineer

While our priority is to enable our customers to "Run Simple", it is sometimes easier said than done, especially when first starting out.  SAP Knowledge Management (KM) is aware of the challenges customers (both internal and external) face when using Mobility products to create business solutions.


For example, you want to build a Native OData App. Some of the questions you need to answer include:


  • Is there some way to simplify dependency/build management in my IDE: podspec file, maven repository, other?
  • I'm building an Android app, do I use Eclipse with ADT plugin or Android Studio?
  • Is my app going to be online, offline, or occasionally offline?
  • What is a defining request?
  • Will clients be connecting to SAP Mobile Platform Server or SAP HANA Cloud Platform mobile services, and are the same services provided on each?
  • Which version of the SDK is compatible with which version of the server/HCP?
  • Does the back-end OData service support ETags, server-side paging, what version of OData is supported?
  • Do I need to use Integration Gateway to access the datasource?
  • How do I build the app efficiently (pulling in only the required data)?
  • What kind of authentication will my app require?
  • How do I debug this thing?

Too many ????????

A couple things are clear:

  1. It takes a village...to build a worthwhile app: Customer, Developer, SMP/HCP Administrator, OData service support, and more
  2. Sometimes you don't even know what questions to ask


Where to start:

Help Portal - the starting point for SAP Mobile Platform documentation:

SAP Mobile Platform – SAP Help Portal Page

Select the SDK release of interest. For example:

SAP Mobile Platform SDK 3.0 SP08 – SAP Help Portal Page


Native OData SDK Release Notes - describes what is new for that release, and other important notes. If unsure when a feature was introduced, the release notes provide the answer:

Native OData SDK - Release Notes Summary - SAP Library

Core Content (Native OData App Development) -


App Development:

Setup information: Setting Up the Native OData Development Environment - Developer - SAP Library


Online: Native OData App Development Using the OData API - Developer - SAP Library



Offline: Developing iOS, Android, an Windows Offline OData Applications - Developer - SAP Library


Ocassionally offline: Developing iOS, Android, and Windows Occasionally Offline OData Applications - Developer - SAP Library


API Documentation location – the relevant APIs are described in the core documentation, but the actual API doc ships with the SDK:

Native OData API Reference - Developer - SAP Library


           Hana Cloud Platform Mobile Services:

         Configuring applications: SAP HANA Cloud Platform Mobile Services



SCN – webinars, blogs, how-to guides targeted to Native App developers:

Mobile Application Development Platform for Developers - Native Apps


PAM - the SAP Product Availability Matrix includes a complete list of product compatability and requirements:

Product Availability Matrix | SAP Support Portal

Click the Mobile link at the top of the page. Scroll to find the appropriate product and version in the product list.

Access to PAM requires an SAP Service Marketplace login: http://help.sap.com/disclaimer?site=http://service.sap.com/request-user

Google it - a quick search for "SAP Integration Gateway" includes this:

Integration Gateway in SAP Mobile Platform 3.0


And a search for "SAP delta calculation" returned this:

Delta Calculation using the SAP Exchange Framework

Android for Work is an enterprise mobility management (EMM) platform function that lets companies deliver a secure, productive, and rich mobile experience to their employees on Android mobile devices. Solutions built on Android for Work include these benefits:


  • Security and Data separation
  • Support for BYOD and Corporate owned/provisioned devices
  • Remote device and application management capabilities
  • Seamless user experience (Personal and Work on same device)
  • Simplified Application Deployment
  • Support for Divide Productivity Suite (E-mail, Calendar, Tasks, etc.)
  • Secure communication


SAP offers Android for Work solution as part of SAP Mobile Secure (Cloud).

Read detail introduction from Milja Gillespie - Google Announces Android for Work



Current Android for Work requirements are:


  • Android 5.0+ Lollipop devices with managed profile support.
  • Android 4.0 - 4.4 (Ice Cream Sandwich, Jelly Bean and KitKat) devices using the Android for Work App (to be supported at a later date).


What is an Android for Work Profile?


A work profile is a managed corporate profile associated with the device’s primary user profile. When managed profiles are provisioned on the device, the corporate account, apps and data will remain under the control of the IT administrator and are kept separate from personal accounts, apps and data. By default, pre-configured Work apps are enabled in the work profile and will appear ‘badged’ with a red briefcase at the end of the personal apps drawer. Enforcing the work profile allows IT departments to secure the environment where business apps and data are running on a user’s device, without restricting personal apps and profile usage.


The work policy controller sets up a work profile to separate your personal and work space on Android 5.0+ devices.


Additional Resources


Thomas Saueressig, SVP & Global Head of IT Services for SAP SE, discusses how SAP delivers a consumer-focused mobile experience in the workplace with Android for Work.


Milja Gillespie explains how SAP is Working with Google to Accelerate Android for Work


In this blog, read details on SAP Mobile Secure Support for Android for Work Now Available


Read Android for Work Security white paper


Sapphire 2015 - SAP tightens Google partnership with software integration plans


How to setup Android for Work in SAP Mobile Secure




Start your FREE 30-day trial of SAP Mobile Secure...


Your free trial of SAP Mobile Secure includes unrestricted access to our mobile device management (MDM), mobile app management (MAM) and mobile app security solutions. Get up and running in minutes. Try Enterprise Mobility Management (EMM) Software with a Free Trial of SAP Mobile Secure.

In this post, you'll learn how to publish Fiori iOS application type in SAP Mobile Secure.




  • SAP Mobile Secure
  • iOS Developer Enterprise Certificate
  • iOS Provisioning file


Obtain iOS Developer Enterprise Certificate

It is recommended using iOS Developer Enterprise Program's Production certificate with SAP Mobile Secure, if deploying app to all users.  While you can use certificate from iOS Developer Program with SAP Mobile Secure, be aware that app deployment is limited to registered devices only and there may be other restrictions.  If using iOS Developer Program certificate, be sure to register your device using UDID under app's Provisioning Profile.

1. Obtain iOS Developer Enterprise Program account


2. Login to iOS Developer Console


3. Click Certificates, Identifiers & Profiles


4. Under iOS Apps, click Certificates (All)


5. Add Production, AppStore and AdHoc, and Continue



7. Upload CSR and click Generate




8. Download your certificate




9. Click Provisioning Profiles (All) and click on name used for certificate (Download file)




Add Application to SAP Mobile Secure App Catalog

Okay, now we are ready to add Fiori type application to SAP Mobile Secure.

1. Login to SAP Mobile Secure


2. Click Add new application



3. Select Application Type as Fiori Application (and click Next)


4. In Details section, provide Name (e.g. E2E Mobile Cloud Demo App); other fields are optional


5. Multimedia - optionally provide app icon and Banner image (only required if app will be featured in SAP Mobile Place)


6. Categories - select a Category (where this app be listed under); simply drag-n-drop from Available to Selected


7. Owner info - add additional app owners (co-owners who can manage this app's lifecycle)


8. Supported Platform - click Get Started to add platform type


9. Add new platform > Info

  1. OS Platform - iOS
  2. Base URL - You can use any website or Fiori App URL (e.g. Fiori Launchpad)
  3. Icon - optional
  4. Splash Screen - optional



10. Add new platform > App Signing

  1. Singing Certificate - Upload certificate
  2. Private key passphrase - Input passphrase
  3. Provisioning Profile - Upload file




11. Add new platform > Multimedia (optional)




12. Add new platform > Documents (optional)




11. Add new platform > Trial Users (skip) and click OK




12. The Fiori build service is generating .ipa on the fly for publishing to SAP Mobile Place




13. Once the app is uploaded, click action button to set the app to production so users can view and install application from SAP Mobile Place.




Congratulations!  You have successfully added the Fiori app for iOS in the App Catalog.  Your users will be to navigate to SAP Mobile Place and download the application.



About SAP Mobile Secure


For more information on this topic, head over to SAP Mobile Secure Cloud.


You can start your free 30-day trial of SAP Mobile Secure today!

Hi there,


I’m very proud to announce that as of today we have released a major feature release for SAP HANA Cloud Platform mobile services. You probably you have not noticed, but since January we have updated mobile services at the end of each month and provided some patches. This is true for the Trial as well.

But today is different. Today we have deployed a major feature release, which includes:


  • SAP Fiori Support
  • Staging Area
  • Push Hub
  • SAP Logon Ticket Support


SAP Fiori Support


SAP HANA Cloud Platform mobile services supports routing of Fiori Apps in proxy-mode adding additional Mobile Qualities to Fiori Apps (using Fiori Client, Custom Fiori Client or Packaged Fiori App). Fiori Client refers to the public Fiori Client App that is available here (AppStore, Google Play).

It can be used to consume a Fiori Endpoint URL directly or via HCPms.

Using the SAP Mobile SDK you can create your own version of the Fiori Client to customize it. For example, you want to create your own home screen icon, apply your own App signing or add any special behavior you want. This is what we typically call a Custom Fiori Client.

If you want know more about the the Fiori Client you should read John Wargo’s blog here: Introducing SAP Fiori Client 1.2.

The last option is potentially worth an own blog entry, but you can get an idea of what is meant by “Packaged App” when you read the blog about our Hybrid Application Toolkit, which let’s you build mobile Apps in the WebIDE and deploy them as Hybrid Apps to iOS or Android. In this latest scenario you are walking away from a Mobile WebApp consumed by the Fiori Client to a real mobile Application running entirely on the device – well, you still need to fetch the data from the backend.

Anyhow, all these three consumption options are possible with mobile services as of today.

But this is not all that we deliver. With this release we will extend our Client Policy to let you remotely enable/disable the mobile capabilities of the Fiori Client. So this allows an administrator in the Mobile Services Cockpit to remotely enable the barcode scanner plugin or disable the camera plugin for a given application.


Staging Area

If you have experience with the Hybrid App lifecycle and used the AppUpdate plugin of our SDK you know that you can easily update an already distributed App. With the new staging area you can allow developers to update a new version of your HTML5 content and assign this version to a specific group of people – we call them Testers – for access. This new version will only be available to the Testers and not to the public users. Once the Testers are ok with the new version, it could easily be moved to the productive area where the usual rollout process starts. This greatly enhances the rollout process and makes it more manageable. It supports an enterprise to deliver the user experience that mobile users are expecting today.

And this is how it looks like:



SAP Logon Tickets

In order to allow Single Sign On for SAP back-end systems HANA Cloud Platform mobile services will now be able to create MYSAPSSO2 logon tickets after successful authentication of a user. This is implemented in the way that the token will never hit the device and is entirely handled and stored on the server side. Once the trust between the SAP back-end system (e.g. a SAP CRM) is established a token, issued by the mobile services will authenticate a users request against that system. Since trust can be established between multiple systems this token will authenticate the users request against multiple systems




Push Hub

The Push Hub is a very special service. It is only meaningful if you have a mobile app, distributed via a public app store and many different enterprise customers use this particular app – so we are talking about reselling business now. This app now is signed with your push certificate or contains your notification API key and only you are allowed to send notifications to it. But the back-end systems of your customers are generating the business event that needs to be distributed.

The Push Hub is an abstraction service that allows you to store your push certificate/API Key there and point your SAP Mobile Platform or the mobile services to the Push Hub, which will be the hub for your notifications. The following picture explains the Push Hub:


The trial landscape will be updated as well, so that you can get your hands dirty with those new features.



Have Fun,

Martin Grasshoff

I  installed SMP 3.0 SP07 directly and installed SAP Work Manager 6.2/6.1 and are trying to connect the WPF Client to the Work Manager might face a problem with the message communication error(14). You might have followed all the steps and the address https://fqdn:8081/SAPWM returns an "I am here!" message and still wondering why client is not connecting though the certificates are in place.


Refer to the documentation standard SAP Documentation - HTTPS Connection Problem - Administration Overview - SAP Library


1. I tried connecting my WPF Client and it would not even hit the SMP 3.0 Server. I started SMP 3.0 (using go.bat) to view the connections hitting the Server and it would not hit the SMP 3.0 Server.


I was puzzled. I went through the SAP NOTES related to communication error (14) diligently ensured that all the steps were followed and nothing was missed.


Possible Solution


As indicated by the above standard documentation. The SMP server  has changed the default security parameters for the HTTPS connection on port 8081 to only use TLS v1.2.  Only problem is that neither the WPF client, or the WinMobile client support TLS v1.2. As a work around it is necessary to change the default tomcat settings to sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1" and then restart SMP 3.0 (the file to be changed is described in the standard documentation link above).


This may not be a problem in iOS Clients (looks like they already supports TLSv1.2)


Also if you are upgrading from SP06 to SP07 it may not be a problem as the file will already have this entry as the TLS entries are not changed.


I hope all of you find this information useful.


An SAP NOTE was released for this issue 2150573 (thanks to my colleague Scott). Looking at the NOTE & the error messages customer gets without WPF Client hitting the Server it's very hard to find that this NOTE actually fixes the issue.




Work and play no longer live separately — in fact, a recent Gartner survey showed that nearly half of employees surveyed spend more than an hour each day using their personal devices for work. Whether using the same device for everything or using separate smartphones for corporate and personal use, we all want tools that help us do more, in less time. 


My team is dedicated to introducing technology that meets our employees’ needs and adheres to strict data security regulations. Last year we had more than 74,500 employees and just as many devices. We supported multiple platforms as we have a device agnostic strategy, but supported just one Android vendor. Now with Android for Work, we support a variety of vendors and device types and give our employees the option to use their preferred device.


I have peace of mind knowing that Android for Work isolates corporate and personal information, so our IT team can easily manage SAP owned data while personal information stays private. In the past when an employee left the company, we had to wipe his device of all information, business or personal. Now, we can manage SAP data remotely without having any interference with employees’ personal information. Our employees feel at ease knowing that Android for Work stores data from their personal and corporate apps separately, so personal apps have no access to business data — and vice versa.


Android for Work integrates with SAP Mobile Secure, our cloud-based enterprise mobility management solution that saves our IT team time and improves mobile experiences for employees. For instance, we’ve streamlined how we distribute apps to employee devices — no easy task given the 70+ SAP-owned apps our employees use on a regular basis, including SAP Fiori, Cloud for Customer, Concur and SuccessFactors.


With our mobile strategy, Android for Work bridges the gap between work and private life while keeping data secure. Our employees are empowered with consumer-focused tools that not only help them work smarter, save time and keep innovating, but also maintain their privacy and peace of mind.


Editor’s note: Thomas Saueressig, Senior Vice President and Global Head of IT Services, SAP SE. At SAPPHIRE NOW, which takes place May 5 to 7, SAP executives will discuss how SAP introduced Android for Work to shift its mobile strategy and support a variety of devices while keeping data secure. SAP is a leader in enterprise application software with more than 291,000 customers in 190 countries.

The countdown is on to the SAPPHIRE NOW 2015 conference, taking place from May 5th to 7th in Orlando, Florida. During the event you’ll have many opportunities to network with your peers and learn about how SAP is simplifying enterprise mobility through SAP Mobile Secure. We’re excited to share all of the incredible innovations that the team has been working on. From brand new support for Android for Work to simplifying how you deploy Fiori apps for mobile, we’ve got a lot to check out. Here are a few highlights and key session that you might be interested in.

1. Reserve your seat at the “Mobilize SAP Fiori with SAP Mobile Secure” Roundtable

Taking Fiori mobile isn’t trivial! There are several things to consider to ensure your deployment meets user expectations. Join Senthil Krishnapillai, vice president SAP Mobile Secure engineering and Alan Panezic, VP Products at Mocana in this for this limited seating roundtable session to learn how to simplify building, configuring and deploying SAP Fiori apps with a new SAP Fiori app configuration service. We’ll also discuss how to add robust authentication, encryption, and data security protocols so users need only sign on once to access the information they need.

Note: This session is not in the Sapphire agenda. Separate registration is required. Please email Milja.gillespie@sap.com to reserve your seat!

2. Reserve your seat with Google and SAP at the “Android for Work” roundtable

SAP and Google share a common vision to bring Android support to enterprise users. Together we’re helping to ensure that you can confidently manage the devices employees want. With our brand new support in SAP Mobile Secure, we now provide a way for IT to manage all mobile devices with true separation of personal and corporate data. Join this session to learn to ramp up your Android adoption with a detailed overview of Android for Work provided by Google’s Gene Trinks. Also see how to manage Android for Work devices today with SAP Mobile Secure.


Note: This session is not in the Sapphire agenda. Separate registration is required. Please email Milja.gillespie@sap.com to reserve your seat!

3. Join Google and Mocana for a Cocktail Reception on Wednesday May 6th from 5:00pm – 8:00pm

If you’d like to network and talk more about Mobile Security, you are invited to a private cocktail reception hosted by Mocana and Google. The event will take place on Wednesday May 6th, from 5-8pm at Ra Sushi Bar Restaurant, located at Pointe Orlando (a short walk from the convention centre). Please note that an RSVP is required! You can register for the event here.

4. Meet the Mobile Security Experts at Mobile Exhibit Area

You’ll be able to find the Mobile Security experts in the Platform & Technology campus, very close to the Executive Briefing Centre. Visit with experts to see demos of the Mobile App configuration service, the Mobile App Discovery Service, Mobile Place enterprise app store, SAP Mobile Documents mobile content management system and much more.

5. Join the Lecture “Enhance Your SAP Portal Experience Using SAP Mobile Documents”

Whether you are an SAP Portal customer or not, this session will show you how to use SAP Mobile Documents to access content stored in SAP Portal KM, Microsoft Sharepoint, or SAP Business Suite to be easily be consumed across different devices – in the cloud or on premise. Matt Carrier will present this session.


Finally, if you’d like to set up a 1:1 meeting with Mobile Secure experts please email Milja.gillespie@sap.com to schedule. The Mobile Secure team is looking forward to meeting with you next week in Orlando!

The 64-bit Agentry Toolkit is available for download, but the 32-bit version is no longer supported. Agentry Toolkit provides the components used by developers, implementers, and administrators to create Agentry applications.


On SAP Help Portal, older versions of the topic "Installing the Eclipse IDE and Agentry Editor Plug-In" include embedded URLs for both the 32-bit and 64-bit versions of  the Agentry Toolkit. Since the 32-bit version is no longer available, the link results in an error. Also, 32-bit information appears in the topic "Setting Up the Development Environment for Agentry Toolkit." The links will be corrected in future documentation versions.


See:  SAP Note 2148550 (https://css.wdf.sap.corp/sap/support/notes/2148550)

The Hybrid SDK (Kapsel) is UI5 framework agnostic. You can use any third party framework with the Hybrid SDK (Kapsel) that is compatible with Cordova. This section discusses framework integration with the Hybrid SDK (Kapsel), and provides an overview of common UI libraries for standards-based Web development.


If you have not already selected a framework for your UI development, selecting SAPUI5 allows you to efficiently leverage the Hybrid SDK's integration with SAPUI5. The Login plugin uses the UI5 framework. Another strength of UI5 is that you can write an application, for desktop and mobile, using a single code base.

SAPUI5, also known as SAP UI Development Toolkit for HTML5, is the SAP client-side HTML5 rendering library with a large set of RIA-like standard and extension controls based on JavaScript (JS), and a lightweight programming model. The rendering control library is Open AJAX-compliant and based on open source jQuery and can be used together with other client-side libraries.

For more information:


Some of the other popular open-source frameworks include:

jQuery Mobile

jQuery Mobile is an HTML5 based user interface system for mobile devices.

For more information:

Sencha Touch

Sencha Touch  is an HTML5 mobile application framework that encourages a model, view, and controller pattern.

For more information:

This guide describes how to use HttpConversationManager and HttpConvAuthFlows libraries for implementing request, response, and challenge filters when developing native iOS OData apps with the SAP Mobile Platform SDK version 3.0 SP07 and later.


The iOS HttpConversationManager is an iOS networking library that enables sending and receiving of HTTP requests and responses between an iOS app and server securely, and is built on top of NSURLSession and related classes, extending the high-level abstractions built into CocoaTouch to meet SAP OData framework and corporate standards for security, traceability, and logging. The HttpConversationManager operates with native CocoaTouch constructs (for example NSURL and NSMutableURLRequest); however, it also uses some specific classes, protocols, and properties that comply with the special requirements for which it was built.



Getting Started with Conversation Manager for iOS







Installing the Libraries


If you do not use the CocoaPod master spec file to set up the project, you must manually add the libraries to your project: after installing the SAP Mobile Platform SDK for iOS and the libraries and resources are extracted, locate and add these libraries, which is usually enough to write your first Conversation Manager based app:

  • libHTTPConversation.a
  • libHTTPConvAuthFlows.a
  • libMobilePlace.a
  • libE2ETrace2.a
  • libSupportability.a
  • libPerformanceLib.a
  • (iOS) Foundation.framework
  • (iOS) UIKit.framework
  • (iOS) CoreGraphics.framework
  • (iOS) libsqlite3.dylib (required by libSupportability)
  • (iOS) Security.framework

Note: Beginning with SAP Mobile Platform SDK version SP08, a CocoaPod master spec file will be provided which automatically sets up the project dependencies.





Exposed protocols:


RequestFilterProtocol - defines the delegate which is called before a request is triggered; this allows modification of the request (adding request header, set POST body, and so on) prior to execution.


ResponseFilterProtocol - defines the delegate which is called after a request is triggered; this allows modification of the NSURLResponse and the response data before it reaches the request executor.


ChallengeFilterProtocol - defines the interface for the ChallengeFilter delegate, which is called whenever authentication is required for request execution.


ManagerConfiguratorProtocol - defines the interface for holding a view controller reference which can be used by filters to display views with additional information on top of it.Filters are basically providers that communicate with conversation manager values such as user credentials; there are various typesof filters: authentication challenge filters, configuration filters, and response filters.


RedirectWhitelistProtocol - defines the interface for a class that handles redirects; it is called whenever a redirect to a new URL is going to occur.



Public interfaces:


HttpConversationManager - request execution manager class, supports request, response, and challenge filtering.

HttpConversationObserverProtocol - defines the HttpConversationObserver interface. Observers are notified when a specific event occurs.

SupportabilityUploader - SupportabilityUploader implementation, used by E2ETrace and ClientLog uploading.





NSURLResponse+HttpConversation - extension that adds batch response handling support.

NSMutableURLRequest+HttpConversation - extension that adds batch request handling support.




Conversation Manager API Usage for iOS


After adding the required dependencies to your project, add the #import “HttpConversationManager.h" statement to your source file. Instantiate the conversation manager with:

HttpConversationManager* manager = [HttpConversationManager new];


The Conversation Manager exposes a single block-based API to execute network requests. The API expects an NSMutableURLRequest as input, and returns response data, an URL response, and an NSError in its completion block, which is non-nil after successful execution.


-(void) executeRequest:(NSMutableURLRequest*)urlRequest completionHandler:(void
(^)(NSData* data, NSURLResponse* response, NSError* error))completionHandler;


NSURL* url = [NSURL URLWithString:@“<your URL goes here>"];


//initialize a request object

NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];


//execute conversation

[conversationManager executeRequest:req completionHandler:^(NSData *data, NSURLResponse *response,
NSError *error) {


    if(error != nil)


        NSLog(@"Error: %@", [error localizedDescription]);

                // perform meaningful error handling




                // data received




The conversation manager instance usually cannot be used immediately to execute requests; it must first be configured to handle common authentication flows such as basic authentication.



Responding to Authentication Challenges


Challenge filters - assign authentication challenge filters to a manager instance to respond to authentication challenges. Use the addChallengeFilter: API to assign one or more challenge filters to a given manager instance.

Challenge Filter classes must adhere to the ChallengeFilterProtocol, which declares a delegate method that is called whenever an authentication challenge occurs during request execution.





(void (^)(BOOL useCredential, NSURLCredential* credential))completionBlock;


The delegate method should supply valid credentials in its completion block and set useCredential to YES (if set to NO or the credential is nil, it is interpreted as if no credential is provided.)



HTTPConvAuthFlows - the HttpConvAuthFlows library provides a set of authentication providers that can be used as an alternative to implementing challenge filters.

A CommonAuthenticationConfigurator instance must first be created, followed by setting the required providers and implementing specific delegates. In this example the manager instance is set up to retrieve user credentials from the implementing class.


// get an instance from the network standards based configurator

   CommonAuthenticationConfigurator* commonConfig = [CommonAuthenticationConfigurator new];

//add Username Password provider with our implementation

  [commonConfig addUsernamePasswordProvider:self];


//configure manager with standard set of plugins but with our own implementation of some providers

    [commonConfig configureManager:manager];


You must also implement the corresponding UsernamePasswordProviderProtocol delegate - provideUsernamePasswordForAuthChallenge:completionBlock.


#import “UsernamePasswordProviderProtocol.h"

@interface ViewController () <UsernamePasswordProviderProtocol,
SAML2ConfigProviderProtocol, ClientCertObserverProtocol, ClientCertProviderProtocol>



pragma mark - Providers


* Username Password provider. Provider hard-coded username/password for this sample only

  * Also shows how to override default UsernamePasswordProvider.


completionBlock:(void (^)(NSURLCredential*, NSError*))completionBlock {

    NSURLCredential* credential = [NSURLCredential credentialWithUser:@"username"
    password:@"password" persistence:NSURLCredentialPersistenceForSession];

    completionBlock(credential, nil);




The HttpConvAuthFlows class provides default implementations for:

  • Authentication Challenge Providers - UsernamePasswordProvider default implementation of UsernamePasswordProviderProtocol displays a secure alert view to enter username and password.
  • Configuration Providers:
    • OAuth2RequestFilter RequestFilter which handles OAuth authentication flow
    • SAML2ResponseFilter ResponseFilter which handles SAML2 authentication flow



Unit Tests and API Documentation



The HttpConversationManager and HttpConvAuthFlows libraries include an extensive set of unit tests, usage, and best practices.

Go to the <sdkinstall dir>\NativeSDK\ODataFramework\iOS\docs directory of your SAP Mobile Platform SDK installation, open the HttpConvAuthFlows-APIDoc.zip or HttpConversation-APIDoc.zip file, then open the index.html file to view API documentation for these libraries.



Additional Resources


See http://scn.sap.com/community/developer-center/mobility-platform/blog/2014/11/14/request-response-challenge-filters-in-httpconversationmanager on the SAP Community Network Web site for additional information about HttpConversationManager request, response, and challenge filters.

In today's enterprise mobile world everyone agrees that the success of Mobile App Implementation is directly related to its best user experience ("Awesome looking and functioning App" = "Higher User Adoption"). At the same time best User Experience sometimes restricts the depth of an mobile application functionality due to various reasons. It is very challenging to do a tight-rope walk between the optimal application functionality and good user experience. Here in this blog, I tried to share my experiences by taking two different scenarios on how one can achieve the balance between these key aspects of these two mobile application features.

Just take a moment to imagine the following typical scenario (1) in your mind.


"You are walking into a supermarket on a Game Night and trying to find a chlorine removal shampoo. You are in a hurry to leave and cannot find that one particular product that is most important for regular swimmers. Due to game night there is less crowd in the supermarket due to which they understaffed. This makes it more time consuming to seek help. Even if you find a person to help (after wandering thru the isles from end to end searching for that one knowledgeable person) they might not be sure what you are looking for, as they are not working in that department regularly. This peaks the frustration to find that product and the chances of finding it become more difficult. Ultimately after 30 minutes searching you will find it and rush to self-checkout lanes to pay for the product and check out a.s.a.p."


The key words in the above scenario are

Scenario 1.png

On the other hand now lets just imagine the following scenario (2).


"You are in a hurry to go to your next meeting on a busy day. In that short gap between the meetings, you wanted to pick up a healthy snack from the vending machine. You know it is in the same floor and its direction, due the well placed directions on every floor of your office (Thanks to building facilities team). You quickly walk up to the vending machine, choose one of the payment option (options are Coins, 1/5/10 bills, credit card, debit card, Apple Pay, Google Wallet), quickly find and pick the snack you want, enter the corresponding combination key (row and column info as clearly directed by the machine display) on the keypad, automated delivery mechanism delivers the snack into the lower bin under a minute and leave with a happy smile to catch up to the next meeting on time."


The key words in the above scenario are


Scenario 2.png


If you closely observe, the activities are mostly similar between the above 2 scenarios. However, they both serve different types of consumers for the similar end goal. Lets take these 2 scenarios and compare the mobile app experience for the end users.


In my experience I have seen mobile applications that fall under both of these scenarios. Sometimes it is unavoidable to separate the functionality even though it complicates the mobile app navigation. In order to make them user-friendlier those result in successful and highly adapted mobile applications one must adhere to vending machine style architecture pattern where it applies and vice versa.

SCENARIO 1: Supermarket Pattern

The following would be useful architectural guidelines if this were a complex mobile application. It should be simple to use even with the more complex functionality.


  1. SEARCH Capabilities: Provide good search capabilities to find the information that the user is looking for in any corner of the mobile app.
  2. QUICK Navigation: User must be able to quickly find the content or get to the menu selection with in the mobile app that would perform a single meaningful task and complete an action (like a transaction or a decision). Navigation must be in Frequently Used transactions to Occasionally Used order. One can easily mimic the mobile app navigation in a similar to 'Popular/Seasonal Product displays' pattern at a Supermarket. A section for 'Frequently Used' transactions with navigation to subsequent functionalities all can be provided in a easy to find screens. A section for a quick suggestive follow up transactions based on the user's mobile app interaction history could be helpful too. Similarly a section for 'Newly Added Functionality or Menus or Screens’ could be useful to find in one place.
  3. Target Audience: Mobile app must target a particular group of users always. A Complex mobile app must try to combine related functionality into one place. Utmost care must be taken due to its complex functionality in selecting the features of the mobile app. It also must cover end-to-end functionality of a single well-defined function. For example in a Order to Cash process scenario, all the documents that are required to be processed by Order fulfillment department starting from Sales Order to Billing must be covered to its fullest extent in one mobile app.
  4. CONSISTENCY: "Most users are used to desktop applications" - it is a safe assumption when developing a complex mobile app. Significant amount of time is spent generally to decide if the complex mobile app should provide an in-app help or not? If one spends a good amount of time on the wireframes and design for the complex mobile app then in-app help can be reduced to a simple explanation of the screen purpose. In other words, the mobile app must clearly indicate the ability to (consistently across various screens) CLICK, EDIT, CLOSE, DRAG, SAVE, CANCEL or QUIT/ABORT. Also UI must be less complex in displaying its GUI controls.
  5. FEEDBACK: Support functionality for a mobile app must be simple to use to report to the help desk if all else fails in a day-to-day use. The mobile app must provide a way to self-attach a screen and pop up an email form with prefilled support help desk email id by selecting a GUI Control (like a 'BIG RED’ help button') which makes the user to raise an incident request as easily as a click of a button. This will not only improve the confidence level of the user to use the app on a daily basis but also will help IT to eliminate those bugs that only come to life during the runtime.
  6. USER CONTROL: The one other most common issue that I have observed is the session timeout, before the user can complete a particular task in the complex mobile applications. It is very important to provide the simple session recovery and data recovery options in a secure way when the user returns to the mobile app after a phone call or any other such interruptions.
  7. Dynamic Build process: On regular intervals the mobile app must be monitored for frequently used areas of functionality. In a complex mobile app, it is very important to manage the key functionality on a regular interval. The app must provide a modularized update capability. If for example the mobile app has building blocks A, B, C and D. The most frequently used areas belong to blocks A, B and D, the mobile app must be designed in such a way that C block can be removed after reviewing the usage of block C over a period of time. This could be useful for occasions when there is a high demand for a particular portion of the app. This could be helpful in case of seasonal behavior changes in user demands. Also make sure that primary focus of the app is kept intact in all form factors while navigating thru a complex mobile app.
  8. Deployment Methods: App must be made available to all the targeted audience with less complexity to install and update. It must also make it simple and non-intrusive for frequent updates. The updates to the app must run in the background (always) and unmanaged way. In all the situations the backup and restore of the app functionality should be maintained automatically. In other words, if the app update fails it must restore to its pre-update state without any interruption and interaction with the user.

SCENARIO 2: Vending Machine Pattern

In less complex mobile applications the above rules are important as well but in slightly a different way. These types of applications come under 'Self-managed' model (with a frequent updates to the content).


  1. TARGET Functionality: Vending machine like mobile applications must focus on its targeted functionality to serve a broader audience. In our example we see vending machines are installed with a single purpose like a snack based or a carbonated drink based or a hot beverage based solutions. Since these types of mobile applications are single focused functionality they must be well organized with a self-contained structure.
  2. Super Simple Navigation: Mobile app must provide simple navigation as in "Vending machine pattern". Navigation must provide options at a glance and user must be able to quickly complete the task in under a certain time limit (like a Segmented Control in iOS).
  3. Self-Contained: It is very critical that this mobile app run in a self-contained fashion. It must provide a highly secure local storage, provide offline and online support and guaranteed delivery mechanism.
  4. Accurate and Efficient: Since the mobile application is a self-contained app, it must be able to update the data and keep data integrity at the highest level possible at all times. In case of failures due to any runtime errors, it must contain an internal recovery process (by way of auto-conflict resolution, auto-backup and recovery, offline synchronization, background process updates).
  5. Robust Security: The data is stored on a local device using a local persistent store. The security to protect data must be well planned and implemented. User must be able to provide login details after a long duration of absences to access the app (this function must be configurable at enterprise level/department/app/user). This app security must have remote enabled data wipe capabilities in the event the device is lost/stolen/damaged without losing the data.
  6. Bug Free: Self-contained application must be released after a very thorough testing. It must provide 99% up time. Well-documented test cases/test scenarios must be built at an early stage to be able to deliver such bug free mobile app.
  7. Time to Deliver: The mobile app delivery must be made simple and secure. This will encourage all the intended mobile users for an early adoption and regular usage.
  8. Well Advertised: Such mobile applications need to be announced at a very early stage of the application design to invite inputs from all the key targeted department/group users.


Finally, the above two approaches are most common categories of mobile applications. Depending on the scenario/Complexity of the mobile app it always helps to reduce the total cost of ownership by following the above said guidelines. This not only will result in achieving the highest rate of return on investment due to its higher adoption of mobile apps by the end users (it could be employee faced internal apps or partner/customer facing external apps). With combining the above guidelines with best Mobile Application Development Platforms like SAP Mobile Application Platform will help build mobile apps with less resources and a robust framework and tools. Next time when you are at your favorite supermarket think about your Enterprise mobile applications.


To achieve more successful User Adoption of any mobile application, give an End User a great User Experience (like Vending Machine Pattern) for a complex (Supermarket pattern) functionality.

We are pleased to announce that SAP Mobile Platform 3.0 (SP07) was released for download on SAP Service Marketplace on 18th of April 2015.

We are delivering new capabilities in the following three big areas:

  • Developer Experience
  • Expansion of Fiori capabilities
  • Enhancements around readiness for production deployment1.png

The enhancements for “Developer Experience” are around the integration Services and an enhanced Push

API. For the Integration Services the performance and functionality was enhanced. This enables, for example, developers to do deep inserts to any level on the JDBC connector. With deep inserts the developer can now insert a parent with several children with a single call into the Database.

The second enhancements are around the Push API. Customers can now send push notifications to mobile applications they have purchased of the shelf. With the integration of the HCPms Push Hub customers can now maintain their push certificates in a central place and enabling them to send push notifications through the HCPms push hub. This way customer can avoid having to recompile of the shelf mobile applications to get their push certificates into the applications and enable push notifications. For Example if a customer buys a Fiori application, which is push enabled. The HCPms Push Hub would allow the customer to run the Fiori application inside the Fiori container against the SMP and still send Push notifications to the Fiori application. And this can be done without having to add the customer specific certificate to the Fiori container with the HCPms Push Hub.


We also continue with our enhancements around development and operation of mobile Fiori apps. With

the new Service Pack 07, Administrators are enabled to control certain mobile features remotely. In Fiori and Fiori style Applications, which run in the Apache Cordova container (with the Kapsel plugins), the Administrator can control with the feature restriction Policy which features are available during runtime. This enables the

Administrator to react to security threads during runtime of the Application.

In the area readiness for production deployment we expanded the support for Relay Server, which now supports all applications developed with the SAP SMP SDK. We also further enhanced the HttpAuthentication LoginModule to full support SMP to authenticate through proxy. This enables our customers now to operate the SMP in different network zones than the Authentication Service.

You can consult the SMP PAM on Service Marketplace for details (SMP3 PAM (access to the Service Market Place is needed)).



Want more information?





Filter Blog

By author:
By date:
By tag: