You are on page 1of 26

openSAP

SAP Cloud Platform Essentials (Update Q3/2017)


Week 2 Unit 1

00:00:07 Hello and welcome to the openSAP course "SAP Cloud Platform Essentials" – Week 2, Unit
1. In this unit, we will begin with our applications week, and so let's get started with some
theory.
00:00:23 I know you all want to get your hands dirty and get hands-on, but please bear with me. The
first unit again has some theory, a short recap of the last week, and some new stuff on how
you would develop the applications.
00:00:37 So let's get started. So to recap – the architecture.
00:00:43 We've covered this already. This week we are mainly focusing on the left part, on the
programming model,
00:00:51 so still in the Cloud Platform... let's say, window, the programming model. So we will
develop an HTML5 application this week, we'll develop a Java application as well.
00:01:04 We will also run an application with the XS advanced programming model, and in the UX
area of things, we will also leverage a service called SAP Cloud Platform Build.
00:01:17 That will be the next unit. In that service, you will leverage to get started with prototyping, so
the first thing before you actually build the application.
00:01:28 And then in this week, we also leverage some of the DevOps services. And for the most
part, there the SAP Web IDE.
00:01:40 Then, when we talk about Cloud Foundry, the focus there – so this unit, the first unit in this
week – will be more an introduction unit to the week.
00:01:49 Then we will have one unit with the SAP Cloud Platform Build tool to get started with
prototyping and get some design thinking notes, I would say. And then in the Neo
environment, we will do an HTML5 app and a Java application.
00:02:07 And then we will go over to the Cloud Foundry environment and do an HTML5 application
there, and then also a full-stack application with the XS advanced programming model.
00:02:18 So why would you like to develop an application in the cloud? The main reason is business
agility.
00:02:25 In the cloud, you don't have to take care of your infrastructure. You don't have to take care
of your operating system, your application server, or your database.
00:02:35 That's all provided and maintained by the cloud provider – in our case, SAP with SAP Cloud
Platform. The time to market, and then when you innovate with the solution, the innovation
cycle is much shorter.
00:02:51 That's the usual thing in the cloud – why you would like to go to the cloud. Also, combined
with this, the total cost of development is lower because your time to market is shorter,
00:03:03 and the main cost here is the time that your developer invests. And then for fast innovation
cycles, so we currently update our platform every two weeks.
00:03:15 So we provide fixes, updates, and new features every two weeks. And for our platform, we
have set up a continuous delivery cycle – continuous integration and continuous delivery.
00:03:28 And that's also one thing which you might like to do if you have a certain scenario for which
you would like to develop an innovative solution. And if you then want to have very quick
innovation cycles with that solution, on that solution,
00:03:43 it makes sense to set up a continuous integration and continuous delivery cycle. Also, what
you do in the cloud is reuse, so you reuse things which the open-source community might
have done,
00:03:55 which you have already done for other applications, or which SAP has done and is offered
by SAP. You build your applications with a microservice architecture.
00:04:08 We'll also take a closer look at that shortly. Then you leverage APIs, so for example, SAP
API Business Hub – the hub where SAP offers APIs for all their cloud applications.
00:04:22 And then you also expose your own APIs so that your partners can consume them, or also
so that some of your other applications can consume them.
00:04:34 In terms of cloud, there are differences in the cloud maturity models. So if you build an
application, or if you already have an application and you want to bring that to the cloud,
00:04:44 there are different, I would say, "steps" on which level that cloud application can fall. Let's
begin at the bottom – so what does it mean if you have a cloud-ready application?
00:05:00 Cloud-ready application means that you don't have file system requirements, so you don't
make use of a file system, because you definitely want to avoid that in the cloud context if
possible.
00:05:15 Then you have a self-contained application – it doesn't necessarily need other applications,
but you can put it, for example, in a container and run it in the cloud.
00:05:27 It uses platform-managed ports and addressing, and it consumes services of the platform
using the semantics of the platform. So some semantics offered by a certain platform – in
our case, SAP Cloud Platform – consuming those semantics.
00:05:45 Then the next step is you have a cloud-friendly application, which you achieve if you factor
in the 12-factor principles, which we will also cover shortly.
00:05:58 You leverage your platform for high availability, for example running multiple instances of
your application. Then you have graceful failover scenarios which you support.
00:06:11 And that also usually means that your application should be stateless, and then that way
you can also scale it. The next one is that your application is cloud resilient.
00:06:22 This really means that your application is designed for failover. It means that at some point
in time or other, you expect the hardware, or a port, or a network in the device to fail.
00:06:38 You really expect it, and you calculate a graceful failover scenario for the exact time when it
happens, for example using the Hystrix libraries from Netflix,
00:06:51 and that way, the end user of your application actually doesn't notice that something failed
in the background. So you design for failure.
00:07:02 Then one other thing: proactive testing – so testing and factoring in for much more load than
what you would actually expect. Monitoring is baked in – with monitoring you can also scale
automatically and things like that, so you already build it in.
00:07:23 And one more thing would be a cloud-agnostic runtime implementation. So you implement
or leverage a runtime, for example the Cloud Foundry buildpack,
00:07:33 so that you could run that on SAP Cloud Platform but also on some other cloud platform.
That's one point there.
00:07:40 And the last point: cloud-native application. The most important principle there is a
microservice architecture and leveraging the microservice principles.
00:07:50 That's the architecture style which we recommend for applications you build on the cloud.
More on that now.
00:08:00 Microservices and microservice architecture gained in significance a couple of years ago
and are also currently being hyped in the industry.
00:08:14 And Martin Fowler, from whom these points here are taken, has some very articles and a
very good page on his Web site. I suggest you check that out.
00:08:25 There you'll find the architecture style, which he has promoted quite a lot. And it also has
many benefits for companies all over the world which are adopting those principles when
building an application.
00:08:40 One thing here – and this is most important – you componentize your application into
multiple services. So in our case, it makes sense to, for example, make a second service if
you want to use a second programming language,
00:08:56 so that in one application, you're using different programming languages. That's the one
situation where you definitely need a second service.

2
00:09:04 But then also isolating parts of your application which you want to reuse again, so you make
a second service. Or where you have, let's say, a queue where you put in data, and then
you have workers processing those jobs asynchronously.
00:09:22 That's also a case where you would have to separate services, which are then, for example,
those workers, and then you can have instances of that to scale almost indefinitely.

00:09:36 The granularity, or size of the microservices is also very important. You should not create as
many microservices as possible – that's definitely not the goal.
00:09:49 The right amount is the key. You should use smart endpoints so your services communicate
with each other,
00:09:59 but then also your different solutions communicate with each other. So that you offer the
right APIs and not very...
00:10:06 Probably one of the failures with service-oriented architectures was the enterprise service
bus, which was very complex and often became a bottleneck.
00:10:17 That definitely needs to be avoided here, and in microservice architectures, you don't have
this enterprise service bus so you avoid this bottleneck.
00:10:29 The next point: the 12-factor app principles – here too, the link at the bottom. You can
download the slides below – click on the link and then check out more of the details there.
00:10:40 Very important principles, and we definitely encourage you to follow those principles when
building your applications. For example, with the codebase, you have one tracked codebase
– we recommend you use Git –
00:10:57 and then you have many deploys of this codebase. The next one, for example, is that you
store config information in the environment,
00:11:07 meaning that you have your solution – in Cloud Foundry, that would be packaged as an
MTA, or MTAR, a multitarget application archive – and you can more or less transport that
archive from DEV to TEST to PROD,
00:11:27 and the configuration on which, for example, you have a back-end ERP system or ECC
system or whatever connected, in each of those stages you also have different systems, the
PROD system, but also the TEST system and the DEV system,
00:11:45 and the config environment to those systems is then stored in the environment itself. So you
do not transport with your MTA the configuration information,
00:11:58 but that's already stored in the environment and you just access it. And usually the
configuration would also be here and would have the same name in each environment,
00:12:09 so you only have one point where you use it but then the details are different. And your
application doesn't know the difference – for the application, the difference is totally
transparent.
00:12:21 It's just that in a different environment, you automatically have different config information.
Another one would be, for example, here: build, release, run – so you definitely separate
those build and run stages.
00:12:34 Yes, you build your application, you have a continuous integration cycle, and then you have
a continuous deployment cycle, and then you run your application.
00:12:46 So when we talk about microservices, there are some considerations there. They are not
necessarily best practices, but just some points to get you started on those architectures
00:12:57 and to get you thinking in the right mindset. Usually, it's okay to start with a monolith.
00:13:05 But the most important thing is to split it before it's too late, before your application cannot
cope with the load.
00:13:12 So sometimes, you directly design for a microservice architecture because you want to
leverage different runtimes and that kind of thing, but because you know you need to scale
to a certain amount and it's only possible with a microservice architecture,
00:13:27 but most of the time, you start with a prototype and so on, and that's usually then a monolith
because that's just faster. How you then split is that you split and scale horizontally instead
of scaling the monolith – that's the rule here.

3
00:13:47 Also, one thing that I mentioned already is that you decouple long-running jobs, put them in
a queue, and then assign a worker service to process those.
00:13:59 It's also important that when testing and architecting your application, the clear
recommendation is to architect and test for 5–10 times more load than what you actually
expect.
00:14:12 Because usually your expectations are lower than what reality will show. As mentioned, no
"microservices first" if your requirements are not yet clear – your first POC: monolith okay.

