Fiori elements interviews test whether you understand metadata-driven UI or just click through wizards. The questions below focus on annotations, floorplans, and extensibility — the areas that separate users from developers.
Floorplans and Basics
Q1. What are the main Fiori elements floorplans?
List Report, Object Page, Overview Page, and Analytical List Page are the core ones. Each maps to a business pattern: browse a list, inspect one object, monitor KPIs, or analyze data. Pick the floorplan that matches the user's task, not the one you like.
Q2. What is the difference between a List Report and an Object Page?
The List Report shows a filterable table of many records; the Object Page shows all details of a single record with sections and subsections. They are linked by navigation from a row to its object page. Both are generated from OData annotations.
Q3. What is the Flexible Programming Model?
It is the recommended way to build Fiori elements apps with OData V4, combining generated pages with custom extensions. You extend via page controllers, custom sections, and custom actions rather than freestyle code. It replaces older extension patterns from the V2 era.
Annotations
Q4. How do you define the UI using annotations?
Annotations in CDS or the annotation file describe line items, identification, facets, and field groups consumed by the Fiori elements runtime. UI.LineItem controls table columns; UI.Facets structure the Object Page. Change the annotation, regenerate nothing — the UI updates at runtime.
Q5. How do you add a value help to a field?
Use the Common.ValueList annotation pointing to the value-help entity, with parameters mapping local fields to value-list fields. The runtime renders the F4 dialog automatically. For large lists, add ValueListWithFixedValues or search-supported parameters.
Q6. How do you control field visibility or read-only behavior?
Use UI.Hidden for visibility and field-control annotations or Common.FieldControl for editability. These can be static or bound to a data field for dynamic behavior. Dynamic field control is the clean way to implement status-dependent editing.
If a requirement can be expressed as an annotation, do that before writing a single line of JavaScript. Custom code is maintenance debt.
Draft Handling and Actions
Q7. How does draft handling work in Fiori Elements?
Draft-enabled entities let users edit a temporary copy while the active version stays untouched until activation. The framework manages draft creation, editing, and activation via standard OData draft functions. Your backend (RAP or CAP) implements the draft logic.
Q8. How do you add a custom action to a List Report or Object Page?
Define the action in the backend (OData action or function import) and annotate it with UI.DataFieldForAction. It appears as a button bound to selected or current records. For client-only logic, custom actions in the page controller call the backend explicitly.
Q9. How do you handle side effects after an action runs?
Annotate the action with side effects so the UI refreshes affected fields or entities after execution. Without it, the user sees stale data until a manual refresh. Side effects are part of the action annotation, not controller code.
Extensibility and Debugging
Q10. What extension options exist for Fiori Elements apps?
Custom sections and columns on the Object Page, view and controller extensions, custom actions, and building blocks in the flexible programming model. Each has a supported extension point; using unsupported DOM manipulation breaks with upgrades. Stay on the documented extension APIs.
Q11. When would you NOT use Fiori Elements?
When the UI needs heavy custom interaction, canvas-style layouts, or workflows the floorplans cannot express. Freestyle SAPUI5 gives full control at the cost of more code. If more than half the app is custom sections, reconsider the choice.
Q12. How do you debug annotation problems?
Open the app with ?sap-ui-debug and check the annotation model in the UI5 diagnostics. Validate the XML or CDS annotations for typos and wrong targets. The network tab shows whether the annotation file was even loaded.
Q13. What role does manifest.json play in a Fiori Elements app?
It declares the data source, the OData model, routing targets per floorplan, and page settings. The Fiori elements runtime reads it to bootstrap the correct template. Most page-level behavior is configured here, not in code.
Q14. What is the Analytical List Page used for?
It combines KPI visualizations (charts, KPI tags) with a table for data analysis scenarios. It is driven by analytical annotations on top of the list report pattern. Use it when users need to analyze before acting.
Fiori elements expertise is really annotation expertise. Learn the UI vocabulary and the framework does the rest.
Interviewing soon? Drop your toughest question in the comments.