Lessons learned: Migrating an MBO-based application to an OData Offline App with SMP 3.0 and Kapsel

Before diving deep into this lessons learned blog, I first want to give you some context and background information. We at msc mobile have a product called Sales Plus for SAP ERP. It’s an MBO-based application connecting via SAP Mobile Platform to SAP ERP to enable sales representatives to do their daily business on a mobile device, either on tablets or smartphones. So the user is able to see and manipulate all kind of relevant master data (Customers, Contacts, Materials, etc.) and transactional data (Sales Activities and Sales Orders) in an offline mode. Just by hitting a synchronize button the online connection is made to SMP and the changes are transferred to SAP. Sales Plus is available on the SAPStore and the Apple AppStore.


To enable cross-platform support, Sales Plus was designed with a container approach: all business logic is implemented with HTML5 and JavaScript (jQuery), whereas native code generated with SMP based on the MBO data model is integrated to handle synchronization and enterprise grade features, e.g. user and security handling. Apache Cordova enables the communication between the generated native layer and frontend layer.


SAP made a tremendous shift within their mobile platform’s technology stack. From SMP 2.3 to SMP 3.0 the entire stack was redesigned, from this MBO approach to a SAP Netweaver Gateway support model based on OData. With the brand new Support Packs (Server Runtime: SP05, SDK: SP04) SMP 3.0 enables offline OData support, which was the reason for us at msc mobile to decide to migrate the entire app.

Now let’s take a deeper look for each layer what a migration means in detail:

  • In SAP ERP all RFCs (Remote Function Calls) need to be replaced by a single SAP Gateway service. A great feature in SEGW (Gateway Service Builder) is the creation of Entities and EntitySets out of predefined ABAP dictionary structures. Since all Sales Plus interfaces are based on those structures, it was very easy to generate the data model. Enhancing the data model with Associations provides the possibility to navigate between Entities (e.g. Customer –> Contact).
    Much of the ABAP code for creating, updating, and deleting Entities could be reused during redefining the corresponding methods of the generated Data Provider Class. The biggest challenge was to rewrite the ABAP code for getting EntitySets. In the MBO-based version SMP was fetching all necessary data for all mobile users based on a predefined schedule. The concrete data distribution was determined with synchronization keys. But in the context of SMP 3.0 and OData, each user is connecting to SAP directly when refreshing data. Therefore, the logic needed to be adjusted to get only the user’s data at each call.
  • In SMP’s Gateway Management Cockpit the SAP Gateway service needs to be defined first. In the Administration console the app must be created using the Gateway service defined before (hint: select “Internal” to improve performance). After specifying all other values like Authentication etc. you could already save and close. In Offline tab you could provide additional settings to manipulate SMP’s offline behavior (when database is created etc.). But if you don’t differ from default values, there is no need to upload a settings file.
  • In Cordova / native layer there was no need to change much. Just adding the required Kapsel plugins like LogonPlugin, EncryptedStorage, OData Offline, etc. did the job. The reuse of msc mobile own Cordova plugins was no problem at all (e.g. separate plugin to handle material pictures synchronization with a separate file server).
  • In HTML / JS the entire frontend business logic could remain as is. Just the data retrieval needed to be adjusted. Instead of communicating with own Cordova plugins to get and send data, now everything can be done directly in JavaScript by doing HTTP-Requests against the OData services. All requests, either online or offline, have the same format. Therefore, the developer doesn’t need to go different ways depending on current internet connectivity. Dealing with Offline Stores (based on OData Kapsel plugin), the developer can trigger the data get (refresh) and data send (flush) manually. So the user still works offline all the time, until he/she clicks on synchronize to trigger the corresponding refresh and flush operation.

But due to the fact that those offline capabilities were added recently (see SP’s stated above), unfortunately some features are not supported yet:

  • There is currently no possibility to use Kapsel Offline OData plugin in combination with Relay Server. Hence, a connection with VPN must be established to connect to SMP directly.
  • To enable searches we tried to combine several “substringof(‘search_term’, attribute) directives within one filter expression. Unfortunately, this is currently not supported or is a bug. It’s working only with a single substringof statement.
  • When trying to run a deep insert, you will fail. This must be done with a batch call.
  • Some of you might know the “submitPending()” function from MBO-based native apps to identify instances to be synchronized. This is a concept not implemented yet. So all OData create / update / delete calls directly take effect in the local database, and therefore will be synchronized at next flush. There is currently no possibility to define which instances should be synchronized, and which should not.

