Sei sulla pagina 1di 34

SAPUI5 Interview Questions

Following are some of the most important SAPUI5 interview questions.

Q1. What is SAPUI5?


A. Just like any other HTML5 client-side rendering library SAPUI5 is also one. SAPUI5 strictly
follows RIA (Rich Internet Application) standards. It is based on JavaScript which provides a
lightweight programming model for desktop as well as mobile applications.

Q2. Why SAPUI5?


A. As HTML5 world is the new age front technology across all aspect of internet applications
SAP was kind of trailing in this age because SAP was using age old WebDynpro for building
SAP Web Applications which lacks in rich and user friendly UI. SAP identified this and came up
with its own custom HTML5 library i.e. SAPUI5.

Q3. Explain Navigation concept in SAPUI5.


A. SAPUI5 uses two mechanism for navigation in applications those are EventBus and Routing
where latter supersedes since SAPUI5 1.16. sap.ui.core.routing is the class used for the routing.
We define routing in components metadata in “routing” key.

Q4. What is Component?


A. Component or Component.js is the first point of our application or we can say bthat it serves
as index which encapsulates all our applications details i.e. view names, routing details, main
view, applications type(Full Screen or SplitApp), application service configuration etc..

Q5. When and How to use formatter in SAPUI5?


A. We need to use formatter when we need to perform some changes on the back end property
data on the front end.
we can use formatter while data binding to a property like as follows:
oControl = new sap.ui.commons.TextField({
value : {path : “/path”, formatter : function(oEvent){
return “Value:”+oEvent;
}}});

Q6. What all design patterns are recommended/available in SAPUI5?


A. SAP recommends following application design patterns keeping in mind
design consistency of the applications:
1. Master – Detail
2. Master-Master-Detail
3. Full Screen
4. Full Screen-Full Screen-MasterDetail (Multi Flow)

Q7. What all types of data models available in SAPUI5?


A. As SAPUI5 follows MVC(Model-View-Controller) there model plays crucial role in the
framwork. SAPUI5 has following predefined four data models available:
1. JSON Model – Client-side model, supports two way binding.
2. XML Model – Client-side model and intended for small data sets this is very rarely used
model.
3. Resource Model – This is also client side model used to maintain resource bundles, specially
texts.
4. ODATA Model – This is most important model of the four provided. This is server side
model, supports two way binding ODATA model currently supports ODATA version 2.0.

Q8. What all types of views are available in SAPUI5?


A. There are following predefined three types of view available in SAPUI5:
1. JSON view
2. JavaScript View(JS View)
3. HTML View

Q9. What are the Lifecycle methods of SAPUI5 views controller?


A. There 4 four Lifecycle methods available in every SAPUI5 views controller. These are
onInit(), onExit(), onAfterRendering(), onBeforeRendering(). onInit is called when a view is
instantiated and its controls (if available) have already been created; onExit is called when the
view is destroyed; used to free resources and finalize activities; onAfterRendering when the view
has been rendered and, therefore, its HTML is part of the document; onBeforeRendering is
called before the controller view is re-rendered and not before the first rendering.

Q10. What is the main difference between OData Model and JSON Model?
A. The JSON model is a client-side model and, therefore, intended for small datasets, which are
completely available on the client.The OData model is a server-side model: the dataset is only
available on the server and the client only knows the currently visible rows and fields.

Q11. What are SAPUI5 Fragments?


A. Fragments are very light weight UI controls and part of another UI. Fragments are not
completely like views but they act like a view. Fragments are defined similar like views and are
names like “myFragment.fragment.xml“.

Q12. Does Fragment have its own controller?


A. Fragments are created without controllers, they don’t have their own controllers they share
controller of the view which is invoking it.

Q13. In how many ways you can bind data to your controls?
A. We can bind data to any controls using three methods, Property, Element and Aggregation
binding.

Q14. What is SAPUI5 Bootstrapping?


A. SAPUI5 Bootstrapping means loading and initializing SAPUI5 in any HTML page. The most
important library or resource loaded in SAPUI5 bootstrap is “sap-ui-core.js”. Apart from this
theme for the application, SAPUI5 libraries etc are declared in the bootstrapping
Q15. What is Metadata Annotations?
A. The service metadata document describes the structure of all resources in the service. This
structural metadata makes it easy to understand a service. We can explore service metadata at the
address “$metadata” relative to the service root.

Q16. What are common Metadata Annotations?


A. Following are some of the service metadata annotations which are common and a front end
developer must know these in order to understand the service and integrate it:
-edm:EntityContainer
-edm:EntitySet
-edm:EntityType
-edm:Property
-edm:NavigationProperty
-edm:AssociationSet

1)What is required to start UI5 development in eclipse?


->In the help menu in Eclipse, click “Install New Software”, paste one the URL according to the
version of the Eclipse.

 https://tools.hana.ondemand.com/luna for Eclipse Luna (4.4)


 https://tools.hana.ondemand.com/kepler for Eclipse Kepler (4.3)

just import SAP UI5 toolkit from hana service marketplace. Also we need SAP UI5 ABAP
Repository connector to deploy project in ABAP System.
2)Which control libraries are used for UI5 application development?
->sap.ui.commons, sap.ui.table and sap.suite.ui libraries for desktop application development and
sap.m library along with sap.ui.layout for Fiori application development.

3)How Navigation works in SAPUI5.


->Sap uses two mechanisms, routing and EventBus. Routing Is specifically used for bookmarking the
URL. We define routing in component.js within the metadata. It also defines the navigation path and
hash changer which is used at the runtime to change the url of the particular screen.

4)What is Component?
->It is the first point of the application, it serves as an index, which encapsulates all the
application details, like view names, routing details, main view, applications type(Full Screen or
SplitApp), application service configuration etc.
There are 2 types of compponents,
 Faceless components: Mainly without UIs, Used for business logic and helper methods e.g.
Formatters.
 UI Component: typically component.js file which is made by extending sap.ui.core.UI Component
class.

5)What is Responsive Web Design?


->A web application which gives same look and feel to the user in desktops and mobile devices.
6) What is the syntax to define a control in UI5?
->var obj_name = new sap.m.ControlName(“id of control”,{ properties, events, aggregations });

7) What is formatter in SAPUI5 and how to use it?


