You are on page 1of 36


Developing Mobile Apps with SAP HANA Cloud

Week 1 Unit 1

Hi. Welcome to this openSAP course. Developing mobile apps with the SAP HANA Cloud.
I'm Jeff Gebo from the Technology RIG Group.
I along with my colleague Dhimant Patel will be your instructors over the next seven
weeks. That said, I hope you had a chance to look at the system preparation materials
that we released two weeks prior to the running of this course. In there, you'll find it shows
how to set up your trial accounts.
And your developer workstation if you want to follow the exercises that we have for the
course. These exercises aren't mandatory but they are of great value.
And going through them I think would be really good if you could set up everything. That
said, let's go ahead and get started. First off, we want to take a look at the course


So you have an idea of the next seven weeks, or what we have in store here for you. So
Weeks 1 through 6, this is going to be a bunch of videos along with associated exercises
and all that.


Each week has 5 to 8 videos. And it shouldn't take any more than 4 to 6 hours to go
through these a week.
And on top of that again, we have the exercises that are available for you. Week 7, you're
going to have a final exam.
OK. And there you'll get to test yourself. And if you get 50% or higher, you will get a record
of achievement.
Now that's 50%. I have great confidence that if you watch all these videos that you'll be
able to do this. Also, if you look at each week here, you'll see how it's broken up. Like I
said 5 to 8 videos.





There will be self-tests associated with each one of these. And then some weekly
assignments as well as all the exercises that we're going to have out there.
Not every week will have an exercise, but most of them will. I'm going to have them
available. So, then we're going to jump to Week 2, or Week 1, just Mobility SAP, we're
going to be doing a lot of overviews here.
I've got a demo that I'll go over as well. Week 2: Get into more of how we do Web IDEbased development for Fiori apps.
We're going to touch on more of a high-level overview, there'll be some exercises,
creating some simple Fiori apps and extending them. We realize that there's already been
openSAP courses on SAP Web IDE that go into more detail.
That said, we do want to give an overview of it. Then, after that, we're going to really focus
on mobilizing these Fiori apps.
And in a nutshell that's really what this course is about, taking Fiori apps and mobilizing
them. So, that's where Week 3 we jump into that. We look at the SAP Fiori Client.
This is an app available on the app stores. We'll see how we could use it. We could demo
it against a live site, use it against our own content.
Run it through our Mobile Platform as well, and get real mobile qualities. And we could
even build our own, brand it with our own logo. You'll learn all about these things and how
to do this.


OK. Then we'll go into more real mobility. Where we're going to truly mobilize a Fiori app,
wrap it as a native app.
And incorporate things like the push notifications and even go as far as create an offline
app. So that'll be in Week 5, the offline app.
Week 6, you know, up to this point we've gotten a good understanding of creating these
mobile apps. Now we're going to take them, use Mobile Secure, see what features and
functions are there for securing the apps.


And as well as using a component called the SAP Mobile Place to host our apps in an
enterprise app store for employees to be able to go out and find these apps and download
them to their device.


Anyway, we'll get into all those details. It should be a real fun seven weeks here we have
planned for you. Culminated by that final exam where, hey, 50%, you're going to get that
record of achievement. I know it!


OK. Let's go into the real content here. Quite often I talk to customers and they're just
struggling with, hey, how do I get started with mobility?
Well, when I think of getting started, I think the best place is with SAP Fiori. One, not only
is it simple and has a nice looking UI.
And it makes sense to your users, right? It's easier to understand and get started with
these applications than with the old dynpro apps
that I personally have been around with SAP, I'm very experienced with those. I kind of
like them, but I understand that our user base wants something easier and nicer looking.
I totally understand that. That's what SAP Fiori is all about. Now you're wondering what is
that all about? What's the mobile part of that?
The nice thing about Fiori is that it's responsive. And what does responsive mean?



Well, that means that when I write a Fiori app. If I use that app within my desktop browser,
it's able to respond to the size of that desktop device.
And it will display data that makes sense there and still in a simple format. OK, so on my
desktop I could show a lot of data at once and still in a simple and nice looking way, right.
But what about a mobile device when I access that same app? We certainly wouldn't want
to show all that same data in a single view on that device.
So that's where it responds to the device resolution and displays data in a simple way that
makes sense on that device. So when I first open the app on a mobile device, maybe it
just shows me a list of products.
And to go to the details of a product, I'd click and it would show me a new view of the
details. Whereas on a desktop, I might see all of that on a single screen, right.
So that's what we mean about responsive. And that's why Fiori is a great place to start for
mobility because you implement a Fiori app.
Not only are you getting it to work on a desktop, but also your devices. OK. It's running in
a browser. You're not really using mobile qualities, but it's resolving down to your device.
And you can use your browser, and it's going to work fine. And that might be enough for a
lot of customers. And definitely a good place to start.
The nice thing about Fiori as well is that we have what we call the Fiori Launchpad. Which
is a role-based access to your Fiori apps.
So it sets these apps up in kind of a portal look and feel where each app would show up
as a tile within this launchpad, which shows up as a single page in your device, your


And from there the users can click which apps they want to enter into and do whatever
work they need to get done. This is all role-based configured, so one user might have
three tiles.


Another user might have 10 or more, right. So you can configure that based on your
needs. Again, Fiori, a great place to start for mobility.




OK. Another thing when it comes to mobility and our strategy here at SAP is trying to
reach out to developers. Make it easier for them to develop these mobile apps.
And obviously not just mobile apps, any UI-type app, right? And these developers, we
want them to focus on what they're good at. That's developing the apps.
In the UIs or whatever, whether they be mobility of not. We don't want them focusing on
complications of the SAP back-end data. And, quite honestly, prior to what we've done
here recently.
You used to have to have the SAP UI developer be right next to some business expert
telling them all the different fields they needed to use and what they were.
Some of these were German-type connotations, the field names, and stuff like this. Us
old-timers remember these things, we've dealt with that many a time.
But now, we supply RESTful APIs. Which these new developers writing these new mobile
or Web 2.0 -style apps or Fiori apps want to deal with here.
Simple, RESTful APIs that are easy to call over HTTP. Now, REST in itself is not a
standard, it's just a concept, an architectural principle.
But there are standards for REST, and what we support is OData. And this is really great
for representing structured data via RESTful API.
You've lots of resources out there before you go and learn about OData. Anyway, at the
end of the day, that's what we support and those are the services that we supply
from our back-end systems that are RESTful. Now, that said, you can call those over
But we want to make it even easier for mobile developers so we supply an SAP Mobile
Platform SDK that supports both native development as well as hybrid development.
Now what do I mean by native development? Well, if you're an iOS developer and you
want to write a native iOS app that, you know, executes nicely on iOS.
Well, you could use our iOS native SDK. Same thing for Android. And we also support a
Windows phone 8.1 and Windows 8.1 SDK as well.
So you can take that. Write your really nice native apps that way. Now not all apps you
want to create as a native app.
You know, when you're thinking about business- to-employee-type apps that you're going
to write, then it starts making a lot of sense to me to write hybrid apps.
And the container we support to do this is called Apache Cordova. Very popular out there,
many customers and big companies support this open source project.
SAP being just one of them. And it's a nice open container where you can supply plugins
that access device functionality out there.
And it's been ported to all the major devices, and the ones we support, iOS, Android, and
Windows. And we supply a bunch of plugins within our SDK that work with this container
that give you access to more enterprise-level functionality. And integrate with our Mobile
Platform. You know, things like additional plugins like a barcode scanner.
Things that you need for business in an enterprise-level support. OK. Now, that's from an
SDK perspective.
But from a development perspective, we want to make it easy to develop and extend Fiori
apps. And that's where SAP Web IDE comes in.
This is a cloud-based development environment available out there. Again, it's a free trial.
Get started with this. Kick the tires, see how it works.
And we'll be going over that in Week 2. At the end of the day, it lets you create Fiori apps,
extend them. And deploy them out to the cloud, or you could even from there deploy them
to an on-premise system as well.
Anyway, big focus on developers, trying to make it easier for developers to write SAPcentered apps without being an SAP back-end expert.
Or needing one sitting right next to you, right. We're making this as easy as we can. OK.
So the next step on our SAP mobile strategy is the SAP Mobile Platform.




Now, the Mobile Platform - we have a version for both on-premise and in the cloud. What
we're going to be using within this course is the cloud-based version.
We call that the SAP HANA Cloud Platform Mobile Services. It's just a service running
inside the HANA Cloud Platform that you could choose to enable.
OK. And you might be wondering what do I need this mobile platform for, what
functionality does it give me? Well, it gives you the ability to onboard your users securely.
And authenticate against your back ends in a number of different manners. Also support
for things like push notifications, offline applications.
And then just supporting your users. You know, what I always find when I develop a
mobile app I could get it running on my own device, but then I deploy it out to a thousand
These users have different device setups and for one reason or another, some of those
users have issues, right. So you need the ability to log and trace things there.
And send those traces and log files back to the server where your developers can analyze
these things. So this is a key piece of functionality.
Also, you want to understand how your users are using the applications, so we have
usage analytics as well. And some support for lifecycle management.
So with our hybrid applications, we're able to support the ability to push new content to
these applications. And update them without having to redeploy the entire app. So that's
kind of a nice functionality as well.
We'll get into the details and the value of what the mobile platform brings. Hopefully you'll
go through the exercises and get some feeling for it as well.
OK. On to the next piece here, and it's Secure. You know, in mobility always a big thing.
And probably 70% or maybe even more of the questions I get
is around security and securing apps. So we have SAP Mobile Secure.
And the big thing about this is, 1, it can run in the cloud. There's a version out there. And
in Week 6, we 're going to focus on that, the entire week.
We'll see what it's all about. What this does in a nutshell though is mobile device
management, application protection, and also there's a subcomponent for an enterprise
app store.


And think of this as your app store for your employees to pull the apps down that you want
to make available to them. And rate them, and things like that. Things you'd expect from
an app store.


On top of that, what we're getting into here as well is adding a build service. Where you
could build your apps on the Mobile Secure.
So I could actually take a Fiori URL, plug that into Mobile Secure build service, and it will
build me a native executable, hybrid-based, which is basically the SAP Fiori Client, which
we'll learn all about.



And then be able to host that out there on your enterprise app store. OK. So this build
service is really nice because you don't have to set up a local build environment
to build a mobile app, right. A huge advantage of this. In the future, you're going to see
this concept grow. There's going to be a lot more possibilities within it.
This is really just the first thing that we're enabling. Taking that Fiori URL and building a
custom Fiori Client around it.
So definitely exciting stuff on the way. Now, Mobile Strategy, next step here is Cloud.
I'm a big proponent of Cloud, I really like it. One, free trial, right? All of our components
that we're going to talk about are going to have free trials that you go out and set up.
And the thing about a free trial is that it levels the playing field, right. You as an individual
developer with a great idea could go and execute on it.
With no start up other than your laptop or your workstation, or whatever you're going to
use. But that's huge, right? No longer do you need to work in a big company
to have the setup you need to write SAP-centric apps. You could do this all in the Cloud,
start with a free trial, zero startup cost.




