1 2 3 71 Previous Next

SAP for Mobile

1,058 Posts

In some presentation from SAP I saw a little user picture on the right top corner near the name.


Today I invest a little bit time to  find how does it works.


In the default the picture is show from the SAP JAM Account :


Social Media Integration - User Interface Add-On for SAP NetWeaver - SAP Library


But in our company we have no SAP JAM.


So I searched for a solution to integrate a image from the hcm system.


The solution I found in two default classes:


Enable JAM Integration





Gateway Class for the image (GETSTREAM):

Class : CL_SMI_ODATA_SRV_702



First I have enhanced the class CL_SMI_COLLAB_PLATF_CHECKER in the method IS_JAM_CONFIGURED.

"return True"

 *" Declaration of Overwrite-method, do not insert any comments here please!
 *"class-methods IS_JAM_CONFIGURED
 *"  returning
 *"    value(RV_IS_JAM_CONFIGURED) type ABAP_BOOL .
 rv_is_jam_configured = abap_true.

Next I enhanced the class CL_SMI_ODATA_SRV_702



if iv_source_name = 'Member' and it_navigation_path is not initial and lines( it_navigation_path ) = 1.
     field-symbols <ls_navigation_segment> like line of it_navigation_path.
     read table it_navigation_path index 1 assigning <ls_navigation_segment>.
     if <ls_navigation_segment>-nav_prop = 'ProfilePhoto'.
 *      " Obtain the member's id.
 *      data lv_member_id type cl_sm_integration_mpc_ext=>ts_member-id.
 *      lv_member_id = get_first_key( it_key_tab ).
       " Get the member's profile photo.
       field-symbols <lr_stream> type /iwbep/if_mgw_appl_srv_runtime=>ty_s_media_resource.
       create data er_stream type /iwbep/if_mgw_appl_srv_runtime=>ty_s_media_resource.
       data lv_picture type XSTRINGVAL.
           EV_PICTURE       = lv_picture
       assign er_stream->* to <lr_stream>.
    <lr_stream>-mime_type = 'image/jpg'.
             <lr_stream>-value  = lv_picture.
 *      move mo_smi_odata_srv_helper->get_member_profile_photo( lv_member_id ) to <lr_stream>.
 *    raise_operation_not_supported( ).

On the HCM System I wrote a little function to get the user image and return this image as xstring to gateway system.





1. You want to show a different background on ipad and a different one on the iphone based on the orientation. If you are familiar with xcode, you would know that you actually require different images for iPhones and iPads. It further requires different images for the orientation(portrait or landscape).

2. Fiori apps use sap.m library. The controls of this library are designed with mobile touch devices in mind. Some controls occupy a lot of space on the screen although the fiori app on the desktop doesn't need those empty spaces. You would like to redesign the theme just for desktop to differentiate the mobile apps and the desktop version.

3. You want to use a strong color contrast on your mobile devices which is used by field personnel in the outdoors. But simultaneously, you want to have a soothing theme similar to sap_bluecrystal for you desktop users who are always indoors.


How do you do that?

Use the 'Theme Designer'. Refer Fiori Theme Designer for more basic info on how to use the tool.

Once you are in the tool, jump right into the CSS tab.

css tab.png

To start writing our custom CSS, we will first need the element class. I would recommend using chrome's developer tools. use the inspect element option when you right click on the element to desire to theme.

inspect element.png

Find out the class attribute for the element you desire to theme. in this case, i have selected the tile on the launchpad.


Make sure you select the class from the root most element. otherwise there is change of some properties getting over-written by parent element's class properties.

So, here we have the class sapUshellTileBase and on the right side you can see the properties.