->We need to use formatter when we need to perform some changes on the back end property
data on the front end.
we can use formatter while data binding to a property like as follows:
oControl = new sap.ui.commons.TextField({
value : {path : “/path”, formatter : function(oEvent){
return “Value:”+oEvent;
}}});

8) How many types of views are available in SAPUI5?


->There are 4 types of views available:
1. JS view
2. JSON view
3. XML view
4. HTML view

9) How many types of data model are available in SAPUI5?


->SAPUI5 has following predefined four data models available:
1. JSON Model – Client-side model, supports two way binding.
2. XML Model – Client-side model and intended for small data sets this is very rarely used model.
3. Resource Model – This is also client side model used to maintain resource bundles, specially texts.
4. ODATA Model – This is most important model of the four provided.

10) What all events/life cycle are available in SAPUI5’s views controller?
->There are 4 lifecycle available in SAPUI5’s views controller, they are:
 onInit() – it is called when a view is instantiated and its controls have already been created.
 onExit() – it is called when the view is destroyed, used to free resources and finalize activities.
 onAfterRendering() - when the view has been rendered and, therefore, its HTML is part of the
document.
 onBeforeRendering() -It is called before the controller view is re-rendered and not before the first
rendering.
11) What is the main difference between OData Model and JSON Model?
->The JSON model is a client-side model and, therefore, intended for small datasets, which are
completely available on the client.The OData model is a server-side model: the dataset is only
available on the server and the client only knows the currently visible rows and fields.
12) What is SAPUI5 Bootstrapping?
->SAPUI5 Bootstrapping means loading and initializing SAPUI5 in any HTML page. Themes
and Libraries are defined in this.

13) In how many ways you can bind data to your controls?
->We can bind data to any controls using three methods, Property, Element and Aggregation
binding.
14) What are SAPUI5 Fragments?
->Fragments are very light weight UI controls. Fragments are not completely like views but they
act like a view. Fragments are defined similar like views and are names like
“Fragment.fragment.xml“.

15) Does Fragment have its own controller?


->Fragments are created without controllers, they don’t have their own controllers they share
controller of the view which is invoking it.

16) What is Metadata Annotations?


The service metadata document describes the structure of all resources in the service. This
structural metadata makes it easy to understand a service. We can explore service metadata at the
address “$metadata” relative to the service root.

17) What are common Metadata Annotations?


->Following are some of the service metadata annotations which are common and a front end
developer must know these in order to understand the service and integrate it:
-edm:EntityContainer
-edm:EntitySet
-edm:EntityType
-edm:Property
-edm:NavigationProperty
-edm:AssociationSet
18) What is SAP Fiori?
->SAPUI5 is client side HTML5 rendering framework or library and SAP FIORI is collection of
and released as waves of applications which are completely based on SAPUI5 framework. It
means we can create applications using SAPUI5 framework and SAP FIORI is final product i.e.
application. In SAPUI5 we have to code from scratch, but in Fiori Application the custom
application is already built and enhancements can be done on those custom apps.

19) How many types of fiori applications are there?


->There are 3 types of fiori applications:
 Transactional
 Analytical
 Fact Sheets

20) What is the difference between SAP Fiori and SAPUI5?


->SAP FIORI is collection of standard applications based on SAPUI5 library provided by SAP.
SAP FIORI applications share some standard design guidelines and way in which these
application are developed.

21) What is FIORI Launchpad and Explain it?


->It is a home page for all the FIORI applications provided to. There are more than five hundred
custom app provided by SAP. This shows tile based UI where every UI redirects to assigned
FIORI application. This Launchpad is fully customizable according to your needs like theming
and all.

22) How can you get the web browser of the client on which SAP Fiori application is
running?
->SAPUI5 library provides a special API “sap.ui.Device“which can be used to for device and its
feature detection. This API provides flags like “chrome”, “firefox”, “mozilla”, “edge” etc. in
“sap.ui.Device.browser” API which returns boolean values.

23) What are Fiori Design Principles?


-> There are 5 design principles we need to keep in mind while designing SAP Fiori applications.
 Role Based
 Delightful
 Simple
 Responsive
 Coherent
1) Which open standards and tools are the foundation of SAPUI5 technology?

->D3.js for visualization

->ARIA for accessibility standards and keyboard handling

->jQuery for managing DOM elements and abstracting browser differences

2) What SAPUI5 control metadata is used to configure the UI elements at runtime?


->Associations

->Properties

->Aggregations

3) What are view types offered by SAPUI5?


->JavaScript views

->JSON views

->XML views

4) What is the purpose of a controller?


->To separate the UI and the processing logic
->To control the application flow by handling user events or updating the view

5) Name some standard controller hooks in SAPUI5?


->onInit – an event that is called when the view and the controller are instantiated

->onExit – an event that is called when the view and the controller are destroyed

6) What does MVC stand for?


->Model - View – Controller

7) What information can be stored in the manifest.json file of your app?


->Root view

->Supported device types

->Supported themes

8) Which of the following namespaces can be used in the manifest.json file?


->sap.ui5

->sap.app

->sap.ui

9) What is the name of the file where the descriptor for applications, components, and libraries is
stored?
->Manifest.json

10) For what stands the abbreviation JSON?


->Java Script Object Notation

11) Which data binding mode means a binding from the model to the view and from the view to the
model (value changes in the model and in the view update all corresponding bindings and the view
and model, respectively)?
->Two-way

12) How would you add an icon from the SAPUI5 icon font to a button in an XML view?
-><Button text="Save Draft" icon="sap-icon://save" />

13) Which predefined sizes for margins that stand for 8px (0.5rem), 16px (1rem), 32px (2rem), or
48px (3rem) are available in SAPUI5?

->'Tiny', 'Small', 'Medium' or 'Large'

14) What is aggregation binding used for?


->To bind a set of data entities to a list-like structure

15) Your JSONModel contains the following content:


{

"Employees" : [{

"Lastname" : "Karlson",

"Firstname" : "Karl"

}]

What is the binding path to Karl Karlson's first name?


/Employees/0/Firstname

16) What do you need if you want to bind a list to data in your JSONModel?
->An array with the data in the JSONModel that you want to bind to the list

->A template list item to be cloned

->A bound list control

17) How can you access validation errors in SAPUI5?


->Set handleValidation to true in the manifest.json file.

->Register to the validationError event on sap.ui.getCore().