00:14:31 If the time-to-market is critical, so if you need to get the solution out of the door as soon as
possible with a minimum variable product first, it's okay to have a monolith – you can scale
and then split later.
00:14:44 And also, if you think it is a cloud maturity model, the microservice architecture was on the
top, so cloud-native applications. If you can afford for now to be more on the bottom
because you're just getting started or whatever,
00:14:59 and scalability and resilience are not a priority, then it can also be okay to start with a
monolith first. When you then split, it's important to do the split gracefully, control the split,
and not to splinter everything all at once.
00:15:16 And then very important: Leverage what the platform offers you. So in a Cloud Foundry
environment, we offer you, for example, a RabbitMQ service.
00:15:26 So it's a messaging queue – you can leverage that service, put long-running jobs there in a
queue, have a worker service, take them out, and process them.
00:15:36 We offer a Redis in-memory cache, in-memory database, but you can definitely use that as
a cache to store the state, so that way, you achieve stateless services.
00:15:51 Then also you usually use a database for persistence, for example SAP HANA. And then
you use the application runtime.
00:15:59 Here too, use the platform capabilities if you developed the application mainly in Java, let's
say. Yes, you use the Java Runtime,
00:16:09 but if you have certain parts of your application where you want to use algorithms already
written in a different language, perhaps make a second service, and then for that service,
use a buildpack from a different language,
00:16:23 for example a machine learning algorithm in Python. Coming back to our environments and
runtimes offered there – now the Neo environment.
00:16:34 The main runtime: Java – especially for complex applications, and also there is usually a lot
of Java knowledge already out there. Then XSJS, so SAP HANA extended application
services JavaScript,
00:16:51 offered for HANA-native applications with the XS classic programming model. But as we
now already have the XS advanced programming model in Cloud Foundry,
00:17:01 you probably don't want to invest so much there anymore. And then HTML5 applications,
those are the Fiori applications, your new front ends – definitely here.
00:17:14 The developer environment here – Eclipse mainly for Java development, for XSJS
development we also have Eclipse plugins or the HANA Web-based Development
Workbench,
00:17:25 and then for front-end development, for Fiori development – the Web IDE. Now coming to
Cloud Foundry...
00:17:34 There we again support Java with the Apache Tomcat container. We also support HTML5 –
again here, with the SAP Web IDE as a developer environment.
00:17:46 Additionally, we support the Node.js buildpack, so you can leverage the Node.js framework,
and the huge Node.js ecosystem as well to develop applications for SAP Cloud Platform.

00:17:59 You can also run XSJS applications, or XSJS code, via the compatible layer in Node.js
here. And then you can bring your own language, for example – as I've mentioned a couple
of times – machine learning algorithm in Python.

4
00:18:16 Developer environment – we are enhancing the SAP Web IDE, or we now have two
versions of the SAP Web IDE in the cloud. We have the regular version, which you'll know if
you've already worked with SAP Cloud Platform,
00:18:31 and we have a new version called the "multi-cloud version". If you go to "Services", you'll
see both of them,
00:18:38 and the thing is here, the multi-cloud version is the version which we currently enhance,
mainly with new features. And what we are doing there is going away, so we changed the
core of that IDE,
00:18:51 and we are going away from just front-end development there – we are going to full-stack
development. So we are enhancing that with database development capabilities as well as
with back-end capabilities.
00:19:03 So Node.js development capabilities, Java development capabilities, and HANA database
development capabilities are coming in, while still keeping all our Fiori front-end
development capabilities.
00:19:18 And then you use that Web IDE for Cloud Foundry to develop the UI, to develop the
business logic in the back end, and also to develop your data models.
00:19:29 Java development – for example, you can also still use the Eclipse connection or some
other tool, but now the SAP Web IDE also offers you those features, or at least we're
working on offering you those features here as well.
00:19:46 So in our case here, we will use the SAP Web IDE mainly for front-end development with
HTML5 in both the Neo environment and in the Cloud Foundry environment,
00:20:00 and although the full-stack capabilities are not yet all there in the SAP Cloud Platform Web
IDE multi-cloud version, they will also be added gradually over the next months.
00:20:11 Here are some more links on how to get started with the Neo environment and with the
Cloud Foundry environment, and also the developer guide for the Web IDE multi-cloud
version.
00:20:22 You can dive deeper there, explore the microservice characteristics and the 12-factor app
principles, and then let's finish off that unit, so that in the next unit we can begin with the
hands-on part.
00:20:36 What have we done? We covered our architecture... Again, just a short recap... then
covered the cloud maturity model up to cloud-native applications.
00:20:47 Then microservice characteristics, the microservice architecture style, which we
recommend, the 12-factor app principles which you should leverage.
00:20:57 And we covered the runtime environments and also the developer environments in both the
Neo environment and the Cloud Foundry environment. With this, we are at the end of this
unit.
00:21:07 Thanks a lot and see you in the next unit.

5
Week 2 Unit 2

00:00:07 Hello and welcome to the openSAP course "SAP Cloud Platform Essentials" – Week 2, Unit
2: "SAP Cloud Platform Build". And that's exactly the service which we will be covering in
this unit.
00:00:22 SAP Cloud Platform Build is a service that enables you to start early prototyping with design
thinking to understand your users' needs, to save costs early on, to really know what your
users want,
00:00:38 and to know what your solution should be so that you don't have to fix it later. So let's begin
with a story.
00:00:49 Most of the changes are UI changes. So if you have unforeseen fixes which need to be
made in your application,
00:01:00 80% of those unforeseen fixes after development and deployment are usually due to UI
changes. So most of the changes are UI changes.
00:01:12 Then the question is: How can you avoid those? Also, the earlier you avoid it, the less
expensive it gets for you.
00:01:26 When you need to make a change, these are just rough numbers of what those changes
can cost you – especially in the model of scale – in each phase.
00:01:42 So during or after deployment, you are at more than double the cost than when you noticed
it already in development. And if you notice it, not in development, but in the design phase,

00:01:58 you are again saving many times the cost. If you notice it even earlier, in the discovery
phase,
00:02:06 so when you just explore your user's needs and write them down in your requirements
document, even better. So SAP Cloud Platform Build is a tool which helps you understand
faster, earlier on in your whole design/development phase
00:02:27 what exactly your user's needs are, to understand your errors in thinking and find them out
– because everyone has errors in thinking – and then to fix them early on.
00:02:39 Because the difficult thing here really is: How can you deliver a great UI? What is a great
user experience? What do your customers, your end users expect?
00:02:54 The thing here is it's different for almost anyone because in different industries there might
be different expectations, in different user groups there are definitely different expectations,
00:03:04 a developer probably expects something different than a business end user – so here, huge
differences. So let's start here with a story.
00:03:17 On the left side, we have Eva, who's a business analyst, and she thinks: What do the end
users mean? When she asks them a question, she definitely records their answer, writing it
down,
00:03:37 but she also has her subjective emotions and understanding, and that's usual for every one
of And even in their end user groups, there are different people with different backgrounds,
00:03:52 and even for the same question, they will sometimes think of different answers. They might
expect different things from a solution.
00:04:01 So it's usually quite difficult to quickly iterate over possible solutions with your users to find
that path where you can come to a common understanding among your users,
00:04:15 and then, most importantly, also between your users and you the developers, the designers.
So oftentimes it's also the case that a project team lacks some experience in design, some
tools,
00:04:34 and we are trying to fix that with SAP Cloud Platform Build. Because it's not only a solution
which gives you some tools but also a solution which gives you access to learning and to
services.
00:04:46 And what's one of the big issues? Things get lost in translation. Not necessarily from one
language to another, but in understanding, from person to person.

6
00:05:00 If you tell someone something, and that person tells it to some more people, and they again
tell it to some more people, and then you hear it back, it's probably something completely
different again.
00:05:11 That's because every one of us brings in their subjective thinking, which can be a benefit in
brainstorming and that kind of thing,
00:05:19 but if you want to come to a common understanding, you have to overcome that. So you
have your source, you put proposals together, you ask your users, your end users your
questions – very important –
00:05:34 you get their feedback, you incorporate it again, then you sync again with the end users in
your project team, and you bring everything together. So that's actually what SAP Cloud
Platform Build offers here.
00:05:47 It gives you access to design thinking resources, to help you learn more about design
thinking. How do you do user research, requirements research, all those things?
00:06:02 It's offered as a gallery to jumpstart your development, so with examples already put in for
prototyping, and that's then the tool part. You can create interactive prototypes with Build.
00:06:16 For example, during a design thinking session you did some paper screens – you can
photograph them, upload them, and make them interactive.
00:06:25 And then you can also create a slightly higher- fidelity prototype when you actually use
drag-and-drop features to put together an actual UI that is then interactive.
00:06:39 The Build tool also gives you the ability to get user feedback. So you can send those low
and high-fidelity prototypes to your users via e-mail,
00:06:50 and they can click around and give feedback. So you can see, for example, heatmaps on
where their mouse moved, where they clicked, so where they, for example...
00:07:02 Most users would expect a "Back" button at the top left – it's just most expected there. And
then "Go forward" at the bottom right, or something like that.
00:07:12 And usually they would expect an "OK" button on the right side and a "Cancel" button on the
left side. That's just some usual expectations.
00:07:20 So when a user wants to perform a certain action, the mouse might move there, and if the
button is not where they expect it, they would be confused and they would give you
feedback.
00:07:29 That all helps you to quickly iterate over the prototype from low fidelity to high fidelity even
before a developer comes on board so here everything can be done by a designer, by a
business user, really before your application goes into development.
00:07:49 So let's get a bit hands-on. And here you directly see that link – build.me is the link where
you can get access to that tool.
00:08:00 Also, below are some ways of getting in contact with the team, so go to build.me and then
let's continue with the hands-on. I've already done it here, and then you can just log
00:08:14 It's a free tool, it runs on SAP Cloud Platform, and then you can also use that tool. And at a
later point in time, one feature that's offered there is that you can export your prototype from
Build
00:08:30 and then import it into the SAP Web IDE and hand it over to your developers. That's not one
feature which we will test out now, but it's one feature which is available.
00:08:43 Again, here's just a bit on the how it works page. What's offered there with the Build tool?
00:08:49 The gallery is offered, some learning cards, for example, where you can read and gain
some knowledge about a certain topic. Then also linked are openSAP courses about design
thinking, about user research.
00:09:05 And then the prototyping tools where you can really put together an interactive prototype
before even... So when you use those drag-and-drop features, in the background a code is
created but you do not actually have to write it.
00:09:22 And that's all made for the Fiori user experience. And then here you can gather user
feedback, see heatmaps of that stuff, and so on.
00:09:32 So let's log in and then go to "WORKSPACE". So in the workspace, you see your projects,
if you already have some.

