You are on page 1of 21

openSAP

Extending SAP S/4HANA with SAP HANA Cloud


Platform
Week 4 Unit 1

00:00:14 Hello, and welcome to the openSAP course "Extending SAP S/4HANA with the SAP HANA
Cloud Platform". My name is Thomas and I'm starting Week 4 with you, which will go for a
new type of extension.
00:00:25 Again, in Week 4, Unit 1 we will try to understand the challenge we want to solve with this
extension. Week 4 will be about an analytical extension.
00:00:34 And we will now understand why we require such an extension and how to build this. Let's
remember again Peter Procurement.
00:00:43 Peter Procurement, we learned in the first week, has a challenge. He's a procurement
manager and he needs to reduce the variety of IT equipment to reduce the cost for IT
support.
00:00:53 So he wants to get rid of certain product catalog entries and he wants to reduce the IT
equipment to equipment that is easy to use and liked by the employees.
00:01:05 So far we have provided him with extensions that allow him to find this out by using the
rating. So he can filter by rating, find out what employees are saying about equipment,
00:01:14 he can discuss whether a certain piece of equipment will be dropped. This is it so far.
00:01:19 But there are more criteria to actually understand why such equipment might be a candidate
to be removed. And this is the order of sales, so... the number of sales.
00:01:29 So if customers or employees are not buying the product and the equipment, you can
remove them from the catalog. If there's only rarely used equipment with one or two copies
around, why actually offer that?
00:01:41 So the challenge is: How can we identify equipment that is only rarely used and rarely
ordered, and therefore can be removed from the catalog?
00:01:51 The assumption of the implementation partner here is that there should be something like a
sales order history that we can look at. And if we look at this history, we can see which
equipment is rarely ordered.
00:02:03 And this is an indicator that this equipment can be dropped from the procurement catalog.
So the challenge is: How can we give a good UI or a good extension to find out about this?
00:02:14 This cannot be done by a normal API call looking for product data, this is kind of historical
data that we need to analyze.
00:02:21 It's calling for an analytical extension. And this is what we will do in this week.
00:02:27 We will create a brand new analytical extension, so we will no longer extend the existing
"Manage Products" application but create our completely first new extension.
00:02:38 We will also change the pattern. So if you remember, in the previous sessions we spoke
about the point-to-point pattern.
00:02:45 We always called APIs in the back end and consumed these. This will now change.
00:02:50 For analytical cases, we want to switch to the data replication pattern, and this basically
works like this.
00:02:57 We have the system that holds the data, in this case the SAP S/4HANA. And that is
equipped with some kind of replication solution.
00:03:05 But for the purpose of this course, we are assuming an SAP Landscape Transformation
Replication Server. This is a solution that's quite commonly used by SAP NetWeaver
customers,
00:03:15 and so we assume that it may even be there for you. However, you can use other
replication solutions as well.
00:03:22 Then we need a database to put the data on. This will be in the cloud.
00:03:26 So I will create a HANA database in the cloud. And using the SAP HANA Cloud Platform,
cloud connector, we will replicate the data using the on-premise solution to this database.
00:03:37 The on-premise solution will not even understand that it is replicating the data to the cloud.
So it means that any replication solution could be used here as long as it is able to write to a
HANA database.
00:03:50 Finally, we will create a custom UI with an analytical view that shows the data about sales
orders and quantities. And we will do this, on the one hand, custom with SAPUI5,
00:04:04 but on the other hand also with a standard solution, SAP BusinessObjects Cloud. So in both
cases we will end up with a dashboard that will give us the desired information.
00:04:16 The steps to go through again are going to be the Prepare, Integrate, and Extend phase. So
in the preparation phase, this time we don't need to care for APIs but for data models and
tables and views, and all this.
00:04:29 We need to find out where the data that we require is hiding, and how to get it out of the
system. In the Integrate phase, this is exactly the point where we will set up the replication.

00:04:39 So we will set up the replication tools to get the data out of the system and bring it to the
cloud. And we will prepare the cloud for receiving the data.
00:04:48 So we will set up a HANA there, we will set up the cloud connector that will accept the data
and write it to HANA. And this we will also do via the cockpit.
00:04:56 In the end, the data will sit in the cloud and will be ready for consumption in the Extend
phase. In the Extend phase, it's again a normal development project without caring where
the data actually comes from.
00:05:09 So the developer has the data to hand and he can consume it. And, as a HANA modeler, he
can create HANA analytical views.
00:05:18 And as a Web front-end developer, he can create a UI on top of that. So first of all the
involved roles are again the SAP Basis administrator,
00:05:28 who needs to help us to understand whether this system has any means to replicate data.
So is there, for instance, an SLT server already in it, or where is it, and is everything
accessible and can we get our hands on the tables?
00:05:43 The SAP application expert is the colleague that will tell us which tables to actually look for.
He should understand the data model and the structure for this application, and this can be
quite complex in an SAP universe.
00:05:55 So this person should help us to understand which data to get. The HANA Cloud Platform or
SAP HANA administrator will prepare the cloud.
00:06:04 So it can be one person or it can be two people that are taking care of setting up HANA in
the cloud and making it ready for the replication job.
00:06:13 And set up the cloud connector so that it can receive and send the data to the cloud. The
HANA modeler, in the end, will then model its views in the HANA, like it is used in a normal
HANA environment.
00:06:25 So it will not deviate too much from the on-premise HANA. And on top of this, the developer
will again create his application.
00:06:33 So again we have the normal use case that the developer will receive the existing APIs or
data or structures in the Web IDE, and can simply consume it no matter where it comes
from.
00:06:47 This means that this week we will take on the challenge of identifying IT equipment that is
rarely ordered by going through the sales order history.
00:06:55 For this, we will use an analytical extension, and we will do this with the data replication
pattern. We will use this pattern to create a custom analytical application or to connect SAP
BusinessObjects Cloud.

2
00:07:09 So in both cases, we will end up with a dashboard that can give us the desired answers.
And again, various systems, tools, and roles will be involved throughout the whole week.
00:07:18 Thank you.

3
Week 4 Unit 2

00:00:00 Intro Hello, and welcome to the openSAP course