And another big thing about the Cloud is innovate. You're going to be able to focus on
your innovations, rather than dealing with configuring your back-end systems.
You know, installing whatever you need to install. And keeping up with upgrades. This
goes to whether you're an individual developer or you're a large corporation.
It just makes sense, right? Because you're going to focus on your innovation. SAP is
going to deal with the upgrading of the systems.
The nice thing about it too is that SAP is going to be constantly innovating. We are on a
monthly release cycle out on the SAP HANA Cloud Platform.
Where we're going to constantly be upgrading these systems with the latest features and
functionalities that you'll get supplied, you'll get access to.
You know, a huge advantage of this, like I said, big proponent, free trails, it's definitely
good stuff. My kind of dream here is one of you out there watching this course has a great
Takes this opportunity as an individual developer, maybe with a couple of buddies. And
goes out and executes on that, makes it a big success.
That's how I hope that happens. Alright. Now, just to look at this from an end-to- end
perspective on this slide.
Really, this describes the course exactly. We're going to be taking our SAP Web IDE to
develop and extend Fiori apps.
We're going to take that and create mobile apps out of them. And a key component of this
is going to be the Hybrid Application Toolkit. We'll start seeing this in Week 4.
Then from there, we're going to take these apps, put them out on Mobile Secure, host
them on Mobile Place on our enterprise app store.
And then you're going to be able to run and enjoy those on your device. So, if you go
through these exercises we're going to have for you, at the end of the day, or at the end of
the seven weeks,
you're going to have these apps running on your device. And they're going to be running
against live data.
So, great stuff. And from there, obviously there's a ton of value in that. And you didn't
have to have any startup costs whatsoever to have some apps running out there.
Anyway, I'm excited about it. I hope you are too. I think the next seven weeks are going to
be a lot of fun. One last slide here is our mobile strategy.
You here it all the time, just the SAP strategy: Run Simple. And that's what the Cloud is all
about. Keeping it simple for you, you don't have to worry about all these upgrades.
We're going to supply them for you. We're going to keep improving things monthly with
our monthly release cycle.
And you're going to be able to build your Fiori UIs. Extend existing ones, all of this. You
get all that responsive support for your applications
whether they are on desktops or mobile, write one single app that supports both. Pretty
cool stuff. And this is all based underneath the covers, you see UI5 here.
That's our JavaScript library that Fiori is based on. Anyway, support for building all of that.
And then running these
through our Mobile Platform whether it be the on-premise version, or the SAP HANA
Cloud Platform Mobile Services. Which is our Cloud version.
And so you're going to get a good feeling of that here. And how easy those are to set up
and start using the functionality that it provides.
Then we're going to take these apps again and use Mobile Secure to secure these, host
them on our Mobile Place or app store and go with that.
So, again, yes I'm excited, it's going to be seven weeks of fun. And I hope you do the
Now, that said, this is the first unit of Week 1. I appreciate you listening. Hopefully it's
inspired you to go on through the rest of the next seven weeks.


Good luck with all that. Looking forward to hearing from you on the Cloud. Sorry, I've got
Cloud on the brain, I mean on the forums that we have out there. On the openSAP


Any questions you have, we'll do our best to answer them as quickly as possible. I've got
one last point I want to make.
And this is: Stay tuned for more innovations. I was saying this earlier. The Cloud, we're on
a constant upgrading every month with this release cycle.
So, what we're going to show you in the demos throughout this course is, you know we
have recorded these probably a couple of months before this is going to run, so
UIs might have changed. There might be new innovations. So just be aware of that. We
are planning on providing extra videos
that we will create at the time of this course running to keep you on top of what's new out
there. OK. So lots of good stuff.
And I look forward to seeing you in the future units. Thanks a lot.


Week 1 Unit 2

Hi Jeff here. So previously we were talking about the SAP Mobile Strategy.


Now we're going to take a look at the SAP Mobile Cloud Architecture. Basically, we're just
going to go over all the pieces we're going to use within this openSAP course.
Things that are in the Cloud as well as the pieces we need on our workstations or laptops
to develop these mobile applications. So let's take a look.
So the core component being the SAP HANA Cloud Platform. This is our platform as a
service. And out there are many services that you can choose and enable.
The two services we're going to be using are the SAP HANA Cloud Platform Mobile
Services. This gives us all our enterprise-level mobility support for our mobile applications.
On top of that, we will make use of the SAP HANA Cloud Portal. That's another service
available. Where you can configure a Fiori launch page or pad in the cloud.
And basically what this is role-based access to your Fiori-based applications. But we'll
take a look at that in deeper detail later on.
Another piece that's running out there on the HANA Cloud Platform is the SAP Web IDE.
It's what we're going to be using to develop our Fiori apps.
And, of course, the admin UI for the HANA Cloud Platform or the SAP HANA Cloud
Platform Cockpit. It's just a Web-based UI we use to manage all this, enable services,
create different things.




Another thing we'll be using quite a bit out there is Destinations. This is any time you want
to access some external resource, whether it be on-premise or on the Internet.
You know, maybe some OData services out there, we would configure a destination for it.
Set up the security and different levels on that, what the end-point URL is, things like that.
OK. So that's out there in the cloud, and that's what we'll be using. Now, on-premise, we
will have to set up our development environment.
This includes a Hybrid Application Toolkit, Mobile Platform SDK, and all the pieces that it
requires. Now this is all covered in the prerequisite portion of this course that ran before
Week 1.
Hopefully you were able to install all that. And if you have, you were able to go through
and do all the exercises that are part of this openSAP course.
So, you have that setup to do with the build. And the Hybrid Application Toolkit. At the end
of the day, what's it doing? It makes a connection to the Web IDE.
It's just a Web IDE plugin that is able to pull down those Fiori resources and do a local
build with them based on Apache Cordova.
And then once it does that build, it can take that file that it built, the mobile application, and
deploy it to the device. Or an emulator or simulator, depending on what you have set up.
Now we want to have exercises on this, but we will go over it from a presentation and
demo perspective. And that's the SAP HANA Cloud Connector.
And this sets up a secure connection from your on-premise landscape to the Cloud. So
once you have that secure connection set up, then you can specify which resources
from your on-premise systems that you want to expose. Now after that we've developed
our mobile applications, we have them running.
And we're going to take a look at SAP Mobile Secure, also another cloud component. And
we're going to take these applications and host them out there on the SAP Mobile Place.
Think about this as an enterprise app store. Or app store for your employees where they
can go and browse, and pull down the apps that they want to access,
rate them, give reviews, things like that. Basic app store stuff.
Other functionality out there as well, Mobile Secure, so app protection, mobile device
management. We'll talk about that in detail in Week 6.
Again, a core component, a little more detail here, is the SAP HANA Cloud Platform. And
this is our platform as a service, and we talked about the services that we are going to


But it's much more than that. And those are just a couple of the services available. Once
you're out there and you have your trial account, I invite you to go and browse around and
see what other functionalities are out there.


One thing you could also do is host Java-based applications whether they be Webpagetype applications or maybe OData services. So you could deploy and host these Java
apps out there.


You can see down here at the bottom we have a URL to show you where to get started.
On that page, you'll find a link to go and set up your trial account if you haven't already.
Also quite a few videos going into more details about the different functionalities available
on the HANA Cloud Platform. Part of that HANA Cloud Platform is the SAP HANA Cloud
Platform Mobile Services.



And this is our Cloud-based version of the mobile platform. It gives us enterprise-level
support for our mobile applications.
Once you go out there, what you do is you configure your application profile which is more
or less telling which back-end services you're going to be consuming. Typically OData, but
any http resource you could do.


But typically you put your OData end points in there. On top of that, you'd then configure
your security profiles and your security setup that you're going to be using for your


Now lots of other functionality there, usage analytics, push notification support, offline
OData support as well. Again, we're going to go over all the detail of this in the coming


Web IDE is our development environment out there. Browser-based running in the Cloud.
And you could create your Fiori apps, extend Fiori apps.
Create your own UI5-based apps as well. And it's a very extensible development
environment. Right now it's pretty geared to Fiori-based development.
But you will see SAP using this for all sorts of different development type paradigms out
there. Part of the trial. You're going to get a chance to use it. So we'll be using that
extensively in Week 2.




I mentioned the SAP HANA Cloud Connector. This is to set up our secure connection
between cloud and on-premise.
At the end of the day, it's just an app running on a Java app server. And something you
install, it's actually very simple, you'll get this set up and running in ten minutes.
Down here at the bottom, you can see a link to where you go out there, download it for
your platform that you're running. And find the help in all of that. So follow that and get that
set up.
Another piece we're going to install, if you're going to do the exercise, is Mobile Platform
SDK. This is a set of libraries for native development, for iOS, Windows, and Android.
And it also contains Apache Cordova plugins for doing hybrid-based development. And
that's what we're going to make use of here when we're mobilizing our Fiori apps.
We're going to be using these plugins that will give us functionality like secure onboarding
to the HANA Cloud Platform mobile services. Push notification support as well as offline
OData support.


We're going to have a change to use these different plugins as we go through this. I see a
few of the plugins listed here. There are quite a few more. And we'll go over this in more
detail later on.


Now if you're going to be doing hybrid application development, you need to have quite a
bit set up on your local workstation or laptop. This just goes through the different
prerequisites like the Java SDK, ANT if you want to do Apache.


Sorry, if you want to Android development with Apache Cordova. Node.js which Cordova
is based on, it's a JavaScript runtime.
And Xcode, you need the Android SDK, you need Xcode again for iOS. Visual Studio if
you're doing Windows Phone 8.1 or Windows 8.1-based development, use that.



But just know that the Hybrid Application Toolkit does not yet support that, it's supporting
iOS and Android. But from an SDK perspective, we do support Windows 8.1 and Windows
Phone 8.1.


And I would imagine soon it won't be long before the Hybrid Application Toolkit will also be
supporting this as well. Ok. Another thing we're going to install to build our applications,
and I've already mentioned this, but a little more detail here.


It's the Hybrid Application Toolkit. It's out there as a free trial. You download it on the SAP
And, again, just a plugin for the Web IDE. It sets up that connection so that we can pull
those resources down and locally build our mobile applications for Android or iOS.
Now another piece of this that we haven't talked about is the companion application. And
that's something that comes along with the Hybrid Application Toolkit.
It is basically an application that incorporates all the plugins that come with the mobile
SDK. And it has the ability to pull down your Fiori contents dynamically so you can quickly






your applications without having to go through the Hybrid Application Toolkit build
process. And you might be wondering, well, why do we need that?
Basically, it takes a little while to build these mobile apps and go through that build
process. Having this companion app just helps you very quickly pull down those Fiori
And then run your functionality within the companion app container. So, we'll go over this
in, I believe, Week 4.
See a link down here to learn about the Hybrid Application Toolkit, telling you all about
how to set it up and where to download it from. Now, what we're also going to be making
use of is SAP Mobile Secure. And one of the components of that is SAP Mobile Place.
And that's where we're going to go out and host our apps in the enterprise app store.
Which is also known as SAP Mobile Place.
We'll talk about this in Week 6 as well as other features and functionalities of SAP Mobile
Secure. So those are the components we're going to be using throughout this openSAP
It should be a lot of fun. I think we'll all learn a lot. That's it. Thanks for listening. And I'll
look forward to talking to you in the next unit. Thank you.