7
00:09:45 For me, I don't have any in that account currently, so here I could start a new project from
scratch. But I don't want to do that, I don't want to do everything on my own.
00:09:54 So let's perhaps take "Connected Goods". Connected Goods is an application based on
Internet of Things and it's part of the SAP Leonardo portfolio,
00:10:05 and let's take that template. So we can, for example, "LIKE" that template.
00:10:11 And here we see already a map of the pages offered there. So you have a "Launch Page",
then here you have access to different machines,
00:10:20 then you have a details page where those IoT machines, or devices, provide information.
Also some files which are offered with that prototype, so let's "CLONE" it.
00:10:35 "Cloning"... and by cloning that project, I'm importing it into my own workspace, and there I
can then modify it. One thing I could do here is create a user study to send out a prototype
to my users to test it,
00:10:51 or I could also invite team members to collaborate on that. I'm doing that now.
00:10:57 So we'll go to the page map. And here also, a difference between the paid and free versions
of SAP Cloud Platform Build is that
00:11:06 in the paid version you can gather much more user feedback and you can also collaborate
in much bigger teams. So here we have the page maps, and then let's go into one page.
00:11:20 The recommended browser for Build is Chrome, but I'm using Firefox here. It works for me
as well because in this browser I have the account set up which I'm using here.
00:11:35 Here, you see what page of your application you're actually on, you see that page in green.
On the left you see some controls which you can add and modify.
00:11:46 Here, you also see some more settings which you can configure. Here, you can change the
screen size.
00:11:55 So if you're watching it on a desktop or on a mobile device, you can also adjust some more
settings. And you could create a user study with that,
00:12:07 or with this tool here, you could just see it like a user would see it on their device, on a tablet
or on a mobile device, and so on. And you can then go back to the "UI EDITOR".
00:12:24 You can switch those around, the UI elements, you can modify them, and just explore a bit
what SAP Cloud Platform Build can offer you,
00:12:37 and we can also... if we then... let's go back into the workspace... You can also see here the
"Learning" area, so you can explore the learning cards offered here.
00:12:56 So here we see the message about Google Chrome. These here are usually the phases:
the Discover phase where you define your scope,
00:13:04 you do your research, you synthesize, that's exactly the design thinking process. And then
here we offer cards on understanding each of those processes.
00:13:15 Here, you also have a couple of links to openSAP courses about design research, about
design thinking. You can click on them and log in to them.
00:13:25 They are offered for free. You can learn about design, design thinking, user research, and
that kind of thing.
00:13:33 Lastly, let's look at the gallery of sample applications on offer. Here are just a couple of
applications which you can start with to get some ideas,
00:13:42 to see how it can look, and then you can also start from scratch. With this, we are at the end
of this unit.
00:13:53 So what did we actually learn? We learned that it's exponentially more expensive to make
changes after development.
00:14:03 We also learned that the Build tool helps design business apps users love. And it offers you
learning so that you get a better understanding,
00:14:14 it offers you tools for quick prototyping and then for gathering user feedback, and if you
incorporate that, your applications will offer a better user experience and be better adopted
by their users.
00:14:26 With that, thanks a lot and see you in the next unit.

8
Week 2 Unit 3

00:00:08 Hello and welcome to the openSAP course "SAP Cloud Platform Essentials" – Week 2, Unit
3: "HTML5 Applications". And that's exactly what we will be covering in this unit.
00:00:20 We will develop our first HTML5 application and deploy that to and run that on SAP Cloud
Platform. So let's get started.
00:00:31 An HTML5 application consists of static resources. So there's a Web dispatcher, or an
application router, on the platform
00:00:41 which delivers those libraries, those HTML5 pages, the JavaScript libraries, to your browser,
and they are then executed locally in your browser.
00:00:53 Oftentimes, such HTML5 applications connect to an existing back end using REST services.
The back end can be on premise like a new UI, or a mobile-enabled UI, for your ERP
system,
00:01:10 or it can also be a cloud system, so you have a mobile application or also a Web application
that connects to the back end running in the cloud. An example of that would be a SAPUI5
application connecting to an SAP S/4HANA system running either on premise or in the
cloud.
00:01:34 How this then exactly works is that your end users access the platform via their devices,
The first entry point for them is usually a dispatcher, or an application router.
00:01:47 That then has the applications, your HTML5 apps, in a Git repository and via that Git
repository it can serve your users, the HTML5 pages, the JavaScript libraries, that kind of
thing.
00:02:07 You as a developer can do source code management, lifecycle management, and so on on
those applications, and then via that dispatcher, the application can also connect via the
aforementioned REST services to a back end.
00:02:23 OData services are often used there to manage the connection between your back end and
your front end. So, SAPUI5 – the main term is "HTML5 applications", implementing the
HTML5 rules,
00:02:45 and then there is "SAPUI5", so the UI5 libraries, or SAP's UI libraries for HTML5. These are
libraries, JavaScript libraries, that implement more or less the Fiori user experience
00:03:02 so you can leverage those libraries to implement also your applications with the SAP Fiori
user experience like we do in the SAP-offered applications as well.
00:03:14 Key capabilities are you get a modern HTML5- based front end, you just leverage the
library, which is very easy to consume, a lot of controls are available there to consume
OData services, which are the main service type which is offered by the SAP back ends,
00:03:32 and which we also recommend for your custom back ends. It leverages the standards-
based HTML5 development,
00:03:40 it runs everywhere, so those HTML5 applications are already mobile-enabled, so you can
view them in a browser, on an iPad or some other tablet, on an iPhone or some other
mobile phone – it works everywhere.
00:03:54 And usually, if you code the application right, it also aligns automatically depending on the
screen size. Also, as we already saw in the previous unit with the Build tool, in your
prototype you can do that as well.
00:04:10 Here the developers can definitely do that as well. Or if you've already imported it from the
prototype, then it's done automatically as well because it's already implemented in the back
end.
00:04:22 And then we also have a very rich template library, so if you're used to SAPUI5, you can
leverage that as well and it's available via the SAP Web
00:04:33 The architecture concept for those front-end applications which we recommend and use
ourselves as well is Model View Controller (MVC). So you have a model which defines your
business logic.

9
00:04:49 and then you separate that from, on the one side, the views, so actually what is displayed to
the users, and then from the controller who then more or less handles the interaction, the
actions.
00:05:01 So the view would, for example, have a button, and when that button is pressed by a user,
an action is triggered. That is executed by the controller, for example: "Go to the next page
in the next view in the next controller."
00:05:19 Or like an entry button where you have a form or something like that, and then the controller
would save the data in the model. The developer environment which we highly recommend
for SAPUI5 development and also for HTML5 development in general is SAP Web IDE,

00:05:42 on the cloud offered as SAP Cloud Platform Web and you can use that to develop your
application, to test your application, to build and deploy your application,
00:05:53 and then you can also use that to build extension applications directly. For example, for
portal solutions or for Jam, all those kinds of things.
00:06:04 And then the Web IDE itself is also extensible, so you can write your own plugins to
enhance the Web IDE. Some key capabilities of that are you don't need to set anything up
beforehand.
00:06:18 You consume that via the platform, via the browser, it's just no installation and no upgrades
for you – very easy to consume. Also, therefore, very low-cost for you because all that
maintenance...
00:06:33 If you had a local installation and you needed to upgrade it all the time, it would involve a lot
of cost, and you just save that. Also there is a code editor which is highly optimized for
SAPUI5 development, and templates are already there.
00:06:48 We also offer a Git service on our SAP Cloud Platform – that's directly integrated so you
can use that as well. You can also connect automatically to various data services which you
can import via the destinations,
00:07:03 be those on-premise systems or other cloud systems. So overall the goal is to have low-
cost, fast innovation cycles, and a lot of developer productivity.
00:07:20 Also, as I've already mentioned, the recommended source code version control system is
Git, which is a version control system for distributed versioning.
00:07:30 It was originally created in 2005 for Linux kernel development, and it also enables
collaborative workflows very well. So how it works – as you might also know some of those
other systems – with Git you don't have central versioning.
00:07:50 So with central versioning like you have in SVN, for example, you have a central server
which stores all the versions, and as a developer you only have your history.
00:08:03 So you don't have all the history, but just your files. With Git, it's distributed versioning,
meaning the central server has all the versions,
00:08:12 and you as a developer have your files which you change locally, but you also have all the
versions. Our machines today are so powerful... the source code for those versions – it
doesn't matter, you don't notice it.
00:08:27 And if you want to go back in the history and look something up or that kind of thing, it's very
easy here, it's very easy this way. And it usually works out that you have a master branch,
which is, for example, your productive code line,
00:08:40 and then as a developer, if you want to change something, you make a second branch, you
develop your own code there, you test it to make sure that everything works right there, and
then you merge it back together in the master branch, and do an integration test.