"Extending SAP S/4HANA with the SAP HANA
Cloud Platform".
00:00:20 I'm Thomas, and in Week 4 I will go with you on
this journey to an analytical extension. In Week 4, Unit 2, we will now prepare the SAP
HANA for the replication.
00:00:31 So we are in Week 4, "Analytical Extension", and in Unit 2, to prepare the SAP HANA that
we require to replicate our data to. Actually this means we are jumping over the
Prepare step for now.
00:00:44 So because we are not taking care of the back
end yet, we are just preparing the cloud for the
back end. And for this, the SAP HANA needs to be created and receive certain users with
certain permissions
00:00:54 that are then used by this replication solution. This can be done completely by the HANA
Cloud Platform and SAP HANA administrator in
the cloud.
00:01:04 These need to set up the HANA and the
respective users. And we will do this now.
00:01:09 For this I will wear my helmet again to be
protected. So let's see.
00:01:17 This is fully browser based, so we will again go
to our browser. I will again use Google Chrome.
00:01:23 And here we should have the links for the
account. Open your trial account.
00:01:32 And in this trial account, we can now create
ourselves a HANA. This is under the persistence category, you will
see here "Persistence".
00:01:42 And there is the "Database & Schemas" entry
you will choose that. And here we can create ourselves a shared
HANA,
00:01:50 meaning you will not get a HANA box of your
own but you will get a share of it. But it's good enough for this purpose.
00:01:57 So we go for "New", we give it the name "hana", and we use the "HANA MDC",
00:02:04 so not "HANA (<shared>)", but rather HANA
MDC. because this is a full slice of HANA, so to
speak.
00:02:11 We will get a system user, and for this we can
give a password. So let's give a password that we require later to
log on.
00:02:21 We can leave the other settings like this. Now the HANA will be created this may take
some time.
00:02:31 You see here that in the "Events" log you will be
informed about the progress of creating this
HANA for you. Okay, so time really flies.
00:02:53 We now have a database. You have seen it takes around five minutes to
create such a database.
00:02:59 And we can now use it. So if you go back to the HANA in the overview
here... you will see that the HANA has started.
00:03:12 Keep in mind that it's only shared for a certain
time. This means after roughly 12 hours we will
always stop it.
00:03:19 We will not delete it, but we will stop it. And if you haven't started it for several days, we
will also delete it to save resources.

4
00:03:27 Meaning that for the purpose of this course, you
need to take care before each unit that you start
the HANA again if it has stopped. This is very important.
00:03:37 So now we need to care for two systems, the ABAP system needs to be started and the
HANA system needs to be started.
00:03:43 So the next step after having this HANA is to log
in and to create the user that should finally
actually do some work. It should not be the system user that's not
recommended.
00:03:53 For this, you can go to the SAP HANA cockpit. So let's open this cockpit.
00:04:00 And you can access it with this user that you
have just created. So it is the "SYSTEM" user.
00:04:06 And it has the password. And this system user is now automatically
equipped with the roles that are required to open
this.
00:04:15 So you will get these messages, these
information messages, that you will get the
required roles. Among these roles is the right to actually trade
users.
00:04:26 And here we will find a tile, depending on your
screen layout, that's called "Manage Roles and
Users". Let's open that it will open the security cockpit
of HANA.
00:04:39 We will now see all the users and roles. We will create a new user.
00:04:44 We will do this here by "New", "User". And we will give it a name.
00:04:54 Please use the same name because it affects
schema names and all the others. So we'll use the name "ACME".
00:05:01 Some initial password that this user needs to
reset later. And this user requires certain privileges and
roles so that he can do his work.
00:05:12 So let's go for the roles. First of all, he should develop something, so we
go for the "Developer" role.
00:05:21 Then modeling is a desired thing, so we go for
"MODELING". In "System Privileges", he requires roles for the
replication tool.
00:05:36 This replication tool will create user schemas
and roles in the system and will do this on
behalf of this user. So for this user we need to have for this reason
the "CREATE SCHEMA" system privilege.
00:05:55 Then we need for the user management, the "USER ADMIN" privilege. Then we need the
"ROLE ADMIN" privilege.
00:06:08 So these are all things that the replication tool
will require. And then, finally, we will also create application
artifacts here,
00:06:20 and we will do this in the HANA XS
programming environment. For this, we need "Package Privileges".
00:06:25 As there is nothing yet in this HANA, we start in
the root folder. And for this, we need to give this user the right
to write to this root folder.
00:06:34 So again, we press "+" here, and we take this ".REPO_PACKAGE_ROOT",
00:06:40 basically meaning that you can write in the root
of the tree. Say, you can do anything, go for "ALL".
00:06:51 And then we save it here with this button. Ah, the password is not good so I need to use
another one...
00:07:04 Thanks for checking. Okay.

5
00:07:08 Let's review this again. We have a new user that has an initial
password.
00:07:13 He has the "MODELING" role. The "PUBLIC" role is coming from the system.
00:07:18 We have given him the "Developer" role as well. We gave him some system privileges the
"CREATE SCHEMA", the "USER ADMIN", and
the "ROLE ADMIN",
00:07:27 and a package privilege to access the "Root
Package" of the system. So now we can start working with this user.
00:07:37 The user itself will use a different tool. He will use the HANA studio, and we will use
this for that.
00:07:42 You remember that we already actually installed
this in the first week. So we can now fire up our Eclipse and connect
it to this fresh HANA system...
00:07:58 What we have so far here we only see the
Java and the ABAP part. The HANA part is not yet visible, so let's go for
this button here... and look for HANA.
00:08:12 And there we have the "SAP HANA Development" tools. These are good enough for us for
now,
00:08:17 so we take them. And now we have SAP HANA Development here
in this list.
00:08:25 We can now add a HANA system, so let's do
this. Here is the "Systems" tab... we go for the
"Systems" tab.
00:08:32 Ah, I don't want a master password. Now here in this dropdown you can add a cloud
system.
00:08:42 So I will do this. And now it will again ask this normal information that we already know:
00:08:48 What is the account, the user? Where do we
find this? So again in the browser... in the cockpit... in the
overview of the account...
00:09:01 So let's go here. You also see the name here, but let's go for the overview.
00:09:10 So I go here in the overview. You will see the account name here below.
00:09:17 I'm copying that... and bringing it to the Eclipse
tool. The username is easy to derive from this kind of
account in trial, but let's still do it properly,
00:09:34 as we maybe do it in factory accounts. This can be found with this user menu.
00:09:40 We have done this before. And now the password of the user this is the cloud password,
not the database password.
00:09:55 Now it will go to the cloud and look what's there. We have some schema in it.
00:09:59 But also a database, we want to use our
database. And it's the HANA database that we have just
created.
00:10:06 And now we need to use the database user. So it's the ACME user with this initial
password.
00:10:16 We will not save this password because we will
change it right now anyway. We will see.
00:10:21 We connect. It will immediately ask us what the old password
is, and then ask for a new one.
00:10:32 So the administrator does not know the
password of the modeler or developer here. Okay.
00:10:40 And now the system is added. We have it now in our Eclipse.
00:10:44 You see the catalog with all the tables and
schemas and users, and all this content. With this we can now continue to actually
connect a replication tool to this HANA.
00:10:58 Thank you.