18)Name some types in SAPUI5?


->sap.ui.model.type.Float

->sap.ui.model.type.DateTime

->sap.ui.model.type.Currency

19) What coding do you need to add to your XML view to enable grouping in your list binding?
->group: true
20) Which of the following sequences of steps do you use to assemble the URL to access your
OData service's metadata?
 -> Run your app from SAP Web IDE and copy its URL into a new browser tab.
 ->In your app's manifest.json file, go to “services”, copy the URI, and use it to replace the file path in
the URL from Step 1.
 ->Append “/$metadata” and press enter.
21) How many filters can you apply on a list binding?
->As many as needed

22) What is the best practice for showing or hiding an SAPUI5 control at runtime?
->Set the “visible” property of the control to “true” or “false”.

23) When do you use element binding?


->When you want bindings of child controls to resolve their paths relative to the binding of the parent

24) What is the difference between aggregation binding and element binding?
->Aggregation binding is used for list-like structures, whereas element binding can be used to set the
binding context of any parent control.

25) How is paging accomplished in oData query?


->Paging can be accomplished by using $skip in combination with $top. The parameters’ values
describe the interval of the data that is requested.

26) Name some OData query parameters?


->$skip

->$count

->$expand

Watch sapui5 video tutorials from youtube, here's the video on introduction to sapui5:

27) How do you enable the debugging option for SAP NetWeaver OData services?
->Use the URL parameter sap-ds-debug=true.

28) What do you have to consider when choosing the SAPUI5 version for the application template?
->The SAPUI5 version must be available in your target deployment system.

29) How many complete columns (that include the header) will this table display on a phone?
<Table>
<columns>
<Column
demandPopin="false"
minScreenWidth="Tablet">
...
</Column>
<Column
demandPopin="true“
minScreenWidth="Tablet">
...
</Column>
<Column
demandPopin="false"
minScreenWidth="Phone">
...
</Column>
<Column
demandPopin="true"
minScreenWidth="Phone">
...
</Column>
<columns>
...
</Table>

->2

30) What happens when you set the “minScreenWidth” property of a “sap.m.Column” to “Tablet”?
->The column is shown only on screens that are larger or equal than the size of a tablet.
31) What are semantic colors in sapui5?
->They are representations of states such as success, warning, and error.

32) Name some semantic states in SAPUI5?


->Positive

->Negative

->Critical

33) How can you compose filters in SAPUI5?


->By creating multiple filters and concatenating them either with AND or OR

->By creating a single sap.ui.model.Filter object and specifying a path, an operator, and up to two
values

34) Where are filters applied in SAPUI5?


->To an aggregation binding

35) Which filter operation can you use to filter items with a numeric value lower than X?
->sap.ui.model.FilterOperator.LT

36) What can you do to enable your SAPUI5 application to adapt to the user’s device?
->As many controls are responsive out of the box, check whether you have to do anything at all.

->Set the compact density on devices without touch support.

37) What can a “device model” be used for?


->To check whether a device supports touch interaction

->To influence the user interface without coding, based on the characteristics of the device

38) What information is provided by the sap.ui.Device API?


->The device type (phone/tablet)

->Whether the device has touch support

->The browser name and version

39) Which control adapts its appearance on touch devices?


->The PullToRefresh control: It is represented as a simple button on non-touch devices, but the user
needs to pull the page content down on touch devices to refresh it.
40) Why is it useful to have fragments in your app?
->To create reusable UI parts without a designated controller or other behavior code

41) What happens in the DOM tree when nesting XML views?
->Each XML view creates its own DOM element regardless of the nesting level.

42) What can you do to structure your application code better?


->Use subdirectories for related views and controllers.

->Use fragments to define reused UI parts only once.

->Put the functionality used in multiple controllers into a base controller and extend this controller in
the other controllers in your app.

43) What are fragments primarily used for?


->To make parts of your view reusable

44) What are Dialogs in SAPUI5?


->They are rendered into a specific area (the static area) in the DOM.

->They need to be added to the “dependent” aggregation of the view to get access to the models.

45) What happens when you instantiate a dialog from a single-rooted fragment?
->The dialog instance is returned when you invoke the fragment factory.
->The dialog is instantiated but not displayed.

46) Which property of the routing configuration in the manifest.json file should you use to
automatically display a target that is not found?
->Bypassed

47) How many targets can you configure within a route in the manifest.json file?
->As many as you like

48) What is the correct sequence of called functions / handled callbacks of the OData model in the
Add controller?
->on metadataLoaded - createEntry - submit - on success

49) What is the recommended place to configure a "TwoWay" binding for the OData model so that
data changes in the view are written back to the model?
->In the "models" section of the manifest.json file

50) How are unit tests for your app started in SAP Web IDE?
->By selecting the run configuration Run Unit Tests

->By right-clicking the unitTests.qunit.html file and selecting an option from the Run menu
51) How do you register a unit test in QUnit?
->Call QUnit.test() in your test code with a speaking test description and a callback that contains at
least one assertion.

52) Which testing features are provided by the SAP Fiori Worklist application template?
->A test suite that calls all your unit and integration tests

->Clear separation of test and production code

->Unit test setup (QUnit) and basic test coverage

53) Which options are available in SAPUI5 if you want to create a custom control?

->Extend an existing control with your own features.

->Create a composite control that reuses existing controls internally.

->Extend the sap.ui.core.Control base class and build a new control.

54) Which of the following are part of the control metadata?


->Aggregations

->Properties

->Events

55) What do you have to consider when defining control metadata?


->You can give an aggregation either one or many values by defining the multiplicity as “one” or
“many”.
->You can make an aggregation invisible in the control API by setting the visibility to hidden.

1) What is OpenUI5?
->A subset of SAPUI5 containing the complete core and more than 200 UI controls
->A free-to-use and open source UI library ready for your contributions

2) How can you load SAPUI5 to your application?


->Load it from the content delivery network (CDN)
athttps://sapui5.hana.ondemand.com (orhttps://openui5.hana.ondemand.com) without installing it on
your own server.
->If only features contained in OpenUI5 are needed, download it fromhttp://openui5.org, put it on
your Web server, and load it from there.
->SAPUI5 comes with current versions of the SAP NetWeaver ABAP and Java server and SAP
HANA Cloud Platform. If you are a customer, you can load it from there.