00:08:56 If that works again, you can integrate it from DEV to TEST to your PROD system. So let's
get our hands dirty, let's start with a simple "Hello World!" tutorial using the SAP Cloud
Platform Web IDE.
00:09:14 So we will now log in to our account, create an HTML5 application. For that, we will use the
template "SAPUI5 Application", we will modify that application,
00:09:25 and then we will deploy it and run it on the platform. So let's switch over to our account.

10
00:09:33 So you again go to "Europe (Rot) - Trial", the trial account for the Neo environment, and
then you go to "Services".
00:09:45 I believe I've mentioned it already: Here in "Services", in the DevOps space – for example,
you could just search for "web ide" here – you see two IDEs:
00:09:56 the SAP Web IDE, so the standard version for front-end development, and then the multi-
cloud version which we are currently enhancing with more features for full- stack
development.
00:10:08 Now we just want to do front-end development, so the SAP Web IDE version is totally fine.
So let's access that one, and then here, just while it's loading up, we can go to "Services"
and start the Web IDE.
00:10:28 That opens up already. We see some tips and tricks that are displayed, and now we are in
the Web IDE.
00:10:37 It looks similar to most other IDEs. If you have previous experience with Eclipse or
something like that, you should find your way around.
00:10:46 So first is the welcome page, some learning material, and various other things. Then here
we have the development parts – here is a special tab for the "Learning Center".
00:10:58 Then here we also have the settings. For now, we can stick to the development part and
then start our first application.
00:11:09 So right-click on "Workspace" and then select "New", "Project from Template". It's really
important here that you select "Project from Template"
00:11:22 because otherwise you would have to start from scratch, but you don't need to do that now.
Here, in the "Category" section, you can select "All categories" – that's totally fine – and
then select "SAPUI5 Application".
00:11:36 For me, it's displayed it as the first one because I used it recently. You can also sort it by
name, then it would be... here – "SAPUI5 Application".
00:11:49 You just select that and click on "Next". Then you can give your project a name.
00:11:54 The name should be lowercase for your project, so I will just use "helloworld". You can
select the view type.
00:12:04 Most applications, I would say, also most resources which you see, for SAPUI5 applications
they are a view.
00:12:12 I mentioned it with the Model View Controller – the view is written in XML. You can also
write it in JSON, JavaScript, or HTML,
00:12:21 but XML is the most used type for SAPUI5 applications. The view name... let's just call it
"HelloWorld" because that should be displayed there.
00:12:38 "Finish" and our application gets created. So here we now have our "neo-app.json" file,
which has some configuration.
00:12:49 We have our "index" file. You see the body of the index is empty – the content is put in there
dynamically.
00:13:01 And then let's look into our "view". Here we have an application, so let's just run that
application.
00:13:12 Here we have a "Run" button, so select the application and just run it. With that run button,
we run our application in a sandbox, so it's running in the Web IDE sandbox.
00:13:24 It's not yet deployed to the Cloud Platform and not yet available for other users, but just for
us. So here, that's the application, the title, and so on and so forth.
00:13:38 So that's totally fine. Let's now, as a short modification, change the title to "Hello World!"
00:13:45 You do that if you... that's the view, and here we see the <Page title>, the i18n file, and then
the title. We open up the "i18n" folder – it contains a properties file, and that properties file
stores language information.
00:14:02 You can have several of those – one properties file for each language. The default one
would be for English.
00:14:09 We see here the title, and that should be "Hello World!" Let's save that.

11
00:14:21 And just to give you an overview here – we had the "view", we already covered that, we also
have our "model" here, JavaScript. We have the "controller", also in JavaScript, and then
we have some styling information as a CSS file.
00:14:36 We change that, and then... sorry, let's run our project again in the sandbox. Now the title
should have changed to "Hello World!" – oh, I put in an "s".
00:14:51 Let's fix that quickly. Run it again.
00:14:57 And "Hello World!" is displayed. And then as the next step, let's deploy that application... to
SAP Cloud Platform.
00:15:08 So you can select it – "Deploy" – "Deploy to SAP Cloud Platform". Application name – all
fine.
00:15:16 "Deploy a new application" – so let's deploy it. Now the application is deployed, and when
it's deployed, it's available for all users.
00:15:28 Yeah, I can "Open the active version of the application". And there it is.
00:15:35 Now you could also open that URL from your mobile phone or from some other computer,
and it would be available for everyone. We don't have security built in, at least not yet, so
everyone can look at that application.
00:15:52 And then, if you want to explore a bit more, if you have some more time, you can also go to
"New", "Project from Sample Application", and then you can select one of the sample
applications here and just explore the code a bit, deploy it if you want to.
00:16:09 Those are some of the Fiori reference apps. With that, we have our deployed application.
00:16:17 We can also – I can show that to you as well – look here at the HTML5 applications. And
there we will now also see our "helloworld" application.
00:16:29 If we clicked on it, we would also see it running here, and that's the URL – we can also click
on that to open our application. And if we now wanted to track our application in source
code management,
00:16:43 we could also go via "Git" and then initialize a new repository here so that we could save
our code. But as this is just a sample, we don't need to do
00:16:58 With this, we created the application, we made an edit, we deployed it, and that's it. Further
reading – some "Getting Started" tips, some links for the MVC concept, or for Git if you want
to explore a bit more there.
00:17:15 So what have you learned in this unit? You have learned how HTML5 applications work on
SAP Cloud Platform.
00:17:23 You have learned what SAPUI5 is. You have learned what SAP Cloud Platform Web IDE is
and how it works.
00:17:31 You have also got some hands-on experience with You have learned what Git is and how
it's used for source code versioning.
00:17:39 And you have also created your own sample HTML5 application – a simple "Hello World!"
application – and run it on the platform. With this, we are at the end – thanks a lot and see
you in the next unit.

12
Week 2 Unit 4

00:00:07 Hello and welcome to the openSAP course "SAP Cloud Platform Essentials" – Week 2, Unit
4: "Java Applications". And that's exactly what we will be covering in this unit.
00:00:19 We will develop our first Java application and deploy that to SAP Cloud Platform. So let's
start.
00:00:27 The Java Runtime first – as usual, a bit of theory. The Java Runtime enables you to
leverage your existing knowledge.
00:00:35 Usually, many of our customers and partners already have Java developers in house. They
have knowledge in Java development.
00:00:42 That is also one goal which we wanted to enable with SAP Cloud Platform – that we offer
them mainly Java Runtime so that here you can really develop with Java, leverage that
knowledge, and leverage the huge Java ecosystem.
00:00:58 On the platform, we have Java Runtime supporting Java 6, 7, and 8, and it supports the
widespread Apache Tomcat Web container. So we are not running NetWeaver as Java or
such like – we are running an Apache Tomcat.
00:01:16 Our developer environment for Java will be mainly Eclipse. You can also use other tools,
but we offer plugins for Eclipse so there it's probably the easiest.
00:01:25 We are also working on enhancing our SAP Cloud Platform Web IDE with capabilities to
develop Java applications, but for now, for this unit, we will stick with Eclipse.
00:01:41 Eclipse – you are probably also familiar with it. If you've done any Java development, it's
usually the first IDE you start with.
00:01:50 It's perhaps not the first you start with, but the first one you really work with because it's a
very feature-rich IDE. It has a great ecosystem around it as well, with many plugins for
different things you might want to do.
00:02:05 And we also offer tools for it so that you can deploy directly to SAP Cloud Platform from the
So in this unit, we have more or less two hands- on exercises – for each we have a guide
linked which is available on our Web sites.
00:02:25 The first one will be mainly on setting up the IDE, and the second one will then be on
developing our first application. So let's start here, and now I would say download the PDF
from below, click on the link, and then let's go over there.
00:02:42 So this is the first tutorial, to configure Eclipse with SAP Cloud Platform tools for Java. The
first step will be to download Eclipse,
00:02:51 so you can just go to the Eclipse download site and download the Eclipse IDE for Java EE
Developers. So that's important – the one for Java EE developers.
00:03:05 Windows, Mac, 32 bit, 64 bit... it's best if it matches your operating system, so if you have a
Windows 64-bit operating system, then please download the Windows 64- bit version.
00:03:19 Also, to run Eclipse – Eclipse is Java-based – you should have installed a JDK beforehand.
Just google it – Java Development Kit.
00:03:32 And also install the same version that your operating system is. So if your operating system
is a 64-bit version, then please also install the JDK in a 64-bit version.
00:03:47 Yeah, then here are the steps – you can just click on the link here and following the
instructions. You choose the download site, you extract the archive of Eclipse, on a Mac you
can just put it in your "Applications" folder.
00:04:04 Here is one example of how you can do it in Windows, but you can also put it in your
"Program Files". Next you click on Eclipse and start the application.
00:04:17 I've already done that, so here you see my Eclipse. Eclipse Neon is the current version, and
usually we support the newest version of Eclipse as well as the last version.
00:04:29 So currently with our tools we are supporting Eclipse Neon as well as Eclipse Mars. When
you have started Eclipse, you choose your workspace where you want to save your
projects.

