Beruflich Dokumente
Kultur Dokumente
00:00:00:18
My name is Jamie Cawley, and this week I will presenting to you the extensibility topic for Fiori
UX.
00:00:00:25
In the previous units, Prakalp and Liz have talked to you about the setup and configuration of
the standard Fiori UX applications.
00:00:00:34
You should understand that while developing the SAP Fiori UX apps,
00:00:00:38
we took the most commonly used functionality and decoupled them into role-based tasks.
00:00:00:44
00:00:00:49
With this in mind, we took into consideration that some customers may want to expose custom
back-end processes,
00:00:00:56
00:00:01:00
All of these adaptations can be accomplished with SAP Extensibility best practices.
00:00:01:07
The three different app typestransactional, analytical, and fact sheetseach contain
different content layers.
00:00:01:17
It is because of these layers that there is no extensibility framework or special tool that works
for all app types.
00:00:01:24
Instead, each content layer has specific related tooling and a corresponding skill set which we
will discuss this week.
00:00:01:32
By referencing each app's documentation, you will not only find related configuration
information,
00:00:01:38
but also the related objects and extension areas of the referenced app.
00:00:01:44
I also encourage you to look at the SAP Community Network before starting an extension,
00:00:01:49
as you can find detailed information on the tools used and documented examples.
00:00:01:58
There are five main content layers that exist for extending SAP Fiori UX applications,
00:00:02:04
00:00:02:09
Depending on extension requirement, this table can be used to help determine when and
where an extension will be performed.
00:00:02:17
In the case of an transactional app, you can see that there are three content layers:
00:00:02:25
00:00:02:28
Understanding the content layers per app type is important in helping us to determine the
necessary areas of extension
00:00:02:35
as well as the relating skills for each area and the areas of documentation that should be
referenced.
00:00:02:45
Looking into a more detailed view of a transactional app's extension content areas,
00:00:02:50
we can see some of the fundamental areas that are utilized in the process.
00:00:02:56
00:00:03:00
where additional fields can be appended into their Data Dictionary, which can be performed in
a transaction SE11.
00:00:03:08
Referring to the specific app extensibility help documentation, you can find the related
structures that can be utilized.
00:00:03:17
You will also find any Business Add-Ins that are supported for the back-end service.
00:00:03:23
Once you have determined the needed modifications, you can then redefine the SAPdelivered service
00:00:03:29
to include the custom enhancements which can be accomplished in the Gateway Service
Builder transaction.
00:00:03:38
Once extensions have been completed, it is then necessary to add the service in the Activate
and Maintain Service transaction in your front-end server.
00:00:03:48
Adding the service creates a proxy from the front-end server to the newly created back-end
service.
00:00:03:54
In the case of using Eclipse for UI enhancement, you may want to download the UI code using
the program to /UI5/UI5_REPOSITORY_LOAD.
00:00:04:04
Otherwise, the UI code can be reviewed by using the BSP Application category
00:00:04:10
00:00:04:16
The SAP River Rapid Development Environment can be configured to allow direct access to
the app,
00:00:04:22
to allow for a streamlined process of extending an app by not only stubbing out the extension
application,
00:00:04:29
but also providing code stubs for any type of extension and listing out the extension points that
exist within the UI code.
00:00:04:39
Fact sheets derive from search models existing on the back-end server.
00:00:04:44
00:00:04:48
by creating a new model that includes the SAP-delivered model which you can then add
additional fields to.
00:00:04:57
Once the search model has been extended, the corresponding OData service will
automatically pick up the custom changes.
00:00:05:05
The service can be checked by finding the corresponding service which is listed in the
application help documentation
00:00:05:11
00:00:05:16
The services are all prefixed with the string CB and ending with the string SRV,
00:00:05:22
00:00:05:27
Once the service has been extended, the UI code is contained within an annotation file which
is accessible in the Object Navigator.
00:00:05:37
They can be searched using the string BSCBN_ANF within a BSP application category and
are also listed in the application help.
00:00:05:47
To extend an UI, it is necessary to copy and modify the SAP-delivered annotation file
00:00:05:53
and include the additional fields that have been included in the search model.
00:00:05:58
This can be performed directly in SE80 or the SAP River Development Environment.
00:00:06:07
SAP River RDE provides a template for generating a new annotation file as well as a design
manager,
00:00:06:14
greatly simplifying the process by providing a drag-and-drop approach to editing the content of
a fact sheet.
00:00:06:25
The data for analytical apps originates from the HANA database.
00:00:06:29
00:0006:33
by creating a custom package and creating copies of the relating application virtual data
model.
00:00:06:40
00:00:06:44
it is then necessary to create a copy of the OData service which can also be done in the SAP
HANA studio.
00:00:06:52
The HANA virtual data model can serve either a KPI or a UI5 application which exists inside
the Object Navigator.
00:00:07:03
In the case of a KPI, a KPI could be either created or modified that references than newly
created VDM.
00:00:07:12
The process for extending an application existing in SE80 is the same as the transactional
app type.
00:00:07:22
00:00:07:29
00:00:07:33
00:00:07:35
but the custom app has an extension which was performed on the back-end service to include
the Title field.
00:00:07:43
The UI was extended with a view modification to then include this field.
00:00:07:49
00:00:07:55
In the next unit, I want to discuss with you how to extend an OData service.
WEEK 6, UNIT 2
00:00:12
Welcome to week 6, unit 2. In this week, we will be discussing the process for extending
OData services.
00:00:20
00:00:23
00:0:31
Depending on the SAP Gateway OData service, there could be two extension areas
00:00:36
00:00:40
00:00:44
00:00:47
00:00:51
00:00:54
therefore including the Model Data Classes and inherits the Data Provider Classes.
00:00:59
The main actions will be performed in the Gateway Service Builder transaction (SEGW),
00:01:05
00:01:10
00:01:16
00:01:20
it is first necessary to open the desired extension include structure in transaction SE11,
00:01:27
where you can add fields into the structure by appending them.
00:01:31
Once the necessary fields have been included, you can then open the Gateway Service
Builder transaction
00:01:37
and create a new project which redefines the standard delivered project.
00:01:41
If necessary, you can also add any additional code in extended classes, which can be
performed in SE80.
00:01:52
To add data into the Data Dictionary, open transaction SE11 on the back-end server,
00:01:58
and enter the include structure into the Data Type field and choose Display.
00:02:04
The extension includes can be found in the help documentation, listed under the App
Extensibility of a specific app.
00:02:11
In this example, we're looking at the include structure for the application My Quality Tasks.
00:02:17
Once opened, choose the button Append Structure and provide a name for the append.
00:02:22
Add the necessary fields, and then save and activate the changes.
00:02:29
00:03:32
open the Gateway Service Builder on the back-end server and create a new project.
00:02:37
Once the project is created, right-click on the Data Model and choose Redefine > OData
Service.
00:02:46
The first step of the redefine process will be to enter the technical service name and version of
the standard delivered service,
00:02:54
00:03:02
The next step involves selecting the entities and properties available from the standard service
00:03:08
00:03:11
Clicking Finish will complete the process and the custom OData service will now be created.
00:03:19
Once the project is created, you can then add any custom properties to the existing entities,
00:03:25
00:03:29
In this screenshot, you can see that we added the LastName value, which we added into the
include structure.
00:03:36
After completing your changes, you can then generate your runtime objects
00:03:41
00:03:44
00:03:49
Now that the OData service has been created, it needs to be added on your front-end server.
00:03:55
On your front end server, open the Activate and Maintain Services transaction and choose the
Add Service button.
00:04:02
Enter the back-end system alias and the technical service name and choose the Get Services
button.
00:04:10
00:04:17
Once the service has been added, we can now verify the service exposes the desired
functionality
00:04:23
00:04:28
WEEK 6, UNIT 3
00:00:12
Welcome to week 6, unit 3. In this week we will be discussing the process for a UI extension.
00:00:19
The skills involved with performing a UI extension include JavaScript, specifically the SAPUI5
libraries, and HTML5 skills.
00:00:31
The UIs for Fiori transactional and analytical applications were designed in a fashion
00:00:37
00:00:41
What this means is the standard delivered SAP application remains unchanged
00:00:48
and an additional application which extends the standard application is built to inherit the
content of the standard application.
00:00:56
This process allows for custom applications which can survive an application upgrade without
impact.
00:01:03
The UI applications have identified areas where the application can be extended.
00:01:09
These areas include views, controllers, and the language property files, which are also known
as the i18n files.
00:01:17
To perform an extension on an application, tools such as the SAP River Rapid Development
Environment or Eclipse can be used.
00:01:25
SAP River RDE has templates built, which allow for easy generation of extension projects
00:01:33
and templates that will generate stubs for each of the identified extension areas.
00:01:40
A good starting point for generating an extension project is to first reference the standard
project
00:01:47
00:01:51
Within any of the SAP-delivered UI applications, you will find a very similar structure, as shown
on the slide.
00:01:59
00:02:02
which are the styles that are specific to the application and deviate from the standard Fiori
styles.
00:02:09
The i18n folder. These are the property files used to provide language-specific translations.
00:02:17
The View folder contains the views which define the controls and layout that a user of the
application experiences,
00:02:24
as well as the controller files, which provide the functionality of the views.
00:02:29
These files in the View folder are the ones which will be extended in most cases.
00:02:34
00:02:39
00:02:42
Within this file you will find project metadata, pathing locations for resource files such as the
i18n files,
00:02:50
00:02:55
00:02:59
This file contains the entire application minimized into this one file.
00:03:05
This is done to allow the application to be loaded from a client browser from a single file, which
enhances the performance for a user.
00:03:13
There is also a debug version of the file, which is created in a readable format.
00:03:18
The last file to note is the Configuration file, which contains the OData service definition.
00:03:26
This slide shows an extension project which was created within the SAP River RDE tool.
00:03:33
A similar project can be created within Eclipse, either manually or by using the Fiori toolkit
plug-in available on the SAP Community Network.
00:03:43
00:03:47
To run this project within SAP Gateway, the only file needed is the component.js.
00:03:53
The index.html file shown here is only used to be able to run the project outside of the Fiori UX
launchpad
00:04:01
and the other files are specific to the SAP River RDE project.
00:04:08
00:04:13
00:04:16
The jQuery.sap.declare is used to declare this file as existing within the custom namespace.
00:04:24
00:04:32
00:04:34
00:04:37
as well as the URL, which is used to locate the project relative to where the extension project is
being loaded.
00:04:45
Depending on where this project is existing, the value of this parameter may differ from what
the slide shows.
00:04:53
00:04:57
which will contain all of the metadata relating to the desired extensions.
00:05:03
Within this definition, we will focus on the config and customizing object properties.
00:05:12
The config object allows you to specify an additional location for the language resource
bundles
00:05:18
00:05:21
00:05:29
which has the parameter bundleName, which is where the custom bundles will be placed.
00:05:37
When the resource bundles have been enhanced, the custom ones will be read first
00:05:42
and if the property is not found, then it will be read from the original bundle.
00:05:47
00:05:52
The two important properties to note are the name and the serviceurl.
00:05:57
00:06:01
then the value of the name should differ from the one specified in the standard app's
configuration.js file.
00:06:08
Otherwise, when specifying the same value as the standard, then this will replace the standard
service.
00:06:17
Within the customizing object, the first two extensibility options we will look at are
controllerExtensions and viewExtensions.
00:06:28
The first property in each of the objects identifies the controller or the view the extension is
being applied to.
00:06:35
00:06:40
00:06:47
00:06:52
The lifecycle functions of both controllers, such as the onInit, will run
00:06:59
and any additional functions can be added, giving you the option to call any newly defined
functions as well as the originals.
00:07:07
For the viewExtensions option, the nested object identifies the ExtensionPoint name,
00:07:13
00:07:16
00:07:21
Within the named fragment, additional labels and fields could be added into the view, as well
as more complex controls.
00:07:30
Please also note that the file name for the fragment would be
extS3ColumnCustom.fragment.xml.
00:07:42
00:07:47
viewModifications are used to override properties of controls such as the visible property of the
standard delivered application.
00:07:55
It follows the pattern of specifying the view to apply the modification to,
00:08:03
and then the identify of the control, which is in this case ENTRY_LIST_CONTENTS.
00:08:09
00:08:13
viewReplacements are used for replacing a view of a delivered standard application with a
custom one.
00:08:20
This is done by specifying the view to be replaced and then the viewName and type of the new
view.
00:08:30
When your extension project is complete, first verify that your component load URL is correct
for your SAP Gateway system
00:08:38
00:08:40
You can then use the program /UI5/UI5_REPOSITORY_LOAD to upload the project
00:08:47
or if you're using Eclipse, you can also use the ABAP team repository provider.
00:08:52
Once your project is uploaded, configure it in the launchpad and verify that it works as desired.
00:08:58
WEEK 6, UNIT 4
00:00:00:12
00:00:00:14
In the last unit 3, not unit 2 as I said, we looked at the process for performing a UI extension.
00:00:00:21
In this unit, we will look at the process for extending SAP Fiori fact sheets.
00:00:00:27
00:00:00:30
00:00:00:39
Fact sheets have two areas that can be extended: the search models and the annotation files.
00:00:00:45
The search models exist in the back-end system and can be accessed using either the
modeler or cockpit transactions listed in the slide.
00:00:00:55
The data in the models is read from an OData service that connects to the search model by
its corresponding search connector.
00:00:01:03
00:00:01:08
00:00:01:!2
00:00:01:17
00:00:01:21
00:00:01:26
00:00:01:33
In the case of extending a fact sheet, it is first necessary to determine the appropriate search
model.
00:00:01:39
This information can be found in the app implementation area of the corresponding
application help documentation.
00:00:01:47
00:00:01:51
This note contains a list of the connectors required for each fact sheet.
00:00:01:56
The slide shows the search model of the material fact sheet which is MATERIAL_H
00:00:02:02
00:00:02:10
Once the search model is known, you can then proceed into the MODELER transaction.
00:00:02:15
Within the modeler, create a new software component, and then include the base software
component.
00:00:02:22
The base software component we will use for the material fact sheet is SAPAPPLH, which is
relevant for all ERP models.
00:00:02:33
Also noted on the slide are the software components for GRC and SRM.
00:00:02:40
00:00:02:46
Choosing Edit will open a road map where you can modify the configuration of a search
model.
10
00:00:02:52
00:00:02:55
In this case, we will add the field Last Change by selecting the check box which is highlighted
on the slide.
00:00:03:03
You can also choose fields to be searchable, but care should be taken to make sure that the
fields are readable text.
00:00:03:11
If you add additional tables, it may be necessary to specify the relationship in step three,
Node Relations.
00:00:03:19
00:00:03:26
Within the Node Response step, you can select the Table node and then add additional fields
into the Response Attributes.
00:00:03:35
In this case, we are adding the Last Change value into the MARA node.
00:00:03:39
After you have added any additional fields, you can then complete the process by choosing
the Finish button.
00:00:03:50
After completing your modifications to the model, you can then choose the Actions button and
choose Create Connector.
00:00:03:59
You can also utilize the noted program in transaction SE38, where you can delete and create
connectors and also index the connectors.
00:00:04:12
Once the connector has been created, the corresponding OData service will automatically
pick up the changes to the search model.
00:00:04:20
You can test this by finding the service in the Maintain Service transaction and either open it
in the Gateway client or into your browser.
00:00:04:30
It may be necessary to clear the cache on both the front-end and the back-end servers if your
changes are not being shown.
00:00:04:39
This can be accomplished by running the two cache cleanup transactions on the
corresponding server.
00:00:04:48
Once the OData service has been verified to contain the additional fields, you can then make
your modifications to the annotation file.
00:00:04:56
The relating annotation file name can be found in the application implementation area of the
fact sheet under the Extensibility section.
00:00:05:06
To add the fields, you can either utilize SAP River RDE, which has templates to easily modify
the fact sheet,
00:00:05:14
or you can directly create a Z copy of the file within the ABAP repository.
00:00:05:20
On the slide, you can see the code necessary to add the Last Change value to the fact sheet.
00:00:05:25
In this case, we also added a title string value to the online text repository and utilized the
OTR function to look it up.
00:00:05:38
Once the modifications to the annotation file have been completed, you would then update the
launchpad onfiguration
00:00:05:45
by configuring the fact sheet in LPD_CUST and finally adding the target mapping in the
launchpad designer.
11
00:00:05:53
00:00:05:57
00:00:06:02
In the next unit, Marcus Behrens will discuss the process for adapting SAP Smart Business
content
00:00:06:09
and Prakalp will conclude the course with the wrap-up unit.
00:00:06:13
12
WEEK 6, UNIT 5
00:00:13
Welcome to unit 5, week 6. My name is Marcus Behrens, Product Owner for the Smart
Business product,
00:00:19
and I would like to show you today how you can adjust it to your needs.
00:00:25
I would like to start out by saying that the Smart Business Framework is really about creating
apps.
00:00:32
00:00:37
00:00:40
00:00:44
But the focus here is to not just have charts and analytics, but to weave this together with other
transactions and with other apps.
00:00:53
To do this, there are tools that help you build a runtime, tiles, and drilldown applications.
00:00:59
00:01:02
00:01:05
For example, in SAP IT, we have built five or six different generations of dashboards over the
last 10 years.
00:01:13
And the one thing that stayed around was the repository.
00:01:16
So when you look at the bottom of the presentation, you can see the apps that you will use to
build such a repository
00:01:24
and then to configure tiles and drill-down apps for your end users.
00:01:31
Now how does this translate into something that your end users will see?
00:01:37
The first thing that they will see going into the Fiori launchpad is tiles.
00:01:43
Those tiles is what you know from iPhone and Windows 8. Those tiles are active.
00:01:48
00:01:52
00:01:55
or you can have a line or trend line which shows you how the number developed over the last
days.
00:02:01
00:02:04
00:02:09
00:02:13
00:02:15
And this is where the drill-down capabilities come in that you can configure and adjust to your
customer's requirements.
00:02:22
The default drill-downyou can see a little glimpse, and we'll see more detail in a second
00:02:28
basically allows you to do a generic drill-down and look at charts and go into more detail using
13
filters.
00:02:35
But there are also other drill-down options like Lumira or your own apps
00:02:40
00:02:45
00:02:51
is not something that you do only once when you implement this application, when you
implement Smart Business Framework.
00:02:58
00:03:00
And that's why I would like to illustrate quickly the key roles in this process.
00:03:05
At first, you have people who are the owners of your businessexecutives, people in the
operations office
00:03:13
and they define the KPIs by which your company wants to run their business.
00:03:17
They use, for example, the Create KPI app to say I want a KPI for a new purpose.
00:03:23
Then you have IT coming in, getting that data from the HANA database and from other
databases,
00:03:29
00:03:35
Lastly, the data analyst also needs to makes sure that the people who interact with those
KPSand who want to drill down
00:03:42
have something that they can work with and that they easily understand.
00:03:47
So the KPI Customer Satisfactionfor example, 8.3if you just have the value, that's not
meaningful to someone in your company.
00:03:55
You need to allow him to translate it into something that's more detailed that he can relate to.
00:04:01
And this is where the data analyst does the rest of the work to create tiles and drill-down
configuration.
00:04:08
00:04:12
00:04:14
This is just an overview and then in the next two slides I will cover how this looks in more
detail.
00:04:22
The sort-of lowest level, but they listed it at the top because it requires development skills, is
the SAP HANA views, the SAP calculation views.
00:04:31
The next level is OData services that you can configure to provide the information from HANA
00:04:37
not just to the Smart Business framework but also to other consumers that would use this
information.
00:04:43
00:04:45
Those KPIs are defined, again, by data analysts and by executives and put into the system in
a repository.
00:04:53
And then we get more and more to the things that the end user sees.
14
00:04:57
You can see that this framework is built up to allow you adjustment at all levels, and at
different levels at different times.
00:05:06
00:05:11
This is where you have a database programmer that looks at how the views provide the
information necessary to calculate the KPIs.
00:05:20
If something is missing, they can add additional fields. They can make additional fields
available in the HANA view.
00:05:26
So the Smart Business Framework can pick up on that and show it and aggregate it into a KPI.
00:05:32
At the OData service level, they can configure how the information is provided
00:05:38
00:05:41
Defining the data types. Making sure the consuming tools can pick up on this information.
00:05:49
And then lastly, this is what I will get to next, is the tile and the drill-down configuration that you
do for your end users.
00:05:58
00:06:02
At the top you can define which filters are available to your end users so they can look at
00:06:07
00:06:11
and filter down into information that they have influence over, that they can relate to.
00:06:17
00:06:23
and microcharts that visualize what's the current situation with business numbers.
00:06:28
And you can combine different KPIs from different business areas in this drill-down at the top
to make it possible for someone to look at,
00:06:37
Okay, customer satisfaction is bad, but what about our other KPIs?
00:06:41
00:06:45
So all of these things can be put together at the top when someone drills down and finds out
something is wrong. How am I doing elsewhere?
00:06:53
00:06:55
And this is the core of the ability to visualize the data underneath a KPI
00:07:01
00:07:05
Here we have a combination of a column with a line chart that shows some measures as lines
and some measures as columns.
00:07:13
You can configure this freely and this is really where if you work at a customer,
00:07:19
you need to talk to the end users and find out from them:
00:07:22
What did my old reports look like? What other kinds of reports am I used to looking at?
00:07:27
00:07:34
The last thing that I don't want to leave out, because it's very important, is
15
00:07:39
most of the reporting tools and analytic tools that you might be using stop there.
00:07:44
But Smart Business provides a framework together with Fiori to navigate and drill down even
further.
00:07:51
So below or behind every one of those bars, there is one or multiple business objects.
00:07:58
00:08:01
So the last thing is sort of the most important thing. What can the user do with this
information?
00:08:09
He can click on the bar and he can get to the right app that helps him solve an issue that he
found.
00:08:15
So that's the last step of configuring all of those possibilities of the Smart Business Framework.
00:08:23
So I think this concludes the essence of what you can do with Smart Business and how you
can adjust it to a customer's needs.
00:08:32
I would like to leave with a few comments on how can you do this in a good way
00:08:38
00:08:44
The first thing I would like to mention is KPIs are always about balancing between different
challenges that a business has.
00:08:51
So it's good to have a few KPIs, but you shouldn't have too many of them.
00:08:56
Ultimately, people can only deal with so many numbers at the same time and having fewer of
them is better.
00:09:03
So don't just take those 75 KPIs that Bernard Marr is suggesting in his blog.
00:09:10
00:09:13
00:09:18
KPI is about aggregating information across departments and also across countries.
00:09:23
If you call a KPI one thing in one country and a different thing in another country, it's not
helpful.
00:09:29
So usually it's good to have a company language at this levelin SAP it would be English
00:09:35
00:09:40
00:09:43
00:09:46
00:09:51
00:09:54
And then lastly, a chart or view that you configure typically has
00:10:00
a few dimensions by which you filter or by which you show the different bars,
00:10:05
00:10:08
These are all the texts that you need and that make it very easy to understand what you built.
16
00:10:15
A few more tips. Top N is good if you have 50,000 objects but you really want the business
user to focus.
00:10:22
Also, of course, you should sort, so the top items are at the top of the list.
00:10:27
And then lastly, again I want to reiterate the essence of Smart Business is that you have
charts,
00:10:34
00:10:37
You can call transactions. You can call other Fiori apps. You can even call some of our legacy
UI technologies.
00:10:43
All out of one environment. And that, I think, it what provides a different value from this
framework for you.
00:10:52
17
WEEK 6, UNIT 6
00:00:12
00:00:15
It seems like yesterday that I was doing the first recording for this course
00:00:20
and the adrenaline was pumping through my veins standing here in front of the camera in this
studio for the first time.
00:00:26
However, over the weeks I am very happy to have been given this opportunity to spend some
time with you all.
00:00:34
Over these past weeks, we had Elizabeth take us through the overview, the strategy, and the
architecture.
00:00:41
Bob presented the RDS, which is a great way to jump start any commercial or enterprise-level
implementation.
00:00:47
Then I worked with you on the high-level deployment tasks and toolsets which we have at our
disposal.
00:00:54
We saw the difference between the traditional ABAP and the HANA deployment and
maintenance-related topics.
00:01:02
After that, we saw what the configuration tasks entail and Elizabeth took you through each
layer
00:01:07
00:01:11
You saw the launchpad, you saw the SPRO transactions, and so on.
00:01:15
00:01:18
00:01:21
you and I saw the various options we have in our platform stacks for implementing single signon and authentication.
00:01:29
Together, we also looked at the mobile enabling of Fiori with the Fiori Client
00:01:34
00:01:40
Jamie then stepped in to introduce the Rapid Development Environmentor River, as you
may know it
00:01:45
00:01:49
Markus also jumped in to take you through extending and customizing Smart Business
applications.
00:01:57
I assume most of you have decided to do the optional exercises, which is great.
00:02:03
00:02:07
In order to do so, you have another week to complete the final exam.
00:02:11
I hope we have excited you on the topic of Fiori and given you a good to stepping stone for
taking the next steps in your quest for Fiori knowledge.
00:02:21
I want say a special thanks to the openSAP team who have worked tirelessly in creating this
18
course
00:02:27
and to the studio crew who made us feel like we are naturals in front of the camera when we're
not!
00:02:33
Without these colleagues, we would not have managed to make this happen.
00:02:37
Finally, many thanks to you, our learners, for taking this course.
00:02:42
We have enjoyed working with you and I want to wish you all good luck and see you again
soon.
19
www.sap.com