6
Week 4 Unit 3

00:00:12 Hello, and welcome to the openSAP course "Extending SAP S/4HANA with the SAP HANA
Cloud Platform". I'm Thomas, and in Week 4 I'm creating an analytical extension with you.

00:00:22 In Week 4, Unit 3, we will finally replicate back- end data to the cloud using the SAP
Landscape Transformation Replication Server. So we are on our path towards the analytical
extension, Week 4.
00:00:34 And in unit 3, we will finally bring the data to the SAP HANA that we have set up in the
previous unit. For this, we will go through these steps.
00:00:43 So we will go to the preparation phase where we will need to understand what the data we
require how to bring the data to the system.
00:00:50 Where is the system? Where are the tables? What's the structure? And so on. In the
integration phase, we will then finally use a replication tool to connect to the cloud
00:01:01 using the SAP HANA Cloud Platform, cloud connector, and to bring the data to the cloud.
00:01:06 This is what we will do in this unit. The roles we will require for that are the SAP Basis
administrator who needs to help us to understand
00:01:14 whether the replication tool is available. So how can we get the data out of the systems?
What's the tool? Are there certain considerations to access tables? And so on.
00:01:23 The SAP application expert would help us to understand which tables we actually require.
So what kind of tables are there?
00:01:32 What is the data structure? What is the data? And how do we get it? The HANA Cloud
Platform administrator and the SAP HANA administrator will finally set up the cloud
connector
00:01:43 so that you can write the data to the cloud. Now let's go for some insight into the data model
because it's not super trivial.
00:01:52 So this is probably something the application expert will tell us. If I have to question how
often a product was sold and how it was rated,
00:02:01 and identify a product to understand its ID, the category, and the name, where do I find this
data?
00:02:07 In our application, it's like this. There's always a table with the prefix "SNWD" and then small
letters, like "SO" in this case.
00:02:19 And the starting table here is the sales order table (SO). And this contains all orders for all
products.
00:02:27 Now each order has sales order items (SOI) that describe what is actually ordered. But
there's no quantity yet.
00:02:37 The quantity is in a separate table, the SO_SL table, that contains the quantity for each
item.
00:02:43 So if you put all these orders together, you understand how much has been ordered for
which item, or how much has been ordered in total.
00:02:51 For this, we need aggregates. But we have no information about the item that is ordered.
00:02:56 For this, we need to understand the master data that is given by the product data table, the
PD table, that gives us product ID, price, and category.
00:03:06 And on top, you also want to have a name. But the name is not in the product table because
you want to translate it.
00:03:12 So there's a text table that gives us a product name that's translated. And finally, there's a
table that gives us a rating for this product.
00:03:20 So we need these six tables in combination to answer our query about how often a product
was sold and how it was rated.
00:03:28 Now let's bring this data to the cloud. This is a very dangerous endeavor so I will wear my
hard hat again.

7
00:03:36 And before we get started, we need to make sure that all systems we require have actually
started. Mind you, all systems that you get for this course are either time shared or on your
local machine,
00:03:46 so you need to make sure that they are running. So for instance, for the HANA that we want
to use, it is in the cloud and it may be stopped if you haven't worked on it for some time.

00:03:56 So please go to the cloud cockpit. And in the cloud cockpit, check if it's actually running.
00:04:04 So you need to do this each time you try to access the HANA because it will be stopped
every 12 hours. You go to this "Persistence", "Database & Schemas",
00:04:16 and in here you will find information about this HANA. So here is the "hana", you can click
on it,
00:04:22 and you will see whether it has actually started or not. So it has started this is very nice.
00:04:29 The next thing we need to do is make sure our back-end system is up and running. So the
simple test is if you can open the Fiori launchpad.
00:04:37 So in the browser you can open the link we had before. Do not open the launchpad of the
cloud but on the S/4HANA.
00:04:46 And you see it's coming up, so the system seems to be fine. Just in case you want to know
more, you can also go to VirtualBox,
00:04:54 and check this in VirtualBox. So you see here the state whether it's "Running".
00:05:00 And if you log in, you can see the state of the processes. You find out with this command
that we have used several times.
00:05:11 So everything is fine. Now what I recommend to you while we are already in VirtualBox is to
take a snapshot right
00:05:18 to be sure you can return back if something goes wrong with the replication setup. So we
will go to "Machine", "Take Snapshot",
00:05:28 and call this snapshot "Before Replication". And we will create that.
00:05:39 Now we know that this system can always be returned to this step. Good, so we are ready,
all systems are there.
00:05:48 Now let's connect the tools to the systems. Let's close these.
00:05:52 For this, we need our Eclipse that we have set Eclipse has the tooling for HANA but also for
ABAP in it.
00:06:00 So we can use this to do this lesson. This Eclipse comes up.
00:06:07 We start in "SAP HANA Development". This is where my Eclipse starts up.
00:06:11 Why I still have the ABAP system from the last lesson. I will start it.
00:06:19 There may be a firewall alert. And it will connect.
00:06:25 So here you see the content of the system. So you see there are only a few schemas in it.

00:06:33 Now let's set up the replication job. For this, we will go to the ABAP... here....
00:06:40 and run an ABAP transaction. SAP Landscape Transformation Server is an ABAP
transaction.
00:06:47 So if you run here... this one... you need to log in first... the password is "appliance"...
00:06:59 and now you can choose a transaction. Look for the transaction "LTRC".
00:07:05 This is what you want. And this transaction allows us to set up replication jobs.
00:07:15 So what you see here is there's already a replication job in here. Let's have a quick look.
00:07:21 Here you can choose this and have a look. But it's no surprise it's just demo, it's empty,
it's of no use to us.
00:07:30 So we will turn back... and create a new one. So creating a new one happens with this
button, so "Create Configuration".
00:07:40 A screen comes up. And now we need to give some data.
00:07:44 The configuration name is chosen by us. We will name it here "SLT_REPLICATION".