13
00:04:44 The welcome page – we can skip all that. So here, that's the next important thing: the SAP
Cloud Platform tools. You want to install them because it makes it much easier to develop
for SAP Cloud Platform.
00:04:58 There you go to "Help" and "Install New Software...", and then here is the URL, so here you
can just copy that URL, put it in, and then you see the tools.
00:05:14 I already did that somewhere here, so let's see... I've got that here, and then the tools... are
there. What you actually really need are the SAP Cloud Platform tools,
00:05:27 but you can also just click on "Select All" and install a whole bunch of the SAP development
tools for Eclipse. You might also like to do some HANA development, so the tools are also
included, or some SAPUI5 development,
00:05:42 so with that, everything would be installed. You accept the license agreement, and when the
tools are installed, you need to restart Eclipse so that everything takes effect.
00:05:56 Then the tools are installed, and the next thing you need to do is download our SDK and
then add that to Eclipse as well.
00:06:05 So the link is "tools.hana.ondemand.com" – just click on it here – and then you are on our
tools page. In this unit, we are only doing development for our Neo environment.
00:06:23 So these are then more or less the steps that you already did – you downloaded Eclipse,
you downloaded the tools, so here you now need our SDK.
00:06:33 We currently have four SDKs available, and I usually have all of them included, and then
depending on my project, I select a certain SDK.
00:06:46 In this unit, we will now work with the Java Web Tomcat 8 SDK because it's the newest
SDK. And we don't need a Java EE 6 Web Profile.
00:06:58 So the Java EE 6 Web Profile SDK is certified and the other ones aren't, but the Java Web
Tomcat 8 is the newest one.
00:07:09 And if you would like to take one of the SDKs in version 6, then you would also need the
JVM, or the JDK, in version 7. So only a maximum of one version above.
00:07:25 The current... if you download the new JDK, it's always version 8 because that's the newest
one. So with that JDK, you can only run the Tomcat 7 and Tomcat 8 SDK.
00:07:35 So to make it easy for all of us, let's use that You download that, and then let's see what the
next step is.
00:07:46 Or you can also download all four of them, no problem – then we add them. Here you
download the SDK, you agree to the developer license, you extract the SDK, and you just
put it in a folder,
00:07:58 so I've got it in a folder under "My Applications" in my Mac. You can also put it here beside
your Eclipse or in a folder under your "Program Files" – that's all fine.
00:08:08 Then you need to configure in Eclipse. For that, you open "Preferences..." in Eclipse and
you go to "Runtime Environment".
00:08:18 So let's close this here, open "Preferences...", and then you just filter for "runtime".
00:08:27 Then you see your "Runtime Environment" and you can go to "Add..." and then select one
of the SDKs. You can also download all four of them and then add one after the other.
00:08:41 Each of the SDKs... If you just downloaded the Java Web Tomcat 8 SDK, you go here to
"Next" and then that's the name,
00:08:49 and then here you need to browse to the location where you extracted that SDK. Then that's
verified and then you can add the
00:09:00 So for me here, as you see, I've got all four SDKs installed. What's next? "Choose folder
and finish"... and then the runtime's available.
00:09:15 That's it for this tutorial, so let's switch back to our slides. What did we do?
00:09:25 We downloaded Eclipse, also first, if you don't yet have one, you download a Java
Development Kit that matches your operating system. If you have an operating system in 64
bit, download the Java Development Kit in 64 bit, and also download Eclipse in 64 bit.
00:09:42 It just makes it all smoother and makes sure that we don't encounter any errors later which
aren't explainable. Then you downloaded the tools, the plugin for Eclipse for SAP Cloud
Platform.

14
00:09:56 Then you downloaded the SDK and you added the SDK to Eclipse as a runtime
environment. Next, we will create our first application.
00:10:08 So let's go to our Eclipse. You now need the Java EE development view, which is usually
the default view, but if not, just go to Java EE and then open that view.
00:10:24 You go to "New" and then "Dynamic Web Project" – all the steps are explained, and let me
also open this here. All the steps are also explained here in this tutorial,
00:10:37 so if you have a problem, you can also search there and see all the steps there. So you go
to "New" and here we are currently: "Dynamic Web Project".
00:10:52 So what are the suggestions here? Let me see. Set a project name – it will be a simple
"helloworld" application. Target runtime – that's all fine.
00:11:03 Then in the second step, you create a new servlet – yes. So let's name our application
"helloworld".
00:11:11 I select the Java Web Tomcat 8 SDK, everything else will be fine. "Next" – that's all fine,
that's all fine, and "Finish". So for me, as I'm working with working sets... let me just see that
I add our project to my current working set.
00:11:38 So that's it – there we have our Java project. First, we will add a servlet class.
00:11:47 A simple Web servlet class – that does what we want to achieve. New servlet.
00:11:57 Then you select the class name, and also the Java package, which is lowercase... and then
"helloworld" and "HelloWorldServlet". That's all fine, you can go to "Next".
00:12:17 Here, the URL mapping – usually, you would currently open the application and then add
this "HelloWorldServlet" as a URL mapping, but in our case, we don't want to have to add it
manually.
00:12:31 The page, this servlet should be the default servlet – it should be loaded when you call the
application. So we will just put in a slash (/) and then go to "Next".
00:12:44 We change the URL pattern and then you can generate the servlet. Okay. So let's do that –
we have here our package, and we have here our servlet. Nice.
00:12:57 Then the servlet is opened here, and now we need to add our hello world code. It's a pretty
simple writer that prints out "Hello World!" so just copy the code here.
00:13:12 Then look into your "doGet" method – here we have it – and then you can just add that
here, and make sure that you save it. And then you can run it on a server.
00:13:33 So now we can select our project, we can right- click it... sorry, I was just too fast. And we
can go to "Run As" and "Run on Server", and then we can select which server we would like
to run it on.
00:13:50 So we have the four SDKs which I added. They are there – that's if you want to run it and
test it locally.
00:13:58 And then we can also select SAP Cloud Platform – that's when we want to deploy it to the
cloud – so let's first test it locally. That's fine, "helloworld" is added.
00:14:13 "Allow". And that's our application running on a local host – a sample application just
displaying "Hello World!"
00:14:26 So the next thing would be to do the same thing but deploy it to the cloud. So we go to "Run
On Server", we define a new server manually, we select "SAP Cloud Platform" – we can
also manually define a new server.
00:14:47 We are here now – "Run As", "Run On Server", select the server type SAP Cloud Platform.
Also – and this is very important – you are probably using a trial account,
00:14:59 so you select the landscape host "hanatrial.ondemand.com". You can just copy it from here
if you want to.
00:15:15 So that's our landscape host. You can specify the application name, the account name, the
user name, and password – that's important.
00:15:29 So for the application name, let's just put "helloworld", then the subaccount name. Here,
please log in to your account and then go to the "Europe (Rot) - Trial" region and to your
trial account.
00:15:49 At the top right, we have the button to log out, and beside that, we have our button where
we can display our user information.

15
00:15:57 So here you see my name, and then here you see my P-user, so that's my user ID, and also
my user name. And my account is always this P-user ID with "trial" added.
00:16:13 So my account name is this here, my user name is the same without "trial" at the end, then
we save – yeah, the password is already in – "helloworld" application, "Finish".
00:16:27 What happens now in the background is our application is compiled, and then the
application, the application file is deployed to the Cloud Platform, into my trial account, and
then it's started there.
00:16:45 So let's see what's happening there – so it's currently publishing. And if I go there to
"Applications", "Java Applications"... yeah, browser session expired, nothing new – we log
in again.
00:17:02 And here we see it: the "helloworld" application currently in the state "Starting". What
happens now is that when I click on the application, you probably don't see it yet,
00:17:14 but while that application is starting, you can also... let's switch back to here. So here, we
did that, we finished, we deployed, and then you can see it running on the server.
00:17:31 For me, the URL opens in the browser as I've configured the browser there, but that's what
we will cover in this tutorial, that's the last step.
00:17:40 So let's see if that's already started... no, usually the starting deployment, the starting of a
Java application takes a bit. So we also see the state here in our Eclipse.
00:17:54 So that's one way of managing your application. You can manage your Java applications
via Eclipse, you can start them, you stop them, you can deploy something there,
00:18:05 but you can also do it here via the cockpit. So here you could also update the application or
start an additional process.
00:18:13 Okay, now the application has started, and here you see this application is available. The
URL is public, we don't have added-in security measurements yet.
00:18:28 So here you could also open that from a different laptop – the same URL – and you should
be able to access that Java application running in the cloud.
00:18:40 And with this, let's switch back to the slides. We've created our Dynamic Web Project,
added a HelloWorld servlet, tested it locally, and then deployed it to the cloud.
00:18:51 Now, just as an addition, a bit more explanation on Java development and how you do Java
development, or how we recommend you do Java development with the Cloud Platform.
00:19:03 So IDE – IDE is Eclipse. We also covered Git a bit in the previous unit on HTML5
applications.
00:19:12 For storing your source code with Java applications, you also use Git. And here in Eclipse,
or in the Eclipse version for Java EE developers, EGit is also included,
00:19:23 which is a plugin to also manage Git source code management via Eclipse. So here you can
also connect EGit directly to the Git service running on SAP Cloud Platform.
00:19:36 and save your Java code also on SAP Cloud Platform. The next one would be Maven.
00:19:42 Maven is a build management tool so it helps you manage dependencies in a build. If you
look at sample applications written in Java, out there in blogs, on the SAP Community, and
so on,
00:19:56 or also on our GitHub page, you will find many applications that are based on Maven,
00:20:03 meaning Maven is used to build those applications, Maven allows you to specify which
dependencies you have in an application,
00:20:13 so you don't have to include everything in your project, but everyone who wants to build a
project can download the dependencies on demand when the person is building the project
from central servers.
00:20:25 Originally, Maven was created in 2002 to simplify the build processes in the Apache Turbine
Project. So it was an Apache project, and Maven was also built there, originally just for the
project,
00:20:41 but Maven is now used in many Java applications. The main object of work is a POM –
project object model – and that actually defines what all the dependencies are for your
application.