3) What is the correct syntax for defining namespaces in XML views?


->xmlns:m="sap.m"

4) Why is not all JavaScript code put in a <script> tag directly on the index.html page?
->To clearly separate concerns according to the MVC concept.
->To make your code much easier to read and maintain
->To enable your code to dynamically load resources as they are needed

5) What is a component within SAPUI5?


->An independent and reusable part that can be used to structure SAPUI5 applications

6) What information can be stored inside the manifest.json file of your app?
->Content densities
->Root view
->Models of your app

7) What is the benefit of data binding within SAPUI5?


->SAPUI5 uses data binding to bind two data sources or information sources together to keep them
in sync. This means: All changes in one source are also reflected in the other one.

8) How can you add a margin all around a control


->class="sapUiSmallMargin"

9) Which base class are you recommended to extend when implementing a custom type?
->sap.ui.model.SimpleType

10) How can you distinguish absolute and relative binding paths?
->Absolute binding paths always start with a "/".

11)How to sort and group your sap.m.List when added to the view.xml?
items="{

path : '/ProductSet',

sorter : {

path : 'Category',

group : true

}"
12) How can you access the list item control in an event handler for the press event?
->Call the getSource() method at the event object parameter.

13) What is the role of the application template in the development process?
->To generate an initial set of files that serve as the starting point for the development of a
productive application

14) How can sap.m.Table behave on smaller devices such as phones and tablets?
->It hides less important columns.
->It displays less important columns as a "pop-in"; it stacks them vertically inside the row making the
table larger in height.

15) Which filter operation is appropriate for a textual search in SAPUI5?


->sap.ui.model.FilterOperator.Contains

16) Which responsiveness features can you realize by setting standard CSS classes provided by
SAPUI5?
->Adding different margins to controls depending on the screen size
->Hiding controls depending on the screen size

17) Which options for code reuse are available in SAPUI5?


->Controller inheritance
->Nested views
->Fragments

18) When should you put code from your view into a separate view or fragment and nest it into the
original view?
->When you realize that you need to reuse this code in several other places and views in your app.

19) What do you have to do to grant a dialog access to the surrounding view’s models?
->Add the dialog to an aggregation of the view, for example the "dependent" aggregation.

20) What is the purpose of the "Static Area" in the DOM?


->To display dialogs and popup controls over the application UI

21) Which benefits does the hash-based navigation in SAPUI5 offer?


->Hash-based navigation adjusts the current hash to your interactions with the app, so that the URL
can always be bookmarked.
->It allows you to build one-page apps where the contextual navigation is done by changing the
hash, so the browser does not have to reload the page.

22) What do you have to do to be notified when the hash has changed to a certain pattern?
->Register to the patternMatched event of the route.

23) What is Sinon.JS?


->A standalone unit testing library for JavaScript that provides spies, stubs, and mocks

24) Where does OPA fit in the testing pyramid?


->In component/integration tests

25) Why is automated testing beneficial for app development?


->It significantly reduces the manual testing effort.
->It is easier to hand over the app to other developers.
->You can avoid regressions and bugs in your code.

Q. What is SAPUI5?

Just like any other HTML5 client-side rendering library SAPUI5 is also one. SAPUI5 strictly
follows RIA (Rich Internet Application) standards. It is based on JavaScript which provides a
lightweight programming model for desktop as well as mobile applications.

Q. Why SAPUI5?

As HTML5 world is the new age front technology across all aspect of internet applications SAP
was kind of trailing in this age because SAP was using age old WebDynpro for building SAP
Web Applications which lacks in rich and user friendly UI. SAP identified this and came up with
its own custom HTML5 library i.e. SAPUI5.

Q. Explain Navigation concept in SAPUI5.

SAPUI5 uses two mechanism for navigation in applications those are EventBus and Routing
where latter supersedes since SAPUI5 1.16. sap.ui.core.routing is the class used for the routing.
We define routing in components metadata in “routing” key.

Q. What is Component?

Component or Component.js is the first point of our application or we can say bthat it serves as
index which encapsulates all our applications details i.e. view names, routing details, main view,
applications type(Full Screen or SplitApp), application service configuration etc..

Q. When and How to use formatter in SAPUI5?

We need to use formatter when we need to perform some changes on the back end property data
on the front end.
we can use formatter while data binding to a property like as follows:
oControl = new sap.ui.commons.TextField({
value : {path : “/path”, formatter : function(oEvent){
return “Value:”+oEvent;
}}});
Q. What all design patterns are recommended/available in SAPUI5?

SAP recommends following application design patterns keeping in mind design consistency of
the applications:

1. Master – Detail
2. Master-Master-Detail
3. Full Screen
4. Full Screen-Full Screen-MasterDetail (Multi Flow)

Q. What all types of data models available in SAPUI5?

As SAPUI5 follows MVC(Model-View-Controller) there model plays crucial role in the


framwork. SAPUI5 has following predefined four data models available:

 JSON Model – Client-side model, supports two way binding.


 XML Model – Client-side model and intended for small data sets this is very rarely used model.
 Resource Model – This is also client side model used to maintain resource bundles, specially
texts.
 ODATA Model – This is most important model of the four provided. This is server side model,
supports two way binding ODATA model currently supports ODATA version 2.0.

Q. What all types of views are available in SAPUI5?

There are following predefined three types of view available in SAPUI5:

1. JSON view
2. JavaScript View(JS View)
3. HTML View

Q. What are the Lifecycle methods of SAPUI5 views controller?

There 4 four Lifecycle methods available in every SAPUI5 views controller. These are onInit(),
onExit(), onAfterRendering(), onBeforeRendering(). onInit is called when a view is instantiated
and its controls (if available) have already been created; onExit is called when the view is
destroyed; used to free resources and finalize activities; onAfterRendering when the view has
been rendered and, therefore, its HTML is part of the document; onBeforeRendering is
called before the controller view is re-rendered and not before the first rendering.
Q. What is the main difference between OData Model and JSON Model?

The JSON model is a client-side model and, therefore, intended for small datasets, which are
completely available on the client.The OData model is a server-side model: the dataset is only
available on the server and the client only knows the currently visible rows and fields.

Q. What are SAPUI5 Fragments?

Fragments are very light weight UI controls and part of another UI. Fragments are not
completely like views but they act like a view. Fragments are defined similar like views and are
names like “myFragment.fragment.xml“.