8
00:07:50 And it is important that it is named like this for this unit because this will also be the name of
the schema. Then we need to choose where the data is coming from.
00:08:01 We should choose an "RFC Connection", and there's already one for this system. So there's
always a default one, the NPL.
00:08:10 If there is no such destination, then the Basis administrator should probably help you out.
We also want to allow multiple usage because this means that multiple jobs can access this.

00:08:22 So if you don't have that, now the destination is more or less used. It cannot be shared with
another job.
00:08:29 You press "Next". The next thing is the target.
00:08:34 The target is a database connection, it goes to HANA. We have it in the cloud.
00:08:38 The administrator is this user we created. And it has the password we used.
00:08:45 Now what's the name of the host? Funnily enough, the host is "localhost",
00:08:51 because what happens now is that the cloud connector that is running on the same machine
as SAP NetWeaver is actually acting as the proxy to the database.
00:09:00 So if we talk to this cloud connector, it will behave as a database and the SAP Landscape
Transformation Replication Server
00:09:08 will think it's talking to a HANA. This is why we will actually create an instance number here
that we can talk to.
00:09:18 But now I've spoken about the cloud connector. But have we set up the cloud connector?
No, it's not there yet.
00:09:24 So what we need to do... We need to go to the browser and open the cloud connector...
00:09:34 Open it... It will ask for a password maybe if you have logged in already or not.
00:09:40 And now we will enable this local host and instance communication of SLT, we will create a
service channel.
00:09:49 We will add a service channel here to a HANA database. The instance name is "hana", this
is how we name it in the cloud.
00:10:01 The number is "00". Does this look familiar?
00:10:06 So now we are connecting to a HANA in the database, and say: "With this port if you ask
me cloud connector, I will answer as the HANA in the cloud."
00:10:18 It means if you now tell the Landscape Transformation Server to try this... it will actually find
the HANA, so it's satisfied.
00:10:31 Now the next settings we need to do is we need to make some final changes like how the
load should happen, how many jobs we want to invest.
00:10:39 Be careful with these settings. They will use a lot of resources.
00:10:43 If they are too high, your system will become unresponsive. So I choose here "4", "4", and
"1", to let's say balance the performance of the load a bit
00:10:53 but also keep a bit of resources for my system. And then go for "Next"...
00:10:59 and then we "Create" that job. Good, the job will be created.
00:11:08 Stuff will be compiled. Now the job is there.
00:11:15 Let's have a look. And you see that there are already the three tables that it will initially load,
its administrative tables.
00:11:22 Let's find out where they end. So if we go again to the ABAP development...
00:11:31 and we choose here the system we have... we can now do a refresh...
00:11:40 and you see that there is suddenly a schema "SLT_REPLICATION". And in this we have
"Tables".
00:11:49 And it's actually these tables that we just had created by replication. Look here.
00:11:57 Okay, but our data tables are not in there. So we need to add them.
00:12:02 Good, how do you do this? There is the "Data Provisioning" button that we will use.

9
00:12:08 And this is hardcore. So we really need to know the name by heart to enter it here.
00:12:14 So what we want to do with the table is we want to start a replication, so we choose this.
And then we enter all the tables we want, so "SNWD_PD" (products).
00:12:25 Okay, let's add it. Then we need these sales orders, "SNWD_SO".
00:12:37 Okay, we also want it to have the sales order items, so let's put "SNWD_SO_I". And always
make sure that it's set to "Start Replication".
00:12:53 Then we need to set up the table for the quantity... the list. We also add this.
00:13:04 And then we still have to add the texts. And finally, the review information.
00:13:17 So it's called "SNWD_REV_HEAD". So it was good that we had this slide to look at the data
model,
00:13:23 otherwise you would probably be a bit confused So... you see here that all this data is now
actually here in the table overview.
00:13:34 And it's scheduled for the initial load. So if I refresh... I will see that there is something
ongoing.
00:13:42 It will give me some information, whether the table is created, what it is actually doing. And
this will take a bit of time.
00:13:50 But let's observe what happens in this system. So now if we refresh, we can now access all
tables that are created.
00:13:58 Let's have a look at the HANA view... if there are tables. So let's refresh this.
00:14:09 Ah, look, there are tables. So now the tables are coming.
00:14:15 Now the next thing to understand is the data coming into it. So we can check this with the
"Data Transfer Monitor".
00:14:23 On the Data Transfer Monitor you will see what kind of data is currently loaded or in
progress to be transferred. So in the "Table Overview"... going back...
00:14:38 you will actually see the status whether the table is already there and ready for replication.
So if it says "Replication (Initial Load)" it means it's still in progress for the initial part.
00:14:50 If it says "Replication", it's already done, the data is there, and you are now simply
refreshing, doing the delta.
00:14:58 And look, if you see the "SNWD_PD" table, it is replicated. So we should find data in it.
00:15:05 Now let's do an exercise. I will go to the old transaction in the ABAP that everybody knows,
SE16,
00:15:15 and look at the original table. It will take a bit of time as the ABAP is now quite busy with
replicating...
00:15:31 Aha, there it is. And at the same time, I will open the table in the cloud as well.
00:15:48 So here is the "SNWD_PD" table. I will do a context click and open the content...
00:16:01 So what you see here is that you have 123 entries... so I'm scrolling up... Oh... I'm going a
bit out...
00:16:15 It's still loading, look loading the data. But it has 123 items.
00:16:24 If we go here and look for the same table.... we will also see this data.
00:16:37 And another nice trick to do this is actually if we go to the launchpad that we opened before,
you also see that it actually also speaks about 123 products.
00:16:49 So after the initial replication, we will now have in the ABAP our data that we can use for the
next analytical view. Okay, so now we see the data here, and we can have a look.
00:17:31 And we can even have it side by side. So if we take this tab here...
00:17:39 Ah, taking tabs is hard, it seems. Oh, I want to have it differently...
00:17:56 Okay... Okay, now we have it.
00:18:04 You see a side-by-side comparison of the data that is coming from the ABAP to the cloud.
That's it for now.
00:18:12 Next week we will start consuming this data. Thanks.