Week 1 Unit 3

Hi, Jeff here. In this unit, we're going to be talking about SAP Fiori and it being the
gateway to mobility. You might remember me mentioning this a couple of units ago.
Where I said SAP Fiori is a great way to get started with mobility. Let's go over why that is.
OK. So the SAP Fiori user experience. What is this made up of? How is this designed and
thought out?
Well, for one, we have a concept. And our concept is: We want this to be delightful. We
want to be coherent.
Meaning we want these apps to fit together and be similar from a user perspective. We
want it to be simple, we want it to be responsive.
Meaning I could have the same app render on my desktop browser, or I could have it
render in my mobile browser. We want to be able to support role-based access.
So like a portal look and feel where I could access and be assigned the apps through
roles. And those apps will show up within my portal for Fiori.
So we want to have that concept across all of Fiori apps. We also want the same design.


From a visual appearance and visual design, into the interaction models that we're going
to support, also the way we interact with data. So no matter what the back end is, Fiori
describes what the design is going to be and the interaction patterns that are supported.


On top of that, we're going to follow the same Fiori technology. The UI is going to follow
the same technology and it's going to consume the business data in the same way using
OData services.


No matter what the back end might be. So that really is what Fiori is all about.


Following the same concept, design and technology, across all applications, no matter
where the data comes from. And, by doing so, we reach back to delightful, coherent, and


OK. That's really what we're shooting for here with Fiori. Now from a mobility perspective,
out of all these, it's the responsiveness that really enables mobility.
Because now I can write a single application that's going to run on a desktop browser.
And it will also support rendering on a mobile device browser.
Again, making the experience coherent across the enterprise. So these apps should all
behave the same no matter if the data is coming from a finance app,
human resources, CRM, or procurement apps. OK. And it should all be the same even if
we're using it on the desktop or on mobile devices.
And that's what Fiori is about. And by doing so, now we could write Fiori apps across all
the lines of businesses.
And you can see we have many listed here in different segments, in different business
areas. And they will behave very similarly to each other because they're all following the
same design patterns.



Now we can take all these apps and pull them all together in a portal-type of feel. And this
component we call the SAP Fiori Launchpad.
It's available on-premise or in the cloud. Later on, in Week 2, we'll be showing you the
Fiori Launchpad that you could use in the SAP HANA Cloud Platform Portal Service.
OK, but it's role-based, and it enables you to personalize as well. You can see here a
picture of a Fiori launchpad where it shows the application tiles being displayed.
That are assigned to the user that accesses this. Now another user might log on and
they'll get a whole different set of applications based on their roles.
Again, just following the same simple UI design patterns as we laid out with what Fiori is
all about. Get a little closer here at the Fiori Launchpad as our entry point into our Fiori


A lot of different things you could do there. You could have news feeds. You could group
tiles together. Maybe your users could do that so that they could have maybe like a
finance group.


And a HR group perhaps, something like that. There's a search functionality.


Each tile you have the possibility, depending on the technology you are using for the back
end, to have these alerts. And dashboard data showing up here in the application tile.


You even have Jam integration so that you could collaborate with colleagues. And, again,
dynamic data and charts that could show up here within the tiles.
So a lot of different functionalities. And again, this is shown rendered in a browser. This
could also render right on your mobile device browser as well. That being a desktop
browser that you see there.






OK, so how do you learn about all these Fiori apps? The best thing to do is go to the Fiori
apps reference library. You see the URL here in the presentation.
You go out there and you get a list of all the different apps. At the time I took this
screenshot, there were today.
And you can find the ones that are interesting to you. You can click on them and it'll give
you information about the application. And it'll give you implementation information as
well. All the different components you'll need to install to get it set up and going.
You probably want to see Fiori in action. And we have a live trial. You can see the URL to
access this. This is the SAP Fiori, Demo Cloud Edition.
And you can go out here and launch it. And there are all sorts of Fiori apps that are live
there with real data.
And available for you to demo and check out. You could even go so far out here as
extending these applications and getting a Web IDE trial account
for the Demo Cloud Edition and making your own extensions. That said, it's a great place
to start just to see how Fiori behaves.
And we're going to use this later on in conjunction with the SAP Fiori Client. And see how
we can take this demo Fiori Launchpad and run it through the Fiori Client.
and start using some mobile qualities with it. We'll tackle that in Week 3.
OK. So mobilizing SAP Fiori. We've learned what Fiori is about. It's responsive, follows
similar design patterns.
It's coherent across different back ends and lines of business. Now, how are we going to
mobilize this?
So there are different challenges to mobility here. And, you know, SAP Fiori is a really
good start. And that's what I've been saying - Start there.
And then you can start adding to it. But there are challenges with Fiori. I mean, we can run
this in a browser on our device.
But there are some startup performance issues because it's going to download a bunch of
JavaScript resources. There's certain functionality that's not supported that you would
Like attachment handling, things like this. Also just native device functionality. Most users
using a device, they're going to want to use the camera.
Maybe use the print functionality that might be available from your device. Barcode
scanner, things like this.
Also, if you're not going to be able to work without a data connection, you can't have
offline apps when using a browser. And certain advanced security methodologies aren't
supported as well.
And different lifecycle management capabilities. So those are the kind of things that, if you
move to a mobile platform, we could support.
We could talk about how we could get to that point here. So if you're going to give your
users access to mobile apps starting with Fiori, that's good.


But we want to exceed their expectations. How would we go about doing that?


One, most users on a native device, they're going to want to use the camera to take
pictures. Maybe you have expense-reporting apps. You're going to want a camera to take
pictures of receipts and upload them as an attachment


Things like that. Also work with other apps. And gather data from other resources like your
calendar and contacts and what not.
So that's pretty typical expectations from a user on a mobile device. They would expect to
be able to use this. Now, we want to start exceeding their expectations, of course.
They're going to want to be able to stay up to data with your applications, right. And
they're going to want to be able to receive updates.
And it goes back to lifecycle management. And, with our hybrid applications, if we're using
our mobile platform, we can actually push updates to them
of the Fiori Web content within the application that's running on their device. Most users
out there have mobile devices and are always expecting to get updates.
It's really no different than with your mobile apps that you're going to have them using.
And the nice thing is using this lifecycle management, you don't have to redeploy the
application itself.






You can just push them the new Fiori Web content. Also, advanced security and
Everybody expects to be able to get on their app, have it secured, and not have any
issues with that. It should be done simply.
OK. And then application analytics. From a mobility perspective, you always want to
understand how the users are accessing these applications.
And that's what you'd expect as an administrator of these apps to have from a mobile
platform. Now when we really want to go and exceed expectations, provide push
In fact, when I think mobility - mobility and push are synonymous to me. I mean, having a
mobile app without push - it's really missing something.
Mobile devices, really when they grew on me was when I was able to get notifications
about events right when they happened. It always blows me away when I send a push
notification, how fast it gets to that device.
And you connect this to your business. You think about, you know, I have some sort of
business exception, maybe inventory went low on a product.
It raises a business exception on the back end and instantly sends a push notification to
the user responsible for that. That's big. And that's mobility. And it just changes your
business and lets you react so much faster.
And that's what we could get from our mobile platform and add that to our Fiori
experience. Now of course offline. Nice to have that capability.
A lot of apps out there, you want your users to be able to work disconnected from your
back end. To be able to put together sales orders or what not.
And then once they're finished with that, come back onto the network and push these
updates back to your back-end systems. As well as refresh. So that's another key


And you do these things, and then you've taken Fiori and turned it into a real mobile
quality experience. And you're exceeding a lot of user expectations here, which is always


OK. So, enjoy Fiori with a premium mobile experience. But how can we get to that point?
Well, we have these Fiori apps.
We can extend them to make use of the functionality provided by our SAP mobile
Platform. Whether it be on-premise or in the Cloud, the Cloud edition, of course, SAP
HANA Cloud Platform Mobile Services.



And we can incorporate this functionality in different ways. We'll go over how we can get
started with this.


You can start simple with what's known as the SAP Fiori Client. And then we can take it to
the next level with creating true mobile apps for a single Fiori app, and incorporating
offline and push and what not.


Anyway, it's the mobile platform which brings a true mobile experience to your SAP Fiori
users. Along with the SAP mobile platform SDK.
So I always like to say start simple. The number one simple thing is to start with Fiori,
right? And then expand on that and bring true mobility to your users. So let's take a look







So we could have a hybrid mobile application. So here, we're going to see that we have
Apache Cordova.
And within it we could run our Fiori content. By doing so, that is going to enable us to pull
in all of these different plugins that Apache Cordova has in the open source area.
As well as our Kapsel plugins that integrate with the mobile platform. That will give us the
ability to add push, different security mechanisms to make your applications more secure.
And then also if you want to take it all the way to the level of doing offline applications. Of
course, that is just expanding on top of the mobile Web.
Which is just what Fiori is, right? It's just mobile Web. Or it could be desktop, but from our
mobile device I could run our Fiori apps of course. From our browser.
Now that's the simplest. And then we take it to the next level using the hybrid app that
we've just explained. Again, that hybrid mobile app experience, the nice thing about is that
it could also increase performance.
Because we could start out as caching this data as it's being pulled in. So we could
dynamically pull the Fiori content in and cache it within our Apache Cordova container.
Or we could create an application that includes it already in there. So there is no startup
lag time of having to pull those resources down dynamically.
So, again, start simple. So let's say we do want to go down this Apache Cordova route
and start creating a true mobile experience.
The easiest way is what's known as the SAP Fiori Client. And this is available on the app
stores. There's a version available out there for iOS, for Android, as well as Windows.
And you can have your users download this. And when they download it, they could
actually go and it's linked up to the demo system.
That's easy to demo and we'll show that in Week 3. Or you could enter in your Fiori URL
to your Fiori Launchpad, or even a single app. You could enter in the URL
for the configuration of the Fiori Client. And it's going to pull down those resources and
cache them within the device. Now there is a little startup lag time in the very initial call of
the application because it has to pull all that content down.
But after that it's cache, and your applications start up very quickly. And this can be
integrated with an SAP Mobile Platform, whether it be in the Cloud or on-premise.
And the nice thing here is the Fiori Client incorporates a lot of these Kapsel plugins that
integrate with the Mobile Platform. As well as plugins like barcode scanner, the
attachment viewer, and so on.
So, right away, if your Fiori apps happen to make use of these plugins in calling this
JavaScript. If you ran them within the Fiori Client, those would start working for you.
And, for instance, some of our Fiori apps will use the barcode scanner if it's available. And
if I took that Fiori app here and ran it inside the Fiori Client, the plugin for that barcode
scanner is there and would start working for us.
Anyway, so a real easy way to get started with mobility. Now, it doesn't support the push
plugin, except for doing push notifications or offline.
But it does support things like the camera, like the barcode scanner, the attachment
viewer, and so on. Anyway, we're going to go into a lot of detail in Week 3 on the Fiori