Q. Does Fragment have its own controller?

Fragments are created without controllers, they don’t have their own controllers they share
controller of the view which is invoking it.

Q. In how many ways you can bind data to your controls?

We can bind data to any controls using three methods, Property, Element and Aggregation
binding.

Q. What is SAPUI5 Bootstrapping?

SAPUI5 Bootstrapping means loading and initializing SAPUI5 in any HTML page. The most
important library or resource loaded in SAPUI5 bootstrap is “sap-ui-core.js”. Apart from this
theme for the application, SAPUI5 libraries etc are declared in the bootstrapping

FIORI

Dear readers, these SAP Fiori Interview Questions have been designed specially to get you
acquainted with the nature of questions you may encounter during your interview for the subject
of SAP Fiori. As per my experience good interviewers hardly plan to ask any particular question
during your interview, normally questions start with some basic concept of the subject and later
they continue based on further discussion and what you answer:
What are the different configuration steps in SAP Fiori?

Configurations of SAP Fiori Apps are divided into two parts: Configuration of Transaction Apps
and Fact sheets, Configuration of Analytical Apps.

Before configuring anything, the complete infrastructure for SAP Fiori apps must be installed.
Once that is completed there will be activities to configure on back-end and front-end servers.

Note down the steps that are required to configure SAP Fiori Transactional Apps?

Step 1 Configuring SAP Web Dispatcher specifies routing rules to define which URL is
forwarded to which system is done for both Transactional Apps and Factsheets.

Step 2 only needs to be configured for Factsheets. If we just have to configure Transactional
Apps we can skip step 2.

Step 3 is configuring the front-end server and this is done for both Transactional Apps and
Factsheets. At high level we need to configure −

 SAP NetWeaver Gateway


 The Central UI Add-Ons (Launchpad Configuration)
 Product Specific Add-Ons

Step 4 is configuring the back-end server and this is done for both Transactional Apps and
Factsheets.

Viewing from a high level – Roles, Users and Authorizations

Note − Transactional Apps can run on any DB whereas the Factsheets must run on SAP Hana.

Note down the steps that are required to configure SAP Fiori Analytical Apps?

Step 1 Configure SAP Web Dispatcher −

Needs to be configured to specify routing rules stating which URL is forwarded to which request

Step 2

Configuring authentication and SSO needs to be done in the HANA database.

Step 3 configuring the front-end server −

 Configuring NetWeaver Gateway


 Central UI add-Ons
 Product specific add-Ons
Step 4 (Only needed for Smart business apps) −

 Enable user access to KPI data


 Model KPIs
 Configure navigational targets for KPI catalogs

KPI framework is installed for which of the following Apps?

Analytical apps and the SAP Smart Business apps share the setup of HANA XS engine and KPI
Framework only (in Smart Business Apps). After setup of SAP Fiori System Landscape with
SAP Hana XS engine we need to be following the KPI modeler on front-end server and
respective SAP Smart Business Products on SAP Hana server.

To enable remote logon for users who use the same user data in both SAP NetWeaver Gateway host and
SAP system, which connection type needs to be configured?

To define a trust relationship between SAP system and SAP NetWeaver gateway host by
configuring SAP system to be trusting system and NetWeaver gateway host to be the trusted
system. It enables remote logon for users who use the same user data in both SAP NetWeaver
Gateway host and SAP system.

To configure SAP system as the trusting system −

 Create an RFC destination for use in the trust configuration.


 Define system to be trusting system using transaction SMT1.
 Configure the system to create and accept assertion tickets from SAP NetWeaver
Gateway host using SSO2 wizard.

To configure SAP NetWeaver Gateway host as trusted system −

 Create an RFC destination for communicating with the trusting SAP system.

To configure Enterprise search in back end, what is important perquisite for this?

To configure Enterprise search in back end, we must have Embedded Search Technology setup.

What are the different authentication methods that can be configured in SAP Fiori for internal and
external company communication?

By implementing SAP Single Sign-On, your apps become automatically available after just one
initial user authentication at the users Windows desktop, with no need for further log-on
procedures.

Kerberos technology is the method of choice in intranet scenarios for SSO. It simply re-uses your
Windows domain authentication for single sign-on.
X.509 certificates provide a viable option for creating a secure SSO infrastructure if you're
considering extending single sign-on to extranet or cross-company scenarios.

What are the components that are configured in SAP Front End Server?

Configure ABAP Front-end server includes- Configure SAP NetWeaver Gateway, Configure the
Central UI Add-On, Configure SAP Fiori Launchpad.

What are the components that are configured as part of configuration of KPI data?

Configure access to KPI data (SAP Smart Business only) includes – enables user access to KPI
data, KPI modeler, Configure navigation targets for KPI’s.

Explain SAP NetWeaver Gateway Central Hub deployment in SAP Fiori?

In NetWeaver Gateway Central Hub deployment − UI layer and SAP NetWeaver gateway is
contained in ABAP Front-end server. The ABAP back end server contains business logic and
back end data. Separating business logic and back end data from UI layer has below advantages

 Single Point of maintenance for UI issues- such as browser support and updated version
of SAP UI5 libraries.
 Central place for theming and branding SAP Fiori Apps.
 Routing and composition of multiple backend systems is supported.
 Single Point of access to backend systems and enhanced security because of no direct
access to backend system.
 SAP recommends Central Hub deployment especially for Productive environment.
Separate NetWeaver Gateway system is required.

Explain SAP NetWeaver Gateway Embedded Hub deployment in SAP Fiori?

In Embedded Hub Deployment − NetWeaver gateway is deployed on same server as the


Business Suite. So multiple Business Suite systems requires Gateway to be configured multiple
times. It is not recommended by SAP especially for customers with multiple back ends.

No additional separate NetWeaver Gateway system is required. It is usually used for sandbox
purposes only.

To enable communication between the front-end ABAP and back-end ABAP server, which
communication type is used? Transaction Apps, Factsheets and Analytical Apps require which of the SAP
system to run?

Transaction Apps are only apps that don’t have to run on Hana system. They can run on any
Database. All factsheets, Analytical apps and Small Business Apps run on SAP Hana. Only Fact
sheet requires Search Models. Only Analytical Apps requires Hana XS Engine and KPI
Framework is needed for Smarts Business Apps.