16
00:20:57 Here, on the right side, you see a POM, a very simple POM file. So you see, for example,
the artifact, your packaging, the version of your application,
00:21:07 and then you see one dependency – in this case, a dependency for a "junit", so for unit
testing in Java and for that library. And that's how the POM file works.
00:21:19 It's pom.xml, it's then included in all the Java projects that are based on Maven, and it
handles all the build processes. So if you want to know more, if you want to do more Java
development, also in terms of SAP Cloud Platform,
00:21:34 please have a look at Apache Maven. It's a very helpful tool and you should be familiar with
it, especially if you want to go into advanced Java development.
00:21:43 We won't use it here right now – it's just to let you know that you have a pointer here that
helps you find more information. In Eclipse there is also M2Eclipse, a plugin to handle
Maven not only via the command line but also directly in your Eclipse IDE.
00:22:04 Here are a couple of links for further reading, so getting started with Java applications, a link
to the tools page, a link to the two tutorials, and also to EGit and Maven.
00:22:18 So what have we learned in this unit? We learned the benefits of the Java Runtime and of
the Eclipse IDE.
00:22:24 We set up our Eclipse IDE for SAP Cloud Platform development, for Java development
mainly. We developed our first HelloWorld project.
00:22:34 We deployed it locally, tested it locally, and then deployed and tested it in the cloud. We
also learned a bit about Git, so you also store your source code in Java in a Git.
00:22:47 You can use Eclipse via EGit for that. Also, we covered a bit about Maven to simplify build
processes for bigger, complex projects,
00:22:56 and how you can also use Eclipse and Maven together. With this, thanks a lot for this unit
and see you in the next unit. Bye bye.

17
Week 2 Unit 5

00:00:07 Hello and welcome to the openSAP course "SAP Cloud Platform Essentials" – Week 2, Unit
5: Cloud Foundry Applications". And that's exactly what we will be talking about in this unit
and the next one – we will be talking about Cloud Foundry applications.
00:00:23 So to summarize what Cloud Foundry is in one sentence: It's the operating system for the
platform as a service. Why are we doing it? Because with Cloud Foundry, with the
standardization, we can do our data center build-out faster,
00:00:40 we can deploy to partner data centers, like Amazon Web Services, Microsoft Azure, and
Google Cloud Platform, and we also make future private cloud deployments and similar or
partner deployments easier.
00:00:53 Now in the application week, the main benefit there is it gives us the ability for more
buildpacks, so more runtime for our applications which are supported.
00:01:05 Then next week, in the persistence week, the open-source backing services might be
another useful thing. What our current focus with Cloud Foundry is...
00:01:15 So we currently have the existing Neo environment, which we covered in the last units –
that's what you've known from SAP Cloud Platform since 2012 –
00:01:24 and we have the new Cloud Foundry environment where we're currently focusing on IoT,
machine learning, Big Data, and also the XS advanced programming model in the cloud,
00:01:35 so a full-stack programming model, which you perhaps also know from SAP HANA on
premise. And you can deploy applications developed with that programming model on
premise as well as in the cloud.
00:01:48 Focus on IoT, machine learning, Big Data – our SAP Leonardo portfolio offering there
combined with design thinking and all those services.
00:02:00 In our runtimes, we support the Java Runtime – similar to the Neo environment. We also
support HTML5 applications, which we will develop in this unit.
00:02:10 And for back ends we also support Node.js applications. And you can also even bring your
own language to, for example, use a Python buildpack
00:02:20 and run a machine learning algorithm which is written in Python. In this unit, we will focus on
a simple front-end HTML5 application,
00:02:29 then in the next unit, we'll go into the full-stack application. So the Web IDE, there we have
two versions:
00:02:37 We have the SAP Cloud Platform Web IDE, the regular version, and the multi-cloud version.
The multi-cloud version is the one which you would like to use for full-stack development
and for development for Cloud Foundry.
00:02:51 So currently we are leaving the regular version stable, for front-end development, for Fiori
development if you want to deploy to the cloud to the Fiori launchpad,
00:03:01 or also if you want to deploy to the Fiori launchpad running in your SAP Gateway system on
premise. The multi-cloud version – we are currently enhancing that with features for full-
stack development,
00:03:13 so not only user interface apps but also applications with business logic and for database
development, and also with the ability to build and deploy for Cloud Foundry.
00:03:26 So our exercise will consist of three steps: The first one is just creating and developing our
application, which will be done in SAP Web IDE Multi-Cloud Version.
00:03:37 The second step is then building and packaging that application, and the project is an MTA
project, where MTA stands for multi-target application.
00:03:46 And then the archive of that would be MTAR, so a multi-target application archive. An MTA
project consists of modules, and you can have, for example, a front-end module, which is
then your front-end service,
00:04:01 and you could also have a back-end module, or multiple back-end modules, which are then
your services in the back end, and then you can also have a database module for your
database development stuff,

18
00:04:13 the stored procedures, calculation views, and that kind of thing. And with this MTA and the
archive for that, the MTAR, you can really establish a lifecycle for your whole project.
00:04:25 So you can transport that from development to testing and production and so on really well,
not just for the front end, but for your whole project. You can use the SAP or the
recommended version.
00:04:38 If you are developing a SAPUI5 application anyway, just use the SAP Web IDE to do the
build. But we also have the MTAR Builder available so that you can do the build in the
command line
00:04:49 if you're perhaps developing the application somewhere else. Step 3 is then the
deployment.
00:04:56 For the deployment, you can use the Web IDE, you can also use the cockpit directly in
Cloud Foundry, or you can use the Cloud Foundry Command Line Interface (CLI).
00:05:06 So now I will show it with the Web IDE, which is the recommended version mainly, and
there you do not need to install anything, which is a huge benefit.
00:05:17 But if you are a fan of the command line, which I will also show you, then here we also have
instructions to install everything that you need for the command lines.
00:05:26 So the Cloud Foundry command line, then our plugins, then also how to log in there – we
have all the instructions and documentation. And then for the MTA Archive Builder... also
that, which is available on our Service Marketplace,
00:05:41 but for that you need S-user access, so access for a customer or partner. And also it's a
prerequisite, so the MTA Archive Builder needs Node.js and npm, Grunt, and Apache
Maven.
00:05:53 Those are just some tools which help in the build process of your projects. So let's continue
with the tutorial.
00:06:03 Let's switch over to our cockpit. So here you can go to "Home", and perhaps let me just
quickly show you all the other tools, just so that you know them.
00:06:14 You don't need to use them, but just so that you know them. On our tools page, we have a
link where you can also download the Cloud Foundry Command Line Interface
00:06:25 There's also an Eclipse plugin which we can use. Then here we have plugins for the Cloud
Foundry Command Line Interface.
00:06:33 So the MTA Plugin, which will be what we are using here to deploy an MTA project to our
Cloud Foundry environment. And we also have a plugin so that you can use the command
line to communicate with our Service Fabrik,
00:06:52 which is a component which we developed for Cloud Foundry and also contribute back to
the community, and there you use the commands for backup and restore.
00:07:02 And then here we also have all the information that you need to use the CLI to connect to
our Cloud Foundry instance. The MTA Archive Builder as well, and all its prerequisites.
00:07:15 All the links are in there with Node, with Grunt, with Maven – so everything is in there. So
here we have our Cloud Foundry environment, for which we are developing.
00:07:27 The SAP Web IDE runs in the Neo environment. And actually, that's not a big problem, or
it's not a problem at all.
00:07:36 And we have certain services which you can cross-use, so they run in one environment, but
you can use them for both environments. The SAP Web IDE and the Git service are two
examples there.
00:07:46 So here, if you go to your trial region of the Neo environment, into your account there, to
"Services", we have the SAP Web IDE, that's the regular version just for front-end
development, the stable version,
00:07:59 and the multi-cloud version where the new innovations come in. So now we need the multi-
cloud version, and there you can then click on "Go to Service".
00:08:08 I would recommend that you just save the URL in your favorites or in your notes somewhere
at least so you don't have to go there every time, but just so that you have the link available,
because the link here is always the same.