Ok. So next step is, if you like the Fiori Client and what it does for you, well you probably
want to brand it as your own. And you can do that. With the SAP Mobile SDK, you can
build your own Fiori Client.


Provide your own icon. And configure it to point to the Fiori launch page that you want it to
point to.
This is all done via a simple little configuration file and a build script. Very easy to do. You
could even go so far as modifying the build script to incorporate the push plugin if you
wanted to do that.



And then you could start doing push to this as well. By default that's not included, but it's
not hard to go in there. And we've had customers actually go ahead and do that.
So, those are our options. And again, of course, it could all integrate with SAP Mobile
Platform. And give you extra functionality there within the platform.
We'll talk about this more. But sometimes we have what we call Where you have the
ability to turn off certain plugin functionality
like for some apps maybe you don't want to support the barcode scanner. So you could
turn that off from within the mobile platform if you're using that with your Fiori apps and
Fiori Client.


Anyway, different things you can do there. We'll get more into detail as we go. OK. So let's
go now to the next thing we might want to do. And now we're getting into some real


And probably the best performance you could do. And that's when you're going to take the
Fiori content of the application you're going to develop,
And you're going to build a hybrid app that includes it inside of it. So we're not dynamically
pulling this down, it's actually included in the application.
And then we could deploy that application to our users. And when they open it, all the
content will be there. And obviously you'll get really good performance in this, right at
startup. So that's the nice thing about it.



And you could also pick and choose individually all the different plugins that you want to
incorporate. Whether they're the open source Apache Cordova plugins or our Kapsel
plugins that you want to make use of.


So here pick the push plugin, the offline plugin, our app update plugin for offering lifecycle
support, things like that. So you can pick and choose which ones you want to do. And you
wrap a single app.


Whereas with the Fiori Client, it could actually point to the Fiori Launchpad. And pull in all
those different tiles. And it'll be role-based and all that.
In this concept, we're going to create a single app, wrapped up as a single application,
and supporting push and all that. And we're going to do all these things within this course.



The Fiori Client, these first two steps, we'll talk about these. Using the one on the app
stores as well as creating our own in Week 3.
And then in Week 4 and 5, we're do this hybrid application, create some of those. And it's
going to be using the Web IDE Hybrid Application Toolkit.
Along with the SAP HANA Cloud Platform Mobile Services, supporting push, offline,
secure, onboarding, all of this. It should be fun. That's it for SAP Fiori being the gateway
for mobility. That's it for this unit.
Thank you for listening and I look forward to seeing you again in the next session. Thank

Week 1 Unit 4

Hi. Jeff here again. And welcome to Week 1, Unit 4. SAP HANA Cloud Platform Overview.
So I'm going to try to give you an overview of what the HANA Cloud Platform is about.


It can get a little confusing because you hear the word cloud in conjunction with a lot of
other SAP-based releases. So, let's go ahead and make sure you have a clear
understanding of what this is.


OK. So what is the SAP HANA Cloud Platform? Again, like I was saying, SAP HANA. You
might have heard of the SAP HANA Enterprise Cloud.
You might have heard of SAP HANA One, which is another version of HANA in the cloud.
And, of course, then for on-premise, you could also purchase SAP HANA.
So let's just talk about these and clarify where the SAP HANA Cloud Platform fits in and
what its offerings are. So for on-premise, first off, you can purchase SAP HANA, it comes
as an appliance you can set up on your own on-premise systems there.



Now, but out in the Cloud, there's a few different options. Let's start over here on the right.
You see SAP HANA One. This has been out a while.
And it's basically HANA running on the Amazon Cloud. And you go out there and
purchase a license and get it up and running with that.
So that's an option for you. Then you've probably heard of the SAP HANA Enterprise
Cloud or HEC is another term.
A lot of people get confused with what this is and how it relates to the HANA Cloud
Platform. Anyway, but SAP HANA Enterprise Cloud is basically if you purchase that, you
get the operating system.


You could get HANA on it, and then you could go about and install any other software on
that operating system. So I kind of think of it as Amazon Web Services Cloud, so the
Amazon Cloud.


Similar to that, you get the operating system and you can install what you want on it in
addition to HANA. But then we have the SAP HANA Cloud Platform.
And that's really what we're focusing on here. And with it there's a few different options.


You could use the SAP HANA Infrastructure Services to run your HANA licenses that you
purchase. And, basically, you purchase HANA but you want to run it in our Cloud, and
have it running there and managed.


That's one way to go. Also there's SAP HANA DBServices that are part of the SAP HANA
Cloud Platform.
And this is an affordable way to get started because it's a monthly subscription. You're not
purchasing HANA for any more than the monthly term that you signed up for.
So you could always turn it off if you decided it doesn't make sense for you. So that's an
option there.
And then we're going to have SAP HANA Application Services, or AppServices. And that's
really our platform as a service offering that we're going to focus on.
And includes the mobility services, the portal service, and a bunch of others. So that's our
focus. And that's really what we're going to be talking about.
But let's continue on and look at some of these different options that we just mentioned.
Again, we mentioned SAP HANA Infrastructure Services.
And this is where you purchase your HANA licenses and you decide you want to run it in
the cloud. That's totally a nice way to go because you don't have to set up this on your onpremise systems.



It would be out there and managed out in our Cloud. So, a good way to work with HANA if
you don't want to deal with the hardware side of it.
OK. Then there's the SAP HANA DBServices. Again, a monthly subscription. And then
you also get access to some extra data-type services for transaction processing, event
streaming, text mining, and so on.



So, a nice way to go again. Get started up. Low cost. And you can turn it off when you
want and when it makes sense.
Now, what we're going to be focusing on is the SAP HANA AppServices. Or just the SAP
HANA Cloud Platform where it comes to all of our application services.
And those that we're really going to be using: The mobile services and the portal services,
but there's a lot of other things there as well.
And I'll go across and we'll take a look at some of the services available as of today in a
future unit. Where I'll go out on the admin UI of the HANA Cloud Platform. We'll take a
look at all that.
Again, that also is a monthly subscription. OK. And also, just a step back to say it's a free
trial, which is better than a monthly subscription, right?
At least for getting started up, taking a look and seeing if it makes sense to you. OK. So
let's take a look at application development and UX services available to us.
So, in the HANA Cloud Platform, at the end of the day, you could run HANA there. And on
top of it, we could build apps that make use of this data.
And whether it be we can pull data from your on- premise systems securely using the
HANA cloud connector. Or we could build cloud-based solutions storing this data on


And then on top of it write different types of applications with different features and
functionalities that are available to us. So let's take a look at different options we have out
there for developing these apps.


When we have HANA, we have the ability to use the XS engine, that's the JavaScript
engine. A lot of different things you could do with it for developing your HANA-based apps.


But also on the HANA Cloud Platform, we have a Java engine as well. You could deploy
your Java-based apps there that might talk to your HANA system.
And pull data from there. That's it. I want to just remind you it doesn't have to be HANA,
there is a relational database option out there as well
if that makes sense for you. So you have different options when you're developing on the
HANA Cloud Platform.
But, again, you could have Java apps as well as XS engine apps that run on the HANA
side of things. Now, of course, we could develop our HTML5 apps and deploy these out to
the SAP HANA Cloud Platform.



These apps, UI, front end, and typically we'd use Web IDE to do this. And these are Fiori
apps, right?
But they don't have to be Fiori, they could be any sort of UI5, HTML5-based app that you
could deploy out there and run on the HANA Cloud Platform.
And you could pull data, whether it be from on- premise, from your HANA database. Or
from some external services out there on the Internet.
On top of that, we could use the services available to us. And we're going to use two that
we've been talking about. One, we're going to use the SAP HANA Cloud Portal services.
And we're going to go and create our Fiori Launchpad there. And use it to group different
applications together as tiles.
So you'll get a little bit of a feeling for that. That'll be next week's portion of the course.


Because what you're going to do is develop some Fiori apps and then register those with
your Fiori Launchpad. And really easy to do, easy to get started, not too hard to get an
understanding of how it works.


So we'll have some exercises for that as well as some demos and whatnot. OK. Another
service we're going to use is of course the HANA Cloud Platform Mobile Services.
And this is just a little picture, kind of an architectural picture, showing how this fits in.
HCPms is just a service of the HANA Cloud Platform.
We're going to be enabling that. And we're going to use it to pull data from cloud-based



But, of course, we could connect securely using the HANA cloud connector to pull data
from your on-premise systems as well. And we're going to be using the Web IDE to write
these applications in conjunction with the Hybrid Application Toolkit.


And then wrap up our applications and proxy all this through HCPms to gather the data
from your back-end services. And then using HCPms add some mobile qualities, like push
and offline support.


As well as, you know, accessing the applications securely. So another service out there
that we're going to be using.
Again, we'll take a look at this. We'll take a step around later on in a demo where I go out
to the admin UI of HCP. And we'll show you where all these services are and whatnot.



OK. So, the nice thing about the HANA Cloud Platform is that you can use it to build
different kinds of apps, right? You could use it as an on-premise extension platform.
Think of these as X apps, you might remember that term from a while back. But it's really
great for that. You know, you have your core applications running on-premise.
And then you want to extend these in different ways. And it makes a lot of sense to do this
in the Cloud. And we can do this securely with the HANA cloud connector accessing this
data over secure tunnels.
And then we just have our extension portion of the apps running in the Cloud. Now, you
could also have on-demand extensions.
Where you have a bunch of different cloud solutions. Maybe you have something like
Cloud for Customer out there. Or our other SAP cloud solutions, and you want to extend
these with the HANA Cloud Platform.


Similar to the way we do with on-premise, except in this case the data is coming from
cloud-based solutions. Then you could write completely new solutions. Maybe you want to
write your own purely custom apps.


And, you know, you do this all in the Cloud using our HANA Cloud Platform, maybe you
host some Java apps there. Maybe you're using some of our services, like mobile
services, as well as the portal, and other services that are available to you out there.


OK. Now, the HANA Cloud Platform Security. It offers a bunch of different security
mechanisms that you could use.
First off, of course, you're thinking about the connectivity service. How do I get my onpremise data out to the Cloud?
And we keep talking about the HANA cloud connector, that being the key piece here. And
you'd set this up within your landscape, the HANA cloud connector.
And you would configure it to connect securely to your account out there in the HANA
Cloud Platform. Very easy to do, just sets up that secure tunnel.
And then from there on the HANA cloud connector, you configure which systems and
which resources on those systems you want to expose to the network.
We will have a session on this later on in the course. So, we'll get some more details of
how the HANA cloud connector works and how it sets up that secure connection.
OK. But from a security management and identify management, how does this work?
Well, right away when you sign up for your trial for your HANA Cloud Platform, the default
configuration for security is