What is the function of SAP Web Dispatcher in SAP Fiori architecture?

SAP Web Dispatcher (Reverse proxy) is entry point for HTTP(s) request in SAP Fiori
Architecture. It can accept or reject connections as per user request.

What are the components of SAP Hana extended application services?

SAP Hana XS engine contains 2 components-Hana Live App Content and SMART Business
components with KPI modeler. Within Hana Live App Content VDM reuse content exist.

What is MVC?

The Model-view-controller pattern defines domain modeling, GUI of application and input and
actions based on devices. MVC approach defines in SAP UI5 has following points −

Model

A bridge between view and data of the apps and it accepts the request from view and responds
accordingly. It doesn’t depend on any of classes.

View

It manages the display of information (GUI of the application) and it depends on Model.

Controller

It concludes the input given by devices and communicates to model/view to take proper action. It
also depends on model. View and Controller have 1:1 relationship. Controller entertains user
requests received from View.

In UI5 data binding supports, what are the different model implementations?

UI5 data binding supports three different model implementations −

JSON Model supports data in a JavaScript Object Notation format and It supports two-way
binding.

XML model supports XML data and it supports two-way binding.

OData model supports OData compliant data. It creates OData requests and handles responses. It
includes the open source library dataJS to handle OData requests and data. It supports two-way
experimental binding.
What is use of OData protocol?

OData is a protocol used to exchange data on web and was originally developed by Microsoft.It
is based on Atom Publishing and Atom Syndication standards, which in turn, are based on XML
and HTTPS(S).

The Atom publishing format doesn’t specify how Data should be encoded with in a feed
therefore it fails to provide self-describing messages and fails to be fully RESTful. OData
extends Atom by providing a metadata description of message.

OData provides definition for −

 Simple types
 Complex Types
 Association as well as Navigation path between entries.
 Custom behavior
 OData also adds an alternative representation of data in the format of JSON.

In NetWeaver Gateway Central hub deployment, what are the different scenarios for development?
Which one is preferred and when?

Scenario A: Central Hub Deployment — Development in SAP Business Suite Backend


System

Advantage

It enables to reuse data stored in the SAP Business Suite system easily since development takes
place in the system in which data is stored.

Considerations

To enable communication between the SAP NetWeaver Gateway system and the SAP Business
Suite backend system, you must install IW_BEP in the backend system.

The life cycle of SAP NetWeaver Gateway content is dictated by the frequency of updates in the
SAP Business Suite backend system.

Cons

Requires separate NetWeaver Gateway system

Scenario B: Central Hub Deployment — Development in SAP NetWeaver Gateway System

Advantages

Noninvasive deployment scenario for SAP Business Suite backend system.


The life cycle of SAP NetWeaver Gateway content is loosely coupled to the lifecycle of the SAP
Business Suite backend system.

To enable external access and fulfill security requirements, you can locate the SAP NetWeaver
Gateway system in a demilitarized zone (DMZ).

You need only a single installation of the SAP NetWeaver Gateway Add-Ons within the system
landscape.

Cons

Requires separate NetWeaver Gateway system.

Considerations

The SAP NetWeaver Gateway content implementation cannot use the majority of development
objects in the SAP Business Suite backend system. Consequently we need to create copies of
structures and data domains.

We must choose this deployment scenario if we cannot install the SAP NetWeaver Gateway
Add-Ons in the SAP Business Suite backend system. We might not be able to install Add-Ons in
the backend system for reasons of security, stability, or incompatibility (due to system release).

What is embedded hub Deployment and where it is used?

Embedded hub Deployment — Development in SAP Business Suite Backend System

Advantages

Easy reuse of content in SAP Business Suite backend system. We can reuse structures from the
backend system and access local business logic.

Reduced total cost of ownership (TCO) as we do not require a separate SAP NetWeaver
Gateway system.

Considerations

The life cycle of SAP NetWeaver Gateway content is dictated by the frequency of updates in the
SAP Business Suite backend system.

We must integrate the consuming application or infrastructure with the SAP Business Suite
system on a point-by-point basis. Cross-system composition is not advisable.

Central SAP NetWeaver Gateway content is not available. Backend-specific content is used in
the SAP Business Suite backend system.
Cons

If multiple SAP Business Suite systems are used Gateway would have to be configured multiple
times.

Note − Embedded hub deployment is not recommended by SAP especially for a customer with
multiple backend. This scenario is used for sandbox purposes only.

How do you identify a Workflow template in SAP Fiori?

Workflow templates are prefixed with “WS”.

To diagnose workflow errors, which transaction do you use?

SWI2_DIAG → to diagnose workflow errors.

What is the use of defining workflow scenarios in Workflow engine?

Workflow scenario aggregates one or more workflow tasks in workflow engine and is
represented by a single entry in the consumer application. The service
/IWPGW/TASKPROOCESSING is provided in the standard.

Which service is used by SAP Fiori Launchpad designer to read and assign transport request?

/UI2/TRANSPORT- Used by SAP Fiori Launchpad designer to read and assign transport
request.

How data flow happens in SAP Fiori Launchpad? Explain the steps.

Sequence of steps −

LPD_CUST

Launchpad Designer – Add a catalog, add a group

Target mapping – semantic object, action

Static/Dynamic Launcher

PFCG – Catalog, group

To expose our Gateway service to outside world, where do an entry must be created?

In order to expose our Gateway service to outside world, we must create an entry in the Service
Catalogue on which ever server is acting as the Gateway hub.
What are the different RFC authorization objects in SAP Fiori?

Authorization Object S_RFCACL

Definition

Authorization check for RFC users, particularly for trusted systems

Defined Fields

This authorization object contains the following fields −

RFC_SYSID − ID of the calling system or the domain of the satellite system.

RFC_CLIENT − Client of the calling system.

RFC_USER − ID of the calling user.

RFC_EQUSER − Flag that indicates whether the user can be called by a user with the same ID
(Y = Yes, N = No)

RFC_TCODE − Calling transaction code.

RFC_INFO − Additional information from the calling system (currently inactive).

ACTVT − Activity

Why do we need a system alias If GW_CORE and IW_BEP components are installed on the same ABAP
system?

You need to know the system alias of the ABAP system in which you developed and configured
the Gateway Service. There are two possibilities here −

 If the GW_CORE and IW_BEP components are installed on the same ABAP system,