19
00:08:22 So here, you just click on "Go to Service" and then you can open that service. You would
probably begin here, just some information,
00:08:32 but we need the development perspective, so we click on "New", "Project from Template",
and we select "Multi-Target Application". So here we can also select "All categories", "Sort
by name", and it's here – "Multi-Target Application" is what we are using.
00:08:50 I will call the application "mta1", and the application ID is fine, and we click on "Finish".
00:08:58 Now our application is created. It consists mainly of one folder and one file, the "mta.yaml"
file.
00:09:06 That's the file which describes our MTA, so it has information on the modules we have and
that kind of thing. But currently we don't have any modules, so let's click on our "mta1",
00:09:19 and now we have two more options when we click on "New": We can add an HTML5
module, and there we are also currently working on bringing you the option
00:09:30 to create even more modules, like a Java back- end module, or a Node.js back-end module.
So those are the things which we have on our roadmap.
00:09:40 There... so "All categories", "Sort by name"... we will use a SAPUI5 application, so the same
type which we also used in the Neo environment. The module name will simply be
"frontend" because we are now just developing a front-end service.
00:09:59 "Next", then the view name – "HelloWorld" – that's fine, and "Next"... "Finish". So now we
are creating our SAPUI5 application,
00:10:15 which has the model view controller concept, so here we have our "view", our "model", our
"controller", our CSS files, and our "i18n" file for the language properties.
00:10:27 And that's exactly the thing that we need to change, so here, under "Page", the title is in,
and here the default language would be just "Title".
00:10:39 Let's change that to "Hello World!" Also, here – just to give you some more insight – we
have our "index.html" file
00:10:51 which, in the case of a SAPUI5 application, has an empty body, and we put all the
information with the views in via JavaScript.
00:11:00 Also, we have here, for example, our "neo- app.json" file, which describes the routes in our
SAPUI5 application. And if we had, for example, some protected routes for which you
needed a login, then that's configured there.
00:11:19 With that, we have actually finished our application. So our application is written, we have
an MTA project which has one HTML5 module
00:11:31 which displays the SAPUI5 application, and the title there is "Hello World!" So now we can
go to "Build" and then build a project.
00:11:42 That's the second step – in the third step, we can go to "Deploy" and deploy the project to
the Cloud Foundry environment. What I'm doing now is using a very early version of the
Web IDE.
00:11:56 At the time when this course comes out, those features will be available, so you can use the
build option and then you can use the deploy option, or also, as an alternative, you can
export the finished MTAR and then deploy that via the cockpit.
00:12:15 So in the cockpit, let's go back to "Home", and "Europe" Cloud Foundry, into our
subaccount, and the space,
00:12:27 and then here into our "dev" space. We can also use "Deploy Application" here if we already
have a finished MTAR.
00:12:36 But in my case, those two features are not yet available, so I will use "Export". Then I will
open my "Downloads" folder and there I have my ZIP file – so that's my project.
00:12:50 I have also already downloaded and installed all the other tools So here I'm now putting my
MTA Archive Builder into that folder and switching to my command line.
00:13:04 And let's here... those are other folders here, I need to go into my "mta1" folder. Then I have
here my "frontend", the "mta.jar" which I just put in, and my "mta.yaml" file.
00:13:20 And now I need to call... the right command – let me just look that up. So it's "java -jar", then
"mta.jar", and then my "-- build-target=XSA" and my project name.

20
00:13:36 So it's "java -jar", then we had our "mta.jar" – that's our MTA Archive Builder – and then we
had "--build-target", and there we select "CF" because we are building for the Cloud
Foundry environment, which is our target,
00:13:59 then we had here... the MTAR name should be "-- mtar-mta1.mtar" and then "build", and
let's just check... ".mtar", yep, that's all fine. So now, we are actually building our project.
00:14:22 While the project is building, let's switch to the browser for a second. And here perhaps I
could add as some information...
00:14:32 If you're a fan of Node.js, under "npm.sap.com" we have our own SAP NPM registry
available, where we publish our SAP JavaScript libraries.
00:14:49 So to use the MTA Archive Builder, you need to add that to your NPM configuration. So all
the public modules are still downloaded from the public NPM registry,
00:15:05 but just SAP modules are downloaded from our own SAP NPM registry. So let's... here we
are again, and that's already finished.
00:15:19 So now we have in one additional file our "mta1.mtar". And the next thing would be to log in
to our Cloud Foundry environment.
00:15:31 The API endpoint is set in my case, I'm deploying to Cloud Foundry – there that's the API.
All that is also explained here on this page of the documentation, which is linked on this
slide as well.
00:15:49 So let's perform a "cf login"... So let's... see here...
00:16:18 So now I'm logged in. You see my organization and you see my space – that is the Cloud
Foundry terminology – and we have that there.
00:16:28 So next let's do a "cf deploy mta1.mtar". And with that, we are... give me a second...
"mta1.mtar"...
00:16:49 and... ah, sorry... "mtar", that's the code. So now our archive of our MTA project gets
deployed to our Cloud Foundry environment.
00:17:07 And automatically... when that's deployed... so the deployment is not only a Cloud Foundry
push, but much more which is happening there in the background.
00:17:18 So when we now have... ah it's already there. So currently, during the deployment, first our
application is created here, and then it's also started automatically.
00:17:31 So here, some information. You can have multiple instances of a service in Cloud Foundry,
00:17:39 and in the Neo environment, you used Java compute units of different sizes to put your
applications on. In Cloud Foundry, it works a bit differently.
00:17:51 I would say it's easier because you're defining memory – so RAM – for your application, and
depending on the RAM, the service could handle a different load.
00:18:01 And in my case, the default setting is 256 MB of RAM, which is much too much for that
simple application. In the command line, we also see the process has finished,
00:18:18 and our application here is available, we can click on it, and then our SAPUI5 application
loads up – the title is "Hello World!"
00:18:28 That's actually what we wanted to achieve, so let's go back to the slides. We've now
completed all our three steps.
00:18:37 That is just optional, if you also want to use the command line tools, if you are interested in
that. Some links for further reading – most importantly, getting started,
00:18:47 some more information on Cloud Foundry applications and the SAP Web IDE, the multi-
cloud version, and again, also the links for the additional tools.
00:18:57 So what did we do in this unit? We recapped a bit what Cloud Foundry is, why we are doing
it, what we are using it for, and what some of the benefits are.
00:19:08 We got to experience and learned a bit about the SAP Web IDE multi-cloud version and
built our first MTA project with that. We also took our first steps in the Cloud Foundry
environment
00:19:25 where we deployed our first application, which was a simple HelloWorld SAPUI5
application. With that, thanks a lot and see you in the next unit.

21
Week 2 Unit 6

00:00:06 Hello and welcome to the openSAP course "SAP Cloud Platform Essentials" – Week 2, Unit
6, where we will continue with the topic of the previous units, so our Cloud Foundry
applications.
00:00:19 Now we will go beyond just front-end applications into full-stack applications. And for full-
stack applications, we recommend the XS advanced programming model as one of the
programming models that you can use.
00:00:32 The XS advanced programming model usually means that you use Cloud Foundry as a
runtime, and an SAP HANA database as your persistence.
00:00:44 The XS advanced programming model is available in the cloud in our Cloud Foundry
environment, and it's also available on premise with SAP HANA and SAP HANA XS,
advanced there.
00:01:00 So the XS advanced runtime is modeled on Cloud Foundry, on the Cloud Foundry platform.
It implements the same APIs, so the support is also for the programming model, for different
runtime containers which are polyglots,
00:01:15 so for polyglot runtime containers, meaning the runtime containers can be for different
programming languages, like Java, Node.js, just an HTML5 application, and so on.
00:01:26 For container separation in HANA, we use HDI containers. We use User Account and
Authentication (UAA) for federated authentication which then connects to any connected
IDP.
00:01:44 And you can also run XSJS code, which you have perhaps written for XS classic for some
older applications. You can run that via the compatible layer in Node.js as well so that you
don't have to rewrite all that code.
00:02:01 Also for the programming model and the whole integration – it integrates with Git. You can
also use Eclipse for Java development there.
00:02:08 For example, you can also use the SAP Web IDE in the cloud, and also the SAP Web IDE
for HANA version which is delivered together with HANA.
00:02:17 So a lot of tools, and you can also use external tools and then use our command line for
deployment. Comparing on premise and cloud: On the left side you see on premise, on the
right side you see the cloud.
00:02:30 That's what's available in our Cloud Foundry environment, on the right side. As a runtime on
premise we have the XS advanced runtime, which implements the same APIs as the Cloud
Foundry runtime.
00:02:41 The difference is that if you do an API call, or if you use the command line for a call, in
Cloud Foundry it would be "cf" and then some command, like "apps" or "api",
00:02:53 or on the left side, with the XS advanced runtime, it would be "xs" and then your command.
On premise – you have your HANA service and the infrastructure it runs on,
00:03:04 and on the right side you have cloud infrastructure as a service. Currently, that's usually one
of our partners: Amazon Web Services, Microsoft Azure, and Google Cloud Platform.
00:03:15 So Amazon Web Services – there we are productive, Microsoft Azure – there we are in
beta, Google Cloud Platform we've just shown as a pilot at Sapphire this year, in May 2017,

00:03:26 and for both of the last two, we are now also working on making them available
productively. We have separation – our apps are separated in app containers so that one
app doesn't influence another app.
00:03:39 In terms of persistence, we also have HDI containers for separation there as well. Backing
services are from the 12-factor principles.
00:03:49 Any service that you use to back your application can be, for example, UAA, which is used
for security, the Job Scheduler, which you can use for long- running batch processes,

00:04:02 and in the cloud we have a lot more backing services available, so besides HANA as
persistence, which we have on premise and in the cloud,