going against the SAP ID service. This is the same ID service that you have out there for
the SAP Community Network.
So if you already have an SCN user ID, you could use it to sign up for your trial account.
As well as use it to authenticate on your apps. So when we go and use our HANA Cloud
Platform Mobile Services,
it's very easy to set up basic authentication against the ID service. And then access your
back-end services.
Now, of course your back-end services might be authenticating in a different way. So,
you've got to think about, well, how do I pass the identity to my back-end service. Or
maybe you could have a technical user.



But there are a lot more different ways to set up different security mechanisms. SAML, for
one, is what the ID service is basically running on.
And you could have your own identity provider that supports SAML and connect into that.
That's certainly an option. We have a lot of customers doing that.
There's something called skim where you could do basic auth against back-end systems
whether they're on-premise or in the Cloud. You've just got to support this skim
authentication service.


That's pretty easy to set up. I've done it with an ABAP system on the back end. And you
could also do it with a Java system as well.
Now, those are options. I think typically what you see out there, what I've been seeing, is
using, setting up an identity provider that the customer has.
And configuring HCP to go against it. But a lot of different options. We'll have more details
later on in the course.
OK. So, you're thinking now, OK, this cloud sounds great. But you want to understand the
different options and operation commitments that SAP is going to give us, right?
So service level agreements. So if we take a look here, reliable, scalable, and open.


We're based on standards for setting up data centers. One, we have 24/7 global support.


We offer 99.9% uptime. And also follow ISO standards for running our data centers.


So we have data centers all around the world. You can see the different options here and
the different locations. And this will expand as time goes on.
And when you set up your HANA Cloud Platform, you'll be able to select which data
center you want to run in around the world. Which one makes most sense to you based
on your location.




Again, I imagine this will expand over time. I mentioned earlier, we follow standards based
on these ISO standards for managing our data centers.
So, you can be assured that we're following the best practices out there. OK. That said,
thanks for listening to this unit.
I look forward to talking to you in the next unit as we continue on here in our openSAP
course. Thanks a lot. Bye.

Week 1 Unit 5

Hi, Jeff here. In this unit, we're going to be talking about the SAP HANA Cloud Platform
Mobile Services Overview. So, we're going to get an idea of what the value is, what this
thing does for us, and why we need it.


That said, let's go ahead and get started. As we've been learning here, the SAP HANA
Cloud Platform is our platform as a service.
And it contains a lot of different services that you can enable. One of those being the SAP
HANA Cloud Platform mobile services.
So, hopefully, you've gone out and followed the guides on how to enable this. And you
have access, and you can start using it.
But before you want to start using it, of course, you want to understand what it could do
for you. And why we need it. That's what the purpose of this presentation is all about.
OK. So how do you enable mobile business for SAP? How can we get our back-end
business suite data out onto our mobile device?
And not even just SAP, but really any back-end data, right? OK. So this setup is fine for
simple online applications, right.
You could have your SAP Gateway system on- premise. And from there you could access
your back-end Business Suite systems.
As well as BW and other systems and expose OData services out from your SAP
Gateway. From there, you'd need some sort of a reverse proxy out in your DMZ.
And, from there, we'd access that data from our mobile device, right. We can run our
application like this. I've done mobile-device applications exactly this way.
But, of course, they have to be online. You know, it'd be very difficult to write your own
offline application with data syncing across and all that.
So, yes, this is fine for online apps. I have customers doing it, and it's not too bad a way to
Send our request from our devices through the proxy, through Gateway. Fetch the backend data and display that on the device, right.
So, there's nothing wrong with that. But it does have its limitations.


And what are these limitations? So let's take a look at this. So, for one, you have limited
security mechanisms that are enabled from the device to the gateway system.
You know, there's certainly a lot of different things we'd want to do rather than what's
offered to us in this scenario. Also, gateway itself has no concept of device.
So it can't capture any sort of mobile device usage analytics. It can't capture a notification
token that could later be used to send a push notification to the device as well.
So because of that there are no push notifications. Gateway by itself has no way to
capture this information required.
And then send that push notification to the device. Also, there's no support for
uninterrupted user experience.
What we're talking about here is offline support. So you can't write offline applications in
this case.
Well, I suppose you could, but you'd have to develop them all yourself. And that would be
quite the endeavor. Also, no usage analytics for our mobile access.
So, again, gateway has no concept of device, so it can't capture this kind of information.
All it does is receive HTTP requests and processes them.
Of course, you can see HTTP logs but you really don't have any idea where those are
coming from. Whether it be from a browser or from a mobile application.
Also, there's no logging and tracing available for our mobile applications and issues they
may be encountering. No lifecycle management for mobile application resources as well.
These are all things, again, that the mobile platform is going to be able to do for us. And
no third-party integration.



To different back-end resources, maybe SOAP, simple REST services, or whatnot. OK.
And that's where our SAP HANA Cloud Platform mobile services comes into play here.
Again, this being a service out there on HCP. And it supports this HTTP/OData
functionality. And I kind of think of it as a smart proxy, right?
I mean, yes, it proxies the OData/HTTP calls to the back end. And it's also doing a lot of
extra stuff for us.
It's doing security authentication for us. It provides a lot of functionality around that.
It's providing the ability to do push notifications and capturing that information, sending
push out. And we'll show how that works.
It also enables offline support as well. And all the other features and functionalities we
were talking about that were missing
if we were just doing a simple online application through SAP Gateway. OK. Again, a free
trial. Get it started for free.
If you have a great idea and you want to try it out. Go out there and get your free trial. OK.
For one though, you're always thinking security from the cloud to on-premise. And we've
mentioned this already.
But it's always good to go over it. And this is a nice way to look at it. So how do we
connect securely from HCPms to our on-premise network?
So you'd install a cloud connector on-premise. Again, just a reminder, this is basically a
Java app server running the cloud connector application on it.
Very easy to set up, not hard to do. From there, it creates a secure network tunnel, SSL.


And then we can start connecting to our OData services from there. And with the cloud
connector you could specify exactly what resources you want to have exposable to the
cloud. OK.


Now mobilize your data reliably and securely. Another thing HCPms does for us.


So when your applications connect to HCPms, the first thing they're going to try to do is
authenticate against whatever authentication mechanism you have.
In this case, I'm using identify provider here loosely. There's a lot of different ways you
can set this up. This could be SAML, we could be using X.509, we could be using a skin
service as well for on- premise or in the cloud.




And it could be, again, set up on-premise or in the cloud. That's why it's kind of spanning
between on- premise and your cloud-based Internet HCP system here.
OK. So when the user first launches the applications, they're going to need to on-board
their user. And what that's going to do is go out to our identity provider.
Whatever that may be. Authenticate them. And then it's going to register that application,
that user, on the HCPms.
So here we go. You can see the request comes through. They send their user information.
Authenticate it. Then it registers the user and sends the information back to the
Now at this point, we could start making calls to the back-end system. Now what
appeared here is that we sent back an application connection ID, or appcid for short.
And this is going to be information that's going to be passed as a header. And it needs to
be there for HCPms to pass that request on to the back-end system.
If you do not have a proper application connection ID being sent in with the request, it will
be rejected by HCPms.
So I think of this as an extra level of security. So only requests that have that will be able
to go to the back-end systems.
And that all happens during that onboarding phase of the application that the user is
accessing. OK. We've got that application connection ID.
Now we can make a request to the OData service to get some data. Maybe it comes from


And you can see it goes through and the response comes back, and now we can display
that data in the application to the user. OK. So that's how we could mobilize reliably and


Now let's take a look at business events to push notifications. I've mentioned this in the
past that to me push notifications are mobility.
Just this being able to find out right away that some event has occurred and you have to
react to it. We can bring this to our business, right?
When a business event occurs, we can send a push notification to the user's device so
that they can react to it right away. Let's see how this works. First off, depending on which
device type you have,







all these different providers have in the cloud their support for push notifications. For
Apple, it's called APNS.
For Google, it's GCM or Google Cloud Messaging. And Windows has Windows
Notification Service. OK. So how does this work?
How can this all work together from the back end to these push providers and getting
these notifications sent to my device? Or your device, whosever it might be.
So, first off, on the application. So the user's going to launch the application. And you
need to make a request with the push provider.
Saying: hey for this application I want to register myself so I can receive push
notifications. So you make that request out to that provider and they will pass you back
what I call a notification token.
OK. So you get that notification token back within your application. But having it in the
application is not going to do you much good.
What you need to do next is store that notification token on the Mobile Platform here. So
that notification token will get stored with that user's registration.
That they created when they onboarded the application, which I showed in the last step on
that last slide. OK. So we've stored it there.
Alright. And now our server has that information. HCPms has it. And now what I can do
with OData is it has the possibility for you to subscribe to events.
OK. You have to support this in your OData service. But if you support that, I could
subscribe to it. So I just call that subscription service.
And I send that. And it ends up going to the back end, and it subscribes that user to the
event. Now, in that subscription service there are some other bits of information that you
pass along.
One is a callback URL to call when that event occurs. So when that event occurs in the
back end, it's going to then call the callback URL.
That callback URL is just a REST service available on HCPms to send a push. OK. So
let's take a look at how this happens.
So we have a business event here that occurred in the back end. And it's going to trigger
a call to our push provider here.
Alright. So the event occurs, and what's going to happen through gateway is that it's going
to say: Oh, for this user I've got this event, and I'm going to call this callback URL that I
have for that event.
So that's what's going to happen here. It ends up called HCPms. And then HCPms turns
around and sees that, oh, this happens to be an Android device.
I have a notification token for this user for Google Cloud Messaging. And it calls the
Google Cloud Messaging service for us, which, in turn, sends a notification down to the
Now, within that notification message, we could have some business data in a message
that gets displayed to the user. And that could be used within the application.
So that's how push notifications work and how they could be linked in to the back end. So
this is something that we could do. We do it within SAP.



I don't see too many customers doing some customized implementations around this.
Something I highly suggest you do. Because this to me is mobility.
We will have an exercise on this - how we can enable push within HCPms. But not the
whole hooking it into a back-end business system.
We do have how-to guides on this. How to do that with SAP Gateway. And do the whole,
entire setup here. But we'll show you how to set up HCPms and add push notifications to
our applications.
OK. Let's go to the next slide. So, usage analytics. We want to understand how our users
are using our mobile apps.
And I was mentioning before, HCPms is kind of like a smart proxy. That's how I view it.


And when a request goes through, we could capture some information about that request.
About how much time has been spent in the back end and also in the other different
layers as we go on here.


So you could go and see some performance analytics. And see where the time is being
taken up. So it could help you with some troubleshooting.
So we capture that information. We're able to store it in our database here. And then, from
there, create some different reports. There are some canned reports out there.
That you go out and view. Create your own custom Lumira reports as well is a possibility.
Anyway, so that's something that's nice about the Mobile Platform.
We're capturing that information that'll give you insight into how your users are accessing
the system via mobile device. OK. Now, so logging and tracing.
I've been mentioning how, you know, if I develop a mobile app on my device, I get it
working fine. I put it out to a thousand users, some of these users are going to have



And with the Mobile Platform, I can enable tracing and logging for a specific user's device.
OK. So I'd go out to HCPms, I'd find the user's registration that corresponds to their
device, and I would enable logging there.