then the system alias will probably be “LOCAL”.
 If they are installed on different systems, then although system aliases can be any name
you like, they generally follow the naming convention of <SID>_<Client> So the system
alias for connecting to client 200 of system C11 would generally be C11_200.

However this is only a convention, not a rule.

What is Launchpad designer tool? Why do we need it?

We can use SAP Fiori Launchpad designer for configuring and creating groups and catalogs
which can then be accessed from SAP Fiori Lauchpad which is a single entry point to all apps.
We can search recently launched apps via search capability of Launchpad. Tiles which are
available on Fiori Launchpad home page are configured using Launchpad Designer Tool.

What are the configuration tasks that need to be performed on Front End server as per different app
types?

We need to perform certain configuration tasks on front end server which are specific to app
type. We need to Activate OData Services for transactional apps and Factsheets but not for
Analytical apps. For analytical apps we need to configure access to SAP HANA data.

What are the different app launched tile types in SAP Fiori?

Static − It shows predefined static content (text, icon).

Dynamic − It shows numbers that can be read dynamically.

News Tile − Flips through news messages according to the configuration of the tile.

KPI Tile − It displays KPI’s in real time.

What are the different OData services that are required for SAP Fiori Launchpad?

OData services have to be enabled in SAP Net Weaver gateway to establish mapping between
technical OData name and the corresponding back-end service. In order to setup SAP Fiori
Launchpad and Launchpad designer, we have to activate 5 specific OData Services.

 /UI2/PAGE_BUILDER_CONF
 /UI2/PAGE_BUILDER_PERS
 /UI2/PAGE_BUILDER_CUST
 /UI2/INTEROP
 /UI2/TRANSPORT

What are the different options in SAP Fiori Launchpad design?

Configuration Layer − Contains all content as delivered to customers including translation.

Customization Layer − Customers adjust content for all users in the system. We can use CUST
layer for testing or other reasons. Content is transportable through customizing requests by
customers. After customization, content is decoupled from configuration layer and no automatic
synchronization after changes to delivered layer.

What is the use of PFCG role SAP_UI2_USER_700?

The Launchpad user must have the PFCG role SAP_UI2_USER_700 assigned. With this role the
user can run the SAP Fiori Launchpad on the Personalization level and has authorization to
execute the following OData services −
 /UI2/PAGE_BUILDER_PERS
 /UI2/INTEROP
 /UI2/LAUNCHPAD

The add-on components in back end that require no down time for installation are known as?

Product specific UI Add-Ons

ERP − UI for EHP 7 for SAP ERP 6.0

SRM − UI for EHP3 for SAP SRM 7.0

SCM − SAP SNC USABILITY 1.0

CRM − UI for EHP3 for SAP CRM 7.0

PORTF and PROJ MGMT − UI for SAP PORTF PROJ MGMT 6.0

GRC − UI for SAP ACCESS CONTROL 10.1 SP3

What is the use of SAP Solution Manager and Application Lifecycle Management?

SAP Solution Manager is the standard platform for Application Lifecycle Management (ALM),
and plays a decisive role within the ALM tools. Besides providing SAP functionality itself, SAP
Solution Manager integrates the other tools to ensure a comprehensive approach.

What is the use of UI Theme Designer? What are the benefits?

Using UI theme designer you can create your own themes to adapt the visual appearance of
applications.

One single tool for theming and branding SAP’s key user interfaces −

Apply your corporate branding and look to applications built with SAP UI technologies. The UI
theme designer is a browser-based tool for cross-theming scenarios.

The tool is targeted at different user groups, including developers, visual designers, and
administrators.

Key Features and Benefits −

 Browser-based, graphical WYSIWYG editor −


o Change the values of theming parameters and immediately see how it affects the
visualization of the selected preview page.

 Build-in preview pages −


o Select built-in preview pages to see what your custom theme will look like when
it is applied to an application −

Application previews (for example, Purchase Order Approval, SAP Fiori


Launchpad)

Control previews

 Different levels of theming −


o Quick theming (basic cross-technology theme settings)
o Expert theming (technology-specific theme settings)
o Manual LESS or CSS editing

 Color palette for reuse −


o Specify a set of parameters with the main color values defining your corporate
branding.

 Cross-technology theming −
o Create one consistent theme that applies to various SAP UI clients and
technologies −

SAPUI5 standard libraries (including SAP Fiori applications and SAP Fiori
launchpad)

Unified Rendering technologies (such as Web Dynpro ABAP and Floorplan


Manager)

SAP NetWeaver Business Client

 Multiplatform and Multi UI technology support.

 Low Total Cost of Ownership.

For write access to the UI Theme Designer (create, update, delete themes), which authorization object
should be assigned?

Authorization object: /UI5/THEME

ACTVT(Activity):02(Change) and

/UI5/THMID (Theme Id):* = all themes

To be able to use the UI Theme Designer, which Internet Communication Framework ICF nodes should
be activated?
To be able to use the UI Theme Designer, Activate the following Internet Communication
Framework (ICF) service nodes −

 /sap/public/bc/themes
 /sap/bc/theming

To be able to use SAP UI5 and NWBC preview pages, following ICF services must be activated

 /sap/bc/ui5_demokit
 /sap/public/bc/ui2

How can you download newly created themes that are published?

You can use transaction /UI5/THEME_TOOL to download newly created theme and you will
find css in one of those folders.

You can also transport themes from one system to another (Eg: from Test to Production system)
using the tool for Customer Themes Maintenance.

Start the tool using transaction: /UI5/THEME_TOOL

Navigate to the theme you want to transport.

Select Transport and choose.

How do you extend an OData service (Gateway Content Layer) in SAP Gateway?

Transaction code SE11 is ABAP dictionary. By using this transaction code, you can create,
change and display table entries and structures. At the initial screen, you can put any tables or
structures to view, edit or even create a new one. Transaction code SE11 is normally used a
ABAP programmer.

SAP Gateway Service Builder (transaction SEGW)) is a design-time environment, which


provides developers an easy-to-use set of tools for creating services. The Code-based OData
Channel consumes it and supports developers throughout the development life cycle of a service.

SE80 - Object Navigator

SE 80 is a tool to develop and navigate programs and dd-obj.