I hope this gave you a good impression what it means to migrate an MBO-based app to SMP 3.0 using OData services. It definitively makes sense to switch to the new technology stack. In former times it was a horror to do any change to the SAP interface in use, since this required to touch the MBO data model, generate new code, embed this code, and then finally do the change in Cordova plugin etc. Now you can easily change the attribute in SEGW, regenerate Data Provider Class – that’s it!

Another big advantage is the decreased load on the backend. A scheduled refresh of all data was leading to run both systems, SAP and SMP, with heavy load. Now with each user connecting directly to SAP via SMP Integration Gateway, flattens the load over the business day.

In summary I can say, the entire migration went faster than initially planned. The Kapsel plugins are increasing the development performance by far. I am really excited what SAP will provide with the next SP releases. Looking forward to get Sales Plus running offline on Windows 8!

Thomas Weber, Product Manager Sales Plus for SAP ERP

Sales Plus for SAP ERP at Sopharma Trading

Sopharma Trading, one of our Sales Plus for SAP ERP customers, presented their mobile sales implementation together with our partner Sqilline at the SAP Forum Bulgaria in Sofia.


On top of the SAP Mobile Platform,  Sqilline was able to implement Sales Plus in a matter of weeks and add customer specific enhancements to the solution. This includes:

  • Promotions and Conditions
  • Header Discounts
  • Add bundles to Sales Orders
  • Translation of the user interface into Bulgarian

Sqilline also changed the look and feel of our app to fit the corporate identity of Sopharma Trading. Here are a few example screenshots:

Sopharma Trading is using Sales Plus on iPads.

msc mobile Named a Finalist for 2014 SAP® Pinnacle Award

msc mobile Named a Finalist for 2014 SAP® Pinnacle Award in Application Development Partner of the Year Category


sap_pinnacle2014_fin_rgb_lgAugsburg— April, 2014 — msc mobile today announced it is a 2014 SAP® Pinnacle award finalist in the Application Development Partner of the Year category.  SAP Pinnacle awards are presented annually to leading SAP partners that have excelled in developing and growing their partnership with SAP (NYSE: SAP) and driving customer success.  Finalists and winners in 21 categories were based on field recommendations, customer feedback and performance indicators in the following five umbrella categories: Run Together (for co-innovation), Run Further (for market expansion), Run Clever (for service delivery), Run Sustainably (for sustainability) and new for 2014 Customers’ Choice.

“We are so proud to be a finalist of the 2014 SAP Pinnacle Award, as it affirms the great work we do for our customers every day,” said Thomas Weber, Product Manager Sales Plus for SAP ERP at msc mobile. “We are completely dedicated to improve the business processes by providing easy to use solutions for the desktop and the mobile world.”

The award recognizes the ability of msc mobile to build innovative solutions based on SAP technologies that address critical customer needs and support SAP technology adoption. msc mobile was recognized as the winner of the SAP Mobile Game On App Contest in January 2014 and is present in the SAP Store with their solution Sales Plus for SAP ERP.

“Being a finalist of the SAP Pinnacle Award is additional motivation for us to continue to create new innovative solutions that help to transform business and help them to run better” said Alexander Ilg, Managing Director of msc mobile.

The SAP Pinnacle awards allow SAP to shine a spotlight on its leading partners that have excelled in their partnership with SAP and in growing mutual business by helping customers run better.


About msc mobile

With everything we do, we want to make the work life of people easier. We believe that people should be able to focus on their work, instead of spending their time on administrative tasks, paper or software.

The way we make the life of people easier is by providing easy to use solutions for the mobile world and the desktop. We implement standard SAP Mobile solutions and develop custom applications.

Founded in 2006, winner of the “2014 SAP Mobile Game On App Contest” and finalist of the 2014 SAP Pinnacle Award, msc mobile is an SAP platform partner with a proven track record in enterprise mobility.


# # #

SAP and all SAP logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries.

All other product and service names mentioned are the trademarks of their respective companies.

For more information, please contact:


Stavros Giogiakas


+49 151 46 31 43 01



North America:

Carl Boivin


+1 514.295.9655



Bringing SAP Travel Management to the iPad