And by doing so, then they could send the logs down to the HCPms server. And from
there, using a log viewer, I could get those logs, take a look at them.
Troubleshoot what's going on and fix whatever issues there are in the application. OK. So
that's another feature of HCPms.
Now, uninterrupted user experience. In this case, we're talking about what we call offline
OData. So, we want to create an application that can be used in offline mode.
And a lot of apps, even if your device does have connection, you want to use those apps
in offline mode. And only sync to the backend where it makes sense, right?
And in some cases as well - we call it offline OData - but I could imagine we'd want to use
this even in online apps. Just for better performance, right?
You think about a product catalog, we don't want to have our users connecting all the time
and getting that data from the back-end system. It might make sense to cache that all
using offline OData.



Put the product catalog on the devices and maybe refresh it every so often, right? So
these are different use cases that I think of when we talk about offline OData.
But how does this work? Let's take a look here.


Number one, we're going to create the database. And we're able to go through HCPms.


And it will go to the back-end system, gather all the data that it needs. Create the
database on HCPms and then the client could pull that database down. Right.
Now that's it at a very high level. Later on in Week 5, I'll go over the details of exactly how
this works at a lower level so you have a better understanding.
But in a nutshell that's what it does initially. From there you need to support two things:
flush and refresh.
So, we're able to flush all our changes that we've gathered on the device to the back-end
systems. OK. Now, also you want to be able to do a refresh.




Meaning that since I've been offline, there's been a lot of changes by other users in that
back-end system. I want to gather that data and pull it in.
And update my database to reflect the latest changes that have happened since I've been
offline. So we support both of those functionalities where you can make those requests.
And in conjunction with HCPms it's able to go out, get all the latest data, and refresh my
database on the device as well as do the flush on top of that.
And take all of the transactions I've done while I've been offline and send those to the
back-end system. Now, of course, you might be thinking right away: well, what about
conflict and error resolution?
We could also do this. So potentially I have old data that I'm modifying on my device. That
has since been updated on the back-end system.
That could be captured and the update won't occur. But we could capture that information.
Send it back to the device in some error archives that are available that you could access
via the API.


And go through and display that to the user and you could figure out how you want to
move forward with updating that. That would be up to the developer to figure out how they
want to resolve that.


OK. So that is offline OData in a nutshell. And we'll go over all the details of that in Week
5. Now, one last thing I want to mention is delta enablement.
So when you're doing a refresh, you certainly don't want to go and get all the data again.
And send it to the device. So there could be hundreds of thousands of rows potentially,





And you wouldn't want to go and get all that and send that all to the device when you're
doing a refresh. With OData, we have the concept of delta enablement.
Where if your OData service supports this, you could send it a time stamp essentially. It
will go and check, based on that time stamp, and gather all the records that have
changed, updated, created, or deleted.
And send only those. And that will then be sent to the device and it will refresh the
database based on that.
So that'll be really good performance. If you're using Big Data, it's something you've
definitely got to think about doing for your OData services.
But, that said, using small data, we could handle delta refreshes on HCPms. It could
calculate a delta for you as well there.
But, for Big Data, you definitely want to think about delta enablement for your OData
services. Again, we'll have more information on this later on in Week 5.
OK. Now, application update management. This is like our lifecycle management here for
hybrid applications.
We have the ability to - once we deploy those applications to the device. We could then
update the Web content of that application.
And push that to the device. OK, so we have our developer here. I know he looks kind of
funny here.
But that's the best I could do with PowerPoint for making a developer-looking person
there. So, they could develop new content.
Maybe this is our Fiori application content. And we could push this out to HCPms.
Alright. And it would get stored there as a new version of the Web content for our app.
And now when a user accesses the app, we could pull that Web content down.
And then it would get incorporated in the app. And once it gets pulled down, it would pop
up a pop-up window. Telling the user, hey, you've got a new version. Do you want to
restart the app with this version or continue running the app?
If they do that, then they close the app. Then next time they open it, that new version will
come into play. Now, this functionality is all part of the AppUpdate plugin






that's part of the Kapsel SDK that comes with the Mobile Platform SDK. And in
conjunction with HCPms functionality for lifecycle management for hybrid applications.
So why are we doing this? Well, the nice thing about this is I don't have to redeploy the
application to the user's device.
I just provide this update through HCPms and then it can get pulled down. OK. So a nice
piece of functionality.
Now, similar to what we were just talking about, the AppUpdate plugin, is resource bundle
management. But this could be used with both hybrid and native apps.
And it's basically that you could provide these resource bundles. They might contain
logos, configuration property-type files, right?
And you could bundle these up. And also, the developer, again, bundles these up, stored
on HCPms. And then we could pull these down to our application.
And, again, it might be different branding information, different images, logos, things like
that. Or configuration files.
And it'll change the behavior of how the app runs, and how it might look, right. So there is
a simple REST API to pull these down.
We could pull them into our application. And, again, we could start using that, change the
look and feel of the app, things like that. Now, this is available for both native and hybrid
applications. Alright.
OK. Now I want to talk about third-party integration. That we could do in our cloud
First off, there's some different features and functionality out there on the HANA Cloud
Platform. One of them is called HANA Cloud Integration OData Provisioning.
This is a service that's available right now on the trial landscape. OK. It's not yet in
production but it will be. That's what the plan is.
And what this enables you to do is that it can act as a Gateway hub in the cloud. So, if you
have an SAP Gateway system installed on-premise,
it's similar to that. It doesn't have all the features and functionality. But it has probably 95%
of the functionality that everybody is using. Which is taking your back-end OData services
that you've developed on your Business Suite systems or BW or whatnot.
And then exposing them to the network via this service. OK. So you don't have to have
that SAP Gateway hub installation potentially.
This could be a simple cloud-based scenario. Where all you have to do is develop your
OData services on your Business Suite systems, the back ends themselves.
And then expose them to the network through this OData provisioning service. And, again,
it's available out there on the trial landscape. You can take a look at that.
I'll point it out in the next unit where I'm going to go out and browse around the HANA
Cloud Platform admin UI. Anyway but, again, if you have a Gateway, that has more
Don't think that's a waste or anything. There's definitely a lot of value in having that. In a
lot of cases, customers might want to go that way for one reason or another.
But this is an option out there for you. And it might just simplify things. OK. Now, our onpremise version of the mobile platform has a component called integration gateway.
And it has the functionality to go out and map SOAP/REST and REST services, and map
them to OData end points. Because we realize we always talk OData when we're doing
We have our SDK all based on OData. We have offline OData. But we realize that all data
is not in that OData format. It's not accessible that way.
So we need a way to map these different protocols to OData end points. Right now it the
cloud, we have what we call the HANA Cloud Integration.
And what is planned is to bring this functionality that we have in the on-premise version,
the integration gateway, to the cloud in our HANA Cloud Integration component out there,
which will be a service of HANA Cloud Platform.



So that's planned. It's not currently there, but it will be there sometime in the future. I'm
hearing maybe in Q1 of 2016.
So we'll see when that happens. But it's something I know they're working on and that's
planned for us out there. OK. So that is what I had for the HANA Cloud Platform Mobile
Services Overview.
I hope that gives you a good understanding of all the value it brings and why we need it
for mobile development. That said, thank you for listening. And I look forward talking to
you in the next unit.

Week 1 Unit 6

Hi, Jeff here. Back again to talk about Deploying Services to the SAP HANA Cloud
Platform. So, you might remember earlier I was talking about that not only is the HANA
Cloud Platform a platform-as-a-service


where we can activate different services that we want to use and provide different
functionality. But it also contains a Java app server where we're able to deploy services or
other Web- based Java content.


So, let's take a look at how this is done. And we'll do a demo here, as well as take a look
at the different functionality that we can see out there on the HANA Cloud Platform admin


So earlier I was talking about the HANA Cloud Platform and the different things we could
do by extending applications that happen to be on-premise.


So, we used to call these X apps back in the day. But you have on-premise data and you
want to quickly develop a new application with it.


And it makes a lot of sense to use a cloud in this case, and write that extension piece out
there on the HANA Cloud Platform,


have it access data that is within your corporate network using the HANA Cloud
connector. So that'd be what we'd call an on-premise extension nowadays.


Of course, then there's the on-demand extension. You have cloud-based applications and
you want to also write extensions for those.


It makes sense to do it in the cloud using the HANA Cloud Platform. And, again, you could
always write your own brand new solution, all cloud-based.


You know, deploying a Java-based application out there on a HANA Cloud Platform,
maybe accessing different resources that are available via services out there as well on
the HANA Cloud Platform.


Anyway, so these are the different things we're talking about that are possible with a Java
application server being a piece of that on the HANA Cloud Platform.


So now you might be wondering how do I deploy services out there or Java-based
content? We could go out to our tools download area on


And this is where you'll find a bunch of different free downloads for you. Mainly a lot of this
being Eclipse plugins.


And on the site you'll see that there are some different update sites, depending on what
version of Eclipse you're using. You plug those into your Eclipse, pull down all the plugins
that you want to use,


some of these being for Java-based development. So that's one thing you're going to want
to do if you want to go through this process.


Now, as well, yes we can deploy our Java apps out there to the cloud. But we want to test
locally first.


So you could download the SDK for the Java runtime that you want to target with your
Java- based applications. And, within here, is the local Java app server that you could
spin up


and deploy to locally and test your applications there before you go out and actually
deploy them to the cloud. OK. So how do we deploy these things?
Well, once we have our plugins installed, we could develop our Java apps, and then
deploy them from Eclipse here.


You're just seeing a screenshot of the process. And I'll demo this in just a second. But
we're able to take our Java-based app, build it up as a Web archive file, or a WAR file


and then deploy that out there to the HANA Cloud Platform from Eclipse. Now, also, we
can manually deploy from the HANA Cloud Platform admin UI.


You just go out there and you go to your Java Applications area. And there'll be a Deploy
Application button here. And then you just browse to your WAR file and it'll upload and
deploy that way as well.


So you have different options. Both work fine. Let's go ahead and do a demo and see how
all this actually works. OK, so let's take a look at a demo of deploying services to the SAP
HANA Cloud Platform.


We've been talking about how HANA Cloud Platform has the ability to host your Javabased applications. And what we're going to do is take a Java- based application


that contains some OData services and deploy that out to the HANA Cloud Platform. So
let's go ahead and take a look.


First off, we're going to see here that we have our HANA Cloud Platform Admin UI. Taking
a look at the main dashboard, in here we can see our system status of our different
runtime containers.


We have our HANA XS engine, which is the engine for hosting JavaScript-based
applications that communicate to your HANA database. And right now, I don't have
anything deployed.


Same thing with our Java engine and our HTML5 container as well here. OK, and I can go
to Java Applications.


Here you can see again nothing's deployed yet. We'll do that in a second. We can deploy
manually, by clicking Deploy, and I could upload a WAR file here


and upload it to the server. But what we're going to take a look at is deploying from an
Eclipse environment. Before you can do that, we're going to want to install a bunch of
Eclipse plugins from SAP.