SE80 Object Navigator → means all the objects will be available there. In se80 in addition to
viewing the objects related to programming and classes, there are more privileges to view such
as some other repositories such as mime, object repository, object browser and all.

Which components has to redefine while extending Gateway layer of SAP Fiori Application?
IW_BEP on Business Suite

IW_FND on Gateway Layer

What is the use of component.js file in UI extensibility?

The configuration is stored in the component.js file of the custom application. The component of
the custom application needs to inherit from the main component of the original application. To
make the location of the original application or component known to SAPUI5, it may be
necessary to use register Module Path. The configuration in the customizing section contains the
extension metadata and describes the objects that are replaced or extended.

What is a fragment and views in SAP UI5?

Fragments are pieces of a UI without their own controller. The name of each view of fragment is
important. A fragment must be named as <NAME>.fragment.xml and a view
<NAME>.view.xml

SAPUI5 Views − Views are nothing but the application pages. We define our user interface by
creating Views. Views is formed or created by using one or more Controls in it say
Page,SimpleForm,Dialog,Label,Input etc. Every view has its own controller.

SAPUI5 Fragments − Fragments are the pieces of UI just like SAPUI5 Views. Whenever we
need to use some similar UI parts many times in our application/views we create Fragments of
those UI parts because Fragments are reusable and are light weight compared to VIews and
Controls. Fragments are stored with in the application itself and can be used by that application
only. Fragments are defined as View only and calling Views controller is shared with Fragment
as Fragments are not having their own controllers.

If Customization doesn’t run properly, is it possible to disable all customization by providing a


configuration?

If a Customization doesn’t run properly, all customization can be disabled by providing a single
configuration. In support situation, this can be done by setting a breakpoint early in sap-ui-core.js
and then executing the following code in the Console −

-window[“sap-ui-config”]= window[“sap-ui-config”]||{};

-window[“sap-ui-config”][“xx-disableCustomizing”] = true;

For security reason this setting is not possible using a URL parameter.

To dump the complete extensibility data, use the following command in the browser Console −

sap.ui.core.CustomizingConfiguration.log()
As a result, an object is returned in the Console which contains the customizing configuration,
structured by type of customization and view name.

To integrate factsheets with geographical maps, connection is set up between the ABAP back-end server
and the map provider. What is communication channel?

For fact sheets with integrated geographical maps, geographical coordinates and address data are
transferred from the ABAP back-end server to the map provider using HTTP or HTTPS.

To ensure confidentiality and integrity of data, we strongly recommend protecting HTTP


connections by using Transport Layer Security (TLS) or Secure Sockets Layer (SSL).

What is SAP HANA XS engine? How it is used for Business suite and KPI?

For Analytical apps you need SAP Hana as underlying database, no exceptions. SAP Fiori
leverages.

XS engine by using virtual data models. Within XS engine there are 2 components: the HANA
Live App content for respective business suite and Smart business component with the KPI
modeler. Within the HANA live content the VDM reuse content exists which can be modified.

In below Pic, you have ABAP front end server which contains the UI Add-Ons for respective
products used, NetWeaver Gateway with OData enablement, the central UI add-on and the KPI
framework. These front end components have read access to the backend data via a trusted RFC
connection.

What is VDM in HANA Live? What are the different types of views in VDM?

A virtual data model (VDM) is a structured representation of HANA database views used in SAP
HANA Live for SAP Business Suite and follows consistent modeling rules.

It provides direct access to SAP business data using standard SQL or OData requests. Business
data is exposed through well-defined database views, operating directly on the tables of the SAP
Business Suite systems and transforming them into consistent and easily understandable views.

VDMs allow you to access data in one component and use it in another without having to persist
the data a second time.

A Virtual data model consists of the following types of views −

Query views are designed for direct consumption by an analytical application (based on
HTML5, for instance) or a generic analytical tool (for example, BusinessObjects tools). They are
always the top view in a hierarchy of views and are not designed for reuse in other views.
However, the virtual data model also includes query views to support (showcase) applications
based on the virtual data model.The interface of the query views is kept stable. The name of a
query view ends with Query and provides output fields in a format consumable by UIs.
Reuse views are the hearts of the virtual data model. They expose the business data in a well-
structured, consistent and comprehensible way, covering all relevant business data in SAP
Business Suite systems. They are designed for reuse by other views and must not be consumed
directly by analytical tools.

Private views encapsulate certain SQL transformations on one or several database tables or even
other views. They are not classified as reuse views, as they might not carry clear business
semantics, but are rather intended to be reused in other views. They are comparable to
subroutines or (private) methods in programming languages. A private view may be based on
database tables, other private views, or on reuse views.

Value help views (VHVs) provide the value list for a specific business entity that is used in a
value help in a query view. Relevant business entities are specified by an identifier or code. A
maximum of one VHV is defined for each business entity per package. A VHV is included either
in an underlying package to the business query views that make use of it, or in the same package.
In SAP HANA, for each main package a specific VHV exists for a specific business entity.

Which routing rules has to be defined in SAP HANA studio to configure Web Dispatcher to use HTTPS
request?

Three routing rules need to be defined in SAP NWG system −

 Default_host/sap/public
 Default_host/sap/bc
 Default_host/sap/opu

Two routing rules need to be defined in the HANA studio −

 Content/sap/hana
 Content/sap/hba

In SAP NetWeaver 7.31 ep1, which roles should be assigned to Fiori Launchpad administrator?

The Launchpad administrator must have the PFCG role SAP_UI2_ADMIN assigned.

SAP_UI2_ADMIN is a composite role containing the following release-dependent roles −

SAP_UI2_ADMIN_700 for SAP NetWeaver 7.0

SAP_UI2_ADMIN_702 for SAP NetWeaver 7.0 enhancement package 2

SAP_UI2_ADMIN_731 for SAP NetWeaver 7.0 enhancement package 3 and SAP NetWeaver
7.3 enhancement package 1
What is Next ?

Further you can go through your past assignments you have done with the subject and make sure
you are able to speak confidently on them. If you are fresher then interviewer does not expect
you will answer very complex questions, rather you have to make your basics concepts very
strong.

Second it really doesn't matter much if you could not answer few questions but it matters that
whatever you answered, you must have answered with confidence. So just feel confident during
your interview. We at tutorialspoint wish you best luck to have a good interviewer and all the
very best for your future endeavor. Cheers :-)

Potrebbero piacerti anche