.sapUshellTileBase {

color: #333333;

height: 100%;

-webkit-box-sizing: border-box;


Here you can change the color of the tiles or actually you can add an image to the tile using background-image property. You can add all your images into the MIME repository in the backend.


You can add this to your CSS tab and change any parameter or add any new styling parameter.


Now the good stuff

To ensure the same theme behaves differently in different devices, you need to use CSS media queries.

Media queries can be used to determine what type of device is being used. It uses parameters like pixel ratio, width, height, orientation of the device and others to determine the type of device. This is how it looks


This media query would work for iPad 3, iPad 4, iPad Mini 2, iPad Air. iPad Air 2 when it is in 'landscape' mode. So, if you have you css defined inside the media query, it will be considered only when run on an ipad when it is in landscape mode

@media only screen

and (min-device-width : 768px)

and (max-device-width : 1024px)

and (orientation : landscape)

and (-webkit-min-device-pixel-ratio: 2) {

/*your css goes here */



Similarly, any CSS written inside this media query would run on iphone 5 in 'Portrait' mode and sets the background to a corresponding portrait image with an opacity of 72% and scaled to fit the entire screen.

@media only screen

and (min-device-width : 320px)

and (max-device-width : 568px)

and (orientation : portrait)

and (-webkit-min-device-pixel-ratio: 2) {

.sapMGlobalBackgroundImage {

display: block;

position: absolute;

box-sizing: border-box;

left: 0;

top: 0;

bottom: 0;

right: 0;

opacity: 0.72222222;

background-image: url("http://<server>:<port>/content/iPhone5-Port-640x1136.png");

background-repeat: no-repeat;

background-position: left top;

background-size: 100% 100%;




Similarly you can handle for desktops which have considerably higher pixel widths than most of the mobile devices.

A good reference for device heights, widths and pixel ratios can be found here. Note that the width here is the css-pixel width and not the device pixel width. Many devices don't share the same number.

It has been a while since I have seen such a passionate CEO. I read her Message of the Day every morning which helps me start my day with optimism and a great belief in the human spirit. I follow her blog series about the impact Design Thinking is bringing to the IT world and now I’m excited not only because her company’s new app is the first Fiori app that was certified by SAP but because it also won the 2014 SAP and Google Apps Challenge.


I’m talking about Sana Salam, the president and founder of Sodales Solutions. The company is a certified SAP partner focused on mobile and big data solutions. The company believes in bringing the human factor to the technology world, resulting in an easy user experience within the constraints of a business environment.


The winning app is their Labor Cockpit App, a mobile app following the SAP Fiori design guidelines. It allows the collaboration between companies, their external recruitment agencies, various regulatory bodies and of course the candidates around labor management processes. Using this app will result in higher efficiencies and transparency. Using its self-service, personalized Launchpad, hiring teams and project managers can save time and costs and quickly onboard, assign work, schedule and track staff productivity and share documentation such as policies and licenses.


When I was reviewing the app, I could really see how teams can take faster (and better) informed decisions backed by analytics that will surely improve profitability down the road.


Now that the Labor Cockpit app is certified, customers can get it via the SAP Store, which will feature partner apps that expand the SAP Fiori app portfolio for various industries, lines of business and roles.


The certification process ensures that all apps built are robust regardless of the creator (SAP or a partner). When submitting apps for the certification program, partners need to provide relevant documentation on the UI design (e.g. following SAP Fiori Design guidelines, app template, and product definition) and complete a Technical Product Profile (TPP). Then SAP staff technically test the apps on their installation and configuration, registered development namespaces and usage, SAP Gateway content configuration and more. Functional spot checks will be performed alongside a review of the documented comprehensive test scenario performed by the partner. 


Stay tuned for other blog posts about partners providing Fiori apps.

This week at SAP TechEd && d-code in Las Vegas, some cool innovations were shared on the main stage in Bjorn Goerke’s keynote. As part of the demo watched by over 7,000 people in person (and thousands more online), a story weaving together Mobile Security and SAP Fiori was center stage. SAP is innovating and leading how enterprise apps are mobilized, secured and deployed in a holistic manner. Our vision is to make it simple for enterprises to securely mobilize SAP enterprise apps all the way across the development, test and deployment life cycle. This week we moved one step closer to this vision by showing the integration for SAP Fiori apps spanning our cloud platforms.


The concept is fantastic. You can build custom Fiori apps with unique icons, splash screens, and names and publish multiple Fiori apps on single device. Without coding - and within minutes - you can log in to the SAP Mobile Secure cloud and build a native custom Fiori app. Its as easy as naming the app, adding an icon, choosing security policies, pasting in the URL, compiling and publishing the app – a few simple steps.


Previously you could build the app but it was a complicated process involving many systems and tools. Now you can build and launch a custom Fiori app on SAP’s mobile app store in minutes.


In Bjorn’s demo there were three steps outlined, at the 1:28 timestamp (see video below), Ian Kimball entertained the crowd and jumped in to Step 3, showing this Fiori build service in detail.


Developers are excited about this service. Here’s why:

  • They can develop, customize and build Fiori apps for iOS and Android devices using cloud based Web IDE without maintaining multiple local native development environments.
  • They can easily extend the basic Fiori app functionality through the use of on-device capabilities, using a catalog of SAP-provided, vendor-provided and Open Source Cordova plugins that can be added with one click.
  • They have the ability to add HANA Cloud Platform Mobile Services to enhance Fiori apps with support for user provisioning and offline OData support.
  • They can easily build for multiple platforms and publish to end users via Mobile Place with a single click (for trial or final deployment of the Fiori app)


IT Administrators love the following:

  • They can mobilize Fiori apps to work on iOS and Android devices with great user-experience
  • They can manage end-to-end app life cycle from building app to Trials and Production deployment on both managed (MDM) and Unmanaged devices
  • They can increase end-user adoption with simple but complete on-boarding experience with SAP Mobile Place (discovery, download, provision, configuration, update..)
  • They can secure the app with optional App Wrapping policies & per-app VPN connectivity options.


This blog is the extension to my earlier submission where I tried explain how we can write custom Java script code in Integration Gateway of SMP while exposing the web services as OData .


Let's see how to add filtering capabilities to an OData service with Integration component of SMP 3.0 .


Business Example :


You want to build a service which retrieves list of applications based on the status of the Application.




First we need to create "SAP Mobile Platform OData Implementation Project" ,please follow the steps mentioned in the "Writing custom logic using java script in SMP Integration Gateway"


1) Understanding the web service.


     The payload of the web service is like below.



This means ,we need to create similar payload from Integration Gateway so that it executes the web service with correct payload.

The above service sample retrieves the list of applications with status equals 'completed'(COMP).This value will be sent to OData as a filter from the UI (Mobile/Desktop).


2) Writing the custom code


The custom code should read the URL and read the filter information like field name and value from the URL.Developer needs to write the custom code to do the same in the IGW project.


We can add the below code to the processRequestData method so that we can read the filter parameters.



var uriInfo = getUriInfo(message);

if (oDataMethod == "GET_FEED"){

     uriInfo = (GetEntitySetUriInfo)(uriInfo);

     var whereExp = uriInfo.getFilter();

     if(whereExp != null){

        innerpartneHashMap = new LinkedHashMap();

        newpartneHashMap = new LinkedHashMap();


        newpartneHashMap.put("applicationStatus", innerpartneHashMap);

        innerpartneHashMap.put("boundaryType", "EQUALS");


        partneHashMap.put("arg0", newpartneHashMap);





Also , add the below methods to the JS file.

function getUriInfo(message) {



  var uriInfo = message.getHeaders().get(ODataExchangeHeaderProperty.UriInfo.toString());

  return uriInfo;






function parseToWhereExpression(whereExpression) {

  importPackage (com.sap.gateway.ip.core.customdev.logging);


  var FILTER = "FILTER";



  if (whereExpression.getKind() == 'FILTER') {

  return parseToWhereExpression(whereExpression.getExpression());


  else if (whereExpression.getKind() == 'BINARY') {

  var binaryExpression = whereExpression;


  var left = parseToWhereExpression(binaryExpression.getLeftOperand());

  var right= parseToWhereExpression(binaryExpression.getRightOperand());




  return left + "EQ" +right;


  else if (whereExpression.getKind() == 'PROPERTY') {


  var property = whereExpression;

  var prop = property.getEdmProperty();

  var returnStr = prop.getName();

return returnStr;


  else if (whereExpression.getKind() == 'LITERAL') {


  var literal = whereExpression;

  var literalType = literal.getEdmType();

  var value = literalType.valueToString(literalType.valueOfString(

  literal.getUriLiteral(), EdmLiteralKind.URI, null,


  EdmLiteralKind.DEFAULT, null);

return value;






  return whereExpression;




3) Testing the OData service with filters


https://<<Hostname>>:<<port>>/gateway/odata/SAP/<<servicedocumentname>>/<,Entityset>>?$filter=<,Attributename>> eq '<<value>>'



Also developer can insert the below logging statements so that they can check the SMP logs to check the values that being sent during the execution of the service.


log.logErrors(LogMessage.TechnicalError,<<Your custom message>>);

In early September I wrote the blog Wearables at Work: SAP Launches Augmented Reality Apps, Register for ASUG Session providing some information about Augmented Reality for the Enterprise and updates on SAP Augmented Reality apps. The interest in 'Wearables at Work' and 'Business Augmented Reality' has continued to grow and earlier this month our SAP Augmented Reality (AR) team members shared more information about AR for the Enterprise in an ASUG Webinar and SAP Coffee Break with Game Changers Radio Show. You can find the links to the replays in my blog The Future of Mobile Workers: Who, What and 'Wear'.


As of today, you can officially take your wearables to work with SAP Augmented Reality Solutions. SAP has been working with co-innovation customers and partners to bring these solutions to the market. To learn about the value of AR in the enterprise read Rick Costanzo, EVP and GM of Global Mobile Solutions at SAP, blog The future of work is hands free and voice driven and watch the video below to learn about the value of untethering workers across different industries.



The SAP AR apps that are now generally available are SAP AR Warehouse Picker and SAP AR Service Technician. Here is a complete overview of assets outlining the specifics about these solutions, this will be updated with other assets later this month.


SAP AR Warehouse Picker

SAP AR Service Technician

Product Brochure
AR Warehouse Picker Brochure Thumbnail.JPG

Product Brochure

AR Service Technician Brochure Thumbnail.JPG

Overview Video


Overview Video



For more information about these apps and SAP Augmented Reality solutions for the Enterprise visit www.sap.com/augmented-reality.

After reading my blog about how to improve the performance of the Android emulator I guess you are using this image successfully for your Cordova development. In case you want to use the Intel image also for SUP/SMP MBO based projects, you won`t be able to do so. The UltraLite library is for ARM architecture and not for 386.


Here is a simple explanation why you’ll have to use the Google Android images (ARM): after adding the libraries to the Android project, coding the MBO part, deploying the app to the emulator and running it, the log shows an error message like:


FATAL EXCEPTION: mainjava.lang.ExceptionInInitializerError
at com.ianywhere.ultralitejni16.DatabaseManager.connect(Unknown Source)
at com.sybase.afx.ulj.ConnectionUtil.createConnection(ConnectionUtil.java:199)
at com.sybase.afx.ulj.ConnectionUtil.getConnection(ConnectionUtil.java:176)
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load ultralitej16: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:365)
at java.lang.System.loadLibrary(System.java:535)

Keep in mind that the libraries for the UltraLite database used by MBOs is delivered as a binary library (.so). This library is already compiled and won`t be compiled again for your Android project. This library is for Android devices on ARM, as this is the primary architecture for Android smartphone / tablets is ARM. The folder that contains the files is named armeabi and the .so files make it clear that the library is not a Java object. While the jar for UltraLite included in the Android project allows communicating with the API, the libraries will fail to load on Intel emulator.


On the Intel image, a .so file is for Intel 80386 architecture:


While on the “original” emulator from Google the architecture is ARM:


Running the exact same app on the Google Android image will work. Just install the APK file on the right emulator.

In the fourth webcast of ASUG’s user experience webcast series, Oliver Lehman and Johannes Wasserfall from SAP’s UX rollout team spoke about SAP Fiori UX. Here are some of the highlights. You can watch the full webcast and download the slides here.


Before I dive into the webcast overview, I think it’s important to thank the ASUG team for helping to promote our user experience solutions through this webcast series. In addition, see the latest blog post from ASUG CEO Geoff Scott – talking about user experience.


Introduction – why UX matters in the enterprise

Consumer experiences and the prominence of mobile devices in our everyday lives accelerate user expectations at work. When it’s easy to order a book or electronic device from Amazon, employees expect that same easy, intuitive experience at work. That is why SAP and other IT vendors are focusing on user experience now more than ever before.


Oliver touched on SAP’s UX strategy – with its 3 easy-to-remember parts: New / Renew / Enable




Evolution of SAP Fiori

SAP Fiori was launched last year as a comprehensive collection of apps with a consumer-like UX to improve the user experience of core SAP functions with an intuitive design. Now, SAP Fiori is the new user experience for SAP software that leverages modern design principles to provide a holistic and consistent user experience across lines of business, tasks and devices. SAP solutions are applying the SAP Fiori UX to provide a personalized, responsive and simple user experience.



The UX renewal started with SAP Business Suite, then SAP Business Suite powered by SAP HANA and now our Cloud solutions, like Ariba and SuccessFactors are starting to embrace the SAP Fiori UX with some screens available now and some in the future.



Oliver highlighted the SAP Fiori UX design principles – role-based, responsive, simple, coherent and delightful. You can find all of the design guidelines at this link. As well as an overview of all the app types included in SAP Fiori.



Live Demo

Johannes provided a live demo showing SAP Smart Business for Cash Management which applies the SAP Fiori UX.


He also showed a demo of the SAP Fiori launchpad which provides a starting point for users. It’s role-based and runs on multiple devices. Users can customize their launchpad to adjust groups, add or remove tiles, as well as a search function for details relevant to a specific term.


Get Started Deploying SAP Fiori

Oliver shared information about Rapid Deployment Solutions and UX Adoption Service Kits that are both available to help customers get SAP Fiori implemented.


Get Involved with SAP Fiori

There is an SAP Fiori Customer Interest Group that is open to every customer interested in working with us on defining and improving SAP Fiori. There are key focus areas by lines of business, industries and solutions, as well as the ability to help influence the portfolio/roadmap definition, design phase and development. Get involved at https://influence.sap.com.



Learn More

And, there are related learning opportunities – including the OpenSAP Course: Introduction to SAP Fiori. On a personal note – I’ve been taking the course and while I may not be the technical SAP implementation guru this course is targeted toward – it’s been very educational. I enjoyed the overview sessions that set the stage, and even the more detailed sessions walking through product installation, configuration and best practices for extensibility.



Sneak Peek: New Resources

Oliver presented a preview of two new resources that will be available in October – including SAP Fiori, demo cloud edition, which will provide an easy way to try Fiori apps (featuring 17 transactional apps at the beginning). In addition, we’re publishing the SAP Fiori apps reference library that will provide relevant technical metadata for installation and configuration of SAP Fiori apps. Stay tuned to learn more!



John Wargo

Update on Fiori & Mobile

Posted by John Wargo Oct 13, 2014

It’s been a while since I’ve updated you on the SAP Fiori Client and it’s time to fill you in on something we’re calling Fiori Mobile and fill you in on what we're planning for Windows 8.1 support.


We recently released an update to the SAP Fiori Client, Version 1.1, which is now available in the Google Play and Apple App stores. This version of the application doesn’t use any features of SMP, so can only be used directly against SAP Gateway.


Beginning with the June SAP Mobile Platform SDK SP04 release, the Fiori Client capabilities were implemented as Cordova plugins and made part of the SMP SDK. Customers can now build their own, customizable version of the application and deploy it to their users through an Enterprise App Store or using MDM tools such as SAP Afaria.  Since this is a custom application, you have the ability to, well, customize it – and that means you can hard code specific settings for the application, like the Fiori endpoint URL, or you can let the user configure it at runtime. A custom version of the application can be used directly against NetWeaver Gateway or can connect to Fiori through SMP. This capability is available now.


The Kapsel Getting Started Guide has been updated to include information on how to build your own, custom SAP Fiori Client: http://scn.sap.com/docs/DOC-56080.


The team is hard at work on the next release of the SAP Fiori Client. For the app store version, this release will be the first version of the application built using the SMP Hybrid (Kapsel) SDK. Now that it’s built using the SDK, the app store version will be able to connect directly to SAP Gateway or can connect through SMP (something that was already available through a custom version of the app).


Fiori Mobile

As I’ve described before, the SAP Fiori Client was created to address some issues caused by the mobile browser and the way it manages its cache. We also added some features that enhanced the user’s experience when running SAP Fiori (full screen operation and simplified attachment viewing). As we’ve all seen before, as soon as you give users something, they immediately start asking for more, right? Well, that’s what’s happened here and we’re working hard to deliver.


Earlier this year, I published an article that talked about how the Fiori experience could be enhanced using SMP; you can find the article here: http://scn.sap.com/blogs/johnwargo/2014/05/22/sap-fiori-smp. In the article I described specific features that could be enabled in the SAP Fiori Client by SMP; this flavor of SAP Fiori on a mobile device is being referred to as Fiori Mobile.


Since the SAP Fiori Client is a native application, it has access to native capabilities not normally exposed to web applications running in the browser. There are many examples of this, many native capabilities that could enhance the Fiori experience on a mobile device such as camera access, contacts application access, voice recording and more. The Fiori team calls these capabilities Mobile Qualities (MQ) – this just an internal name for a category of features, I’m sure we’ll have an official name for this someday. SAP’s Fiori developers and our customers have given us a list of Mobile Qualities they’re interested in and we’re investigating how and when to implement them.


The first piece of Fiori Mobile is Mobile Qualities.


Since the SAP Fiori Client is a Cordova application, we can add additional capabilities to the SAP Fiori Client by simply adding one or more Cordova plugins to the application. Mobile Qualities are then Cordova plugins added to the SAP Fiori Client; where a plugin exists for a particular quality, we can use it; otherwise we’re going to have to create new plugins.


Fiori Mobile is all about SMP and Fiori, so how does this work? Well, first we add MQs to the SAP Fiori Client. Next we add administrative capabilities to SMP that allows an administrator, on a per application basis, to control the capabilities exposed within the application. This allows the app store version of the SAP Fiori Client, with any MQ it has, to be deployed in customer environments with the appropriate controls in place. For example, imagine that the SAP Fiori Client had the ability to use the camera to capture receipt images for expense reporting, but the application would be used in a secure environment where cameras are not allowed. Through SMP, the camera capability could be disabled for those users. Because mobile qualities are so tightly bound to the SMP server and delivered by the SMP SDK team, they are only enabled when SMP is implemented along with the SAP Fiori Client.


With the MQ and the necessary admin controls in place, the next step is to enable Fiori developers to be able to leverage these capabilities. For example, when a Fiori application is running in a desktop or mobile browser, the particular MQ would not be available. When the application is running in an SMP environment, the feature would be enabled only when the MQ is implemented in the application and the administrator has enabled its use. This is the second piece of Fiori Mobile: the ability for Fiori applications to be able to seamlessly leverage MQs, using the MQ when available and failing gracefully or potentially following an alternate path when not.


If you remember from my last article, we’ve added a barcode plugin to the Kapsel SDK; we did this so that we can add barcode scanning capabilities to the SAP Fiori Client. Once the SAP Fiori Client has this capability, its then up to the Fiori team to implement the code needed to take advantage of the capability from within a Fiori application.


Another example of this is the Offline OData plugin that was recently added to the SDK. Now that it’s available, a Fiori application running in the SAP Fiori Client with SMP could leverage the plugin to operate when the network is not available. This functionality would need to be implemented within a Fiori application; the offline OData capability exists today with SMP, we're working closely with the Fiori team on how to enable its use for Fiori applications. In order to support offline within Fiori, the SAP Fiori Client will first need to ensure that it has all of the Fiori web application assets available in the offline cache; once that's in place, the next step is to implement the code to create the offline store and initialize synchronization as needed by the application.


SAP Fiori is an enterprise application and supports logon, single sign-on and other enterprise features. The third piece of Fiori Mobile is the ability for the SAP Fiori Client to leverage additional enterprise capabilities provided by SMP and the Kapsel SDK. This includes the ability to add a passcode to the application, leveraging end to end trace or the remote logging capabilities provided by the platform and much more.


When will Fiori Mobile be available? Well, it already is – simply use the SMP SDK to create a custom version of the SAP Fiori Client and you can begin leveraging many of the capabilities SMP provides. All that would remain is for Fiori to take advantage of the MQs exposed through the application. For the app store version, you’ll just have to wait for the next release.


SAP Fiori Client & Microsoft Windows

There have been a lot of questions lately about SAP Fiori Client support for Windows 8.1.


The SAP Fiori Client is a Cordova application and while Cordova supports Windows 8.1 as well as Windows Phone 8.1, a limitation exists that prohibits us from implementing SAP Fiori Client on the platform. Essentially, on Windows 8.1, the Cordova Web View is sandboxed and while we could implement the custom cache we have in the SAP Fiori Client today, the web application wouldn’t be able to execute from the cache like we’d need.


We plan to support SAP Fiori Client on Windows 8.1 as well as Windows Phone 8.1. We’re working closely with the Cordova dev team and Microsoft to come up with a solution. I will update you on our progress as soon as I can.



John M. Wargo is a software developer and the SAP Product Manager for the SMP Hybrid SDK (Kapsel) and the SAP Fiori Client. John has written many books on mobile development, including his most recent Apache Cordova 3 Programming and Apache Cordova API Cookbook books cover Apache Cordova development in great detail.

Testing a mobile web scenario includes testing the app end to end for different usage scenarios. This includes testing the state of the mobile device: online and offline. Consider the following scenarios: a HTTP POST request is send to SMP 3 which in turn will send out a push notification, or the UI5 app opens a HTTP request while the device is offline.  Will the test pass as expected?


The Android emulator allows controlling the state of network connectivity by pressing F8. This turns gsm data on or off. Manually turning the data network on or off is possible while executing a test, but does not really reflect a real scenario where this happens randomly (entering elevator, subway, bad connection, etc) and is out of your control. To simulate a suddenly not available data connection means to be able to randomly deactivate and activate a data connection on the emulator.


First thing of course is to know how to turn off network in an automated way. To control the network state of the Android emulator, the command: gsm data off/on needs to be issued. To execute the command it is necessary to connect via telnet to the emulator. Command: telnet localhost 5554


Note: 5554 is the number of the emulator. Connecting via adb shell won’t work.


Telnet opens the command shell and allows executing gsm command to turn off or on the network.


In case you followed some of my other blogs about testing, you`ll have noticed that I use jMeter. JMeter comes with an impressive list of functionality allowing you to cover almost everything in your test scenario. Therefore, my first thought was to use jMeter to control the network state of the Android emulator. This way, I can include this behavior in other test cases executed by jMeter.


While the commands and execution order is now known, a problem last: Windows telnet client cannot read a list of commands form command line and there is no jMeter telnet client plugin. There is no easy way to send the commands from jMeter to Android. These are two problems to solve:

  1. Send scripted telnet commands
  2. Execute these from jMeter


Send scripted telnet commands


Let’s solve problem 1:

One possibility is to use a VB script to send the commands by emulating keyboard strikes. This implies that you should not use the keyboard at the same time – and writing a VBscript. And it does not solve the problem that depending on your Windows version you first will have to install telnet or even won`t be allowed doing so. The solution is a tool known in the Linux world, a tool created in a time WWW was only in its infancy and known only to a few: nc. The last released stable version of nc was released 10 years ago. Fortunately, there is a newer (better) implementation available from nmap: ncat. Ncat is included in the nmap download and available therefore for Windows. No compilation needed, just download and run ncat.exe. To open a telnet session to Android with ncat, the command is: ncat -4 –t localhost 5554


The commands to deactivate gsm data are:


gsm data off

Save these to a input file (e.g. gms_off.txt) and let ncat read the file. Command: ncat -4 –t localhost 5554 < gsm_off.txt


This solves issue #1. Now telnet can be used to send a list of commands to Android. Next is to solve issue #2 so jMeter can execute the ncat command.


Execute ncat from jMeter


jMeter has a OS Process sampler that allows executing a command line program. I wasn`t able to start ncat.exe directly; starting CMD and pass ncat as a parameter however works.


The command to be run is CMD and the input parameters are: /C <path to nmap>\ncat.exe -4 –t localhost 5554 < <path>\gms_off.txt


Including a sampler for turning data connectivity on again lets jMeter control the network state. Adding a timer element adds the random part to the test. Of course the procedure outlined here is not not applicable to network data (including limiting bandwidth), but to all commands available by the Android command shell.

SAP executives speak frequently about the importance of simplicity in our software. Artist Hans Hoffmann once said "The ability to simplify means to eliminate the unnecessary so that the necessary may speak.”

One of the areas that is not known for being simple is the area of security. It is often seen as a roadblock, a barrier, something we just have to deal with. But that doesn't have to be the case. In a recent study, SAP partner Mobiquity reported that 43% of employees abandon mobile apps. That's crazy! And one of the biggest reasons why is the barrier added by security requirements. Having to VPN in from a mobile device to connect to an app 10 times a day is, quite simply, silly. 


The SAP Mobile Secure team lives and breathes security every day - and our top priority is finding the balance between security and usability. I've done a lot of work lately on pairing our SAP Mobile App Protection product with the Mocana Atlas platform to provide secure and straightforward mobile access to SAP mobile apps. We're tacking the usability issue head on with this technology offering.

One of the key drivers for simplifying the experience is the overwhelming shift our customers are taking to embrace SAP Fiori UX. SAP Fiori UX connects your staff to critical SAP Business Suite applications and provides a truly modern user experience – simple, responsive, and personalized.


Using the Mocana Atlas platform and SAP Mobile App Protection - together with SAP Fiori UX, you can secure your SAP Fiori apps with robust authentication, encryption, and data security protocols. Instead of negotiating numerous authentication screens, users need only sign on once to access the information they need.


Check out this 7 minute video summarizing the solutions.



We're talking about these technologies in greater detail at several events coming up.



Delivering an Elegant Mobile Experience Webinar with Colgate Attend this best practice session featuring Jason Russo, mobile application architect at SAP customer Colgate-Palmolive, to Learn how the company is enhancing the user experience for its employees with SAP Fiori UX; to understand how Colgate-Palmolive is improving the connectivity experience to the enterprise with SAP Mobile App Protection, and to gain insight into what it takes to increase your mobile app usage while ensuring the strictest security requirements are met. You’ll also hear from SAP experts Adi Kavaler and Matt Carrier during this engaging session. If you’re evaluating SAP Fiori today, this is a session you don’t want to miss! Register for the on-demand version now.

SAP d-code, in Las Vegas, NV October 20-24


Delivering an Elegant Mobile Experience with SAP Fiori and SAP Mobile App Protection: Senthil Krishnapillai & Alan Panezic (Mocana)

Mobile App usage in the enterprise can be severely impacted by the lack of beautiful user experience balanced with simple enterprise integration. Learn how to enhance the user experience with SAP Fiori UX and improve the connectivity experience to the enterprise with SAP Mobile App Protection.

Wednesday Oct 22 2:30 and Thursday Oct 23 3:30


Experts Session: Senthil Krishnapillai and Alan Panezic

If you’re already considering using SAP Mobile App Protection or want to get a deeper look at the product, then you can also attend this Experts Session with SAP and Mocana. We're excited about the momentum we're seeing around pairing SAP Fiori with SAP Mobile App Protection. This session will dive into details on how the solutions can be paired together to improve user experience.

Wednesday Oct 22 10:30 – 11:45am Add to your agenda


Partners offering Professional Services to Implement SAP Fiori and SAP Mobile App Protection include:


SAP and Convergent

will be discussing these solutions at



In less than two weeks, SAP TechEd && d-Code will be in Las Vegas, Nevada! From October 22nd-24th, you and your colleagues have an incredible opportunity to learn to expand your enterprises mobile horizons with SAP Mobile Secure. Our experts, Senthil Krishnapallai, Corneliu Mitu & Dhimant Patel, will be hosting various sessions regarding the creation of user-friendly mobile applications that are up to par with your security requirements. Creating beautiful, easy to use applications that also have simple yet tight security guidelines is a guaranteed to increase mobile app usage in your enterprise. While attending the event, be sure to check out the following sessions:


A Simple – and Powerful – Approach to Enterprise Mobility Management: Senthil Krishnapillai

Address the risk of going mobile with an integrated, cloud-based solution that makes it easy to manage and protect mobile devices, apps and content. See how SAP Mobile Secure enables IT admins to get up and running in minutes, even when establishing the most granular device or app-level policies, across corporate issued or BYOD mobile programs.

Wednesday, 5:45pm-6:45pm and Friday, 10:30am-11:30am Add to your agenda


Increase Mobile App Adoption with Security that Enhances Usability: Senthil Krishnapillai

Mobile apps can transform your business, but adoption may suffer unless end users can quickly and securely find and setup apps. Learn how SAP Mobile Secure integrates with the SAP Mobile Platform to streamline the experience for IT, app developers, and end users with seamless access to enterprise services like enrollment and single sign on.

Tuesday, 12:15pm-1:15pm and Thursday, 9:15am-10:15am Add to your agenda


Steps to Creating a Secure Mobile Solution: Dhimant Patel

Learn how to develop secure mobile apps as we convert a simple HTML5 app into a secure enterprise-class app. See how you can leverage capabilities of SAP Mobile Platform during development, and enhance with SAP Mobile Secure for app wrapping after the development process is complete.

Tuesday, 3:15pm-4:15pm and Thursday, 10:30am-11:30am Add to your agenda


Putting it all Together with Mobility Solutions by SAP: Dhimant Patel

This session will showcase an end-to-end scenario that customers could implement utilizing SAP Mobile Platform, SAP Mobile Secure, Cloud Edition, and SAP Mobile Place. We will demonstrate an end-to-end integration scenario that utilizes features from each of the components.

Wednesday, 4:30pm-5:30pm and Friday, 9:15am-10:15am Add to your agenda


Best Practices in Building Secure Mobile Solutions: Dhimant Patel

This session reviews good and bad code examples and provides attendees with examples showing how with a few lines of code leveraging the mobile software development kit (SDK), one can secure user credentials, local storage on the device, and simplify the configuration of a mobile application.

Tuesday, 5:45pm-6:15pm and Thursday, 4:00pm-4:30pm Add to your agenda


There will be two opportunities to attend a Product Roadmap Q&A on the new SAP Mobile Documents with Corneliu Mitu, where you will learn how SAP Mobile Documents enables you to securely share and store corporate and personal content:


Roadmap Q&A – SAP Mobile Documents: Corneliu Mitu

SAP Mobile Documents enables you to access individual and corporate content everywhere. It lets you share files securely with your team and business partners, speed up and simplify business tasks, and unlock the potential of new business processes. In this road map session, we present the short-term, and long-term investment plans.

Tuesday, 2:00pm-3:00pm and Wednesday, 11:00am-12:00pm Add to your agenda


In addition to the sessions above, there will be networking opportunities providing additional opportunities to talk about enhancing the user experience and mobile app management. Also on Wednesday, you’ll have a chance to attend a roundtable with experts from Mocana on SAP Mobile App Protection. Below is more information on these events:


Delivering an Elegant Mobile Experience with SAP Fiori and SAP Mobile App Protection: Senthil Krishnapillai & Alan Panezic (Mocana)

Mobile App usage in the enterprise can be severely impacted by the lack of beautiful user experience balanced with simple enterprise integration. Learn how to enhance the user experience with SAP Fiori UX and improve the connectivity experience to the enterprise with SAP Mobile App Protection.

Wednesday 2:30


Mobile App Management: Senthil Krishnapillai

SAP Mobile Secure now includes Mobile Place, a secure mobile app management (MAM) solution that makes it easy for companies to simply and proactively push their mobile apps and services into the hands of employees, business partners and consumers. Learn how Mobile Place provides a secure, multi-channel central hub that offers self-service capabilities. This solution brings the management of content, apps and devices together in a seamless workflow for IT admins, application developers and end users.

Tuesday 1:30 Add to your agenda


Experts Session: Senthil Krishnapillai and Alan Panezic

If you’re already considering using SAP Mobile App Protection or want to get a deeper look at the product, then you can also attend this Experts Session with SAP and Mocana. We're excited about the momentum we're seeing around pairing SAP Fiori with SAP Mobile App Protection. This session will dive into details on how the solutions can be paired together to improve user experience.

Wednesday 10:30 – 11:45am Add to your agenda


Finally, you can always visit us at the SAP Mobile Secure tables as well. We'll be happy to share demos with you and talk more about any topic.

See you in Vegas!

We are all in some way or another mobile workers. Some of us use our mobile devices to make work phone calls, check schedules and write emails while others depend on mobile devices, apps and more to complete their daily jobs such as work orders, sales operations, retail execution and more. No matter how advanced you are as a mobile worker there are next generation technologies that are available today, and others that are coming, that will change the ways that we interact with the people, places and things around us.


Wondering 'wear' the future of mobile workers is headed?


This week there are two major activities that I suggest you attend to learn more about The Future of Mobile Workers including the Who, What and 'Wear'.


wearable eam.png

Untether Field Workers with Augmented Reality - ASUG Webinar

October 8, 2014 11:00 AM (CT), 12:00 PM (ET), 10:00 AM (MT), 9:00 AM (PT)


There are many opportunities for enterprise to use augmented reality and wearables in their daily operations. Companies are looking to find the most valuable use cases to test and even adopt these next generation technologies.


The opportunity to untether field workers is here. With augmented reality and wearables, field service technicians are enabled with a “hands free” experience through visual enterprise models, gesture or touch events, voice recognition and remote expert calling to perform their tasks and operations.


Attend this webinar with Pascal Lessard, SAP Augmented Reality Product Manager to learn what Augmented Reality is all about, SAP’s current solutions for field workers, and customer use cases and co-innovation stories.


coffee break.pngThe Future of Field Workers on Coffee Break with Game-Changers

October 9,  2014 11:00 AM (CT), 10:00 PM (ET), 8:00 AM (MT), 7:00 AM (PT)


Mobility and the workplace is nothing new.  In fact it has been evolving for a while now.  Many of today’s “remote location” workers are as enabled in the field as if they are sitting in the office at their desk.  As technology has evolved so has the ability to bring computing power to the “situation” instead of needing to bring the “situation” to the computing power.  Today the ROI on field service mobility is a given, both from a money savings standpoint buy also from a simplification and customer satisfaction point of view.  However, field services situations are just one aspect of  today’s  mobile worker enablement.  Mobility is beginning to penetrate and enhance many workers lives in situations where even a few years ago, no one would have thought possible.

So several questions surface.  Are we seeing  just the tip of the iceberg in the potential Mobile?  Are there fledgling areas of worker mobility that are ready to
explode? Are certain industries prime to take advantage of more mobility in their work force today?  Is it conceivable that there is a day in the not to-distant future where the majority of the Global workforce may be fully mobile enabled and the concept of the desk fades into History? 

Please join us at 10am EST on October 9, 2014 as our panel of mobility experts including Marc Brandenburg, Director, Technical Solutions, Business Innovations Group, Samsung Mobile USA, Jeff Shaner, Senior Product Manager, Esri, Dan Cui Vice President Sales & Business Development, Vuzix Corporation and Jonathan Zufi, Director – North American Mobile, Innovation Center, SAP America, to discuss the questions and opportunities around how the convergence of Mobile technology and the changing workplace are driving the expansion of enabling  Mobile workers, who has the most to gain, and what trends in Worker Mobility will ultimately impact us all.


We recently released SAP Afaria version 7 SP5 for on-premise customer use. This new release introduces new features for mobile device management and improves the performance of the loading and handling large amounts of data in the Afaria Administration console, such as the devices lists and views, server logs, and device activity results. This blog provides a short summary of the additions to this release. Please watch the video here for a walkthrough of the new features. 

The SP5 release of SAP Afaria on-premise includes many device enhancements including the following:


Apple Device Enrollment Program

  • Support for enrolling and managing iOS devices using the Apple Device Enrollment Program


Windows Phone Device Enhancements

  • Windows Phone Client branding
  • Auto-discovery support
  • Domain support

Windows 8,1 device enhancements

  • Auto-discovery support for Win dows 8.1 device enrollment
  • Self-Service Portal support for de vice enrollment
  • Afaria application for Windows 8.1 devices
  • Hardware inventory collection
  • Certificate payload
  • Passcode payload
  • WiFi payload
  • SCEP payload


Administration Enhancements

  • Self-Service Portal enhancements
  • Search by app name while creating an application policy for iOS app store applications, Volume Purchase Program for iOS devices, and Windows Phone app store applications.
  • Get log files from an Android device or an iOS device and use Device Inspector to download client log


Infrastructure Security Enhancements

  • Network Access Control enhancements


All SAP Mobility users of Agentry and SMP 3.0,


As a proactive effort to describe the newest features of SMP and Agentry, we would like to discuss or define the new changes made to the platform to support Agentry/SMP clusters.


In SMP 3.0 SP03 there was an SMP architectural change to support clusters. The Agentry configurations (setup in the agentry.ini) are now stored in the SMP data store and available to Agentry cluster nodes (or all server nodes), so the standalone agentry.ini is no longer needed in production. Most of the former agentry.ini settings that are needed to configure the connection are now in the SAP Management Cockpit. There may be some other agentry.ini features not built-in to the cockpit due to the change but it may show up later or removed completely.


Symptoms that you may see:


  • The Agentry.ini disappears whenever you restart the SMP 3.0 server
  • Agentry.ini (SMP 3.0) is not taking your last configuration changes (edits) and is being ignored by the SMP 3.0 platform


What is the definition of an Agentry production or development publish?


Please refer to the following documents:


  1. Publishing to Development.
  2. Publishing to Production. (In particular - "When you are ready to perform final quality assurance testing or need to deploy the application to users, you perform a production publish in the Agentry Editor, which zips the application files in preparation for importing in to SAP Mobile Platform Server - via the SAP Management Cockpit). In Production mode, the agentry.ini by designed is deleted from the deployed folder as it is stored in the SMP product-name data store or share. Also nobody can edit an Agentry.ini (or copy it) and expect it to exist in the production deployment folder to be taken in by SMP 3.0 with this architectural change. This is by design.



  1. Agentry Editor - Publish Server Configuration Error. (SMP 3.0 SP05 SDK).
  2. Agentry Editor - Publish Server Configuration Error. (SMP 3.0 SP04 Server). - Adaptive Server Enterprise database (cluster).


Most of the products designed in Agentry: SAP Work Manager, SAP Inventory Manager, SAP Sales Manager and others can be downloaded from the service market place. All of the zipped files released are production zip files.


Referenced feature number (SAPJira SMPAGENTRY-867 and SMPAGENTRY-952).


Design recommendation: Before using the design in production mode (zip publish), make sure you tested everything in development. Once you do a zip production publish and import this in the Management Cockpit (in production), your Agentry.ini is not used (or cannot be used for updates) in the SMP configuration Agentry deployment folder (ex: \SMP\Server\configuration\com.sap.mobile.platform.server.agentry.application).


Workaround: Sometimes user may need to do some last minute changes in production. In this case, you may follow the Quick Start Guide Work Manager 6.1 technique where you will need to recreate the Agentry node (From the presentation: check the pictures on how the agentry.ini gets removed after you import the Agentry zip file).


As we continue to improve our documentation and release notes, we appreciate your time in reviewing this blog. Please share this with your common designers and users to share the knowledge.


Best Regards,

Mark Pe

SAP Senior Support Engineer (Mobility)


Filter Blog

By author:
By date:
By tag: