You want to create an SAP Fiori application containing charts and visual filters. Which SAP Fiori template would you use?
A. Custom Page
B. Analytical List Page
C. Worklist Page
I.
J.
Explanation:
The Analytical List Page (ALP) is the correct SAP Fiori template when you need to build an application that contains charts and visual filters. ALP is specifically designed for analytical scenarios where users must analyze large volumes of data, identify patterns, and immediately act on insights.
An Analytical List Page combines:
Interactive charts for real-time data visualization
Visual filters that allow users to filter data graphically using charts
KPIs for high-level monitoring
Responsive tables that react to chart selections
This makes ALP ideal for use cases such as sales analysis, procurement analytics, financial reporting, and operational monitoring. The template supports SAP Fiori elements, meaning most of the UI is generated automatically based on OData annotations, reducing development effort while ensuring SAP Fiori design compliance. Because the requirement explicitly mentions charts and visual filters, ALP directly fulfills this requirement without custom coding.
❌ Why the Other Options Are Not Correct
A. Custom Page
A Custom Page (freestyle Fiori app) offers full UI flexibility but does not provide built-in analytical features like visual filters or analytical charts. These would need to be manually implemented using SAPUI5 controls, increasing development complexity and deviating from standard Fiori elements use cases.
C. Worklist Page
A Worklist Page is intended for task-driven and operational scenarios, such as processing lists of items or approvals. It focuses on tables and basic filtering and does not support charts, KPIs, or visual filters, making it unsuitable for analytical requirements.
References:
SAP Help Portal – Analytical List Page (SAP Fiori elements)
SAP Fiori Design Guidelines – Analytical List Page
You develop an SAPUI5 app that updates data for sales order and sales order items on the back-end system. What do you create to implement a deep insert? Note: There are 2 correct answers to this question.
A. An individual structure for both Sales Order and Sales Order Items, and then batch them.
B. A nested structure for Sales Order and Sales Order Items.
C. A flat structure with Sales Order and Sales Order Items, and then add an expand command.
D. An object structure that defines the hierarchy.
Explanation:
A deep insert creates a parent entity with its related child entities in a single OData POST request. This requires the request payload to reflect the parent-child composition defined in the OData service's data model.
B (nested structure) and D (object hierarchy) are two descriptions of the same correct implementation. The payload must be a hierarchical JSON/XML object where the parent entity contains its child entities within its navigation property array (e.g., a SalesOrder object with a to_Items array containing item objects).
A is incorrect because batching individual creates is a separate OData mechanism. It sends multiple independent operations, lacks the atomicity of a single deep insert, and is less efficient.
C is incorrect because the $expand query option is only for read (GET) operations to retrieve related data. It cannot be used in create (POST) requests.
Reference:
OData Version 4.01 Specification, Section "Create Related Entities When Creating an Entity" (Deep Insert) defines the nested payload structure. SAPUI5 OData V4 Model API documentation and ABAP RAP or SEGW service modeling for compositions confirm this implementation pattern.
The following ABAP CDS annotation is used in an SAP Fiori elements app.
What is the title of the list report table?
abap
Copy
@UI.headerInfo: {
typeNamePlural:'Sales Orders',
typeName: 'Sales Order',
title: { type: #STANDARD, value: 'sales order Number'},
description: {type: #STANDARD, value: 'Sales Order Owner'}
}
A. Sales Order Numbers
B. Sales Order Owners
C. Sales Orders
Explanation:
In SAP Fiori Elements List Report, the title displayed above the main table (the one showing the entity name + item count, e.g. “Sales Orders (47)”) is determined exclusively by the @UI.headerInfo.typeNamePlural annotation.
In the given code:
abap@UI.headerInfo: {
typeNamePlural: 'Sales Orders', ← this becomes the List Report table title
typeName: 'Sales Order',
title: { type: #STANDARD, value: 'sales order Number'},
description: {type: #STANDARD, value: 'Sales Order Owner'}
}
typeNamePlural:
'Sales Orders' → directly sets the table header title in the List Report floorplan. This is the standard and only annotation used for this purpose.
Why the other options are incorrect:
A. Sales Order Numbers
This comes from the title.value = 'sales order Number'.
→ This field controls the highlighted title shown on the Object Page header for each individual record (not the List Report table). It has no effect on the List Report table title.
B. Sales Order Owners
This comes from the description.value = 'Sales Order Owner'.
→ This field controls the subtitle / description line below the title on the Object Page header (again, not used in List Report table header).
Only typeNamePlural is relevant for the List Report table title. The title and description sub-annotations are exclusively for Object Page header rendering.
References
SAP Help Portal – Fiori Elements List Report:
→ Section “UI.HeaderInfo” → “typeNamePlural: Plural name of the entity set. Used as title of the table on the list report page.”
You need to securely connect the SAP BTP to an on-premise system. How does the SAP Cloud Connector help do this? Note: There are 2 correct answers to this question.
A. It creates connectivity by a reverse-invoke process on the on-premise system.
B. It supports custom destination API configuration and certificate inspection.
C. It initiates a cloud-based reverse-invoke process.
D. It secures an SSL tunnel between the SAP BTP and the on-premise system.
Explanation:
A. It creates connectivity by a reverse-invoke process on the on-premise system.
The Logic: Traditionally, for an external server to talk to an internal one, you’d need to open an inbound port in your firewall. The Cloud Connector avoids this by initiating the connection from inside the on-premise network (outbound) to the SAP BTP. Once that connection is established, it "reverses" the communication flow, allowing BTP to send requests back down that established pipe.
Why it's correct: It eliminates the need for inbound firewall rules.
D. It secures an SSL tunnel between the SAP BTP and the on-premise system.
The Logic: All data moving between your SAP BTP subaccount and the Cloud Connector is encrypted using a secure TLS (Transport Layer Security) tunnel. This ensures that even though data is traveling over the public internet, it is encrypted and tamper-proof.
Why it's correct: Security is the primary function of the "Connector" part of the name; it acts as a secure gateway.
Why the others are incorrect:
B (Custom destination API/Certificate inspection):
While the Cloud Connector manages certificates for the tunnel, "custom destination API configuration" is typically handled within the SAP BTP Cockpit Destinations service, not the Cloud Connector software itself.
C (Cloud-based reverse-invoke):
This is a wording trick. The reverse-invoke is initiated by the on-premise component, not by the cloud. The cloud cannot "reach in" and start the process; it must wait for the Cloud Connector to say "hello" first.
Which of the following pattern sequences are the QUnit tests based on?
A. Arrange, Act, and Assert
B. Given, When, and Then
C. Given, Then, and When
D. Assert, Act, and Arrange
Explanation:
QUnit tests in SAPUI5 and SAP Fiori development are based on the “Arrange, Act, and Assert (AAA)” pattern.
This structured testing sequence is the standard approach for writing clean, readable, and maintainable unit tests.
Arrange: Set up the test environment, objects, mocks, and required data.
Act: Execute the function, method, or event being tested.
Assert: Verify that the result matches the expected outcome using assertions.
This pattern ensures clear separation of responsibilities in test cases and helps developers quickly understand what is being prepared, what is executed, and what is validated. SAP officially promotes this structure for QUnit-based unit testing in SAPUI5 projects, making it the correct and exam-relevant answer.
❌ Why the Other Options Are Not Correct
B. Given, When, and Then
This is a BDD (Behavior-Driven Development) pattern used in frameworks like Cucumber or Jasmine, not QUnit.
C. Given, Then, and When
This is an incorrect sequence and not a recognized testing pattern.
D. Assert, Act, and Arrange
This order is logically wrong, since assertions must occur after executing the test action.
References
SAP Help Portal – Unit Testing with QUnit (SAPUI5)
SAPUI5 Documentation – Testing with QUnit
How can you configure the Flexible Column Layout in an SAP Fiori elements application? Note: There are 2 correct answers to this question.
A. By adding a setting to the manifest.json file
B. By implementing a flexible custom extension
C. By adding a setting to the package.json file
D. By using the Page Map
Explanation:
The Flexible Column Layout (FCL) in SAP Fiori elements is configured via metadata, not runtime code.
A is correct: The primary configuration is in manifest.json under "sap.ui5" → "routing" → "config". You define the "layout" property (e.g., "TwoColumnsMidExpanded") and "patternSettings" for specific routes.
D is correct: The Page Map in the SAP Fiori tools Visual Studio Code extension provides a visual designer to configure the FCL. Changes made in the Page Map automatically update the manifest.json.
B is incorrect: Custom extensions modify content or behavior within the FCL, but they do not configure the FCL structure itself. The layout must be defined in metadata first.
C is incorrect: The package.json file manages project dependencies and build scripts, not Fiori elements application configuration. UI5/Fiori settings belong exclusively in manifest.json.
Reference:
SAP Fiori elements documentation for "Configuring the Flexible Column Layout" and SAP Fiori tools guide for "Using the Page Map." The configuration is a declarative metadata setup, not imperative coding.
Which of the following are features of the SAPUI5 SDK? Note: There are 2 correct answers to this question.
A. Interface for Web Dynpro
B. Feature-rich UI controls for handling complex UI patterns
C. Responsiveness across browsers on non-mobile devices only
D. Full translation support
Explanation:
The SAPUI5 SDK (now often called OpenUI5 in open-source form) is SAP's HTML5-based UI development toolkit designed for building responsive, enterprise-grade web applications, especially for SAP Fiori.
Key confirmed features from official SAP documentation:
B. Feature-rich UI controls for handling complex UI patterns → Correct.
SAPUI5 provides a large set of rich, ready-to-use UI controls (e.g., sap.m, sap.ui.table, sap.ui.comp.smart controls, charts, forms, etc.) specifically built to handle complex enterprise UI scenarios like master-detail, editable tables, analytical lists, and more. This is a core strength highlighted in the official Demo Kit.
D. Full translation support → Correct.
SAPUI5 includes comprehensive internationalization (i18n) and translation capabilities. Resource bundles allow full multi-language support, automatic locale detection, and right-to-left (RTL) languages. It is explicitly listed as a key feature in the SAPUI5 SDK documentation.
Why the other options are incorrect:
A. Interface for Web Dynpro → Incorrect.
SAPUI5 is a separate, modern JavaScript/HTML5 framework. Web Dynpro ABAP/Java is a different, older technology (proprietary, server-side rendered). There is no direct interface between SAPUI5 SDK and Web Dynpro; they are distinct UI technologies (though integration via embedding or navigation is possible in some hybrid scenarios).
C. Responsiveness across browsers on non-mobile devices only → Incorrect. SAPUI5 is fully responsive and supports mobile, tablet, and desktop devices (phones, tablets, desktops). It adapts layouts across all supported platforms/browsers (Chrome, Edge, Safari, Firefox on various OS). The restriction to "non-mobile devices only" is false—responsiveness explicitly includes mobile devices.
References
SAPUI5 SDK Demo Kit – Key Features (official):
→ Lists: "Translation and internationalization support", rich controls, responsiveness on phone/tablet/desktop.
What are the lifecycle events of an SAPUI5 view controller? Note: There are 2 correct answers to this question.
A. onbeforeEntry
B. onRendering
C. onAfterRendering
D. onExit
Explanation:
In SAPUI5, a view controller follows a defined lifecycle that determines when specific hook methods are called. These lifecycle events allow developers to execute logic at key moments during the creation, rendering, and destruction of a view.
Two valid lifecycle events of an SAPUI5 view controller are onAfterRendering and onExit.
onAfterRendering is called after the view has been rendered and added to the DOM. It is commonly used to access DOM elements, adjust UI behavior, or integrate third-party libraries that require rendered HTML elements.
onExit is triggered when the controller is destroyed, such as during navigation away from the view or application shutdown. It is used to clean up resources, detach event handlers, and avoid memory leaks.
These methods are part of the standard controller lifecycle defined by SAPUI5 and are automatically invoked by the framework when applicable.
❌ Why the Other Options Are Not Correct
A. onbeforeEntry
This is not a standard SAPUI5 controller lifecycle method. Similar-sounding methods exist in SAP Fiori Elements or routing-related hooks, but not in a plain SAPUI5 controller.
B. onRendering
There is no lifecycle method named onRendering in SAPUI5 controllers. The correct method is onAfterRendering.
References
SAPUI5 Documentation – Controller Lifecycle
SAP Help Portal – SAPUI5 Controller Hooks
Which of the following tile types can use an OData service to set the title properties?
A. Semi-dynamic
B. Dynamic
C. Static
Explanation:
In SAP Fiori Launchpad, tile types have distinct data source behaviors:
Dynamic Tiles (B) are the only tiles that use a live OData service call to retrieve and update their properties (like title, subtitle, numeric value, etc.) at runtime. They are bound to a data source defined in the catalog.
Semi-Dynamic Tiles (A) have a static configuration but can display a notification (number) fetched from an OData service. Their title and other core properties remain static and are configured in the catalog, not set via OData.
Static Tiles (C) have all properties (title, subtitle, icon) defined statically in the catalog or target mapping. No data service is involved.
Therefore, only Dynamic Tiles use an OData service to set their title and other dynamic properties.
Reference:
SAP Fiori Launchpad documentation for "Tile Types" and "Configuring Dynamic Tiles." The data source configuration for dynamic tiles specifically requires an OData service and a data binding path for properties.
Which file is required for configuring an SAP Fiori elements application?
A. package.json
B. manifest.json
C. settings.json
D. config.xml
Explanation:
The manifest.json file is the mandatory descriptor file for every SAP Fiori elements application (and SAPUI5 apps in general). It serves as the central configuration file where you define:
Application metadata (ID, version, title, etc.)
Routing and targets (pages, floorplans like List Report/Object Page)
Models (OData service bindings)
SAP Fiori elements-specific settings (e.g., sap.fe section for controls, annotations, table settings, header info, actions)
UI5 dependencies, resources, and launchpad tile configurations
Without manifest.json, the SAP Fiori elements runtime cannot interpret or render the application correctly.
Why the other options are incorrect:
A. package.json
→ This is a Node.js/npm file used for project dependencies, scripts, and build tools (e.g., in SAP Business Application Studio or BAS projects). It is present in modern Fiori projects but not required for configuring the Fiori elements app logic or runtime behavior.
C. settings.json
→ This does not exist as a standard configuration file in SAP Fiori elements or SAPUI5 applications. (It might appear in VS Code workspaces or unrelated tools, but irrelevant here.)
D. config.xml
→ This is used in Cordova/PhoneGap hybrid mobile apps (for app metadata like icons, splash screens). SAP Fiori elements apps are web-based (HTML5) and do not use or require config.xml.
Final rule (short): For SAP Fiori elements apps, manifest.json is the single most important configuration file — all floorplan-specific adaptations, extensions, and runtime settings are done here.
References
SAPUI5 SDK – Manifest (Descriptor for Applications):
→ "The existence of the manifest.json file must be declared... It contains, for example, the app ID, the version, the data sources used..."
What does the following ABAP CDS annotation achieve in an SAP Fiori elements app?
abap
Copy
@UI.lineItem: [{position: 10}]
ProductName;
@UI.lineItem: [{position: 30}]
Price;
@UI.lineItem: [{position: 20}]
Status;
A. Three fields in a form: ProductName, Status, Price
B. Three columns: ProductName, Status, Price
C. Three columns: ProductName, Price, Status
D. ProductName only
Explanation:
The Logic: Ordering by Position SAP Fiori Elements uses the position property within the annotation to determine the visual sequence of elements from left to right (or top to bottom). Even though the code is written with Price (position 30) before Status (position 20), the framework sorts these numerically during metadata interpretation.
10: ProductName (1st Column)
20: Status (2nd Column)
30: Price (3rd Column)
Why it's B and not C:
The framework does not render fields in the order they appear in the DDL (Data Definition Language) source code; it strictly follows the numerical value assigned to position. Therefore, Status (20) will always jump ahead of Price (30).
Why the others are incorrect:
A (Three fields in a form):
Forms are controlled by the @UI.identification or @UI.fieldGroup annotations. @UI.lineItem is specifically for tables/lists.
C (ProductName, Price, Status):
This ignores the numerical logic of the position attribute and assumes the framework follows the line-by-line order of the code.
D (ProductName only):
All three fields have the @UI.lineItem annotation, so all three will be rendered as columns.
Key Takeaway
Whenever you see @UI.lineItem, think Table Columns. Whenever you see position, remember that lower numbers appear first, regardless of where they are written in the ABAP CDS view.
How can you extend an SAP Fiori app? Note: There are 3 correct answers to this question.
A. Create an adaptation project
B. Modify the runtime libraries that are to be loaded.
C. Modify the data model to merge data at runtime.
D. Add custom view content in a predefined extension point.
E. Modify the properties of the view control.
Explanation:
SAP Fiori applications are designed to be extended in a stable and upgrade-safe manner. SAP provides several supported extension mechanisms that allow customers and partners to adapt standard apps without modifying the original source code.
Creating an adaptation project (Option A)
is a recommended way to extend SAP Fiori apps using SAPUI5 flexibility services. Adaptation projects allow developers to adjust UI behavior, add logic, or adapt metadata while keeping changes separate from the original application. This ensures compatibility during upgrades.
Adding custom view content in a predefined extension point (Option D)
is a standard and widely used extension mechanism in SAPUI5 and SAP Fiori elements. Extension points are explicitly provided by SAP to allow customers to insert custom UI controls or fragments into existing views safely.
Modifying the properties of the view control (Option E)
is also supported through UI adaptation, controller extensions, or flexibility changes. This includes changing visibility, labels, or other properties of controls without altering the original app code.
❌ Why the Other Options Are Not Correct
B. Modify the runtime libraries that are to be loaded
Changing SAPUI5 runtime libraries is not supported and can break the application or future upgrades.
C. Modify the data model to merge data at runtime
Directly modifying the data model at runtime is not a standard or supported extension mechanism in SAP Fiori apps. Data enhancements should be done via backend services or annotations.
References
SAP Help Portal – Extending SAP Fiori Apps
SAPUI5 Documentation – Extension Points
| Page 1 out of 5 Pages |