Question 1
Which HTTP request method can you use to create an OData resource?
Correct Answer: POST
Justification (from course):
OData CRUD operations map to standard HTTP verbs — Create operations are performed by POST. This mapping and OData usage is covered in the course material (see Unit 04.docx where OData service usage and SAP Gateway administration are discussed). POST is the standard HTTP method used to create a new entity in an OData service.
Cross examination:
- UPDATE — not an HTTP method (term/concept only).
- PUT — used to replace or update an existing resource (idempotent), not the usual verb to create a new resource in OData (POST is used for create).
- CHANGE — not an HTTP standard verb.
Summary: Use POST to create OData resources (Create → POST).
Question 2
What are some benefits of using OData V4 compared to OData V2? (3 correct answers)
Options (correct ones highlighted below)
Correct Answers:
- Improved data types
- Better data compression
- Advanced analytical capabilities
Justification (from course):
Unit 04 covers OData V4 (and the related admin transaction /IWFND/V4_ADMIN), and the course points to the improvements introduced with OData V4. In short: OData V4 brings a richer type system and improved JSON payload formats (improved data types), new or improved query capabilities and more efficient payloads/delta mechanisms (which lead to better transmission efficiency / reduced payload overhead), and advanced query operators such as aggregation-support ($apply) that enable more powerful analytical queries (advanced analytical capabilities).
Cross examination:
- Flexible programming model — this is more about frameworks or server-side programming approaches, not a core differentiator between OData V2 vs V4.
- Better UX consistency — UX consistency is driven by Fiori/SAPUI5 frontend design guidelines, not directly by OData protocol version.
Summary: OData V4 improves the protocol (types and payload), adds more powerful query/aggregation features for analytics, and can reduce payload size — hence the three selected options.
Question 3
What are some benefits of using SAP Fiori? (select correct ones)
Correct Answers:
- Accessibility support and multi-device compatibility
- Compliance with SAP Fiori design specifications
- Reduced development and maintenance costs
Justification (from course):
The course materials (Describing ABAP Platform.docx and SAP CERTIFICATION Unit 1.docx) explain Fiori design principles: a responsive, role-based UX with accessibility features (themes, high-contrast modes, keyboard assistance and quick tours), and a consistent design specification. Following the Fiori design system yields consistency across apps, better accessibility and multi-device support, and encourages reuse of components and patterns which reduces development and maintenance effort.
Cross examination:
- Custom floorplans for unique scenarios — while possible in exceptional cases, custom floorplans are not a general benefit of using Fiori’s standard approach (they are more of a customization/exception).
- Accelerated development of JavaScript UI code — SAPUI5 provides tools and patterns that help development, but the course emphasizes design consistency and reusability rather than a guaranteed “accelerated JavaScript development” claim — the bigger, explicit benefits called out are accessibility, design compliance, and reduced maintenance.
Summary: Fiori brings accessibility, consistency (design-spec compliance), and long-term maintenance benefits.
Question 4
Your customer wants to enable translation/localization for a SAPUI5/Fiori app. Which of the following steps are correct? (3 correct)
Correct Answers:
- Create a resource file for each language.
- Encode the special characters in HTML in the resources file.
- Create a resource file containing key/value pairs.
Justification (from course):
Unit 05,06,07 includes the UI5 app structure and i18n practice (for example, component.json references like “i18n”: “i18n/i18n.properties”). SAPUI5 uses resource bundles ( .properties files ) that contain key=value entries — one properties file per supported language (e.g., i18n.properties, i18n_de.properties, etc.). Special characters should be handled/encoded correctly in the resource files to avoid rendering issues. The course examples show the i18n property and describe the resource file approach.
Cross examination:
- Create a view file and a controller file for each language — not correct: you do not create separate views/controllers per language; localization uses resource files (key/value pairs) to provide translated strings.
- Create a resource file with a .props extension — incorrect extension; standard is .properties (not .props).
Summary: Use i18n resource bundle .properties files (key=value), one per language, with proper handling of special characters.
Question 5
What are the lifecycle events of an SAPUI5 view controller? (2 correct answers)
Correct Answers:
- onExit
- onAfter Rendering
Justification (from course):
The UI5 controller lifecycle hooks are standard and are covered in the UI5 development sections (see Unit 05,06,07 which contains UI5 app structure and examples). Typical lifecycle hooks include onInit (initialization), onBeforeRendering / onAfterRendering (pre/post-render actions; note variations between versions), and onExit (cleanup when the controller instance is destroyed). The valid options among the choices are onAfterRendering and onExit.
Cross examination:
- onbeforeEntry — not a standard SAPUI5 controller lifecycle hook.
- onRendering — not the correct standard hook name (the standard hook is onAfterRendering or onBeforeRendering depending on the need).
Summary: The standard SAPUI5 controller lifecycle includes onAfterRendering (post-render) and onExit (cleanup), so those two are correct.
Question 6
What are some advantages of the Model View Controller (MVC) design pattern used in SAPUI5?
Note: There are 2 correct answers to this question.
Correct Answer:
-
Allows changing the view without modifying the underlying business logic.
-
Allows to define several views of the same data.
Justification (course-based):
MVC separates responsibilities: the Model holds data, the View presents it, and the Controller contains behavior. Because of this separation, you can change or replace Views while the Model and Controller remain untouched, and you can create multiple Views that present the same Model in different ways. This decoupling is a fundamental benefit taught in the SAPUI5 course (UI5 follows MVC to improve maintainability and reuse).
Cross Examination:
-
It supports quick coding. — Not a core, provable property of MVC; it’s about maintainability and separation of concerns rather than “faster” coding per se.
-
MVC artifacts can be transported and debugged separately. — This is an implementation/operational detail (and can be true in some environments), but it’s not one of the primary conceptual advantages emphasized for MVC in UI5 (the primary advantages are separation and reusability).
Summary:
Pick the options that reflect separation of concerns and reusability — multiple views per model and view-changes without touching business logic.
Question 7
(from 2.png — Question 7/61)
Your customer extends an SAP Fiori app with View Replacement. Which activities do you perform?
Note: There are 2 correct answers to this question.
Correct Answer:
-
Create an SAPUI5 view that replaces the complete view.
-
Verify that adding custom content in the Extension Points is NOT sufficient.
Justification (course-based):
View Replacement is used when the built-in extension points are insufficient for your change. In that case you create a replacement view (a full SAPUI5 view) and register it as the replacement. The course explains that you should first check whether extension points can achieve the change; only when they are insufficient do you use view replacement and supply a replacement view.
Cross Examination:
-
Create an SAPUI5 control that replaces the original control. — That describes control-level replacement (a different extension approach), not view replacement.
-
Identify a specific SAPUI5 control to be replaced. — Also applies to control replacement, not to replacing the entire view.
Summary:
For view replacement: verify extension points don’t suffice, then create the replacement view (not just a control).
Question 8
(from 3.png — Question 8/61)
You are modelling a new role for your SAP Fiori Launchpad users. Which of the following steps is an optional configuration step?
Options included (summarized): Assign Catalog to Role; Create Tiles and Target Mappings; Create Catalog; Create Group and Assign Tile.
Correct Answer:
-
Create Group and Assign Tile (this is the optional step).
Justification (course-based):
When setting up roles for the Fiori Launchpad, the essential work is to provide the catalog entries/tiles (and their target mappings) and assign the catalog(s) to the role so the user can access the app. Groups are the way tiles appear on a user’s home page — they control layout/presentation on the Launchpad home. A group assignment is useful for the user home page but is not strictly required for the user to find/launch the app (users can use the App Finder). Hence creating/assigning a group is usually the optional step.
Cross Examination:
-
Create Catalog — required to package tiles.
-
Create Tiles and Target Mappings — required so the app can be launched from a tile.
-
Assign Catalog to Role — required so the role (and thus the user) has access to the catalog contents.
Summary:
Groups are about home-page layout (optional); catalogs, tiles, target mappings and assigning catalogs to roles are the mandatory configuration steps.
Question 9
(from 4.png — Question 9/61)
You need to bind data from a model to an SAPUI5 view control. Which of the following modes are valid?
Note: There are 3 correct answers to this question.
Options included (summarized): One-way binding; Resource-model binding; Three-way binding; One-time binding; Two-way binding.
Correct Answer:
-
One-way binding
-
One-time binding
-
Two-way binding
Justification (course-based):
SAPUI5 supports binding modes such as:
-
One-way (model → view updates),
-
Two-way (model ↔ view; UI changes propagate back to model), and
-
One-time (value read once at binding initialization).
These are the standard binding modes explained in the UI5 documentation and the course. ResourceModel is a model type (for i18n), not a binding mode, and “three-way binding” is not a standard UI5 binding mode.
Cross Examination:
-
Resource-model binding — this names a model type (ResourceModel), not a mode.
-
Three-way binding — not a standard SAPUI5 binding mode.
Summary:
Valid binding modes: One-way, One-time, and Two-way.
Question 10
(from 5.png — Question 10/61)
A business user is unable to find an application on the SAP Fiori Launchpad or in the App Finder. Which of the following options could explain why the tile is unavailable?
Note: There are 3 correct answers to this question.
Options (summarized):
-
The catalogs assigned to the user do not contain the relevant application or tile.
-
The OData service authorization is missing.
-
The user does not have the proper PFCG role assigned.
-
The target mapping for the tile is missing in the catalog.
-
The end user is missing the required group containing the tile.
Correct Answer (the three most likely causes shown on the screenshot):
-
The OData service authorization is missing.
-
The target mapping for the tile is missing in the catalog.
-
The end user is missing the required group containing the tile.
Justification (course-based):
Tile visibility can be caused by different configuration/authorization issues:
-
If the OData service authorization required by the app is missing, the app may fail or be hidden for the user.
-
A missing target mapping means the tile has no executable target, so it won’t work/appear correctly in the catalog.
-
If the user doesn’t have the group (home page group) containing the tile, the tile won’t show on that user’s Launchpad home (though they might still find the app via App Finder if catalog/role is correct).
(The screenshot shows these three as the selected/expected correct items in that test question.)
Cross Examination:
-
The catalogs assigned to the user do not contain the relevant application or tile — that is a valid reason in general and sometimes appears as a correct option in similar questions; however on this specific question (per the screenshot) the three checked items were the OData authorization, target mapping, and missing group.
-
The user does not have the proper PFCG role assigned — often a root cause (roles deliver catalogs/groups), but the screenshot’s correct set for this particular question were the three items listed above.
Summary:
Common reasons for a missing tile include missing service authorization, missing target mapping, or the user not having the group containing the tile — those are the three causes called out for this question.
Question 11
Which activities does the OData Model Editor support?
Note: 2 correct answers.
Correct Answer:
- Create ODataModels
- Edit ODataModels
Justification:
The OData Model Editor in SAP Business Application Studio is intended for modeling and defining OData entities, properties, associations, etc. Its purpose is to create new OData models and edit existing ones to reflect application needs. Deployment and runtime testing are separate tasks handled outside the editor.
Cross Examination:
- Deploy ODataModels → Deployment happens via transport or deployment tools, not via the editor.
- Test ODataModels → Testing requires tools like SAP Gateway Client, not the model editor itself.
Summary:
The OData Model Editor helps you create and edit OData models, but deployment/testing are external processes.
Question 12
Which of the following are generic actions provided by SAP Fiori elements?
Note: 2 correct answers.
Correct Answer:
- Create an item
- Delete an item
Justification:
Fiori elements generate applications with generic actions such as Create, Edit, Delete, Save, or Navigate. Business-specific actions like “Approve” are not provided out-of-the-box.
Cross Examination:
- Approve an item → This is a business-specific action requiring custom extension.
- Trigger external navigation → Possible but requires custom configuration.
Summary:
Generic Fiori element actions = Create and Delete items.
Question 13
Your customer asks you to demonstrate their app with localization changes. Which activity do you perform?
Correct Answer:
- Show the i18n.properties file translations
Justification:
Localization in SAPUI5 is achieved with the i18n.properties resource bundle. To demonstrate localization, you show translations inside the i18n files (for each supported language).
Cross Examination:
- Configure run configuration file → Handles execution setup, not translations.
- Use preview frame → Displays current UI, doesn’t manage translations.
- Configure supportedLanguages in Project.json → Declares languages, but demonstrating requires i18n content.
Summary:
Localization demonstrations are done via the i18n.properties translation files.
Question 14
Which features of SAP Business Application Studio help you extend a standard SAP Fiori app?
Note: 2 correct answers.
Correct Answer:
- A wizard to generate the files for each extension possibility
- The Extensibility Pane to choose extension points
Justification:
SAP BAS provides guided wizards to generate extension files and an Extensibility Pane for selecting extension points. These simplify extension tasks.
Cross Examination:
- Descriptor Editor to choose elements for extension → Descriptor editor edits manifest.json metadata, not extension selection.
- Modify data model in extended project → Data model editing is separate, not a key BAS feature for extension.
Summary:
Use wizard + Extensibility Pane to extend Fiori apps in BAS.
Question 15
You need to securely connect SAP BTP to an on-premise system. How does the SAP Cloud Connector help?
Note: 2 correct answers.
Correct Answer:
- It creates connectivity by a reverse-invoke process on the on-premise system.
- It secures an SSL tunnel between the SAP BTP and the on-premise system.
Justification:
The SAP Cloud Connector ensures secure connection between SAP BTP and on-premise via a reverse invoke connection and establishes an SSL tunnel for encrypted communication.
Cross Examination:
- Cloud-based reverse-invoke process → Reverse invoke is initiated from the on-premise side, not the cloud side.
- Custom destination API config/certificate inspection → Destinations and certificates are managed in BTP Cockpit, not directly in Cloud Connector.
Summary:
Cloud Connector = reverse-invoke connectivity + SSL tunnel security.
Question 16
Your customer asks you to add text for a new language. Which file do you send to the translator?
Correct Answer:
- i18n.properties
Justification:
The i18n.properties file contains translatable text strings. To support new languages, you send this file to a translator, then create localized versions like i18n_de.properties, i18n_fr.properties.
Cross Examination:
- Master.view.xml → Defines UI structure, not translatable texts.
- Manifest.json → App descriptor metadata, not user-facing translations.
- Component.js → Defines app component, not translations.
Summary:
Send the i18n.properties file for translation.
Question 17
Which options can you use to display data in a readable format on mobile?
Note: 2 correct answers.
Correct Answer:
- <column demandPopin=”true” minScreenWidth=”tablet” popinDisplay=”Inline”>
- <column demandPopin=”true” minScreenWidth=”tablet”>
Justification:
Using demandPopin with minScreenWidth adapts tables for smaller devices by moving columns into pop-ins when the screen is smaller than “tablet.” This ensures readability on mobile.
Cross Examination:
- maxScreenWidth=”mobile” → Incorrect; UI5 uses minScreenWidth to trigger responsive behavior.
- maxScreenWidth with popinDisplay → Not valid in responsive table configuration.
Summary:
Correct usage = demandPopin + minScreenWidth=”tablet”.
Question 18
You want to create an SAP Fiori app with charts and visual filters. Which template?
Correct Answer:
- Analytical List Page
Justification:
The Analytical List Page (ALP) template supports charts, tables, and visual filter bars. It is the recommended Fiori element for analytical apps.
Cross Examination:
- Worklist Page → Designed for task lists, not analytics.
- Custom Page → Requires manual build, no ready chart/filter integration.
Summary:
For analytics + charts + visual filters, use Analytical List Page.
Question 19
What activities are required to set up a hook method?
Note: 3 correct answers.
Correct Answer:
- Define a new function name ensuring it is reserved for the extension.
- Identify a strategic location in the controller for the customized code.
- Add a code snippet to check if the method exists and execute it.
Justification:
Hook methods allow safe customer extensions. You must define a reserved method name, insert it in the correct controller location, and add a conditional check before executing.
Cross Examination:
- Modify bootstrap option for multi-layer extensions → Not related to hook method setup.
- Create Util .js file → Not a standard requirement for hook methods.
Summary:
Hook methods = define reserved function + strategic placement + conditional check.
Question 20
You need to configure an SAP Destination service for BAS extension. Which WebIDEUsage property is required?
Correct Answer:
- extend_abap
Justification:
The WebIDEUsage property defines how the destination is used. For extending an existing SAP Fiori app in BAS (previously Web IDE), the required value is extend_abap.
Cross Examination:
- odata_abap → Used for OData access.
- dev_abap → Used for app development from ABAP system.
- ui5_execute_abap → Used for running UI5 apps, not extending.
Summary:
Use extend_abap in the destination’s WebIDEUsage.
Question 21
While testing an SAP Fiori app you discover the navigation on the page does not work correctly. Which of the following agile pyramid options do you use?
Correct Answer:
- QUnit
Justification:
The Agile Testing Pyramid for SAPUI5 apps includes QUnit (unit testing framework), OPA5 (integration tests), and Sinon/MockServer (mocking). If navigation logic (controller code/UI flow) is incorrect, the first level test is QUnit to validate functions/events.
Cross Examination:
- OOPA (OPA5) → Used for end-to-end navigation simulation, but here the immediate correction involves unit-level testing.
- Mock server → Used for mocking backend data, not testing navigation logic itself.
- Sinon → For stubbing/mocking functions.
Summary:
To test navigation issues, apply QUnit unit tests first.
Question 22
You develop an SAPUI5 app and implement a FacetFilter. What events are triggered when the user interacts with the FacetFilter control?
2 correct answers.
Correct Answer:
- reset
- confirm
Justification:
FacetFilter raises events like confirm (when selections are confirmed/applied) and reset (when selections are cleared). These are the main events exposed in SAPUI5 API.
Cross Examination:
- listFilter → Not an event in FacetFilter API.
- oninit → Lifecycle event, not FacetFilter-specific.
Summary:
FacetFilter triggers reset and confirm events.
Question 23
Which UI elements can be part of a standard Analytical List Page app?
3 correct answers.
Correct Answer:
- Interactive chart
- Visual filter
- Table
Justification:
The ALP template includes charts (interactive), visual filters, and tables as standard components. Forms and “visual tables” are not part of the ALP template by default.
Cross Examination:
- Form section → Belongs to Object Page, not ALP.
- Visual table → Not a standard element name in ALP.
Summary:
ALP standard parts: Interactive chart, Visual filter, Table.
Question 24
You finalized your SAPUI5 app in SAP BAS. To which platforms can you deploy this app?
2 correct answers.
Correct Answer:
- SAP Fiori Launchpad
- SAP BTP
Justification:
Apps built in BAS can be deployed to SAP BTP (Cloud Foundry) or to on-premise Launchpads. Direct deployment to “SAPUI5 ABAP repository” is done via ABAP backend, not BAS directly, and no “SAPUI5 Java repository” exists.
Cross Examination:
- SAPUI5 Java repository → Not a valid deployment target.
- SAPUI5 ABAP repository → Used with ABAP-based deployments, not directly from BAS.
Summary:
Deployment goes to SAP BTP or SAP Fiori Launchpad.
Question 25
What is added by the ABAP CDS annotation in the app?
Correct Answer:
- A section containing a subsection which displays the address details
Justification:
The annotation defines a facet of type COLLECTION with a child FIELDGROUP_REFERENCE (“address”). This creates a section (Personal data) with a subsection showing address field groups.
Cross Examination:
- Two sections in body → Incorrect; address is a subsection, not a separate section.
- Header sections → Wrong; annotations affect Object Page body, not header.
Summary:
Annotation creates a section with subsection for address details.
Question 26
Which of the following determines how data is displayed in SAP Fiori elements apps?
Correct Answer:
- Templates
Justification:
Fiori elements apps are generated from templates (List Report, Object Page, ALP, Overview Page). Templates control display and interaction; logic/database structures do not directly dictate UI layout.
Cross Examination:
- Application logic → Influences behavior but not generic display.
- Database structure → Provides data, not layout.
- User permissions → Restrict access, not how data is displayed.
Summary:
Templates determine Fiori elements data display.
Question 27
CDS annotation (headerInfo). What is displayed in the upper left part of the object page?
2 correct answers.
Correct Answer:
- Sales Order Number value
- Sales Order Owner
Justification:
title → shown top-left as Sales Order Number (with its value).
description → shown beneath as Sales Order Owner.
The typeName/typeNamePlural are metadata labels, not displayed in the header.
Cross Examination:
- ‘Sales Orders’ → Used as plural entity name, not header info.
- ‘Sales Order’ → Singular entity name, metadata only.
Summary:
Header shows Sales Order Number value + Sales Order Owner.
Question 28
To which of the following does an SAP Fiori tile point directly?
Correct Answer:
- A target mapping with a semantic object and an action
Justification:
Tiles in Launchpad link to target mappings (semantic object + action). The target mapping defines the actual app navigation.
Cross Examination:
- SAP Fiori app → Indirect, actual link is through target mapping.
- Semantic object → Needs action, cannot point alone.
- Action → Needs semantic object.
Summary:
Tiles point to target mappings (semantic object + action).
Question 29
CDS annotation (headerInfo). What is the title of the list report table?
Correct Answer:
- Sales Orders
Justification:
typeNamePlural: ‘Sales Orders’ defines the plural entity label, which is shown as the title of the list report table.
Cross Examination:
- Sales Order Owners → Not defined.
- Sales Order Numbers → Not defined; only a title field for the header, not the table.
Summary:
The list report table title is Sales Orders.
Question 30
What are some SAP recommended ways of adding custom code to an SAP Fiori elements application? (3 answers)
- Create new templates.
- Use controller extensions. ✅
- Use building blocks. ✅
- Use private methods of SAP Fiori elements.
- Create apps using the custom page template in the application generator. ✅
Correct Answer:
- Use controller extensions
- Use building blocks
- Create apps using the custom page template in the application generator
Justification:
SAP recommends non-intrusive ways of extending Fiori elements apps. Controller extensions allow you to inject custom logic, building blocks allow you to reuse UI logic efficiently, and custom page templates enable specialized extensions. Creating new templates or using private methods is not recommended since they break upgrade compatibility.
Cross Examination:
If you used private methods, would the app still work? Possibly, but it would risk breaking in future updates since SAP does not guarantee private APIs remain stable.
Summary:
Stick to controller extensions, building blocks, and custom page templates for safe and upgrade-proof extensibility.
Question 31
Which control can you use to create responsive table-free layouts?
- sap.ui.layout.Grid ✅
- sap.ui.layout.Responsive FlowLayout
- sap.ui.layout.VerticalLayout
- sap.ui.layout.HorizontalLayout
Correct Answer:
- sap.ui.layout.Grid
Justification:
The sap.ui.layout.Grid control is specifically designed for responsive, table-free layouts. It adapts automatically to different screen sizes.
Cross Examination:
Could ResponsiveFlowLayout also achieve responsiveness? It can, but it is less flexible and not SAP’s recommended approach for modern apps.
Summary:
The correct choice is sap.ui.layout.Grid for responsive, table-free layouts.
Question 32
You develop an SAPUI5 app that updates data for sales orders and items. What do you create to implement a deep insert? (2 answers)
- An object structure that defines the hierarchy. ✅
- A nested structure for Sales Order and Sales Order Items. ✅
- Individual structures batched together.
- A flat structure with expand command.
Correct Answer:
- An object structure that defines the hierarchy
- A nested structure for Sales Order and Sales Order Items
Justification:
Deep inserts require hierarchical/nested structures so that parent and child entities (Sales Order → Sales Order Items) are created in one operation.
Cross Examination:
Could batching work instead? Batching works for multiple independent requests, but deep insert specifically means hierarchical dependent data in one request.
Summary:
Deep insert = hierarchical + nested structure representing parent-child relationships.
Question 33
How can you configure the Flexible Column Layout in Fiori elements apps? (2 answers)
- By adding a setting to the package.json file
- By implementing a flexible custom extension
- By using the Page Map ✅
- By adding a setting to the manifest.json file ✅
Correct Answer:
- By using the Page Map
- By adding a setting to the manifest.json file
Justification:
Fiori elements rely on configuration rather than coding. manifest.json defines layout options, and Page Map allows defining navigation/column layout relationships.
Cross Examination:
What about package.json? That’s only for Node.js dependencies, not app layout.
Summary:
Flexible Column Layout is configured via manifest.json and Page Map.
Question 34
In the Arrange-Act-Assert pattern, which element corresponds to Act in a QUnit test?
- this.calculator.press(“1”); ✅
- teardown:function(){}
- QUnit.module
- QUnit.test
Correct Answer:
- this.calculator.press(“1”);
Justification:
“Act” refers to performing the action under test. Here, pressing a calculator button is the “Act.”
Cross Examination:
Is QUnit.test also part of Act? No, that defines the test structure, not the action itself.
Summary:
The Act is represented by this.calculator.press(“1”);.
Question 35
Which activity allows you to send commits from your local branch to the remote repository?
- Clone
- Push ✅
- Commit
- Save
Correct Answer:
- Push
Justification:
git push is used to send local commits to a remote repository.
Cross Examination:
Does commit upload changes? No, commit saves locally only. Push is needed to transfer them.
Summary:
To send commits to a remote repository → use Push.
Question 36
What does the CDS annotation achieve?
@UI.lineItem: [{position: 10}] ProductName;
@UI.lineItem: [{position: 20}] Status;
@UI.lineItem: [{position: 30}] Price;
Correct Answer:
- 3 columns: ProductName (1st), Status (2nd), Price (3rd)
Justification:
The @UI.lineItem annotation defines columns in a list report table. The position values control ordering.
Cross Examination:
Could this be fields in a form? No, since @UI.lineItem is specifically for table/list report representation.
Summary:
This annotation defines 3 table columns in the specified order.
Question 37
Which extension properties are defined in manifest.json? (2 answers)
- sap.ui.viewModifications ✅
- sap.ui.modelModifications
- sap.ui.i18nModifications
- sap.ui.controllerExtensions ✅
Correct Answer:
- sap.ui.viewModifications
- sap.ui.controllerExtensions
Justification:
These are extension points in manifest.json used to adapt SAP Fiori apps (views, controllers).
Cross Examination:
Could i18n be modified here? No, i18n is handled through resource bundles, not manifest.json.
Summary:
Correct extension properties are viewModifications and controllerExtensions.
Question 38
Which tile types can use a data service to set title properties?
- Dynamic ✅
- Static
- Semi-dynamic
Correct Answer:
- Dynamic
Justification:
Dynamic tiles pull live data from an OData service, updating values and titles dynamically.
Cross Examination:
Can static tiles do this? No, they are hardcoded.
Summary:
Only dynamic tiles use data services for titles.
Question 39
Which SAP Fiori app can be launched via search instead of a tile?
- Legacy
- Factsheet ✅
- Transactional
- Analytical
Correct Answer:
- Factsheet
Justification:
Fact sheets are launched via Enterprise Search, not tiles.
Cross Examination:
Could transactional apps also appear? No, transactional apps are launched via tiles.
Summary:
Apps launched via search = Fact sheets.
Question 40
What are examples of extension points? (3 answers)
- Custom action ✅
- Table building block
- Field building block
- Custom section ✅
- Custom column ✅
Correct Answer:
- Custom action
- Custom section
- Custom column
Justification:
Extension points allow adding new UI actions, sections, and columns in Fiori elements apps. Building blocks are reusable UI parts but not extension points.
Cross Examination:
Are building blocks extension points? No, they are design-time reuse elements, not runtime extension hooks.
Summary:
Valid extension points: Custom action, Custom section, Custom column.
Question 41
To visualize metrics using cards, which SAP Fiori elements template does SAP recommend to use?
- Overview Page ✅
- Custom Page
- Analytical List Page
- List Report Page
Correct Answer:
- Overview Page
Justification:
Overview Pages (OVP) are designed for metrics visualization using cards. Cards summarize key business data and allow drill-downs for details.
Cross Examination:
Could an Analytical List Page show metrics? Yes, but ALP uses charts/tables, not cards. OVP is specifically for cards.
Summary:
For card-based metrics → use the Overview Page template.
Question 42
Which of the following pattern sequences are the QUnit tests based on?
- Given, Then, and When
- Arrange, Act, and Assert ✅
- Given, When, and Then
- Assert, Act, and Arrange
Correct Answer:
- Arrange, Act, and Assert
Justification:
QUnit follows the AAA (Arrange → Act → Assert) testing pattern: prepare data, perform action, verify outcome.
Cross Examination:
Why not “Given/When/Then”? That’s a BDD style used in tools like Cucumber, not QUnit.
Summary:
QUnit = Arrange, Act, Assert.
Question 43
Which of the following are building blocks provided by SAP Fiori elements? (3 answers)
- Table ✅
- Filter Field ✅
- Field ✅
- Routing
- Custom Page
Correct Answer:
- Table
- Filter Field
- Field
Justification:
Building blocks are reusable UI parts provided by SAP Fiori elements (like Table, FilterField, Field). Routing and Custom Page are not building blocks.
Cross Examination:
Could Custom Page be considered? No, it’s a template, not a reusable building block.
Summary:
Valid building blocks = Table, Filter Field, Field.
Question 44
What can you use to add a filter field to a list report in an SAP Fiori elements application? (2 answers)
- A setting in the manifest.json file ✅
- The Page Map
- A UI.LineItem annotation
- A UI.SelectionField annotation ✅
Correct Answer:
- A setting in the manifest.json file
- A UI.SelectionField annotation
Justification:
Filter fields in list reports can be configured via manifest.json or annotations like @UI.selectionField. LineItem relates to table columns, not filters.
Cross Examination:
Does Page Map help here? No, Page Map defines navigation/structure, not filters.
Summary:
Use manifest.json and @UI.selectionField annotation to add filter fields.
Question 45
You created a new catalog with some apps. You want to assign them to an existing role for authorization (via PFCG). How?
- By adding the semantic object to the catalog and group
- By adding the catalog to the menu tab of the role ✅
- By assigning the authorization profile for the catalog in the authorization tab
- By adding the tile and target mapping to the group
Correct Answer:
- By adding the catalog to the menu tab of the role
Justification:
In PFCG, catalogs are added to the role’s menu tab. This makes the apps available for the role.
Cross Examination:
Could assigning semantic objects alone work? No, semantic objects define navigation but not authorizations.
Summary:
Assign apps → add catalog in PFCG menu tab.
Question 46
You need backend sorting/filtering for your app. Which SAPUI5 data model must you use?
- XMLModel
- JSONModel
- ODataModel ✅
- ResourceModel
Correct Answer:
- ODataModel
Justification:
Only ODataModel supports server-side filtering and sorting by passing query options ($filter, $orderby). JSON/XML/Resource models are client-side only.
Cross Examination:
Could JSONModel handle sorting? Only on the client side, not backend.
Summary:
For backend sort/filter → ODataModel.
Question 47
Which content types can be displayed within a table cell in SAP Fiori elements apps? (3 answers)
- Micro chart ✅
- Text ✅
- Chart
- Table
- Image ✅
Correct Answer:
- Micro chart
- Text
- Image
Justification:
Fiori tables can render simple text, images, and embedded micro charts. Full charts/tables inside cells are not supported.
Cross Examination:
Can a table be inside a table cell? No, that would break design guidelines.
Summary:
Allowed types = Micro chart, Text, Image.
Question 48
In an SAP Fiori hub deployment, where is the SAPUI5 app code stored for a transactional app?
- SAP Front-End Server (FES) ✅
- SAP HANA XS Engine
- SAP Back-End Server (BES)
- SAP Web Dispatcher
Correct Answer:
- SAP Front-End Server (FES)
Justification:
In hub deployment, UI (SAPUI5 app code) resides in FES, while business logic runs on the back-end system.
Cross Examination:
Could BES host UI? No, BES hosts business data and logic, not UI resources.
Summary:
UI code → FES, backend logic → BES.
Question 49
How can you extend an SAP Fiori app? (3 answers)
- Create an adaptation project ✅
- Modify the properties of the view control.
- Modify the runtime libraries.
- Modify the data model to merge data at runtime.
- Add custom view content in a predefined extension point ✅
Correct Answer:
- Create an adaptation project
- Add custom view content in a predefined extension point
- (and also) Add controller extensions ✅
Justification:
Extension methods include adaptation projects, predefined extension points, and controller extensions. Direct modification of libraries or data model is not allowed.
Cross Examination:
Could you modify runtime libraries? No, this breaks upgrade compatibility.
Summary:
Safe extension options = adaptation project, predefined extension point, controller extensions.
Question 50
In a standard SAPUI5 project, which file is the Application Descriptor?
- Neo-app.json
- Component.js
- Index.html
- Manifest.json ✅
Correct Answer:
- Manifest.json
Justification:
The manifest.json file contains metadata, routing, models, and app configuration. It is the official Application Descriptor.
Cross Examination:
Is Component.js also important? Yes, but it initializes the app — not the descriptor.
Summary:
Application descriptor = manifest.json.
Question 51
Which file is required for configuring an SAP Fiori elements application?
- package.json
- manifest.json ✅
- settings.json
- config.xml
Correct Answer:
- manifest.json
Justification:
The manifest.json file is the Application Descriptor in Fiori. It defines app configuration, models, routing, and annotations.
Cross Examination:
Is package.json also important? Yes, but only for Node.js modules, not Fiori app configuration.
Summary:
For configuration → manifest.json.
Question 52
In the screenshot, you want to display Companies in the Americas. Which binding is correct?
- X:/regions/companies Y: companies/name Z: companies/city
- X:/regions/0/companies Y: companies/0/name Z: companies/0/city
- X:/regions/0/companies Y: name Z: city ✅
- X:/regions/companies Y: name Z: city
Correct Answer:
- X:/regions/0/companies Y: name Z: city
Justification:
Since we’re targeting a specific region (Americas at index 0), the binding path must include /regions/0/companies. Within the loop, bindings reference name and city.
Cross Examination:
If we used /regions/companies, it would require a context loop but wouldn’t directly fetch Americas data.
Summary:
Use /regions/0/companies → name, city for binding.
Question 53
You want to display transaction status as OK/Warning/Error with colors. Which annotation is correct?
- @UI.lineItem: [{position: 30}]QUI.selectionField: [{position: 30}]Status;UpdatedStatus;
- @UI.lineItem: [{position: 30, criticality: ‘UpdatedStatus’}]Status; ✅
- @UI.selectionField: [{position: 30}]UpdatedStatus;
Correct Answer:
- @UI.lineItem: [{position: 30, criticality: ‘UpdatedStatus’}]Status;
Justification:
The criticality property in CDS annotations maps numeric status values (1,2,3) → Error/Warning/OK.
Cross Examination:
Why not selectionField? Because that only adds a filter field, not criticality-based coloring.
Summary:
Use criticality with lineItem to color status.
Question 54
What can you do using the SAP Fiori Tools Extension Pack?
- Build SAP Fiori applications ✅
- Implement SAP BTP integration
- Develop the Fiori elements framework
Correct Answer:
- Build SAP Fiori applications
Justification:
SAP Fiori Tools Extension Pack (for VS Code & BAS) simplifies building and extending Fiori apps via wizards and editors.
Cross Examination:
Can it develop the framework itself? No, it only supports app development on top of the framework.
Summary:
It’s a developer productivity tool → build apps.
Question 55
Which methods can you use to bind data to SAPUI5 controls? (3 answers)
- Aggregation ✅
- Combination
- Property ✅
- Element ✅
- Structure
Correct Answer:
- Aggregation
- Property
- Element
Justification:
SAPUI5 supports three binding modes: property binding (single value), element binding (object), aggregation binding (list/collection).
Cross Examination:
Is “Combination” valid? No, not an official binding type.
Summary:
Valid bindings = Property, Element, Aggregation.
Question 56
What can you do to create a Worklist Fiori elements application? (3 answers)
- Use the Page Map to hide the filterbar of a list report application.
- Add the UI.hideFilterBar annotation in the backend. ✅
- Add the UI.hideFilterBar annotation to the local annotation file. ✅
- Use the Application Generator with a suitable template. ✅
- Add a setting to the manifest.json file of your list report.
Correct Answer:
- UI.hideFilterBar (backend)
- UI.hideFilterBar (local annotation file)
- Application Generator with suitable template
Justification:
A worklist is a simplified list report with no filter bar. This is achieved by UI.hideFilterBar annotations or directly starting with the Worklist template.
Cross Examination:
Manifest.json does not control filter bar hiding.
Summary:
Best ways = hideFilterBar annotation + Worklist template.
Question 57
What are some characteristics of fragments? (2 answers)
- Fragments have their own controller.
- Fragments are found by SAPUI5 Runtime using the module loader. ✅
- Fragments are light-weight UI parts that can be reused. ✅
- Fragments can be a stand-alone view.
Correct Answer:
- Found by runtime via module loader
- Lightweight, reusable UI parts
Justification:
Fragments do not have their own controller and must be included in a view/controller. They’re designed for lightweight reuse.
Cross Examination:
Can a fragment be standalone? No, it must be hosted.
Summary:
Fragments = lightweight, reusable, no controller.
Question 58
What are advantages of Sinon.JS framework? (2 answers)
- Supplies higher level test doubles for timers/AJAX ✅
- Supports only synchronous requests
- Enables test-driven development
- Provides spies, stubs, and mocks ✅
Correct Answer:
- Higher level test doubles (timers/AJAX)
- Provides spies, stubs, and mocks
Justification:
Sinon.js is a JS testing library for test doubles (mocks, stubs, spies) and fake timers/AJAX.
Cross Examination:
Does it restrict to synchronous? No, it handles async too.
Summary:
Sinon.js = test doubles + async simulation.
Question 59
Which are features of SAPUI5 SDK? (2 answers)
- Feature-rich UI controls ✅
- Responsiveness across browsers on non-mobile devices only
- Full translation support ✅
- Interface for Web Dynpro
Correct Answer:
- Feature-rich UI controls
- Full translation support
Justification:
SAPUI5 SDK provides a rich set of UI controls and supports full i18n translations. It is responsive across all devices, not just non-mobile.
Cross Examination:
Does it provide Web Dynpro interface? No, that’s separate technology.
Summary:
SDK = UI controls + i18n support.
Question 60
You perform a QUnit test. Which call returns true?
- assert.strictEqual(0,”0″,”true”);
- assert.strictEqual(0,” “,”true”);
- assert.strictEqual(0,null,”true”);
- assert.strictEqual(0,-0,”true”); ✅
Correct Answer:
- assert.strictEqual(0, -0, “true”);
Justification:
strictEqual checks type + value. In JS, 0 === -0 is true.
Cross Examination:
Why not “0”? Because “0” is a string, not number.
Summary:
Only 0 === -0 passes strictEqual.
Question 61
Which model supports deep inserts?
- XML model
- JSON model
- Resource model
- OData model ✅
Correct Answer:
- OData model
Justification:
Deep insert = sending hierarchical structures in a single request. Only ODataModel supports this.
Cross Examination:
Can JSON/XML do this? They handle static data only, no CRUD/deep insert.
Summary:
Deep inserts → OData model.