10
Week 4 Unit 4

00:00:12 Hello, and welcome to the openSAP course "Extending SAP S/4HANA with the SAP HANA
Cloud Platform". I'm Thomas, and in Week 4 I'm working on an analytical extension with
you.
00:00:23 In Week 4, Unit 4, we will create the first views and OData services in SAP HANA for this
analytical extension. So it's the fourth week analytical extension.
00:00:35 And it's the fourth unit, for the views in HANA. So far, we have set up the replications,
meaning that in the HANA we now have the data coming out of the back end.
00:00:48 There is now an ongoing replication job running that is checking if there is new data coming
and immediately pushing it to the cloud. So we can now start working on this data.

00:00:59 And the starting point is that we are in HANA itself, developing something like a view. And
we want to expose this as an OData service that we can then use for a UI.
00:01:09 The OData service will then again be exposed to the development tools via a destination
that we will create. This whole task is done by the modeler,
00:01:19 so meaning that he will now go to his standard SAP HANA development tools, and in there
will as usual create his views and test the views, and deliver the views,
00:01:29 and then will provide an OData service that we can consume as a Web UI developer. We
will do that now.
00:01:37 Let's be prepared for danger with our protective equipment. So the choice of the modeler is
the Eclipse tooling.
00:01:48 So let's go for this tooling... and in the Eclipse start working on the project on the HANA.
00:02:00 We have already created such a HANA. He's now looking on, as always there's a firewall.
00:02:07 So we see that the HANA box is here. We have the catalog.
00:02:14 In the catalog is the schema with the tables that we want to look at. See here all the tables
with the respective data.
00:02:24 Now to develop an application, we will create a repository, a local one. So here we will
choose this...
00:02:34 and say we want to have a default repository. So we click on this link...
00:02:39 and simply say: Use this system, standard workspace, "Finish". Okay, now we can start
developing.
00:02:49 Now this HANA is empty so far, there's nothing on it. So we will start to create a project and
it will be the first one from us,
00:02:56 and we will follow our package structure. So what we will do now is we will go to the "Project
Explorer" and create a new HANA project.
00:03:08 So we can do this with "File", "New", "XS Project". So we can give it a name.
00:03:18 I'll name it "s4ext". And we should maybe put it to some working
00:03:24 because we already have a Java and an ABAP working set, we should also have a HANA
working set. So I create a new one...
00:03:32 I'll call it "HANA". I'll finish that.
00:03:38 And here I want to assign my project too. The next thing is: Where should the data go?
00:03:45 It should be this repository that we have just created. And the package should be
"com.acme.s4ext".
00:03:56 So this is basically the prefix for our partner contribution, so to speak. This is the application,
and we want to add this project.
00:04:05 So we don't need that because again we will have the code for import. And we'll look at the
code that we have imported.
00:04:13 So we'll finish that. And obviously the working set is not yet there.

11
00:04:22 We actually need to make it visible. So if we go to this... "Select Working Set...",
00:04:29 You can make all three available. Press "OK".
00:04:36 And now we have three working sets: our ABAP system that we don't need anymore for
now, the HANA system, and the Java that we created in the first week.
00:04:46 Now let's go into this project. Here we have prepared something for import that we will look
at.
00:04:53 So you do a context click, you go for "Import...",
00:05:00 it is a "General" project. So you will see here "General" and "Archive File".
00:05:08 You will choose the file, thereby using "Browse". It is in my files... in "week 4 - Analytic"...
"unit 4"...
00:05:20 "Imports"... "hana"... "hana-analytic-service.zip". You open that and say we will simply
import this.
00:05:31 Now let's have a look at what we have. Apart from this wonderful "_MACOSX" folder that
we don't want and that I'll delete...
00:05:42 I have an "analytics" folder. And in this "analytics" folder we have a
"productcalculation.view" and an "xs".
00:05:52 Let's look at this view. First of all, let's activate everything so we can see whether it's
actually running.
00:05:59 So for this I choose this root and I choose the activate button here. It will now tell me about
all the objects that are not yet activated.
00:06:11 I will select all of these... maybe not that one... and "OK". So let's have a look at the view.
00:06:23 We can simply double click on it. And if we close this for a while here with this button, you
will see a nice tree of use.
00:06:39 Let's go roughly through them. Let's make it fullscreen so that we can see it nicely... and
make it a bit bigger.
00:06:50 So you remember maybe from previous units how we discussed the data model, now we
actually see it live in an action.
00:06:57 There is this table that we replicated, SalesOrderItem, and SalesOrderItemQuantity. And we
join it so that we have the quantity for each item.
00:07:07 There's the product data and the product name. And we join it so that we have the product
data including the real name.
00:07:16 Then we join that so that we have the quantity per product. And we put the rating on top.
00:07:25 And now as a result, we have the product name, the ID, and rating. We will aggregate this
on top so that we have a sum-up of all the quantities.
00:07:37 You can find more details if you open this sidebar... So there are various options here.
00:07:45 Ah, I don't want this. So if you open such a box here...
00:07:56 Make it a bit nicer... You see the full data model of this table and what we choose.
00:08:01 So obviously we used some keys to combine this. And here in this "SO_I" table, you see
that we have the key of what product is used.
00:08:11 And here in this "SO_SL" table, the quantity is in it. In the product table, we have a lot more.

00:08:22 But we also have the "PRODUCT_ID", the "CATEGORY", the "NAME_GUID", and
"CURRENCY_CODE" and "PRICE".
00:08:30 And in the texts that are here... we have a "LANGUAGE" and a "TEXT". So we can translate
certain texts into different languages.
00:08:45 Now let's not go through the whole model. You can click through that.
00:08:48 But let's look at the result that we have in the So if we look here at the end, what comes out
of it...
00:08:55 we have the ID, the quantity, the category, price, currency code, average rating, and the
name. And we have the name here as an attribute, as well as the category and the ID,
00:09:19 and the rest is a measure. Now we want to look at the data.