22
00:04:09 we also have MongoDB, PostgreSQL, and whatever other services are available in the
cloud. And then also in the cloud we have many more additional platform services,
00:04:19 like our machine learning services, like our services like portal, integration, and so on. So
we will be using SHINE.
00:04:32 Perhaps you might know the SHINE application from one of the previous courses, or from
some HANA courses. SHINE stands for SAP HANA Interactive Education, and we will use
the XS advanced version of SHINE,
00:04:47 and with some changed configurations so that we can directly deploy it to Cloud Foundry.
Also, here it's the same coding if you use it on premise or in the cloud – just a slightly
different configuration.
00:05:00 Just download the PDF at the bottom of this slide, then click on the link, and you will be
taken to a blog post which I recently published where exactly this tutorial is described.
00:05:12 So first you can also read a bit about "multi- target" – so SHINE here is also a multi-target
application (MTA) project. You can read about the different parts of SHINE, about the
architecture of SHINE which is used here.
00:05:26 So we have two entry points which are possible: the SHINE launchpad which we've had
quite some time in SHINE, and then we also have the new SAP Fiori launchpad integrated
here for SHINE.
00:05:38 So we can test both front ends. The code is also available here – you can click on this link
and then you are taken here to our GitHub.
00:05:52 It's hosted here and the project is "hana-shine- xsa" – XSA the programming model. The
branch will be the "shine-cf" branch, and there you'll find the code which we are using in this
example here.
00:06:10 And there you'll find all the same information which we have here in the blog post. Here, the
MTAR Builder is also used for building the application, so via the command line here,
00:06:25 So you can do a Git clone of the code for SHINE for Cloud Foundry, or you just download
the ZIP file of that branch,
00:06:35 and then you go here to the SAP Support Portal, log in with your S-user for a customer or
partner, and then you can download the MTAR Builder. Here again the prerequisites.
00:06:46 As in the last unit, I have also included some further information as an additional slide if you
want to install all the command line tools which you might want to use together with our
Cloud Foundry environment.
00:07:02 So here, you just download that stuff and set it up, or better still, just check whether you
already have it. Here, for Git you have two options: You can just use the Git client via the
command line, or you can also use GitHub Desktop.
00:07:16 Both are possible. Apache Maven, Node.js, NPM... that's all fine.
00:07:21 Then here, the command line, the CF CLI, our additional plugins. We've already covered all
that here so we also have the links in our documentation.
00:07:33 And from the GitHub and the blog post, also that stuff is linked. So we have the instructions
on how to install the command line interface, which is then here.
00:07:43 We have here, on our tools page, all the plugins. All the instructions are provided here as
well, then the information on how to log in,
00:07:53 and the information on how to use and set up the MTA Archive Builder. and all its
prerequisites like Node.js, Grunt, Maven, and that kind of thing.
00:08:03 So let's go down here, and this is the interesting part – building the source code – which we
will do now, and then deploy it. You need the "shine-cf" branch – just download it or clone it.

00:08:18 So here, download or clone it... and... then we are here.


00:08:26 Also, you need here the MTAR Builder, so what I did was just download it to show you it
directly here as the easiest way.
00:08:38 Then here, I also downloaded the MTAR Builder – I'm just putting that in. And then let's
check what our next step is – here, we can log on to our Cloud Foundry environment.

23
00:08:51 Personally, I will be deploying this to Frankfurt so this will be my API. And the Job Scheduler
service that is used in SHINE – one of the services used there –
00:09:02 is currently only available on our productive landscape, so the Frankfurt one hosted on
AWS, or the Virginia one in US East, also hosted on AWS,
00:09:14 Microsoft Azure, as a beta, we currently don't have the Job Scheduler there, so please use
one of the productive regions, and there just your trial account.
00:09:26 Yeah, then here, if you use an enterprise or trial account, you need to put in a different
name for the HANA service, because one is the shared HANA which we have on trial, and
in the productive accounts we have dedicated HANA databases.
00:09:42 "hanatrial" is the default which is put in, and I'm using a trial account, so I just leave that.
Also, here I can change the Cloud Foundry API endpoint,
00:09:53 so if I'm just loading all that code into my Visual Studio, I'm here, and with the Visual Studio
code here, in my "mta.yaml" file I can do the configuration which might be necessary,

00:10:11 so all the steps are described here. And also... yeah, here, that's for the "mta.yaml" line
178... I have it here... it's already "eu10", which is the right one for me.
00:10:28 If you are in the US, you will probably deploy to the Virginia one, which would then be
"us10", so you just need to change "eu" to "us". The org and space name – for me, my org
and space doesn't contain any special characters, so I can leave it as it is.
00:10:45 It's just if you had an "@" or something like that there, the deploy service currently can't
handle that, so you would need to change that in the "xs- security.json" file.
00:10:58 So here is the "xs-security.json" file, and that currently takes my org and then my space,
and here you would need to change that to your org and space name without special
characters if you have any of those in.
00:11:17 And then I can do my build, so the command would be... first I need to get into that folder.
Okay, that's in. I already copied my "mta.jar" file in, so it would be "java -jar mta.jar",
00:11:41 and then I have – what was it – "--build- target=CF", and then I put in my – what should it be
called – "--mtar-shine-cf.mtar",
00:12:05 and then the "build" command. So that's it.
00:12:10 Now the MTAR Builder builds my MTA project, which I can then deploy. In the deployment,
there are certain quotas which are necessary so that you can deploy it.
00:12:27 Currently looking in my account, the account is completely empty. I don't have any running
applications, and I have put all my quota into that one account, all my trial quota.
00:12:40 So here, if you go to global account level – sorry, that's here – and then you go to "Quota
Management", and there you see your quota. So I put my application runtime here, I put my
HANA trial there,
00:12:56 I also put the Job Scheduler, so everything is available in that account. And that's definitely
enough to deploy SHINE.
00:13:04 It's just if you already have some applications running in your trial account for Cloud
Foundry here, then there might not be enough left, but in my case, as I don't have anything
running, that's fine.
00:13:21 So the command is "cf deploy shine-cf.mtar", but before that's done, we need to log in to
our Cloud Foundry instance, so I'm just checking the "cf api".
00:13:36 And if you were working behind a proxy, you would have to add that in your HTTP proxy
settings after installing the Cloud Foundry Command Line Interface.
00:13:47 That's fine, so I'm performing a "cf login", authenticating with my e-mail address... and my
password.
00:14:11 So I'm now logged in and now I can perform my "cf deploy shine-cf.mtar". And... let's deploy
that.
00:14:31 So now, while my deployment is already working, let's see the deployment overall. Usually,
it takes a couple of minutes because here with SHINE, quite a lot of different parts have to
be deployed.

24
00:14:45 So the SHINE application here consists of... or you can use two URLs to access the
application: SHINE Web – that's the SHINE launchpad which we've had in SHINE for a
couple of years,
00:14:59 and then the new SAP Fiori launchpad, now also in SHINE. Here is also the command to
undeploy it.
00:15:06 So, as deployment takes a couple of minutes, I've already deployed it in the second trial
account, and there you now see those are all the services running in SHINE.
00:15:18 And here, if I go to the top again, here to the architecture and its description, here we see all
the services which we have in SHINE.
00:15:28 We have our core database part which contains, if we look at that in... the Studio, sorry,
here... we have here our core database part, which contains all the procedures, synonyms,
and so
00:15:47 Here we also have our JavaScript core, so our back end, we have our front ends, so that's
all in there. Here, we have the description, and also when the deployment is done,
00:16:04 you see the individual services directly here. When you go to "Services" and then "Service
Instances", you can also see all the service instances which have been created.
00:16:18 So here, service instances for the Portal Service, for the Job Scheduler here, for HANA, for
XSUAA – so all that has been created and is used by different services.
00:16:32 You will also see the routes – they have also all been created automatically during this
deployment. They are all described in the deployment descriptor, so during the deployment,
all that is done automatically.
00:16:47 Now if you would like to launch the application, the easiest way would be to just go here to
the "shine-web" or the "site-web", depending on what you want to open,
00:16:57 then just open the route here, and I've done that already, so that's the SHINE dashboard.
The second one – here we have the SAP Fiori launchpad for SHINE.
00:17:09 So it's the same subapplications, I would say, but it just looks a bit different. Also, when we
open that, for example here, "Sales Dashboard"... so let's open that one...
00:17:27 Let's see... So while that opens, we can also log in here.
00:17:41 There it's already working. Here we have our Sales Dashboard, so that's one...
00:17:47 The SHINE application is a simple procurement application, so you see a Sales Dashboard.
And you can also have procurement lists where you can reorder items again and where
things are sold.
00:18:03 Here we have some of the HANA capabilities which are integrated in the front ends, which
take the back-end data through from the database. Yeah, so with this I hope you have
learned a bit about what a full-stack application looks like:
00:18:26 the front-end part, the back-end part, and the database part. You can package it all in an
MTA project and you can then deploy that MTA project.
00:18:37 And during that deployment, thousands of steps are executed, creating your service
instances, deploying your services, staging your services, starting your services, and so on
and so forth,
00:18:50 so that your full solution then gets deployed with one command. With that, some links for
further reading, also again the link to the blog post, and some additional information.
00:19:05 So what have we covered in this unit? We began where we left off in the last unit.
00:19:11 In the last unit, we just did a front-end application for our Cloud Foundry environment. Now,
we did a full-stack application.
00:19:17 We didn't develop it on our own, but we just took the Cloud Foundry version for SHINE
using the XS advanced programming model, and we deployed this to our own Cloud
Foundry instance.
00:19:31 With that, thanks a lot and see you in the next unit.

25
www.sap.com

© 2017 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
http://global12.sap.com/corporate-en/legal/copyright/index.epx 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 warranty.
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 SE’s 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.

You might also like