So we go out here to our Tools site, and here we can see that there's a couple of update
sites for Eclipse, whether you have Eclipse Mars or Eclipse Luna, you'd pick one of these
update sites,


put it into your Eclipse environment, and pull down the plugins necessary to do your Javabased development to deploy out to the HANA Cloud Platform from your Eclipse


Now that's that, so we install that. But one thing I wanted to mention: This is the update
site for all of SAP's Eclipse plugins.


So only pick that ones that you really need. You're not going to go out there and need to
get all the ABAP plugins, obviously. You know, we're focusing here on Java development.
So take a look at what's available there.


Pick the plugins that make sense for you, and pull those down into your Eclipse
development environment. Now over here as well you have these different SDK


where it says Cloud. And these are the local runtime engines for the Java app server, so
that we can deploy locally, test our applications there,


and then, once they're running there OK, then we can upload those to the HANA Cloud
Platform. So you're going to want to pick one of these here, which makes sense to you
and what you're developing.


Now once we have that all set up, now we're ready to start developing some sort of
application that we want to deploy out there. What I'm going to be following,


and what I've already done is followed this nice how-to guide that a colleague of mine did,
Riley Rainey here, and this guide just takes some OData services,


shows you how to pull those down to your Eclipse environment, as well as how to set up
your development environment on top of that, and, at the end of the day, build these
services and deploy them out to the HANA Cloud Platform.


This is, if you're going to get into doing Java- based development on HCP, it's a great
place to start. By the end of it, you're going to have a good understanding of everything
you need,


and have everything in place to deploy applications out there based on Java. OK, so, you
know, take note of this. I'll supply a link to this as well within the openSAP course we have


And, at the end of the day, if you follow this guide, you will have your Java-based
application here, alright, and you have pulled down all of the Java resources from a Git


build them all locally, and you could also run these locally. Now once you've done that, I
could Run As - Run on Server,


and it's here where I could decide I want to deploy out to my HANA Cloud Plaform. So I
select under SAP - SAP HANA Cloud Platform. Just one small change I need to make


because I'm going to deploy out to the trial domain, so you have to do, and here we will click Next. Now it's just asking for the
application name,


the account name, your user name, there you go. Click Next, it shows you what's going to
be deployed.


Now we click Finish and it's going to start this deployment process. Now depending on the
application, this could take from seconds to minutes.


It just depends on what you're uploading here. But the process has started. I'm going to
go back out now to my admin UI


and if we go back to our dashboard, you'll see that under Java that we have one
application, and it's stopped. OK.


Now I go to my Java Applications area, I see the same info. And again, it's stopped,
meaning... well, in this case, it's stopped because it's just being uploaded, right.


We'll see this status change as the deployment continues on, it'll switch until you see an
orange triangle icon here that'll say Starting,


and then after that you will see a green icon when it's acually started up and ready to start
receiving a request. OK, this is going to take a couple of minutes. Let's take a look around
our admin UI for our trial account


while that's going on. I'm going to click Services here. And here is where you can see all
the services of our HANA Cloud Platform that are available to us.
If you remember, this is platform-as-a-service, so you have these different services
available to you. We have our SAP HANA Cloud Portal. We're going to use this a little bit
to create a cloud Fiori launchpad.



And you'll go in and create a couple of tiles on one of these launchpads and then later on,
we will render this inside an SAP Fiori client.


OK, so we'll get a chance to work with that. Mostly what we're going to work with is the
SAP HANA Cloud Platform mobile services here. OK.


So that is what's going to enable us to bring some mobile qualities to our mobile
applications as well as track our users or use of the applications and more.


OK, so we have that. A lot of other services here, so you could take a look at each one of
these. Interesting might be here is the Internet of Things service, but again, mobile


debugging service, the Translation Hub to translate texts, and more. So take a look at
that. Lots of different options.


Now as I've shown you earlier, we have an HTML5 runtime container. We can go an
monitor that. You'll be able to see all the different HTML5 applications that are hosted


OK, and later on, with the SAP Web IDE, we'll develop one of these applications and
deploy it to our HANA Cloud Platform trial here,


and you'll see it show up right here. Now also the HANA XS, we can see our XS
applications, and then Java apps.


Before we go back and check that, I'll click it. You can see it's up and running. That's
good. And we'll come back here in a second and run this. I just wanted to show you under
Database & Schemas,


you know, this is where you can define different databases. We could use HANA, but
remember this is the trial landscape and you're using the shared HANA database.


So just keep that in mind, you know, trial systems, and we don't want to be uploading any
private data or anything like that. You could create new databases, and you could use
MaxDB as well.


This is a relational database from SAP. So, you know, it depends on your scenario.
Maybe you don't want to incur the extra expense of HANA. You don't need that inmemory power.


Maybe a simple relational database will work for you. So you have different options
available to you here from the HANA Cloud Platform. Now if I go back to my Java


we're going to take a look here. We have our app running, and over here you can see, I
could stop it, make some changes and whatnot. I could go in and click here to go to the


and, you know, we can see even more information here. We could configure an
availability check here, so basically pinging against your application to make sure it's up
and running.


And you could view different logs that are out there, and even start different processes.
You can imagine that when you're in production, you'd want more than one server


handling all the load for your application, so different things like that, you configure here.
Now this link is going to direct me to the actual application.


I'll go ahead and click that. And this is a Java- based OData service built with what's
called Olingo. And Olingo is an Open Source framework


that SAP actually contributes to. And it's there to build Java-based OData services. And
here I'm just looking at the root of my application, and it just gives me a couple of links:


One to get to what's known as the service document of OData, the other one the
metadata. And I click the metadata first. And what this is going to show is


all the different entity types that belong to my OData service. OK, all the key properties for
each entity type.


And on top of that, every single property, type, length of each one of these as well. You
know, where there's DateTime, if it's a string, then you'll get MaxLength values here as


So whenever you have metadata like this, it's nice, because I can hand this to a client
developer that's going to use my service, and they can understand how it works.
They know all the types, all the different entity sets and whatnot. Now what we could also
do with this is build some sort of a proxy as well


to make it easier to call this OData service. So lots of different things. Even at the bottom,
you'll actually see where relationships are maintained.


So, for instance, this particular service has a Products EntitySet as well as a Supplier, and
each product has a relationship to its supplier.


So you'll be able to see that information in here as well. Now let's go back, and I'm going
to go now to the service document.


And the service document is just a simple information here. It just displays each entity set
that belongs to this OData service.


So I could see all the different entity sets. I could take Products, and I want to get a listing
of all products. I just put it there at the end.


There you go. So now that brought all products back in from the system. You can see
there's quite a few. Maybe I don't want to see that many,


and with OData, we can do things like $top=5, meaning just give me the first five results. I
could page across results sets as well, so


I could do &$skip=10, so skip the first ten, show me the next five with the $top,


and there we go. So lots of different options with OData. You could filter in very similar
ways that you could with database tables as well,


like with SELECT statements, so there's different filtering you could do. Now here you see
that this Products has a relationship to Supplier,


and this is how it's rendered in OData. So you can see if I do Products, the product ID,
slash, its Supplier,


so this is what would navigate that relationship and get me all this products supplier data,
so I hit enter here, and what comes back is the supplier that is related to this particular


So that's what OData... that's how it works. I mean, at the end of the day it's very similar to
interacting with databases and that's really why it was designed; to create a simple, restful
interface to interact with database tables out there.


OK. So we've seen now that we can deploy out to our HANA Cloud Platform our Java
application. If I went back to Eclipse, you can see that it finished the deployment.


Whenever it finishes deployment, it just launches the base URL for our application, inside
Eclipse as well. And you could execute these things right here.


So anyway, I hope you've gotten a good feeling for what's possible here, that HANA Cloud
Platform not only is platform- as-a-service where you use all these different services,


but it's also there to hose our Java applications, our HTML5 applications, as well as our
HANA XS engine applications as well.


OK. Thank you for listening. Look forward to talking to you in the next unit. Thanks a lot.

Week 1 Unit 7

Hi. Jeff here to talk about the SAP Mobile Platform SDK. So this is our SDK for developing
native apps as well as hybrid apps.
On top of the SAP HANA Cloud Platform Mobile Services. As well as our on-premise SAP
Mobile Platforms.
Let's take a look at what this is all about. Number one is we have a single SDK that
supports both on-premise and cloud-based mobile application development.
OK. So we have our HANA Cloud Mobile Services. We also have our two on-premise
releases, SMP 2.3 and SAP Mobile Platform 3.0.
OK. So we have a single SDK that supports all of these. And we're just trying to drive
towards simplicity on this.
So not to have a bunch of different SDK releases for our different mobile platforms on
there. The nice thing is I can easily develop an app against the HANA Cloud Platform.
And move it on-premise or vice versa. OK. So if I'm using the OData functionality from the
SDK, then it's going to work fine against either of these releases.
Let's look at some of the features of the SAP Mobile Platform SDK. One, we support all
the major operating systems.
And you can see them listed here: iOS, Android, and Windows. Alright. With Windows,
we're talking about Windows 8.1 and Windows Phone 8.1.
And, in the future, of course Windows 10 as well. Now, we support this for native
As well as hybrid development. With hybrid, we support Apache Cordova.
And we have a number of plugins for it that give you the enterprise-level functionality that
interact with the SAP HANA Cloud Platform mobile services.
And, on top of that, from the Mobile Platform, whether it be on-premise or in the cloud, we
offer REST APIs for other operating systems like BlackBerry.
Or, you know, there are many others as well out there. You could interact with these
operating systems with the REST APIs.
OK. So moving forward but supporting the past. So we realize, you know, we have SMP
And that supports the older OData SDK. But within our SDK, of course, we want to keep
moving forward and doing things better.
And make things work better on our newer platforms. We talked about the REST API.
And with that, you know, not going through any sort of an SDK layer, I could gain access
to our HANA Cloud Platform mobile services.
I could authenticate my user, onboard it. And then make calls securely to the back end.
As well as support push notifications. This is just using the simple REST API. And we'll go
through the REST API a little bit later.
I mentioned we had an OData SDK. This is an older version of the SDK that's still part of
our platform, our SDK, and supported there.
And it works with SMP 2.3, that's our on- premise release, as well as 3.0. But since then,
again, moving forward we want to make it better.
So we created a new API which we call the harmonized API. And it just makes interacting
with OData much easier from a developer's perspective.
We'll talk about that in a second. But I mentioned already that we support Apache
Cordova for hybrid development.
And Apache Cordova is just a plughole framework. And we've created many of these
plugins that give us certain functionality.
That's made available to us via the HANA Cloud Platform mobile services. And these
plugins can be used within your Apache Cordova applications.