12
00:09:23 We can do so by choosing the "Data Preview" here... and "Open in Data Preview Editor".
00:09:34 And now we can play around a bit with the data. So we can save for a certain name,
00:09:41 product with a certain name, we have the quantities... Oops...
00:09:45 So... And there you go.
00:09:49 You have the quantities per product it's already a nice chart. You can also look at the raw
data.
00:09:58 And let's maybe sort it by quantity. And now let's do an experiment.
00:10:03 There's this notebook that has been sold 10 times so far. Now let's use the SAP S/4HANA
shop to buy it and see what happens here...
00:10:16 So I'll go to the browser... and open the ABAP launchpad, so to speak, of the SAP
S/4HANA.
00:10:24 So not the cloud launchpad. And here we have the shop application that we haven't used so
far.
00:10:31 So we shop now... and maybe we'll find this Benda notebook.
00:10:41 Here it is. So remember we had 10 times... so we add it to the cart...
00:10:52 It's been added here to the cart. Let's maybe buy it five times it's a nice notebook
apparently.
00:11:01 And now we can go to the checkout... and confirm that we want to buy this notebook five
times.
00:11:13 So we buy it now. Mind you, what we are using right now is a native application on SAP
S/4HANA.
00:11:20 So it's nothing to do with the cloud. Now if we go back to the cloud, let's see what has
happened.
00:11:28 So there's this Benda notebook. We can maybe refresh that...
00:11:34 and there we go. So a very short time after, we already see the order coming.
00:11:40 Now this is a very good thing. The next thing we require for a UI is actually to have this as a
service.
00:11:47 And the service is also there let's have a look at this... This service is doing nothing other
than saying: Give me exactly this calculation view as an OData service.
00:11:59 And we can execute it. So we execute it using this "Run As...",
00:12:05 and it asks for the user. And the user is, for instance, this ACME user.
00:12:13 And you now see we have an OData service that is doing exactly what we need. I will now
shortcut it.
00:12:20 So we say it's like the "Product Analytic OData"... And you see here that there is a
navigation in it for "product"... so let's go for "product"...
00:12:39 Okay, and there comes the data that we just saw in another format. The only thing left now
is to give the service to the developer.
00:12:48 And we will do this again with the destination. So what we will do is we will go to the cockpit.

00:12:54 So you should have the cockpit here. And in the cockpit, we will create a new destination
that will point to this SAP HANA with this service,
00:13:04 and will allow people to use it. So we go to "Connectivity" again, "Destinations".
00:13:13 And again, we have prepared something for import. So here you can go for "Import
Destination".
00:13:22 We go for the right week, which is "week 4 - Analytic"... "unit 4"... "Imports"...
"destinations"... properties we have the "hana- internet-http.properties" destination.
00:13:36 We open it and have a look. So what we see here is the following.
00:13:43 It is again an HTTP destination that is pointing to nowhere at the moment because we need
to point it exactly at this service that we have just created.

13
00:13:54 So the URL is flexible. And what we will do now is we will fetch exactly this... without the
product.
00:14:04 So this initial one. We will copy and fetch this...
00:14:11 and put it here. Now this will give the URL to the service.
00:14:17 Then it's "Internet" again, "BasicAuthentication", the user of the HANA system this is
ACME and its password.
00:14:27 We will use the default truststore for this, and save. Now with these settings here...
00:14:37 you see that we are telling the Web IDE that we can use this and that it can be used for
OData generation. So let's simply try that.
00:14:45 So let's now go to the Web IDE and see if it can use the data. So we go to a new tab, open
the Web IDE...
00:14:58 We can close that. We already have our existing application.
00:15:02 It's for test... create a new one... new from template. It's not important, we will not finalize it.

00:15:12 We will give it the test like "analytic" name... And let's assume we now want to continue.
00:15:25 We take the service URL. Besides Jam, we now also have this one.
00:15:31 And it gives us the data for the product. So you see here that our product data is in there.
00:15:40 So now we can hand this over to a developer who can develop the UI for this. Thank you.

14
Week 4 Unit 5

00:00:12 Hello, and welcome to the openSAP course "Extending SAP S/4HANA with the SAP HANA
Cloud Platform". I'm Thomas and we are approaching the end of Week 4 for the analytical
extension.
00:00:24 In this unit Unit 5 we will now finally create a custom SAP Fiori user interface for this. So
we are in the week for the analytical extension, and we are in Unit 5 to create an SAP Fiori
interface for the analytical extension.
00:00:39 With this, we are finally in the "Extend" phase. So previously in the Extend phase, we
created HANA models and the OData services required.
00:00:48 Now we are switching to the UI development. The UI developer can now consume the
previously created OData services
00:00:55 and use them in a UI and integrate them in a launchpad. For this, actually the Web front end
developer can do this work in the SAP Web IDE,
00:01:05 so he does not need to know where the OData service originates from, where the data
originates from. He has a simple destination in his SAP Web IDE as always and can start
developing with that.
00:01:17 And this is what we will do right now. Again I will bring in my protective equipment.
00:01:24 And then let's start up the browsers. Now the important part, as a reminder here, is that all
the back-end systems are up and running.
00:01:32 So we need for the SAP S/4HANA system that we have in our VirtualBox to run. And we
need for HANA to run and provide the OData service.
00:01:41 For this we can do a small test. So we need to open the launchpad.
00:01:46 And we can open the product analytics data. These are both links that we have created
earlier in this course and they should actually work.
00:01:56 If these are not upcoming, it means that something is wrong with the systems and you need
to restart them. Also it may be worth checking whether the cloud connector is up and
running.
00:02:07 So you also have a link here. And you can also check if the cloud connector is responding
and has everything in place.
00:02:15 Good, it all looks green, all fine. It means we can now rely on the chain being closed and
start the Web IDE.
00:02:24 To do this again we have remembered the link earlier in this week. And start the Web IDE.
00:02:34 There's a nice hint, we will close it. And we already have our application "manageproducts"
in there, which we will not modify for now.
00:02:42 We will now get a new application. We have again prepared it for you.
00:02:46 So let's go for "File", "Import", "From File System", and browse for it, and it will be called
"productanalytics".
00:03:00 And we simply put it in the folder "productanalytics", so in the root, so to speak. Before
discussing the code, let's look what it does.
00:03:10 So let's simply run it, I choose the folder and run And let's see what we have here.
00:03:18 It's an analytic UI that's custom built. It has a bar chart, and the bar chart has a kind of
reference line that tells us that everything below 25 purchases is not so good
00:03:29 and everything above is good. So we make the assumption that you should have purchased
a piece of equipment at least 25 times.
00:03:38 However, we can change that with this dropdown. You can say "No", you can have more or
less.
00:03:45 So this is the function of this UI. We have the same thing here for the rating.
00:03:50 So here you can switch this is the quantity, this is the rating. And again you can see what
the ratings are, what are the worst-rated products.
00:03:59 You can find out. And at the top, we also have a bubble chart, so it's this here.