In an unparalleled project, we enabled 30 000 users to run SAP Travel Management on their iPad’s. The customer is the worlds 5th largest pharmaceutical company and they replaced their sales reps laptops with iPads.


The challenge with this project was that we did not need to mobilize parts of SAP Travel Management, but the whole process. This includes:

  • My Trips And Expenses
  • Create Travel Request
  • Create Expense Report
  • My Employees
  • My Approvals
  • Manage Substitution for Approval Process
  • Delegate to Assistant

The application had to be written with the customisation options of Travel Management in mind, as the app was rolled out world wide. Each country has their own legal requirements, each country has their own travel policies and each country has their own receipt types.

So we had to make the application fully aware of the SAP configuration and customizing. All options that you can configure in SPRO are available in the mobile application. Because of that we were able to rollout the app to all countries without changing the code. In fact, we could install the app against any SAP system in which Travel Management is customised and it would run out-of-the-box.

The app supports everything that is possible in the Enterprise Portal and a lot more. For example we allow the user to access his Exchange calendar from within the app to select participants of a meeting. These participants will be copied into the participant-list of specific expense types, which is saving the user a lot of time. Instead of manually entering them, they can add them with just two touches.


The most important part of the project was the design of the user interface. And design is more than colours and font type. A good design also makes sure that the user can reach his goals as easy as possible.

The following shows the user interface of the app, running on iOS7:


For this pure online application, we decided to write a BSP application on the ABAP stack that communicates with the iPad via JSON. In the backend, the BSP application interacts with the same SAP function modules than the standard SAP Portal solution. On the device we went with a native application because this guaranties us the best possible usability. Each request to the server returns us two things:

  • MetaData/Customizing – what should be displayed? Which fields are read only, which ones are editable? Localised labels and texts, etc..
  • Data – the business data that is displayed on the screen.

We soon found out that the performance of this approach is better than the one of the Web DynPro applications in the enterprise portal. We save a lot of overhead, as we do not need to send all the HTML code and JavaScript to the client.

The project was a big success and the rollout went smooth and without a lot of issues. The application got a fantastic user feedback, which is the biggest compliment that we can get!

SAP Travel Management on the iPad

We are looking for SAP Mobile Experts in Canada

We are currently looking for talented and ambitious SAP Mobile Architects/Consultants to join its team in Montreal.

Do you know SAP UI5, Gateway, SMP, Syclo, Mobilink, ABAP, Objective C, Java or do you want to learn it? Then msc mobile is the right place for you!

For more info you can click on the following link: http://www.msc-mobile.com/sap_mobile_career_mobile_architect.jsp


msc mobile – the SAP Mobile Experts


Improved usability for SAP SRM with UI5 and Gateway

For the last few years, usability has been one of our core battle, especially around SAP products. Although we’ve witnessed a recent awareness and good initiatives on this matter from SAP, there’s still a lot to be done to make people’s work easier and better.

We recently faced such challenge regarding the SAP Supplier Relationship Management (SRM) brand new user interface. SAP acknowledged that the standard SRM solution that was in place for years was way too complex for most users. User who’d like to, let say, order office supplies or a new smartphone once a year. By leveraging their latest UI technology (SAP UI5) and Gateway, they created a solution that is a lot easier to apprehend and fits modern Web standards.

Yet, customers always want more. And in our case, the customer is a world wide operating pharmaceutical company with headquarter in Basel, Switzerland. Although they appreciated the effort made by SAP, most of the screens and flows had to be changed/enhanced. New functionalities were also required such as:

  • Editing of the purchase order
  • Partial and full confirmation of the purchase order
  • Partial and full return of the purchase order

This involved enhancing deeply the standard application to the point where new views had to be created along with new Gateway services, and even new customer specific SAP UI5 controls. The stylesheet had to be completely revisited and adjusted to match customer’s branding.

Here is a screenshot of the enhanced and re-branded Shopping cart home page.


Next step is the development of the approvals for both the requesters and approvers using the same concepts.

SAP UI and Gatway Development

Impressions of SAP at CeBit 2014

I went to CeBit in Hannover yesterday to meet with the specialised sales mobility at the SAP booth. As always, the booth has been huge and impressive. The main topics SAP pushed this year have been Hana and cloud – not a big surprise if you know in which direction SAP is heading.

They also showed mobility, the internet of things, Ariba  and other stuff. Here are some impressions from the SAP booth at CeBit:

SAP Mobile Solutions