So, again the big story here. I could write one single application based on HTML5 that
interacts with these plugins.
And it's going to run on all these different device types, Windows, Android, iOS. And, on
top of this, we support the harmonized API.
This is a new OData API that just makes it easier to work with OData from a developer's
perspective. It also brings more functionality around what we call offline OData.
So that you could write robust offline apps that connect to an OData back end. OK. So the
Mobile Platform SDK.
It was released two years ago now or so. And we keep bringing out new support packs.
And not only do these support packs fix bugs. But each support pack comes with more
and more functionality.
And we realize that, in the mobile space, that we can't wait every six months or so to give
you a new release. We need to be much faster than this.
And respond to things that are changing out there from a technology perspective. So with
this latest SP that we released, for instance, now we're supporting Apache Cordova
And this is good just because Apache Cordova moves very fast. You want to stay on top
of it and make sure that we can support the latest functionality out there from this open
source project.
And over time, you know, back in the SP4 days when we released the harmonized API.
As well as, you know, support for offline, support for Windows 8.1 came out in SP5.
But the big story here, just like I said, we're going to keep marching forward. With every
SP bug fixes, but more functionality, which is just as important.
OK. So from a harmonized OData API, just a little more deep is, number one, simple.
Make it easy for developers to consume OData services. Alright. This is on when we
support the new harmonized APIs for Windows, Android, iOS.
And, then again, just hide some of the details underneath the covers for us like fetching
certain documents that are needed for parsing later on.
Also, hiding to the developer whether the data is coming back in JSON format. Which is
JavaScript Object Notation or XML format.
Alright so. And then mapping at the native types. All of this just goes to making it easier
for your developers. This is what this is all about.
Another big point is that it supports both online access as well as offline. So that was a big
part of this harmonized API supporting offline OData.
Or the data is actually sent to the client device as a database. And the API will actually
access the data from there.
Instead of going across the network to get it. So, nice for offline apps, right?
OK. Just a closer look at the harmonized API. The two main pieces (of course, this is all
part of our OData API lib here, library)
is the Online Store And this is used for doing online requests.
You can see that we have a request object. Which is needed to make that HTTP call to
get the data.
And then it gets parsed. And then from there, you could access the data. OK. Now with
the Offline Store, you create one of these.
Tell it what you want to offline. It's able to interact with the HANA Cloud Platform mobile
It pulls down a local database. And then, from there, that data will be accessed on that
local database, which is called UltraLite.
And it uses the parser as well and does all of that. So, again, simple, easy to use, whether
you're online or offline.
OK. So, the offline OData service. Doing offline OData comes in three parts.
Of course, we need our OData producer. Alright. That's our OData service where we're
getting the data from.


Then in the mid-tier here, the HANA Cloud Platform mobile services, we have the OData
offline service.
What this is going to do is it's going to pull all the data in being requested to be offline,
construct a database here and then send it to the client.
And our Mobile Platform SDK is able to interact with the HANA Cloud Platform mobile
services. Telling it what it wants offline, and then receiving that database.
And, from there, accessing the data locally rather than across the network. So, obviously,
if you're writing offline apps, this is what you'd want to use.
And you could offline large amounts of data and create real robust apps. We'll get more
into the details of offline later on. We'll go into this in depth in Week 5.
OK. Now a major component of the SDK is the logon component. And this is the
component that gives you a UI.
And it gives you the ability to onboard your user to the application. So what does
onboarding do?
Well, one it sends the security information like the user name and password to the HANA
Cloud Platform mobile services. It's going to authenticate that user.
And then once it's onboarded, it'll pass back the information about how to start requesting
data from the back end that is being exposed by that application.
Now, on top of this, there are two UI screens. There's this screen that you see here where
you enter in your user information.
And then once you click Register up top here, it will send that to the back end and
authenticate that user and onboard it.
And, after that, you're going to see a screen where you can enter in a PIN to access the
application This is just an extra secure functionality.
That makes it so that the application requires a PIN when it's opened to access. So you
can think about it as your money card or your debit card.
You have to have that PIN to get the money out. Same here. If somebody grabbed my
device and opened the app,
they wouldn't know the PIN. They wouldn't be able to get into that application. This is
supported for our native development as well as hybrid.
So there's a logon plugin for hybrid, which you'll see here. So getting into Kapsel. Again,
it's just a bunch of plugins for Apache Cordova.
That come with our Mobile Platform SDK. And provides you with all the enterprise-level
functionality that's available out there on our Mobile Platform.
And it's just using the open standards that Apache Cordova comes with for plugins. So the
nice thing is you can use our plugins. But there's tons of third-party plugins.
As well as standard plugins from Apache Cordova for interacting with certain functionality
on devices like taking pictures and things like this, accelerometer and whatnot.
We're going to support this on Android, iOS, and Windows, as you can see here. And, at
the end of the day, Apache Cordova is just a container.
We pull in these plugins that give us access to native device functionality. And our code
for the app is just going to be Web code.
Generally, something like a Fiori-type application written with UI5. And that would be
embedded into our application here.
And it would gain access to this functionality from the plugins with the JavaScript API.
Really easy to do. You'll be seeing how this works as we go through this course.
If we're consuming Fiori apps, the big thing with the SDK here is. Well, first off, with Fiori
there's a lot of ways to access Fiori.
One, with desktop and mobile browsers. I could use the SAP Fiori Client. This I could
download from the app store, or I could build my own.
And, from there, I could either access Fiori content directly or I could proxy through the
Mobile Platform. I could even proxy through the Mobile Platform using browsers.



That's a possibility. If you want to understand how your users are using the apps. Now on
top of that, I could use the SDK to wrap my Fiori apps.
And, you know, create a single application with all the Fiori content embedded in it. And
deploy that out to my user's device as well.
And we will be doing all of these. Right, we're going to write Fiori apps. We're going to use
the Fiori Client.
And we're going to use the Kapsel SDK to wrap these Fiori apps as a single application.
And you'll see how this is all done.
OK, so the Fiori Client. Again, it's available on the app store. Or you could wrap your own.
It's also a dig-in. Just based on Apache Cordova, just using our plugins. And the
advantage here is that
if I point my Fiori Client to pull in my Fiori apps here, it's going to capture that data, it's
going to make things faster.
But if those Fiori apps happen to have some JavaScript code to pull in the barcode
scanner and use it, it'll start working within the Fiori Client.
Because the Fiori Client incorporates the barcode scanner that's available there. So if it
hits that JavaScript code within your app and the Fiori Client,
it'll start working with the barcode scanner. And you'll start getting native mobile qualities
right away.
OK. Really quick on the REST API. So as mentioned from other operating systems, you
still might want to use the HANA Cloud Platform mobile services.
So we have this REST API that enables this. And for onboarding and authenticating, this
is what I'd use.
I'd use this URL. And I could do this in a REST client just to test it. I do it all the time.
I'd use a POST. And I'd send in my body. I'd also have to send in my user credentials as
And what this is going to do, it's going to authenticate the user. And it's going to pass me
back that application connection ID.
So that I could use that later on making requests to the back end. Now I could get all of
the user data that was onboard.
OK. So, all the application settings for that user's devices. I could pull that back as well,
there's an API for that just using this URL.
Your application connection ID that was sent to you earlier. And the application ID that
you were onboarded to.
And this returns all the application settings. And I could also update these settings.
Typically when you use this is when you're going to support push. So maybe with a
BlackBerry, I'd get the notification token from the BlackBerry push service.
And I'd turn around and store it back on my user's registration on my HANA Cloud
Platform mobile services. And store it there so that later on it could start sending me push
Here is just an example of sending in an Android notification token. But it could be
BlackBerry as well. We support that.
OK. Now we want to actually start getting data from the back end. We use our application
ID or the connection name here.
This is the name of the application on the HANA Cloud Platform mobile services we
define. And then the OData Collection.
As well as the APPCID. We have to pass it in as a header here. X-SMP-APPCID
I'm using a GET because I'm reading data. And it will pass me back the response of all
the data that I was requesting.
We could support the rest of the CRUD operations: create, update, delete. OK. And we'd
use the same end point.



It'd be slightly different whether we're doing updates, or deletes, or creates. But more or
less this.
And I'd use different verbs: POST for create, PUT for update, and DELETE for delete. And
then I'd pass in these headers.
Again, the APPCID. And then if you're accessing an SAP service from Gateway,


whenever you're doing changing data, you have to pass in this extra header: CSRF Token


Which is for preventing cross-site request forgery-type security intrusions. OK. Also within
the HANA Cloud Platform mobile services
they have the possibility to store config bundles that might incorporate logos or just config
INI- type files.
I could get these down with the REST API as well. Pull those down and make use of those
in my application.
Maybe I rebrand the app based on what I pulled down. Or change some behavior based
on config files.
OK. So that's it for Week 1 here. Brief recap. So one: how do we get started with mobility?



If I was a customer, I'm going to start with SAP Fiori. That's a great place to start because
it's responsive, right? And it's our future direction for our UIs.
But the responsive behavior is great for mobility because I could view that Fiori app not
only on a desktop browser, but it'll look nice also on my browser within my device.
Whether it be a tablet or even a phone. OK. We also learned that SAP HANA Cloud
Platform is platform as a service.
And we're going to be using some of those services within this course. namely the SAP
HANA Cloud Platform mobile services to gain mobile-type qualities for applications.
OK. And you also saw we can host Java apps there and things like that. And the SAP
Mobile Platform SDK supports hybrid development.
Which is really what we're going to focus on with SAP Fiori within this course. But also
supports native development.
So I can write native apps for Windows Phone And, you know, any time you write things
natively, they're going to go faster and perform better.
But, that said, hybrid development - great for business-to-employee-type applications for
sure. OK. That's it. That's the end of Week 1.
Really appreciate you listening. And look forward to talking to you in future weeks here.
Thanks a lot. Bye.

2015 SAP SE or an SAP affiliate company. All rights reserved.

No part of this publication may be reproduced or transmitted in any form
or for any purpose without the express permission of SAP SE or an SAP
affiliate company.
SAP and other SAP products and services mentioned herein as well as their
respective logos are trademarks or registered trademarks of SAP SE (or an
SAP affiliate company) in Germany and other countries. Please see for
additional trademark information and notices. Some software products
marketed by SAP SE and its distributors contain proprietary software
components of other software vendors.
National product specifications may vary.
These materials are provided by SAP SE or an SAP affiliate company for
informational purposes only, without representation or warranty of any kind,
and SAP SE or its affiliated companies shall not be liable for errors or
omissions with respect to the materials. The only warranties for SAP SE or
SAP affiliate company products and services are those that are set forth in
the express warranty statements accompanying such products and services,
if any. Nothing herein should be construed as constituting an additional
In particular, SAP SE or its affiliated companies have no obligation to pursue
any course of business outlined in this document or any related presentation,
or to develop or release any functionality mentioned therein. This document,
or any related presentation, and SAP SEs or its affiliated companies
strategy and possible future developments, products, and/or platform
directions and functionality are all subject to change and may be changed by
SAP SE or its affiliated companies at any time for any reason without notice.
The information in this document is not a commitment, promise, or legal
obligation to deliver any material, code, or functionality. All forward-looking
statements are subject to various risks and uncertainties that could cause
actual results to differ materially from expectations. Readers are cautioned
not to place undue reliance on these forward-looking statements, which
speak only as of their dates, and they should not be relied upon in making
purchasing decisions.