15
00:04:08 And the bubble chart will combine this, meaning that now we will combine quantity and
rating and This part of the screen is good a lot of purchases, fine ratings
00:04:22 this part of the screen is bad, so let's look at this thing. It doesn't have a very good rating
and also it's not purchased very often.
00:04:30 It's a portable DVD player okay. Now we can consider if this DVD player should be in the
portfolio of the product catalog.
00:04:39 How have we done that? Let's look in the Web IDE at the code.
00:04:46 Again, the interesting starting point is the "neo-app.json". In the "neo-app.json" we will again
find a destination.
00:04:55 And here we will see there is also a destination pointing to the HANA. So this destination is
giving the data of the service we created in the last unit.
00:05:06 How is it injected in the code? If you go here in the "webapp", in "manifest.json", you will
see that there is a data source.
00:05:18 And this data source is exactly pointing to our service. This is the way we connect this into
the SAPUI5 project.
00:05:27 And from here on, it's plain normal SAPUI5 development no particularities of the cloud. So
what you do is you have your normal charts, normal controllers, like in the previous projects
already.
00:05:40 The charts are here in "Analytics.view.xml". You will find them very easily because there are
some comments in it.
00:05:49 And you see here the respective building blocks, like the filter that I have not yet shown that
will allow you to filter for certain products,
00:05:57 or this slider that allows you to choose a maximum quantity. See it's simply going to some
model.
00:06:08 Also the slider for the rating. And now come the charts.
00:06:13 And in the charts we will again see... we will define... for instance, here we say it is a bar
chart,
00:06:22 and it has a dataset. And the dataset originates out of "product".
00:06:28 And we want to have the product quantity and the product ID in the name. So it's
"measures" and then "dimensions".
00:06:37 We can do a bit of formatting and we do this for the rest as well. So here we have the
average product rating also coming from the product.
00:06:45 So you see this is simple UI5 development. And you just rely on the cloud insofar as it
injects the data.
00:06:55 But now what's left to do is deploy this application to the HANA Cloud Platform. We will do
this by this context "Deploy".
00:07:06 Simply give it a name again, deploy it. Ah, it already exists so we need to upgrade an
existing one.
00:07:23 We register to the launchpad...
00:07:34 Simply use this value... call it "Product Analytics"... Oh, caps lock...
00:07:49 Next we put it in the "Product Management"... and we finish that.
00:08:01 We can now open the registered application. And you see it integrated here in the
launchpad.
00:08:10 And you can now do the analytics to find out why a notebook actually has a bad rating, or
why you could drop it.
00:08:20 Now let's do an experiment when we have put up a complex chain. So there is this
notebook on top, this Benda notebook that we already ordered previously.
00:08:30 Let's go and say the minimum thing to be ordered should be 20, or let's say 15 is exactly the
boundary. So it's now red.
00:08:43 Let's go to the shop and buy it. Let's look for the Benda notebook... add it to the cart...
00:08:58 The cart is here... And we will buy another one.

16
00:09:07 So we go to the checkout here below... One of these notebooks, buy it...
00:09:16 And now the full change would apply, meaning the data should now be replicated. If we now
refresh it,
00:09:26 you see it goes green now we have 16. So this went to the table, from the table to the
Landscape Transformation Replication Server,
00:09:35 HANA Cloud, HANA analytic view. Good, with this we have built up our custom analytic UI.

00:09:42 But there's also a solution that we will look at in the next unit. Thank you.

17
Week 4 Unit 6

00:00:12 Hello, and welcome to the openSAP course "Extending SAP S/4HANA with the SAP HANA
Cloud Platform". My name is Thomas and in this unit I'm showing you another way to create
an analytical dashboard.
00:00:24 So in Week 4, we are going for analytical extensions. And so far we've built a custom one.
00:00:29 But now we will do an analytical extension with SAP BusinessObjects Cloud. So we are still
in the analytical week.
00:00:37 And we will now look at how to create another dashboard using a standard product, SAP
BusinessObjects Cloud. In the end, it has not deviated too much.
00:00:46 So we are still basically considering this as an extension, saying instead of delivering the UI
code, you can also use this dashboard and create a tool to create it.
00:00:56 And there is also a role to do that. And also SAP BusinessObjects Cloud will access the
HANA on SAP HANA Cloud Platform,
00:01:04 and this view that we already created. So apart from the prerequisites, everything is the
same.
00:01:09 Just the consumer or the client that reads the data is different. The developer in this case,
so to speak, is not a coder that will create SAPUI5 or a Web UI,
00:01:24 but he will compile a dashboard. So it's maybe not really a developer, but let's call it a
developer.
00:01:31 Okay, now I will do this. This is not so hard, but I will still wear my equipment.
00:01:38 We all know safety first. And there's maybe one thing to note here.
00:01:44 Unfortunately, I cannot offer you the possibility to do this at home. This is the only thing we
can only show as a
00:01:51 because so far there is no trial version of it available. So what I will show I can simply give
you as a demo,
00:01:57 but you cannot do this at home. And what I will do is open the browser, and here I have
SAP BusinessObjects Cloud.
00:02:07 And the first thing I need to do is open a connection. So for this, I will go to this menu.
00:02:15 Down here I will create a connection... And I can create a new one using this "+" button.
00:02:27 I want a "Live Data Connection" so we're getting real data from SAP HANA. So I will call this
the same as my company, "ACME_HANA", so to speak.
00:02:40 Ah, I cannot call it this. So then I have various data sources I can use.
00:02:48 Now I will use, surprisingly, not SAP HANA Cloud Platform because this feature is
connected to the productive landscapes but not the trial landscapes.
00:02:58 But I can still access it via the proxy. So this is what I will do.
00:03:02 And I will use a "HANA" type. I will communicate via "HTTPS",
00:03:08 and I will get myself the HANA. So let's open this link that we already compiled earlier.
00:03:17 It's this product analytic data. And what BusinessObjects Cloud wants is this host, so the
host of the HANA.
00:03:27 We want this. We copy this in.
00:03:36 As we are talking HTTPS, we need to use the port 443. And now it wants a user.
00:03:44 Now the point is I obviously have a user, but there still needs to be a special permission for
this user to connect to HANA, to SAP BOBJ Cloud.
00:03:54 So what we will do is go to the cockpit and give this permission. So let's open the cockpit...

00:04:03 and go to the HANA box. And this is found under "Persistence", "Databases & Schemas"...

00:04:14 and here's the "hana" box. And we will go to the cockpit of the HANA box to give another
role to this user.

18
00:04:27 It wants a login, this is the "SYSTEM" user. So this is authorized to give me these
permissions.
00:04:37 And again I'll go into "Manage Roles and Users". And here I'm giving this user the
permissions.
00:04:49 And what I need is a role, so I grant the role... and I look for "INA", for the "INA" roles.
00:04:59 Here the "INA_USER". I need to do this.
00:05:06 I save it with the Save button. And now this user has the role.
00:05:12 And with this, he can now in fact log in from SAP BusinessObjects Cloud. So let's go back
to the SAP BusinessObjects Cloud here,
00:05:20 provide this user... The password is the normal password that we know.
00:05:29 I will probably mistype it again... let's see... Ah, I see...
00:05:45 Hmm... what is wrong? Something is wrong, it's not telling me what is wrong...
00:06:06 Very friendly... Ah, it's a duplicate name, okay.
00:06:15 I used it already... "ACME_SRC". Okay, this should be good enough.
00:06:26 It's an invalid name. These guys are very picky about names.
00:06:32 But I have some good ideas. But names are not a problem, we have enough of them in our
mind.
00:06:36 Now we have created the data source. The next step is we need to create a data model for
this source.
00:06:44 So we again go here and create a model... There's a model...
00:06:52 And again, we create a new one using the "+" button... And I want to use a data source,
00:07:02 so I go for this one let's try it. I even have a live connection.
00:07:07 So let's try this as well. So now we should have our system there.
00:07:14 It's this one. Aha, it found what we have in this system, for instance the product this is
good.
00:07:26 And we call it "ACME_PRODUCT". Okay, now we have a model.
00:07:36 It's creating a model. We can look at it what do we have there?
00:07:44 We have code, price, and quantity. Okay, all this is very nice.
00:07:49 Let's have a preview, see what's there. Now we want to create a chart of it this was the
task that we had.
00:07:59 So we save it... And now comes the part that we did in the UI development.
00:08:08 I go here to "Stories" and create a new story. I add my own.
00:08:15 And I create this story and I call it later on product analytics. I will add a chart.
00:08:26 Here I can choose the chart. And for this I can again look whether there is a model or a file.

00:08:33 I will go for a model. And here I have my model data I just created.
00:08:41 And now I can start modeling. So let's simply mimic what we have done in the other
application.
00:08:47 Let's go for a bar chart and say: "Okay, what do we want to have?" We want to have the
quantities.
00:08:56 Okay, nice. Now we have the quantities.
00:09:02 And what is the dimension? We want to have it per "PRODUCT_ID" and
"PRODUCT_NAME".
00:09:08 And now we have a similar chart already here. You can make it a bit bigger...
00:09:17 Also there are some nice features, like I could for instance say: "Now give me the top 5 or
the bottom 5".
00:09:23 So let's go for the bottom 5. And we again see our wonderful Benda notebook that is not
sold that often.

19
00:09:31 And I can also create a new page for the rating. So let's go for another chart.
00:09:41 Again say I want to use this model already that I used. And now we can say another
measure.
00:09:51 So we can go for "PRODUCT_AVERAGE_PRODUCT_RATING"... and still do it for the
dimensions "PRODUCT_ID" and "PRODUCT_NAME".
00:10:05 And there we also have a nice chart. And we can also do this top or bottom 5.
00:10:12 So let's see the bottom 5... Ah, we also see this.
00:10:18 Now there's another nice feature, however, that we can add filters here at will,
00:10:23 so meaning I could now say: "So now we have this information that these are notebooks
that are, let's say, items that are not sold that often, let's focus on notebooks".
00:10:36 So I can create a filter here... and, say, go for the category.
00:10:44 And let's only make it notebooks. Okay.
00:10:50 And now we only have the "flop" notebooks, so to speak. We can also create such a bubble
chart.
00:10:58 So let's do this as well. Let's add another chart.
00:11:05 We use our model again. And the bubble chart is in here, in the correlation charts.
00:11:16 And then we need to define what the first measure is. It should be
"PRODUCT_AVERAGE_PRODUCT_RATING".
00:11:22 Okay. Then what should be the next one? It should be "PRODUCT_QUANTITY".
00:11:27 And the size of the bubble, it should be "PRODUCT_PRICE". And then the dimension
should be again "PRODUCT_NAME".
00:11:40 So now we have the same as we have in the other, a nice chart that tells us what this is
it's a big circle, so it's a very expensive component, it's a Server Power Pro.
00:11:51 But it doesn't have a good rating and isn't sold too often. This is an outlier.
00:11:56 Oh, and it's the Benda notebook again. So I think somehow the Benda notebook is
something to discuss.
00:12:02 And to make it more clear, we can again say: "Okay, give us a filter for this." Just make it
notebooks.
00:12:11 So "PRODUCT_CATEGORY"... Again, let's make it "Notebooks".
00:12:17 And then we see here the notebook situation. Everything's quite close. but let's have a look
it's the Benda notebook.
00:12:23 We should discuss this.
00:12:26 So in the end you see this is just a different way of doing the same thing, of getting such
charts, and consuming them out of an SAP HANA in the HANA Cloud Platform where you
have entered your data.
00:12:37 It's your choice whichever you like more. In this case, it's not custom developed,
00:12:43 but this point and click exercise might be interesting for your users as well. And with that,
I'm ending this week with the analytical extensions.
00:12:54 Thank you.

20
www.sap.com

2016 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://www.sap.com/corporate-en/legal/copyright/index.epx#trademark 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 SEs or its affiliated companies
strategy and possible future developments, products, and/or platform
directions and functionality are all subject to change and may be changed by
SAP SE or its affiliated companies at any time for any reason without notice.
The information in this document is not a commitment, promise, or legal
obligation to deliver any material, code, or functionality. All forward-looking
statements are subject to various risks and uncertainties that could cause
actual results to differ materially from expectations. Readers are cautioned
not to place undue reliance on these forward-looking statements, which
speak only as of their dates, and they should not be relied upon in making
purchasing decisions.

You might also like