Object Page Floorplan

Information
This floorplan is available with SAP Fiori Elements.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the object page header, content area, and footer bar in the SAP Fiori Elements Framework section.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan
Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.
  • You need to structure your content into different sections.
  • You have a page with one section and editable header content.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.
 

List report floorplan

  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a code identified by a scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page
  • Your content can be shown in just one section and you don’t have editable header content.
Dynamic Page Layout page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Header content (optional)
  5. Object marker (optional)
  6. Header toolbar with global actions (optional)
  7. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
Object page with expanded dynamic page header
Object page with expanded dynamic page header
Object page with collapsed dynamic page header
Object page with collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer text (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Progress indicator
  4. Footer text (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use the rating indicator facet to display a single rating value or an aggregated rating (such as an average rating for a product). The facet structure is slightly different in each case.

Single rating value:

The single rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary texts
  3. Rating indicator
Rating indicator facet - Single rating
Rating indicator facet - Single rating

Aggregated rating:

The aggregated rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer text (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.
Rating indicator facet - Aggregated rating
Rating indicator facet - Aggregated rating
Guidelines
We recommend the following property settings when using the rating indicator in header facets:

  • Show 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

Navigation Bar

You can only have several sections in the object page layout and there are two ways to structure it:

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link makes the screen scroll to the corresponding section of the page and the anchor bar remains visible.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

Object page – Anchor bar navigation
Object page – Anchor bar navigation
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu
Developer Hint
Make sure that the UpperCaseAnchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page floorplan.

The tabs are a series of links arranged horizontally at the top of the page which link to subpages. Clicking a link displays the corresponding subpage below and the tabs remain visible.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

If the content of a section contains a control, for example a table, then we recommend to always display it, even if the control title and tab title are identical. This makes it easier for the user to orientate themselves.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Guidelines
If a section contains a control, like a table or a chart, and the title of the control is the same as the section title, then the section title can be hidden so that this title is only displayed once. This avoids unnecessary redundancies.

We recommend the same for subsection titles.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness
Developer Hint
For non-SAP Fiori element object pages only:

The content of the dynamic page header, navigation bar, (sub)section titles, and subsections must be vertically aligned. To achieve this, apply the sapUxAPObjectPageSubSectionAlignContent CSS class to the content of the subsections and set the width property to “auto”.

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns / 6 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. To improve access to the different forms we recommend always using one subsection per form, rather than placing multiple forms into one subsection.

If you need to perform any actions, you can use the subsection header. If you need action at group level, you can use a group header. To prevent confusion, we recommend inserting actions only in one place, depending on the use case.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Block base
Object page – Block base

Tables

When a section or subsection contains one table and no other content, remove the redundant table title so the section or subsection title serves as the table title. In the subsection, also reduce the vertical space.

Grid tables in sections must have at least 4 rows, and the maximum number of rows visible will depend on the window size. To prevent any need for the user to scroll to access the horizontal scrollbar, keep the table within the screen size limitations. This may not be possible in all use cases, for example, if the table contains a large data volume, then you must use two scrollbars.

In an object page with anchor bars, use no more than 4 grid tables to prevent cognitive overload. (Consider using different sections between multiple tables to ease the burden, except for table comparison use cases.) To include more than 4 grid tables, place them in individual tabs.

To embed analytical tables or tree tables in an object page, use an object page with tabs and place each table in its own tab. If you are using a scrollable object page without tabs, use responsive or grid tables instead, and offer navigation to another page with the respective table type.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 200 Tab navigation
More than 200 or tab approach is unsuitable Navigation to another page

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but fewer than 200, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to Another Page

For tables with more than 200 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend showing a preview of only 10 items, but not more than 20. This can be achieved using predefined filters and/or by sorting the table. If necessary, you can also set a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate page, such as a list report, subobject page, or dynamic page with the respective table type. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used for closing and finalizing actions in:

  • Edit and create mode, for example, Save, Post, Accept, Reject, and Activate
  • Display mode, for example, Approve, Accept, and Reject 

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Initial Focus

When the object page is loaded, set the initial focus as follows:

  • If the object page is in display mode, set the focus on the first section.
  • If the object page is in edit mode, set the focus on the first empty mandatory field.
  • If there are no mandatory fields, set the focus on the first editable element or first action.

Edit

The object page can contain a mixture of editable and read-only content.

Use the same content layout for both display and edit mode – content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Object Handling (Create, Edit, Delete).

There are two ways of editing header content depending on whether you’re implementing Global Edit or Partial Edit, both of which are explained below.

Editing header content in Global Edit mode

Developer Hint

The temporary “Header” section described below which allows user to edit header content comes out of the box in Fiori elements, but it does not come out of the box for freestyle applications – it needs to be implemented manually.

Because the header snaps on scroll, there are no editable forms in the header itself, so if you’re dealing with editable header content, a temporary “Header” section is generated above all the other sections of the page where the header content can be edited. The same principle applies if your object page only has one section and there is editable content in the header, except a temporary navigation bar should be generated as well. Any changes made to the header are not reflected until the user saves them.

When there is editable content in the header, the title bar information and all editable fields from the header container move from the header to the temporary “Header” section and non-editable content displays as read-only. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts). If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears. The header container in edit mode can also contain independent facets that are not included in the header content in display mode which provide information to assist editing.

Please note, the temporary “Header” section for editing header content doesn’t come out of the box for freestyle applications – it needs to be implemented manually, so it’s sometimes better to avoid having editable header content and move it into object page sections instead.

Editing header content in Partial Edit mode

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing Ctrl+Enter has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Edit Actions in Display Mode (freestyle apps only)

The standard flow is to switch to edit mode for edit and delete actions. However, in some cases, it can be helpful to offer certain edit actions in display mode as well.

You can offer edit actions in display mode if:

  • Switching to edit mode would inconvenience the user. This is especially true if the change is small and quick, and switching to edit mode would take longer than making the change.
  • The change does not impact a critical flow or result in technical inconsistencies.

Examples: Adding a comment, uploading a file

Do not offer edit actions in display mode if:

  • The change has a critical impact on business data/follow-on processes.
  • The change requires a finalizing action.

Example: Deleting a sales order item would affect the entire sales order and dependent data.

When offering delete actions in display mode, always show a delete confirmation dialog. For more information, see:

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover or clicks the  (Close) icon.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, display the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Loading Behaviour

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If loading takes a long time, a busy indicator is shown on top of the section or item until the content is loaded and visible.

SAP Fiori elements uses a skeleton template with generic placeholders. For more information, see Placeholder Loading.

Busy indicators for sections still loading
Busy indicators for sections still loading

Message Handling

In Display Mode

The following controls can provide messages to users in the object page in display mode:

  1. Generic tag
  2. Message strip
  3. Object status

Generic Tag

The generic tag displays KPIs and situations.

Message Strip

You can place a message strip in the header or in a section in the content area:

Object page with different messaging options
Object page with different messaging options
  • Header:
    Show the message strip in the header if the information relates to the whole object.

Place the message strip between the object page title and the header content. When the header is collapsed, it remains visible.

  • Content area section:
    Show the message strip in the content area section if the information relates to a specific section.

Place the message strip at the top of the section above the section title.

Use a single message strip with a single message per area. Do not stack several message strips together.

A message strip can display:

  • A call to action, such as a task that the user must perform
  • Temporary information that the user needs to know
  • An issue that is not related to a form field
  • The object status if the object status control is too small to convey the information.

For a brief status text, use the object status control.

If you decide to display both the message strip and the object status control, they should not repeat the same information.

  • Brief guidance on how to use or read the page.

If the object page requires multiple hints for the user, consider using SAP Companion instead.

Object Status

The object status displays a brief description of the object status.

Object page with message strip and collapsed header
Object page with message strip and collapsed header
Object page with message strip in a section
Object page with message strip in a section

In Edit Mode

In edit mode, use the message popover to help validate forms and tables as a single object.

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size L
Object page – Size L
Object page - Size XL
Object page - Size XL

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information, see:

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Object Page Floorplan

Information
This floorplan is available with SAP Fiori Elements.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the object page header, content area, and footer bar in the SAP Fiori Elements Framework section.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan
Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.
  • You need to structure your content into different sections.
  • You have a page with one section and editable header content.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.
 

List report floorplan

  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a code identified by a scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page
  • Your content can be shown in just one section and you don’t have editable header content.
Dynamic Page Layout page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Header content (optional)
  5. Object marker (optional)
  6. Header toolbar with global actions (optional)
  7. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
Object page with expanded dynamic page header
Object page with expanded dynamic page header
Object page with collapsed dynamic page header
Object page with collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer text (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Progress indicator
  4. Footer text (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use the rating indicator facet to display a single rating value or an aggregated rating (such as an average rating for a product). The facet structure is slightly different in each case.

Single rating value:

The single rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary texts
  3. Rating indicator
Rating indicator facet - Single rating
Rating indicator facet - Single rating

Aggregated rating:

The aggregated rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer text (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.
Rating indicator facet - Aggregated rating
Rating indicator facet - Aggregated rating
Guidelines
We recommend the following property settings when using the rating indicator in header facets:

  • Show 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

Navigation Bar

You can only have several sections in the object page layout and there are two ways to structure it:

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link makes the screen scroll to the corresponding section of the page and the anchor bar remains visible.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

Object page – Anchor bar navigation
Object page – Anchor bar navigation
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu
Developer Hint
Make sure that the UpperCaseAnchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page floorplan.

The tabs are a series of links arranged horizontally at the top of the page which link to subpages. Clicking a link displays the corresponding subpage below and the tabs remain visible.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

If the content of a section contains a control, for example a table, then we recommend to always display it, even if the control title and tab title are identical. This makes it easier for the user to orientate themselves.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Guidelines
If a section contains a control, like a table or a chart, and the title of the control is the same as the section title, then the section title can be hidden so that this title is only displayed once. This avoids unnecessary redundancies.

We recommend the same for subsection titles.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness
Developer Hint
For non-SAP Fiori element object pages only:

The content of the dynamic page header, navigation bar, (sub)section titles, and subsections must be vertically aligned. To achieve this, apply the sapUxAPObjectPageSubSectionAlignContent CSS class to the content of the subsections and set the width property to “auto”.

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns / 6 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. To improve access to the different forms we recommend always using one subsection per form, rather than placing multiple forms into one subsection.

If you need to perform any actions, you can use the subsection header. If you need action at group level, you can use a group header. To prevent confusion, we recommend inserting actions only in one place, depending on the use case.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Block base
Object page – Block base

Tables

When a section or subsection contains one table and no other content, remove the redundant table title so the section or subsection title serves as the table title. In the subsection, also reduce the vertical space.

Grid tables in sections must have at least 4 rows, and the maximum number of rows visible will depend on the window size. To prevent any need for the user to scroll to access the horizontal scrollbar, keep the table within the screen size limitations. This may not be possible in all use cases, for example, if the table contains a large data volume, then you must use two scrollbars.

In an object page with anchor bars, use no more than 4 grid tables to prevent cognitive overload. (Consider using different sections between multiple tables to ease the burden, except for table comparison use cases.) To include more than 4 grid tables, place them in individual tabs.

To embed analytical tables or tree tables in an object page, use an object page with tabs and place each table in its own tab. If you are using a scrollable object page without tabs, use responsive or grid tables instead, and offer navigation to another page with the respective table type.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 200 Tab navigation
More than 200 or tab approach is unsuitable Navigation to another page

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but fewer than 200, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to Another Page

For tables with more than 200 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend showing a preview of only 10 items, but not more than 20. This can be achieved using predefined filters and/or by sorting the table. If necessary, you can also set a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate page, such as a list report, subobject page, or dynamic page with the respective table type. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used for closing and finalizing actions in:

  • Edit and create mode, for example, Save, Post, Accept, Reject, and Activate
  • Display mode, for example, Approve, Accept, and Reject 

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Initial Focus

When the object page is loaded, set the initial focus as follows:

  • If the object page is in display mode, set the focus on the first section.
  • If the object page is in edit mode, set the focus on the first empty mandatory field.
  • If there are no mandatory fields, set the focus on the first editable element or first action.

Edit

The object page can contain a mixture of editable and read-only content.

Use the same content layout for both display and edit mode – content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Object Handling (Create, Edit, Delete).

There are two ways of editing header content depending on whether you’re implementing Global Edit or Partial Edit, both of which are explained below.

Editing header content in Global Edit mode

Developer Hint

The temporary “Header” section described below which allows user to edit header content comes out of the box in Fiori elements, but it does not come out of the box for freestyle applications – it needs to be implemented manually.

Because the header snaps on scroll, there are no editable forms in the header itself, so if you’re dealing with editable header content, a temporary “Header” section is generated above all the other sections of the page where the header content can be edited. The same principle applies if your object page only has one section and there is editable content in the header, except a temporary navigation bar should be generated as well. Any changes made to the header are not reflected until the user saves them.

When there is editable content in the header, the title bar information and all editable fields from the header container move from the header to the temporary “Header” section and non-editable content displays as read-only. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts). If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears. The header container in edit mode can also contain independent facets that are not included in the header content in display mode which provide information to assist editing.

Please note, the temporary “Header” section for editing header content doesn’t come out of the box for freestyle applications – it needs to be implemented manually, so it’s sometimes better to avoid having editable header content and move it into object page sections instead.

Editing header content in Partial Edit mode

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing Ctrl+Enter has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Edit Actions in Display Mode (freestyle apps only)

The standard flow is to switch to edit mode for edit and delete actions. However, in some cases, it can be helpful to offer certain edit actions in display mode as well.

You can offer edit actions in display mode if:

  • Switching to edit mode would inconvenience the user. This is especially true if the change is small and quick, and switching to edit mode would take longer than making the change.
  • The change does not impact a critical flow or result in technical inconsistencies.

Examples: Adding a comment, uploading a file

Do not offer edit actions in display mode if:

  • The change has a critical impact on business data/follow-on processes.
  • The change requires a finalizing action.

Example: Deleting a sales order item would affect the entire sales order and dependent data.

When offering delete actions in display mode, always show a delete confirmation dialog. For more information, see:

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover or clicks the  (Close) icon.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, display the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Loading Behaviour

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If loading takes a long time, a busy indicator is shown on top of the section or item until the content is loaded and visible.

SAP Fiori elements uses a skeleton template with generic placeholders. For more information, see Placeholder Loading.

Busy indicators for sections still loading
Busy indicators for sections still loading

Message Handling

In Display Mode

The following controls can provide messages to users in the object page in display mode:

  1. Generic tag
  2. Message strip
  3. Object status

Generic Tag

The generic tag displays KPIs and situations.

Message Strip

You can place a message strip in the header or in a section in the content area:

Object page with different messaging options
Object page with different messaging options
  • Header:
    Show the message strip in the header if the information relates to the whole object.

Place the message strip between the object page title and the header content. When the header is collapsed, it remains visible.

  • Content area section:
    Show the message strip in the content area section if the information relates to a specific section.

Place the message strip at the top of the section above the section title.

Use a single message strip with a single message per area. Do not stack several message strips together.

A message strip can display:

  • A call to action, such as a task that the user must perform
  • Temporary information that the user needs to know
  • An issue that is not related to a form field
  • The object status if the object status control is too small to convey the information.

For a brief status text, use the object status control.

If you decide to display both the message strip and the object status control, they should not repeat the same information.

  • Brief guidance on how to use or read the page.

If the object page requires multiple hints for the user, consider using SAP Companion instead.

Object Status

The object status displays a brief description of the object status.

Object page with message strip and collapsed header
Object page with message strip and collapsed header
Object page with message strip in a section
Object page with message strip in a section

In Edit Mode

In edit mode, use the message popover to help validate forms and tables as a single object.

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size L
Object page – Size L
Object page - Size XL
Object page - Size XL

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information, see:

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Object Page Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the object page header, content area, and footer bar in the SAP Fiori Elements Framework section.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan
Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.
  • You need to structure your content into different sections.
  • You have a page with one section and editable header content.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.
 

List report floorplan

  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a code identified by a scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page
  • Your content can be shown in just one section and you don’t have editable header content.
Dynamic Page Layout page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Header content (optional)
  5. Object marker (optional)
  6. Header toolbar with global actions (optional)
  7. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
Object page with expanded dynamic page header
Object page with expanded dynamic page header
Object page with collapsed dynamic page header
Object page with collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer text (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Progress indicator
  4. Footer text (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use the rating indicator facet to display a single rating value or an aggregated rating (such as an average rating for a product). The facet structure is slightly different in each case.

Single rating value:

The single rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary texts
  3. Rating indicator
Rating indicator facet - Single rating
Rating indicator facet - Single rating

Aggregated rating:

The aggregated rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer text (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.
Rating indicator facet - Aggregated rating
Rating indicator facet - Aggregated rating
Guidelines
We recommend the following property settings when using the rating indicator in header facets:

  • Show 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

Navigation Bar

You can only have several sections in the object page layout and there are two ways to structure it:

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link makes the screen scroll to the corresponding section of the page and the anchor bar remains visible.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

Object page – Anchor bar navigation
Object page – Anchor bar navigation
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu
Developer Hint
Make sure that the UpperCaseAnchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page floorplan.

The tabs are a series of links arranged horizontally at the top of the page which link to subpages. Clicking a link displays the corresponding subpage below and the tabs remain visible.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

If the content of a section contains a control, for example a table, then we recommend to always display it, even if the control title and tab title are identical. This makes it easier for the user to orientate themselves.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Guidelines
If a section contains a control, like a table or a chart, and the title of the control is the same as the section title, then the section title can be hidden so that this title is only displayed once. This avoids unnecessary redundancies.

We recommend the same for subsection titles.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness
Developer Hint
For non-SAP Fiori element object pages only:

The content of the dynamic page header, navigation bar, (sub)section titles, and subsections must be vertically aligned. To achieve this, apply the sapUxAPObjectPageSubSectionAlignContent CSS class to the content of the subsections and set the width property to “auto”.

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns / 6 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. To improve access to the different forms we recommend always using one subsection per form, rather than placing multiple forms into one subsection.

If you need to perform any actions, you can use the subsection header. If you need action at group level, you can use a group header. To prevent confusion, we recommend inserting actions only in one place, depending on the use case.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Block base
Object page – Block base

Tables

If a section contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section title acts as the table title.

If a subsection contains only one table and no other content, hide the title of the subsection to avoid having duplicate titles for the table and reduce vertical space. In this case, the table title acts as the subsection title.

If you want to embed analytical tables, grid tables, or tree tables in an object page, use an object page with tabs, and place each table in its own tab. Because the analytical, grid, and tree tables have their own vertical scroll bars, they are not allowed within scrollable object pages. If you are using a scrollable object page without tabs, use a responsive table instead, and offer navigation to another page with the respective table type.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 200 Tab navigation
More than 200 or tab approach is unsuitable Navigation to another page

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but fewer than 200, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to Another Page

For tables with more than 200 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend showing a preview of only 10 items, but not more than 20. This can be achieved using predefined filters and/or by sorting the table. If necessary, you can also set a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate page, such as a list report, subobject page, or dynamic page with the respective table type. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used for closing and finalizing actions in:

  • Edit and create mode, for example, Save, Post, Accept, Reject, and Activate
  • Display mode, for example, Approve, Accept, and Reject 

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Initial Focus

When the object page is loaded, set the initial focus as follows:

  • If the object page is in display mode, set the focus on the first section.
  • If the object page is in edit mode, set the focus on the first empty mandatory field.
  • If there are no mandatory fields, set the focus on the first editable element or first action.

Edit

The object page can contain a mixture of editable and read-only content.

Use the same content layout for both display and edit mode – content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Object Handling (Create, Edit, Delete).

There are two ways of editing header content depending on whether you’re implementing Global Edit or Partial Edit, both of which are explained below.

Editing header content in Global Edit mode

Developer Hint

The temporary “Header” section described below which allows user to edit header content comes out of the box in Fiori elements, but it does not come out of the box for freestyle applications – it needs to be implemented manually.

Because the header snaps on scroll, there are no editable forms in the header itself, so if you’re dealing with editable header content, a temporary “Header” section is generated above all the other sections of the page where the header content can be edited. The same principle applies if your object page only has one section and there is editable content in the header, except a temporary navigation bar should be generated as well. Any changes made to the header are not reflected until the user saves them.

When there is editable content in the header, the title bar information and all editable fields from the header container move from the header to the temporary “Header” section and non-editable content displays as read-only. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts). If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears. The header container in edit mode can also contain independent facets that are not included in the header content in display mode which provide information to assist editing.

Please note, the temporary “Header” section for editing header content doesn’t come out of the box for freestyle applications – it needs to be implemented manually, so it’s sometimes better to avoid having editable header content and move it into object page sections instead.

Editing header content in Partial Edit mode

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing Ctrl+Enter has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Edit Actions in Display Mode (freestyle apps only)

The standard flow is to switch to edit mode for edit and delete actions. However, in some cases, it can be helpful to offer certain edit actions in display mode as well.

You can offer edit actions in display mode if:

  • Switching to edit mode would inconvenience the user. This is especially true if the change is small and quick, and switching to edit mode would take longer than making the change.
  • The change does not impact a critical flow or result in technical inconsistencies.

Examples: Adding a comment, uploading a file

Do not offer edit actions in display mode if:

  • The change has a critical impact on business data/follow-on processes.
  • The change requires a finalizing action.

Example: Deleting a sales order item would affect the entire sales order and dependent data.

When offering delete actions in display mode, always show a delete confirmation dialog. For more information, see:

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover or clicks the  (Close) icon.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, display the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Loading Behaviour

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If loading takes a long time, a busy indicator is shown on top of the section or item until the content is loaded and visible.

SAP Fiori elements uses a skeleton template with generic placeholders. For more information, see Placeholder Loading.

Busy indicators for sections still loading
Busy indicators for sections still loading

Message Handling

In Display Mode

The following controls can provide messages to users in the object page in display mode:

  1. Generic tag
  2. Message strip
  3. Object status

Generic Tag

The generic tag displays KPIs and situations.

Message Strip

You can place a message strip in the header or in a section in the content area:

Object page with different messaging options
Object page with different messaging options
  • Header:
    Show the message strip in the header if the information relates to the whole object.

Place the message strip between the object page title and the header content. When the header is collapsed, it remains visible.

  • Content area section:
    Show the message strip in the content area section if the information relates to a specific section.

Place the message strip at the top of the section above the section title.

Use a single message strip with a single message per area. Do not stack several message strips together.

A message strip can display:

  • A call to action, such as a task that the user must perform
  • Temporary information that the user needs to know
  • An issue that is not related to a form field
  • The object status if the object status control is too small to convey the information.

For a brief status text, use the object status control.

If you decide to display both the message strip and the object status control, they should not repeat the same information.

  • Brief guidance on how to use or read the page.

If the object page requires multiple hints for the user, consider using SAP Companion instead.

Object Status

The object status displays a brief description of the object status.

Object page with message strip and collapsed header
Object page with message strip and collapsed header
Object page with message strip in a section
Object page with message strip in a section

In Edit Mode

In edit mode, use the message popover to help validate forms and tables as a single object.

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size L
Object page – Size L
Object page - Size XL
Object page - Size XL

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information, see:

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Object Page Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the object page header, content area, and footer bar in the SAP Fiori Elements section.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan
Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.

List report floorplan
  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a code identified by a scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Header content (optional)
  5. Object marker (optional)
  6. Header toolbar with global actions (optional)
  7. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
Object page with expanded dynamic page header
Object page with expanded dynamic page header
Object page with collapsed dynamic page header
Object page with collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer text (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Progress indicator
  4. Footer text (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use the rating indicator facet to display a single rating value or an aggregated rating (such as an average rating for a product). The facet structure is slightly different in each case.

Single rating value:

The single rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary texts
  3. Rating indicator
Rating indicator facet - Single rating
Rating indicator facet - Single rating

Aggregated rating:

The aggregated rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer text (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.
Rating indicator facet - Aggregated rating
Rating indicator facet - Aggregated rating
Guidelines
We recommend the following property settings when using the rating indicator in header facets:

  • Show 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

Navigation Bar (optional)

If your content can be shown in just one section, use the dynamic page layout. In the dynamic page layout with one section, the header area can’t be edited when the page is in edit mode.

If you need to structure your content in different sections, use the object page layout. You can only have several sections in the object page layout. When you use the object page layout, you can also make the header editable when the page is in edit mode. However, try to avoid having an editable header and move the content from the header to the sections instead.

If you need only one section, but require an editable header, use the object page layout. An object page with only one section doesn’t have any anchor bars. However, a temporary anchor bar and section for editing the header content should be added when edit mode is triggered.

If the content is complex there are two ways to structure it:

  • Anchor bar navigation (default)
  • Tab bar navigation

Anchor Bar Navigation

The anchor bar consists of a series of links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link navigates to the respective section. The anchor bar remains visible when the user scrolls down the page.

Use anchor bar navigation when the content belongs together but users might want to jump to specific parts directly.

For more information, see Anchor Bar Navigation.

Tab Bar Navigation

The tabs are a series of links to subpages, arranged horizontally at the top of the page. Clicking a link navigates to the respective subpage. The tabs remain visible when the user scrolls down the page.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

For more information, see Tab Bar Navigation.

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking on these links directs the user to specific sections of the page. The anchor links remain visible when the user scrolls down the page.

Object page – Anchor bar navigation
Object page – Anchor bar navigation
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu
Developer Hint
Make sure that the UpperCaseAnchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

If the content of a section contains a control, for example a table, then we recommend to always display it, even if the control title and tab title are identical. This makes it easier for the user to orientate themselves.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Guidelines
If a section contains a control, like a table or a chart, and the title of the control is the same as the section title, then the section title can be hidden so that this title is only displayed once. This avoids unnecessary redundancies.

We recommend the same for subsection titles.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness
Developer Hint
For non-SAP Fiori element object pages only:

The content of the dynamic page header, navigation bar, (sub)section titles, and subsections must be vertically aligned. To achieve this, apply the sapUxAPObjectPageSubSectionAlignContent CSS class to the content of the subsections and set the width property to “auto”.

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns / 6 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. To improve access to the different forms we recommend always using one subsection per form, rather than placing multiple forms into one subsection.

If you need to perform any actions, you can use the subsection header. If you need action at group level, you can use a group header. To prevent confusion, we recommend inserting actions only in one place, depending on the use case.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Block base
Object page – Block base

Tables

If a section contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section title acts as the table title.

If a subsection contains only one table and no other content, hide the title of the subsection to avoid having duplicate titles for the table and reduce vertical space. In this case, the table title acts as the subsection title.

If you want to embed analytical tables, grid tables, or tree tables in an object page, use an object page with tabs, and place each table in its own tab. Because the analytical, grid, and tree tables have their own vertical scroll bars, they are not allowed within scrollable object pages. If you are using a scrollable object page without tabs, use a responsive table instead, and offer navigation to another page with the respective table type.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 200 Tab navigation
More than 200 or tab approach is unsuitable Navigation to another page

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but fewer than 200, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to Another Page

For tables with more than 200 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend showing a preview of only 10 items, but not more than 20. This can be achieved using predefined filters and/or by sorting the table. If necessary, you can also set a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate page, such as a list report, subobject page, or dynamic page with the respective table type. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used for closing and finalizing actions in:

  • Edit and create mode, for example, Save, Post, Accept, Reject, and Activate
  • Display mode, for example, Approve, Accept, and Reject 

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Initial Focus

When the object page is loaded, set the initial focus as follows:

  • If the object page is in display mode, set the focus on the first section.
  • If the object page is in edit mode, set the focus on the first empty mandatory field.
  • If there are no mandatory fields, set the focus on the first editable element or first action.

Edit

In edit mode, the object page can contain a mixture of editable and read-only content.

If the user needs to edit elements in the header, a header section is added in the content area to enable editing.

Use the same content layout for both display and edit mode. Content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Object Handling (Create, Edit, Delete).

Editing the Header

The object page header can be edited in two ways:

  • Global edit
  • Partial edit

Global Edit

The header can be edited when the entire object page is in edit mode.

Because the header snaps on scroll, there are no editable forms in the header itself. Instead, a temporary header section is added before the other sections of the page. The title bar information and all editable fields from the header container move from the header to the new editable header section. Any non-editable content displays as read-only in the new header section. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts).

If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears.

If your object page has no anchor bar in display mode, and the header section has only a few editable fields, do not add navigation in edit mode.

The header container in edit mode may contain independent facets that are not included in the header content in display mode. They provide information to assist editing.

If the entire object page is in edit mode, but there is no editable information in the header, no editable header section is added.

Any changes made to the header are not reflected until the user saves them.

Partial Edit

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing Ctrl+Enter has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Edit Actions in Display Mode (freestyle apps only)

The standard flow is to switch to edit mode for edit and delete actions. However, in some cases, it can be helpful to offer certain edit actions in display mode as well.

You can offer edit actions in display mode if:

  • Switching to edit mode would inconvenience the user. This is especially true if the change is small and quick, and switching to edit mode would take longer than making the change.
  • The change does not impact a critical flow or result in technical inconsistencies.

Examples: Adding a comment, uploading a file

Do not offer edit actions in display mode if:

  • The change has a critical impact on business data/follow-on processes.
  • The change requires a finalizing action.

Example: Deleting a sales order item would affect the entire sales order and dependent data.

When offering delete actions in display mode, always show a delete confirmation dialog. For more information, see:

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover or clicks the  (Close) icon.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, display the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Loading Behaviour

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If loading takes a long time, a busy indicator is shown on top of the section or item until the content is loaded and visible.

SAP Fiori elements uses a skeleton template with generic placeholders. For more information, see Placeholder Loading.

Busy indicators for sections still loading
Busy indicators for sections still loading

Message Handling

In Display Mode

The following controls can provide messages to users in the object page in display mode:

  1. Generic tag
  2. Message strip
  3. Object status

Generic Tag

The generic tag displays KPIs and situations.

Message Strip

You can place a message strip in the header or in a section in the content area:

Object page with different messaging options
Object page with different messaging options
  • Header:
    Show the message strip in the header if the information relates to the whole object.

Place the message strip between the object page title and the header content. When the header is collapsed, it remains visible.

  • Content area section:
    Show the message strip in the content area section if the information relates to a specific section.

Place the message strip at the top of the section above the section title.

Use a single message strip with a single message per area. Do not stack several message strips together.

A message strip can display:

  • A call to action, such as a task that the user must perform
  • Temporary information that the user needs to know
  • An issue that is not related to a form field
  • The object status if the object status control is too small to convey the information.

For a brief status text, use the object status control.

If you decide to display both the message strip and the object status control, they should not repeat the same information.

  • Brief guidance on how to use or read the page.

If the object page requires multiple hints for the user, consider using SAP Companion instead.

Object Status

The object status displays a brief description of the object status.

Object page with message strip and collapsed header
Object page with message strip and collapsed header
Object page with message strip in a section
Object page with message strip in a section

In Edit Mode

In edit mode, use the message popover to help validate forms and tables as a single object.

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size M
Object page – Size M
Object page – Size L
Object page – Size L

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information, see:

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Worklist Floorplan

Information
This floorplan is available with SAP Fiori Elements.

For information on the default settings and other options for the SAP Fiori element implementation, see Worklist in the SAP Fiori Elements section.

Intro

A worklist displays a collection of items a user needs to process. Working through the list usually involves reviewing details of the items and taking action. In most cases, the user has to either complete a work item or delegate it.

The worklist is a versatile floorplan that offers three main variants: a simple worklist (plain page with a table), a worklist with tabs, and a worklist with one or more KPI tags. These variants are based on different user needs and use cases. For more details, see the options under Components.

Simple worklist
Simple worklist
Worklist with tabs
Worklist with tabs
Worklist with KPI
Worklist with KPI

When to Use

Use the worklist floorplan if:

  • Users have numerous work items and need to decide which ones to process first.
  • You want to give users a direct entry point for taking action on work items.
  • Users need to work with multiple views of the same content (for example, items that are “Open”, “In Process”, or “Completed”). You want to offer tabs for switching between views.

Do not use the worklist floorplan if:

  • The items you are showing are not work items.
  • You want to show large item lists, or combine different data visualizations (charts or tables). In this case, use the list report floorplan instead.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping. Use the list report floorplan instead.

Components

The worklist floorplan is based on the dynamic page layout and is divided into a header and the page content. The header has a header title, but no header content. As a result, the expand/collapse and pin features are not needed.

The worklist consists of the following areas:

  1. The header title containing:
  2. The content area displaying:
  3.  A footer toolbar (optional) including:

Header Title

Variant Management

Variant management is optional. If used, apply it to the whole page. Use the variants to save and restore all settings, including selected tabs, all tables, and all personalization settings.

If variant management is not needed, just show a title that describes the view.

Key performance indicator/ KPI

The key performance indicator (KPI) allows users to track the impact of their actions while processing the worklist. You can display one or more KPIs within the KPI container next to the page title to show the status/criticality of the tag.

Header Toolbar (Global Actions)

Use the header toolbar for global actions, such as Share. Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information, see Global Actions.

Content Area

Tab Bar

The tab bar is part of the page content container, and must be sticky.

In the worklist, the icon tab bar works as a filter on the content below. It enables users to call up work items in specific categories. This can help users to identify critical items more easily. Different tabs show different perspectives on the same dataset.

Guidelines

  • Display the number of items shown in the table on each tab (sap.m.IconTabFilter, property: count).
  • Only use icons if you need to display semantic colors on the icon tab bar. You can offer visual orientation by applying semantic colors to the icons for the different categories (for example, red for the Error tab).
  • Bear in mind that each tab in an icon tab bar contains its own table toolbar.

Table Toolbar

Display at least a table title (ideally with an item count) and, if needed, icon-only buttons for sorting, grouping, and column settings. For filter, sort, and group, show a view settings dialog with only the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

Table

In general, you can use any kind of table and list for the worklist floorplan in the content area.

If there are no items to display, use the “no data text” for the corresponding table. Explain why the table is empty, and what the user needs to do to display items. For more information and examples see: “No data” texts.

The most basic version of the worklist is the simple worklist: a plain page with a table.

Simple worklist without tabs
Simple worklist without tabs

Footer Toolbar

The footer toolbar is an optional component of the worklist floorplan. Only use it if finalizing actions for the whole page and/or the message popover are required. Keep in mind that the footer toolbar is only visible in edit mode. For more information, see the guidelines for the footer toolbar.

Guidelines
Follow the standard naming conventions for all objects, the object name, action buttons, and the title in the shell bar. For more information, see:

Behavior and Interaction

Initial Focus

When the worklist is loaded, set the initial focus as follows:

  • If the worklist contains only a table, set the focus on the first line item of the table.
  • If the worklist contains an icon tab bar, set the focus on the first tab.

Sticky Behavior

The tab bar, table toolbar, and column headers must all be “sticky”. This means that they stay fixed at the top when the user scrolls down the page. 

Table Navigation

The worklist floorplan supports three types of navigation at item level:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a listtree, or responsive table, clicking the line item triggers the navigation. In a grid tableanalytical table, or tree table, clicking the navigation indicator triggers the navigation. Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use it only if the navigation indicator points to a different target.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually a list report. Use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting. In charts, offer the drilldown navigation link in the popover for the chart element, and navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains a cross-reference to another entity, such as a person or business object, use a link to display the corresponding data point in the table. Triggering the link opens a quick view.

Actions

Action placement in the worklist
Action placement in the worklist

The worklist offers four locations for actions:

  1. Global actions in the header toolbar
  2. Table actions in the table toolbar
  3. Line item actions
  4. Finalizing actions in the footer toolbar
Guidelines

  • Hide actions that cannot be used. This can be the case if the user has no authorization or the line item has the wrong state.
  • To save space, group similar actions using a menu button. For example: 
    • Release and Release with Conditions
    • Add Contact and Replace Contact
    • Edit Account and Edit Title
  • If there is not enough space to show all actions, they are moved to an overflow menu, depending on their priority. For more information, see Action Placement. 

1. Global Actions

Place actions that affect the entire page in the header title within the header toolbar. Examples of global actions are EditDelete, or Share.
Actions in the header toolbar are always right-aligned. Emphasize the most important action and place it on the very left.

For more information, see Header Toolbar.

2. Table Actions

Place actions that affect the content of a table in the table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available, such as Create for new objects. Other actions are only relevant if items have been selected. For example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item.

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions (such as Delete) when no items or only unsuitable items have been selected .
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

For more information, see UI Element States – Control States.

Partial Processing

Allow the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

For more information on table and chart actions, see:

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this option only for specific, frequently-used tasks. If the same action can also be applied to several items at once, you can also place it on the table toolbar. However, if you do so, reconsider whether you really need to offer the action at line item level. For more information, see Actions in Table Rows.

Examples of line item actions include: Start/Stop (a batch job), Approve (an item) or Assign (an item).

Do not disable line item actions. If an action can’t be used, hide it.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar. Examples of finalizing actions include SaveCancel, and Submit.

Bear in mind that even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Guidelines
Often, users will need more information before they can take action. If this is the case, offer navigation to the work item details, and show all the relevant actions in the detail screen. Once the user has completed the task, the app should:

  • Return the user to the worklist
  • Remove the processed item from the list, or move it to a “completed” section
  • Confirm the user’s action with a message toast

Responsiveness

The Grid tableanalytical table, and tree table are supported on desktop and tablet devices only so you cannot use them for mobile use cases. Instead, for these cases, take an adaptive approach:

  • Create a new Fiori application with reduced complexity, not an exact match of the desktop application.
  • With the new application, address the most important use cases for users in a mobile context. The responsive controls (responsive tablelist or tree,) or a relevant control for your use case (for example a chart or the category navigation pattern) may suffice.

For more details, see the respective guideline articles.

Worklist floorplan - Size L/XL
Worklist floorplan - Size L/XL
Worklist floorplan - Size M
Worklist floorplan - Size M
Worklist floorplan - Size S
Worklist floorplan - Size S

Examples

Worklist floorplan - Size L/XL
Worklist floorplan - Size L/XL
Worklist floorplan - Size M
Worklist floorplan - Size M
Worklist floorplan - Size S
Worklist floorplan - Size S

Top Tips

General

  • Decide whether the worklist or the list report is the right floorplan for your needs: The focus of the worklist floorplan is on processing items. This differs from the list report floorplan, which focuses on finding and acting on relevant items from a large dataset.
  • Choose one of the three basic worklist variants, based on your use case and the user’s needs.

Header

  • Always display a title or offer variant management.

Content

  • Responsive table is the only fully responsive table. Analytical table, tree table and grid table are not fully responsive. They are available only for desktops and tablets, so you will need to take an adaptive approach by offering an additional UI for smartphones.
  • In the table toolbar, display at least a table title (ideally with an item count). If needed, offer icon-only buttons for sorting, grouping, and column settings.
  • The tab bar, table toolbar, and column headers of all table types must all be sticky.

Footer Toolbar

  • If you are using the icon tab bar, remember that there is only one footer toolbar for all tabs.
  • Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Related Links

Elements and Controls

Implementation

List Report Floorplan

Information
This floorplan is available with SAP Fiori Elements.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the list report header and content area in the SAP Fiori Elements section.

Intro

With a list report, users can view and work with a large set of items. This floorplan offers powerful features for finding and acting on relevant items. It is often used as an entry point for navigating to the item details, which are usually shown on an object page.

List report
List report

When to Use

Use the list report floorplan if:

  • Users need to find and act on relevant items within a large set of items by searching, filtering, sorting, and grouping.
  • You want to let users display the whole dataset using different visualizations (for example, as a table or as a chart), but no interactions are required between these visualizations. An example use case might be reporting.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. You want to let users switch views using tabs, segmented buttons, or a select control.
  • Drilldown is rarely or never used, or is only available via navigation to another page, and not as free or flexible drilldown within the page itself.
  • Users work on different kinds of items.

Do not use the list report floorplan if:

  • Users need to see or edit one item with all its details. Use the object page floorplan instead.
  • Users need to find one specific item, and the item or an identifying data point is known to the user (such as a code). Use the initial page floorplan instead.
  • Users need to work through a comparably small set of items, one by one. Use the worklist floorplan instead.
  • Users need to extract knowledge or insights from data, either to better understand the current situation, or to identify the root cause for a certain value.  Use the analytical list page instead.
  • Charts are not only used for visualization. Users need to switch between integrated chart and table views (hybrid view). Use the analytical list page instead.
  • Users need to see the impact of their action on a KPI. Use the analytical list page instead.
  • Users need to see not only the result, but also the impact of their filter settings directly in a chart representation. Use the analytical list page instead.

Components

The list report is a full screen floorplan. It can also be used in flexible column layout, where it is usually displayed in the first column.

The list report page is based on the dynamic page, and is divided into a header area and a content area, as defined by the dynamic page layout.

Schematic visualization of a list report
Schematic visualization of a list report
  • The dynamic page header (1) contains the header title (2) and the expandable/collapsible header content (5).
    • The header title (2) is part of the header area and should display a title or variant (3) for the whole page (mandatory), filter information (if the header is collapsed), and a header toolbar (4) with global actions, such as Share (optional).
    • The header content (5) is used to display the filter bar or the smart filter bar (mandatory).
    • The header features (6) allow users to expand/collapse the header (6a) (mandatory) and pin/unpin the header area (6b).
  • The content area (7) is used to display:
    • A table/chart title, textual icon tab bar, or select (8) (optional)
    • One table/chart toolbar (9) per tab
    • One or multiple tables and/or charts (10). You can use any kind of table. If you use a chart, you can display the chart on its own (without a table) or as an additional view for an existing table (switchable).
  • The footer toolbar (11): If needed, use a footer toolbar to display the messaging button and finalizing actions.

Behavior and Interaction

Initial Focus

When the list report is loaded, set the initial focus as follows:

  • If the header is expanded, set the focus on the first filter field (live update mode) or on the Go button (manual update mode).
  • If the header contains empty mandatory fields, set the focus on the first empty mandatory field.
  • If the header is collapsed, set the focus on the first table row.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see:

Header Title

Variant Management

Variant management is optional. If you use variants, we recommend using one variant management control for the whole page. Use the variants to save and restore all settings for filters, selected tabs, all tables, and all charts.

In some specific cases, you might need to add a second variant at control level. This can be the case when the user needs to change the view settings of a list independently of the page filters. However, the default is to use a single variant management control for the entire page.

Users can choose a default variant, which is selected every time the app is started.

Allow users to choose whether a variant should be executed automatically as soon as it has been selected. Not executing a variant automatically allows the user to add or remove filters before the dataset is updated. Provide this option only if the filter bar is in manual update mode. For live updates, this option is not required.

If variant management is not needed, show a title that describes the current view instead.

Variant management
Variant management

Filter Information

Display the filter information only if the header content is collapsed. Use the format Filtered By (x): followed by a comma-separated list of the filters currently applied. “x” stands for the number of applied filters.

Show up to 5 filters. If more filters have been applied, show an ellipsis (“…”) at the end of the string.

If no filters have been applied, show Not filtered.

Filter information
Filter information

Header Toolbar

Use the header toolbar for non-finalizing global actions, such as Share. Share opens an action sheet, which features Save as Tile (if the SAP Fiori launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

If the content area contains a grid table, an analytical table, a tree table, or any other content with its own scrollbar, display a Show Filters / Hide Filters button for expanding and collapsing the header content.

In addition, offer any other global, non-finalizing actions needed. Hide actions that cannot be used at all (for example, because of access rights). To save space on the header toolbar, group similar actions using a menu button.
For more information on global actions, see the guidelines for the header toolbar.

Header toolbar
Header toolbar

Header Content

Search

The filter bar can contain a search field (optional). If you use the search field, the content shows only items that match both the search terms and the filter criteria.

The search generally searches across all available columns of the table, regardless of whether or not they are visible. In rare cases, some columns might not be included due to technical constraints. If the search does not apply to multiple columns, do not offer the search field.

Filters

Filters are applied to all content, including all tables and charts. To improve performance, consider providing mandatory filter fields and/or default settings for filters.

If the list report loads automatically when the page loads, ensure that mandatory filter fields always have default values to avoid error messages.

The filter bar offers two different update modes:

  • The live update mode (recommended) triggers filtering immediately whenever a filter setting is changed. If the search field is used, the search is triggered together with all filter settings with every letter typed.
  • The manual update mode displays a Go button, which triggers the filtering. If the search field is used, the search is executed together with all filters as soon as the Go button is pressed.
    Make sure that all tables and charts in the content area are in a busy state until the new data is available. Also ensure that the content is grayed out as soon as the filter settings do not correspond to the content shown (any table, property: showOverlay). This is usually the case if the content is not yet updated and the Go button needs to be triggered.

Use the manual update mode only if you run into performance problems while loading the table data.

Regardless of the update mode, make sure that the filter bar and the visible content match: The filter bar must always describe the items that are shown in the content area.

Filter bar
Filter bar

The header content collapses when the user scrolls down the page (except for desktop-centric tables), and expands again when the user scrolls back up (“snap on scroll”). Users can pin the header content to keep it visible. For more information, see Dynamic Page – Expand/Collapse Header.

Exception: The “Snap on scroll” and “pin header” features are not provided if the main content area contains desktop-centric tables (grid tablesanalytical tables, tree tables) or any other content with its own scrollbar. In these cases, users need to expand and collapse the header content manually using the Show Filters / Hide Filters button.

When starting the application, expand the header content if no query was fired (and the table is therefore empty). Otherwise, collapse the header content.

Content Area

General Layout

There are three basic list report layouts: simple content, multiple views, and multiple content. These are described in more detail below.

Simple Content

In most cases, the content consists of just a table toolbar and a table. If needed, provide an option to switch between the table and a corresponding chart view.

Multiple Views

For more complex scenarios, provide multiple views of the same content. Multiple views involve one or more of the following:

  • Showing the same table, but with different columns.
  • Showing the same table in different pre-filtered states. These states are usually based on a status column, for example, items that are Open, In Process, or Closed. Make sure that the corresponding filter is not offered on the filter bar.
  • Differentiating between the items displayed in the content in some other fundamental way.

There are two options for switching between different views:

The first option is to replace the table title with a content switch. Use this approach if all views share the same sort and group states, as well as the same actions.

The content switch can be:

If you have both a table title and a content switch, display the table title first, then the content switch. Place both on the left side of the table toolbar. Since the content switch is placed on the table toolbar, the same actions are shown for all views.

If you are using the content switch together with charts, ensure that the chart also reacts to the content switch. This can be done by:

  • Filtering the data that influences the display of the chart
  • Changing the measures and/or dimensions (for example, View by Country/RegionView by Customer, …)

The second option for switching views is to show each view in a tab container of the icon tab bar. Use this approach if all views show different states of the same data (sort states, group states, as well as item selection). Using tabs also allows you to offer different actions on the table toolbar for each view.

Table toolbar with a segmented button for up to three different views
Table toolbar with a segmented button for up to three different views
Table toolbar with a select control for more than three views
Table toolbar with a select control for more than three views

Multiple Content

To support even more complex use cases, a list report floorplan can also contain multiple tables that display different kinds of objects. The filter bar settings are applied to all of these tables in parallel. For example, a customer overview list report might display different tables for invoices, deliveries, and overdue payments. All of these tables can be filtered for a specific customer and a specific date.

Display each table inside a tab container of an icon tab bar. This also allows you to offer different actions on the table toolbar for each table.

List report floorplan with multiple tables placed in multiple tabs
List report floorplan with multiple tables placed in multiple tabs

Icon Tab Bar

Use the text-only version of the icon tab bar. Display the number of items shown in the respective table on each tab (sap.m.IconTabFilter, property: count).

Icon tab bar
Icon tab bar

Table Toolbar

Display at least a table title (ideally with an item count) and icon-only buttons for sorting, grouping, and column settings. Do not offer additional filter settings on the table toolbar. For sort and group, show a view settings dialog with just the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

If alternative visualizations are provided (such as charts), offer an additional view switch on the table toolbar. Triggering the switch replaces the current visualization with another one. If a table and chart need to be shown in parallel, offer a switch for the combined view.

In rare cases, you can offer an additional layout variant on the table toolbar. The layout variant stores view settings like the column order and the sort and group settings. If you use a layout variant, do not store the table settings in the filter variant. Offer this additional layout variant only if there is a strong use case for switching filter and layout variants independently. If there is no strong use case, or you are unsure, do not use a layout variant at all.

Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Toolbar with a switch between table and chart visualizations
Toolbar with a switch between table and chart visualizations
Toolbar with a table title and layout variant
Toolbar with a table title and layout variant
Toolbar with additional actions
Toolbar with additional actions

In addition, offer any other actions needed. Disable selection-dependent actions (such as Delete) if no items are selected, or if the action cannot be applied to the selected items. Always enable selection-independent actions (such as Add). To save space on the table toolbar, group similar actions using a menu button. For example:

  • Release and Release with Conditions
  • Add Contact and Replace Contact
  • Edit Account and Edit Title

For more information on table/chart actions, see the guidelines for the table toolbar, the chart toolbar, and for managing objects.

Do
Table without the filter icon
Table without the filter icon
Don't
Table with a filter option
Table with a filter option

Table

If there are no items to display, use the “no data” text of the corresponding table. Explain why the table is empty, and what the user needs to do to display items.

Examples:

  • After starting the app, no filters are applied:
    To start, set the relevant filters.
  • The filter was executed, but no items were found. This can also happen if the list report was opened by a related app, and the filter criteria were transferred automatically:
    No data found. Try adjusting the filter settings.

If you are using a responsive table, always enable “scroll to load” behavior.

Sticky Behavior

The icon tab bar, table/chart toolbar, and column headers of all table types must be “sticky”. This means that they stay fixed on top when the user scrolls down the page.

Navigation

There are three types of navigation at item level in the list report floorplan:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a list, tree, or responsive table, clicking the line item triggers the navigation.
    In a grid table, analytical table, or tree table, clicking the navigation indicator triggers the navigation.
    Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use this only if the navigation indicator is being used for a different target.
    Only show navigation indicators for target pages the user is authorized to access.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually another list report. In this case, use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting.
    In charts, offer the drilldown navigation link in the popover for the chart element. In this case, also navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains cross-references to other entities, such as people or business objects, use a link to display the corresponding data point in the table. Triggering the link opens a quick view. Typically, the quick view displays basic details of the referenced object and a navigation link to another page (usually an object page) or another app that shows the object details.

Information
SAP Fiori Elements – Navigation to Classic UIs
If you need to navigate to classic UIs for create, display, or edit actions, see Integration of Classic SAP UIs (SAP Fiori Elements List Report). This article describes which UI elements and navigation flows to use in different scenarios.

Working Modes

When the user edits a list item in a filtered list, the changed item might no longer match the filter criteria. For this use case, there are two alternative working modes:

  • Worklist mode

    Users want to see a direct system reaction to their changes. Items that don’t match the current filters
    vanish immediately. This mode applies to about 80% of all use cases.
  • Continuous working mode

    The user still needs the edited item, even though it no longer matches the filter criteria. The item stays in the list until the next filtering process is triggered. The item is marked, and a system message informs the user about the filter mismatch. This mode applies to about 20% of all use cases.

The app developer can choose the appropriate working mode for the app use case.

Footer Toolbar

Use the footer toolbar to display the messaging button and finalizing actions. Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Always show the footer toolbar in edit mode.

Hide actions that cannot be used at all (for example, if the user doesn’t have authorization). To save space on the footer toolbar, group similar actions using a menu button.

For more information on finalizing actions, see the guidelines for the footer toolbar.

Footer toolbar
Footer toolbar

Actions

Places for actions in the list report
Places for actions in the list report

(1) Global actions in the header toolbar
(2) Table actions in the table toolbar
(3) Line item actions
(4) Finalizing actions in the footer toolbar

1. Global Actions

Place actions that affect the entire page in the header toolbar in the header title (1). These include the following standard actions:

Hide actions that cannot be used at all (for example, because the user has no authorization). To save space on the header toolbar, group similar actions using a menu button.

Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information on global actions, see the guidelines for the header toolbar.

2. Table/Chart Actions

Place actions that affect the content of a table or chart in the table toolbar (2).

Information
When you use the list, tree, or responsive table, actions on the table toolbar move up out of the visible screen area when the user scrolls down.

If you are using an icon tab bar, be aware that each tab contains its own table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available (such as Create for new objects). Other actions are only relevant if items have been selected (for example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item).

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions when no items have been selected.
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information, also see UI Element States – Control States.

Partial Processing

Enable the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide a sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

Add/Create Items Using a Dialog

You can let users add or create new items at list report level using a dialog. This approach is recommended for cases where there are fewer than 8 required fields. Display the action in the table toolbar.

You can use this option for both draft and non-draft scenarios.

More Information

For more information on table and chart actions, see the guidelines for the table toolbar, chart toolbar, and for managing objects.

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this only for specific, frequently used tasks (3). If the same action can also be applied to several items at once, feel free to also place it on the table toolbar. Nevertheless, if you do so, reconsider whether you really need to offer the action at line item level. Examples of line item actions include:

  • Start/Stop (a batch job)
  • Approve (an item)
  • Assign (an item)

Do not disable line item actions. If an action cannot be used, hide it. This can be the case if the user has no authorization or the line item is in the wrong state.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar (4).

Examples:

  • Save
  • Cancel
  • Submit

Please be aware: Even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information on finalizing actions, see the guidelines for the footer toolbar.

Responsiveness

In general, the list report floorplan is responsive. However, there are exceptions if the following controls are used:

Instead, take an adaptive approach:

    • Create a new Fiori application with reduced complexity, not an exact match of the desktop application.
    • With the new application, address the most important use cases for users in a mobile context. The responsive controls (responsive table, list or tree,) or a relevant control for your use case (for example a chart or the category navigation pattern) may suffice.

For more details, see the respective guideline articles.

List report - Size L
List report - Size L
List report - Size M
List report - Size M
List report - Size S
List report - Size S

Examples

The examples below show variants of the list report with the most commonly-used controls. You can also see the manual update mode (with a “Go” button) and the live update mode (no “Go” button).

Top Tips

  • Avoid loading list report page without any data, even if there are no mandatory filters.
  • Use only one key identifier in the table.
  • If you are using the icon tab bar, place it beneath the filters.
  • In the icon tab bar, use text labels only (without icons).
  • Choose selection controls that best fit your use case.
  • Make sure that columns in the table are aligned correctly.
  • Ensure that mandatory filter fields always have default values.
  • Avoid using variant management for tables. Use the page variant instead.
  • Always enable actions like Add, Create or Edit. Once Edit is triggered, replace it with Save and Cancel.
  • Never place finalizing actions in the header toolbar, even if they affect the whole page.
  • When using the icon tab bar, be aware that each tab contains its own table toolbar.

 

Related Links

Elements and Controls

Implementation

Object Page Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the object page header, content area, and footer bar in the SAP Fiori Elements section.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan
Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.

List report floorplan
  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a code identified by a scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Header content (optional)
  5. Object marker (optional)
  6. Header toolbar with global actions (optional)
  7. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
Object page with expanded dynamic page header
Object page with expanded dynamic page header
Object page with collapsed dynamic page header
Object page with collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer text (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Progress indicator
  4. Footer text (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use the rating indicator facet to display a single rating value or an aggregated rating (such as an average rating for a product). The facet structure is slightly different in each case.

Single rating value:

The single rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary texts
  3. Rating indicator
Rating indicator facet - Single rating
Rating indicator facet - Single rating

Aggregated rating:

The aggregated rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer text (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.
Rating indicator facet - Aggregated rating
Rating indicator facet - Aggregated rating
Guidelines
We recommend the following property settings when using the rating indicator in header facets:

  • Show 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

Navigation Bar (optional)

If your content can be shown in just one section, use the dynamic page layout. In the dynamic page layout with one section, the header area can’t be edited when the page is in edit mode.

If you need to structure your content in different sections, use the object page layout. You can only have several sections in the object page layout. When you use the object page layout, you can also make the header editable when the page is in edit mode. However, try to avoid having an editable header and move the content from the header to the sections instead.

If you need only one section, but require an editable header, use the object page layout. An object page with only one section doesn’t have any anchor bars. However, a temporary anchor bar and section for editing the header content should be added when edit mode is triggered.

If the content is complex there are two ways to structure it:

  • Anchor bar navigation (default)
  • Tab bar navigation

Anchor Bar Navigation

The anchor bar consists of a series of links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link navigates to the respective section. The anchor bar remains visible when the user scrolls down the page.

Use anchor bar navigation when the content belongs together but users might want to jump to specific parts directly.

For more information, see Anchor Bar Navigation.

Tab Bar Navigation

The tabs are a series of links to subpages, arranged horizontally at the top of the page. Clicking a link navigates to the respective subpage. The tabs remain visible when the user scrolls down the page.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

For more information, see Tab Bar Navigation.

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking on these links directs the user to specific sections of the page. The anchor links remain visible when the user scrolls down the page.

Object page – Anchor bar navigation
Object page – Anchor bar navigation
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu
Developer Hint
Make sure that the UpperCaseAnchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

If the content of a section contains a control, for example a table, then we recommend to always display it, even if the control title and tab title are identical. This makes it easier for the user to orientate themselves.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Guidelines
If a section contains a control, like a table or a chart, and the title of the control is the same as the section title, then the section title can be hidden so that this title is only displayed once. This avoids unnecessary redundancies.

We recommend the same for subsection titles.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness
Developer Hint
For non-SAP Fiori element object pages only:

The content of the dynamic page header, navigation bar, (sub)section titles, and subsections must be vertically aligned. To achieve this, apply the sapUxAPObjectPageSubSectionAlignContent CSS class to the content of the subsections and set the width property to “auto”.

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns / 6 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. To improve access to the different forms we recommend always using one subsection per form, rather than placing multiple forms into one subsection.

If you need to perform any actions, you can use the subsection header. If you need action at group level, you can use a group header. To prevent confusion, we recommend inserting actions only in one place, depending on the use case.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Block base
Object page – Block base

Tables

If a section contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section title acts as the table title.

If a subsection contains only one table and no other content, hide the title of the subsection to avoid having duplicate titles for the table and reduce vertical space. In this case, the table title acts as the subsection title.

If you want to embed analytical tables, grid tables, or tree tables in an object page, use an object page with tabs, and place each table in its own tab. Because the analytical, grid, and tree tables have their own vertical scroll bars, they are not allowed within scrollable object pages. If you are using a scrollable object page without tabs, use a responsive table instead, and offer navigation to another page with the respective table type.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 400 Tab navigation
More than 400 or tab approach is unsuitable Navigation to another page

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but less than 400, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to Another Page

For tables with more than 400 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend only showing a preview of 10 items, but not more than 20. This can be achieved using predefined filters and/or by sorting the table. If necessary, you can also set a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate page, such as a list report, subobject page, or dynamic page with the respective table type. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used for closing and finalizing actions in:

  • Edit and create mode, for example, Save, Post, Accept, Reject, and Activate
  • Display mode, for example, Approve, Accept, and Reject 

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Initial Focus

When the object page is loaded, set the initial focus as follows:

  • If the object page is in display mode, set the focus on the first section.
  • If the object page is in edit mode, set the focus on the first empty mandatory field.
  • If there are no mandatory fields, set the focus on the first editable element or first action.

Edit

In edit mode, the object page can contain a mixture of editable and read-only content.

If the user needs to edit elements in the header, a header section is added in the content area to enable editing.

Use the same content layout for both display and edit mode. Content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Object Handling (Create, Edit, Delete).

Editing the Header

The object page header can be edited in two ways:

  • Global edit
  • Partial edit

Global Edit

The header can be edited when the entire object page is in edit mode.

Because the header snaps on scroll, there are no editable forms in the header itself. Instead, a temporary header section is added before the other sections of the page. The title bar information and all editable fields from the header container move from the header to the new editable header section. Any non-editable content displays as read-only in the new header section. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts).

If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears.

If your object page has no anchor bar in display mode, and the header section has only a few editable fields, do not add navigation in edit mode.

The header container in edit mode may contain independent facets that are not included in the header content in display mode. They provide information to assist editing.

If the entire object page is in edit mode, but there is no editable information in the header, no editable header section is added.

Any changes made to the header are not reflected until the user saves them.

Partial Edit

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing Ctrl+Enter has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Edit Actions in Display Mode (freestyle apps only)

The standard flow is to switch to edit mode for edit and delete actions. However, in some cases, it can be helpful to offer certain edit actions in display mode as well.

You can offer edit actions in display mode if:

  • Switching to edit mode would inconvenience the user. This is especially true if the change is small and quick, and switching to edit mode would take longer than making the change.
  • The change does not impact a critical flow or result in technical inconsistencies.

Examples: Adding a comment, uploading a file

Do not offer edit actions in display mode if:

  • The change has a critical impact on business data/follow-on processes.
  • The change requires a finalizing action.

Example: Deleting a sales order item would affect the entire sales order and dependent data.

When offering delete actions in display mode, always show a delete confirmation dialog. For more information, see:

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover or clicks the  (Close) icon.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, display the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Loading Behaviour

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If loading takes a long time, a busy indicator is shown on top of the section or item until the content is loaded and visible.

SAP Fiori elements uses a skeleton template with generic placeholders. For more information, see Placeholder Loading.

Busy indicators for sections still loading
Busy indicators for sections still loading

Message Handling

In Display Mode

The following controls can provide messages to users in the object page in display mode:

  1. Generic tag
  2. Message strip
  3. Object status

Generic Tag

The generic tag displays KPIs and situations.

Message Strip

You can place a message strip in the header or in a section in the content area:

Object page with different messaging options
Object page with different messaging options
  • Header:
    Show the message strip in the header if the information relates to the whole object.

Place the message strip between the object page title and the header content. When the header is collapsed, it remains visible.

  • Content area section:
    Show the message strip in the content area section if the information relates to a specific section.

Place the message strip at the top of the section above the section title.

Use a single message strip with a single message per area. Do not stack several message strips together.

A message strip can display:

  • A call to action, such as a task that the user must perform
  • Temporary information that the user needs to know
  • An issue that is not related to a form field
  • The object status if the object status control is too small to convey the information.

For a brief status text, use the object status control.

If you decide to display both the message strip and the object status control, they should not repeat the same information.

  • Brief guidance on how to use or read the page.

If the object page requires multiple hints for the user, consider using SAP Companion instead.

Object Status

The object status displays a brief description of the object status.

Object page with message strip and collapsed header
Object page with message strip and collapsed header
Object page with message strip in a section
Object page with message strip in a section

In Edit Mode

In edit mode, use the message popover to help validate forms and tables as a single object.

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size M
Object page – Size M
Object page – Size L
Object page – Size L

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information, see:

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Initial Page Floorplan

The initial page floorplan allows the user to navigate to a single object to view or edit it. The interaction point on the screen is a single input field that relies on assisted input to direct the user to the object in as few steps as possible (using features such as value help and live search). If you need to display more than one object, use the list report floorplan instead.

Initial page interaction sequence
Initial page interaction sequence

When to Use

Use the initial page floorplan if:

  • The user only needs to work on one object at a time. In this case, the list report floorplan would include a redundant step for viewing a list of items found by the search.

A typical use case for the initial page floorplan is a scanning app, where each new scan leads to an object with input fields. Once the user has submitted the entries, the screen is shown in read-only mode. The cursor returns to the input field, ready for the user to scan the next object.

Do not use the initial page floorplan if:

  • The search is supposed to return a list of objects. This is the scenario for the list report floorplan.

It is also advisable to use only one input field for finding the object. If you need to include detail views, or allow the user to switch between views, offer these features when displaying the object itself.

Components

The initial page is a floorplan based on the object page, with a dynamic page header and a content area.

  1. Shell bar (mandatory)
  2. Dynamic page header (mandatory)
  3. Content Area (mandatory)
  4. Input field (mandatory)
  5. Header features (optional)
  6. Footer toolbar (optional)
Initial page structure
Initial page structure

Dynamic page header

The header area can contain the same content as the object page and thereby follows its defined structure, except for the title, which is replaced by an input field. The header initially displays in collapsed mode but expands when the user performs a search or finds an object using the input field. Choose the selection control best suited to your use case.

Content area

The content area is used to display the object. It can contain a navigation bar, sections, subsections, forms, and tables.

Behavior and Interaction

Initial Focus

When the initial page is loaded, set the initial focus on the input field in the header title area.

Live Search

The input field serves as the single starting point for finding the object. The assisted input uses the live search feature (search-as-you-type) to speed up the search. The live search feature can show anything from one attribute to an entire table of values. To guide the user, you can use an illustrated message to display a hint, such as Enter the ID manually or Scan the code.

Initial page with live search
Initial page with live search

Initial Screen with dialog

If multiple hits are possible for the same search terms, you may need to implement a select dialog, table select dialog, or value help dialog. These dialogs let the user narrow down the list of items based on more specific criteria. When the user selects an object from the list, the dialog closes and the object is displayed in the content area.

Initial page with dialog
Initial page with dialog

Behavior of the Search Field

The content of the dynamic page header is initially collapsed and cannot be expanded. The input field is located in the header title area of the object page. If no other additional actions are provided, set the focus to the input field . This allows the user to enter the search term directly without clicking into the field. However, only consider doing this if there are no other elements that could be blocked by it, such as the on-screen keyboard on touch devices.

Once the user finds an object, the dynamic page header expands and displays the relevant information for the object.

The dynamic page header collapses on scrolling or by user interaction, but the input field for performing a different search is always visible.

If the user enters new search terms in the input field, the focus moves away from the field and the app triggers a new search. If no results are found, the initial view of the page is shown – with a collapsed header and a corresponding message in the content area.

Initial page with error message
Initial page with error message

Responsiveness

The initial page features a single interaction point for the user: the input field near the top of the screen. Place the input field inside header title bar (sap.f.DynamicPageTitle). Configure the width to fit the width of the longest text (allowing some additional space for other languages), but do not make it significantly wider. When you set the maximum width of the input field, also consider the width available on mobile devices.

The field should never be as wide as the screen (except on smartphones).

Initial page floorplan - Size S
Initial page floorplan - Size S
Initial page floorplan - Size L
Initial page floorplan - Size L

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Page Layouts and Floorplans

This article provides an overview of how SAP Fiori layouts and floorplans are used to build application pages.

Page Layouts vs. Floorplans

The standard page layout in SAP Fiori is the dynamic page, which is made up of a header, content area, and footer toolbar.

Floorplans are usually based on the dynamic page. Floorplans serve specific use cases and therefore come with a specific combination of UI elements in the header, content area, and footer toolbar.

The following visual shows the composition of the dynamic page layout and how the elements of a list report floorplan are built into it. Never insert a whole floorplan into just the content area of the dynamic page layout.

Page - Dynamic page - Floorplan
Page - Dynamic page - Floorplan

Full Screen vs. Flexible Column Layout

You can decide whether your app uses a full screen layout (one page at a time) or a flexible column layout for list-detail relationships (up to three pages side by side). The flexible column layout enables fast and fluid navigation between pages.

Full screen layout
Full screen layout
Flexible column layout
Flexible column layout

More Information

Information
To control and optimize the left and right spacing between header and content area and between UI elements (such as tables and forms), we offer a responsive spacing system.

Additional Layouts

The following layouts have been designed for special use cases:

Layout Use Case
Comparison Allows users to select items from a list and display them side-by-side. This makes it easier to compare the characteristics of multiple items.  
Multi Instance Allows users to open multiple documents in a tabular view. After selecting items from a list, the user opens them in a tab container.

Related Links

The following frameworks are also used to design pages:

Framework Characteristics
SAP Fiori elements Generates the user interface automatically, thus making app development more efficient, available for nearly all floorplans (besides Wizard and Initial Page)
Analysis Path Framework For creating interactive, chart-oriented analytical drilldown apps by configuration
SAP Smart Business For viewing and analyzing the data for one key performance indicator (KPI)

Analytical List Page Floorplan

Information
This floorplan is implemented with SAP Fiori Elements.

Intro

Analytical list page
Analytical list page

The analytical list page (ALP) offers a unique way to analyze data step by step from different perspectives, to investigate a root cause through drilldown, and to act on transactional content. All this can be done seamlessly within one page. The purpose of the analytical list page is to identify interesting areas within datasets or significant single instances using data visualization and business intelligence.

Visualizations help users to recognize facts and situations, and reduce the number of interaction steps needed to gain insights or to identify significant single instances. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

The main target group are users who work on transactional content. They benefit from fully transparent business object data and direct access to business actions. In addition, they have access to analytical views and functions without having to switch between systems. These include KPIs, a visual filter where filter values are enriched by measures and visualizations, and a combined table/chart view with drill-in capabilities (hybrid view). Users can interact with the chart to dig deep into the data. The visualization enables them to identify spikes, deviations and abnormalities more quickly, and to take appropriate action right away.

Usage

Use the analytical list page if:

  • Users need to extract key information to understand the current situation or identify a root cause. The way the data is presented is crucial for giving them the insights they need to take the right action.
  • Users need a way to analyze data step by step from different perspectives, investigate a root cause through drilldown, and act on transactional content within one page.
  • In addition to the filtered dataset, users need to see the impact of their filter settings in a chart (visual filter).
  • Users need to switch between integrated chart and table views (hybrid view).
  • Users need to see the impact of their action on a global key performance indicator (KPI).
  • Users need to find and act on relevant items out of a large set of items by searching, filtering, sorting, grouping, drilling down, and slicing and dicing.

Do not use the analytical list page if:

  • Drilldown is rarely used, not used at all, or is only needed after navigating to another page, rather than as free or flexible drilldown within the page itself. In this case, a list report might be sufficient for your use case.
  • Users need different visualizations for the entire dataset (for example, as a table or chart), but don’t need to work with both visualizations on the same page (for example, in a reporting scenario). In this case, a list report might be sufficient.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping, without using drilldown or “slice and dice”. In this case, consider using a list report.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. They want to be able to switch views using tabs, segmented buttons, or a select control. In this case, consider using a list report.
  • Users need to see or edit a single item with all its details. Use the object page floorplan instead.
  • Users need to find a specific item, and the item or an identifying data point is known to the user (such as a code). In this case, use the initial page floorplan.
  • Users need to work through a comparably small set of items, one by one. In this case, use the worklist floorplan.
  • Users have a trivial use case that does require the use of a chart, but that do not involve identifying a root cause, analyzing data, or drilldown. Instead, use a list report with a table/chart switch.

Structure

This section describes the basic layout of the analytical list page, as well as the different layout variants.

Basic Layout

The shell bar is above the analytical list page. The page itself uses the dynamic page layout and has two main areas:

  1. Analytical list page header:
    The page header is the filter area. Users can expand and collapse the header using the expand/collapse header icon.
  2. Analytical list page content area:
    The content area shows the content for the chosen filters.

All elements are described in more detail in the Components section below.

Analytical list page - Basic layout
Analytical list page - Basic layout

Layout Variants

The layout of the analytical list page is quite flexible. The display is determined by the header and content views chosen by the user.

The analytical list page always offers all of the above layout options. You cannot restrict the available views at app level. For example, you can’t offer only a visual filter (with no option to show the standard filter bar). Likewise, you can’t show only a table view (with no option to display the hybrid or chart views).

Information
SAP Fiori elements for OData V4 uses the filter bar and SAP Fiori elements for OData V2 uses the smart filter bar.

Responsiveness

The analytical list page is responsive, except for the global KPIs. Apps with one or more global KPIs are not supported on screen sizes smaller than size L (desktop).

Likewise, the analytical list page is only fully supported in the flexible column layout if no global KPIs are used. If you use the analytical list page with global KPIs within the flexible column layout, the column should have at least size M.

Size S

On size S, the analytical list page supports both the chart-only and table-only views. The table-only view supports only the responsive table. If no responsive table is available, the chart-only view is displayed without a view switch toggle.

Global KPIs are not supported on size S.

Size M

On size M, the analytical list page supports both the chart-only and table-only views. You can use a responsive table or analytical table in the table-only view.

Chart-only view - Size S
Chart-only view - Size S
Table-only view - Size S
Table-only view - Size S
Chart-only view - Size M
Chart-only view - Size M
Table-only view - Size M
Table-only view - Size M

Components

Analytical List Page Header

The page header can be expanded and collapsed on click. Different content is shown in the expanded and collapsed states. For more information about the basic behavior of the header, see Dynamic Page Header.

Collapsed Header

The collapsed page header contains the following elements:

Collapsed analytical list page header
Collapsed analytical list page header

Expanded Header

Initially when the app is launched the header is expanded by default. The expanded page header contains the following elements:

Expanded analytical list page header showing the visual filter bar
Expanded analytical list page header showing the visual filter bar
Expanded analytical page header showing compact filters in the filter bar
Expanded analytical page header showing compact filters in the filter bar

Analytical List Page Content Area

The analytical list page content area contains the following elements:

  • View switch (   |    |    )
  • Hybrid view: View with one chart, chart toolbar, one table, and a table toolbar
Hybrid view
Hybrid view
Chart-only view
Chart-only view
Table-only view
Table-only view

Analytical List Page Header

Variant Management

Variant management in the analytical list page allows users to save a page variant whenever there are changes in the underlying structures of the filter/content area. Variant management for the page is handled by the standard SAPUI5 page variant management.

Currently, the page variant captures the following states across the page:

  • Filter view switch state: Visual filter bar or filter bar
  • Filter set: The filters set in the visual filter bar and filter bar
  • Filter selections: Selected values in the visual filter bar and filter bar
  • Content view switch state: hybrid view  , chart-only view  , or table-only view  
  • Chart and table configurations, such as measures and dimensions used, sort order, or grouping
  • Chart drill-down state, based on the current selections (slice & dice)
  • Table entry switch state: Hide (  ) or Show  (  ) selected table records

Global KPI Tags and Cards

Use a global KPI tag (= global key performance indicator tag) if you would like to show a global KPI related to the task in hand. The global KPI value changes only if an action is executed on the transactional content. For example, the user needs to know the effect of releasing sales orders on a related global KPI, or the effect of posting an accounting document on certain financial global KPIs.

You can display a maximum of three global KPIs. Clicking a global KPI tag opens a global KPI card that displays more details on the KPI.

The global KPI tags and corresponding KPI cards are independent of the filter area. This means that global KPI tags do not react to filters set in the visual filter bar and filter bar.

A global KPI tag has four components:

  • Global KPI label
  • Global KPI value
  • Global KPI color and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator

Global KPI Label

The global KPI label is an abbreviation of the complete global KPI title. It is formed using the first three letters of the first three words of the global KPI title.
Examples: AMR for Actual Monthly Revenue, TAR for Total Advertising Revenue, or LPC for Landing Page Conversation Rates

If there is only one word in the global KPI title, the first three letters of the word are displayed. Example: CON for Contracts

If the global KPI title has only two words, only the first letters of these two words are displayed. Examples: AC for Actual Costs, SG for Sales Growth

KPI label abbreviation: AC
KPI label abbreviation: AC

Global KPI Value

The global KPI value is displayed using a semantic color and a scaling factor. Relative values are shown with a percentage sign and one decimal place.
Examples: 0.3%, 82.9%
Absolute values are shown without decimal places, a currency, or a unit of measure.
Examples: 2K, 75K, 30M, 14B

KPI values: 157.3M and 0.3%
KPI values: 157.3M and 0.3%

Global KPI Color and Criticality Indicator

The color of the global KPI value is based on the thresholds defined for the particular KPI in the annotation. The global KPI tag also uses a line to indicate the criticality. The color of the line is the same as that of the global KPI value.

KPI color and criticality indicator
KPI color and criticality indicator

Global KPI Card

Clicking the KPI tag opens the analytical card, which displays more information about the current value of the global KPI, the global KPI target, the deviation from the target, and how the global KPI has evolved over time.

Global KPI card
Global KPI card

Filter Area: Visual Filter Bar and Filter Bar

The filter area allows users to filter the result set, which feeds the main content area. The analytical list page comes with two filter types: compact filters in the filter bar, and the visual filter bar. Always design both visual filters and compact filters (filter bar) for your app. We recommend setting the visual filter bar as the default, but this is no longer mandatory. You can opt to use the (compact) filter bar as the default if your app has the required parameter values, if your main use case involves date ranges, or if your users often need to combine multiple filters in different ways.

Currently, any visual filter configured in the visual filter bar must always be displayed as a compact filter in the filter bar as well. By contrast, a filter configured as a compact filter in the filter bar may or may not be configured for display as a visual filter. This means that it’s possible to have a smaller set of visual filters and a larger set of compact filters.

Both filter types supports two different modes: live update and manual update. Use the live update mode for both filter types as the default whenever possible. Apply the same mode to both filter types: the visual filter bar and the filter bar. For example, if you use the live update mode in the visual filter bar, you should also use the live update mode for the filter bar.

Information
SAP Fiori elements for OData V4 uses the filter bar and SAP Fiori elements for OData V2 uses the smart filter bar.
Visual filter bar
Visual filter bar
Filter bar
Filter bar

Filter Type Switch

Users can toggle between the compact filters    (filter bar) and    (visual filter bar) in the upper-right area of the page header. The filter type switch is a core feature of the analytical list page and is mandatory. The switch is only displayed when the page header is expanded. Once the header collapses, it disappears.

Filter type switch
Filter type switch

Carrying Forward Filter Selections

Visual Filter to Compact Filter

Any values selected in the visual filters are always carried forward to the corresponding compact filters.

Compact Filter to Visual Filter

Filter dimensions that are part of a visual filter are synced to the visual filter. If the dimension value(s) chosen in the compact filter are part of a visual filter, they are shown as selected chart dimensions in the visual filter (single or multiple selections).

Filter dimensions that are not part of the visual filter, parameter values, and interval-based dimensions are applied to the filter query and the content is refreshed.

To show complex conditions, click the link for the number of selected items at the top of the visual filter.

Visual Filter Bar

The visual filter bar combines measures or item counts with filter values. The visual filter bar becomes more powerful if you match measures to the filter dimension instead of just item counts. Use the visual filter bar if you would like to give the user a condensed overview of the data in the dataset. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

Chart Types in the Visual Filter Bar

Currently, the visual filter bar supports three interactive chart types:

These interactive charts are also referred to as visual filters.

Interactive Donut Chart

The interactive donut chart in the visual filter bar is used for non-time-related data (for example, categories) and displays only the top or bottom two values. The rest are aggregated into the “Other” section.

Interactive donut chart
Interactive donut chart
Interactive donut chart with semantic colors
Interactive donut chart with semantic colors

Interactive Line Chart

The interactive line chart is used exclusively for displaying time series data, and can show a maximum of six data points. Always show the first or last six data points (for example, last six days, last six months, first six days, and so on).

Interactive line chart
Interactive line chart
Interactive line chart with semantic colors
Interactive line chart with semantic colors

Interactive Bar Chart

The interactive bar chart can be used for non-time-related data (for example, categories) and has a maximum of three filter values. These filter values show the top three or bottom three entries.

Interactive bar chart
Interactive bar chart
Interactive bar chart with semantic colors
Interactive bar chart with semantic colors

Using Interactive Charts

The interactive charts come with the following features and rules:

  • Minimum number of interactive charts: Show at least three visual filters and try to use different chart types.
  • Filter title:
    • Use the following naming convention for the filter title, using title case:
      [Measure Name] by [Dimension Name] | [Scale Factor] [Unit of Measure].
      Examples:
      Project Costs by Project | K EUR
      Sales Volume by Commodity | M PC
    • For an item count, use the following naming convention for the filter title, using title case:
      Number of [Dimension] | [Scale Factor] [Unit of Measure].
      Examples:
      Number of Products | PC
      Number of Contracts by Month
    • Note that for some use cases, it might be appropriate to replace “Number” with a different expression. Bear in mind that the space for displaying the filter title is limited. If the measure and/or dimension names are longer than the predefined space, the text will be truncated.
Filter title with truncation
Filter title with truncation
Filter title without truncation
Filter title without truncation
  • Filter-to-filter dependencies: Ideally, the filters depend on each other. By selecting one or several chart data points, users can perform a quick analysis of the dataset.
    Examples: Supplier with the lowest supplier performance this year, product with the highest sales volume in March in the EMEA region
  • Adding additional filter values: All charts have a maximum number of filter values that can be displayed within the chart itself. More filter values can be selected using the value help or the select popover.
  • Selected values: Any data point or segment that is selected in the visual filter’s interactive charts will remain selected even when the user changes the measure, chart type, or sort order in any of the charts. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.
  • Semantic colouring: All interactive charts support semantic colors to indicate the criticality of filter values.
  • How to design a visual filter: To design a visual filter, choose a meaningful measure out of the dataset and match it to a filter dimension. If no measures or no meaningful measures are available, use an item count instead. Have a look at the visual filter bar article for more information.

Filter Dialog

In the filter dialog, the user can switch between the visual filter bar and the compact filters using a toggle button, and also manage the filters. For more about the standard filter dialog, see Filter Bar. Visual filters are explained in more detail below.

Filter Dialog for Visual Filters

The filter dialog is launched by clicking the Adapt Filters ([number of applied filters]) link in the page header area. In the filter dialog for visual filters, the user can choose which filter fields are shown in the visual filter bar, and make the following changes:

  • Add visual filters
  • Delete visual filters
  • Hide visual filters in the visual filter bar
  • Search for visual filters
  • Change the sort order  of each visual filter
  • Change the chart type   of each visual filter
  • Switch to other measures  in the visual filter display

Analytical List Page Content Area

The content area shows different visualizations of the selected data. In the hybrid view, users can interact with both the chart and table visualizations at the same time. In addition, the analytical list page supports a chart-only view and a table-only view. The analytical list page always comes with all three views. Offering additional views or even tabs would add too much complexity, and is neither supported nor recommended.

Check out the following sections for more details on the hybrid view, chart-only view, and table-only view.

Hybrid View

The hybrid view uses both chart and table visualizations at the same time. It enables users to analyze data step by step from different perspectives. Users can interact with both the chart and the table, and drill down through either the smart chart or table entries to investigate a root cause. They can also act directly on transactional content. In the initial view of the chart, visualize the most important aspects of the whole dataset in the chart.

Example: The view shows all the suppliers the user is responsible for, organized by value. By drilling down the material to the plant with the highest/lowest volume, the user can see if materials need to be shifted from one plant to another. The corresponding transactional data is shown in an analytical table below the chart, which might also offer an action for shifting the material.

Analytical list page - Hybrid view
Analytical list page - Hybrid view

Chart-Only View

The chart-only view enables users to analyze data step by step from different perspectives, and to investigate a root cause through drilldown, without direct access to transactional content. The smart chart control provides the chart visualization in the chart-only and hybrid views: it is used to display the dataset as a chart. The smart chart drilldown functionality provides a convenient way to analyze the dataset. In addition, the smart chart offers detailed information on the chart data and a breadcrumb that shows the drilldown path. Ensure that you show the most important aspects of the dataset in the chart.

This mode is perfect for applications with analytical data that can easily be represented visually using charts, but doesn’t need to be linked to the transactional dataset.

Analytical list page - Chart-only view
Analytical list page - Chart-only view

Table-Only View

The table view provides access to transactional content. The user can act on single or multiple objects, and navigate to the object details or to other applications.

Depending on the use case, you can opt to use either the analytical table or the responsive table.

Snapping or scrolling is not available for desktop-focused tables, such as the analytical table. Scrolling is only available when the responsive table is used. The pin is enabled by default. The table entries are loaded using lazy loading.

Users can apply filters at table level using the Settings button ( ). For analytical tables, filtering is also available at column level. For more information, see Analytical Table (ALV) – Filter.

Analytical list page - Table-only view
Analytical list page - Table-only view

Behavior and Interaction

The expand/collapse header and pin/unpin header features work as in the dynamic page.

Initial Focus

When the analytical list page is loaded, set the initial focus as follows:

  • If the compact filter is visible by default, set the focus on the first filter field (for live update mode) or on the Go button (for manual update mode).
  • If the header contains empty mandatory fields, set the focus on the first empty mandatory field.
  • If the visual filter bar is visible by default, set the focus on the first chart container.
  • If the header is collapsed (visual or compact filter), set the focus on the first chart data point or the first table row (depending on the selected view).

Open and View the Global KPI Card via the Global KPI Tag

Clicking a KPI tag opens the KPI card, which shows the details for the particular KPI.

Select Filters in the Visual Filter

Unlike micro charts, the visual filter charts are interactive. In live search mode, selecting a filter value triggers data filtering in the content area. Both single and multiple selection are supported.

To select a filter value, the user clicks on a value in the chart. The filter can be removed by either clicking on the value help link, or by clicking on the same value in the chart again. The user can select more filter values using the value help or select popover.

Any data point that is selected in a chart still remains selected when the user selects a data point in another chart. Filter values react on each other. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.

Switch Views: Hybrid, Chart-Only, and Table-Only

Users can switch between the hybrid view, chart-only view, and table-only view.

If the user selects values and then switches the view, the selection remains intact. See the table below for more details.

Switch Description
Hybrid view to table view Table selection remains intact
Hybrid view to chart view Chart selection remains intact
Chart view to hybrid view Chart selection remains intact; corresponding table selections are displayed
Table view to hybrid view Table selection remains intact

Show/Hide Table Entries in Hybrid View and Table View

The table toolbar for the analytical list page offers a Show   and Hide    table entries feature as a toggle switch in the hybrid and table views:

  • If the Show icon is active, the table shows all items. These include highlighted entries (where values are selected in the chart) and non-highlighted entries.
  • If the Hide icon is active, the table shows only items that are selected in the chart.

For example, if the user selects SAP’s Sales Revenue for 2012 as Customer in the chart, all records relating to SAP’s Sales Revenue for 2012 are highlighted (but not selected) in the table. Note that the record is still highlighted even if Customer not displayed as a column in the table. If the table rows are grouped, the entire grouping is highlighted, even if only one record within the grouped set is affected by the chart selection. All values that are not selected in the chart are “hidden” and are not shown in this table mode.

Guidelines

Show the filter dimension with one measure in the visual filter, not multiple measures

Filter dimensions in the compact filters (filter bar) have exactly one representation in the visual filter bar.
Do not show the same filter dimension with two or more different measures at the same time in the visual filter bar. The example shows the filter Dimension Year with two different measures Revenue and Quantity. Showing the filter dimensionYear twice is not in sync with the compact filter, where it is shown only once. Furthermore, matching between the two filter types will not work.

If the use case requires you to show a dimension with different measures, consider using an overview page instead.

Do
For each dimension display exactly one representation in the visual filter bar.
For each dimension display exactly one representation in the visual filter bar.
Don't
Do not use the same filter dimension with different measures
Do not use the same filter dimension with different measures

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Overview Page – Cards

Cards – Harmonized and Powerful Information

Each task or topic on an overview page is represented by a card. The overview page acts as a UI framework for organizing multiple cards for one role on a single page .

Cards are containers for app content, and represent an entry-level view of the most pertinent app data for a given topic or issue. Technically, a card is a smart component that uses UI annotations to render its content. Cards allow you to show application content from different sources side by side – without requiring the user to switch screens. Cards differ in the content they display: They can show a chart, a list, a table, informative text, or a combination of two elements. However, cards never have editable fields.

Cards can focus on a single object or topic, or on a group of objects. Cards can also vary in size, depending on the selected layout.

The overview page can contain several cards that reference the same (parent) application. However, each card must bring added value to the user, and not just repeat information already offered on another card.

Before you start designing cards for an overview page, see the best practices.

At a Glance

  • Cards are small previews of application content.
  • Each card represents a specific topic, task, or perspective.
  • Cards help users to focus by applying progressive disclosure principles.
  • Cards are powerful and beautiful.
  • Cards offer a variety of visualizations.
Overview page with different card types (extract)
Overview page with different card types (extract)

Card Anatomy

Each card comprises two components: a header area and a content area. The header and content areas are mandatory. A footer area is only used for actions in the quick view card.

The interactive navigation in the header and content areas is represented by a hover effect.

When designing cards, make sure that you define and format the texts on all the cards consistently. For details , check out the UI text guidelines for the overview page.

Card anatomy
Card anatomy

Card Header

The card header area is mandatory, and serves the following purposes:

  • It indicates what the card is about.
  • It functions as a navigation area for opening the parent app, whereby the whole header area is clickable. We highly recommend offering this navigation to enable users to move seamlessly to the app details without losing focus on the task in hand  (exception: link list card). 
  • A counter shows how many items are on the card in relation to the total number of relevant items.
  • An overflow menu with options to add the card to the My Home page or to refresh only the data in the card, not the entire page.

The height of the header area is variable; it expands vertically to accommodate the text. The header area can contain two text fields: a mandatory title, and an optional subtitle. The primary purpose of the header area is to identify the content source, summarize the focus of the card (title), show any relevant parameters (subtitle), and offer navigation to the content source (parent app).

Title

The title is mandatory and represents the card’s “point of view”. In one or two words, it explains why this card exists and why a user might want to use it. It is a natural language reflection of the annotated view. Titles that exceed three lines are truncated with the ellipsis ().

Subtitle

The subtitle is optional. You can use it to qualify the title, offer an explanation, or show a status. The use of the subtitle can differ, depending on the card type. Subtitles that exceed one line are truncated with the ellipsis (…).

Card header with counter
Card header with counter

Counter

The counter in the header area indicates how many items are showing on the card in relation to the total number of relevant items:

Format: [Items on Card] of [Total Items]
Example: 5 of 40 

The counter is right-aligned and is never truncated (the title wraps instead). The width of the counter is flexible, depending on the amount of data. [Items on Card] can show a maximum three digits, and [Total Items] a maximum of four digits. For larger numbers, a scaling factor is shown. If all the relevant items are visible on the card, no counter is shown. There is also no counter if there is an issue loading a card, or no items are found for the filter criteria.

In the resizable card layout, the card counter adapts to the card size. If the user increases the size of a card with a scaled counter, the counter shows the exact number of items (without the scaling factor). The scaling factor appears when values exceed 1000.

Card counter in different cases
Card counter in different cases

Overflow Menu

The overflow menu lets users perform the following actions:

  • Refresh: refresh only the data in the card, not the entire page.
  • Add Card to My Home: add the card to the Insights area of the My Home page.

Card Content

The content area is mandatory and is reserved for application content. Content is currently displayed on cards by embedding SAPUI5 controls that specify the properties and data format. For example, an embedded standard list control provides formatting, such as row height, font sizes, and the number of text blocks.

The resizable card layout also has a special kind of the content area, called mini content. It describes the minimum height for the card content.

Card Types

The overview page supports the following standard card types:

 

You also have the option of creating custom cards. Custom cards allow you to define the appearance and the type of content within the content area of a card.

Important: Only use custom cards if the features required for your use case are not offered in any way by the standard cards for the overview page. If your basic requirements can be reasonably covered by one of the standard cards, always use the standard card, even if there are technical or visual limitations.

Appearance

Texts in Cards

Make sure that you define and format the texts on all the cards consistently. Check the UI text guidelines for the overview page for details.

Formatting Dates, Times, Amounts, and Currencies

Apply the following formats:

  • Dates: The default is the relative date format (for example, Today). However, you can also use the medium date format (such as Aug 7, 2015).
  • Times: Times are not visible by default, but if you need to show a time, use the short format (for example, 11:28 AM).
  • Integers/Float/Currencies: Use the short format (for example, 1K for 1000).

Refresh Behavior

You can set a specific refresh interval for the card content. All cards are refreshed at once.

Keep the user in mind: the shorter the refresh interval, the more disruptive it is for users.

Navigation and Interaction

The navigation and interaction depends on the technical card type:

The view switch enables you to reduce the number of similar cards and avoid repeating information.

Single-Object Cards

Cards that feature content with a single focal point, detail, or entity are called single-object cards. An example is a quick view card with information about a particular product. Analytical cards are also single-object cards. The header area of this card type always navigates to this specific focal point, detail, or entity. The content area can also have interaction areas (for example, a section in a chart, or a telephone number for a contact). However, only quick view cards can have actions in the footer area.

Interaction for a single-object card
Interaction for a single-object card

Object Group Cards

Cards that feature a subset of items grouped by a common criterion are called object group cards. A typical example would be a list of purchase orders grouped by delivery date, amount, or supplier. The cards do not have actions, but each row or list item is selectable, thus providing direct navigation to the object details within the parent application. The header area of this card type always navigates to all items in the list or table. Object group cards include all types of list cards, bar chart list cards, and table cards.

Interaction for an object group card
Interaction for an object group card

Link List Cards

Link list cards allow you to display a collection of links or images that can reference both internal and external targets.

  • Links can navigate to a target or open a popover with additional information.
  • Clicking an image opens an image carousel.
Interaction for a link list card
Interaction for a link list card

Stack Cards

A stack card is a special card type for showing a collection of single-object cards. Stack cards have 3 components with different navigation areas:

  • The top-level stack card opens the collection and contains two clickable areas: the left area navigates to the parent app (with the list of all items), and the right area opens the object stream.
  • The object stream shows individual cards that represent objects from the parent application. The object stream heading links to the parent application, while individual cards can contain links and actions relating to the respective object. A Close button returns the user to the stack card.
  • The last card in the object stream is the placeholder card. The entire card is navigable and leads the user directly to the parent application.
Interaction for a stack card
Interaction for a stack card
Interaction for a placeholder card
Interaction for a placeholder card

View Switch

You can use a view switch to offer several different content areas on one card, which can help to reduce the number of cards on the overview page. The user chooses the view using a select control. You can only combine views that have a common denominator. The options offered by the select control merely offer different perspectives. For example, a card “Purchasing Spend” (title in the header area) could offer two views “By Material Group” and “By Supplier” (options in the select control). The view switch is located in the upper part of the content area.

You can use the view switch for the following cards:

View switch
View switch

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori Overview Page.

Elements and Controls

Implementation

Initial Page Floorplan

The initial page floorplan allows the user to navigate to a single object to view or edit it. The interaction point on the screen is a single input field that relies on assisted input to direct the user to the object in as few steps as possible (using features such as value help and live search). If you need to display more than one object, use the list report floorplan instead.

When to Use

Use the initial page floorplan if:

  • The user only needs to work on one object at a time. In this case, the list report floorplan would include a redundant step for viewing a list of items found by the search.

A typical use case for the initial page floorplan is a scanning app, where each new scan leads to an object with input fields. Once the user has submitted the entries, the screen is shown in read-only mode. The cursor returns to the input field, ready for the user to scan the next object.

Do not use the initial page floorplan if:

  • The search is supposed to return a list of objects. This is the scenario for the list report floorplan.

It is also advisable to use only one input field for finding the object. If you need to include detail views, or allow the user to switch between views, offer these features when displaying the object itself.

Components

The initial page is a floorplan based on the object page, with a dynamic page header and a content area.

Structure of the initial screen
Structure of the initial screen
  1. Shell bar (mandatory)
  2. Dynamic page header (mandatory)
  3. Input field (mandatory)
  4. Header features (optional)
  5. Content Area (mandatory)
  6. Footer toolbar (optional)

Dynamic page header

The header area can contain the same content as the object page and thereby follows its defined structure, except for the title, which is replaced by an input field. The header initially displays in collapsed mode but expands when the user performs a search or finds an object using the input field. Choose the selection control best suited to your use case.

Content area

The content area is used to display the object. It can contain a navigation bar, sections, subsections, forms, and tables.

Behavior and Interaction

Initial Focus

When the initial page is loaded, set the initial focus on the input field in the header title area.

Live Search

The input field serves as the single starting point for finding the object. The assisted input uses the live search feature (search-as-you-type) to speed up the search. The live search feature can show anything from one attribute to an entire table of values. To guide the user, you can use an illustrated message to display a hint, such as Enter the ID manually or Scan the code.

Live Search
Live Search

Initial Screen with dialog

If multiple hits are possible for the same search terms, you may need to implement a select dialog, table select dialog, or value help dialog. These dialogs let the user narrow down the list of items based on more specific criteria. When the user selects an object from the list, the dialog closes and the object is displayed in the content area.

Behavior of the Search Field

The content of the dynamic page header is initially collapsed and cannot be expanded. The input field is located in the header title area of the object page. If no other additional actions are provided, set the focus to the input field . This allows the user to enter the search term directly without clicking into the field. However, only consider doing this if there are no other elements that could be blocked by it, such as the on-screen keyboard on touch devices.

Once the user finds an object, the dynamic page header expands and displays the relevant information for the object.

The dynamic page header collapses on scrolling or by user interaction, but the input field for performing a different search is always visible.

If the user enters new search terms in the input field, the focus moves away from the field and the app triggers a new search. If no results are found, the initial view of the page is shown – with a collapsed header and a corresponding message in the content area.

If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.

Responsiveness

The initial page features a single interaction point for the user: the input field near the top of the screen. Place the input field inside header title bar (sap.f.DynamicPageTitle). Configure the width to fit the width of the longest text (allowing some additional space for other languages), but do not make it significantly wider. When you set the maximum width of the input field, also consider the width available on mobile devices.

The field should never be as wide as the screen (except on smartphones).

Initial page floorplan - Size S
Initial page floorplan - Size S
Initial page floorplan - Size M
Initial page floorplan - Size M
Initial page floorplan - Size L
Initial page floorplan - Size L

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Overview Page (OVP) Floorplan

Information
This floorplan is implemented with SAP Fiori Elements.

Intro

View, Filter, and Take Immediate Action

The overview page (OVP) is a data-driven SAP Fiori app type and floorplan that provides all the information a user needs in a single page, based on the user’s specific domain or role. It allows the user to focus on the most important tasks, and view, filter, and react to information quickly.

Each task or topic is represented by a card (or content container). The overview page acts as a UI framework for organizing multiple cards on a single page.

The overview page is based on SAP Fiori elements technology, and uses annotated views of app data, meaning that the app content can be tailored to the domain or role. Different types of card allow you to visualize information in an attractive and efficient way.

At a Glance

  • Entry-level view of content on cards

  • One specific context and task area for one role

  • Content from different sources shows side by side – no need to switch screens

  • Information can be visualized on cards in different ways (texts, charts, lists, tables)

  • Micro actions let users react on the spot

Overview page
Overview page

When to Use

Use the overview page if:

  • You want to provide an entry-level view of content related to a specific domain or role.
  • Users needs to filter and react to information from at least two different applications to complete their role-specific tasks.
  • You want to offer different information formats (such as charts, lists, and tables) on a single page.
  • You plan to have at least three cards. These cards should not all be of the same type.

Do not use the overview page if:

  • A high-level or birds-eye view of application content is sufficient.
  • You just want the user to launch an application. In this case, use the SAP Fiori launchpad home page.
  • You want to show information about one object only. In this case, use the object page.
  • You just represent one application and less than three cards. In this case, use the object page.

SAP Fiori Launchpad Home Page, Overview Page, and Object Page

The launchpad home page contains all of a user’s favorite apps and offers access to them via tiles. This covers all the roles that a user might have, such as employee, manager, production worker, or quality manager.

An overview page focuses on the key tasks for a specific role, and contains only the most frequently-used apps for that role. The overview page uses cards, which display more (preview) information than tiles because of their size, properties, and interaction areas. One card type also allows users to perform simple actions. Cards represent an entry-level view of application content.

Launchpad Home Page vs. Overview Page

Launchpad Home Page Overview Page
Framework (given) SAP Fiori application (optional)
“Birds-eye” view “Street-level” view
Single point of entry Specific business context for a role
One SAP Fiori launchpad per user Multiple overview pages per user possible
Access to all the user’s favourite applications Selected applications are presented as cards
Uses tiles Uses cards
No actions Micro actions

The overview page is always role-based. The user sees a heterogeneous set of information related to a specific business context and the tasks associated with a specific role. This is not the case with the object page, which contains homogenous, object-based information.

Overview Page vs. Object Page

Overview Page Object Page
Role-based Object-based
“Street-level” view “Details” view
Heterogeneous information Homogeneous information

Role-Specific Overview Pages

As you can see in the picture, the overall content scope (shown in gray) becomes more focused with each interaction step. An overview page brings together information from different sources that support a specific task or information need. Only provide an overview app for a role if it makes sense to do so.

If a role or user has several main tasks that each require a specific set of information, the role or user might also have multiple overview apps. For example, one overview app could be used to reflect the user’s role as manager, with information for managing team performance reviews. Another overview app could be used to track quality issues and other relevant information pertaining to the machines that the user is responsible for in the role of quality manager.

Metaphor – Different entry points in SAP Fiori
Metaphor – Different entry points in SAP Fiori

Components

The basic structure and appearance of the overview page is governed by the dynamic page layout, and is divided into a header area and a content area.

This enables you to use variant management, text, and a smart filter bar in the upper part of the screen (dynamic page header). The content of the overview page is presented using cards.

Two different layouts are available, which determine the size and position of the cards: fixed card layout and resizable card layout.

Overview page – Basic structure
Overview page – Basic structure

Dynamic Page

The dynamic page header comprises the header title and expandable/collapsible header content. Three different header variants are available for overview pages

In the overview page, the header content is used for the smart filter bar with the live update mode (variant 1 and variant 2): the results are updated immediately whenever the user changes a filter field. As a result, there is no Go button for the filter bar.

Users can expand/collapse and pin the header content with the two icon buttons below the smart filter bar:

  1. Expand/collapse header or   
  2. Pin/unpin header content 

Dynamic Page Variants for the Overview Page

The header title (either text or variant management) is mandatory, while the header content (smart filter bar) is optional. Variant 3 shows only a text in the header title.

Variant 1 Variant 2 Variant 3
Dynamic page header Yes Yes Yes
Header title Variant Management Text Text
Header content Smart Filter Bar Smart Filter Bar
Page content Cards Cards Cards

In this variant, the header title contains variant management and the header content includes the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content expands as defined. The header title offers the Share menu, which enables the actions Send Email and Save as Tile.

Dynamic page variant 1 – Expanded mode
Dynamic page variant 1 – Expanded mode

In this variant, the header title contains a text (Header Title in the example below) and the header content area contains the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content snaps as defined.

Dynamic page variant 2 – Expanded mode
Dynamic page variant 2 – Expanded mode

In the third variant, the header title contains a text (Header Title in the example below). This text serves the same purpose as the former page subtitle. The header content is empty (auto hidden) and therefore doesn’t snap. The content area displays the overview page cards.

Dynamic page variant 3 – Expanded/collapsed mode
Dynamic page variant 3 – Expanded/collapsed mode

Overview Page Layout

Fixed card layout
Fixed card layout
Resizable card layout
Resizable card layout

The overview page layout describes the position, size, and characteristics of cards in the content area below the dynamic page header.

There are two layout variants:

Only place cards on the overview page. Never add tiles.

Fixed Card Layout vs. Resizable Card Layout

Fixed Card Layout Resizable Card Layout
Fixed card width and predefined height Resizable card sizes (grid-based)
Users can’t influence the card size Users can influence the card size individually
Predefined static card characteristics Flexible content insights (such as more items, zoom, or different levels of detail)
Lower implementation effort – defined card patterns Higher implementation effort – content strategy required
Self-contained cards Highly interactive and flexible cards
Fast overview and navigation Fast overview, navigation, and investigation
Cards can be swapped Drag and drop supported for cards
Maximum of 5 card columns (letterboxing) Unlimited number of columns

Personalized Selection of Cards

Users can also hide cards. The corresponding setting is in the user actions menu under Manage Cards. A dialog appears on the overview page, and lists the different card names. Users can opt to show or hide the cards using a switch control. Restore reinstates the default setup. The personalized setup stays until the user next changes it.

Each overview page app has its own Manage Cards setting. Users who work with several overview pages can personalize the cards shown for each one.

Overview page – 'Manage Cards' dialog after initial loading
Overview page – 'Manage Cards' dialog after initial loading

Behaviour and Interaction 

As for any other SAP Fiori app, users open overview page apps by selecting a tile on the SAP Fiori launchpad home page, or by bookmarking the direct link in a browser. From the overview page the user decides which issues need attention, and navigates via cards to the relevant SAP Fiori apps. In addition, users can also access the navigation menu in the shell bar, which allows fast and easy navigation to other apps. The overview page supports navigation to both SAP Fiori and non-SAP Fiori apps. For SAP Fiori apps, it uses intent-based navigation. Non-SAP Fiori apps open in a new browser window.

In the screen flow, always position the overview page app between the SAP Fiori launchpad home page and the SAP Fiori app. The overview page doesn’t replace the SAP Fiori launchpad home page. Never start overview page apps from another SAP Fiori app.

The picture below illustrates the complete interaction flow:
SAP Fiori launchpad home page ➝ SAP Fiori overview app ➝ SAP Fiori app or non-SAP Fiori app

Overview page – Interaction flow
Overview page – Interaction flow

Initial Focus

When the overview page is loaded, set the initial focus as follows:

  • If no cards are loaded, and the filter bar is in manual mode, set the focus on the Go button or on the first filter field.
  • If no cards are loaded, the filter bar is in manual mode, and a mandatory field is still empty, set the focus on the mandatory field.
  • When all cards are loaded, set the focus either on the first card or the header of the first card.

Dedicated Floorplan

While other floorplans like the list report and object page can be combined in a single app, there is a 1:1 relationship between the overview page floorplan and the corresponding overview app. The overview page floorplan is never combined with other floorplans. Because of this, the terms “overview page floorplan” and “overview (page) app” are often used synonymously.

Cards

Overview page – Different card types (selection)
Overview page – Different card types (selection)

Cards are containers for app content, and represent an entry-level view of the most pertinent app data for a given topic or issue. The overview page can contain several cards that reference the same underlying application. However, each card must bring added value to the user, and not just repeat information already offered on another card.

Cards can display different types of content. They can show a chart, a list, a table, informative text, or a combination of two elements. Cards can also vary in size, depending on the selected layout. However, cards never have editable fields.

When designing cards, make sure that you define and format the texts on all the cards consistently. Check the UI text guidelines for the overview page for details.

For more information about the cards and card types available for the overview page, see the dedicated topics:

Information
Please note that the integration cards cannot be consumed by the overview page.

Responsiveness

The overview page is fully responsive and can accommodate typical laptop screens as well as larger desktop monitors. The responsive behaviour differs for the two layout types – fixed card layout and the resizable card layout.

Both feature responsive (collapsible) “columns” of cards that can scale all the way down to tablet or phone screen sizes. For more information on each card type, follow the respective links.

Top Tips

Before you start designing an overview page, familiarize yourself with following best practices to optimize the user experience. They reflect the basic findings of multiple usability tests across different scenarios and user groups.

  • Make a conscious decision on the number of cards: Show only cards that really support the specific role context or task.
  • Accentuate the most important information: Semantic colors in texts, charts, attract more attention. The same applies to larger cards.
  • Offer a well-balanced mixture of card types: Diversity makes it easy to recognize, select, and read information.
  • Define a deliberate card order: Users assume that bigger cards and cards at the top of the page are more important than others.
  • Group similar topics: Users assume that related cards will be shown next to each other.
  • Choose easy-to-read and actionable texts: If the user needs to take action, use the active voice (for example “Reorder Soon” when stocks are running low).
  • Be semantically consistent: Users expect crucial terms like “Urgent” or “Out of Stock” to be highlighted with semantic colors.

Related Links

List Report Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the list report header and content area in the SAP Fiori Elements section.

Intro

With a list report, users can view and work with a large set of items. This floorplan offers powerful features for finding and acting on relevant items. It is often used as an entry point for navigating to the item details, which are usually shown on an object page.

List report
List report

When to Use

Use the list report floorplan if:

  • Users need to find and act on relevant items within a large set of items by searching, filtering, sorting, and grouping.
  • You want to let users display the whole dataset using different visualizations (for example, as a table or as a chart), but no interactions are required between these visualizations. An example use case might be reporting.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. You want to let users switch views using tabs, segmented buttons, or a select control.
  • Drilldown is rarely or never used, or is only available via navigation to another page, and not as free or flexible drilldown within the page itself.
  • Users work on different kinds of items.

Do not use the list report floorplan if:

  • Users need to see or edit one item with all its details. Use the object page floorplan instead.
  • Users need to find one specific item, and the item or an identifying data point is known to the user (such as a code). Use the initial page floorplan instead.
  • Users need to work through a comparably small set of items, one by one. Use the worklist floorplan instead.
  • Users need to extract knowledge or insights from data, either to better understand the current situation, or to identify the root cause for a certain value.  Use the analytical list page instead.
  • Charts are not only used for visualization. Users need to switch between integrated chart and table views (hybrid view). Use the analytical list page instead.
  • Users need to see the impact of their action on a KPI. Use the analytical list page instead.
  • Users need to see not only the result, but also the impact of their filter settings directly in a chart representation. Use the analytical list page instead.

Components

The list report is a full screen floorplan. It can also be used in flexible column layout, where it is usually displayed in the first column.

The list report page is based on the dynamic page, and is divided into a header area and a content area, as defined by the dynamic page layout.

Schematic visualization of a list report
Schematic visualization of a list report
  • The dynamic page header (1) contains the header title (2) and the expandable/collapsible header content (5).
    • The header title (2) is part of the header area and should display a title or variant (3) for the whole page (mandatory), filter information (if the header is collapsed), and a header toolbar (4) with global actions, such as Share (optional).
    • The header content (5) is used to display the filter bar or the smart filter bar (mandatory).
    • The header features (6) allow users to expand/collapse the header (6a) (mandatory) and pin/unpin the header area (6b).
  • The content area (7) is used to display:
    • A table/chart title, textual icon tab bar, or select (8) (optional)
    • One table/chart toolbar (9) per tab
    • One or multiple tables and/or charts (10). You can use any kind of table. If you use a chart, you can display the chart on its own (without a table) or as an additional view for an existing table (switchable).
  • The footer toolbar (11): If needed, use a footer toolbar to display the messaging button and finalizing actions.

Behavior and Interaction

Initial Focus

When the list report is loaded, set the initial focus as follows:

  • If the header is expanded, set the focus on the first filter field (live update mode) or on the Go button (manual update mode).
  • If the header contains empty mandatory fields, set the focus on the first empty mandatory field.
  • If the header is collapsed, set the focus on the first table row.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see:

Header Title

Variant Management

Variant management is optional. If you use variants, we recommend using one variant management control for the whole page. Use the variants to save and restore all settings for filters, selected tabs, all tables, and all charts.

In some specific cases, you might need to add a second variant at control level. This can be the case when the user needs to change the view settings of a list independently of the page filters. However, the default is to use a single variant management control for the entire page.

Users can choose a default variant, which is selected every time the app is started.

Allow users to choose whether a variant should be executed automatically as soon as it has been selected. Not executing a variant automatically allows the user to add or remove filters before the dataset is updated. Provide this option only if the filter bar is in manual update mode. For live updates, this option is not required.

If variant management is not needed, show a title that describes the current view instead.

Variant management
Variant management

Filter Information

Display the filter information only if the header content is collapsed. Use the format Filtered By (x): followed by a comma-separated list of the filters currently applied. “x” stands for the number of applied filters.

Show up to 5 filters. If more filters have been applied, show an ellipsis (“…”) at the end of the string.

If no filters have been applied, show Not filtered.

Filter information
Filter information

Header Toolbar

Use the header toolbar for non-finalizing global actions, such as Share. Share opens an action sheet, which features Save as Tile (if the SAP Fiori launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

If the content area contains a grid table, an analytical table, a tree table, or any other content with its own scrollbar, display a Show Filters / Hide Filters button for expanding and collapsing the header content.

In addition, offer any other global, non-finalizing actions needed. Hide actions that cannot be used at all (for example, because of access rights). To save space on the header toolbar, group similar actions using a menu button.
For more information on global actions, see the guidelines for the header toolbar.

Header toolbar
Header toolbar

Header Content

Search

The filter bar can contain a search field (optional). If you use the search field, the content shows only items that match both the search terms and the filter criteria.

The search generally searches across all available columns of the table, regardless of whether or not they are visible. In rare cases, some columns might not be included due to technical constraints. If the search does not apply to multiple columns, do not offer the search field.

Filters

Filters are applied to all content, including all tables and charts. To improve performance, consider providing mandatory filter fields and/or default settings for filters.

If the list report loads automatically when the page loads, ensure that mandatory filter fields always have default values to avoid error messages.

The filter bar offers two different update modes:

  • The live update mode (recommended) triggers filtering immediately whenever a filter setting is changed. If the search field is used, the search is triggered together with all filter settings with every letter typed.
  • The manual update mode displays a Go button, which triggers the filtering. If the search field is used, the search is executed together with all filters as soon as the Go button is pressed.
    Make sure that all tables and charts in the content area are in a busy state until the new data is available. Also ensure that the content is grayed out as soon as the filter settings do not correspond to the content shown (any table, property: showOverlay). This is usually the case if the content is not yet updated and the Go button needs to be triggered.

Use the manual update mode only if you run into performance problems while loading the table data.

Regardless of the update mode, make sure that the filter bar and the visible content match: The filter bar must always describe the items that are shown in the content area.

Filter bar
Filter bar

The header content collapses when the user scrolls down the page (except for desktop-centric tables), and expands again when the user scrolls back up (“snap on scroll”). Users can pin the header content to keep it visible. For more information, see Dynamic Page – Expand/Collapse Header.

Exception: The “Snap on scroll” and “pin header” features are not provided if the main content area contains desktop-centric tables (grid tablesanalytical tables, tree tables) or any other content with its own scrollbar. In these cases, users need to expand and collapse the header content manually using the Show Filters / Hide Filters button.

When starting the application, expand the header content if no query was fired (and the table is therefore empty). Otherwise, collapse the header content.

Content Area

General Layout

There are three basic list report layouts: simple content, multiple views, and multiple content. These are described in more detail below.

Simple Content

In most cases, the content consists of just a table toolbar and a table. If needed, provide an option to switch between the table and a corresponding chart view.

Multiple Views

For more complex scenarios, provide multiple views of the same content. Multiple views involve one or more of the following:

  • Showing the same table, but with different columns.
  • Showing the same table in different pre-filtered states. These states are usually based on a status column, for example, items that are Open, In Process, or Closed. Make sure that the corresponding filter is not offered on the filter bar.
  • Differentiating between the items displayed in the content in some other fundamental way.

There are two options for switching between different views:

The first option is to replace the table title with a content switch. Use this approach if all views share the same sort and group states, as well as the same actions.

The content switch can be:

If you have both a table title and a content switch, display the table title first, then the content switch. Place both on the left side of the table toolbar. Since the content switch is placed on the table toolbar, the same actions are shown for all views.

If you are using the content switch together with charts, ensure that the chart also reacts to the content switch. This can be done by:

  • Filtering the data that influences the display of the chart
  • Changing the measures and/or dimensions (for example, View by Country/RegionView by Customer, …)

The second option for switching views is to show each view in a tab container of the icon tab bar. Use this approach if all views show different states of the same data (sort states, group states, as well as item selection). Using tabs also allows you to offer different actions on the table toolbar for each view.

Table toolbar with a segmented button for up to three different views
Table toolbar with a segmented button for up to three different views
Table toolbar with a select control for more than three views
Table toolbar with a select control for more than three views

Multiple Content

To support even more complex use cases, a list report floorplan can also contain multiple tables that display different kinds of objects. The filter bar settings are applied to all of these tables in parallel. For example, a customer overview list report might display different tables for invoices, deliveries, and overdue payments. All of these tables can be filtered for a specific customer and a specific date.

Display each table inside a tab container of an icon tab bar. This also allows you to offer different actions on the table toolbar for each table.

List report floorplan with multiple tables placed in multiple tabs
List report floorplan with multiple tables placed in multiple tabs

Icon Tab Bar

Use the text-only version of the icon tab bar. Display the number of items shown in the respective table on each tab (sap.m.IconTabFilter, property: count).

Icon tab bar
Icon tab bar

Table Toolbar

Display at least a table title (ideally with an item count) and icon-only buttons for sorting, grouping, and column settings. Do not offer additional filter settings on the table toolbar. For sort and group, show a view settings dialog with just the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

If alternative visualizations are provided (such as charts), offer an additional view switch on the table toolbar. Triggering the switch replaces the current visualization with another one. If a table and chart need to be shown in parallel, offer a switch for the combined view.

In rare cases, you can offer an additional layout variant on the table toolbar. The layout variant stores view settings like the column order and the sort and group settings. If you use a layout variant, do not store the table settings in the filter variant. Offer this additional layout variant only if there is a strong use case for switching filter and layout variants independently. If there is no strong use case, or you are unsure, do not use a layout variant at all.

Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Toolbar with a switch between table and chart visualizations
Toolbar with a switch between table and chart visualizations
Toolbar with a table title and layout variant
Toolbar with a table title and layout variant
Toolbar with additional actions
Toolbar with additional actions

In addition, offer any other actions needed. Disable selection-dependent actions (such as Delete) if no items are selected, or if the action cannot be applied to the selected items. Always enable selection-independent actions (such as Add). To save space on the table toolbar, group similar actions using a menu button. For example:

  • Release and Release with Conditions
  • Add Contact and Replace Contact
  • Edit Account and Edit Title

For more information on table/chart actions, see the guidelines for the table toolbar, the chart toolbar, and for managing objects.

Do
Table without the filter icon
Table without the filter icon
Don't
Table with a filter option
Table with a filter option

Table

If there are no items to display, use the “no data” text of the corresponding table. Explain why the table is empty, and what the user needs to do to display items.

Examples:

  • After starting the app, no filters are applied:
    To start, set the relevant filters.
  • The filter was executed, but no items were found. This can also happen if the list report was opened by a related app, and the filter criteria were transferred automatically:
    No data found. Try adjusting the filter settings.

If you are using a responsive table, always enable “scroll to load” behavior.

Sticky Behavior

The icon tab bar, table/chart toolbar, and column headers of all table types must be “sticky”. This means that they stay fixed on top when the user scrolls down the page.

Navigation

There are three types of navigation at item level in the list report floorplan:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a list, tree, or responsive table, clicking the line item triggers the navigation.
    In a grid table, analytical table, or tree table, clicking the navigation indicator triggers the navigation.
    Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use this only if the navigation indicator is being used for a different target.
    Only show navigation indicators for target pages the user is authorized to access.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually another list report. In this case, use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting.
    In charts, offer the drilldown navigation link in the popover for the chart element. In this case, also navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains cross-references to other entities, such as people or business objects, use a link to display the corresponding data point in the table. Triggering the link opens a quick view. Typically, the quick view displays basic details of the referenced object and a navigation link to another page (usually an object page) or another app that shows the object details.

Information
SAP Fiori Elements – Navigation to Classic UIs
If you need to navigate to classic UIs for create, display, or edit actions, see Integration of Classic SAP UIs (SAP Fiori Elements List Report). This article describes which UI elements and navigation flows to use in different scenarios.

Working Modes

When the user edits a list item in a filtered list, the changed item might no longer match the filter criteria. For this use case, there are two alternative working modes:

  • Worklist mode

    Users want to see a direct system reaction to their changes. Items that don’t match the current filters
    vanish immediately. This mode applies to about 80% of all use cases.
  • Continuous working mode

    The user still needs the edited item, even though it no longer matches the filter criteria. The item stays in the list until the next filtering process is triggered. The item is marked, and a system message informs the user about the filter mismatch. This mode applies to about 20% of all use cases.

The app developer can choose the appropriate working mode for the app use case.

Footer Toolbar

Use the footer toolbar to display the messaging button and finalizing actions. Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Always show the footer toolbar in edit mode.

Hide actions that cannot be used at all (for example, if the user doesn’t have authorization). To save space on the footer toolbar, group similar actions using a menu button.

For more information on finalizing actions, see the guidelines for the footer toolbar.

Footer toolbar
Footer toolbar

Actions

Places for actions in the list report
Places for actions in the list report

(1) Global actions in the header toolbar
(2) Table actions in the table toolbar
(3) Line item actions
(4) Finalizing actions in the footer toolbar

1. Global Actions

Place actions that affect the entire page in the header toolbar in the header title (1). These include the following standard actions:

Hide actions that cannot be used at all (for example, because the user has no authorization). To save space on the header toolbar, group similar actions using a menu button.

Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information on global actions, see the guidelines for the header toolbar.

2. Table/Chart Actions

Place actions that affect the content of a table or chart in the table toolbar (2).

Information
When you use the list, tree, or responsive table, actions on the table toolbar move up out of the visible screen area when the user scrolls down.

If you are using an icon tab bar, be aware that each tab contains its own table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available (such as Create for new objects). Other actions are only relevant if items have been selected (for example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item).

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions when no items have been selected.
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information, also see UI Element States – Control States.

Partial Processing

Enable the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide a sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

Add/Create Items Using a Dialog

You can let users add or create new items at list report level using a dialog. This approach is recommended for cases where there are fewer than 8 required fields. Display the action in the table toolbar.

You can use this option for both draft and non-draft scenarios.

More Information

For more information on table and chart actions, see the guidelines for the table toolbar, chart toolbar, and for managing objects.

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this only for specific, frequently used tasks (3). If the same action can also be applied to several items at once, feel free to also place it on the table toolbar. Nevertheless, if you do so, reconsider whether you really need to offer the action at line item level. Examples of line item actions include:

  • Start/Stop (a batch job)
  • Approve (an item)
  • Assign (an item)

Do not disable line item actions. If an action cannot be used, hide it. This can be the case if the user has no authorization or the line item is in the wrong state.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar (4).

Examples:

  • Save
  • Cancel
  • Submit

Please be aware: Even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information on finalizing actions, see the guidelines for the footer toolbar.

Responsiveness

In general, the list report floorplan is responsive. However, there are exceptions if the following controls are used:

  • Grid table, analytical table: Supported on desktop and tablet devices only. On smartphones, replace these tables with something else, such as a responsive table or a list. In rare cases, displaying only a chart on smartphones might also suffice.
  • Tree table: Supported on desktop and tablet devices only. For smartphones, there is no equivalent alternative. In some cases, a tree, the category navigation pattern, or a chart might work.
  • Smart table: The smart table is a wrapper around the different existing table controls. If a grid table, analytical table, or tree table is used inside the smart table, you will run into the issues mentioned above. On a smartphone, you can use a responsive table inside the smart table. For the tree table, you need to replace the smart table as described above.

For more details, see the respective guideline articles.

List report - Size L
List report - Size L
List report - Size M
List report - Size M
List report - Size S
List report - Size S

Examples

The examples below show variants of the list report with the most commonly-used controls. You can also see the manual update mode (with a “Go” button) and the live update mode (no “Go” button).

Top Tips

  • Avoid loading list report page without any data, even if there are no mandatory filters.
  • Use only one key identifier in the table.
  • If you are using the icon tab bar, place it beneath the filters.
  • In the icon tab bar, use text labels only (without icons).
  • Choose selection controls that best fit your use case.
  • Make sure that columns in the table are aligned correctly.
  • Ensure that mandatory filter fields always have default values.
  • Avoid using variant management for tables. Use the page variant instead.
  • Always enable actions like Add, Create or Edit. Once Edit is triggered, replace it with Save and Cancel.
  • Never place finalizing actions in the header toolbar, even if they affect the whole page.
  • When using the icon tab bar, be aware that each tab contains its own table toolbar.

 

Related Links

Elements and Controls

Implementation

Object Page Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the object page header, content area, and footer bar in the SAP Fiori Elements section.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan
Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.

List report floorplan
  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a code identified by a scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Header content (optional)
  5. Object marker (optional)
  6. Header toolbar with global actions (optional)
  7. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
Object page with expanded dynamic page header
Object page with expanded dynamic page header
Object page with collapsed dynamic page header
Object page with collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer text (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Progress indicator
  4. Footer text (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use the rating indicator facet to display a single rating value or an aggregated rating (such as an average rating for a product). The facet structure is slightly different in each case.

Single rating value:

The single rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary texts
  3. Rating indicator
Rating indicator facet - Single rating
Rating indicator facet - Single rating

Aggregated rating:

The aggregated rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer text (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.
Rating indicator facet - Aggregated rating
Rating indicator facet - Aggregated rating
Guidelines
We recommend the following property settings when using the rating indicator in header facets:

  • Show 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

Navigation Bar (optional)

If your content can be shown in just one section, use the dynamic page layout. In the dynamic page layout with one section, the header area can’t be edited when the page is in edit mode.

If you need to structure your content in different sections, use the object page layout. You can only have several sections in the object page layout. When you use the object page layout, you can also make the header editable when the page is in edit mode. However, try to avoid having an editable header and move the content from the header to the sections instead.

If you need only one section, but require an editable header, use the object page layout. An object page with only one section doesn’t have any anchor bars. However, a temporary anchor bar and section for editing the header content should be added when edit mode is triggered.

If the content is complex there are two ways to structure it:

  • Anchor bar navigation (default)
  • Tab bar navigation

Anchor Bar Navigation

The anchor bar consists of a series of links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link navigates to the respective section. The anchor bar remains visible when the user scrolls down the page.

Use anchor bar navigation when the content belongs together but users might want to jump to specific parts directly.

For more information, see Anchor Bar Navigation.

Tab Bar Navigation

The tabs are a series of links to subpages, arranged horizontally at the top of the page. Clicking a link navigates to the respective subpage. The tabs remain visible when the user scrolls down the page.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

For more information, see Tab Bar Navigation.

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking on these links directs the user to specific sections of the page. The anchor links remain visible when the user scrolls down the page.

Object page – Anchor bar navigation
Object page – Anchor bar navigation
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu
Developer Hint
Make sure that the UpperCaseAnchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

If the content of a section contains a control, for example a table, then we recommend to always display it, even if the control title and tab title are identical. This makes it easier for the user to orientate themselves.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Guidelines
If a section contains a control, like a table or a chart, and the title of the control is the same as the section title, then the section title can be hidden so that this title is only displayed once. This avoids unnecessary redundancies.

We recommend the same for subsection titles.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness
Developer Hint
For non-SAP Fiori element object pages only:

The content of the dynamic page header, navigation bar, (sub)section titles, and subsections must be vertically aligned. To achieve this, apply the sapUxAPObjectPageSubSectionAlignContent CSS class to the content of the subsections and set the width property to “auto”.

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns / 6 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. To improve access to the different forms we recommend always using one subsection per form, rather than placing multiple forms into one subsection.

If you need to perform any actions, you can use the subsection header. If you need action at group level, you can use a group header. To prevent confusion, we recommend inserting actions only in one place, depending on the use case.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Block base
Object page – Block base

Tables

If a section contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section title acts as the table title.

If a subsection contains only one table and no other content, hide the title of the subsection to avoid having duplicate titles for the table and reduce vertical space. In this case, the table title acts as the subsection title.

If you want to embed analytical tables, grid tables, or tree tables in an object page, use an object page with tabs, and place each table in its own tab. Because the analytical, grid, and tree tables have their own vertical scroll bars, they are not allowed within scrollable object pages. If you are using a scrollable object page without tabs, use a responsive table instead, and offer navigation to another page with the respective table type.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 400 Tab navigation
More than 400 or tab approach is unsuitable Navigation to another page

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but less than 400, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to Another Page

For tables with more than 400 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend only showing a preview of 10 items, but not more than 20. This can be achieved using predefined filters and/or by sorting the table. If necessary, you can also set a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate page, such as a list report, subobject page, or dynamic page with the respective table type. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used for closing and finalizing actions in:

  • Edit and create mode, for example, Save, Post, Accept, Reject, and Activate
  • Display mode, for example, Approve, Accept, and Reject 

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Initial Focus

When the object page is loaded, set the initial focus as follows:

  • If the object page is in display mode, set the focus on the first section.
  • If the object page is in edit mode, set the focus on the first empty mandatory field.
  • If there are no mandatory fields, set the focus on the first editable element or first action.

Edit

In edit mode, the object page can contain a mixture of editable and read-only content.

If the user needs to edit elements in the header, a header section is added in the content area to enable editing.

Use the same content layout for both display and edit mode. Content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Object Handling (Create, Edit, Delete).

Editing the Header

The object page header can be edited in two ways:

  • Global edit
  • Partial edit

Global Edit

The header can be edited when the entire object page is in edit mode.

Because the header snaps on scroll, there are no editable forms in the header itself. Instead, a temporary header section is added before the other sections of the page. The title bar information and all editable fields from the header container move from the header to the new editable header section. Any non-editable content displays as read-only in the new header section. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts).

If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears.

If your object page has no anchor bar in display mode, and the header section has only a few editable fields, do not add navigation in edit mode.

The header container in edit mode may contain independent facets that are not included in the header content in display mode. They provide information to assist editing.

If the entire object page is in edit mode, but there is no editable information in the header, no editable header section is added.

Any changes made to the header are not reflected until the user saves them.

Partial Edit

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing Ctrl+Enter has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Edit Actions in Display Mode (freestyle apps only)

The standard flow is to switch to edit mode for edit and delete actions. However, in some cases, it can be helpful to offer certain edit actions in display mode as well.

You can offer edit actions in display mode if:

  • Switching to edit mode would inconvenience the user. This is especially true if the change is small and quick, and switching to edit mode would take longer than making the change.
  • The change does not impact a critical flow or result in technical inconsistencies.

Examples: Adding a comment, uploading a file

Do not offer edit actions in display mode if:

  • The change has a critical impact on business data/follow-on processes.
  • The change requires a finalizing action.

Example: Deleting a sales order item would affect the entire sales order and dependent data.

When offering delete actions in display mode, always show a delete confirmation dialog. For more information, see:

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover or clicks the  (Close) icon.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, display the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Loading Behaviour

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If loading takes a long time, a busy indicator is shown on top of the section or item until the content is loaded and visible.

SAP Fiori elements uses a skeleton template with generic placeholders. For more information, see Placeholder Loading.

Busy indicators for sections still loading
Busy indicators for sections still loading

Message Handling

In Display Mode

The following controls can provide messages to users in the object page in display mode:

  1. Generic tag
  2. Message strip
  3. Object status

Generic Tag

The generic tag displays KPIs and situations.

Message Strip

You can place a message strip in the header or in a section in the content area:

Object page with different messaging options
Object page with different messaging options
  • Header:
    Show the message strip in the header if the information relates to the whole object.

Place the message strip between the object page title and the header content. When the header is collapsed, it remains visible.

  • Content area section:
    Show the message strip in the content area section if the information relates to a specific section.

Place the message strip at the top of the section above the section title.

Use a single message strip with a single message per area. Do not stack several message strips together.

A message strip can display:

  • A call to action, such as a task that the user must perform
  • Temporary information that the user needs to know
  • An issue that is not related to a form field
  • The object status if the object status control is too small to convey the information.

For a brief status text, use the object status control.

If you decide to display both the message strip and the object status control, they should not repeat the same information.

  • Brief guidance on how to use or read the page.

If the object page requires multiple hints for the user, consider using SAP Companion instead.

Object Status

The object status displays a brief description of the object status.

Object page with message strip and collapsed header
Object page with message strip and collapsed header
Object page with message strip in a section
Object page with message strip in a section

In Edit Mode

In edit mode, use the message popover to help validate forms and tables as a single object.

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size M
Object page – Size M
Object page – Size L
Object page – Size L

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information, see:

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Wizard Floorplan

The wizard floorplan allows users to complete a long or unfamiliar task by dividing it into sections and guiding the user through it. The wizard consists of the walkthrough screen, where the form sections are revealed in sequence after each one is completed, and the summary page, where the form is displayed in read-only mode for assessment and final submission. In general, you can use the wizard both in full screen mode and in a modal dialog. Beyond that, the wizard in full screen mode can also be used in a flexible column layout.

Wizard in full screen mode - Steps
Wizard in full screen mode - Steps
Wizard in a modal dialog - Steps
Wizard in a modal dialog - Steps

Usage

Wizard in Full Screen Mode

When to Use the Wizard Floorplan

The wizard aims to help users by dividing large or complex tasks into segments. Use the wizard if the user has to accomplish a long task (such as filling out a long questionnaire) or a task that is unfamiliar to the user. The flow should consist of a minimum of 3 and a maximum of 8 steps.

You can use the wizard for both create and edit scenarios. For edit scenarios, you can either offer a wizard or let users edit the object page directly, depending on your use case.

When Not to Use the Wizard Floorplan

If you have a task with only 2 steps or a format that the user is familiar with (for example, it is part of their daily routine), do not use the wizard as it only adds unnecessary clicks to the process. If your process needs more than 8 steps, the wizard will not support those steps, as the process is too long and can be confusing for the user. In this case, consider restructuring the task.

Consider whether the classic edit screens (edit flow or object page) are more suitable for your use case.

Wizard in a Modal Dialog

When to Use the Wizard in a Modal Dialog

We recommend using the wizard in a modal dialog if:

  • The wizard is closely connected to the triggering page, and the user needs to return to that page quickly.
  • Users need to be able to open the wizard from any part of the product/page.
  • The size of the wizard needs to be flexible.

When Not to Use the Wizard in a Modal Dialog

Don’t use the wizard in a modal dialog if the app you are using is a standalone application that has no relation to the page it has been triggered from. Instead, use it in a full screen layout.

Structure

The wizard has two screens: the walkthrough screen, where users complete a segmented task, and the summary screen, where they can check the data they are about to submit. Wizard content is not restricted to forms; you can also use other elements, such as a value help dialog.

Walkthrough Screen

After triggering the wizard from a floorplan, the user is taken to the main walkthrough screen, which shows only the first section of the form. Users can also trigger the wizard app from another application, from the launchpad, or from a notification. The wizard always starts at the initial walkthrough page and ends after the user has clicked the main action (such as Create or Submit) on the summary screen.

The wizard comes with two different behaviors, which have different navigation patterns. Their usage depends on the use case.

Anchor Bar / One-Page Behavior

The anchor bar behaves in the same way as the anchor bar in an object page. It consists of a series of links (steps) that are arranged horizontally at the top of the page. Clicking a link navigates to the respective step on the page.

The Next Step button is only used on the walkthrough page. Once the user has filled out all the necessary fields, a Next Step button appears below the content, which allows the user to continue with the next section of the form. If the user needs to navigate to the previous section of the form, it is possible either to scroll up the page or to navigate back by using the progress bar. When the user has completed the last section of the wizard, the button label changes to Review, and the user is taken to the summary screen. On the summary screen, the user can use either the Edit button in the footer or the Back arrow to return to the wizard and edit any of the fields. The wizard footer is used to display the Cancel button, which exits the wizard. If the user has modified any fields, a data loss warning appears. If the form is long, and the user may have to save it before finishing, you can offer a Save as Draft option in the footer.

Walkthrough screen in full screen layout used with an anchor bar
Walkthrough screen in full screen layout used with an anchor bar
  1. Header toolbar with title
  2. Progress bar
  3. Completed step
  4. Current step
  5. Upcoming step
  6. Step title (for example: 3. Payment)
  7. Action for the next step

Tab Bar

As an alternative to the anchor bar, you can also use the tab mode (property: rendermode, value: Page). It is visualized in the same way, but shows a series of tabs (steps). These are arranged horizontally at the top of the page and each represents a subpage. Clicking a tab displays the respective subpage.

Unlike the anchor bar, the tab bar comprises not only a Next Step button but also a Previous Step button. Place the Next Step button in the footer toolbar, as in the summary screen. As soon as users move to the following step, show an additional Previous Step button on the left. This follows the guidance for action placement: if the primary action (such as Next Step) is a forward path, it needs to appear to the right of the secondary action. In the case of the wizard, the secondary action is Previous Step. The negative path action Cancel remains unchanged.

After filling out all the necessary fields for a step, the user can navigate to the next step by clicking the Next Step button. To navigate back to the previous step, the user can either click the Previous Step button or use the progress bar at the top of the wizard. If you use tabs, each tab is a single wizard step.

When the user has completed the last wizard step of the walkthrough screen, the Next Step button changes to Review, and the user is taken to the summary screen. Since the tab bar is also used for the summary screen, the user can either use the Previous Step button to return to the prior wizard step or use the Next Step button, which changes to the Create/Submit button to finalize the wizard application.

To go back and edit entries for single wizard steps, the user can either use the Edit buttons on the summary screen or select the step in the progress bar. Beneath the Next Step/Previous Step buttons for processing the wizard, the wizard footer toolbar is also used to display the Cancel button, which exits the wizard.

If the user has modified any fields and navigates away, a data loss warning appears. If the form is long, and the user may have to save it before finishing, you can offer a Save as Draft option in the footer.

Walkthrough screen in full screen layout used with a tab bar
Walkthrough screen in full screen layout used with a tab bar
  1. Dynamic page header with title
  2. Progress bar
  3. Completed step
  4. Current step
  5. Upcoming step
  6. Dynamic page footer toolbar
  7. Previous step button
  8. Next step/finalizing button
  9. Cancel button to exit wizard

The title in the header toolbar above the wizard remains unchanged during all the wizard steps. Align this title left, and make it clear to users where they are and what they are doing (for example, New Sales Order or Sales Order 4815162342). Especially in edit scenarios, it is vital to give users a unique identifier for the object they are changing.

The progress bar below the header highlights the completed steps and the current step. It also allows the user to navigate between steps by clicking any of the circles. If there are multiple steps, and the screen width is reduced, the steps on the progress bar are grouped. This behavior is the same on smartphone, tablet, and desktop screens.

Wizard tooltip – Grouped steps
Wizard tooltip – Grouped steps

In certain use cases, the steps in the wizard depend on the choices the user makes along the way. The user’s entries for one step determine the follow-on steps (“branching”). In these cases, a dotted line shows that more steps will follow.

Wizard branching
Wizard branching

Since the wizard is a lightweight way to create or edit objects, applications can use a quick confirmation popover instead of the heavier data loss message when the user selects Cancel.

If the wizard is used to create an object, the text in the popover should read Discard this <object>?’ . If the wizard is used to edit an object, use the text Discard changes? In both cases, use Discard as the action on the popover.

Structure – Quick confirmation
Structure – Quick confirmation

Modifying dependent steps: If there are steps that depend on each other (for example, a selection in step 2 triggers an additional step), and the user modifies the parent step, the dependent step is changed or deleted. Beforehand, the user is warned that data will be lost.

Summary Screen

On the summary screen, users can check all their entries before the object is actually created or changed. Depending on the use case, and whether the wizard is used with an anchor bar or a tab bar, the structure of the summary screen differs.

  • If the wizard is used with an anchor bar, the summary screen has no progress bar or anchor navigation, and shows the form sections for all the steps in read-only mode.
  • If the wizard is used with a tab bar, the summary screen is included as a step in the progress bar, and therefore the progress bar and the tab bar are still visible. It shows the form sections for all the steps.

To allow the user to go back and edit entries, provide an Edit button in each form section. Alternatively, users can click the Previous Step button or scroll up to go to the previous step/section.

On the summary page, show the finalizing action, such as Create or Save.

Wizard summary page example
Wizard summary page example

Layout

The wizard floorplan can be used in both the full screen layout and in a modal dialog. Thanks to its responsive behavior, it is also possible to use the full screen layout in the flexible column layout. Since there are no subsequent pages after the wizard, it always occupies the rightmost column – there is no navigation from the wizard to a subsequent page. After completing (or canceling) the wizard, the user is always returned to the triggering page.

Wizard in full screen layout used with tab bar
Wizard in full screen layout used with tab bar
Wizard in a modal dialog used with tab bar
Wizard in a modal dialog used with tab bar
Wizard in full screen layout used with anchor bar
Wizard in full screen layout used with anchor bar
Wizard in flexible column layout (2/3)
Wizard in flexible column layout (2/3)
Wizard in flexible column layout (1/3)
Wizard in flexible column layout (1/3)

Types

There are two types of wizard – “standard” and “branching” – which differ in terms of the functions they offer.

Use the standard type if:

  • The total number of steps is known in advance.
  • The number of steps does not change during usage.
  • There is linear progression from one step to the next.

Use the branching type if:

  • The total number of steps is not known.
  • The number of steps may change during usage.
  • There is non-linear progression. In other words, the user’s choice during one step determines which step comes next.

In both types of wizard you can let users skip steps. Label these steps as “Optional”.

Styles

In addition to the functional types, there are also different visual styles.

Numbers and Icons

By default, both versions use a number inside a circle to represent each step. You can also use icons instead of numbers to help users identify the steps. If you plan to use icons, be sure to assign icons to all the steps (not just to some). Always choose unique, clearly distinguishable icons for each step.

Steps represented by numbers
Steps represented by numbers
Steps represented by icons
Steps represented by icons

Labels

To help users identify the individual steps even more easily, app developers can assign labels. As with icons, labels must be applied to all or none of the steps.

If there is enough horizontal space, all labels are shown.

All labels are visible
All labels are visible

As the width is reduced, the label is only shown for the currently selected step.

Labels - reduced width
Labels - reduced width

The unselected and outermost steps are stacked on top of each other to further accommodate the reduced space.

Stacked labels
Stacked labels

To access steps inside a stack, users click can open a list of hidden steps.

Labels - stacked popover
Labels - stacked popover

Optional Steps

For optional steps, add an (Optional) label. Place the (Optional) label below the content label for the step.

Do
Correct: '(Optional)' label below the content label for the step
Correct: '(Optional)' label below the content label for the step

Explanatory Texts

Ideally, the headlines and field labels for each step should provide enough information for users to complete their tasks. However, if additional explanations are needed, applications can put a simple text underneath a step headline – either via the sap.m.Text or the sap.m.FormattedText control.

Responsiveness and Adaptiveness

The wizard floorplan is available in the sizes: S, M, L and XL. This is also applicable to the wizard in a modal dialog.

As the size being used highly orientates on the content and the space that is needed for it, there aren’t any fixed sizes available. For a wizard with a lot of content, in modal dialog it is recommended to use width of 80% and height of 70%. For less content, the size of the modal dialog should match the content.

Wizard - Size L
Wizard - Size L
Wizard - Size M
Wizard - Size M
Wizard - Size S
Wizard - Size S
Wizard modal dialog - Size L
Wizard modal dialog - Size L
Wizard modal dialog - Size M
Wizard modal dialog - Size M
Wizard modal dialog - Size S
Wizard modal dialog - Size S

If there is not much content available with a lot of whitespace around it, the wizard in a modal dialog could look like this:

Micro wizard - Size M (1)
Micro wizard - Size M (1)
Micro wizard - Size M (2)
Micro wizard - Size M (2)
Micro wizard - Size S
Micro wizard - Size S

The wizard in full screen layout as well as in the modal dialog supports all common screen sizes and is available in cozy and compact modes, as well as high-contrast black (HCB).

On small screen if the space needed for the action buttons located in the footer toolbar (Previous/Next step) is not enough an overflow appears on the right side, containing the cancel button.

Wizard modal dialog overflow behavior - Size S
Wizard modal dialog overflow behavior - Size S

Behavior and Interaction

Initial Focus

When the wizard is first loaded, focus on the first editable control in the first step.

Exceptions:

  • The user opens a page using a link that jumps directly to a specific step. In this case, focus on the first editable control in this step.
  • The user opens the wizard using one of the Edit actions from the review screen. In this case, focus on the first editable control in the selected editing step.

Error and Draft Handling

Error Handling

Error handling is done via message popovers. When the user clicks the button for the next step, the form sections and fields are validated. When the user clicks the Create button on the summary page, the entire form is validated. If there are any errors, the message popover is displayed, and clicking any of the error items scrolls the page to the relevant field, which is also highlighted in red.

Section validation differs from validation of the entire form:

  • Section validation: Validates the entries in the form fields.
  • Form validation: Checks the entire form for back-end system errors (such as duplicated data entry).

Draft Handling

If a draft already exists when a user enters the wizard, show a dialog to inform the user. For more information, see Draft Handling.

Expand to Full Screen

If the wizard is displayed in a modal dialog, the user can switch between the standard size and a near full screen size. This is done by clicking the Enter Full Screen icon  on the top-right corner.

Wizard modal dialog - Expand to near full screen size
Wizard modal dialog - Expand to near full screen size

Resizing & Dragging

Resizing

If the wizard is in a modal dialog, we advise against allowing users to resize the dialog freely. This distracts users and prevents them from solving their tasks quickly.

Dragging

If the wizard is in a modal dialog, you can allow users to drag and drop the dialog to a different position on the page by clicking on the top of the dialog window. This can be helpful if the user needs information from the underlying page.

Busy States

You can also use busy states. Currently, there are two different types of busy states available. One for initiating the wizard from a floorplan, and another for loading the single content parts of a wizard step.

Initiating the Wizard from a Floorplan

If initiating the wizard from a floorplan takes longer than one second, the control shows a busy state. As soon as the wizard is available, the busy state is removed, and the single parts of the wizard step are loaded.

Busy state - Initiating wizard from a floorplan (example)
Busy state - Initiating wizard from a floorplan (example)

Loading the Single Parts of a Wizard Step

If loading the single parts of a wizard step takes longer than one second, set the control to the busy state. If loading was successful, the busy indicator is removed and the content is shown. If loading wasn’t successful, the busy indicator is removed, an error message strip appears, and the content isn’t shown.

Busy state - Loading the single parts of a wizard step (successful)
Busy state - Loading the single parts of a wizard step (successful)
Busy state - Loading the single parts of a wizard step (not successful)
Busy state - Loading the single parts of a wizard step (not successful)

Dynamic Page

Header

Even though the wizard floorplan consumes the dynamic page, the wizard header does not allow snapping. The wizard floorplan comes with its own step-based header that already saves space.

Footer Toolbar

The footer toolbar of the wizard floorplan conforms to the standard dynamic page layout and uses the sap.m.bar control.

Developer Hint
If you use the wizard in a dynamic page layout, set the height of the wizard to “auto” instead of “100%”. Otherwise, a scrollbar issue may occur.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Form (SAPUI5 samples)
  • Wizard (SAPUI5 samples)
  • Form (SAPUI5 API reference)
  • Wizard (SAPUI5 API reference)

Overview Page

Information
This floorplan is implemented as an SAP Fiori Element.

Intro

View, Filter, and Take Immediate Action

The overview page (OVP) is a data-driven SAP Fiori app type and floorplan that provides all the information a user needs in a single page, based on the user’s specific domain or role. It allows the user to focus on the most important tasks, and view, filter, and react to information quickly.

Each task or topic is represented by a card (or content container). The overview page acts as a UI framework for organizing multiple cards on a single page.

The overview page is based on SAP Fiori elements technology, and uses annotated views of app data, meaning that the app content can be tailored to the domain or role. Different types of card allow you to visualize information in an attractive and efficient way.

At a Glance

  • Entry-level view of content on cards

  • One specific context and task area for one role

  • Content from different sources shows side by side – no need to switch screens

  • Information can be visualized on cards in different ways (texts, charts, lists, tables)

  • Micro actions let users react on the spot

Overview page
Overview page

When to Use

Use the overview page if:

  • You want to provide an entry-level view of content related to a specific domain or role.
  • Users needs to filter and react to information from at least two different applications to complete their role-specific tasks.
  • You want to offer different information formats (such as charts, lists, and tables) on a single page.
  • You plan to have at least three cards. These cards should not all be of the same type.

Do not use the overview page if:

  • A high-level or birds-eye view of application content is sufficient.
  • You just want the user to launch an application. In this case, use the SAP Fiori launchpad home page.
  • You want to show information about one object only. In this case, use the object page.
  • You just represent one application and less than three cards. In this case, use the object page.

SAP Fiori Launchpad Home Page, Overview Page, and Object Page

The launchpad home page contains all of a user’s favorite apps and offers access to them via tiles. This covers all the roles that a user might have, such as employee, manager, production worker, or quality manager.

An overview page focuses on the key tasks for a specific role, and contains only the most frequently-used apps for that role. The overview page uses cards, which display more (preview) information than tiles because of their size, properties, and interaction areas. One card type also allows users to perform simple actions. Cards represent an entry-level view of application content.

Launchpad Home Page vs. Overview Page

Launchpad Home Page Overview Page
Framework (given) SAP Fiori application (optional)
“Birds-eye” view “Street-level” view
Single point of entry Specific business context for a role
One SAP Fiori launchpad per user Multiple overview pages per user possible
Access to all the user’s favourite applications Selected applications are presented as cards
Uses tiles Uses cards
No actions Micro actions

The overview page is always role-based. The user sees a heterogeneous set of information related to a specific business context and the tasks associated with a specific role. This is not the case with the object page, which contains homogenous, object-based information.

Overview Page vs. Object Page

Overview Page Object Page
Role-based Object-based
“Street-level” view “Details” view
Heterogeneous information Homogeneous information

Role-Specific Overview Pages

As you can see in the picture, the overall content scope (shown in gray) becomes more focused with each interaction step. An overview page brings together information from different sources that support a specific task or information need. Only provide an overview app for a role if it makes sense to do so.

If a role or user has several main tasks that each require a specific set of information, the role or user might also have multiple overview apps. For example, one overview app could be used to reflect the user’s role as manager, with information for managing team performance reviews. Another overview app could be used to track quality issues and other relevant information pertaining to the machines that the user is responsible for in the role of quality manager.

Metaphor – Different entry points in SAP Fiori
Metaphor – Different entry points in SAP Fiori

Components

The basic structure and appearance of the overview page is governed by the dynamic page layout, and is divided into a header area and a content area.

This enables you to use variant management, text, and a smart filter bar in the upper part of the screen (dynamic page header). The content of the overview page is presented using cards.

Two different layouts are available, which determine the size and position of the cards: fixed card layout and resizable card layout.

Overview page – Basic structure
Overview page – Basic structure

Dynamic Page

The dynamic page header comprises the header title and expandable/collapsible header content. Three different header variants are available for overview pages

In the overview page, the header content is used for the smart filter bar with the live update mode (variant 1 and variant 2): the results are updated immediately whenever the user changes a filter field. As a result, there is no Go button for the filter bar.

Users can expand/collapse and pin the header content with the two icon buttons below the smart filter bar:

  1. Expand/collapse header or   
  2. Pin/unpin header content 

Dynamic Page Variants for the Overview Page

The header title (either text or variant management) is mandatory, while the header content (smart filter bar) is optional. Variant 3 shows only a text in the header title.

Variant 1 Variant 2 Variant 3
Dynamic page header Yes Yes Yes
Header title Variant Management Text Text
Header content Smart Filter Bar Smart Filter Bar
Page content Cards Cards Cards

In this variant, the header title contains variant management and the header content includes the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content expands as defined. The header title offers the Share menu, which enables the actions Send Email and Save as Tile.

Dynamic page variant 1 – Expanded mode
Dynamic page variant 1 – Expanded mode

In this variant, the header title contains a text (Header Title in the example below) and the header content area contains the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content snaps as defined.

Dynamic page variant 2 – Expanded mode
Dynamic page variant 2 – Expanded mode

In the third variant, the header title contains a text (Header Title in the example below). This text serves the same purpose as the former page subtitle. The header content is empty (auto hidden) and therefore doesn’t snap. The content area displays the overview page cards.

Dynamic page variant 3 – Expanded/collapsed mode
Dynamic page variant 3 – Expanded/collapsed mode

Overview Page Layout

Fixed card layout
Fixed card layout
Resizable card layout
Resizable card layout

The overview page layout describes the position, size, and characteristics of cards in the content area below the dynamic page header.

There are two layout variants:

Only place cards on the overview page. Never add tiles.

Fixed Card Layout vs. Resizable Card Layout

Fixed Card Layout Resizable Card Layout
Fixed card width and predefined height Resizable card sizes (grid-based)
Users can’t influence the card size Users can influence the card size individually
Predefined static card characteristics Flexible content insights (such as more items, zoom, or different levels of detail)
Lower implementation effort – defined card patterns Higher implementation effort – content strategy required
Self-contained cards Highly interactive and flexible cards
Fast overview and navigation Fast overview, navigation, and investigation
Cards can be swapped Drag and drop supported for cards
Maximum of 5 card columns (letterboxing) Unlimited number of columns

Personalized Selection of Cards

Users can also hide cards. The corresponding setting is in the user actions menu under Manage Cards. A dialog appears on the overview page, and lists the different card names. Users can opt to show or hide the cards using a switch control. Restore reinstates the default setup. The personalized setup stays until the user next changes it.

Each overview page app has its own Manage Cards setting. Users who work with several overview pages can personalize the cards shown for each one.

Overview page – 'Manage Cards' dialog after initial loading
Overview page – 'Manage Cards' dialog after initial loading

Behaviour and Interaction 

As for any other SAP Fiori app, users open overview page apps by selecting a tile on the SAP Fiori launchpad home page, or by bookmarking the direct link in a browser. From the overview page the user decides which issues need attention, and navigates via cards to the relevant SAP Fiori apps. In addition, users can also access the navigation menu in the shell bar, which allows fast and easy navigation to other apps. The overview page supports navigation to both SAP Fiori and non-SAP Fiori apps. For SAP Fiori apps, it uses intent-based navigation. Non-SAP Fiori apps open in a new browser window.

In the screen flow, always position the overview page app between the SAP Fiori launchpad home page and the SAP Fiori app. The overview page doesn’t replace the SAP Fiori launchpad home page. Never start overview page apps from another SAP Fiori app.

The picture below illustrates the complete interaction flow:
SAP Fiori launchpad home page ➝ SAP Fiori overview app ➝ SAP Fiori app or non-SAP Fiori app

Overview page – Interaction flow
Overview page – Interaction flow

Initial Focus

When the overview page is loaded, set the initial focus as follows:

  • If no cards are loaded, and the filter bar is in manual mode, set the focus on the Go button or on the first filter field.
  • If no cards are loaded, the filter bar is in manual mode, and a mandatory field is still empty, set the focus on the mandatory field.
  • When all cards are loaded, set the focus either on the first card or the header of the first card.

Dedicated Floorplan

While other floorplans like the list report and object page can be combined in a single app, there is a 1:1 relationship between the overview page floorplan and the corresponding overview app. The overview page floorplan is never combined with other floorplans. Because of this, the terms “overview page floorplan” and “overview (page) app” are often used synonymously.

Cards

Overview page – Different card types (selection)
Overview page – Different card types (selection)

Cards are containers for app content, and represent an entry-level view of the most pertinent app data for a given topic or issue. The overview page can contain several cards that reference the same underlying application. However, each card must bring added value to the user, and not just repeat information already offered on another card.

Cards can display different types of content. They can show a chart, a list, a table, informative text, or a combination of two elements. Cards can also vary in size, depending on the selected layout. However, cards never have editable fields.

When designing cards, make sure that you define and format the texts on all the cards consistently. Check the UI text guidelines for the overview page for details.

For more information about cards and card types, see the dedicated topics:

Responsivess

The overview page is fully responsive and can accommodate typical laptop screens as well as larger desktop monitors. The responsive behaviour differs for the two layout types – fixed card layout and the resizable card layout.

Both feature responsive (collapsible) “columns” of cards that can scale all the way down to tablet or phone screen sizes. For more information on each card type, follow the respective links.

Top Tips

Before you start designing an overview page, familiarize yourself with following best practices to optimize the user experience. They reflect the basic findings of multiple usability tests across different scenarios and user groups.

  • Make a conscious decision on the number of cards: Show only cards that really support the specific role context or task.
  • Accentuate the most important information: Semantic colors in texts, charts, attract more attention. The same applies to larger cards.
  • Offer a well-balanced mixture of card types: Diversity makes it easy to recognize, select, and read information.
  • Define a deliberate card order: Users assume that bigger cards and cards at the top of the page are more important than others.
  • Group similar topics: Users assume that related cards will be shown next to each other.
  • Choose easy-to-read and actionable texts: If the user needs to take action, use the active voice (for example “Reorder Soon” when stocks are running low).
  • Be semantically consistent: Users expect crucial terms like “Urgent” or “Out of Stock” to be highlighted with semantic colors.

Related Links

Object Page Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the object page header, content area, and footer bar in the SAP Fiori Elements section.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan
Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.

List report floorplan
  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a code identified by a scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Object marker (optional)
  5. Header toolbar with global actions (optional)
  6. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
  7. Header content (optional)
Object page with expanded dynamic page header
Object page with expanded dynamic page header
Object page with collapsed dynamic page header
Object page with collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer text (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Progress indicator
  4. Footer text (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use the rating indicator facet to display a single rating value or an aggregated rating (such as an average rating for a product). The facet structure is slightly different in each case.

Single rating value:

The single rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary texts
  3. Rating indicator
Rating indicator facet - Single rating
Rating indicator facet - Single rating

Aggregated rating:

The aggregated rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer text (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.
Rating indicator facet - Aggregated rating
Rating indicator facet - Aggregated rating
Guidelines
We recommend the following property settings when using the rating indicator in header facets:

  • Show 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

Navigation Bar (optional)

If your content can be shown in just one section, use the dynamic page layout. In the dynamic page layout with one section, the header area can’t be edited when the page is in edit mode.

If you need to structure your content in different sections, use the object page layout. You can only have several sections in the object page layout. When you use the object page layout, you can also make the header editable when the page is in edit mode. However, try to avoid having an editable header and move the content from the header to the sections instead.

If you need only one section, but require an editable header, use the object page layout. An object page with only one section doesn’t have any anchor bars. However, a temporary anchor bar and section for editing the header content should be added when edit mode is triggered.

If the content is complex there are two ways to structure it:

  • Anchor bar navigation (default)
  • Tab bar navigation

Anchor Bar Navigation

The anchor bar consists of a series of links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link navigates to the respective section. The anchor bar remains visible when the user scrolls down the page.

Use anchor bar navigation when the content belongs together but users might want to jump to specific parts directly.

For more information, see Anchor Bar Navigation.

Tab Bar Navigation

The tabs are a series of links to subpages, arranged horizontally at the top of the page. Clicking a link navigates to the respective subpage. The tabs remain visible when the user scrolls down the page.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

For more information, see Tab Bar Navigation.

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking on these links directs the user to specific sections of the page. The anchor links remain visible when the user scrolls down the page.

Object page – Anchor bar navigation
Object page – Anchor bar navigation
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu
Developer Hint
Make sure that the UpperCaseAnchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

If the content of a section contains a control, for example a table, then we recommend to always display it, even if the control title and tab title are identical. This makes it easier for the user to orientate themselves.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Guidelines
If a section contains a control, like a table or a chart, and the title of the control is the same as the section title, then the section title can be hidden so that this title is only displayed once. This avoids unnecessary redundancies.

We recommend the same for subsection titles.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness
Developer Hint
For non-SAP Fiori element object pages only:

The content of the dynamic page header, navigation bar, (sub)section titles, and subsections must be vertically aligned. To achieve this, apply the sapUxAPObjectPageSubSectionAlignContent CSS class to the content of the subsections and set the width property to “auto”.

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns / 6 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. To improve access to the different forms we recommend always using one subsection per form, rather than placing multiple forms into one subsection.

If you need to perform any actions, you can use the subsection header. If you need action at group level, you can use a group header. To prevent confusion, we recommend inserting actions only in one place, depending on the use case.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Block base
Object page – Block base

Tables

If a section contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section title acts as the table title.

If a subsection contains only one table and no other content, hide the title of the subsection to avoid having duplicate titles for the table and reduce vertical space. In this case, the table title acts as the subsection title.

If you want to embed analytical tables, grid tables, or tree tables in an object page, use an object page with tabs, and place each table in its own tab. Because the analytical, grid, and tree tables have their own vertical scroll bars, they are not allowed within scrollable object pages. If you are using a scrollable object page without tabs, use a responsive table instead, and offer navigation to another page with the respective table type.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 400 Tab navigation
More than 400 or tab approach is unsuitable Navigation to another page

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but less than 400, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to Another Page

For tables with more than 400 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend only showing a preview of 10 items, but not more than 20. This can be achieved using predefined filters and/or by sorting the table. If necessary, you can also set a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate page, such as a list report, subobject page, or dynamic page with the respective table type. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used for closing and finalizing actions in:

  • Edit and create mode, for example, Save, Post, Accept, Reject, and Activate
  • Display mode, for example, Approve, Accept, and Reject 

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Initial Focus

When the object page is loaded, set the initial focus as follows:

  • If the object page is in display mode, set the focus on the first section.
  • If the object page is in edit mode, set the focus on the first empty mandatory field.
  • If there are no mandatory fields, set the focus on the first editable element or first action.

Edit

In edit mode, the object page can contain a mixture of editable and read-only content.

If the user needs to edit elements in the header, a header section is added in the content area to enable editing.

Use the same content layout for both display and edit mode. Content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Object Handling (Create, Edit, Delete).

Editing the Header

The object page header can be edited in two ways:

  • Global edit
  • Partial edit

Global Edit

The header can be edited when the entire object page is in edit mode.

Because the header snaps on scroll, there are no editable forms in the header itself. Instead, a temporary header section is added before the other sections of the page. The title bar information and all editable fields from the header container move from the header to the new editable header section. Any non-editable content displays as read-only in the new header section. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts).

If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears.

If your object page has no anchor bar in display mode, and the header section has only a few editable fields, do not add navigation in edit mode.

The header container in edit mode may contain independent facets that are not included in the header content in display mode. They provide information to assist editing.

If the entire object page is in edit mode, but there is no editable information in the header, no editable header section is added.

Any changes made to the header are not reflected until the user saves them.

Partial Edit

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing Ctrl+Enter has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Edit Actions in Display Mode (freestyle apps only)

The standard flow is to switch to edit mode for edit and delete actions. However, in some cases, it can be helpful to offer certain edit actions in display mode as well.

You can offer edit actions in display mode if:

  • Switching to edit mode would inconvenience the user. This is especially true if the change is small and quick, and switching to edit mode would take longer than making the change.
  • The change does not impact a critical flow or result in technical inconsistencies.

Examples: Adding a comment, uploading a file

Do not offer edit actions in display mode if:

  • The change has a critical impact on business data/follow-on processes.
  • The change requires a finalizing action.

Example: Deleting a sales order item would affect the entire sales order and dependent data.

When offering delete actions in display mode, always show a delete confirmation dialog. For more information, see:

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover or clicks the  (Close) icon.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, display the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Loading Behaviour

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If loading takes a long time, a busy indicator is shown on top of the section or item until the content is loaded and visible.

SAP Fiori elements uses a skeleton template with generic placeholders. For more information, see Placeholder Loading.

Busy indicators for sections still loading
Busy indicators for sections still loading

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size M
Object page – Size M
Object page – Size L
Object page – Size L

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information, see:

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Object Page Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the object page header, content area, and footer bar in the SAP Fiori Elements section.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan
Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.

List report floorplan
  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a code identified by a scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Object marker (optional)
  5. Header toolbar with global actions (optional)
  6. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
  7. Header content (optional)
Object page with expanded dynamic page header
Object page with expanded dynamic page header
Object page with collapsed dynamic page header
Object page with collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer text (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Progress indicator
  4. Footer text (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use the rating indicator facet to display a single rating value or an aggregated rating (such as an average rating for a product). The facet structure is slightly different in each case.

Single rating value:

The single rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary texts
  3. Rating indicator
Rating indicator facet - Single rating
Rating indicator facet - Single rating

Aggregated rating:

The aggregated rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer text (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.
Rating indicator facet - Aggregated rating
Rating indicator facet - Aggregated rating
Guidelines
We recommend the following property settings when using the rating indicator in header facets:

  • Show 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

Navigation Bar (optional)

If your content can be shown in just one section, use the dynamic page layout. In the dynamic page layout with one section, the header area can’t be edited when the page is in edit mode.

If you need to structure your content in different sections, use the object page layout. You can only have several sections in the object page layout. When you use the object page layout, you can also make the header editable when the page is in edit mode. However, try to avoid having an editable header and move the content from the header to the sections instead.

If you need only one section, but require an editable header, use the object page layout. An object page with only one section doesn’t have any anchor bars. However, a temporary anchor bar and section for editing the header content should be added when edit mode is triggered.

If the content is complex there are two ways to structure it:

  • Anchor bar navigation (default)
  • Tab bar navigation

Anchor Bar Navigation

The anchor bar consists of a series of links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link navigates to the respective section. The anchor bar remains visible when the user scrolls down the page.

Use anchor bar navigation when the content belongs together but users might want to jump to specific parts directly.

For more information, see Anchor Bar Navigation.

Tab Bar Navigation

The tabs are a series of links to subpages, arranged horizontally at the top of the page. Clicking a link navigates to the respective subpage. The tabs remain visible when the user scrolls down the page.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

For more information, see Tab Bar Navigation.

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking on these links directs the user to specific sections of the page. The anchor links remain visible when the user scrolls down the page.

Object page – Anchor bar navigation
Object page – Anchor bar navigation
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu
Developer Hint
Make sure that the UpperCaseAnchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

If the content of a section contains a control, for example a table, then we recommend to always display it, even if the control title and tab title are identical. This makes it easier for the user to orientate themselves.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Guidelines
If a section contains a control, like a table or a chart, and the title of the control is the same as the section title, then the section title can be hidden so that this title is only displayed once. This avoids unnecessary redundancies.

We recommend the same for subsection titles.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness
Developer Hint
For non-SAP Fiori element object pages only:

The content of the dynamic page header, navigation bar, (sub)section titles, and subsections must be vertically aligned. To achieve this, apply the sapUxAPObjectPageSubSectionAlignContent CSS class to the content of the subsections and set the width property to “auto”.

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns / 6 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. To improve access to the different forms we recommend always using one subsection per form, rather than placing multiple forms into one subsection.

If you need to perform any actions, you can use the subsection header. If you need action at group level, you can use a group header. To prevent confusion, we recommend inserting actions only in one place, depending on the use case.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Block base
Object page – Block base

Tables

If a section contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section title acts as the table title.

If a subsection contains only one table and no other content, hide the title of the subsection to avoid having duplicate titles for the table and reduce vertical space. In this case, the table title acts as the subsection title.

If you want to embed analytical tables, grid tables, or tree tables in an object page, use an object page with tabs, and place each table in its own tab. Because the analytical, grid, and tree tables have their own vertical scroll bars, they are not allowed within scrollable object pages. If you are using a scrollable object page without tabs, use a responsive table instead, and offer navigation to another page with the respective table type.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 400 Tab navigation
More than 400 or tab approach is unsuitable Navigation to another page

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but less than 400, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to Another Page

For tables with more than 400 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend only showing a preview of 10 items, but not more than 20. This can be achieved using predefined filters and/or by sorting the table. If necessary, you can also set a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate page, such as a list report, subobject page, or dynamic page with the respective table type. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used in edit and create mode for closing and finalizing actions, such as Save, Post, Accept, Reject, and Activate.

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Initial Focus

When the object page is loaded, set the initial focus as follows:

  • If the object page is in display mode, set the focus on the first section.
  • If the object page is in edit mode, set the focus on the first empty mandatory field.
  • If there are no mandatory fields, set the focus on the first editable element or first action.

Edit

In edit mode, the object page can contain a mixture of editable and read-only content.

If the user needs to edit elements in the header, a header section is added in the content area to enable editing.

Use the same content layout for both display and edit mode. Content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Object Handling (Create, Edit, Delete).

Editing the Header

The object page header can be edited in two ways:

  • Global edit
  • Partial edit

Global Edit

The header can be edited when the entire object page is in edit mode.

Because the header snaps on scroll, there are no editable forms in the header itself. Instead, a temporary header section is added before the other sections of the page. The title bar information and all editable fields from the header container move from the header to the new editable header section. Any non-editable content displays as read-only in the new header section. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts).

If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears.

If your object page has no anchor bar in display mode, and the header section has only a few editable fields, do not add navigation in edit mode.

The header container in edit mode may contain independent facets that are not included in the header content in display mode. They provide information to assist editing.

If the entire object page is in edit mode, but there is no editable information in the header, no editable header section is added.

Any changes made to the header are not reflected until the user saves them.

Partial Edit

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing Ctrl+Enter has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Edit Actions in Display Mode (freestyle apps only)

The standard flow is to switch to edit mode for edit and delete actions. However, in some cases, it can be helpful to offer certain edit actions in display mode as well.

You can offer edit actions in display mode if:

  • Switching to edit mode would inconvenience the user. This is especially true if the change is small and quick, and switching to edit mode would take longer than making the change.
  • The change does not impact a critical flow or result in technical inconsistencies.

Examples: Adding a comment, uploading a file

Do not offer edit actions in display mode if:

  • The change has a critical impact on business data/follow-on processes.
  • The change requires a finalizing action.

Example: Deleting a sales order item would affect the entire sales order and dependent data.

When offering delete actions in display mode, always show a delete confirmation dialog. For more information, see:

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover or clicks the  (Close) icon.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, display the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Loading Behaviour

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If loading takes a long time, a busy indicator is shown on top of the section or item until the content is loaded and visible.

SAP Fiori elements uses a skeleton template with generic placeholders. For more information, see Placeholder Loading.

Busy indicators for sections still loading
Busy indicators for sections still loading

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size M
Object page – Size M
Object page – Size L
Object page – Size L

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information, see:

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Overview Page

Information
This floorplan is implemented as an SAP Fiori Element.

Intro

View, Filter, and Take Immediate Action

The overview page (OVP) is a data-driven SAP Fiori app type and floorplan that provides all the information a user needs in a single page, based on the user’s specific domain or role. It allows the user to focus on the most important tasks, and view, filter, and react to information quickly.

Each task or topic is represented by a card (or content container). The overview page acts as a UI framework for organizing multiple cards on a single page.

The overview page is based on SAP Fiori elements technology, and uses annotated views of app data, meaning that the app content can be tailored to the domain or role. Different types of card allow you to visualize information in an attractive and efficient way.

At a Glance

  • Entry-level view of content on cards

  • One specific context and task area for one role

  • Content from different sources shows side by side – no need to switch screens

  • Information can be visualized on cards in different ways (texts, charts, lists, tables)

  • Micro actions let users react on the spot

Overview page
Overview page

When to Use

Use the overview page if:

  • You want to provide an entry-level view of content related to a specific domain or role.
  • Users needs to filter and react to information from at least two different applications to complete their role-specific tasks.
  • You want to offer different information formats (such as charts, lists, and tables) on a single page.
  • You plan to have at least three cards. These cards should not all be of the same type.

Do not use the overview page if:

  • A high-level or birds-eye view of application content is sufficient.
  • You just want the user to launch an application. In this case, use the SAP Fiori launchpad home page.
  • You want to show information about one object only. In this case, use the object page.
  • You just represent one application and less than three cards. In this case, use the object page.

SAP Fiori Launchpad Home Page, Overview Page, and Object Page

The launchpad home page contains all of a user’s favorite apps and offers access to them via tiles. This covers all the roles that a user might have, such as employee, manager, production worker, or quality manager.

An overview page focuses on the key tasks for a specific role, and contains only the most frequently-used apps for that role. The overview page uses cards, which display more (preview) information than tiles because of their size, properties, and interaction areas. One card type also allows users to perform simple actions. Cards represent an entry-level view of application content.

Launchpad Home Page vs. Overview Page

Launchpad Home Page Overview Page
Framework (given) SAP Fiori application (optional)
“Birds-eye” view “Street-level” view
Single point of entry Specific business context for a role
One SAP Fiori launchpad per user Multiple overview pages per user possible
Access to all the user’s favourite applications Selected applications are presented as cards
Uses tiles Uses cards
No actions Micro actions

The overview page is always role-based. The user sees a heterogeneous set of information related to a specific business context and the tasks associated with a specific role. This is not the case with the object page, which contains homogenous, object-based information.

Overview Page vs. Object Page

Overview Page Object Page
Role-based Object-based
“Street-level” view “Details” view
Heterogeneous information Homogeneous information

Role-Specific Overview Pages

As you can see in the picture, the overall content scope (shown in gray) becomes more focused with each interaction step. An overview page brings together information from different sources that support a specific task or information need. Only provide an overview app for a role if it makes sense to do so.

If a role or user has several main tasks that each require a specific set of information, the role or user might also have multiple overview apps. For example, one overview app could be used to reflect the user’s role as manager, with information for managing team performance reviews. Another overview app could be used to track quality issues and other relevant information pertaining to the machines that the user is responsible for in the role of quality manager.

Metaphor – Different entry points in SAP Fiori
Metaphor – Different entry points in SAP Fiori

Components

The basic structure and appearance of the overview page is governed by the dynamic page layout, and is divided into a header area and a content area.

This enables you to use variant management, text, and a smart filter bar in the upper part of the screen (dynamic page header). The content of the overview page is presented using cards.

Two different layouts are available, which determine the size and position of the cards: fixed card layout and resizable card layout.

Overview page – Basic structure
Overview page – Basic structure

Dynamic Page

The dynamic page header comprises the header title and expandable/collapsible header content. Three different header variants are available for overview pages

In the overview page, the header content is used for the smart filter bar with the live update mode (variant 1 and variant 2): the results are updated immediately whenever the user changes a filter field. As a result, there is no Go button for the filter bar.

Users can expand/collapse and pin the header content with the two icon buttons below the smart filter bar:

  1. Expand/collapse header or   
  2. Pin/unpin header content 

Dynamic Page Variants for the Overview Page

The header title (either text or variant management) is mandatory, while the header content (smart filter bar) is optional. Variant 3 shows only a text in the header title.

Variant 1 Variant 2 Variant 3
Dynamic page header Yes Yes Yes
Header title Variant Management Text Text
Header content Smart Filter Bar Smart Filter Bar
Page content Cards Cards Cards

In this variant, the header title contains variant management and the header content includes the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content expands as defined. The header title offers the Share menu, which enables the actions Send Email and Save as Tile.

Dynamic page variant 1 – Expanded mode
Dynamic page variant 1 – Expanded mode

In this variant, the header title contains a text (Header Title in the example below) and the header content area contains the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content snaps as defined.

Dynamic page variant 2 – Expanded mode
Dynamic page variant 2 – Expanded mode

In the third variant, the header title contains a text (Header Title in the example below). This text serves the same purpose as the former page subtitle. The header content is empty (auto hidden) and therefore doesn’t snap. The content area displays the overview page cards.

Dynamic page variant 3 – Expanded/collapsed mode
Dynamic page variant 3 – Expanded/collapsed mode

Overview Page Layout

Fixed card layout
Fixed card layout
Resizable card layout
Resizable card layout

The overview page layout describes the position, size, and characteristics of cards in the content area below the dynamic page header.

There are two layout variants:

Only place cards on the overview page. Never add tiles.

Fixed Card Layout vs. Resizable Card Layout

Fixed Card Layout Resizable Card Layout
Fixed card width and predefined height Resizable card sizes (grid-based)
Users can’t influence the card size Users can influence the card size individually
Predefined static card characteristics Flexible content insights (such as more items, zoom, or different levels of detail)
Lower implementation effort – defined card patterns Higher implementation effort – content strategy required
Self-contained cards Highly interactive and flexible cards
Fast overview and navigation Fast overview, navigation, and investigation
Cards can be swapped Drag and drop supported for cards
Maximum of 5 card columns (letterboxing) Unlimited number of columns

Personalized Selection of Cards

Users can also hide cards. The corresponding setting is in the user actions menu under Manage Cards. A dialog appears on the overview page, and lists the different card names. Users can opt to show or hide the cards using a switch control. Restore reinstates the default setup. The personalized setup stays until the user next changes it.

Each overview page app has its own Manage Cards setting. Users who work with several overview pages can personalize the cards shown for each one.

Overview page – 'Manage Cards' dialog after initial loading
Overview page – 'Manage Cards' dialog after initial loading

Behaviour and Interaction 

As for any other SAP Fiori app, users open overview page apps by selecting a tile on the SAP Fiori launchpad home page, or by bookmarking the direct link in a browser. From the overview page the user decides which issues need attention, and navigates via cards to the relevant SAP Fiori apps. In addition, users can also access the navigation menu in the shell bar, which allows fast and easy navigation to other apps. The overview page supports navigation to both SAP Fiori and non-SAP Fiori apps. For SAP Fiori apps, it uses intent-based navigation. Non-SAP Fiori apps open in a new browser window.

In the screen flow, always position the overview page app between the SAP Fiori launchpad home page and the SAP Fiori app. The overview page doesn’t replace the SAP Fiori launchpad home page. Never start overview page apps from another SAP Fiori app.

The picture below illustrates the complete interaction flow:
SAP Fiori launchpad home page ➝ SAP Fiori overview app ➝ SAP Fiori app or non-SAP Fiori app

Overview page – Interaction flow
Overview page – Interaction flow

Initial Focus

When the overview page is loaded, set the initial focus as follows:

  • If no cards are loaded, and the filter bar is in manual mode, set the focus on the Go button or on the first filter field.
  • If no cards are loaded, the filter bar is in manual mode, and a mandatory field is still empty, set the focus on the mandatory field.
  • When all cards are loaded, set the focus either on the first card or the header of the first card.

Dedicated Floorplan

While other floorplans like the list report and object page can be combined in a single app, there is a 1:1 relationship between the overview page floorplan and the corresponding overview app. The overview page floorplan is never combined with other floorplans. Because of this, the terms “overview page floorplan” and “overview (page) app” are often used synonymously.

Cards

Overview page – Different card types (selection)
Overview page – Different card types (selection)

Cards are containers for app content, and represent an entry-level view of the most pertinent app data for a given topic or issue. The overview page can contain several cards that reference the same underlying application. However, each card must bring added value to the user, and not just repeat information already offered on another card.

Cards can display different types of content. They can show a chart, a list, a table, informative text, or a combination of two elements. Cards can also vary in size, depending on the selected layout. However, cards never have editable fields.

When designing cards, make sure that you define and format the texts on all the cards consistently. Check the UI text guidelines for the overview page for details.

For more information about cards and card types, see the dedicated topics:

Responsivess

The overview page is fully responsive and can accommodate typical laptop screens as well as larger desktop monitors. The responsive behaviour differs for the two layout types – fixed card layout and the resizable card layout.

Both feature responsive (collapsible) “columns” of cards that can scale all the way down to tablet or phone screen sizes. For more information on each card type, follow the respective links.

Top Tips

Before you start designing an overview page, familiarize yourself with following best practices to optimize the user experience. They reflect the basic findings of multiple usability tests across different scenarios and user groups.

  • Make a conscious decision on the number of cards: Show only cards that really support the specific role context or task.
  • Accentuate the most important information: Semantic colors in texts, charts, attract more attention. The same applies to larger cards.
  • Offer a well-balanced mixture of card types: Diversity makes it easy to recognize, select, and read information.
  • Define a deliberate card order: Users assume that bigger cards and cards at the top of the page are more important than others.
  • Group similar topics: Users assume that related cards will be shown next to each other.
  • Choose easy-to-read and actionable texts: If the user needs to take action, use the active voice (for example “Reorder Soon” when stocks are running low).
  • Be semantically consistent: Users expect crucial terms like “Urgent” or “Out of Stock” to be highlighted with semantic colors.

Related Links

List Report Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the list report header and content area in the SAP Fiori Elements section.

Intro

With a list report, users can view and work with a large set of items. This floorplan offers powerful features for finding and acting on relevant items. It is often used as an entry point for navigating to the item details, which are usually shown on an object page.

List report
List report

When to Use

Use the list report floorplan if:

  • Users need to find and act on relevant items within a large set of items by searching, filtering, sorting, and grouping.
  • You want to let users display the whole dataset using different visualizations (for example, as a table or as a chart), but no interactions are required between these visualizations. An example use case might be reporting.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. You want to let users switch views using tabs, segmented buttons, or a select control.
  • Drilldown is rarely or never used, or is only available via navigation to another page, and not as free or flexible drilldown within the page itself.
  • Users work on different kinds of items.

Do not use the list report floorplan if:

  • Users need to see or edit one item with all its details. Use the object page floorplan instead.
  • Users need to find one specific item, and the item or an identifying data point is known to the user (such as a code). Use the initial page floorplan instead.
  • Users need to work through a comparably small set of items, one by one. Use the worklist floorplan instead.
  • Users need to extract knowledge or insights from data, either to better understand the current situation, or to identify the root cause for a certain value.  Use the analytical list page instead.
  • Charts are not only used for visualization. Users need to switch between integrated chart and table views (hybrid view). Use the analytical list page instead.
  • Users need to see the impact of their action on a KPI. Use the analytical list page instead.
  • Users need to see not only the result, but also the impact of their filter settings directly in a chart representation. Use the analytical list page instead.

Components

The list report is a full screen floorplan. It can also be used in flexible column layout, where it is usually displayed in the first column.

The list report page is based on the dynamic page, and is divided into a header area and a content area, as defined by the dynamic page layout.

Schematic visualization of a list report
Schematic visualization of a list report
  • The dynamic page header (1) contains the header title (2) and the expandable/collapsible header content (5).
    • The header title (2) is part of the header area and should display a title or variant (3) for the whole page (mandatory), filter information (if the header is collapsed), and a header toolbar (4) with global actions, such as Share (optional).
    • The header content (5) is used to display the filter bar or the smart filter bar (mandatory).
    • The header features (6) allow users to expand/collapse the header (6a) (mandatory) and pin/unpin the header area (6b).
  • The content area (7) is used to display:
    • A table/chart title, textual icon tab bar, or select (8) (optional)
    • One table/chart toolbar (9) per tab
    • One or multiple tables and/or charts (10). You can use any kind of table. If you use a chart, you can display the chart on its own (without a table) or as an additional view for an existing table (switchable).
  • The footer toolbar (11): If needed, use a footer toolbar to display the messaging button and finalizing actions.

Behavior and Interaction

Initial Focus

When the list report is loaded, set the initial focus as follows:

  • If the header is expanded, set the focus on the first filter field (live update mode) or on the Go button (manual update mode).
  • If the header contains empty mandatory fields, set the focus on the first empty mandatory field.
  • If the header is collapsed, set the focus on the first table row.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see:

Header Title

Variant Management

Variant management is optional. If you use variants, we recommend using one variant management control for the whole page. Use the variants to save and restore all settings for filters, selected tabs, all tables, and all charts.

In some specific cases, you might need to add a second variant at control level. This can be the case when the user needs to change the view settings of a list independently of the page filters. However, the default is to use a single variant management control for the entire page.

Users can choose a default variant, which is selected every time the app is started.

Allow users to choose whether a variant should be executed automatically as soon as it has been selected. Not executing a variant automatically allows the user to add or remove filters before the dataset is updated. Provide this option only if the filter bar is in manual update mode. For live updates, this option is not required.

If variant management is not needed, show a title that describes the current view instead.

Variant management
Variant management

Filter Information

Display the filter information only if the header content is collapsed. Use the format Filtered By (x): followed by a comma-separated list of the filters currently applied. “x” stands for the number of applied filters.

Show up to 5 filters. If more filters have been applied, show an ellipsis (“…”) at the end of the string.

If no filters have been applied, show Not filtered.

Filter information
Filter information

Header Toolbar

Use the header toolbar for non-finalizing global actions, such as Share. Share opens an action sheet, which features Save as Tile (if the SAP Fiori launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

If the content area contains a grid table, an analytical table, a tree table, or any other content with its own scrollbar, display a Show Filters / Hide Filters button for expanding and collapsing the header content.

In addition, offer any other global, non-finalizing actions needed. Hide actions that cannot be used at all (for example, because of access rights). To save space on the header toolbar, group similar actions using a menu button.
For more information on global actions, see the guidelines for the header toolbar.

Header toolbar
Header toolbar

Header Content

Search

The filter bar can contain a search field (optional). If you use the search field, the content shows only items that match both the search terms and the filter criteria.

The search generally searches across all available columns of the table, regardless of whether or not they are visible. In rare cases, some columns might not be included due to technical constraints. If the search does not apply to multiple columns, do not offer the search field.

Filters

Filters are applied to all content, including all tables and charts. To improve performance, consider providing mandatory filter fields and/or default settings for filters.

If the list report loads automatically when the page loads, ensure that mandatory filter fields always have default values to avoid error messages.

The filter bar offers two different update modes:

  • The live update mode (recommended) triggers filtering immediately whenever a filter setting is changed. If the search field is used, the search is triggered together with all filter settings with every letter typed.
  • The manual update mode displays a Go button, which triggers the filtering. If the search field is used, the search is executed together with all filters as soon as the Go button is pressed.
    Make sure that all tables and charts in the content area are in a busy state until the new data is available. Also ensure that the content is grayed out as soon as the filter settings do not correspond to the content shown (any table, property: showOverlay). This is usually the case if the content is not yet updated and the Go button needs to be triggered.

Use the manual update mode only if you run into performance problems while loading the table data.

Regardless of the update mode, make sure that the filter bar and the visible content match: The filter bar must always describe the items that are shown in the content area.

Filter bar
Filter bar

The header content collapses when the user scrolls down the page (except for desktop-centric tables), and expands again when the user scrolls back up (“snap on scroll”). Users can pin the header content to keep it visible. For more information, see Dynamic Page – Expand/Collapse Header.

Exception: The “Snap on scroll” and “pin header” features are not provided if the main content area contains desktop-centric tables (grid tablesanalytical tables, tree tables) or any other content with its own scrollbar. In these cases, users need to expand and collapse the header content manually using the Show Filters / Hide Filters button.

When starting the application, expand the header content if no query was fired (and the table is therefore empty). Otherwise, collapse the header content.

Content Area

General Layout

There are three basic list report layouts: simple content, multiple views, and multiple content. These are described in more detail below.

Simple Content

In most cases, the content consists of just a table toolbar and a table. If needed, provide an option to switch between the table and a corresponding chart view.

Multiple Views

For more complex scenarios, provide multiple views of the same content. Multiple views involve one or more of the following:

  • Showing the same table, but with different columns.
  • Showing the same table in different pre-filtered states. These states are usually based on a status column, for example, items that are Open, In Process, or Closed. Make sure that the corresponding filter is not offered on the filter bar.
  • Differentiating between the items displayed in the content in some other fundamental way.

There are two options for switching between different views:

The first option is to replace the table title with a content switch. Use this approach if all views share the same sort and group states, as well as the same actions.

The content switch can be:

If you have both a table title and a content switch, display the table title first, then the content switch. Place both on the left side of the table toolbar. Since the content switch is placed on the table toolbar, the same actions are shown for all views.

If you are using the content switch together with charts, ensure that the chart also reacts to the content switch. This can be done by:

  • Filtering the data that influences the display of the chart
  • Changing the measures and/or dimensions (for example, View by Country/RegionView by Customer, …)

The second option for switching views is to show each view in a tab container of the icon tab bar. Use this approach if all views show different states of the same data (sort states, group states, as well as item selection). Using tabs also allows you to offer different actions on the table toolbar for each view.

Table toolbar with a segmented button for up to three different views
Table toolbar with a segmented button for up to three different views
Table toolbar with a select control for more than three views
Table toolbar with a select control for more than three views

Multiple Content

To support even more complex use cases, a list report floorplan can also contain multiple tables that display different kinds of objects. The filter bar settings are applied to all of these tables in parallel. For example, a customer overview list report might display different tables for invoices, deliveries, and overdue payments. All of these tables can be filtered for a specific customer and a specific date.

Display each table inside a tab container of an icon tab bar. This also allows you to offer different actions on the table toolbar for each table.

List report floorplan with multiple tables placed in multiple tabs
List report floorplan with multiple tables placed in multiple tabs

Icon Tab Bar

Use the text-only version of the icon tab bar. Display the number of items shown in the respective table on each tab (sap.m.IconTabFilter, property: count).

Icon tab bar
Icon tab bar

Table Toolbar

Display at least a table title (ideally with an item count) and icon-only buttons for sorting, grouping, and column settings. Do not offer additional filter settings on the table toolbar. For sort and group, show a view settings dialog with just the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

If alternative visualizations are provided (such as charts), offer an additional view switch on the table toolbar. Triggering the switch replaces the current visualization with another one. If a table and chart need to be shown in parallel, offer a switch for the combined view.

In rare cases, you can offer an additional layout variant on the table toolbar. The layout variant stores view settings like the column order and the sort and group settings. If you use a layout variant, do not store the table settings in the filter variant. Offer this additional layout variant only if there is a strong use case for switching filter and layout variants independently. If there is no strong use case, or you are unsure, do not use a layout variant at all.

Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Toolbar with a switch between table and chart visualizations
Toolbar with a switch between table and chart visualizations
Toolbar with a table title and layout variant
Toolbar with a table title and layout variant
Toolbar with additional actions
Toolbar with additional actions

In addition, offer any other actions needed. Disable selection-dependent actions (such as Delete) if no items are selected, or if the action cannot be applied to the selected items. Always enable selection-independent actions (such as Add). To save space on the table toolbar, group similar actions using a menu button. For example:

  • Release and Release with Conditions
  • Add Contact and Replace Contact
  • Edit Account and Edit Title

For more information on table/chart actions, see the guidelines for the table toolbar, the chart toolbar, and for managing objects.

Do
Table without the filter icon
Table without the filter icon
Don't
Table with a filter option
Table with a filter option

Table

If there are no items to display, use the “no data” text of the corresponding table. Explain why the table is empty, and what the user needs to do to display items.

Examples:

  • After starting the app, no filters are applied:
    To start, set the relevant filters.
  • The filter was executed, but no items were found. This can also happen if the list report was opened by a related app, and the filter criteria were transferred automatically:
    No data found. Try adjusting the filter settings.

If you are using a responsive table, always enable “scroll to load” behavior.

Sticky Behavior

The icon tab bar, table/chart toolbar, and column headers of all table types must be “sticky”. This means that they stay fixed on top when the user scrolls down the page.

Navigation

There are three types of navigation at item level in the list report floorplan:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a list, tree, or responsive table, clicking the line item triggers the navigation.
    In a grid table, analytical table, or tree table, clicking the navigation indicator triggers the navigation.
    Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use this only if the navigation indicator is being used for a different target.
    Only show navigation indicators for target pages the user is authorized to access.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually another list report. In this case, use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting.
    In charts, offer the drilldown navigation link in the popover for the chart element. In this case, also navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains cross-references to other entities, such as people or business objects, use a link to display the corresponding data point in the table. Triggering the link opens a quick view. Typically, the quick view displays basic details of the referenced object and a navigation link to another page (usually an object page) or another app that shows the object details.

Information
SAP Fiori Elements – Navigation to Classic UIs
If you need to navigate to classic UIs for create, display, or edit actions, see Integration of Classic SAP UIs (SAP Fiori Elements List Report). This article describes which UI elements and navigation flows to use in different scenarios.

Working Modes

When the user edits a list item in a filtered list, the changed item might no longer match the filter criteria. For this use case, there are two alternative working modes:

  • Worklist mode

    Users want to see a direct system reaction to their changes. Items that don’t match the current filters
    vanish immediately. This mode applies to about 80% of all use cases.
  • Continuous working mode

    The user still needs the edited item, even though it no longer matches the filter criteria. The item stays in the list until the next filtering process is triggered. The item is marked, and a system message informs the user about the filter mismatch. This mode applies to about 20% of all use cases.

The app developer can choose the appropriate working mode for the app use case.

Footer Toolbar

Use the footer toolbar to display the messaging button and finalizing actions. Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Always show the footer toolbar in edit mode.

Hide actions that cannot be used at all (for example, if the user doesn’t have authorization). To save space on the footer toolbar, group similar actions using a menu button.

For more information on finalizing actions, see the guidelines for the footer toolbar.

Footer toolbar
Footer toolbar

Actions

Places for actions in the list report
Places for actions in the list report

(1) Global actions in the header toolbar
(2) Table actions in the table toolbar
(3) Line item actions
(4) Finalizing actions in the footer toolbar

1. Global Actions

Place actions that affect the entire page in the header toolbar in the header title (1). These include the following standard actions:

Hide actions that cannot be used at all (for example, because the user has no authorization). To save space on the header toolbar, group similar actions using a menu button.

Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information on global actions, see the guidelines for the header toolbar.

2. Table/Chart Actions

Place actions that affect the content of a table or chart in the table toolbar (2).

Information
When you use the list, tree, or responsive table, actions on the table toolbar move up out of the visible screen area when the user scrolls down.

If you are using an icon tab bar, be aware that each tab contains its own table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available (such as Create for new objects). Other actions are only relevant if items have been selected (for example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item).

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions when no items have been selected.
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information, also see UI Element States – Control States.

Partial Processing

Enable the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide a sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

Add/Create Items Using a Dialog

You can let users add or create new items at list report level using a dialog. This approach is recommended for cases where there are fewer than 8 required fields. Display the action in the table toolbar.

You can use this option for both draft and non-draft scenarios.

More Information

For more information on table and chart actions, see the guidelines for the table toolbar, chart toolbar, and for managing objects.

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this only for specific, frequently used tasks (3). If the same action can also be applied to several items at once, feel free to also place it on the table toolbar. Nevertheless, if you do so, reconsider whether you really need to offer the action at line item level. Examples of line item actions include:

  • Start/Stop (a batch job)
  • Approve (an item)
  • Assign (an item)

Do not disable line item actions. If an action cannot be used, hide it. This can be the case if the user has no authorization or the line item is in the wrong state.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar (4).

Examples:

  • Save
  • Cancel
  • Submit

Please be aware: Even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information on finalizing actions, see the guidelines for the footer toolbar.

Responsiveness

In general, the list report floorplan is responsive. However, there are exceptions if the following controls are used:

  • Grid table, analytical table: Supported on desktop and tablet devices only. On smartphones, replace these tables with something else, such as a responsive table or a list. In rare cases, displaying only a chart on smartphones might also suffice.
  • Tree table: Supported on desktop and tablet devices only. For smartphones, there is no equivalent alternative. In some cases, a tree, the category navigation pattern, or a chart might work.
  • Smart table: The smart table is a wrapper around the different existing table controls. If a grid table, analytical table, or tree table is used inside the smart table, you will run into the issues mentioned above. On a smartphone, you can use a responsive table inside the smart table. For the tree table, you need to replace the smart table as described above.

For more details, see the respective guideline articles.

List report - Size L
List report - Size L
List report - Size M
List report - Size M
List report - Size S
List report - Size S

Examples

The examples below show variants of the list report with the most commonly-used controls. You can also see the manual update mode (with a “Go” button) and the live update mode (no “Go” button).

Top Tips

  • Avoid loading list report page without any data, even if there are no mandatory filters.
  • Use only one key identifier in the table.
  • If you are using the icon tab bar, place it beneath the filters.
  • In the icon tab bar, use text labels only (without icons).
  • Choose selection controls that best fit your use case.
  • Make sure that columns in the table are aligned correctly.
  • Ensure that mandatory filter fields always have default values.
  • Avoid using variant management for tables. Use the page variant instead.
  • Always enable actions like Add, Create or Edit. Once Edit is triggered, replace it with Save and Cancel.
  • Never place finalizing actions in the header toolbar, even if they affect the whole page.
  • When using the icon tab bar, be aware that each tab contains its own table toolbar.

 

Related Links

Elements and Controls

Implementation

Object Page Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the object page header, content area, and footer bar in the SAP Fiori Elements section.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan
Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.

List report floorplan
  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a code identified by a scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Object marker (optional)
  5. Header toolbar with global actions (optional)
  6. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
  7. Header content (optional)
Object page with expanded dynamic page header
Object page with expanded dynamic page header
Object page with collapsed dynamic page header
Object page with collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer text (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Progress indicator
  4. Footer text (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use the rating indicator facet to display a single rating value or an aggregated rating (such as an average rating for a product). The facet structure is slightly different in each case.

Single rating value:

The single rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary texts
  3. Rating indicator
Rating indicator facet - Single rating
Rating indicator facet - Single rating

Aggregated rating:

The aggregated rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer text (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.
Rating indicator facet - Aggregated rating
Rating indicator facet - Aggregated rating
Guidelines
We recommend the following property settings when using the rating indicator in header facets:

  • Show 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

Navigation Bar (optional)

If your content can be shown in just one section, use the dynamic page layout. In the dynamic page layout with one section, the header area can’t be edited when the page is in edit mode.

If you need to structure your content in different sections, use the object page layout. You can only have several sections in the object page layout. When you use the object page layout, you can also make the header editable when the page is in edit mode. However, try to avoid having an editable header and move the content from the header to the sections instead.

If you need only one section, but require an editable header, use the object page layout. An object page with only one section doesn’t have any anchor bars. However, a temporary anchor bar and section for editing the header content should be added when edit mode is triggered.

If the content is complex there are two ways to structure it:

  • Anchor bar navigation (default)
  • Tab bar navigation

Anchor Bar Navigation

The anchor bar consists of a series of links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link navigates to the respective section. The anchor bar remains visible when the user scrolls down the page.

Use anchor bar navigation when the content belongs together but users might want to jump to specific parts directly.

For more information, see Anchor Bar Navigation.

Tab Bar Navigation

The tabs are a series of links to subpages, arranged horizontally at the top of the page. Clicking a link navigates to the respective subpage. The tabs remain visible when the user scrolls down the page.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

For more information, see Tab Bar Navigation.

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking on these links directs the user to specific sections of the page. The anchor links remain visible when the user scrolls down the page.

Object page – Anchor bar navigation
Object page – Anchor bar navigation
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu
Developer Hint
Make sure that the UpperCaseAnchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

If the content of a section contains a control, for example a table, then we recommend to always display it, even if the control title and tab title are identical. This makes it easier for the user to orientate themselves.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Guidelines
If a section contains a control, like a table or a chart, and the title of the control is the same as the section title, then the section title can be hidden so that this title is only displayed once. This avoids unnecessary redundancies.

We recommend the same for subsection titles.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness
Developer Hint
For non-SAP Fiori element object pages only:

The content of the dynamic page header, navigation bar, (sub)section titles, and subsections must be vertically aligned. To achieve this, apply the sapUxAPObjectPageSubSectionAlignContent CSS class to the content of the subsections and set the width property to “auto”.

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns / 6 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. To improve access to the different forms we recommend always using one subsection per form, rather than placing multiple forms into one subsection.

If you need to perform any actions, you can use the subsection header. If you need action at group level, you can use a group header. To prevent confusion, we recommend inserting actions only in one place, depending on the use case.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Block base
Object page – Block base

Tables

If a section contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section title acts as the table title.

If a subsection contains only one table and no other content, hide the title of the subsection to avoid having duplicate titles for the table and reduce vertical space. In this case, the table title acts as the subsection title.

If you want to embed analytical tables, grid tables, or tree tables in an object page, use an object page with tabs, and place each table in its own tab. Because the analytical, grid, and tree tables have their own vertical scroll bars, they are not allowed within scrollable object pages. If you are using a scrollable object page without tabs, use a responsive table instead, and offer navigation to another page with the respective table type.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 400 Tab navigation
More than 400 or tab approach is unsuitable Navigation to another page

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but less than 400, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to Another Page

For tables with more than 400 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend only showing a preview of 10 items, but not more than 20. This can be achieved using predefined filters and/or by sorting the table. If necessary, you can also set a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate page, such as a list report, subobject page, or dynamic page with the respective table type. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used in edit and create mode for closing and finalizing actions, such as Save, Post, Accept, Reject, and Activate.

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Initial Focus

When the object page is loaded, set the initial focus as follows:

  • If the object page is in display mode, set the focus on the first section.
  • If the object page is in edit mode, set the focus on the first empty mandatory field.
  • If there are no mandatory fields, set the focus on the first editable element or first action.

Edit

In edit mode, the object page can contain a mixture of editable and read-only content.

If the user needs to edit elements in the header, a header section is added in the content area to enable editing.

Use the same content layout for both display and edit mode. Content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Object Handling (Create, Edit, Delete).

Editing the Header

The object page header can be edited in two ways:

  • Global edit
  • Partial edit

Global Edit

The header can be edited when the entire object page is in edit mode.

Because the header snaps on scroll, there are no editable forms in the header itself. Instead, a temporary header section is added before the other sections of the page. The title bar information and all editable fields from the header container move from the header to the new editable header section. Any non-editable content displays as read-only in the new header section. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts).

If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears.

If your object page has no anchor bar in display mode, and the header section has only a few editable fields, do not add navigation in edit mode.

The header container in edit mode may contain independent facets that are not included in the header content in display mode. They provide information to assist editing.

If the entire object page is in edit mode, but there is no editable information in the header, no editable header section is added.

Any changes made to the header are not reflected until the user saves them.

Partial Edit

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing Ctrl+Enter has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Edit Actions in Display Mode (freestyle apps only)

The standard flow is to switch to edit mode for edit and delete actions. However, in some cases, it can be helpful to offer certain edit actions in display mode as well.

You can offer edit actions in display mode if:

  • Switching to edit mode would inconvenience the user. This is especially true if the change is small and quick, and switching to edit mode would take longer than making the change.
  • The change does not impact a critical flow or result in technical inconsistencies.

Examples: Adding a comment, uploading a file

Do not offer edit actions in display mode if:

  • The change has a critical impact on business data/follow-on processes.
  • The change requires a finalizing action.

Example: Deleting a sales order item would affect the entire sales order and dependent data.

When offering delete actions in display mode, always show a delete confirmation dialog. For more information, see:

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover or clicks the  (Close) icon.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, display the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Loading Behaviour

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If loading takes a long time, a busy indicator is shown on top of the section or item until the content is loaded and visible.

SAP Fiori elements uses a skeleton template with generic placeholders. For more information, see Placeholder Loading.

Busy indicators for sections still loading
Busy indicators for sections still loading

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size M
Object page – Size M
Object page – Size L
Object page – Size L

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information, see:

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Wizard Floorplan

The wizard floorplan allows users to complete a long or unfamiliar task by dividing it into sections and guiding the user through it. The wizard consists of the walkthrough screen, where the form sections are revealed in sequence after each one is completed, and the summary page, where the form is displayed in read-only mode for assessment and final submission. In general, you can use the wizard both in full screen mode and in a modal dialog. Beyond that, the wizard in full screen mode can also be used in a flexible column layout.

Wizard in full screen mode - Steps
Wizard in full screen mode - Steps
Wizard in a modal dialog - Steps
Wizard in a modal dialog - Steps

Usage

Wizard in Full Screen Mode

When to Use the Wizard Floorplan

The wizard aims to help users by dividing large or complex tasks into segments. Use the wizard if the user has to accomplish a long task (such as filling out a long questionnaire) or a task that is unfamiliar to the user. The flow should consist of a minimum of 3 and a maximum of 8 steps.

The wizard can be used for both create and edit scenarios. If your application contains both, consider using the same format for both scenarios – either the wizard, or another create/edit screen (edit flow or object page).

When Not to Use the Wizard Floorplan

If you have a task with only 2 steps or a format that the user is familiar with (for example, it is part of their daily routine), do not use the wizard as it only adds unnecessary clicks to the process. If your process needs more than 8 steps, the wizard will not support those steps, as the process is too long and can be confusing for the user. In this case, consider restructuring the task.

Consider whether the classic edit screens (edit flow or object page) are more suitable for your use case.

Wizard in a Modal Dialog

When to Use the Wizard in a Modal Dialog

We recommend using the wizard in a modal dialog if:

  • The wizard is closely connected to the triggering page, and the user needs to return to that page quickly.
  • Users need to be able to open the wizard from any part of the product/page.
  • The size of the wizard needs to be flexible.

When Not to Use the Wizard in a Modal Dialog

Don’t use the wizard in a modal dialog if the app you are using is a standalone application that has no relation to the page it has been triggered from. Instead, use it in a full screen layout.

Structure

The wizard has two screens: the walkthrough screen, where users complete a segmented task, and the summary screen, where they can check the data they are about to submit. Wizard content is not restricted to forms; you can also use other elements, such as a value help dialog.

Walkthrough Screen

After triggering the wizard from a floorplan, the user is taken to the main walkthrough screen, which shows only the first section of the form. Users can also trigger the wizard app from another application, from the launchpad, or from a notification. The wizard always starts at the initial walkthrough page and ends after the user has clicked the main action (such as Create or Submit) on the summary screen.

The wizard comes with two different behaviors, which have different navigation patterns. Their usage depends on the use case.

Anchor Bar / One-Page Behavior

The anchor bar behaves in the same way as the anchor bar in an object page. It consists of a series of links (steps) that are arranged horizontally at the top of the page. Clicking a link navigates to the respective step on the page.

The Next Step button is only used on the walkthrough page. Once the user has filled out all the necessary fields, a Next Step button appears below the content, which allows the user to continue with the next section of the form. If the user needs to navigate to the previous section of the form, it is possible either to scroll up the page or to navigate back by using the progress bar. When the user has completed the last section of the wizard, the button label changes to Review, and the user is taken to the summary screen. On the summary screen, the user can use either the Edit button in the footer or the Back arrow to return to the wizard and edit any of the fields. The wizard footer is used to display the Cancel button, which exits the wizard. If the user has modified any fields, a data loss warning appears. If the form is long, and the user may have to save it before finishing, you can offer a Save as Draft option in the footer.

Walkthrough screen in full screen layout used with an anchor bar
Walkthrough screen in full screen layout used with an anchor bar
  1. Header toolbar with title
  2. Progress bar
  3. Completed step
  4. Current step
  5. Upcoming step
  6. Step title (for example: 3. Payment)
  7. Action for the next step

Tab Bar

As an alternative to the anchor bar, you can also use the tab mode (property: rendermode, value: Page). It is visualized in the same way, but shows a series of tabs (steps). These are arranged horizontally at the top of the page and each represents a subpage. Clicking a tab displays the respective subpage.

Unlike the anchor bar, the tab bar comprises not only a Next Step button but also a Previous Step button. Place the Next Step button in the footer toolbar, as in the summary screen. As soon as users move to the following step, show an additional Previous Step button on the left. This follows the guidance for action placement: if the primary action (such as Next Step) is a forward path, it needs to appear to the right of the secondary action. In the case of the wizard, the secondary action is Previous Step. The negative path action Cancel remains unchanged.

After filling out all the necessary fields for a step, the user can navigate to the next step by clicking the Next Step button. To navigate back to the previous step, the user can either click the Previous Step button or use the progress bar at the top of the wizard. If you use tabs, each tab is a single wizard step.

When the user has completed the last wizard step of the walkthrough screen, the Next Step button changes to Review, and the user is taken to the summary screen. Since the tab bar is also used for the summary screen, the user can either use the Previous Step button to return to the prior wizard step or use the Next Step button, which changes to the Create/Submit button to finalize the wizard application.

To go back and edit entries for single wizard steps, the user can either use the Edit buttons on the summary screen or select the step in the progress bar. Beneath the Next Step/Previous Step buttons for processing the wizard, the wizard footer toolbar is also used to display the Cancel button, which exits the wizard.

If the user has modified any fields and navigates away, a data loss warning appears. If the form is long, and the user may have to save it before finishing, you can offer a Save as Draft option in the footer.

Walkthrough screen in full screen layout used with a tab bar
Walkthrough screen in full screen layout used with a tab bar
  1. Dynamic page header with title
  2. Progress bar
  3. Completed step
  4. Current step
  5. Upcoming step
  6. Dynamic page footer toolbar
  7. Previous step button
  8. Next step/finalizing button
  9. Cancel button to exit wizard

The title in the header toolbar above the wizard remains unchanged during all the wizard steps. Align this title left, and make it clear to users where they are and what they are doing (for example, New Sales Order or Sales Order 4815162342). Especially in edit scenarios, it is vital to give users a unique identifier for the object they are changing.

The progress bar below the header highlights the completed steps and the current step. It also allows the user to navigate between steps by clicking any of the circles. If there are multiple steps, and the screen width is reduced, the steps on the progress bar are grouped. This behavior is the same on smartphone, tablet, and desktop screens.

Wizard tooltip – Grouped steps
Wizard tooltip – Grouped steps

In certain use cases, the steps in the wizard depend on the choices the user makes along the way. The user’s entries for one step determine the follow-on steps (“branching”). In these cases, a dotted line shows that more steps will follow.

Wizard branching
Wizard branching

Since the wizard is a lightweight way to create or edit objects, applications can use a quick confirmation popover instead of the heavier data loss message when the user selects Cancel.

If the wizard is used to create an object, the text in the popover should read Discard this <object>?’ . If the wizard is used to edit an object, use the text Discard changes? In both cases, use Discard as the action on the popover.

Structure – Quick confirmation
Structure – Quick confirmation

Modifying dependent steps: If there are steps that depend on each other (for example, a selection in step 2 triggers an additional step), and the user modifies the parent step, the dependent step is changed or deleted. Beforehand, the user is warned that data will be lost.

Summary Screen

On the summary screen, users can check all their entries before the object is actually created or changed. Depending on the use case, and whether the wizard is used with an anchor bar or a tab bar, the structure of the summary screen differs.

  • If the wizard is used with an anchor bar, the summary screen has no progress bar or anchor navigation, and shows the form sections for all the steps in read-only mode.
  • If the wizard is used with a tab bar, the summary screen is included as a step in the progress bar, and therefore the progress bar and the tab bar are still visible. It shows the form sections for all the steps.

To allow the user to go back and edit entries, provide an Edit button in each form section. Alternatively, users can click the Previous Step button or scroll up to go to the previous step/section.

On the summary page, show the finalizing action, such as Create or Save.

Wizard summary page example
Wizard summary page example

Layout

The wizard floorplan can be used in both the full screen layout and in a modal dialog. Thanks to its responsive behavior, it is also possible to use the full screen layout in the flexible column layout. Since there are no subsequent pages after the wizard, it always occupies the rightmost column – there is no navigation from the wizard to a subsequent page. After completing (or canceling) the wizard, the user is always returned to the triggering page.

Wizard in full screen layout used with tab bar
Wizard in full screen layout used with tab bar
Wizard in a modal dialog used with tab bar
Wizard in a modal dialog used with tab bar
Wizard in full screen layout used with anchor bar
Wizard in full screen layout used with anchor bar
Wizard in flexible column layout (2/3)
Wizard in flexible column layout (2/3)
Wizard in flexible column layout (1/3)
Wizard in flexible column layout (1/3)

Types

There are two types of wizard – “standard” and “branching” – which differ in terms of the functions they offer.

Use the standard type if:

  • The total number of steps is known in advance.
  • The number of steps does not change during usage.
  • There is linear progression from one step to the next.

Use the branching type if:

  • The total number of steps is not known.
  • The number of steps may change during usage.
  • There is non-linear progression. In other words, the user’s choice during one step determines which step comes next.

In both types of wizard you can let users skip steps. Label these steps as “Optional”.

Styles

In addition to the functional types, there are also different visual styles.

Numbers and Icons

By default, both versions use a number inside a circle to represent each step. You can also use icons instead of numbers to help users identify the steps. If you plan to use icons, be sure to assign icons to all the steps (not just to some). Always choose unique, clearly distinguishable icons for each step.

Steps represented by numbers
Steps represented by numbers
Steps represented by icons
Steps represented by icons

Labels

To help users identify the individual steps even more easily, app developers can assign labels. As with icons, labels must be applied to all or none of the steps.

If there is enough horizontal space, all labels are shown.

All labels are visible
All labels are visible

As the width is reduced, the label is only shown for the currently selected step.

Labels - reduced width
Labels - reduced width

The unselected and outermost steps are stacked on top of each other to further accommodate the reduced space.

Stacked labels
Stacked labels

To access steps inside a stack, users click can open a list of hidden steps.

Labels - stacked popover
Labels - stacked popover

Optional Steps

For optional steps, add an (Optional) label. Place the (Optional) label below the content label for the step.

Do
Correct: '(Optional)' label below the content label for the step
Correct: '(Optional)' label below the content label for the step

Explanatory Texts

Ideally, the headlines and field labels for each step should provide enough information for users to complete their tasks. However, if additional explanations are needed, applications can put a simple text underneath a step headline – either via the sap.m.Text or the sap.m.FormattedText control.

Responsiveness and Adaptiveness

The wizard floorplan is available in the sizes: S, M, L and XL. This is also applicable to the wizard in a modal dialog.

As the size being used highly orientates on the content and the space that is needed for it, there aren’t any fixed sizes available. For a wizard with a lot of content, in modal dialog it is recommended to use width of 80% and height of 70%. For less content, the size of the modal dialog should match the content.

Wizard - Size L
Wizard - Size L
Wizard - Size M
Wizard - Size M
Wizard - Size S
Wizard - Size S
Wizard modal dialog - Size L
Wizard modal dialog - Size L
Wizard modal dialog - Size M
Wizard modal dialog - Size M
Wizard modal dialog - Size S
Wizard modal dialog - Size S

If there is not much content available with a lot of whitespace around it, the wizard in a modal dialog could look like this:

Micro wizard - Size M (1)
Micro wizard - Size M (1)
Micro wizard - Size M (2)
Micro wizard - Size M (2)
Micro wizard - Size S
Micro wizard - Size S

The wizard in full screen layout as well as in the modal dialog supports all common screen sizes and is available in cozy and compact modes, as well as high-contrast black (HCB).

On small screen if the space needed for the action buttons located in the footer toolbar (Previous/Next step) is not enough an overflow appears on the right side, containing the cancel button.

Wizard modal dialog overflow behavior - Size S
Wizard modal dialog overflow behavior - Size S

Behavior and Interaction

Initial Focus

When the wizard is first loaded, focus on the first editable control in the first step.

Exceptions:

  • The user opens a page using a link that jumps directly to a specific step. In this case, focus on the first editable control in this step.
  • The user opens the wizard using one of the Edit actions from the review screen. In this case, focus on the first editable control in the selected editing step.

Error and Draft Handling

Error Handling

Error handling is done via message popovers. When the user clicks the button for the next step, the form sections and fields are validated. When the user clicks the Create button on the summary page, the entire form is validated. If there are any errors, the message popover is displayed, and clicking any of the error items scrolls the page to the relevant field, which is also highlighted in red.

Section validation differs from validation of the entire form:

  • Section validation: Validates the entries in the form fields.
  • Form validation: Checks the entire form for back-end system errors (such as duplicated data entry).

Draft Handling

If a draft already exists when a user enters the wizard, show a dialog to inform the user. For more information, see Draft Handling.

Expand to Full Screen

If the wizard is displayed in a modal dialog, the user can switch between the standard size and a near full screen size. This is done by clicking the Enter Full Screen icon  on the top-right corner.

Wizard modal dialog - Expand to near full screen size
Wizard modal dialog - Expand to near full screen size

Resizing & Dragging

Resizing

If the wizard is in a modal dialog, we advise against allowing users to resize the dialog freely. This distracts users and prevents them from solving their tasks quickly.

Dragging

If the wizard is in a modal dialog, you can allow users to drag and drop the dialog to a different position on the page by clicking on the top of the dialog window. This can be helpful if the user needs information from the underlying page.

Busy States

You can also use busy states. Currently, there are two different types of busy states available. One for initiating the wizard from a floorplan, and another for loading the single content parts of a wizard step.

Initiating the Wizard from a Floorplan

If initiating the wizard from a floorplan takes longer than one second, the control shows a busy state. As soon as the wizard is available, the busy state is removed, and the single parts of the wizard step are loaded.

Busy state - Initiating wizard from a floorplan (example)
Busy state - Initiating wizard from a floorplan (example)

Loading the Single Parts of a Wizard Step

If loading the single parts of a wizard step takes longer than one second, set the control to the busy state. If loading was successful, the busy indicator is removed and the content is shown. If loading wasn’t successful, the busy indicator is removed, an error message strip appears, and the content isn’t shown.

Busy state - Loading the single parts of a wizard step (successful)
Busy state - Loading the single parts of a wizard step (successful)
Busy state - Loading the single parts of a wizard step (not successful)
Busy state - Loading the single parts of a wizard step (not successful)

Dynamic Page

Header

Even though the wizard floorplan consumes the dynamic page, the wizard header does not allow snapping. The wizard floorplan comes with its own step-based header that already saves space.

Footer Toolbar

The footer toolbar of the wizard floorplan conforms to the standard dynamic page layout and uses the sap.m.bar control.

Developer Hint
If you use the wizard in a dynamic page layout, set the height of the wizard to “auto” instead of “100%”. Otherwise, a scrollbar issue may occur.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Form (SAPUI5 samples)
  • Wizard (SAPUI5 samples)
  • Form (SAPUI5 API reference)
  • Wizard (SAPUI5 API reference)

Overview Page

Information
This floorplan is implemented as an SAP Fiori Element.

Intro

View, Filter, and Take Immediate Action

The overview page (OVP) is a data-driven SAP Fiori app type and floorplan that provides all the information a user needs in a single page, based on the user’s specific domain or role. It allows the user to focus on the most important tasks, and view, filter, and react to information quickly.

Each task or topic is represented by a card (or content container). The overview page acts as a UI framework for organizing multiple cards on a single page.

The overview page is based on SAP Fiori elements technology, and uses annotated views of app data, meaning that the app content can be tailored to the domain or role. Different types of card allow you to visualize information in an attractive and efficient way.

At a Glance

  • Entry-level view of content on cards

  • One specific context and task area for one role

  • Content from different sources shows side by side – no need to switch screens

  • Information can be visualized on cards in different ways (texts, charts, lists, tables)

  • Micro actions let users react on the spot

Overview page
Overview page

When to Use

Use the overview page if:

  • You want to provide an entry-level view of content related to a specific domain or role.
  • Users needs to filter and react to information from at least two different applications to complete their role-specific tasks.
  • You want to offer different information formats (such as charts, lists, and tables) on a single page.
  • You plan to have at least three cards. These cards should not all be of the same type.

Do not use the overview page if:

  • A high-level or birds-eye view of application content is sufficient.
  • You just want the user to launch an application. In this case, use the SAP Fiori launchpad home page.
  • You want to show information about one object only. In this case, use the object page.
  • You just represent one application and less than three cards. In this case, use the object page.

SAP Fiori Launchpad Home Page, Overview Page, and Object Page

The launchpad home page contains all of a user’s favorite apps and offers access to them via tiles. This covers all the roles that a user might have, such as employee, manager, production worker, or quality manager.

An overview page focuses on the key tasks for a specific role, and contains only the most frequently-used apps for that role. The overview page uses cards, which display more (preview) information than tiles because of their size, properties, and interaction areas. One card type also allows users to perform simple actions. Cards represent an entry-level view of application content.

Launchpad Home Page vs. Overview Page

Launchpad Home Page Overview Page
Framework (given) SAP Fiori application (optional)
“Birds-eye” view “Street-level” view
Single point of entry Specific business context for a role
One SAP Fiori launchpad per user Multiple overview pages per user possible
Access to all the user’s favourite applications Selected applications are presented as cards
Uses tiles Uses cards
No actions Micro actions

The overview page is always role-based. The user sees a heterogeneous set of information related to a specific business context and the tasks associated with a specific role. This is not the case with the object page, which contains homogenous, object-based information.

Overview Page vs. Object Page

Overview Page Object Page
Role-based Object-based
“Street-level” view “Details” view
Heterogeneous information Homogeneous information

Role-Specific Overview Pages

As you can see in the picture, the overall content scope (shown in gray) becomes more focused with each interaction step. An overview page brings together information from different sources that support a specific task or information need. Only provide an overview app for a role if it makes sense to do so.

If a role or user has several main tasks that each require a specific set of information, the role or user might also have multiple overview apps. For example, one overview app could be used to reflect the user’s role as manager, with information for managing team performance reviews. Another overview app could be used to track quality issues and other relevant information pertaining to the machines that the user is responsible for in the role of quality manager.

Metaphor – Different entry points in SAP Fiori
Metaphor – Different entry points in SAP Fiori

Components

The basic structure and appearance of the overview page is governed by the dynamic page layout, and is divided into a header area and a content area.

This enables you to use variant management, text, and a smart filter bar in the upper part of the screen (dynamic page header). The content of the overview page is presented using cards.

Two different layouts are available, which determine the size and position of the cards: fixed card layout and resizable card layout.

Overview page – Basic structure
Overview page – Basic structure

Dynamic Page

The dynamic page header comprises the header title and expandable/collapsible header content. Three different header variants are available for overview pages

In the overview page, the header content is used for the smart filter bar with the live update mode (variant 1 and variant 2): the results are updated immediately whenever the user changes a filter field. As a result, there is no Go button for the filter bar.

Users can expand/collapse and pin the header content with the two icon buttons below the smart filter bar:

  1. Expand/collapse header or   
  2. Pin/unpin header content 

Dynamic Page Variants for the Overview Page

The header title (either text or variant management) is mandatory, while the header content (smart filter bar) is optional. Variant 3 shows only a text in the header title.

Variant 1 Variant 2 Variant 3
Dynamic page header Yes Yes Yes
Header title Variant Management Text Text
Header content Smart Filter Bar Smart Filter Bar
Page content Cards Cards Cards

In this variant, the header title contains variant management and the header content includes the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content expands as defined. The header title offers the Share menu, which enables the actions Send Email and Save as Tile.

Dynamic page variant 1 – Expanded mode
Dynamic page variant 1 – Expanded mode

In this variant, the header title contains a text (Header Title in the example below) and the header content area contains the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content snaps as defined.

Dynamic page variant 2 – Expanded mode
Dynamic page variant 2 – Expanded mode

In the third variant, the header title contains a text (Header Title in the example below). This text serves the same purpose as the former page subtitle. The header content is empty (auto hidden) and therefore doesn’t snap. The content area displays the overview page cards.

Dynamic page variant 3 – Expanded/collapsed mode
Dynamic page variant 3 – Expanded/collapsed mode

Overview Page Layout

Fixed card layout
Fixed card layout
Resizable card layout
Resizable card layout

The overview page layout describes the position, size, and characteristics of cards in the content area below the dynamic page header.

There are two layout variants:

Only place cards on the overview page. Never add tiles.

Fixed Card Layout vs. Resizable Card Layout

Fixed Card Layout Resizable Card Layout
Fixed card width and predefined height Resizable card sizes (grid-based)
Users can’t influence the card size Users can influence the card size individually
Predefined static card characteristics Flexible content insights (such as more items, zoom, or different levels of detail)
Lower implementation effort – defined card patterns Higher implementation effort – content strategy required
Self-contained cards Highly interactive and flexible cards
Fast overview and navigation Fast overview, navigation, and investigation
Cards can be swapped Drag and drop supported for cards
Maximum of 5 card columns (letterboxing) Unlimited number of columns

Personalized Selection of Cards

Users can also hide cards. The corresponding setting is in the user actions menu under Manage Cards. A dialog appears on the overview page, and lists the different card names. Users can opt to show or hide the cards using a switch control. Restore reinstates the default setup. The personalized setup stays until the user next changes it.

Each overview page app has its own Manage Cards setting. Users who work with several overview pages can personalize the cards shown for each one.

Overview page – 'Manage Cards' dialog after initial loading
Overview page – 'Manage Cards' dialog after initial loading

Behaviour and Interaction 

As for any other SAP Fiori app, users open overview page apps by selecting a tile on the SAP Fiori launchpad home page, or by bookmarking the direct link in a browser. From the overview page the user decides which issues need attention, and navigates via cards to the relevant SAP Fiori apps. In addition, users can also access the navigation menu in the shell bar, which allows fast and easy navigation to other apps. The overview page supports navigation to both SAP Fiori and non-SAP Fiori apps. For SAP Fiori apps, it uses intent-based navigation. Non-SAP Fiori apps open in a new browser window.

In the screen flow, always position the overview page app between the SAP Fiori launchpad home page and the SAP Fiori app. The overview page doesn’t replace the SAP Fiori launchpad home page. Never start overview page apps from another SAP Fiori app.

The picture below illustrates the complete interaction flow:
SAP Fiori launchpad home page ➝ SAP Fiori overview app ➝ SAP Fiori app or non-SAP Fiori app

Overview page – Interaction flow
Overview page – Interaction flow

Initial Focus

When the overview page is loaded, set the initial focus as follows:

  • If no cards are loaded, and the filter bar is in manual mode, set the focus on the Go button or on the first filter field.
  • If no cards are loaded, the filter bar is in manual mode, and a mandatory field is still empty, set the focus on the mandatory field.
  • When all cards are loaded, set the focus either on the first card or the header of the first card.

Dedicated Floorplan

While other floorplans like the list report and object page can be combined in a single app, there is a 1:1 relationship between the overview page floorplan and the corresponding overview app. The overview page floorplan is never combined with other floorplans. Because of this, the terms “overview page floorplan” and “overview (page) app” are often used synonymously.

Cards

Overview page – Different card types (selection)
Overview page – Different card types (selection)

Cards are containers for app content, and represent an entry-level view of the most pertinent app data for a given topic or issue. The overview page can contain several cards that reference the same underlying application. However, each card must bring added value to the user, and not just repeat information already offered on another card.

Cards can display different types of content. They can show a chart, a list, a table, informative text, or a combination of two elements. Cards can also vary in size, depending on the selected layout. However, cards never have editable fields.

When designing cards, make sure that you define and format the texts on all the cards consistently. Check the UI text guidelines for the overview page for details.

For more information about cards and card types, see the dedicated topics:

Responsivess

The overview page is fully responsive and can accommodate typical laptop screens as well as larger desktop monitors. The responsive behaviour differs for the two layout types – fixed card layout and the resizable card layout.

Both feature responsive (collapsible) “columns” of cards that can scale all the way down to tablet or phone screen sizes. For more information on each card type, follow the respective links.

Top Tips

Before you start designing an overview page, familiarize yourself with following best practices to optimize the user experience. They reflect the basic findings of multiple usability tests across different scenarios and user groups.

  • Make a conscious decision on the number of cards: Show only cards that really support the specific role context or task.
  • Accentuate the most important information: Semantic colors in texts, charts, attract more attention. The same applies to larger cards.
  • Offer a well-balanced mixture of card types: Diversity makes it easy to recognize, select, and read information.
  • Define a deliberate card order: Users assume that bigger cards and cards at the top of the page are more important than others.
  • Group similar topics: Users assume that related cards will be shown next to each other.
  • Choose easy-to-read and actionable texts: If the user needs to take action, use the active voice (for example “Reorder Soon” when stocks are running low).
  • Be semantically consistent: Users expect crucial terms like “Urgent” or “Out of Stock” to be highlighted with semantic colors.

Related Links

Overview Page – Stack Card | Quick View Card

Take Action on the Overview Page 

As well as giving users access to content from multiple applications using different visualizations, the overview page can also let users take immediate action. This is supported by a special interaction pattern with a set of closely-integrated card types: the stack card, object stream, and quick view card. These three card types are only ever used together, and navigation between them has been optimized to best support user needs.

A stack card is a collection of quick view cards, which provide a footer area with actions. These quick view cards are displayed in the object stream (overlay). The advantage of using stack cards is that users don’t have to leave the overview page, and therefore don’t lost their focus.

Overview page – Navigation overview of stack card, object stream, and quick view card
Overview page – Navigation overview of stack card, object stream, and quick view card

Explanation:

  1. Stack card (left side): Opens the parent application (such as a list report with all approvals).
  2. Stack card (right side): Opens the object stream.
  3. Heading of the object stream: A link that navigates to the parent application (such as a list report with all approvals).
  4. Single quick view cards within the object stream: Offer navigation to the object details (such as an object page with the selected approval), as well as actions.
  5. Placeholder card: The last card a one-click area and navigates directly to the parent application (such as a list report with all approvals).

Stack Card

A stack card is a special collection of single-object quick view cards, based on a topic or action. Unlike the other card types, the top-level stack cards don’t show any application content. Instead, they act as an entry point to an object stream containing multiple cards.

Stack cards have the following components:

  • The title is the top element and is always required. It is used as the heading for the detail view, and comprises 1-2 lines of text.
  • The subtitle is optional. You can use it to qualify the title, offer an explanation, or show a status. The purpose of the subtitle is explain the content of the stack in one line, so its usage depends on the context.
  • The stack content count indicates the number of cards in the stack (object stream). The object stream can contain up to 20 cards. Below the number of cards in the stack, you see the total number of items returned for the annotated view (for example, “20 of 42”).

The top-level stack card contains two clickable navigation areas:

  • The left area and View All link navigate to the parent application, where the user can see all the objects returned for the annotated view (42 in the example above). The placeholder card and heading inside the object stream have the same navigation target.
  • The right area opens the object stream, which contains a scrollable collection of cards presented in an overlay format. The user can browse individual cards, with the option to view, inspect, or take action.

Object Stream

Overview page – Object stream
Overview page – Object stream

Clicking the right-hand area of the stack card opens the object stream. The object stream appears on top of the overview page as a modeless overlay, and serves as a layer for showing quick view cards with actions. The overlay has heading on the top left, and a Close button on the right. The heading is the same as the stack card title, and links to the full result set in the parent application (same target as the left-side navigation on the stack card and the navigation from the placeholder card). Clicking outside the overlay area also closes the object stream.

The object stream can have up to 20 cards (maximum), which all get their content from the same parent application. By default, the cards are ordered chronologically, with the most recent items first. However, app developers can define the best object stream sorting option for their own needs and content. If the number of cards exceeds the available space in the overlay window, an arrow icon appears on the right for scrolling. Mobile device users can swipe to see more cards. If the object stream is empty, the stack link is not active and the overlay cannot be opened. The stack count number displays 0. If only one item is returned, the object stream contains just a single card.

The header area of the quick view cards in the object stream navigates to the detail view for that specific object in the parent application. The footer area of the quick view cards can also offer actions.

Object Stream – Scroll Arrows

Scroll arrows only appear on desktop devices. If all the cards in the object stream fit on the screen, the arrows are not visible. If the number of cards exceeds the available space, an arrow icon appears on the right when the user mouses over the object stream overlay. Mousing over the arrow button area scrolls the cards across the screen from right to left. As soon as the first card on the left moves out of the visible overlay area, a second arrow appears on the left for moving in the other direction. Once the last card is in full view, the arrow on the right disappears.

Placeholder Card

If the number of items returned for the annotated view exceeds the maximum 20 cards allowed in the object stream, a placeholder card is added automatically at the end of the stream (as card 21). The entire placeholder card is navigable, and takes the user to the full result set in the parent application.

The text on the placeholder card is composed as follows:

See all [total] [items] in the“[app name]” app.

Where:

  • The values for [total] and [app name] are supplied by the system.
  • The term for [items] must be rephrased by the app team to reflect the type of item or business object. For more information, see Mandatory Adjustments.

Examples:

  • See all 42 items awaiting approval in the “Approve Leave Requests” app.
  • See all 42 purchase orders awaiting approval in the “Approve Purchase Orders” app.
Overview page – Placeholder card
Overview page – Placeholder card

Object Stream – Tablet Version

On tablet devices, the modeless overlay expands horizontally. It also expands vertically to accommodate the card height and allow space for the title and Close button. The user can swipe through cards and perform micro actions. Swiping a card into view moves the entire object stream. Tapping the Close button closes the stack card and returns the user to the main overview page. There are no scroll arrows on touch devices.

Tablet in horizontal orientation
Tablet in horizontal orientation
Tablet in portrait orientation
Tablet in portrait orientation

Object Stream – Phone Version

On smartphones, the overview page layout collapses to a single column in both portrait and landscape modes. Tapping the right-hand navigation area of a stack card opens the object stream on top of the overview page in a new full screen window.

The object stream expands horizontally and vertically to accommodate the card height, and to allow space for the title and Close button. The user can swipe through the cards and perform micro actions. Swiping a card moves the entire object stream. Since the cards are too large to fit on the screen in landscape mode, users can also scroll vertically to see the full card content. Tapping the Close button closes the stack card and returns the user to the main overview page. There are no scroll arrows on touch devices.

Phone in horizontal orientation
Phone in horizontal orientation
Phone in portrait orientation
Phone in portrait orientation

Quick View Card

Quick view cards are single-object cards. They display the basic details for one object, such as the name, address, and phone numbers for a contact. This card type is only available within the object stream; you can’t place quick view cards on the overview page itself. The quick view card inherits the SAPUI5 element sap.m.QuickView.

The header area contains a static text, such as Purchase Order, and an optional dynamic text, such as 1005-3345. In this way, each card header can show different content. Clicking on the header area of the card opens the detailed view of the object in the corresponding parent app. If the content area of a card cannot display all the information, a scrollbar appears on the right. Only the footer area of the quick view card can provide actions. The footer bar is a specific feature of the card anatomy for quick view cards.

Card anatomy of the quick view card
Card anatomy of the quick view card
Quick view card for a contact
Quick view card for a contact
Quick view card for a product
Quick view card for a product
Quick view card for a purchase order
Quick view card for a purchase order

Actions on Cards

Only quick view cards within an object stream can have actions in the footer area. The overflow toolbar manages how the actions are displayed. All actions are right-aligned. Any actions that don’t fit into the available space move into the overflow action sheet, represented by the ellipsis ( ). A maximum of six actions are allowed in the footer area. Only offer actions the user really needs in the specific context.

Footer area with additional actions in the overflow
Footer area with additional actions in the overflow

There are two possible types of action: navigation and function import. Any combination of navigation and function import actions is allowed. Error or confirmation messages are displayed directly on the overview page. Always overwrite the predefined default text for errors in a message box: Formulate your message in plain language (without code), describe the issue precisely, and suggest a constructive solution.

Type: Navigation

Navigation is “intent-based” and takes the user to a different SAP Fiori app that specializes in executing an action. Navigation actions are always multi-click (meaning they can be repeated over and over). The destination screen opens in the same browser window, and any error or task confirmation messages are handled by the supporting application, not the overview page.

Type: Function Import

Function imports are custom OData service operations for actions. These actions are handled by the overview page, rather than by another SAP Fiori app. The interaction depends on whether or not the action requires user input:

  • If the action requires additional user input, the input parameters are handled directly on the overview screen without further navigation. A dialog appears on top of the card, allowing the user to enter data or make a selection. An example of additional input might be the rejection reason for a “Reject” action.
  • If the action has no input parameters, the action request is sent immediately. Once the action has been completed, the card disappears from the object stream.

Action on Phone

If an action on a card requires an input dialog box, use a full screen dialog on smartphones.

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

Overview Page – List Card

Lists with Different Flavors

List cards display a set of items or links in a list format. The overview page supports three types of list card: list card, bar chart list card, and link list card. You can also show icons and images. For general information on cards, see Cards.

List Card

List cards are a type of object group card, and display a set of items in a vertical list. List cards use the sap.m.List container in the content area.

Navigation

Clicking the header area of a list card opens the parent application, which uses the same filter as the annotated card, and shows a list of all the objects returned for the result set. The counter indicates how many items are showing on the card in relation to the total number of relevant items: [Items on Card] of [Total Items], as in 5 of 40.

Clicking a list item (row) on the card opens the detail view for that specific item in the same parent application. Only aggregate list items in exceptional cases.

Because the header area and line items are based on the same result set, they must always link to the same target application. You can also integrate a view switch inside the content area of a card.

List Item Types

Two different list item types are available:

  • The standard list item always shows 3 pieces of information and inherits the properties of the SAPUI5 control sap.m.StandardListItem.
    You can also show an (optional) icon or image on the left.
  • The extended list item can show up to 6 pieces of information and inherits the properties of the SAPUI5 control sap.m.ObjectListItem.

In addition, you can display the data on the right-hand side in semantic colors.

You can only use one type of list item on any given card.

Standard list item
Standard list item
Extended list item
Extended list item

Size of a List Card

The fixed card layout defines a specific size. The height of list cards can vary, depending on the number of text fields. Show no more than five standard list items and no more than three extended list items on one card. To see the full result set, the user needs to navigate to the parent app.

In the resizable card layout, users can see more content/insights by resizing the cards.

Bar Chart List Card

Bar chart list cards are a type of object group card, and display a set of items in a vertical list. Unlike list cards, bar chart list cards are embedded in another component: the comparison micro chart. This allows you to display negative values and use semantic colors.

Navigation

Clicking the header area of a list card opens the parent application, which uses the same filter as the annotated card, and shows a list of all the objects returned for the result set. The counter indicates how many items are showing on the card in relation to the total number of relevant items: [Items on Card] of [Total Items], as in 5 of 35.

Clicking a list item (row) on the card opens the detail view for that specific item in the same parent application. Only aggregate list items in exceptional cases.

Because the header area and line items are based on the same result set, they must always link to the same target application. You can also integrate a view switch inside the content area of a card.

Bar Chart List Item Types

Three different list item types are available:

  • The standard list item always shows 3 pieces of information.
  • The condensed list item can show up to 4 pieces of information.
  • The extended list item can show up to 6 pieces of information.

You can only use one type of list item on any given card.

Standard list item
Standard list item
Condensed list item
Condensed list item
Extended list item
Extended list item

Size of a Bar Chart List Card

The fixed card layout defines a specific size. The height can vary, depending on the number of text fields. Show no more than five standard/condensed list items and no more than three extended list items on one card. To see the full result set, the user needs to navigate to the parent app.

In the resizable card layout, users can see more content/insights by resizing the cards.

Link List Card

Link list cards allow you to display a collection of links or images that can reference both internal and external targets. Links and images are handled as two separate variants: list and image.

Variant Type: List

The list variant shows a collection of links that can navigate to a target or open a popover with additional information. You can also show an optional subtitle below the link with a description or additional information. The link text and subtitle are each limited to one line.

You can display an icon or image before each link. For example, you might want to include app icons for set of links to recently-used apps, or images for a list of recent contacts. Use icons and images consistently:

  • If you opt to use icons, show an icon before every link.
  • If you include images, use a placeholder for images that are not available.

Variant Type: Image

Overview page - Link list card (image variant)
Overview page - Link list card (image variant)

The image variant uses the sap.m.Carousel control to display one or more images. If the carousel contains only one image, the Previous and Next icons and the paging indicator are not visible. The link and an optional subtitle are displayed above the carousel. The link text and subtitle are each limited to one line.

Size of a Link List Card

In the fixed card layout, link list cards with the variant type “list” can have a maximum of 6 links. There is no maximum limit for cards with the variant type “image”.

In the resizable card layout, there is no maximum limit. Users can see more links by resizing the cards.

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

When to Use Which Floorplan

Choosing the right floorplan is not always easy. Roughly speaking, SAP Fiori offers floorplans that:

  • Provide an overview of information and tasks: overview page
  • List several objects: list report, analytical list report, worklist
  • Manage an object: object page, wizard
  • Allow navigation to work on one object: initial page

For a quick check of which floorplan to use, see below. For more information, go to the respective floorplan article. 

Information
Except for the wizard and initial page, all floorplans are available as SAP Fiori elements.

Overview Page


Floorplan

Use Case

Key Features

Thumbnail


  • Get an overview of the key tasks and information needed for a specific user role
  • React to information
  • Filter bar, including a search field
  • Content from different apps is shown on one page
  • Content can be displayed in different formats (such as charts, lists, or tables)

List Floorplans


Floorplan

Use Case

Key Features

Thumbnail


  • Find objects from a large data set
  • Act on the relevant objects
  • Filter bar, including a search field
  • Objects can be shown in a table or in a chart. Switching between the table and chart is possible.
  • Predefined views on the objects are possible, for example All, Open, Assigned. Switching between the views is possible.

  • Extract knowledge or insights from objects by using business intelligence features (drilldown for root cause analysis, slice and dice)
  • Act on the relevant objects
  • Visual filter bar, where filters are represented as charts
  • Switch to the non-visual filter bar without search field is possible
  • Data is represented in a chart and a table on one page
  • Users can see the impact of their action on  a global key performance indicator (KPI)

  • Process a predefined set of objects
  • Filter bar not needed
  • Predefined views on the items are possible, for example All, To Be Assigned, To Be Ordered

Object Floorplans


Floorplan

Use Case

Key Features

Thumbnail


  • Display, create, or edit an object
  • Get an overview of an object and interact with different parts of the object
  • Flexible header
  • Anchor or tab navigation to access the content
  • Flexible layout for the content

  • Create or edit an object
  • Guide the user through a series of steps
  • Task is rather long or unfamiliar for users
  • Minimum of 3 steps, maximum of 8 steps
  • Summary that shows the data for all steps

  • Navigate to one object and work on this object
  • Single input field with value help

Layouts and Floorplans

This article provides an overview of how SAP Fiori layouts and floorplans are used to build application pages.

Page Layouts and Floorplans

The standard page layout in SAP Fiori is the dynamic page, which is made up of a header, content area, and footer toolbar.

Floorplans are usually based on the dynamic page. Floorplans serve specific use cases and therefore come with a specific combination of UI elements in the header, content area, and footer toolbar.

The following picture shows the composition of the dynamic page and floorplans that build on it.

Page - Dynamic page - Floorplan
Page - Dynamic page - Floorplan

Full Screen vs. Flexible Column Layout

You can decide whether your app uses a full screen layout (one page at a time) or a flexible column layout for list-detail relationships (up to three pages side by side). The flexible column layout enables fast and fluid navigation between pages.

Full screen layout
Full screen layout
Flexible column layout
Flexible column layout

More Information

Information
To control and optimize the left and right spacing between header and content area and between UI elements (such as tables and forms), we offer a responsive spacing system.

Additional Layouts

The following layouts have been designed for special use cases:

Layout Use Case
Comparison Allows users to select items from a list and display them side-by-side. This makes it easier to compare the characteristics of multiple items.  
Multi Instance Allows users to open multiple documents in a tabular view. After selecting items from a list, the user opens them in a tab container.

Related Links

The following frameworks are also used to design pages:

Framework Characteristics
SAP Fiori elements Generates the user interface automatically, thus making app development more efficient, available for nearly all floorplans (besides Wizard and Initial Page)
Analysis Path Framework For creating interactive, chart-oriented analytical drilldown apps by configuration
SAP Smart Business For viewing and analyzing the data for one key performance indicator (KPI)

Object Page Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the object page header, content area, and footer bar in the SAP Fiori Elements section.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan
Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.

List report floorplan
  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a code identified by a scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Object marker (optional)
  5. Header toolbar with global actions (optional)
  6. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
  7. Header content (optional)
Object page with the expanded dynamic page header
Object page with the expanded dynamic page header
Object page with the collapsed dynamic page header
Object page with the collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer text (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Progress indicator
  4. Footer text (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use the rating indicator facet to display a single rating value or an aggregated rating (such as an average rating for a product). The facet structure is slightly different in each case.

Single rating value:

The single rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary texts
  3. Rating indicator
Rating indicator facet - Single rating
Rating indicator facet - Single rating

Aggregated rating:

The aggregated rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer text (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.
Rating indicator facet - Aggregated rating
Rating indicator facet - Aggregated rating
Guidelines
We recommend the following property settings when using the rating indicator in header facets:

  • Show 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

Navigation Bar (optional)

If your content can be shown in just one section, use the dynamic page layout. In the dynamic page layout with one section, the header area can’t be edited when the page is in edit mode.

If you need to structure your content in different sections, use the object page layout. You can only have several sections in the object page layout. When you use the object page layout, you can also make the header editable when the page is in edit mode. However, try to avoid having an editable header and move the content from the header to the sections instead.

If you need only one section, but require an editable header, use the object page layout. An object page with only one section doesn’t have any anchor bars. However, a temporary anchor bar and section for editing the header content should be added when edit mode is triggered.

If the content is complex there are two ways to structure it:

  • Anchor bar navigation (default)
  • Tab bar navigation

Anchor Bar Navigation

The anchor bar consists of a series of links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link navigates to the respective section. The anchor bar remains visible when the user scrolls down the page.

Use anchor bar navigation when the content belongs together but users might want to jump to specific parts directly.

For more information, see Anchor Bar Navigation.

Tab Bar Navigation

The tabs are a series of links to subpages, arranged horizontally at the top of the page. Clicking a link navigates to the respective subpage. The tabs remain visible when the user scrolls down the page.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

For more information, see Tab Bar Navigation.

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking on these links directs the user to specific sections of the page. The anchor links remain visible when the user scrolls down the page.

Object page – Anchor bar navigation
Object page – Anchor bar navigation
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu
Developer Hint
Make sure that the UpperCaseAnchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness
Developer Hint
For non-SAP Fiori element object pages only:

The content of the dynamic page header, navigation bar, (sub)section titles, and subsections must be vertically aligned. To achieve this, apply the sapUxAPObjectPageSubSectionAlignContent CSS class to the content of the subsections and set the width property to “auto”.

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns / 6 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. To improve access to the different forms we recommend always using one subsection per form, rather than placing multiple forms into one subsection.

If you need to perform any actions, you can use the subsection header. If you need action at group level, you can use a group header. To prevent confusion, we recommend inserting actions only in one place, depending on the use case.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Block base
Object page – Block base

Tables

If a section contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section title acts as the table title.

If a subsection contains only one table and no other content, hide the title of the subsection to avoid having duplicate titles for the table and reduce vertical space. In this case, the table title acts as the subsection title.

If you want to embed analytical tables, grid tables, or tree tables in an object page, use an object page with tabs, and place each table in its own tab. Because the analytical, grid, and tree tables have their own vertical scroll bars, they are not allowed within scrollable object pages. If you are using a scrollable object page without tabs, use a responsive table instead, and offer navigation to another page with the respective table type.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 400 Tab navigation
More than 400 or tab approach is unsuitable Navigation to list report

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but less than 400, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to Another Page

For tables with more than 400 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend only showing a preview of 10 items, but not more than 20. This can be achieved using predefined filters and/or by sorting the table. If necessary, you can also set a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate page, such as a list report, subobject page, or dynamic page with the respective table type. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used in edit and create mode for closing and finalizing actions, such as Save, Post, Accept, Reject, and Activate.

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Initial Focus

When the object page is loaded, set the initial focus as follows:

  • If the object page is in display mode, set the focus on the first section.
  • If the object page is in edit mode, set the focus on the first empty mandatory field.
  • If there are no mandatory fields, set the focus on the first editable element or first action.

Edit

In edit mode, the object page can contain a mixture of editable and read-only content.

If the user needs to edit elements in the header, a header section is added in the content area to enable editing.

Use the same content layout for both display and edit mode. Content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Object Handling (Create, Edit, Delete).

Editing the Header

The object page header can be edited in two ways:

  • Global edit
  • Partial edit

Global Edit

The header can be edited when the entire object page is in edit mode.

Because the header snaps on scroll, there are no editable forms in the header itself. Instead, a temporary header section is added before the other sections of the page. The title bar information and all editable fields from the header container move from the header to the new editable header section. Any non-editable content displays as read-only in the new header section. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts).

If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears.

If your object page has no anchor bar in display mode, and the header section has only a few editable fields, do not add navigation in edit mode.

The header container in edit mode may contain independent facets that are not included in the header content in display mode. They provide information to assist editing.

If the entire object page is in edit mode, but there is no editable information in the header, no editable header section is added.

Any changes made to the header are not reflected until the user saves them.

Partial Edit

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing Ctrl+Enter has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Edit Actions in Display Mode (freestyle apps only)

The standard flow is to switch to edit mode for edit and delete actions. However, in some cases, it can be helpful to offer certain edit actions in display mode as well.

You can offer edit actions in display mode if:

  • Switching to edit mode would inconvenience the user. This is especially true if the change is small and quick, and switching to edit mode would take longer than making the change.
  • The change does not impact a critical flow or result in technical inconsistencies.

Examples: Adding a comment, uploading a file

Do not offer edit actions in display mode if:

  • The change has a critical impact on business data/follow-on processes.
  • The change requires a finalizing action.

Example: Deleting a sales order item would affect the entire sales order and dependent data.

When offering delete actions in display mode, always show a delete confirmation dialog. For more information, see:

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover or clicks the  (Close) icon.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, display the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Loading Behaviour

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If loading takes a long time, a busy indicator is shown on top of the section or item until the content is loaded and visible.

Busy indicators for sections still loading
Busy indicators for sections still loading

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size M
Object page – Size M
Object page – Size L
Object page – Size L

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information, see:

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

List Report Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the list report header and content area in the SAP Fiori Elements section.

Intro

With a list report, users can view and work with a large set of items. This floorplan offers powerful features for finding and acting on relevant items. It is often used as an entry point for navigating to the item details, which are usually shown on an object page.

List report
List report

When to Use

Use the list report floorplan if:

  • Users need to find and act on relevant items within a large set of items by searching, filtering, sorting, and grouping.
  • You want to let users display the whole dataset using different visualizations (for example, as a table or as a chart), but no interactions are required between these visualizations. An example use case might be reporting.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. You want to let users switch views using tabs, segmented buttons, or a select control.
  • Drilldown is rarely or never used, or is only available via navigation to another page, and not as free or flexible drilldown within the page itself.
  • Users work on different kinds of items.

Do not use the list report floorplan if:

  • Users need to see or edit one item with all its details. Use the object page floorplan instead.
  • Users need to find one specific item, and the item or an identifying data point is known to the user (such as a code). Use the initial page floorplan instead.
  • Users need to work through a comparably small set of items, one by one. Use the worklist floorplan instead.
  • Users need to extract knowledge or insights from data, either to better understand the current situation, or to identify the root cause for a certain value.  Use the analytical list page instead.
  • Charts are not only used for visualization. Users need to switch between integrated chart and table views (hybrid view). Use the analytical list page instead.
  • Users need to see the impact of their action on a KPI. Use the analytical list page instead.
  • Users need to see not only the result, but also the impact of their filter settings directly in a chart representation. Use the analytical list page instead.

Components

The list report is a full screen floorplan. It can also be used in flexible column layout, where it is usually displayed in the first column.

The list report page is based on the dynamic page, and is divided into a header area and a content area, as defined by the dynamic page layout.

Schematic visualization of a list report
Schematic visualization of a list report
  • The dynamic page header (1) contains the header title (2) and the expandable/collapsible header content (5).
    • The header title (2) is part of the header area and should display a title or variant (3) for the whole page (mandatory), filter information (if the header is collapsed), and a header toolbar (4) with global actions, such as Share (optional).
    • The header content (5) is used to display the filter bar or the smart filter bar (mandatory).
    • The header features (6) allow users to expand/collapse the header (6a) (mandatory) and pin/unpin the header area (6b).
  • The content area (7) is used to display:
    • A table/chart title, textual icon tab bar, or select (8) (optional)
    • One table/chart toolbar (9) per tab
    • One or multiple tables and/or charts (10). You can use any kind of table. If you use a chart, you can display the chart on its own (without a table) or as an additional view for an existing table (switchable).
  • The footer toolbar (11): If needed, use a footer toolbar to display the messaging button and finalizing actions.

Behavior and Interaction

Initial Focus

When the list report is loaded, set the initial focus as follows:

  • If the header is expanded, set the focus on the first filter field (live update mode) or on the Go button (manual update mode).
  • If the header contains empty mandatory fields, set the focus on the first empty mandatory field.
  • If the header is collapsed, set the focus on the first table row.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see:

Header Title

Variant Management

Variant management is optional. If you use variants, we recommend using one variant management control for the whole page. Use the variants to save and restore all settings for filters, selected tabs, all tables, and all charts.

In some specific cases, you might need to add a second variant at control level. This can be the case when the user needs to change the view settings of a list independently of the page filters. However, the default is to use a single variant management control for the entire page.

Users can choose a default variant, which is selected every time the app is started.

Allow users to choose whether a variant should be executed automatically as soon as it has been selected. Not executing a variant automatically allows the user to add or remove filters before the dataset is updated. Provide this option only if the filter bar is in manual update mode. For live updates, this option is not required.

If variant management is not needed, show a title that describes the current view instead.

Variant management
Variant management

Filter Information

Display the filter information only if the header content is collapsed. Use the format Filtered By (x): followed by a comma-separated list of the filters currently applied. “x” stands for the number of applied filters.

Show up to 5 filters. If more filters have been applied, show an ellipsis (“…”) at the end of the string.

If no filters have been applied, show Not filtered.

Filter information
Filter information

Header Toolbar

Use the header toolbar for non-finalizing global actions, such as Share. Share opens an action sheet, which features Save as Tile (if the SAP Fiori launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

If the content area contains a grid table, an analytical table, a tree table, or any other content with its own scrollbar, display a Show Filters / Hide Filters button for expanding and collapsing the header content.

In addition, offer any other global, non-finalizing actions needed. Hide actions that cannot be used at all (for example, because of access rights). To save space on the header toolbar, group similar actions using a menu button.
For more information on global actions, see the guidelines for the header toolbar.

Header toolbar
Header toolbar

Header Content

Search

The filter bar can contain a search field (optional). If you use the search field, the content shows only items that match both the search terms and the filter criteria.

The search generally searches across all available columns of the table, regardless of whether or not they are visible. In rare cases, some columns might not be included due to technical constraints. If the search does not apply to multiple columns, do not offer the search field.

Filters

Filters are applied to all content, including all tables and charts. To improve performance, consider providing mandatory filter fields and/or default settings for filters.

If the list report loads automatically when the page loads, ensure that mandatory filter fields always have default values to avoid error messages.

The filter bar offers two different update modes:

  • The live update mode (recommended) triggers filtering immediately whenever a filter setting is changed. If the search field is used, the search is triggered together with all filter settings with every letter typed.
  • The manual update mode displays a Go button, which triggers the filtering. If the search field is used, the search is executed together with all filters as soon as the Go button is pressed.
    Make sure that all tables and charts in the content area are in a busy state until the new data is available. Also ensure that the content is grayed out as soon as the filter settings do not correspond to the content shown (any table, property: showOverlay). This is usually the case if the content is not yet updated and the Go button needs to be triggered.

Use the manual update mode only if you run into performance problems while loading the table data.

Regardless of the update mode, make sure that the filter bar and the visible content match: The filter bar must always describe the items that are shown in the content area.

Filter bar
Filter bar

The header content collapses when the user scrolls down the page (except for desktop-centric tables), and expands again when the user scrolls back up (“snap on scroll”). Users can pin the header content to keep it visible. For more information, see Dynamic Page – Expand/Collapse Header.

Exception: The “Snap on scroll” and “pin header” features are not provided if the main content area contains desktop-centric tables (grid tablesanalytical tables, tree tables) or any other content with its own scrollbar. In these cases, users need to expand and collapse the header content manually using the Show Filters / Hide Filters button.

When starting the application, expand the header content if no query was fired (and the table is therefore empty). Otherwise, collapse the header content.

Content Area

General Layout

There are three basic list report layouts: simple content, multiple views, and multiple content. These are described in more detail below.

Simple Content

In most cases, the content consists of just a table toolbar and a table. If needed, provide an option to switch between the table and a corresponding chart view.

Multiple Views

For more complex scenarios, provide multiple views of the same content. Multiple views involve one or more of the following:

  • Showing the same table, but with different columns.
  • Showing the same table in different pre-filtered states. These states are usually based on a status column, for example, items that are Open, In Process, or Closed. Make sure that the corresponding filter is not offered on the filter bar.
  • Differentiating between the items displayed in the content in some other fundamental way.

There are two options for switching between different views:

The first option is to replace the table title with a content switch. Use this approach if all views share the same sort and group states, as well as the same actions.

The content switch can be:

If you have both a table title and a content switch, display the table title first, then the content switch. Place both on the left side of the table toolbar. Since the content switch is placed on the table toolbar, the same actions are shown for all views.

If you are using the content switch together with charts, ensure that the chart also reacts to the content switch. This can be done by:

  • Filtering the data that influences the display of the chart
  • Changing the measures and/or dimensions (for example, View by Country/RegionView by Customer, …)

The second option for switching views is to show each view in a tab container of the icon tab bar. Use this approach if all views show different states of the same data (sort states, group states, as well as item selection). Using tabs also allows you to offer different actions on the table toolbar for each view.

Table toolbar with a segmented button for up to three different views
Table toolbar with a segmented button for up to three different views
Table toolbar with a select control for more than three views
Table toolbar with a select control for more than three views

Multiple Content

To support even more complex use cases, a list report floorplan can also contain multiple tables that display different kinds of objects. The filter bar settings are applied to all of these tables in parallel. For example, a customer overview list report might display different tables for invoices, deliveries, and overdue payments. All of these tables can be filtered for a specific customer and a specific date.

Display each table inside a tab container of an icon tab bar. This also allows you to offer different actions on the table toolbar for each table.

List report floorplan with multiple tables placed in multiple tabs
List report floorplan with multiple tables placed in multiple tabs

Icon Tab Bar

Use the text-only version of the icon tab bar. Display the number of items shown in the respective table on each tab (sap.m.IconTabFilter, property: count).

Icon tab bar
Icon tab bar

Table Toolbar

Display at least a table title (ideally with an item count) and icon-only buttons for sorting, grouping, and column settings. Do not offer additional filter settings on the table toolbar. For sort and group, show a view settings dialog with just the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

If alternative visualizations are provided (such as charts), offer an additional view switch on the table toolbar. Triggering the switch replaces the current visualization with another one. If a table and chart need to be shown in parallel, offer a switch for the combined view.

In rare cases, you can offer an additional layout variant on the table toolbar. The layout variant stores view settings like the column order and the sort and group settings. If you use a layout variant, do not store the table settings in the filter variant. Offer this additional layout variant only if there is a strong use case for switching filter and layout variants independently. If there is no strong use case, or you are unsure, do not use a layout variant at all.

Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Toolbar with a switch between table and chart visualizations
Toolbar with a switch between table and chart visualizations
Toolbar with a table title and layout variant
Toolbar with a table title and layout variant
Toolbar with additional actions
Toolbar with additional actions

In addition, offer any other actions needed. Disable selection-dependent actions (such as Delete) if no items are selected, or if the action cannot be applied to the selected items. Always enable selection-independent actions (such as Add). To save space on the table toolbar, group similar actions using a menu button. For example:

  • Release and Release with Conditions
  • Add Contact and Replace Contact
  • Edit Account and Edit Title

For more information on table/chart actions, see the guidelines for the table toolbar, the chart toolbar, and for managing objects.

Do
Table without the filter icon
Table without the filter icon
Don't
Table with a filter option
Table with a filter option

Table

If there are no items to display, use the “no data” text of the corresponding table. Explain why the table is empty, and what the user needs to do to display items.

Examples:

  • After starting the app, no filters are applied:
    To start, set the relevant filters.
  • The filter was executed, but no items were found. This can also happen if the list report was opened by a related app, and the filter criteria were transferred automatically:
    No data found. Try adjusting the filter settings.

If you are using a responsive table, always enable “scroll to load” behavior.

Sticky Behavior

The icon tab bar, table/chart toolbar, and column headers of all table types must be “sticky”. This means that they stay fixed on top when the user scrolls down the page.

Navigation

There are three types of navigation at item level in the list report floorplan:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a list, tree, or responsive table, clicking the line item triggers the navigation.
    In a grid table, analytical table, or tree table, clicking the navigation indicator triggers the navigation.
    Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use this only if the navigation indicator is being used for a different target.
    Only show navigation indicators for target pages the user is authorized to access.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually another list report. In this case, use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting.
    In charts, offer the drilldown navigation link in the popover for the chart element. In this case, also navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains cross-references to other entities, such as people or business objects, use a link to display the corresponding data point in the table. Triggering the link opens a quick view. Typically, the quick view displays basic details of the referenced object and a navigation link to another page (usually an object page) or another app that shows the object details.

Working Modes

When the user edits a list item in a filtered list, the changed item might no longer match the filter criteria. For this use case, there are two alternative working modes:

  • Worklist mode

    Users want to see a direct system reaction to their changes. Items that don’t match the current filters
    vanish immediately. This mode applies to about 80% of all use cases.
  • Continuous working mode

    The user still needs the edited item, even though it no longer matches the filter criteria. The item stays in the list until the next filtering process is triggered. The item is marked, and a system message informs the user about the filter mismatch. This mode applies to about 20% of all use cases.

The app developer can choose the appropriate working mode for the app use case.

Footer Toolbar

Use the footer toolbar to display the messaging button and finalizing actions. Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Always show the footer toolbar in edit mode.

Hide actions that cannot be used at all (for example, if the user doesn’t have authorization). To save space on the footer toolbar, group similar actions using a menu button.

For more information on finalizing actions, see the guidelines for the footer toolbar.

Footer toolbar
Footer toolbar

Actions

Places for actions in the list report
Places for actions in the list report

(1) Global actions in the header toolbar
(2) Table actions in the table toolbar
(3) Line item actions
(4) Finalizing actions in the footer toolbar

1. Global Actions

Place actions that affect the entire page in the header toolbar in the header title (1). These include the following standard actions:

Hide actions that cannot be used at all (for example, because the user has no authorization). To save space on the header toolbar, group similar actions using a menu button.

Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information on global actions, see the guidelines for the header toolbar.

2. Table/Chart Actions

Place actions that affect the content of a table or chart in the table toolbar (2).

Information
When you use the list, tree, or responsive table, actions on the table toolbar move up out of the visible screen area when the user scrolls down.

If you are using an icon tab bar, be aware that each tab contains its own table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available (such as Create for new objects). Other actions are only relevant if items have been selected (for example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item).

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions when no items have been selected.
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information, also see UI Element States – Control States.

Partial Processing

Enable the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide a sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

Add/Create Items Using a Dialog

You can let users add or create new items at list report level using a dialog. This approach is recommended for cases where there are fewer than 8 required fields. Display the action in the table toolbar.

You can use this option for both draft and non-draft scenarios.

More Information

For more information on table and chart actions, see the guidelines for the table toolbar, chart toolbar, and for managing objects.

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this only for specific, frequently used tasks (3). If the same action can also be applied to several items at once, feel free to also place it on the table toolbar. Nevertheless, if you do so, reconsider whether you really need to offer the action at line item level. Examples of line item actions include:

  • Start/Stop (a batch job)
  • Approve (an item)
  • Assign (an item)

Do not disable line item actions. If an action cannot be used, hide it. This can be the case if the user has no authorization or the line item is in the wrong state.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar (4).

Examples:

  • Save
  • Cancel
  • Submit

Please be aware: Even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information on finalizing actions, see the guidelines for the footer toolbar.

Responsiveness

In general, the list report floorplan is responsive. However, there are exceptions if the following controls are used:

  • Grid table, analytical table: Supported on desktop and tablet devices only. On smartphones, replace these tables with something else, such as a responsive table or a list. In rare cases, displaying only a chart on smartphones might also suffice.
  • Tree table: Supported on desktop and tablet devices only. For smartphones, there is no equivalent alternative. In some cases, a tree, the category navigation pattern, or a chart might work.
  • Smart table: The smart table is a wrapper around the different existing table controls. If a grid table, analytical table, or tree table is used inside the smart table, you will run into the issues mentioned above. On a smartphone, you can use a responsive table inside the smart table. For the tree table, you need to replace the smart table as described above.

For more details, see the respective guideline articles.

List report - Size L
List report - Size L
List report - Size M
List report - Size M
List report - Size S
List report - Size S

Examples

The examples below show variants of the list report with the most commonly-used controls. You can also see the manual update mode (with a “Go” button) and the live update mode (no “Go” button).

Top Tips

  • Avoid loading list report page without any data, even if there are no mandatory filters.
  • Use only one key identifier in the table.
  • If you are using the icon tab bar, place it beneath the filters.
  • In the icon tab bar, use text labels only (without icons).
  • Choose selection controls that best fit your use case.
  • Make sure that columns in the table are aligned correctly.
  • Ensure that mandatory filter fields always have default values.
  • Avoid using variant management for tables. Use the page variant instead.
  • Always enable actions like Add, Create or Edit. Once Edit is triggered, replace it with Save and Cancel.
  • Never place finalizing actions in the header toolbar, even if they affect the whole page.
  • When using the icon tab bar, be aware that each tab contains its own table toolbar.

 

Related Links

Elements and Controls

Analytical List Page

Information
This floorplan is implemented as an SAP Fiori Element.

Intro

Analytical list page
Analytical list page

The analytical list page (ALP) offers a unique way to analyze data step by step from different perspectives, to investigate a root cause through drilldown, and to act on transactional content. All this can be done seamlessly within one page. The purpose of the analytical list page is to identify interesting areas within datasets or significant single instances using data visualization and business intelligence.

Visualizations help users to recognize facts and situations, and reduce the number of interaction steps needed to gain insights or to identify significant single instances. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

The main target group are users who work on transactional content. They benefit from fully transparent business object data and direct access to business actions. In addition, they have access to analytical views and functions without having to switch between systems. These include KPIs, a visual filter where filter values are enriched by measures and visualizations, and a combined table/chart view with drill-in capabilities (hybrid view). Users can interact with the chart to dig deep into the data. The visualization enables them to identify spikes, deviations and abnormalities more quickly, and to take appropriate action right away.

Usage

Use the analytical list page if:

  • Users need to extract key information to understand the current situation or identify a root cause. The way the data is presented is crucial for giving them the insights they need to take the right action.
  • Users need a way to analyze data step by step from different perspectives, investigate a root cause through drilldown, and act on transactional content within one page.
  • In addition to the filtered dataset, users need to see the impact of their filter settings in a chart (visual filter).
  • Users need to switch between integrated chart and table views (hybrid view).
  • Users need to see the impact of their action on a global key performance indicator (KPI).
  • Users need to find and act on relevant items out of a large set of items by searching, filtering, sorting, grouping, drilling down, and slicing and dicing.

Do not use the analytical list page if:

  • Drilldown is rarely used, not used at all, or is only needed after navigating to another page, rather than as free or flexible drilldown within the page itself. In this case, a list report might be sufficient for your use case.
  • Users need different visualizations for the entire dataset (for example, as a table or chart), but don’t need to work with both visualizations on the same page (for example, in a reporting scenario). In this case, a list report might be sufficient.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping, without using drilldown or “slice and dice”. In this case, consider using a list report.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. They want to be able to switch views using tabs, segmented buttons, or a select control. In this case, consider using a list report.
  • Users need to see or edit a single item with all its details. Use the object page floorplan instead.
  • Users need to find a specific item, and the item or an identifying data point is known to the user (such as a code). In this case, use the initial page floorplan.
  • Users need to work through a comparably small set of items, one by one. In this case, use the worklist floorplan.
  • Users have a trivial use case that does require the use of a chart, but that do not involve identifying a root cause, analyzing data, or drilldown. Instead, use a list report with a table/chart switch.

Structure

This section describes the basic layout of the analytical list page, as well as the different layout variants.

Basic Layout

The shell bar is above the analytical list page. The page itself uses the dynamic page layout and has two main areas:

  1. Analytical list page header:
    The page header is the filter area. Users can expand and collapse the header using the expand/collapse header icon.
  2. Analytical list page content area:
    The content area shows the content for the chosen filters.

All elements are described in more detail in the Components section below.

Analytical list page - Basic layout
Analytical list page - Basic layout

Layout Variants

The layout of the analytical list page is quite flexible. The display is determined by the header and content views chosen by the user.

The analytical list page always offers all of the above layout options. You cannot restrict the available views at app level. For example, you can’t offer only a visual filter (with no option to show the standard filter bar). Likewise, you can’t show only a table view (with no option to display the hybrid or chart views).

Responsiveness

The analytical list page is responsive, except for the global KPIs. Apps with one or more global KPIs are not supported on screen sizes smaller than size L (desktop).

Likewise, the analytical list page is only fully supported in the flexible column layout if no global KPIs are used. If you use the analytical list page with global KPIs within the flexible column layout, the column should have at least size M.

Size S

On size S, the analytical list page supports both the chart-only and table-only views. The table-only view supports only the responsive table. If no responsive table is available, the chart-only view is displayed without a view switch toggle.

Global KPIs are not supported on size S.

Size M

On size M, the analytical list page supports both the chart-only and table-only views. You can use a responsive table or analytical table in the table-only view.

Chart-only view - Size S
Chart-only view - Size S
Table-only view - Size S
Table-only view - Size S
Chart-only view - Size M
Chart-only view - Size M
Table-only view - Size M
Table-only view - Size M

Components

Analytical List Page Header

The page header can be expanded and collapsed on click. Different content is shown in the expanded and collapsed states. For more information about the basic behavior of the header, see Dynamic Page Header.

Collapsed Header

The collapsed page header contains the following elements:

Collapsed analytical list page header
Collapsed analytical list page header

Expanded Header

Initially when the app is launched the header is expanded by default. The expanded page header contains the following elements:

Expanded analytical list page header showing the visual filter bar
Expanded analytical list page header showing the visual filter bar
Expanded analytical page header showing compact filters in the filter bar
Expanded analytical page header showing compact filters in the filter bar

Analytical List Page Content Area

The analytical list page content area contains the following elements:

  • View switch (   |    |    )
  • Hybrid view: View with one chart, chart toolbar, one table, and a table toolbar
Hybrid view
Hybrid view
Chart-only view
Chart-only view
Table-only view
Table-only view

Analytical List Page Header

Variant Management

Variant management in the analytical list page allows users to save a page variant whenever there are changes in the underlying structures of the filter/content area. Variant management for the page is handled by the standard SAPUI5 page variant management.

Currently, the page variant captures the following states across the page:

  • Filter view switch state: Visual filter bar or filter bar
  • Filter set: The filters set in the visual filter bar and filter bar
  • Filter selections: Selected values in the visual filter bar and filter bar
  • Content view switch state: hybrid view  , chart-only view  , or table-only view  
  • Chart and table configurations, such as measures and dimensions used, sort order, or grouping
  • Chart drill-down state, based on the current selections (slice & dice)
  • Table entry switch state: Hide (  ) or Show  (  ) selected table records

Global KPI Tags and Cards

Use a global KPI tag (= global key performance indicator tag) if you would like to show a global KPI related to the task in hand. The global KPI value changes only if an action is executed on the transactional content. For example, the user needs to know the effect of releasing sales orders on a related global KPI, or the effect of posting an accounting document on certain financial global KPIs.

You can display a maximum of three global KPIs. Clicking a global KPI tag opens a global KPI card that displays more details on the KPI.

The global KPI tags and corresponding KPI cards are independent of the filter area. This means that global KPI tags do not react to filters set in the visual filter bar and filter bar.

A global KPI tag has four components:

  • Global KPI label
  • Global KPI value
  • Global KPI color and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator

Global KPI Label

The global KPI label is an abbreviation of the complete global KPI title. It is formed using the first three letters of the first three words of the global KPI title.
Examples: AMR for Actual Monthly Revenue, TAR for Total Advertising Revenue, or LPC for Landing Page Conversation Rates

If there is only one word in the global KPI title, the first three letters of the word are displayed. Example: CON for Contracts

If the global KPI title has only two words, only the first letters of these two words are displayed. Examples: AC for Actual Costs, SG for Sales Growth

KPI label abbreviation: AC
KPI label abbreviation: AC

Global KPI Value

The global KPI value is displayed using a semantic color and a scaling factor. Relative values are shown with a percentage sign and one decimal place.
Examples: 0.3%, 82.9%
Absolute values are shown without decimal places, a currency, or a unit of measure.
Examples: 2K, 75K, 30M, 14B

KPI values: 157.3M and 0.3%
KPI values: 157.3M and 0.3%

Global KPI Color and Criticality Indicator

The color of the global KPI value is based on the thresholds defined for the particular KPI in the annotation. The global KPI tag also uses a line to indicate the criticality. The color of the line is the same as that of the global KPI value.

KPI color and criticality indicator
KPI color and criticality indicator

Global KPI Card

Clicking the KPI tag opens the analytical card, which displays more information about the current value of the global KPI, the global KPI target, the deviation from the target, and how the global KPI has evolved over time.

Global KPI card
Global KPI card

Filter Area: Visual Filter Bar and Filter Bar

The filter area allows users to filter the result set, which feeds the main content area. The analytical list page comes with two filter types: compact filters in the filter bar, and the visual filter bar. Always design both visual filters and compact filters (filter bar) for your app. We recommend setting the visual filter bar as the default, but this is no longer mandatory. You can opt to use the (compact) filter bar as the default if your app has the required parameter values, if your main use case involves date ranges, or if your users often need to combine multiple filters in different ways.

Currently, any visual filter configured in the visual filter bar must always be displayed as a compact filter in the filter bar as well. By contrast, a filter configured as a compact filter in the filter bar may or may not be configured for display as a visual filter. This means that it’s possible to have a smaller set of visual filters and a larger set of compact filters.

Both filter types supports two different modes: live update and manual update. Use the live update mode for both filter types as the default whenever possible. Apply the same mode to both filter types: the visual filter bar and the filter bar. For example, if you use the live update mode in the visual filter bar, you should also use the live update mode for the filter bar.

Visual filter bar
Visual filter bar
Filter bar
Filter bar

Filter Type Switch

Users can toggle between the compact filters    (filter bar) and    (visual filter bar) in the upper-right area of the page header. The filter type switch is a core feature of the analytical list page and is mandatory. The switch is only displayed when the page header is expanded. Once the header collapses, it disappears.

Filter type switch
Filter type switch

Carrying Forward Filter Selections

Visual Filter to Compact Filter

Any values selected in the visual filters are always carried forward to the corresponding compact filters.

Compact Filter to Visual Filter

Filter dimensions that are part of a visual filter are synced to the visual filter. If the dimension value(s) chosen in the compact filter are part of a visual filter, they are shown as selected chart dimensions in the visual filter (single or multiple selections).

Filter dimensions that are not part of the visual filter, parameter values, and interval-based dimensions are applied to the filter query and the content is refreshed.

To show complex conditions, click the link for the number of selected items at the top of the visual filter.

Visual Filter Bar

The visual filter bar combines measures or item counts with filter values. The visual filter bar becomes more powerful if you match measures to the filter dimension instead of just item counts. Use the visual filter bar if you would like to give the user a condensed overview of the data in the dataset. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

Chart Types in the Visual Filter Bar

Currently, the visual filter bar supports three interactive chart types:

These interactive charts are also referred to as visual filters.

Interactive Donut Chart

The interactive donut chart in the visual filter bar is used for non-time-related data (for example, categories) and displays only the top or bottom two values. The rest are aggregated into the “Other” section.

Interactive donut chart
Interactive donut chart
Interactive donut chart with semantic colors
Interactive donut chart with semantic colors

Interactive Line Chart

The interactive line chart is used exclusively for displaying time series data, and can show a maximum of six data points. Always show the first or last six data points (for example, last six days, last six months, first six days, and so on).

Interactive line chart
Interactive line chart
Interactive line chart with semantic colors
Interactive line chart with semantic colors

Interactive Bar Chart

The interactive bar chart can be used for non-time-related data (for example, categories) and has a maximum of three filter values. These filter values show the top three or bottom three entries.

Interactive bar chart
Interactive bar chart
Interactive bar chart with semantic colors
Interactive bar chart with semantic colors

Using Interactive Charts

The interactive charts come with the following features and rules:

  • Minimum number of interactive charts: Show at least three visual filters and try to use different chart types.
  • Filter title:
    • Use the following naming convention for the filter title, using title case:
      [Measure Name] by [Dimension Name] | [Scale Factor] [Unit of Measure].
      Examples:
      Project Costs by Project | K EUR
      Sales Volume by Commodity | M PC
    • For an item count, use the following naming convention for the filter title, using title case:
      Number of [Dimension] | [Scale Factor] [Unit of Measure].
      Examples:
      Number of Products | PC
      Number of Contracts by Month
    • Note that for some use cases, it might be appropriate to replace “Number” with a different expression. Bear in mind that the space for displaying the filter title is limited. If the measure and/or dimension names are longer than the predefined space, the text will be truncated.
Filter title with truncation
Filter title with truncation
Filter title without truncation
Filter title without truncation
  • Filter-to-filter dependencies: Ideally, the filters depend on each other. By selecting one or several chart data points, users can perform a quick analysis of the dataset.
    Examples: Supplier with the lowest supplier performance this year, product with the highest sales volume in March in the EMEA region
  • Adding additional filter values: All charts have a maximum number of filter values that can be displayed within the chart itself. More filter values can be selected using the value help or the select popover.
  • Selected values: Any data point or segment that is selected in the visual filter’s interactive charts will remain selected even when the user changes the measure, chart type, or sort order in any of the charts. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.
  • Semantic colouring: All interactive charts support semantic colors to indicate the criticality of filter values.
  • How to design a visual filter: To design a visual filter, choose a meaningful measure out of the dataset and match it to a filter dimension. If no measures or no meaningful measures are available, use an item count instead. Have a look at the visual filter bar article for more information.

Filter Dialog

In the filter dialog, the user can switch between the visual filter bar and the compact filters using a toggle button, and also manage the filters. For more about the standard filter dialog, see Filter Bar. Visual filters are explained in more detail below.

Filter Dialog for Visual Filters

The filter dialog is launched by clicking the Adapt Filters ([number of applied filters]) link in the page header area. In the filter dialog for visual filters, the user can choose which filter fields are shown in the visual filter bar, and make the following changes:

  • Add visual filters
  • Delete visual filters
  • Hide visual filters in the visual filter bar
  • Search for visual filters
  • Change the sort order  of each visual filter
  • Change the chart type   of each visual filter
  • Switch to other measures  in the visual filter display

Analytical List Page Content Area

The content area shows different visualizations of the selected data. In the hybrid view, users can interact with both the chart and table visualizations at the same time. In addition, the analytical list page supports a chart-only view and a table-only view. The analytical list page always comes with all three views. Offering additional views or even tabs would add too much complexity, and is neither supported nor recommended.

Check out the following sections for more details on the hybrid view, chart-only view, and table-only view.

Hybrid View

The hybrid view uses both chart and table visualizations at the same time. It enables users to analyze data step by step from different perspectives. Users can interact with both the chart and the table, and drill down through either the smart chart or table entries to investigate a root cause. They can also act directly on transactional content. In the initial view of the chart, visualize the most important aspects of the whole dataset in the chart.

Example: The view shows all the suppliers the user is responsible for, organized by value. By drilling down the material to the plant with the highest/lowest volume, the user can see if materials need to be shifted from one plant to another. The corresponding transactional data is shown in an analytical table below the chart, which might also offer an action for shifting the material.

Analytical list page - Hybrid view
Analytical list page - Hybrid view

Chart-Only View

The chart-only view enables users to analyze data step by step from different perspectives, and to investigate a root cause through drilldown, without direct access to transactional content. The smart chart control provides the chart visualization in the chart-only and hybrid views: it is used to display the dataset as a chart. The smart chart drilldown functionality provides a convenient way to analyze the dataset. In addition, the smart chart offers detailed information on the chart data and a breadcrumb that shows the drilldown path. Ensure that you show the most important aspects of the dataset in the chart.

This mode is perfect for applications with analytical data that can easily be represented visually using charts, but doesn’t need to be linked to the transactional dataset.

Analytical list page - Chart-only view
Analytical list page - Chart-only view

Table-Only View

The table view provides access to transactional content. The user can act on single or multiple objects, and navigate to the object details or to other applications.

Depending on the use case, you can opt to use either the analytical table or the responsive table.

Snapping or scrolling is not available for desktop-focused tables, such as the analytical table. Scrolling is only available when the responsive table is used. The pin is enabled by default. The table entries are loaded using lazy loading.

Users can apply filters at table level using the Settings button ( ). For analytical tables, filtering is also available at column level. For more information, see Analytical Table (ALV) – Filter.

Analytical list page - Table-only view
Analytical list page - Table-only view

Behavior and Interaction

The expand/collapse header and pin/unpin header features work as in the dynamic page.

Initial Focus

When the analytical list page is loaded, set the initial focus as follows:

  • If the compact filter is visible by default, set the focus on the first filter field (for live update mode) or on the Go button (for manual update mode).
  • If the header contains empty mandatory fields, set the focus on the first empty mandatory field.
  • If the visual filter bar is visible by default, set the focus on the first chart container.
  • If the header is collapsed (visual or compact filter), set the focus on the first chart data point or the first table row (depending on the selected view).

Open and View the Global KPI Card via the Global KPI Tag

Clicking a KPI tag opens the KPI card, which shows the details for the particular KPI.

Select Filters in the Visual Filter

Unlike micro charts, the visual filter charts are interactive. In live search mode, selecting a filter value triggers data filtering in the content area. Both single and multiple selection are supported.

To select a filter value, the user clicks on a value in the chart. The filter can be removed by either clicking on the value help link, or by clicking on the same value in the chart again. The user can select more filter values using the value help or select popover.

Any data point that is selected in a chart still remains selected when the user selects a data point in another chart. Filter values react on each other. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.

Switch Views: Hybrid, Chart-Only, and Table-Only

Users can switch between the hybrid view, chart-only view, and table-only view.

If the user selects values and then switches the view, the selection remains intact. See the table below for more details.

Switch Description
Hybrid view to table view Table selection remains intact
Hybrid view to chart view Chart selection remains intact
Chart view to hybrid view Chart selection remains intact; corresponding table selections are displayed
Table view to hybrid view Table selection remains intact

Show/Hide Table Entries in Hybrid View and Table View

The table toolbar for the analytical list page offers a Show   and Hide    table entries feature as a toggle switch in the hybrid and table views:

  • If the Show icon is active, the table shows all items. These include highlighted entries (where values are selected in the chart) and non-highlighted entries.
  • If the Hide icon is active, the table shows only items that are selected in the chart.

For example, if the user selects SAP’s Sales Revenue for 2012 as Customer in the chart, all records relating to SAP’s Sales Revenue for 2012 are highlighted (but not selected) in the table. Note that the record is still highlighted even if Customer not displayed as a column in the table. If the table rows are grouped, the entire grouping is highlighted, even if only one record within the grouped set is affected by the chart selection. All values that are not selected in the chart are “hidden” and are not shown in this table mode.

Guidelines

Show the filter dimension with one measure in the visual filter, not multiple measures

Filter dimensions in the compact filters (filter bar) have exactly one representation in the visual filter bar.
Do not show the same filter dimension with two or more different measures at the same time in the visual filter bar. The example shows the filter Dimension Year with two different measures Revenue and Quantity. Showing the filter dimensionYear twice is not in sync with the compact filter, where it is shown only once. Furthermore, matching between the two filter types will not work.

If the use case requires you to show a dimension with different measures, consider using an overview page instead.

Do
For each dimension display exactly one representation in the visual filter bar.
For each dimension display exactly one representation in the visual filter bar.
Don't
Do not use the same filter dimension with different measures
Do not use the same filter dimension with different measures

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Worklist Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see Worklist in the SAP Fiori Elements section.

Intro

A worklist displays a collection of items a user needs to process. Working through the list usually involves reviewing details of the items and taking action. In most cases, the user has to either complete a work item or delegate it.

The worklist is a versatile floorplan that offers three main variants: a simple worklist (plain page with a table), a worklist with tabs, and a worklist with one or more KPI tags. These variants are based on different user needs and use cases. For more details, see the options under Components.

Simple worklist
Simple worklist
Worklist with tabs
Worklist with tabs
Worklist with KPI
Worklist with KPI

When to Use

Use the worklist floorplan if:

  • Users have numerous work items and need to decide which ones to process first.
  • You want to give users a direct entry point for taking action on work items.
  • Users need to work with multiple views of the same content (for example, items that are “Open”, “In Process”, or “Completed”). You want to offer tabs for switching between views.

Do not use the worklist floorplan if:

  • The items you are showing are not work items.
  • You want to show large item lists, or combine different data visualizations (charts or tables). In this case, use the list report floorplan instead.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping. Use the list report floorplan instead.

Components

The worklist floorplan is based on the dynamic page layout and is divided into a header and the page content. The header has a header title, but no header content. As a result, the expand/collapse and pin features are not needed.

The worklist consists of the following areas:

  1. The header title containing:
  2. The content area displaying:
  3.  A footer toolbar (optional) including:

Header Title

Variant Management

Variant management is optional. If used, apply it to the whole page. Use the variants to save and restore all settings, including selected tabs, all tables, and all personalization settings.

If variant management is not needed, just show a title that describes the view.

Key performance indicator/ KPI

The key performance indicator (KPI) allows users to track the impact of their actions while processing the worklist. You can display one or more KPIs within the KPI container next to the page title to show the status/criticality of the tag.

Header Toolbar (Global Actions)

Use the header toolbar for global actions, such as Share. Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information, see Global Actions.

Content Area

Tab Bar

The tab bar is part of the page content container, and must be sticky.

In the worklist, the icon tab bar works as a filter on the content below. It enables users to call up work items in specific categories. This can help users to identify critical items more easily. Different tabs show different perspectives on the same dataset.

Guidelines

  • Display the number of items shown in the table on each tab (sap.m.IconTabFilter, property: count).
  • Only use icons if you need to display semantic colors on the icon tab bar. You can offer visual orientation by applying semantic colors to the icons for the different categories (for example, red for the Error tab).
  • Bear in mind that each tab in an icon tab bar contains its own table toolbar.

Table Toolbar

Display at least a table title (ideally with an item count) and, if needed, icon-only buttons for sorting, grouping, and column settings. For filter, sort, and group, show a view settings dialog with only the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

Table

In general, you can use any kind of table and list for the worklist floorplan in the content area. Nevertheless, we recommend using the responsive table. For more information, see Responsiveness.

If there are no items to display, use the “no data text” for the corresponding table. Explain why the table is empty, and what the user needs to do to display items. For more information and examples see: “No data” texts.

The most basic version of the worklist is the simple worklist: a plain page with a table.

Simple worklist without tabs
Simple worklist without tabs

Footer Toolbar

The footer toolbar is an optional component of the worklist floorplan. Only use it if finalizing actions for the whole page and/or the message popover are required. Keep in mind that the footer toolbar is only visible in edit mode. For more information, see the guidelines for the footer toolbar.

Guidelines
Follow the standard naming conventions for all objects, the object name, action buttons, and the title in the shell bar. For more information, see:

Behavior and Interaction

Initial Focus

When the worklist is loaded, set the initial focus as follows:

  • If the worklist contains only a table, set the focus on the first line item of the table.
  • If the worklist contains an icon tab bar, set the focus on the first tab.

Sticky Behavior

The tab bar, table toolbar, and column headers must all be “sticky”. This means that they stay fixed at the top when the user scrolls down the page. 

Table Navigation

The worklist floorplan supports three types of navigation at item level:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a listtree, or responsive table, clicking the line item triggers the navigation. In a grid tableanalytical table, or tree table, clicking the navigation indicator triggers the navigation. Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use it only if the navigation indicator points to a different target.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually a list report. Use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting. In charts, offer the drilldown navigation link in the popover for the chart element, and navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains a cross-reference to another entity, such as a person or business object, use a link to display the corresponding data point in the table. Triggering the link opens a quick view.

Actions

Action placement in the worklist
Action placement in the worklist

The worklist offers four locations for actions:

  1. Global actions in the header toolbar
  2. Table actions in the table toolbar
  3. Line item actions
  4. Finalizing actions in the footer toolbar
Guidelines

  • Hide actions that cannot be used. This can be the case if the user has no authorization or the line item has the wrong state.
  • To save space, group similar actions using a menu button. For example: 
    • Release and Release with Conditions
    • Add Contact and Replace Contact
    • Edit Account and Edit Title
  • If there is not enough space to show all actions, they are moved to an overflow menu, depending on their priority. For more information, see Action Placement. 

1. Global Actions

Place actions that affect the entire page in the header title within the header toolbar. Examples of global actions are EditDelete, or Share.
Actions in the header toolbar are always right-aligned. Emphasize the most important action and place it on the very left.

For more information, see Header Toolbar.

2. Table Actions

Place actions that affect the content of a table in the table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available, such as Create for new objects. Other actions are only relevant if items have been selected. For example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item.

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions (such as Delete) when no items or only unsuitable items have been selected .
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

For more information, see UI Element States – Control States.

Partial Processing

Allow the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

For more information on table and chart actions, see:

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this option only for specific, frequently-used tasks. If the same action can also be applied to several items at once, you can also place it on the table toolbar. However, if you do so, reconsider whether you really need to offer the action at line item level. For more information, see Actions in Table Rows.

Examples of line item actions include: Start/Stop (a batch job), Approve (an item) or Assign (an item).

Do not disable line item actions. If an action can’t be used, hide it.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar. Examples of finalizing actions include SaveCancel, and Submit.

Bear in mind that even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Guidelines
Often, users will need more information before they can take action. If this is the case, offer navigation to the work item details, and show all the relevant actions in the detail screen. Once the user has completed the task, the app should:

  • Return the user to the worklist
  • Remove the processed item from the list, or move it to a “completed” section
  • Confirm the user’s action with a message toast

Responsiveness

Responsiveness for the worklist follows the dynamic page layout. In general, you can use any kind of table and list for the worklist floorplan in the content area. To ensure that the worklist is fully responsive and runs on all devices, we recommend using the responsive table. Note that the floorplan is not fully responsive if the following controls are used:

  • Grid table and tree table: Supported on desktop and tablet devices only. Implement a fallback solution on smartphones.
  • Smart table: The smart table is a wrapper around the different existing table controls. On smartphones, you can use a responsive table inside the smart table. If you use a grid table inside the smart table, implement a fallback solution for smartphones, as above.

For more details, see the respective guideline articles.

Worklist floorplan - Size L/XL
Worklist floorplan - Size L/XL
Worklist floorplan - Size M
Worklist floorplan - Size M
Worklist floorplan - Size S
Worklist floorplan - Size S

Examples

Worklist floorplan - Size L/XL
Worklist floorplan - Size L/XL
Worklist floorplan - Size M
Worklist floorplan - Size M
Worklist floorplan - Size S
Worklist floorplan - Size S

Top Tips

General

  • Decide whether the worklist or the list report is the right floorplan for your needs: The focus of the worklist floorplan is on processing items. This differs from the list report floorplan, which focuses on finding and acting on relevant items from a large dataset.
  • Choose one of the three basic worklist variants, based on your use case and the user’s needs.

Header

  • Always display a title or offer variant management.

Content

  • We recommend using the responsive table for a fully responsive worklist.
  • In the table toolbar, display at least a table title (ideally with an item count). If needed, offer icon-only buttons for sorting, grouping, and column settings.
  • The tab bar, table toolbar, and column headers of all table types must all be sticky.

Footer Toolbar

  • If you are using the icon tab bar, remember that there is only one footer toolbar for all tabs.
  • Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Related Links

Elements and Controls

Implementation

When to Use Which Floorplan

Choosing the right floorplan is not always easy. Roughly speaking, SAP Fiori offers floorplans that:

  • Provide an overview of information and tasks: overview page
  • List several objects: list report, analytical list report, worklist
  • Manage an object: object page, wizard
  • Allow navigation to work on one object: initial page

For a quick check of which floorplan to use, see below. For more information, go to the respective floorplan article. 

Information
Except for the wizard and initial page, all floorplans are available as SAP Fiori elements.

Overview Page


Floorplan

Use Case

Key Features

Thumbnail


  • Get an overview of the key tasks and information needed for a specific user role
  • React to information
  • Filter bar, including a search field
  • Content from different apps is shown on one page
  • Content can be displayed in different formats (such as charts, lists, or tables)

List Floorplans


Floorplan

Use Case

Key Features

Thumbnail


  • Find objects from a large data set
  • Act on the relevant objects
  • Filter bar, including a search field
  • Objects can be shown in a table or in a chart. Switching between the table and chart is possible.
  • Predefined views on the objects are possible, for example All, Open, Assigned. Switching between the views is possible.

  • Extract knowledge or insights from objects by using business intelligence features (drilldown for root cause analysis, slice and dice)
  • Act on the relevant objects
  • Visual filter bar, where filters are represented as charts
  • Switch to the non-visual filter bar without search field is possible
  • Data is represented in a chart and a table on one page
  • Users can see the impact of their action on  a global key performance indicator (KPI)

  • Process a predefined set of objects
  • Filter bar not needed
  • Predefined views on the items are possible, for example All, To Be Assigned, To Be Ordered

Object Floorplans


Floorplan

Use Case

Key Features

Thumbnail


  • Display, create, or edit an object
  • Get an overview of an object and interact with different parts of the object
  • Flexible header
  • Anchor or tab navigation to access the content
  • Flexible layout for the content

  • Create or edit an object
  • Guide the user through a series of steps
  • Task is rather long or unfamiliar for users
  • Minimum of 3 steps, maximum of 8 steps
  • Summary that shows the data for all steps

  • Navigate to one object and work on this object
  • Single input field with value help

Object Page Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the object page header, content area, and footer bar in the SAP Fiori Elements section.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan
Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.

List report floorplan
  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a code identified by a scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Object marker (optional)
  5. Header toolbar with global actions (optional)
  6. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
  7. Header content (optional)
Object page with the expanded dynamic page header
Object page with the expanded dynamic page header
Object page with the collapsed dynamic page header
Object page with the collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer text (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Progress indicator
  4. Footer text (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use the rating indicator facet to display a single rating value or an aggregated rating (such as an average rating for a product). The facet structure is slightly different in each case.

Single rating value:

The single rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary texts
  3. Rating indicator
Rating indicator facet - Single rating
Rating indicator facet - Single rating

Aggregated rating:

The aggregated rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer text (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.
Rating indicator facet - Aggregated rating
Rating indicator facet - Aggregated rating
Guidelines
We recommend the following property settings when using the rating indicator in header facets:

  • Show 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

Navigation Bar (optional)

If your content can be shown in just one section, use the dynamic page layout. In the dynamic page layout with one section, the header area can’t be edited when the page is in edit mode.

If you need to structure your content in different sections, use the object page layout. You can only have several sections in the object page layout. When you use the object page layout, you can also make the header editable when the page is in edit mode. However, try to avoid having an editable header and move the content from the header to the sections instead.

If you need only one section, but require an editable header, use the object page layout. An object page with only one section doesn’t have any anchor bars. However, a temporary anchor bar and section for editing the header content should be added when edit mode is triggered.

If the content is complex there are two ways to structure it:

  • Anchor bar navigation (default)
  • Tab bar navigation

Anchor Bar Navigation

The anchor bar consists of a series of links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link navigates to the respective section. The anchor bar remains visible when the user scrolls down the page.

Use anchor bar navigation when the content belongs together but users might want to jump to specific parts directly.

For more information, see Anchor Bar Navigation.

Tab Bar Navigation

The tabs are a series of links to subpages, arranged horizontally at the top of the page. Clicking a link navigates to the respective subpage. The tabs remain visible when the user scrolls down the page.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

For more information, see Tab Bar Navigation.

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking on these links directs the user to specific sections of the page. The anchor links remain visible when the user scrolls down the page.

Object page – Anchor bar navigation
Object page – Anchor bar navigation
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu
Developer Hint
Make sure that the UpperCaseAnchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness
Developer Hint
For non-SAP Fiori element object pages only:

The content of the dynamic page header, navigation bar, (sub)section titles, and subsections must be vertically aligned. To achieve this, apply the sapUxAPObjectPageSubSectionAlignContent CSS class to the content of the subsections and set the width property to “auto”.

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. To improve access to the different forms we recommend always using one subsection per form, rather than placing multiple forms into one subsection.

If you need to perform any actions, you can use the subsection header. If you need action at group level, you can use a group header. To prevent confusion, we recommend inserting actions only in one place, depending on the use case.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Block base
Object page – Block base

Tables

If a section contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section title acts as the table title.

If a subsection contains only one table and no other content, hide the title of the subsection to avoid having duplicate titles for the table and reduce vertical space. In this case, the table title acts as the subsection title.

If you want to embed analytical tables, grid tables, or tree tables in an object page, use an object page with tabs, and place each table in its own tab. Because the analytical, grid, and tree tables have their own vertical scroll bars, they are not allowed within scrollable object pages. If you are using a scrollable object page without tabs, use a responsive table instead, and offer navigation to another page with the respective table type.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 400 Tab navigation
More than 400 or tab approach is unsuitable Navigation to list report

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but less than 400, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to Another Page

For tables with more than 400 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend only showing a preview of 10 items, but not more than 20. This can be achieved using predefined filters and/or by sorting the table. If necessary, you can also set a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate page, such as a list report, subobject page, or dynamic page with the respective table type. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If the loading takes a long time, a busy indicator is shown on top of the section or item until the content it loaded and visible.

Busy indicators for sections still loading
Busy indicators for sections still loading

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used in edit and create mode for closing and finalizing actions, such as Save, Post, Accept, Reject, and Activate.

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Initial Focus

When the object page is loaded, set the initial focus as follows:

  • If the object page is in display mode, set the focus on the first section.
  • If the object page is in edit mode, set the focus on the first empty mandatory field.
  • If there are no mandatory fields, set the focus on the first empty field.

Edit

In edit mode, the object page can contain a mixture of editable and read-only content.

If the user needs to edit elements in the header, a header section is added in the content area to enable editing.

Use the same content layout for both display and edit mode. Content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Object Handling (Create, Edit, Delete).

Editing the Header

The object page header can be edited in two ways:

  • Global edit
  • Partial edit

Global Edit

The header can be edited when the entire object page is in edit mode.

Because the header snaps on scroll, there are no editable forms in the header itself. Instead, a temporary header section is added before the other sections of the page. The title bar information and all editable fields from the header container move from the header to the new editable header section. Any non-editable content displays as read-only in the new header section. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts).

If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears.

If your object page has no anchor bar in display mode, and the header section has only a few editable fields, do not add navigation in edit mode.

The header container in edit mode may contain independent facets that are not included in the header content in display mode. They provide information to assist editing.

If the entire object page is in edit mode, but there is no editable information in the header, no editable header section is added.

Any changes made to the header are not reflected until the user saves them.

Partial Edit

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing Ctrl+Enter has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover or clicks the  (Close) icon.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, display the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size M
Object page – Size M
Object page – Size L
Object page – Size L

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information, see:

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Layouts and Floorplans

This article provides an overview of how SAP Fiori layouts and floorplans are used to build application pages.

Page Layouts and Floorplans

The standard page layout in SAP Fiori is the dynamic page, which is made up of a header, content area, and footer toolbar.

Floorplans are usually based on the dynamic page. Floorplans serve specific use cases and therefore come with a specific combination of UI elements in the header, content area, and footer toolbar.

The following picture shows the composition of the dynamic page and floorplans that build on it.

Page - Dynamic page - Floorplan
Page - Dynamic page - Floorplan

Full Screen vs. Flexible Column Layout

You can decide whether your app uses a full screen layout (one page at a time) or a flexible column layout for master-detail relationships (up to three pages side by side). The flexible column layout enables fast and fluid navigation between pages.

Full screen layout
Full screen layout
Flexible column layout
Flexible column layout

More Information

Information
To control and optimize the left and right spacing between header and content area and between UI elements (such as tables and forms), we offer a responsive spacing system.

Additional Layouts

The following layouts have been designed for special use cases:

Layout Use Case
Comparison Allows users to select items from a list and display them side-by-side. This makes it easier to compare the characteristics of multiple items.  
Multi Instance Allows users to open multiple documents in a tabular view. After selecting items from a list, the user opens them in a tab container.

Related Links

The following frameworks are also used to design pages:

Framework Characteristics
SAP Fiori elements Generates the user interface automatically, thus making app development more efficient, available for nearly all floorplans (besides Wizard and Initial Page)
Analysis Path Framework For creating interactive, chart-oriented analytical drilldown apps by configuration
SAP Smart Business For viewing and analyzing the data for one key performance indicator (KPI)

Wizard Floorplan

The wizard floorplan allows users to complete a long or unfamiliar task by dividing it into sections and guiding the user through it. The wizard consists of the walkthrough screen, where the form sections are revealed in sequence after each one is completed, and the summary page, where the form is displayed in read-only mode for assessment and final submission. You can use the wizard both in full-screen and flexible column layout.

Wizard - Steps
Wizard - Steps

Usage

When to Use the Wizard Floorplan

The wizard aims to help users by dividing large or complex tasks into segments. Use the wizard if the user has to accomplish a long task (such as filling out a long questionnaire) or a task that is unfamiliar to the user. The flow should consist of a minimum of 3 and a maximum of 8 steps.

The wizard can be used for both create and edit scenarios. If your application contains both, consider using the same means for both scenarios – either the wizard, or another create/edit screen (edit flow or object page).

When Not to Use the Wizard Floorplan

If you have a task with only 2 steps or a format that the user is familiar with (for example, it is part of their daily routine), do not use the wizard as it only adds unnecessary clicks to the process. If your process needs more than 8 steps, the wizard will not support those steps as the process is too long and can be confusing for the user. In this case, you should consider restructuring the task.

Consider if the classic edit screens (edit flow or object page) are more suitable for your use case.

Structure

The wizard has two main screens: the walkthrough screen, where users complete a segmented task, and the summary screen, where they can check the data they are about to submit. Wizard content is not restricted to forms; other content such as a value help dialog can also be used.

Walkthrough Screen

The walkthrough screen is the wizard’s main screen. After triggering the wizard, the user is taken to the walkthrough screen, which shows only the first section of the form. Once the user has filled out all the necessary fields, a Step XY button appears, which allows the user to move to the next step. When the user has completed the last section of the wizard, the button label changes to Review and the user is taken to the summary screen.

The wizard footer is used to display the Cancel button, which exits the wizard. If the user has modified any fields, a data loss message also prompts the user. You can also use a Save as Draft function in the footer if the form is long and the user may have to save it before finishing it.

Walkthrough screen in full screen layout
Walkthrough screen in full screen layout
  1. Header toolbar with title
  2. Progress bar
  3. Completed step
  4. Current step
  5. Upcoming step
  6. Step title (for example: 3. Payment)
  7. Action for the next step

The title in the header toolbar above the wizard remains unchanged during all the wizard steps. Align this title left, and make it clear to users where they are and what they are doing (for example, New Sales Order or Sales Order 4815162342). Especially in edit scenarios, it is vital to give users a unique identifier for the object they are changing.

The progress bar below the header highlights the completed steps and the current step. It also allows the user to navigate between steps by clicking any of the circles. If there are multiple steps, and the screen width is reduced, the steps on the progress bar are grouped. This behavior is the same on smartphone, tablet, and desktop screens.

Wizard tooltip – Grouped steps
Wizard tooltip – Grouped steps

In certain use cases, the steps in the wizard depend on the choices the user makes along the way. The user’s entries for one step determine the follow-on steps (“branching”). In these cases, a dotted line shows that more steps will follow.

Wizard branching
Wizard branching

Since the wizard is a lightweight way to create or edit objects, applications can use a quick confirmation popup instead of the heavier data loss message, when the user selects Cancel.

If the wizard is used to create an object, the text on the popup should read Discard this <object>?’ (see image below). If the wizard is used to edit an object, use the text Discard changes? In both cases, the action on the popup should be Discard.

Structure – Quick confirmation
Structure – Quick confirmation

Anchor and Tab Bar Navigation

Anchor Bar

Depending on the use case, you can present the progress bar as an anchor bar or a tab bar. The anchor bar behaves in the same way as the anchor bar in an object page. It consists of a series of links (steps), which are arranged horizontally at the top of the page. Clicking a link navigates to the respective step on the page.

Tab Bar

As an alternative to the anchor bar, you can also use the tab mode (property: rendermode, value: Page). It is visualized in the same way, but shows a series of tabs (steps). These are arranged horizontally at the top of the page and each represent a subpage. Clicking a tab navigates to the respective subpage. Another difference is the placement of the action for the next step: Place the Next Step button in the footer toolbar, as in the summary screen. As soon as users move to the following step, show an additional Previous Step button on the left. This follows the guidance for action placement: if the primary action (such as Next Step) is a forward path, it needs to appear to the right of the secondary action. In the case of the wizard, the secondary action is Previous Step. The negative path action Cancel remains unchanged.

Actions in the footer toolbar (tab bar approach)
Actions in the footer toolbar (tab bar approach)

Summary Screen

On the summary screen, users can check all their entries before the object is actually created or changed. The summary screen has no progress bar or anchor navigation, and shows the form sections for all the steps in read-only mode.

To allow the user to go back and edit entries, provide an Edit button either in the footer toolbar or in each form section:

  • If you place the Edit button is placed in the footer toolbar, the user is taken back to the first section of the wizard.
  • If you offer Edit buttons for each section of the form, the user jumps to that particular step.

Alternatively, users can click the Back button to go to the previous step. From there, they can scroll through the sections.

The main action on the summary page should be the final action after completing the wizard, such as Create or Save.

Wizard summary page example
Wizard summary page example

Layout

Thanks to the wizard’s responsive behavior, it can be used both in a full-screen layout as well as in the flexible column layout. Since there are no subsequent pages after the wizard, it will always occupy the rightmost column – there is no navigation from the wizard to a next page. After completion (or cancellation), the user will always come back to the page the wizard was triggered from.

Wizard in full screen layout
Wizard in full screen layout
Wizard in flexible column layout (2/3)
Wizard in flexible column layout (2/3)
Wizard in flexible column layout (1/3)
Wizard in flexible column layout (1/3)

Types

There are two types of wizard – “standard” and “branching” – which differ in terms of the functions they offer.

Use the standard type if:

  • The total number of steps is known in advance.
  • The number of steps does not change during usage.
  • There is linear progression from one step to the next.

Use the branching type if:

  • The total number of steps is not known.
  • The number of steps may change during usage.
  • There is non-linear progression. In other words, the user’s choice during one step determines which step comes next.

In both types of wizard you can let users skip steps. Label these steps as “Optional”.

Styles

In addition to the functional types, there are also different visual styles.

Numbers and Icons

By default, both versions use a number inside a circle to represent each step. You can also use icons instead of numbers to help users identify the steps. If you plan to use icons, be sure to assign icons to all the steps (not just to some). The icons you choose should be unique and not look too similar. This will ensure that users do not get individual steps confused with one another.

Steps represented by numbers
Steps represented by numbers
Steps represented by icons
Steps represented by icons

Labels

To help users identify the individual steps even more easily, app developers can assign labels. As with icons, labels must be applied to all or none of the steps.

If there is enough horizontal space, all labels are shown.

All labels are visible
All labels are visible

As the width is reduced, the steps outside the currently selected one do not show labels.

Labels - reduced width
Labels - reduced width

Finally, the unselected and outermost steps are stacked on top of each other to further accommodate the reduced space.

Stacked labels
Stacked labels

Users can still easily access steps inside a stack. A single click opens a list of steps inside this stack.

Labels - stacked popover
Labels - stacked popover

Optional Steps

For optional steps, add an (Optional) label. Place the (Optional) label below the content label for the step.

Do
Correct: '(Optional)' label below the content label for the step
Correct: '(Optional)' label below the content label for the step

Explanatory Texts

Ideally, the headlines and field labels for each step should provide enough information for users to complete their tasks. However, if additional explanations are needed, applications can put a simple text underneath a step’s headline – either via the sap.m.Text or the sap.m.FormattedText control.

Responsiveness

The wizard supports all common screen sizes and is available in cozy and compact modes, as well as high-contrast black (HCB).

Wizard – Size S
Wizard – Size S
Wizard – Size M
Wizard – Size M
Wizard – Size L
Wizard – Size L

Behavior and Interaction

Initial Focus

When the wizard is first loaded, focus on the first editable control in the first step.

Exceptions:

  • The user opens a page using a link that jumps directly to a specific step. In this case, focus on the first editable control in this step.
  • The user opens the wizard using one of the Edit actions from the review screen. In this case, focus on the first editable control in the selected editing step.

Navigation, Error- and Draft Handling

Navigation

Users can trigger the wizard app from another application, from the launchpad, or from a notification. The wizard always starts at the initial walkthrough page and ends after the user has clicked the main action (such as Create or Submit) on the summary screen. The Step XY button is only used on the walkthrough page. This button loads the next section of the form. On the summary page, the user can use either the Edit button in the footer or the “back” arrow to return to the wizard and edit any of the fields.

Modifying dependent steps: If there are steps that depend on each other (for example, a selection in step 2 triggers an additional step) and the user modifies the parent step, the dependent step is changed or deleted. Beforehand, the user is warned that data will be lost.

Error Handling

Error handling is done via message popovers. When the user clicks the Step XY button, the form sections and fields should be validated. When the user clicks the Create button on the summary page, the entire form is validated. If there are any errors, the user stays on the walkthrough page, the message popover is displayed, and clicking any of the error items scrolls the page to the relevant field, which is also highlighted in red.

Section validation differs from validation of the entire form. In the first case, correct data entry in the form fields is validated. In the second case, the entire form is checked for backend system errors (such as duplicated data entry).

Draft Handling

If a draft already exists when a user enters the wizard, show a dialog to inform the user. For more information, please visit the draft handling article.

Dynamic Page

Header

Even though the wizard floorplan consumes the dynamic page, the wizard’s header does not allow snapping. Due to the nature of the wizard floorplan, the wizard brings its own step-based header that is already very space-saving.

Footer Toolbar

Contrary to the header, the footer toolbar of the wizard floorplan conforms to the standard layout and uses the sap.m.bar control.

Developer Hint
If you use the wizard in a dynamic page layout, set the height of the wizard to “auto” instead of “100%”. Otherwise, a scrollbar issue may occur.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Form (SAPUI5 samples)
  • Wizard (SAPUI5 samples)
  • Form (SAPUI5 API reference)
  • Wizard (SAPUI5 API reference)

Overview Page

Information
This floorplan is implemented as an SAP Fiori Element.

Intro

View, Filter, and Take Immediate Action

The overview page (OVP) is a data-driven SAP Fiori app type and floorplan that provides all the information a user needs in a single page, based on the user’s specific domain or role. It allows the user to focus on the most important tasks, and view, filter, and react to information quickly.

Each task or topic is represented by a card (or content container). The overview page acts as a UI framework for organizing multiple cards on a single page.

The overview page is based on SAP Fiori elements technology, and uses annotated views of app data, meaning that the app content can be tailored to the domain or role. Different types of card allow you to visualize information in an attractive and efficient way.

At a Glance

  • Entry-level view of content on cards

  • One specific context and task area for one role

  • Content from different sources shows side by side – no need to switch screens

  • Information can be visualized on cards in different ways (texts, charts, lists, tables)

  • Micro actions let users react on the spot

Overview page
Overview page

When to Use

Use the overview page if:

  • You want to provide an entry-level view of content related to a specific domain or role.
  • Users needs to filter and react to information from at least two different applications to complete their role-specific tasks.
  • You want to offer different information formats (such as charts, lists, and tables) on a single page.
  • You plan to have at least three cards. These cards should not all be of the same type.

Do not use the overview page if:

  • A high-level or birds-eye view of application content is sufficient.
  • You just want the user to launch an application. In this case, use the SAP Fiori launchpad home page.
  • You want to show information about one object only. In this case, use the object page.
  • You just represent one application and less than three cards. In this case, use the object page.

SAP Fiori Launchpad Home Page, Overview Page, and Object Page

The launchpad home page contains all of a user’s favorite apps and offers access to them via tiles. This covers all the roles that a user might have, such as employee, manager, production worker, or quality manager.

An overview page focuses on the key tasks for a specific role, and contains only the most frequently-used apps for that role. The overview page uses cards, which display more (preview) information than tiles because of their size, properties, and interaction areas. One card type also allows users to perform simple actions. Cards represent an entry-level view of application content.

Launchpad Home Page vs. Overview Page

Launchpad Home Page Overview Page
Framework (given) SAP Fiori application (optional)
“Birds-eye” view “Street-level” view
Single point of entry Specific business context for a role
One SAP Fiori launchpad per user Multiple overview pages per user possible
Access to all the user’s favourite applications Selected applications are presented as cards
Uses tiles Uses cards
No actions Micro actions

The overview page is always role-based. The user sees a heterogeneous set of information related to a specific business context and the tasks associated with a specific role. This is not the case with the object page, which contains homogenous, object-based information.

Overview Page vs. Object Page

Overview Page Object Page
Role-based Object-based
“Street-level” view “Details” view
Heterogeneous information Homogeneous information

Role-Specific Overview Pages

As you can see in the picture, the overall content scope (shown in gray) becomes more focused with each interaction step. An overview page brings together information from different sources that support a specific task or information need. Only provide an overview app for a role if it makes sense to do so.

If a role or user has several main tasks that each require a specific set of information, the role or user might also have multiple overview apps. For example, one overview app could be used to reflect the user’s role as manager, with information for managing team performance reviews. Another overview app could be used to track quality issues and other relevant information pertaining to the machines that the user is responsible for in the role of quality manager.

Metaphor – Different entry points in SAP Fiori
Metaphor – Different entry points in SAP Fiori

Components

The basic structure and appearance of the overview page is governed by the dynamic page layout, and is divided into a header area and a content area.

This enables you to use variant management, text, and a smart filter bar in the upper part of the screen (dynamic page header). The content of the overview page is presented using cards.

Two different layouts are available, which determine the size and position of the cards: fixed card layout and resizable card layout.

Overview page – Basic structure
Overview page – Basic structure

Dynamic Page

The dynamic page header comprises the header title and expandable/collapsible header content. Three different header variants are available for overview pages

In the overview page, the header content is used for the smart filter bar with the live update mode (variant 1 and variant 2): the results are updated immediately whenever the user changes a filter field. As a result, there is no Go button for the filter bar.

Users can expand/collapse and pin the header content with the two icon buttons below the smart filter bar:

  1. Expand/collapse header or   
  2. Pin/unpin header content 

Dynamic Page Variants for the Overview Page

The header title (either text or variant management) is mandatory, while the header content (smart filter bar) is optional. Variant 3 shows only a text in the header title.

Variant 1 Variant 2 Variant 3
Dynamic page header Yes Yes Yes
Header title Variant Management Text Text
Header content Smart Filter Bar Smart Filter Bar
Page content Cards Cards Cards

In this variant, the header title contains variant management and the header content includes the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content expands as defined. The header title offers the Share menu, which enables the actions Send Email and Save as Tile.

Dynamic page variant 1 – Expanded mode
Dynamic page variant 1 – Expanded mode

In this variant, the header title contains a text (Header Title in the example below) and the header content area contains the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content snaps as defined.

Dynamic page variant 2 – Expanded mode
Dynamic page variant 2 – Expanded mode

In the third variant, the header title contains a text (Header Title in the example below). This text serves the same purpose as the former page subtitle. The header content is empty (auto hidden) and therefore doesn’t snap. The content area displays the overview page cards.

Dynamic page variant 3 – Expanded/collapsed mode
Dynamic page variant 3 – Expanded/collapsed mode

Overview Page Layout

Fixed card layout
Fixed card layout
Resizable card layout
Resizable card layout

The overview page layout describes the position, size, and characteristics of cards in the content area below the dynamic page header.

There are two layout variants:

Only place cards on the overview page. Never add tiles.

Fixed Card Layout vs. Resizable Card Layout

Fixed Card Layout Resizable Card Layout
Fixed card width and predefined height Resizable card sizes (grid-based)
Users can’t influence the card size Users can influence the card size individually
Predefined static card characteristics Flexible content insights (such as more items, zoom, or different levels of detail)
Lower implementation effort – defined card patterns Higher implementation effort – content strategy required
Self-contained cards Highly interactive and flexible cards
Fast overview and navigation Fast overview, navigation, and investigation
Cards can be swapped Drag and drop supported for cards
Maximum of 5 card columns (letterboxing) Unlimited number of columns

Personalized Selection of Cards

Users can also hide cards. The corresponding setting is in the user actions menu under Manage Cards. A dialog appears on the overview page, and lists the different card names. Users can opt to show or hide the cards using a switch control. Restore reinstates the default setup. The personalized setup stays until the user next changes it.

Each overview page app has its own Manage Cards setting. Users who work with several overview pages can personalize the cards shown for each one.

Overview page – 'Manage Cards' dialog after initial loading
Overview page – 'Manage Cards' dialog after initial loading

Behaviour and Interaction 

As for any other SAP Fiori app, users open overview page apps by selecting a tile on the SAP Fiori launchpad home page, or by bookmarking the direct link in a browser. From the overview page the user decides which issues need attention, and navigates via cards to the relevant SAP Fiori apps. In addition, users can also access the navigation menu in the shell bar, which allows fast and easy navigation to other apps. The overview page supports navigation to both SAP Fiori and non-SAP Fiori apps. For SAP Fiori apps, it uses intent-based navigation. Non-SAP Fiori apps open in a new browser window.

In the screen flow, always position the overview page app between the SAP Fiori launchpad home page and the SAP Fiori app. The overview page doesn’t replace the SAP Fiori launchpad home page. Never start overview page apps from another SAP Fiori app.

The picture below illustrates the complete interaction flow:
SAP Fiori launchpad home page ➝ SAP Fiori overview app ➝ SAP Fiori app or non-SAP Fiori app

Overview page – Interaction flow
Overview page – Interaction flow

Initial Focus

When the overview page is loaded, set the initial focus as follows:

  • If no cards are loaded, and the filter bar is in manual mode, set the focus on the Go button or on the first filter field.
  • If no cards are loaded, the filter bar is in manual mode, and a mandatory field is still empty, set the focus on the mandatory field.
  • When all cards are loaded, set the focus either on the first card or the header of the first card.

Dedicated Floorplan

While other floorplans like the list report and object page can be combined in a single app, there is a 1:1 relationship between the overview page floorplan and the corresponding overview app. The overview page floorplan is never combined with other floorplans. Because of this, the terms “overview page floorplan” and “overview (page) app” are often used synonymously.

Cards

Overview page – Different card types (selection)
Overview page – Different card types (selection)

Cards are containers for app content, and represent an entry-level view of the most pertinent app data for a given topic or issue. The overview page can contain several cards that reference the same underlying application. However, each card must bring added value to the user, and not just repeat information already offered on another card.

Cards can display different types of content. They can show a chart, a list, a table, informative text, or a combination of two elements. Cards can also vary in size, depending on the selected layout. However, cards never have editable fields.

When designing cards, make sure that you define and format the texts on all the cards consistently. Check the UI text guidelines for the overview page for details.

For more information about cards and card types, see the dedicated topics:

Responsivess

The overview page is fully responsive and can accommodate typical laptop screens as well as larger desktop monitors. The responsive behaviour differs for the two layout types – fixed card layout and the resizable card layout.

Both feature responsive (collapsible) “columns” of cards that can scale all the way down to tablet or phone screen sizes. For more information on each card type, follow the respective links.

Top Tips

Before you start designing an overview page, familiarize yourself with following best practices to optimize the user experience. They reflect the basic findings of multiple usability tests across different scenarios and user groups.

  • Make a conscious decision on the number of cards: Show only cards that really support the specific role context or task.
  • Accentuate the most important information: Semantic colors in texts, charts, attract more attention. The same applies to larger cards.
  • Offer a well-balanced mixture of card types: Diversity makes it easy to recognize, select, and read information.
  • Define a deliberate card order: Users assume that bigger cards and cards at the top of the page are more important than others.
  • Group similar topics: Users assume that related cards will be shown next to each other.
  • Choose easy-to-read and actionable texts: If the user needs to take action, use the active voice (for example “Reorder Soon” when stocks are running low).
  • Be semantically consistent: Users expect crucial terms like “Urgent” or “Out of Stock” to be highlighted with semantic colors.

Related Links

Initial Page Floorplan

The initial page floorplan allows the user to navigate to a single object to view or edit it. The interaction point on the screen is a single input field that relies on assisted input to direct the user to the object in as few steps as possible (using features such as value help and live search). If you need to display more than one object, use the list report floorplan instead.

When to Use

Use the initial page floorplan if:

  • The user only needs to work on one object at a time. In this case, the list report floorplan would include a redundant step for viewing a list of items found by the search.

A typical use case for the initial page floorplan is a scanning app, where each new scan leads to an object with input fields. Once the user has submitted the entries, the screen is shown in read-only mode. The cursor returns to the input field, ready for the user to scan the next object.

Do not use the initial page floorplan if:

  • The search is supposed to return a list of objects. This is the scenario for the list report floorplan.

It is also advisable to use only one input field for finding the object. If you need to include detail views, or allow the user to switch between views, offer these features when displaying the object itself.

Components

The initial page is a floorplan based on the object page, with a dynamic page header and a content area.

Structure of the initial screen
Structure of the initial screen
  1. Shell bar (mandatory)
  2. Dynamic page header (mandatory)
  3. Input field (mandatory)
  4. Header features (optional)
  5. Content Area (mandatory)
  6. Footer toolbar (optional)

Dynamic page header

The header area can contain the same content as the object page and thereby follows its defined structure, except for the title, which is replaced by an input field. The header initially displays in collapsed mode but expands when the user performs a search or finds an object using the input field. Choose the selection control best suited to your use case.

Content area

The content area is used to display the object. It can contain a navigation bar, sections, subsections, forms, and tables.

Behavior and Interaction

Initial Focus

When the initial page is loaded, set the initial focus on the input field in the header title area.

Live Search

The input field serves as the single starting point for finding the object. The assisted input uses the live search feature (search-as-you-type) to speed up the search. The live search feature can show anything from one attribute to an entire table of values. To guide the user, you can use an illustrated message to display a hint, such as Enter the ID manually or Scan the code.

Live Search
Live Search

Initial Screen with dialog

If multiple hits are possible for the same search terms, you may need to implement a select dialog, table select dialog, or value help dialog. These dialogs let the user narrow down the list of items based on more specific criteria. When the user selects an object from the list, the dialog closes and the object is displayed in the content area.

Behavior of the Search Field

The content of the dynamic page header is initially collapsed and cannot be expanded. The input field is located in the header title area of the object page. If no other additional actions are provided, set the focus to the input field . This allows the user to enter the search term directly without clicking into the field. However, only consider doing this if there are no other elements that could be blocked by it, such as the on-screen keyboard on touch devices.

Once the user finds an object, the dynamic page header expands and displays the relevant information for the object.

The dynamic page header collapses on scrolling or by user interaction, but the input field for performing a different search is always visible.

If the user enters new search terms in the input field, the focus moves away from the field and the app triggers a new search. If no results are found, the initial view of the page is shown – with a collapsed header and a corresponding message in the content area.

If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.

Responsiveness

The initial page features a single interaction point for the user: the input field near the top of the screen. Place the input field inside header title bar (sap.f.DynamicPageTitle). Configure the width to fit the width of the longest text (allowing some additional space for other languages), but do not make it significantly wider. When you set the maximum width of the input field, also consider the width available on mobile devices.

The field should never be as wide as the screen (except on smartphones).

Initial page floorplan - Size S
Initial page floorplan - Size S
Initial page floorplan - Size M
Initial page floorplan - Size M
Initial page floorplan - Size L
Initial page floorplan - Size L

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Analytical List Page

Information
This floorplan is implemented as an SAP Fiori Element.

Intro

Analytical list page
Analytical list page

The analytical list page (ALP) offers a unique way to analyze data step by step from different perspectives, to investigate a root cause through drilldown, and to act on transactional content. All this can be done seamlessly within one page. The purpose of the analytical list page is to identify interesting areas within datasets or significant single instances using data visualization and business intelligence.

Visualizations help users to recognize facts and situations, and reduce the number of interaction steps needed to gain insights or to identify significant single instances. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

The main target group are users who work on transactional content. They benefit from fully transparent business object data and direct access to business actions. In addition, they have access to analytical views and functions without having to switch between systems. These include KPIs, a visual filter where filter values are enriched by measures and visualizations, and a combined table/chart view with drill-in capabilities (hybrid view). Users can interact with the chart to dig deep into the data. The visualization enables them to identify spikes, deviations and abnormalities more quickly, and to take appropriate action right away.

Usage

Use the analytical list page if:

  • Users need to extract key information to understand the current situation or identify a root cause. The way the data is presented is crucial for giving them the insights they need to take the right action.
  • Users need a way to analyze data step by step from different perspectives, investigate a root cause through drilldown, and act on transactional content within one page.
  • In addition to the filtered dataset, users need to see the impact of their filter settings in a chart (visual filter).
  • Users need to switch between integrated chart and table views (hybrid view).
  • Users need to see the impact of their action on a global key performance indicator (KPI).
  • Users need to find and act on relevant items out of a large set of items by searching, filtering, sorting, grouping, drilling down, and slicing and dicing.

Do not use the analytical list page if:

  • Drilldown is rarely used, not used at all, or is only needed after navigating to another page, rather than as free or flexible drilldown within the page itself. In this case, a list report might be sufficient for your use case.
  • Users need different visualizations for the entire dataset (for example, as a table or chart), but don’t need to work with both visualizations on the same page (for example, in a reporting scenario). In this case, a list report might be sufficient.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping, without using drilldown or “slice and dice”. In this case, consider using a list report.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. They want to be able to switch views using tabs, segmented buttons, or a select control. In this case, consider using a list report.
  • Users need to see or edit a single item with all its details. Use the object page floorplan instead.
  • Users need to find a specific item, and the item or an identifying data point is known to the user (such as a code). In this case, use the initial page floorplan.
  • Users need to work through a comparably small set of items, one by one. In this case, use the worklist floorplan.
  • Users have a trivial use case that does require the use of a chart, but that do not involve identifying a root cause, analyzing data, or drilldown. Instead, use a list report with a table/chart switch.

Structure

This section describes the basic layout of the analytical list page, as well as the different layout variants.

Basic Layout

The shell bar is above the analytical list page. The page itself uses the dynamic page layout and has two main areas:

  1. Analytical list page header:
    The page header is the filter area. Users can expand and collapse the header using the expand/collapse header icon.
  2. Analytical list page content area:
    The content area shows the content for the chosen filters.

All elements are described in more detail in the Components section below.

Analytical list page - Basic layout
Analytical list page - Basic layout

Layout Variants

The layout of the analytical list page is quite flexible. The display is determined by the header and content views chosen by the user.

The analytical list page always offers all of the above layout options. You cannot restrict the available views at app level. For example, you can’t offer only a visual filter (with no option to show the standard filter bar). Likewise, you can’t show only a table view (with no option to display the hybrid or chart views).

Responsiveness

The analytical list page is responsive, except for the global KPIs. Apps with one or more global KPIs are not supported on screen sizes smaller than size L (desktop).

Likewise, the analytical list page is only fully supported in the flexible column layout if no global KPIs are used. If you use the analytical list page with global KPIs within the flexible column layout, the column should have at least size M.

Size S

On size S, the analytical list page supports both the chart-only and table-only views. The table-only view supports only the responsive table. If no responsive table is available, the chart-only view is displayed without a view switch toggle.

Global KPIs are not supported on size S.

Size M

On size M, the analytical list page supports both the chart-only and table-only views. You can use a responsive table or analytical table in the table-only view.

Chart-only view - Size S
Chart-only view - Size S
Table-only view - Size S
Table-only view - Size S
Chart-only view - Size M
Chart-only view - Size M
Table-only view - Size M
Table-only view - Size M

Components

Analytical List Page Header

The page header can be expanded and collapsed on click. Different content is shown in the expanded and collapsed states. For more information about the basic behavior of the header, see Dynamic Page Header.

Collapsed Header

The collapsed page header contains the following elements:

Collapsed analytical list page header
Collapsed analytical list page header

Expanded Header

Initially when the app is launched the header is expanded by default. The expanded page header contains the following elements:

Expanded analytical list page header showing the visual filter bar
Expanded analytical list page header showing the visual filter bar
Expanded analytical page header showing compact filters in the filter bar
Expanded analytical page header showing compact filters in the filter bar

Analytical List Page Content Area

The analytical list page content area contains the following elements:

  • View switch (   |    |    )
  • Hybrid view: View with one chart, chart toolbar, one table, and a table toolbar
Hybrid view
Hybrid view
Chart-only view
Chart-only view
Table-only view
Table-only view

Analytical List Page Header

Variant Management

Variant management in the analytical list page allows users to save a page variant whenever there are changes in the underlying structures of the filter/content area. Variant management for the page is handled by the standard SAPUI5 page variant management.

Currently, the page variant captures the following states across the page:

  • Filter view switch state: Visual filter bar or filter bar
  • Filter set: The filters set in the visual filter bar and filter bar
  • Filter selections: Selected values in the visual filter bar and filter bar
  • Content view switch state: hybrid view  , chart-only view  , or table-only view  
  • Chart and table configurations, such as measures and dimensions used, sort order, or grouping
  • Chart drill-down state, based on the current selections (slice & dice)
  • Table entry switch state: Hide (  ) or Show  (  ) selected table records

Global KPI Tags and Cards

Use a global KPI tag (= global key performance indicator tag) if you would like to show a global KPI related to the task in hand. The global KPI value changes only if an action is executed on the transactional content. For example, the user needs to know the effect of releasing sales orders on a related global KPI, or the effect of posting an accounting document on certain financial global KPIs.

You can display a maximum of three global KPIs. Clicking a global KPI tag opens a global KPI card that displays more details on the KPI.

The global KPI tags and corresponding KPI cards are independent of the filter area. This means that global KPI tags do not react to filters set in the visual filter bar and filter bar.

A global KPI tag has four components:

  • Global KPI label
  • Global KPI value
  • Global KPI color and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator

Global KPI Label

The global KPI label is an abbreviation of the complete global KPI title. It is formed using the first three letters of the first three words of the global KPI title.
Examples: AMR for Actual Monthly Revenue, TAR for Total Advertising Revenue, or LPC for Landing Page Conversation Rates

If there is only one word in the global KPI title, the first three letters of the word are displayed. Example: CON for Contracts

If the global KPI title has only two words, only the first letters of these two words are displayed. Examples: AC for Actual Costs, SG for Sales Growth

KPI label abbreviation: AC
KPI label abbreviation: AC

Global KPI Value

The global KPI value is displayed using a semantic color and a scaling factor. Relative values are shown with a percentage sign and one decimal place.
Examples: 0.3%, 82.9%
Absolute values are shown without decimal places, a currency, or a unit of measure.
Examples: 2K, 75K, 30M, 14B

KPI values: 157.3M and 0.3%
KPI values: 157.3M and 0.3%

Global KPI Color and Criticality Indicator

The color of the global KPI value is based on the thresholds defined for the particular KPI in the annotation. The global KPI tag also uses a line to indicate the criticality. The color of the line is the same as that of the global KPI value.

KPI color and criticality indicator
KPI color and criticality indicator

Global KPI Card

Clicking the KPI tag opens the analytical card, which displays more information about the current value of the global KPI, the global KPI target, the deviation from the target, and how the global KPI has evolved over time.

Global KPI card
Global KPI card

Filter Area: Visual Filter Bar and Filter Bar

The filter area allows users to filter the result set, which feeds the main content area. The analytical list page comes with two filter types: compact filters in the filter bar, and the visual filter bar. Always design both visual filters and compact filters (filter bar) for your app. We recommend setting the visual filter bar as the default, but this is no longer mandatory. You can opt to use the (compact) filter bar as the default if your app has the required parameter values, if your main use case involves date ranges, or if your users often need to combine multiple filters in different ways.

Currently, any visual filter configured in the visual filter bar must always be displayed as a compact filter in the filter bar as well. By contrast, a filter configured as a compact filter in the filter bar may or may not be configured for display as a visual filter. This means that it’s possible to have a smaller set of visual filters and a larger set of compact filters.

Both filter types supports two different modes: live update and manual update. Use the live update mode for both filter types as the default whenever possible. Apply the same mode to both filter types: the visual filter bar and the filter bar. For example, if you use the live update mode in the visual filter bar, you should also use the live update mode for the filter bar.

Visual filter bar
Visual filter bar
Filter bar
Filter bar

Filter Type Switch

Users can toggle between the compact filters    (filter bar) and    (visual filter bar) in the upper-right area of the page header. The filter type switch is a core feature of the analytical list page and is mandatory. The switch is only displayed when the page header is expanded. Once the header collapses, it disappears.

Filter type switch
Filter type switch

Carrying Forward Filter Selections

Visual Filter to Compact Filter

Any values selected in the visual filters are always carried forward to the corresponding compact filters.

Compact Filter to Visual Filter

Filter dimensions that are part of a visual filter are synced to the visual filter. If the dimension value(s) chosen in the compact filter are part of a visual filter, they are shown as selected chart dimensions in the visual filter (single or multiple selections).

Filter dimensions that are not part of the visual filter, parameter values, and interval-based dimensions are applied to the filter query and the content is refreshed.

To show complex conditions, click the link for the number of selected items at the top of the visual filter.

Visual Filter Bar

The visual filter bar combines measures or item counts with filter values. The visual filter bar becomes more powerful if you match measures to the filter dimension instead of just item counts. Use the visual filter bar if you would like to give the user a condensed overview of the data in the dataset. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

Chart Types in the Visual Filter Bar

Currently, the visual filter bar supports three interactive chart types:

These interactive charts are also referred to as visual filters.

Interactive Donut Chart

The interactive donut chart in the visual filter bar is used for non-time-related data (for example, categories) and displays only the top or bottom two values. The rest are aggregated into the “Other” section.

Interactive donut chart
Interactive donut chart
Interactive donut chart with semantic colors
Interactive donut chart with semantic colors

Interactive Line Chart

The interactive line chart is used exclusively for displaying time series data, and can show a maximum of six data points. Always show the first or last six data points (for example, last six days, last six months, first six days, and so on).

Interactive line chart
Interactive line chart
Interactive line chart with semantic colors
Interactive line chart with semantic colors

Interactive Bar Chart

The interactive bar chart can be used for non-time-related data (for example, categories) and has a maximum of three filter values. These filter values show the top three or bottom three entries.

Interactive bar chart
Interactive bar chart
Interactive bar chart with semantic colors
Interactive bar chart with semantic colors

Using Interactive Charts

The interactive charts come with the following features and rules:

  • Minimum number of interactive charts: Show at least three visual filters and try to use different chart types.
  • Filter title:
    • Use the following naming convention for the filter title, using title case:
      [Measure Name] by [Dimension Name] | [Scale Factor] [Unit of Measure].
      Examples:
      Project Costs by Project | K EUR
      Sales Volume by Commodity | M PC
    • For an item count, use the following naming convention for the filter title, using title case:
      Number of [Dimension] | [Scale Factor] [Unit of Measure].
      Examples:
      Number of Products | PC
      Number of Contracts by Month
    • Note that for some use cases, it might be appropriate to replace “Number” with a different expression. Bear in mind that the space for displaying the filter title is limited. If the measure and/or dimension names are longer than the predefined space, the text will be truncated.
Filter title with truncation
Filter title with truncation
Filter title without truncation
Filter title without truncation
  • Filter-to-filter dependencies: Ideally, the filters depend on each other. By selecting one or several chart data points, users can perform a quick analysis of the dataset.
    Examples: Supplier with the lowest supplier performance this year, product with the highest sales volume in March in the EMEA region
  • Adding additional filter values: All charts have a maximum number of filter values that can be displayed within the chart itself. More filter values can be selected using the value help or the select popover.
  • Selected values: Any data point or segment that is selected in the visual filter’s interactive charts will remain selected even when the user changes the measure, chart type, or sort order in any of the charts. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.
  • Semantic colouring: All interactive charts support semantic colors to indicate the criticality of filter values.
  • How to design a visual filter: To design a visual filter, choose a meaningful measure out of the dataset and match it to a filter dimension. If no measures or no meaningful measures are available, use an item count instead. Have a look at the visual filter bar article for more information.

Filter Dialog

In the filter dialog, the user can switch between the visual filter bar and the compact filters using a toggle button, and also manage the filters. For more about the standard filter dialog, see Filter Bar. Visual filters are explained in more detail below.

Filter Dialog for Visual Filters

The filter dialog is launched by clicking the Adapt Filters ([number of applied filters]) link in the page header area. In the filter dialog for visual filters, the user can choose which filter fields are shown in the visual filter bar, and make the following changes:

  • Add visual filters
  • Delete visual filters
  • Hide visual filters in the visual filter bar
  • Search for visual filters
  • Change the sort order  of each visual filter
  • Change the chart type   of each visual filter
  • Switch to other measures  in the visual filter display

Analytical List Page Content Area

The content area shows different visualizations of the selected data. In the hybrid view, users can interact with both the chart and table visualizations at the same time. In addition, the analytical list page supports a chart-only view and a table-only view. The analytical list page always comes with all three views. Offering additional views or even tabs would add too much complexity, and is neither supported nor recommended.

Check out the following sections for more details on the hybrid view, chart-only view, and table-only view.

Hybrid View

The hybrid view uses both chart and table visualizations at the same time. It enables users to analyze data step by step from different perspectives. Users can interact with both the chart and the table, and drill down through either the smart chart or table entries to investigate a root cause. They can also act directly on transactional content. In the initial view of the chart, visualize the most important aspects of the whole dataset in the chart.

Example: The view shows all the suppliers the user is responsible for, organized by value. By drilling down the material to the plant with the highest/lowest volume, the user can see if materials need to be shifted from one plant to another. The corresponding transactional data is shown in an analytical table below the chart, which might also offer an action for shifting the material.

Analytical list page - Hybrid view
Analytical list page - Hybrid view

Chart-Only View

The chart-only view enables users to analyze data step by step from different perspectives, and to investigate a root cause through drilldown, without direct access to transactional content. The smart chart control provides the chart visualization in the chart-only and hybrid views: it is used to display the dataset as a chart. The smart chart drilldown functionality provides a convenient way to analyze the dataset. In addition, the smart chart offers detailed information on the chart data and a breadcrumb that shows the drilldown path. Ensure that you show the most important aspects of the dataset in the chart.

This mode is perfect for applications with analytical data that can easily be represented visually using charts, but doesn’t need to be linked to the transactional dataset.

Analytical list page - Chart-only view
Analytical list page - Chart-only view

Table-Only View

The table view provides access to transactional content. The user can act on single or multiple objects, and navigate to the object details or to other applications.

Depending on the use case, you can opt to use either the analytical table or the responsive table.

Snapping or scrolling is not available for desktop-focused tables, such as the analytical table. Scrolling is only available when the responsive table is used. The pin is enabled by default. The table entries are loaded using lazy loading.

Users can apply filters at table level using the Settings button ( ). For analytical tables, filtering is also available at column level. For more information, see Analytical Table (ALV) – Filter.

Analytical list page - Table-only view
Analytical list page - Table-only view

Behavior and Interaction

The expand/collapse header and pin/unpin header features work as in the dynamic page.

Initial Focus

When the analytical list page is loaded, set the initial focus as follows:

  • If the compact filter is visible by default, set the focus on the first filter field (for live update mode) or on the Go button (for manual update mode).
  • If the header contains empty mandatory fields, set the focus on the first empty mandatory field.
  • If the visual filter bar is visible by default, set the focus on the first chart container.
  • If the header is collapsed (visual or compact filter), set the focus on the first chart data point or the first table row (depending on the selected view).

Open and View the Global KPI Card via the Global KPI Tag

Clicking a KPI tag opens the KPI card, which shows the details for the particular KPI.

Select Filters in the Visual Filter

Unlike micro charts, the visual filter charts are interactive. In live search mode, selecting a filter value triggers data filtering in the content area. Both single and multiple selection are supported.

To select a filter value, the user clicks on a value in the chart. The filter can be removed by either clicking on the value help link, or by clicking on the same value in the chart again. The user can select more filter values using the value help or select popover.

Any data point that is selected in a chart still remains selected when the user selects a data point in another chart. Filter values react on each other. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.

Switch Views: Hybrid, Chart-Only, and Table-Only

Users can switch between the hybrid view, chart-only view, and table-only view.

If the user selects values and then switches the view, the selection remains intact. See the table below for more details.

Switch Description
Hybrid view to table view Table selection remains intact
Hybrid view to chart view Chart selection remains intact
Chart view to hybrid view Chart selection remains intact; corresponding table selections are displayed
Table view to hybrid view Table selection remains intact

Show/Hide Table Entries in Hybrid View and Table View

The table toolbar for the analytical list page offers a Show   and Hide    table entries feature as a toggle switch in the hybrid and table views:

  • If the Show icon is active, the table shows all items. These include highlighted entries (where values are selected in the chart) and non-highlighted entries.
  • If the Hide icon is active, the table shows only items that are selected in the chart.

For example, if the user selects SAP’s Sales Revenue for 2012 as Customer in the chart, all records relating to SAP’s Sales Revenue for 2012 are highlighted (but not selected) in the table. Note that the record is still highlighted even if Customer not displayed as a column in the table. If the table rows are grouped, the entire grouping is highlighted, even if only one record within the grouped set is affected by the chart selection. All values that are not selected in the chart are “hidden” and are not shown in this table mode.

Guidelines

Show the filter dimension with one measure in the visual filter, not multiple measures

Filter dimensions in the compact filters (filter bar) have exactly one representation in the visual filter bar.
Do not show the same filter dimension with two or more different measures at the same time in the visual filter bar. The example shows the filter Dimension Year with two different measures Revenue and Quantity. Showing the filter dimensionYear twice is not in sync with the compact filter, where it is shown only once. Furthermore, matching between the two filter types will not work.

If the use case requires you to show a dimension with different measures, consider using an overview page instead.

Do
For each dimension display exactly one representation in the visual filter bar.
For each dimension display exactly one representation in the visual filter bar.
Don't
Do not use the same filter dimension with different measures
Do not use the same filter dimension with different measures

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Worklist Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see Worklist in the SAP Fiori Elements section.

Intro

A worklist displays a collection of items a user needs to process. Working through the list usually involves reviewing details of the items and taking action. In most cases, the user has to either complete a work item or delegate it.

The worklist is a versatile floorplan that offers three main variants: a simple worklist (plain page with a table), a worklist with tabs, and a worklist with one or more KPI tags. These variants are based on different user needs and use cases. For more details, see the options under Components.

Simple worklist
Simple worklist
Worklist with tabs
Worklist with tabs
Worklist with KPI
Worklist with KPI

When to Use

Use the worklist floorplan if:

  • Users have numerous work items and need to decide which ones to process first.
  • You want to give users a direct entry point for taking action on work items.
  • Users need to work with multiple views of the same content (for example, items that are “Open”, “In Process”, or “Completed”). You want to offer tabs for switching between views.

Do not use the worklist floorplan if:

  • The items you are showing are not work items.
  • You want to show large item lists, or combine different data visualizations (charts or tables). In this case, use the list report floorplan instead.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping. Use the list report floorplan instead.

Components

The worklist floorplan is based on the dynamic page layout and is divided into a header and the page content. The header has a header title, but no header content. As a result, the expand/collapse and pin features are not needed.

The worklist consists of the following areas:

  1. The header title containing:
  2. The content area displaying:
  3.  A footer toolbar (optional) including:

Header Title

Variant Management

Variant management is optional. If used, apply it to the whole page. Use the variants to save and restore all settings, including selected tabs, all tables, and all personalization settings.

If variant management is not needed, just show a title that describes the view.

Key performance indicator/ KPI

The key performance indicator (KPI) allows users to track the impact of their actions while processing the worklist. You can display one or more KPIs within the KPI container next to the page title to show the status/criticality of the tag.

Header Toolbar (Global Actions)

Use the header toolbar for global actions, such as Share. Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information, see Global Actions.

Content Area

Tab Bar

The tab bar is part of the page content container, and must be sticky.

In the worklist, the icon tab bar works as a filter on the content below. It enables users to call up work items in specific categories. This can help users to identify critical items more easily. Different tabs show different perspectives on the same dataset.

Guidelines

  • Display the number of items shown in the table on each tab (sap.m.IconTabFilter, property: count).
  • Only use icons if you need to display semantic colors on the icon tab bar. You can offer visual orientation by applying semantic colors to the icons for the different categories (for example, red for the Error tab).
  • Bear in mind that each tab in an icon tab bar contains its own table toolbar.

Table Toolbar

Display at least a table title (ideally with an item count) and, if needed, icon-only buttons for sorting, grouping, and column settings. For filter, sort, and group, show a view settings dialog with only the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

Table

In general, you can use any kind of table and list for the worklist floorplan in the content area. Nevertheless, we recommend using the responsive table. For more information, see Responsiveness.

If there are no items to display, use the “no data text” for the corresponding table. Explain why the table is empty, and what the user needs to do to display items. For more information and examples see: “No data” texts.

The most basic version of the worklist is the simple worklist: a plain page with a table.

Simple worklist without tabs
Simple worklist without tabs

Footer Toolbar

The footer toolbar is an optional component of the worklist floorplan. Only use it if finalizing actions for the whole page and/or the message popover are required. Keep in mind that the footer toolbar is only visible in edit mode. For more information, see the guidelines for the footer toolbar.

Guidelines
Follow the standard naming conventions for all objects, the object name, action buttons, and the title in the shell bar. For more information, see:

Behavior and Interaction

Initial Focus

When the worklist is loaded, set the initial focus as follows:

  • If the worklist contains only a table, set the focus on the first line item of the table.
  • If the worklist contains an icon tab bar, set the focus on the first tab.

Sticky Behavior

The tab bar, table toolbar, and column headers must all be “sticky”. This means that they stay fixed at the top when the user scrolls down the page. 

Table Navigation

The worklist floorplan supports three types of navigation at item level:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a listtree, or responsive table, clicking the line item triggers the navigation. In a grid tableanalytical table, or tree table, clicking the navigation indicator triggers the navigation. Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use it only if the navigation indicator points to a different target.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually a list report. Use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting. In charts, offer the drilldown navigation link in the popover for the chart element, and navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains a cross-reference to another entity, such as a person or business object, use a link to display the corresponding data point in the table. Triggering the link opens a quick view.

Actions

Action placement in the worklist
Action placement in the worklist

The worklist offers four locations for actions:

  1. Global actions in the header toolbar
  2. Table actions in the table toolbar
  3. Line item actions
  4. Finalizing actions in the footer toolbar
Guidelines

  • Hide actions that cannot be used. This can be the case if the user has no authorization or the line item has the wrong state.
  • To save space, group similar actions using a menu button. For example: 
    • Release and Release with Conditions
    • Add Contact and Replace Contact
    • Edit Account and Edit Title
  • If there is not enough space to show all actions, they are moved to an overflow menu, depending on their priority. For more information, see Action Placement. 

1. Global Actions

Place actions that affect the entire page in the header title within the header toolbar. Examples of global actions are EditDelete, or Share.
Actions in the header toolbar are always right-aligned. Emphasize the most important action and place it on the very left.

For more information, see Header Toolbar.

2. Table Actions

Place actions that affect the content of a table in the table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available, such as Create for new objects. Other actions are only relevant if items have been selected. For example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item.

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions (such as Delete) when no items or only unsuitable items have been selected .
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

For more information, see UI Element States – Control States.

Partial Processing

Allow the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

For more information on table and chart actions, see:

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this option only for specific, frequently-used tasks. If the same action can also be applied to several items at once, you can also place it on the table toolbar. However, if you do so, reconsider whether you really need to offer the action at line item level. For more information, see Actions in Table Rows.

Examples of line item actions include: Start/Stop (a batch job), Approve (an item) or Assign (an item).

Do not disable line item actions. If an action can’t be used, hide it.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar. Examples of finalizing actions include SaveCancel, and Submit.

Bear in mind that even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Guidelines
Often, users will need more information before they can take action. If this is the case, offer navigation to the work item details, and show all the relevant actions in the detail screen. Once the user has completed the task, the app should:

  • Return the user to the worklist
  • Remove the processed item from the list, or move it to a “completed” section
  • Confirm the user’s action with a message toast

Responsiveness

Responsiveness for the worklist follows the dynamic page layout. In general, you can use any kind of table and list for the worklist floorplan in the content area. To ensure that the worklist is fully responsive and runs on all devices, we recommend using the responsive table. Note that the floorplan is not fully responsive if the following controls are used:

  • Grid table and tree table: Supported on desktop and tablet devices only. Implement a fallback solution on smartphones.
  • Smart table: The smart table is a wrapper around the different existing table controls. On smartphones, you can use a responsive table inside the smart table. If you use a grid table inside the smart table, implement a fallback solution for smartphones, as above.

For more details, see the respective guideline articles.

Worklist floorplan - Size L/XL
Worklist floorplan - Size L/XL
Worklist floorplan - Size M
Worklist floorplan - Size M
Worklist floorplan - Size S
Worklist floorplan - Size S

Examples

Worklist floorplan - Size L/XL
Worklist floorplan - Size L/XL
Worklist floorplan - Size M
Worklist floorplan - Size M
Worklist floorplan - Size S
Worklist floorplan - Size S

Top Tips

General

  • Decide whether the worklist or the list report is the right floorplan for your needs: The focus of the worklist floorplan is on processing items. This differs from the list report floorplan, which focuses on finding and acting on relevant items from a large dataset.
  • Choose one of the three basic worklist variants, based on your use case and the user’s needs.

Header

  • Always display a title or offer variant management.

Content

  • We recommend using the responsive table for a fully responsive worklist.
  • In the table toolbar, display at least a table title (ideally with an item count). If needed, offer icon-only buttons for sorting, grouping, and column settings.
  • The tab bar, table toolbar, and column headers of all table types must all be sticky.

Footer Toolbar

  • If you are using the icon tab bar, remember that there is only one footer toolbar for all tabs.
  • Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Related Links

Elements and Controls

Implementation

List Report Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the list report header and content area in the SAP Fiori Elements section.

Intro

With a list report, users can view and work with a large set of items. This floorplan offers powerful features for finding and acting on relevant items. It is often used as an entry point for navigating to the item details, which are usually shown on an object page.

List report
List report

When to Use

Use the list report floorplan if:

  • Users need to find and act on relevant items within a large set of items by searching, filtering, sorting, and grouping.
  • You want to let users display the whole dataset using different visualizations (for example, as a table or as a chart), but no interactions are required between these visualizations. An example use case might be reporting.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. You want to let users switch views using tabs, segmented buttons, or a select control.
  • Drilldown is rarely or never used, or is only available via navigation to another page, and not as free or flexible drilldown within the page itself.
  • Users work on different kinds of items.

Do not use the list report floorplan if:

  • Users need to see or edit one item with all its details. Use the object page floorplan instead.
  • Users need to find one specific item, and the item or an identifying data point is known to the user (such as a code). Use the initial page floorplan instead.
  • Users need to work through a comparably small set of items, one by one. Use the worklist floorplan instead.
  • Users need to extract knowledge or insights from data, either to better understand the current situation, or to identify the root cause for a certain value.  Use the analytical list page instead.
  • Charts are not only used for visualization. Users need to switch between integrated chart and table views (hybrid view). Use the analytical list page instead.
  • Users need to see the impact of their action on a KPI. Use the analytical list page instead.
  • Users need to see not only the result, but also the impact of their filter settings directly in a chart representation. Use the analytical list page instead.

Components

The list report is a full screen floorplan. It can also be used in flexible column layout, where it is usually displayed in the first column.

The list report page is based on the dynamic page, and is divided into a header area and a content area, as defined by the dynamic page layout.

Schematic visualization of a list report
Schematic visualization of a list report
  • The dynamic page header (1) contains the header title (2) and the expandable/collapsible header content (5).
    • The header title (2) is part of the header area and should display a title or variant (3) for the whole page (mandatory), filter information (if the header is collapsed), and a header toolbar (4) with global actions, such as Share (optional).
    • The header content (5) is used to display the filter bar or the smart filter bar (mandatory).
    • The header features (6) allow users to expand/collapse the header (6a) (mandatory) and pin/unpin the header area (6b).
  • The content area (7) is used to display:
    • A table/chart title, textual icon tab bar, or select (8) (optional)
    • One table/chart toolbar (9) per tab
    • One or multiple tables and/or charts (10). You can use any kind of table. If you use a chart, you can display the chart on its own (without a table) or as an additional view for an existing table (switchable).
  • The footer toolbar (11): If needed, use a footer toolbar to display the messaging button and finalizing actions.

Behavior and Interaction

Initial Focus

When the list report is loaded, set the initial focus as follows:

  • If the header is expanded, set the focus on the first filter field (live update mode) or on the Go button (manual update mode).
  • If the header contains empty mandatory fields, set the focus on the first empty mandatory field.
  • If the header is collapsed, set the focus on the first table row.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see:

Header Title

Variant Management

Variant management is optional. If you use variants, we recommend using one variant management control for the whole page. Use the variants to save and restore all settings for filters, selected tabs, all tables, and all charts.

In some specific cases, you might need to add a second variant at control level. This can be the case when the user needs to change the view settings of a list independently of the page filters. However, the default is to use a single variant management control for the entire page.

Users can choose a default variant, which is selected every time the app is started.

Allow users to choose whether a variant should be executed automatically as soon as it has been selected. Not executing a variant automatically allows the user to add or remove filters before the dataset is updated. Provide this option only if the filter bar is in manual update mode. For live updates, this option is not required.

If variant management is not needed, show a title that describes the current view instead.

Variant management
Variant management

Filter Information

Display the filter information only if the header content is collapsed. Use the format Filtered By (x): followed by a comma-separated list of the filters currently applied. “x” stands for the number of applied filters.

Show up to 5 filters. If more filters have been applied, show an ellipsis (“…”) at the end of the string.

If no filters have been applied, show Not filtered.

Filter information
Filter information

Header Toolbar

Use the header toolbar for non-finalizing global actions, such as Share. Share opens an action sheet, which features Save as Tile (if the SAP Fiori launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

If the content area contains a grid table, an analytical table, a tree table, or any other content with its own scrollbar, display a Show Filters / Hide Filters button for expanding and collapsing the header content.

In addition, offer any other global, non-finalizing actions needed. Hide actions that cannot be used at all (for example, because of access rights). To save space on the header toolbar, group similar actions using a menu button.
For more information on global actions, see the guidelines for the header toolbar.

Header toolbar
Header toolbar

Header Content

Search

The filter bar can contain a search field (optional). If you use the search field, the content shows only items that match both the search terms and the filter criteria.

The search generally searches across all available columns of the table, regardless of whether or not they are visible. In rare cases, some columns might not be included due to technical constraints. If the search does not apply to multiple columns, do not offer the search field.

Filters

Filters are applied to all content, including all tables and charts. To improve performance, consider providing mandatory filter fields and/or default settings for filters.

If the list report loads automatically when the page loads, ensure that mandatory filter fields always have default values to avoid error messages.

The filter bar offers two different update modes:

  • The live update mode (recommended) triggers filtering immediately whenever a filter setting is changed. If the search field is used, the search is triggered together with all filter settings with every letter typed.
  • The manual update mode displays a Go button, which triggers the filtering. If the search field is used, the search is executed together with all filters as soon as the Go button is pressed.
    Make sure that all tables and charts in the content area are in a busy state until the new data is available. Also ensure that the content is grayed out as soon as the filter settings do not correspond to the content shown (any table, property: showOverlay). This is usually the case if the content is not yet updated and the Go button needs to be triggered.

Use the manual update mode only if you run into performance problems while loading the table data.

Regardless of the update mode, make sure that the filter bar and the visible content match: The filter bar must always describe the items that are shown in the content area.

Filter bar
Filter bar

The header content collapses when the user scrolls down the page (except for desktop-centric tables), and expands again when the user scrolls back up (“snap on scroll”). Users can pin the header content to keep it visible. For more information, see Dynamic Page – Expand/Collapse Header.

Exception: The “Snap on scroll” and “pin header” features are not provided if the main content area contains desktop-centric tables (grid tablesanalytical tables, tree tables) or any other content with its own scrollbar. In these cases, users need to expand and collapse the header content manually using the Show Filters / Hide Filters button.

When starting the application, expand the header content if no query was fired (and the table is therefore empty). Otherwise, collapse the header content.

Content Area

General Layout

There are three basic list report layouts: simple content, multiple views, and multiple content. These are described in more detail below.

Simple Content

In most cases, the content consists of just a table toolbar and a table. If needed, provide an option to switch between the table and a corresponding chart view.

Multiple Views

For more complex scenarios, provide multiple views of the same content. Multiple views involve one or more of the following:

  • Showing the same table, but with different columns.
  • Showing the same table in different pre-filtered states. These states are usually based on a status column, for example, items that are Open, In Process, or Closed. Make sure that the corresponding filter is not offered on the filter bar.
  • Differentiating between the items displayed in the content in some other fundamental way.

There are two options for switching between different views:

The first option is to replace the table title with a content switch. Use this approach if all views share the same sort and group states, as well as the same actions.

The content switch can be:

If you have both a table title and a content switch, display the table title first, then the content switch. Place both on the left side of the table toolbar. Since the content switch is placed on the table toolbar, the same actions are shown for all views.

If you are using the content switch together with charts, ensure that the chart also reacts to the content switch. This can be done by:

  • Filtering the data that influences the display of the chart
  • Changing the measures and/or dimensions (for example, View by Country/RegionView by Customer, …)

The second option for switching views is to show each view in a tab container of the icon tab bar. Use this approach if all views show different states of the same data (sort states, group states, as well as item selection). Using tabs also allows you to offer different actions on the table toolbar for each view.

Table toolbar with a segmented button for up to three different views
Table toolbar with a segmented button for up to three different views
Table toolbar with a select control for more than three views
Table toolbar with a select control for more than three views

Multiple Content

To support even more complex use cases, a list report floorplan can also contain multiple tables that display different kinds of objects. The filter bar settings are applied to all of these tables in parallel. For example, a customer overview list report might display different tables for invoices, deliveries, and overdue payments. All of these tables can be filtered for a specific customer and a specific date.

Display each table inside a tab container of an icon tab bar. This also allows you to offer different actions on the table toolbar for each table.

List report floorplan with multiple tables placed in multiple tabs
List report floorplan with multiple tables placed in multiple tabs

Icon Tab Bar

Use the text-only version of the icon tab bar. Display the number of items shown in the respective table on each tab (sap.m.IconTabFilter, property: count).

Icon tab bar
Icon tab bar

Table Toolbar

Display at least a table title (ideally with an item count) and icon-only buttons for sorting, grouping, and column settings. Do not offer additional filter settings on the table toolbar. For sort and group, show a view settings dialog with just the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

If alternative visualizations are provided (such as charts), offer an additional view switch on the table toolbar. Triggering the switch replaces the current visualization with another one. If a table and chart need to be shown in parallel, offer a switch for the combined view.

In rare cases, you can offer an additional layout variant on the table toolbar. The layout variant stores view settings like the column order and the sort and group settings. If you use a layout variant, do not store the table settings in the filter variant. Offer this additional layout variant only if there is a strong use case for switching filter and layout variants independently. If there is no strong use case, or you are unsure, do not use a layout variant at all.

Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Toolbar with a switch between table and chart visualizations
Toolbar with a switch between table and chart visualizations
Toolbar with a table title and layout variant
Toolbar with a table title and layout variant
Toolbar with additional actions
Toolbar with additional actions

In addition, offer any other actions needed. Disable selection-dependent actions (such as Delete) if no items are selected, or if the action cannot be applied to the selected items. Always enable selection-independent actions (such as Add). To save space on the table toolbar, group similar actions using a menu button. For example:

  • Release and Release with Conditions
  • Add Contact and Replace Contact
  • Edit Account and Edit Title

For more information on table/chart actions, see the guidelines for the table toolbar, the chart toolbar, and for managing objects.

Do
Table without the filter icon
Table without the filter icon
Don't
Table with a filter option
Table with a filter option

Table

If there are no items to display, use the “no data” text of the corresponding table. Explain why the table is empty, and what the user needs to do to display items.

Examples:

  • After starting the app, no filters are applied:
    To start, set the relevant filters.
  • The filter was executed, but no items were found. This can also happen if the list report was opened by a related app, and the filter criteria were transferred automatically:
    No data found. Try adjusting the filter settings.

If you are using a responsive table, always enable “scroll to load” behavior.

Sticky Behavior

The icon tab bar, table/chart toolbar, and column headers of all table types must be “sticky”. This means that they stay fixed on top when the user scrolls down the page.

Navigation

There are three types of navigation at item level in the list report floorplan:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a list, tree, or responsive table, clicking the line item triggers the navigation.
    In a grid table, analytical table, or tree table, clicking the navigation indicator triggers the navigation.
    Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use this only if the navigation indicator is being used for a different target.
    Only show navigation indicators for target pages the user is authorized to access.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually another list report. In this case, use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting.
    In charts, offer the drilldown navigation link in the popover for the chart element. In this case, also navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains cross-references to other entities, such as people or business objects, use a link to display the corresponding data point in the table. Triggering the link opens a quick view. Typically, the quick view displays basic details of the referenced object and a navigation link to another page (usually an object page) or another app that shows the object details.

Working Modes

When the user edits a list item in a filtered list, the changed item might no longer match the filter criteria. For this use case, there are two alternative working modes:

  • Worklist mode

    Users want to see a direct system reaction to their changes. Items that don’t match the current filters
    vanish immediately. This mode applies to about 80% of all use cases.
  • Continuous working mode

    The user still needs the edited item, even though it no longer matches the filter criteria. The item stays in the list until the next filtering process is triggered. The item is marked, and a system message informs the user about the filter mismatch. This mode applies to about 20% of all use cases.

The app developer can choose the appropriate working mode for the app use case.

Footer Toolbar

Use the footer toolbar to display the messaging button and finalizing actions. Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Always show the footer toolbar in edit mode.

Hide actions that cannot be used at all (for example, if the user doesn’t have authorization). To save space on the footer toolbar, group similar actions using a menu button.

For more information on finalizing actions, see the guidelines for the footer toolbar.

Footer toolbar
Footer toolbar

Actions

Places for actions in the list report
Places for actions in the list report

(1) Global actions in the header toolbar
(2) Table actions in the table toolbar
(3) Line item actions
(4) Finalizing actions in the footer toolbar

1. Global Actions

Place actions that affect the entire page in the header toolbar in the header title (1). These include the following standard actions:

Hide actions that cannot be used at all (for example, because the user has no authorization). To save space on the header toolbar, group similar actions using a menu button.

Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information on global actions, see the guidelines for the header toolbar.

2. Table/Chart Actions

Place actions that affect the content of a table or chart in the table toolbar (2).

Information
When you use the list, tree, or responsive table, actions on the table toolbar move up out of the visible screen area when the user scrolls down.

If you are using an icon tab bar, be aware that each tab contains its own table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available (such as Create for new objects). Other actions are only relevant if items have been selected (for example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item).

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions when no items have been selected.
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information, also see UI Element States – Control States.

Partial Processing

Enable the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide a sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

Add/Create Items Using a Dialog

You can let users add or create new items at list report level using a dialog. This approach is recommended for cases where there are fewer than 8 required fields. Display the action in the table toolbar.

You can use this option for both draft and non-draft scenarios.

More Information

For more information on table and chart actions, see the guidelines for the table toolbar, chart toolbar, and for managing objects.

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this only for specific, frequently used tasks (3). If the same action can also be applied to several items at once, feel free to also place it on the table toolbar. Nevertheless, if you do so, reconsider whether you really need to offer the action at line item level. Examples of line item actions include:

  • Start/Stop (a batch job)
  • Approve (an item)
  • Assign (an item)

Do not disable line item actions. If an action cannot be used, hide it. This can be the case if the user has no authorization or the line item is in the wrong state.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar (4).

Examples:

  • Save
  • Cancel
  • Submit

Please be aware: Even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information on finalizing actions, see the guidelines for the footer toolbar.

Responsiveness

In general, the list report floorplan is responsive. However, there are exceptions if the following controls are used:

  • Grid table, analytical table: Supported on desktop and tablet devices only. On smartphones, replace these tables with something else, such as a responsive table or a list. In rare cases, displaying only a chart on smartphones might also suffice.
  • Tree table: Supported on desktop and tablet devices only. For smartphones, there is no equivalent alternative. In some cases, a tree, the category navigation pattern, or a chart might work.
  • Smart table: The smart table is a wrapper around the different existing table controls. If a grid table, analytical table, or tree table is used inside the smart table, you will run into the issues mentioned above. On a smartphone, you can use a responsive table inside the smart table. For the tree table, you need to replace the smart table as described above.

For more details, see the respective guideline articles.

List report - Size L
List report - Size L
List report - Size M
List report - Size M
List report - Size S
List report - Size S

Examples

The examples below show variants of the list report with the most commonly-used controls. You can also see the manual update mode (with a “Go” button) and the live update mode (no “Go” button).

Top Tips

  • Avoid loading list report page without any data, even if there are no mandatory filters.
  • Use only one key identifier in the table.
  • If you are using the icon tab bar, place it beneath the filters.
  • In the icon tab bar, use text labels only (without icons).
  • Choose selection controls that best fit your use case.
  • Make sure that columns in the table are aligned correctly.
  • Ensure that mandatory filter fields always have default values.
  • Avoid using variant management for tables. Use the page variant instead.
  • Always enable actions like Add, Create or Edit. Once Edit is triggered, replace it with Save and Cancel.
  • Never place finalizing actions in the header toolbar, even if they affect the whole page.
  • When using the icon tab bar, be aware that each tab contains its own table toolbar.

 

Related Links

Elements and Controls

Object Page Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the object page header, content area, and footer bar in the SAP Fiori Elements section.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan
Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.

List report floorplan
  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a code identified by a scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Object marker (optional)
  5. Header toolbar with global actions (optional)
  6. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
  7. Header content (optional)
Object page with the expanded dynamic page header
Object page with the expanded dynamic page header
Object page with the collapsed dynamic page header
Object page with the collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer text (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Progress indicator
  4. Footer text (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use the rating indicator facet to display a single rating value or an aggregated rating (such as an average rating for a product). The facet structure is slightly different in each case.

Single rating value:

The single rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary texts
  3. Rating indicator
Rating indicator facet - Single rating
Rating indicator facet - Single rating

Aggregated rating:

The aggregated rating consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer text (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.
Rating indicator facet - Aggregated rating
Rating indicator facet - Aggregated rating
Guidelines
We recommend the following property settings when using the rating indicator in header facets:

  • Show 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

Navigation Bar (optional)

If your content can be shown in just one section, use the dynamic page layout. In the dynamic page layout with one section, the header area can’t be edited when the page is in edit mode.

If you need to structure your content in different sections, use the object page layout. You can only have several sections in the object page layout. When you use the object page layout, you can also make the header editable when the page is in edit mode. However, try to avoid having an editable header and move the content from the header to the sections instead.

If you need only one section, but require an editable header, use the object page layout. An object page with only one section doesn’t have an anchor bar. To offer the Edit action in the anchor bar, you must create the anchor bar with a section.

If the content is complex there are two ways to structure it:

  • Anchor bar navigation (default)
  • Tab bar navigation

Anchor Bar Navigation

The anchor bar consists of a series of links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link navigates to the respective section. The anchor bar remains visible when the user scrolls down the page.

Use anchor bar navigation when the content belongs together but users might want to jump to specific parts directly.

For more information, see Anchor Bar Navigation.

Tab Bar Navigation

The tabs are a series of links to subpages, arranged horizontally at the top of the page. Clicking a link navigates to the respective subpage. The tabs remain visible when the user scrolls down the page.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

For more information, see Tab Bar Navigation.

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking on these links directs the user to specific sections of the page. The anchor links remain visible when the user scrolls down the page.

Object page – Anchor bar navigation
Object page – Anchor bar navigation
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu
Developer Hint
Make sure that the UpperCaseAchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness
Developer Hint
For non-SAP Fiori element object pages only:

The content of the dynamic page header, navigation bar, (sub)section titles, and subsections must be vertically aligned. To achieve this, apply the sapUxAPObjectPageSubSectionAlignContent CSS class to the content of the subsections and set the width property to “auto”.

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. Only use the form title if you are using several forms within the same subsection.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Block base
Object page – Block base

Tables

If a section or subsection contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section or subsection title acts as the table title.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 400 Tab navigation
More than 400 or tab approach is unsuitable Navigation to list report

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 5 to 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but less than 400, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to List Report

For tables with more than 400 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend only showing a preview of no more than 20 items. Ideally, you should have about 10 items. This can be achieved by prefiltering and/or sorting the table, and, if necessary, setting a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate list report containing the full table. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If the loading takes a long time, a busy indicator is shown on top of the section or item until the content it loaded and visible.

Busy indicators for sections still loading
Busy indicators for sections still loading

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used in edit and create mode for closing and finalizing actions, such as Save, Post, Accept, Reject, and Activate.

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Initial Focus

When the object page is loaded, set the initial focus as follows:

  • If the object page is in display mode, set the focus on the first section.
  • If the object page is in edit mode, set the focus on the first empty mandatory field.
  • If there are no mandatory fields, set the focus on the first empty field.

Edit

In edit mode, the object page can contain a mixture of editable and read-only content.

If the user needs to edit elements in the header, a header section is added in the content area to enable editing.

Use the same content layout for both display and edit mode. Content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Manage Objects – Create, Edit, Delete.

Editing the Header

The object page header can be edited in two ways:

  • Global edit
  • Partial edit

Global Edit

The header can be edited when the entire object page is in edit mode.

Because the header snaps on scroll, there are no editable forms in the header itself. Instead, a temporary header section is added before the other sections of the page. The title bar information and all editable fields from the header container move from the header to the new editable header section. Any non-editable content displays as read-only in the new header section. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts).

If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears.

If your object page has no anchor bar in display mode, and the header section has only a few editable fields, do not add navigation in edit mode.

The header container in edit mode may contain independent facets that are not included in the header content in display mode. They provide information to assist editing.

If the entire object page is in edit mode, but there is no editable information in the header, no editable header section is added.

Any changes made to the header are not reflected until the user saves them.

Partial Edit

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing CTRL+ENTER has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, dispaly the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size M
Object page – Size M
Object page – Size L
Object page – Size L

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see Manage Objects – Naming Guidelines and Launchpad Shell Bar – Page Title and Navigation Menu.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

List Report Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see the topics for the list report header and content area in the SAP Fiori Elements section.

Intro

With a list report, users can view and work with a large set of items. This floorplan offers powerful features for finding and acting on relevant items. It is often used as an entry point for navigating to the item details, which are usually shown on an object page.

List report
List report

When to Use

Use the list report floorplan if:

  • Users need to find and act on relevant items within a large set of items by searching, filtering, sorting, and grouping.
  • You want to let users display the whole dataset using different visualizations (for example, as a table or as a chart), but no interactions are required between these visualizations. An example use case might be reporting.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. You want to let users switch views using tabs, segmented buttons, or a select control.
  • Drilldown is rarely or never used, or is only available via navigation to another page, and not as free or flexible drilldown within the page itself.
  • Users work on different kinds of items.

Do not use the list report floorplan if:

  • Users need to see or edit one item with all its details. Use the object page floorplan instead.
  • Users need to find one specific item, and the item or an identifying data point is known to the user (such as a code). Use the initial page floorplan instead.
  • Users need to work through a comparably small set of items, one by one. Use the worklist floorplan instead.
  • Users need to extract knowledge or insights from data, either to better understand the current situation, or to identify the root cause for a certain value.  Use the analytical list page instead.
  • Charts are not only used for visualization. Users need to switch between integrated chart and table views (hybrid view). Use the analytical list page instead.
  • Users need to see the impact of their action on a KPI. Use the analytical list page instead.
  • Users need to see not only the result, but also the impact of their filter settings directly in a chart representation. Use the analytical list page instead.

Components

The list report is a full screen floorplan. It can also be used in flexible column layout, where it is usually displayed in the first column.

The list report page is based on the dynamic page, and is divided into a header area and a content area, as defined by the dynamic page layout.

Schematic visualization of a list report
Schematic visualization of a list report
  • The dynamic page header (1) contains the header title (2) and the expandable/collapsible header content (5).
    • The header title (2) is part of the header area and should display a title or variant (3) for the whole page (mandatory), filter information (if the header is collapsed), and a header toolbar (4) with global actions, such as Share (optional).
    • The header content (5) is used to display the filter bar or the smart filter bar (mandatory).
    • The header features (6) allow users to expand/collapse the header (6a) (mandatory) and pin/unpin the header area (6b).
  • The content area (7) is used to display:
    • A table/chart title, textual icon tab bar, or select (8) (optional)
    • One table/chart toolbar (9) per tab
    • One or multiple tables and/or charts (10). You can use any kind of table. If you use a chart, you can display the chart on its own (without a table) or as an additional view for an existing table (switchable).
  • The footer toolbar (11): If needed, use a footer toolbar to display the messaging button and finalizing actions.

Behavior and Interaction

Initial Focus

When the list report is loaded, set the initial focus as follows:

  • If the header is expanded, set the focus on the first filter field (live update mode) or on the Go button (manual update mode).
  • If the header contains empty mandatory fields, set the focus on the first empty mandatory field.
  • If the header is collapsed, set the focus on the first table row.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see Manage Objects – Naming Guidelines and Launchpad Shell Bar – Page Title and Navigation Menu.

Header Title

Variant Management

Variant management is optional. If you use variants, we recommend using one variant management control for the whole page. Use the variants to save and restore all settings for filters, selected tabs, all tables, and all charts.

In some specific cases, you might need to add a second variant at control level. This can be the case when the user needs to change the view settings of a list independently of the page filters. However, the default is to use a single variant management control for the entire page.

Users can choose a default variant, which is selected every time the app is started.

Allow users to choose whether a variant should be executed automatically as soon as it has been selected. Not executing a variant automatically allows the user to add or remove filters before the dataset is updated. Provide this option only if the filter bar is in manual update mode. For live updates, this option is not required.

If variant management is not needed, show a title that describes the current view instead.

Variant management
Variant management

Filter Information

Display the filter information only if the header content is collapsed. Use the format Filtered By (x): followed by a comma-separated list of the filters currently applied. “x” stands for the number of applied filters.

Show up to 5 filters. If more filters have been applied, show an ellipsis (“…”) at the end of the string.

If no filters have been applied, show Not filtered.

Filter information
Filter information

Header Toolbar

Use the header toolbar for non-finalizing global actions, such as Share. Share opens an action sheet, which features Save as Tile (if the SAP Fiori launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

If the content area contains a grid table, an analytical table, a tree table, or any other content with its own scrollbar, display a Show Filters / Hide Filters button for expanding and collapsing the header content.

In addition, offer any other global, non-finalizing actions needed. Hide actions that cannot be used at all (for example, because of access rights). To save space on the header toolbar, group similar actions using a menu button.
For more information on global actions, see the guidelines for the header toolbar.

Header toolbar
Header toolbar

Header Content

Search

The filter bar can contain a search field (optional). If you use the search field, the content shows only items that match both the search terms and the filter criteria.

The search generally searches across all available columns of the table, regardless of whether or not they are visible. In rare cases, some columns might not be included due to technical constraints. If the search does not apply to multiple columns, do not offer the search field.

Filters

Filters are applied to all content, including all tables and charts. To improve performance, consider providing mandatory filter fields and/or default settings for filters.

If the list report loads automatically when the page loads, ensure that mandatory filter fields always have default values to avoid error messages.

The filter bar offers two different update modes:

  • The live update mode (recommended) triggers filtering immediately whenever a filter setting is changed. If the search field is used, the search is triggered together with all filter settings with every letter typed.
  • The manual update mode displays a Go button, which triggers the filtering. If the search field is used, the search is executed together with all filters as soon as the Go button is pressed.
    Make sure that all tables and charts in the content area are in a busy state until the new data is available. Also ensure that the content is grayed out as soon as the filter settings do not correspond to the content shown (any table, property: showOverlay). This is usually the case if the content is not yet updated and the Go button needs to be triggered.

Use the manual update mode only if you run into performance problems while loading the table data.

Regardless of the update mode, make sure that the filter bar and the visible content match: The filter bar must always describe the items that are shown in the content area.

Filter bar
Filter bar

The header content collapses when the user scrolls down the page (except for desktop-centric tables), and expands again when the user scrolls back up (“snap on scroll”). Users can pin the header content to keep it visible. For more information, see Dynamic Page – Expand/Collapse Header.

Exception: The “Snap on scroll” and “pin header” features are not provided if the main content area contains desktop-centric tables (grid tablesanalytical tables, tree tables) or any other content with its own scrollbar. In these cases, users need to expand and collapse the header content manually using the Show Filters / Hide Filters button.

When starting the application, expand the header content if no query was fired (and the table is therefore empty). Otherwise, collapse the header content.

Content Area

General Layout

There are three basic list report layouts: simple content, multiple views, and multiple content. These are described in more detail below.

Simple Content

In most cases, the content consists of just a table toolbar and a table. If needed, provide an option to switch between the table and a corresponding chart view.

Multiple Views

For more complex scenarios, provide multiple views of the same content. Multiple views involve one or more of the following:

  • Showing the same table, but with different columns.
  • Showing the same table in different pre-filtered states. These states are usually based on a status column, for example, items that are Open, In Process, or Closed. Make sure that the corresponding filter is not offered on the filter bar.
  • Differentiating between the items displayed in the content in some other fundamental way.

There are two options for switching between different views:

The first option is to replace the table title with a content switch. Use this approach if all views share the same sort and group states, as well as the same actions.

The content switch can be:

If you have both a table title and a content switch, display the table title first, then the content switch. Place both on the left side of the table toolbar. Since the content switch is placed on the table toolbar, the same actions are shown for all views.

If you are using the content switch together with charts, ensure that the chart also reacts to the content switch. This can be done by:

  • Filtering the data that influences the display of the chart
  • Changing the measures and/or dimensions (for example, View by Country/RegionView by Customer, …)

The second option for switching views is to show each view in a tab container of the icon tab bar. Use this approach if all views show different states of the same data (sort states, group states, as well as item selection). Using tabs also allows you to offer different actions on the table toolbar for each view.

Table toolbar with a segmented button for up to three different views
Table toolbar with a segmented button for up to three different views
Table toolbar with a select control for more than three views
Table toolbar with a select control for more than three views

Multiple Content

To support even more complex use cases, a list report floorplan can also contain multiple tables that display different kinds of objects. The filter bar settings are applied to all of these tables in parallel. For example, a customer overview list report might display different tables for invoices, deliveries, and overdue payments. All of these tables can be filtered for a specific customer and a specific date.

Display each table inside a tab container of an icon tab bar. This also allows you to offer different actions on the table toolbar for each table.

List report floorplan with multiple tables placed in multiple tabs
List report floorplan with multiple tables placed in multiple tabs

Icon Tab Bar

Use the text-only version of the icon tab bar. Display the number of items shown in the respective table on each tab (sap.m.IconTabFilter, property: count).

Icon tab bar
Icon tab bar

Table Toolbar

Display at least a table title (ideally with an item count) and icon-only buttons for sorting, grouping, and column settings. Do not offer additional filter settings on the table toolbar. For sort and group, show a view settings dialog with just the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

If alternative visualizations are provided (such as charts), offer an additional view switch on the table toolbar. Triggering the switch replaces the current visualization with another one. If a table and chart need to be shown in parallel, offer a switch for the combined view.

In rare cases, you can offer an additional layout variant on the table toolbar. The layout variant stores view settings like the column order and the sort and group settings. If you use a layout variant, do not store the table settings in the filter variant. Offer this additional layout variant only if there is a strong use case for switching filter and layout variants independently. If there is no strong use case, or you are unsure, do not use a layout variant at all.

Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Toolbar with a switch between table and chart visualizations
Toolbar with a switch between table and chart visualizations
Toolbar with a table title and layout variant
Toolbar with a table title and layout variant
Toolbar with additional actions
Toolbar with additional actions

In addition, offer any other actions needed. Disable selection-dependent actions (such as Delete) if no items are selected, or if the action cannot be applied to the selected items. Always enable selection-independent actions (such as Add). To save space on the table toolbar, group similar actions using a menu button. For example:

  • Release and Release with Conditions
  • Add Contact and Replace Contact
  • Edit Account and Edit Title

For more information on table/chart actions, see the guidelines for the table toolbar, the chart toolbar, and for managing objects.

Do
Table without the filter icon
Table without the filter icon
Don't
Table with a filter option
Table with a filter option

Table

If there are no items to display, use the “no data” text of the corresponding table. Explain why the table is empty, and what the user needs to do to display items.

Examples:

  • After starting the app, no filters are applied:
    To start, set the relevant filters.
  • The filter was executed, but no items were found. This can also happen if the list report was opened by a related app, and the filter criteria were transferred automatically:
    No data found. Try adjusting the filter settings.

If you are using a responsive table, always enable “scroll to load” behavior.

Sticky Behavior

The icon tab bar, table/chart toolbar, and column headers of all table types must be “sticky”. This means that they stay fixed on top when the user scrolls down the page.

Navigation

There are three types of navigation at item level in the list report floorplan:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a list, tree, or responsive table, clicking the line item triggers the navigation.
    In a grid table, analytical table, or tree table, clicking the navigation indicator triggers the navigation.
    Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use this only if the navigation indicator is being used for a different target.
    Only show navigation indicators for target pages the user is authorized to access.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually another list report. In this case, use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting.
    In charts, offer the drilldown navigation link in the popover for the chart element. In this case, also navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains cross-references to other entities, such as people or business objects, use a link to display the corresponding data point in the table. Triggering the link opens a quick view. Typically, the quick view displays basic details of the referenced object and a navigation link to another page (usually an object page) or another app that shows the object details.

Working Modes

When the user edits a list item in a filtered list, the changed item might no longer match the filter criteria. For this use case, there are two alternative working modes:

  • Worklist mode

    Users want to see a direct system reaction to their changes. Items that don’t match the current filters
    vanish immediately. This mode applies to about 80% of all use cases.
  • Continuous working mode

    The user still needs the edited item, even though it no longer matches the filter criteria. The item stays in the list until the next filtering process is triggered. The item is marked, and a system message informs the user about the filter mismatch. This mode applies to about 20% of all use cases.

The app developer can choose the appropriate working mode for the app use case.

Footer Toolbar

Use the footer toolbar to display the messaging button and finalizing actions. Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Always show the footer toolbar in edit mode.

Hide actions that cannot be used at all (for example, if the user doesn’t have authorization). To save space on the footer toolbar, group similar actions using a menu button.

For more information on finalizing actions, see the guidelines for the footer toolbar.

Footer toolbar
Footer toolbar

Actions

Places for actions in the list report
Places for actions in the list report

(1) Global actions in the header toolbar
(2) Table actions in the table toolbar
(3) Line item actions
(4) Finalizing actions in the footer toolbar

1. Global Actions

Place actions that affect the entire page in the header toolbar in the header title (1). These include the following standard actions:

Hide actions that cannot be used at all (for example, because the user has no authorization). To save space on the header toolbar, group similar actions using a menu button.

Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information on global actions, see the guidelines for the header toolbar.

2. Table/Chart Actions

Place actions that affect the content of a table or chart in the table toolbar (2).

Information
When you use the list, tree, or responsive table, actions on the table toolbar move up out of the visible screen area when the user scrolls down.

If you are using an icon tab bar, be aware that each tab contains its own table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available (such as Create for new objects). Other actions are only relevant if items have been selected (for example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item).

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions when no items have been selected.
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information, also see UI Element States – Control States.

Partial Processing

Enable the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide a sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

Add/Create Items Using a Dialog

You can let users add or create new items at list report level using a dialog. This approach is recommended for cases where there are fewer than 8 required fields. Display the action in the table toolbar.

You can use this option for both draft and non-draft scenarios.

More Information

For more information on table and chart actions, see the guidelines for the table toolbar, chart toolbar, and for managing objects.

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this only for specific, frequently used tasks (3). If the same action can also be applied to several items at once, feel free to also place it on the table toolbar. Nevertheless, if you do so, reconsider whether you really need to offer the action at line item level. Examples of line item actions include:

  • Start/Stop (a batch job)
  • Approve (an item)
  • Assign (an item)

Do not disable line item actions. If an action cannot be used, hide it. This can be the case if the user has no authorization or the line item is in the wrong state.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar (4).

Examples:

  • Save
  • Cancel
  • Submit

Please be aware: Even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information on finalizing actions, see the guidelines for the footer toolbar.

Responsiveness

In general, the list report floorplan is responsive. However, there are exceptions if the following controls are used:

  • Grid table, analytical table: Supported on desktop and tablet devices only. On smartphones, replace these tables with something else, such as a responsive table or a list. In rare cases, displaying only a chart on smartphones might also suffice.
  • Tree table: Supported on desktop and tablet devices only. For smartphones, there is no equivalent alternative. In some cases, a tree, the category navigation pattern, or a chart might work.
  • Smart table: The smart table is a wrapper around the different existing table controls. If a grid table, analytical table, or tree table is used inside the smart table, you will run into the issues mentioned above. On a smartphone, you can use a responsive table inside the smart table. For the tree table, you need to replace the smart table as described above.

For more details, see the respective guideline articles.

List report - Size L
List report - Size L
List report - Size M
List report - Size M
List report - Size S
List report - Size S

Examples

The examples below show variants of the list report with the most commonly-used controls. You can also see the manual update mode (with a “Go” button) and the live update mode (no “Go” button).

Top Tips

  • Avoid loading list report page without any data, even if there are no mandatory filters.
  • Use only one key identifier in the table.
  • If you are using the icon tab bar, place it beneath the filters.
  • In the icon tab bar, use text labels only (without icons).
  • Choose selection controls that best fit your use case.
  • Make sure that columns in the table are aligned correctly.
  • Ensure that mandatory filter fields always have default values.
  • Avoid using variant management for tables. Use the page variant instead.
  • Always enable actions like Add, Create or Edit. Once Edit is triggered, replace it with Save and Cancel.
  • Never place finalizing actions in the header toolbar, even if they affect the whole page.
  • When using the icon tab bar, be aware that each tab contains its own table toolbar.

 

Related Links

Elements and Controls

Analytical List Page

Information
This floorplan is implemented as an SAP Fiori Element.

Intro

Analytical list page
Analytical list page

The analytical list page (ALP) offers a unique way to analyze data step by step from different perspectives, to investigate a root cause through drilldown, and to act on transactional content. All this can be done seamlessly within one page. The purpose of the analytical list page is to identify interesting areas within datasets or significant single instances using data visualization and business intelligence.

Visualizations help users to recognize facts and situations, and reduce the number of interaction steps needed to gain insights or to identify significant single instances. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

The main target group are users who work on transactional content. They benefit from fully transparent business object data and direct access to business actions. In addition, they have access to analytical views and functions without having to switch between systems. These include KPIs, a visual filter where filter values are enriched by measures and visualizations, and a combined table/chart view with drill-in capabilities (hybrid view). Users can interact with the chart to dig deep into the data. The visualization enables them to identify spikes, deviations and abnormalities more quickly, and to take appropriate action right away.

Usage

Use the analytical list page if:

  • Users need to extract key information to understand the current situation or identify a root cause. The way the data is presented is crucial for giving them the insights they need to take the right action.
  • Users need a way to analyze data step by step from different perspectives, investigate a root cause through drilldown, and act on transactional content within one page.
  • In addition to the filtered dataset, users need to see the impact of their filter settings in a chart (visual filter).
  • Users need to switch between integrated chart and table views (hybrid view).
  • Users need to see the impact of their action on a global key performance indicator (KPI).
  • Users need to find and act on relevant items out of a large set of items by searching, filtering, sorting, grouping, drilling down, and slicing and dicing.

Do not use the analytical list page if:

  • Drilldown is rarely used, not used at all, or is only needed after navigating to another page, rather than as free or flexible drilldown within the page itself. In this case, a list report might be sufficient for your use case.
  • Users need different visualizations for the entire dataset (for example, as a table or chart), but don’t need to work with both visualizations on the same page (for example, in a reporting scenario). In this case, a list report might be sufficient.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping, without using drilldown or “slice and dice”. In this case, consider using a list report.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. They want to be able to switch views using tabs, segmented buttons, or a select control. In this case, consider using a list report.
  • Users need to see or edit a single item with all its details. Use the object page floorplan instead.
  • Users need to find a specific item, and the item or an identifying data point is known to the user (such as a code). In this case, use the initial page floorplan.
  • Users need to work through a comparably small set of items, one by one. In this case, use the worklist floorplan.
  • Users have a trivial use case that does require the use of a chart, but that do not involve identifying a root cause, analyzing data, or drilldown. Instead, use a list report with a table/chart switch.

Structure

This section describes the basic layout of the analytical list page, as well as the different layout variants.

Basic Layout

The shell bar is above the analytical list page. The page itself uses the dynamic page layout and has two main areas:

  1. Analytical list page header:
    The page header is the filter area. Users can expand and collapse the header using the expand/collapse header icon.
  2. Analytical list page content area:
    The content area shows the content for the chosen filters.

All elements are described in more detail in the Components section below.

Analytical list page - Basic layout
Analytical list page - Basic layout

Layout Variants

The layout of the analytical list page is quite flexible. The display is determined by the header and content views chosen by the user.

The analytical list page always offers all of the above layout options. You cannot restrict the available views at app level. For example, you can’t offer only a visual filter (with no option to show the standard filter bar). Likewise, you can’t show only a table view (with no option to display the hybrid or chart views).

Responsiveness

The analytical list page is responsive, except for the global KPIs. Apps with one or more global KPIs are not supported on screen sizes smaller than size L (desktop).

Likewise, the analytical list page is only fully supported in the flexible column layout if no global KPIs are used. If you use the analytical list page with global KPIs within the flexible column layout, the column should have at least size M.

Size S

On size S, the analytical list page supports both the chart-only and table-only views. The table-only view supports only the responsive table. If no responsive table is available, the chart-only view is displayed without a view switch toggle.

Global KPIs are not supported on size S.

Size M

On size M, the analytical list page supports both the chart-only and table-only views. You can use a responsive table or analytical table in the table-only view.

Chart-only view - Size S
Chart-only view - Size S
Table-only view - Size S
Table-only view - Size S
Chart-only view - Size M
Chart-only view - Size M
Table-only view - Size M
Table-only view - Size M

Components

Analytical List Page Header

The page header can be expanded and collapsed on click. Different content is shown in the expanded and collapsed states. For more information about the basic behavior of the header, see Dynamic Page Header.

Collapsed Header

The collapsed page header contains the following elements:

Collapsed analytical list page header
Collapsed analytical list page header

Expanded Header

Initially when the app is launched the header is expanded by default. The expanded page header contains the following elements:

Expanded analytical list page header showing the visual filter bar
Expanded analytical list page header showing the visual filter bar
Expanded analytical page header showing compact filters in the filter bar
Expanded analytical page header showing compact filters in the filter bar

Analytical List Page Content Area

The analytical list page content area contains the following elements:

  • View switch (   |    |    )
  • Hybrid view: View with one chart, chart toolbar, one table, and a table toolbar
Hybrid view
Hybrid view
Chart-only view
Chart-only view
Table-only view
Table-only view

Analytical List Page Header

Variant Management

Variant management in the analytical list page allows users to save a page variant whenever there are changes in the underlying structures of the filter/content area. Variant management for the page is handled by the standard SAPUI5 page variant management.

Currently, the page variant captures the following states across the page:

  • Filter view switch state: Visual filter bar or filter bar
  • Filter set: The filters set in the visual filter bar and filter bar
  • Filter selections: Selected values in the visual filter bar and filter bar
  • Content view switch state: hybrid view  , chart-only view  , or table-only view  
  • Chart and table configurations, such as measures and dimensions used, sort order, or grouping
  • Chart drill-down state, based on the current selections (slice & dice)
  • Table entry switch state: Hide (  ) or Show  (  ) selected table records

Global KPI Tags and Cards

Use a global KPI tag (= global key performance indicator tag) if you would like to show a global KPI related to the task in hand. The global KPI value changes only if an action is executed on the transactional content. For example, the user needs to know the effect of releasing sales orders on a related global KPI, or the effect of posting an accounting document on certain financial global KPIs.

You can display a maximum of three global KPIs. Clicking a global KPI tag opens a global KPI card that displays more details on the KPI.

The global KPI tags and corresponding KPI cards are independent of the filter area. This means that global KPI tags do not react to filters set in the visual filter bar and filter bar.

A global KPI tag has four components:

  • Global KPI label
  • Global KPI value
  • Global KPI color and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator

Global KPI Label

The global KPI label is an abbreviation of the complete global KPI title. It is formed using the first three letters of the first three words of the global KPI title.
Examples: AMR for Actual Monthly Revenue, TAR for Total Advertising Revenue, or LPC for Landing Page Conversation Rates

If there is only one word in the global KPI title, the first three letters of the word are displayed. Example: CON for Contracts

If the global KPI title has only two words, only the first letters of these two words are displayed. Examples: AC for Actual Costs, SG for Sales Growth

KPI label abbreviation: AC
KPI label abbreviation: AC

Global KPI Value

The global KPI value is displayed using a semantic color and a scaling factor. Relative values are shown with a percentage sign and one decimal place.
Examples: 0.3%, 82.9%
Absolute values are shown without decimal places, a currency, or a unit of measure.
Examples: 2K, 75K, 30M, 14B

KPI values: 157.3M and 0.3%
KPI values: 157.3M and 0.3%

Global KPI Color and Criticality Indicator

The color of the global KPI value is based on the thresholds defined for the particular KPI in the annotation. The global KPI tag also uses a line to indicate the criticality. The color of the line is the same as that of the global KPI value.

KPI color and criticality indicator
KPI color and criticality indicator

Global KPI Card

Clicking the KPI tag opens the analytical card, which displays more information about the current value of the global KPI, the global KPI target, the deviation from the target, and how the global KPI has evolved over time.

Global KPI card
Global KPI card

Filter Area: Visual Filter Bar and Filter Bar

The filter area allows users to filter the result set, which feeds the main content area. The analytical list page comes with two filter types: compact filters in the filter bar, and the visual filter bar. Always design both visual filters and compact filters (filter bar) for your app. We recommend setting the visual filter bar as the default, but this is no longer mandatory. You can opt to use the (compact) filter bar as the default if your app has the required parameter values, if your main use case involves date ranges, or if your users often need to combine multiple filters in different ways.

Currently, any visual filter configured in the visual filter bar must always be displayed as a compact filter in the filter bar as well. By contrast, a filter configured as a compact filter in the filter bar may or may not be configured for display as a visual filter. This means that it’s possible to have a smaller set of visual filters and a larger set of compact filters.

Both filter types supports two different modes: live update and manual update. Use the live update mode for both filter types as the default whenever possible. Apply the same mode to both filter types: the visual filter bar and the filter bar. For example, if you use the live update mode in the visual filter bar, you should also use the live update mode for the filter bar.

Visual filter bar
Visual filter bar
Filter bar
Filter bar

Filter Type Switch

Users can toggle between the compact filters    (filter bar) and    (visual filter bar) in the upper-right area of the page header. The filter type switch is a core feature of the analytical list page and is mandatory. The switch is only displayed when the page header is expanded. Once the header collapses, it disappears.

Filter type switch
Filter type switch

Carrying Forward Filter Selections

Visual Filter to Compact Filter

Any values selected in the visual filters are always carried forward to the corresponding compact filters.

Compact Filter to Visual Filter

Filter dimensions that are part of a visual filter are synced to the visual filter. If the dimension value(s) chosen in the compact filter are part of a visual filter, they are shown as selected chart dimensions in the visual filter (single or multiple selections).

Filter dimensions that are not part of the visual filter, parameter values, and interval-based dimensions are applied to the filter query and the content is refreshed.

To show complex conditions, click the link for the number of selected items at the top of the visual filter.

Visual Filter Bar

The visual filter bar combines measures or item counts with filter values. The visual filter bar becomes more powerful if you match measures to the filter dimension instead of just item counts. Use the visual filter bar if you would like to give the user a condensed overview of the data in the dataset. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

Chart Types in the Visual Filter Bar

Currently, the visual filter bar supports three interactive chart types:

These interactive charts are also referred to as visual filters.

Interactive Donut Chart

The interactive donut chart in the visual filter bar is used for non-time-related data (for example, categories) and displays only the top or bottom two values. The rest are aggregated into the “Other” section.

Interactive donut chart
Interactive donut chart
Interactive donut chart with semantic colors
Interactive donut chart with semantic colors

Interactive Line Chart

The interactive line chart is used exclusively for displaying time series data, and can show a maximum of six data points. Always show the first or last six data points (for example, last six days, last six months, first six days, and so on).

Interactive line chart
Interactive line chart
Interactive line chart with semantic colors
Interactive line chart with semantic colors

Interactive Bar Chart

The interactive bar chart can be used for non-time-related data (for example, categories) and has a maximum of three filter values. These filter values show the top three or bottom three entries.

Interactive bar chart
Interactive bar chart
Interactive bar chart with semantic colors
Interactive bar chart with semantic colors

Using Interactive Charts

The interactive charts come with the following features and rules:

  • Minimum number of interactive charts: Show at least three visual filters and try to use different chart types.
  • Filter title:
    • Use the following naming convention for the filter title, using title case:
      [Measure Name] by [Dimension Name] | [Scale Factor] [Unit of Measure].
      Examples:
      Project Costs by Project | K EUR
      Sales Volume by Commodity | M PC
    • For an item count, use the following naming convention for the filter title, using title case:
      Number of [Dimension] | [Scale Factor] [Unit of Measure].
      Examples:
      Number of Products | PC
      Number of Contracts by Month
    • Note that for some use cases, it might be appropriate to replace “Number” with a different expression. Bear in mind that the space for displaying the filter title is limited. If the measure and/or dimension names are longer than the predefined space, the text will be truncated.
Filter title with truncation
Filter title with truncation
Filter title without truncation
Filter title without truncation
  • Filter-to-filter dependencies: Ideally, the filters depend on each other. By selecting one or several chart data points, users can perform a quick analysis of the dataset.
    Examples: Supplier with the lowest supplier performance this year, product with the highest sales volume in March in the EMEA region
  • Adding additional filter values: All charts have a maximum number of filter values that can be displayed within the chart itself. More filter values can be selected using the value help or the select popover.
  • Selected values: Any data point or segment that is selected in the visual filter’s interactive charts will remain selected even when the user changes the measure, chart type, or sort order in any of the charts. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.
  • Semantic colouring: All interactive charts support semantic colors to indicate the criticality of filter values.
  • How to design a visual filter: To design a visual filter, choose a meaningful measure out of the dataset and match it to a filter dimension. If no measures or no meaningful measures are available, use an item count instead. Have a look at the visual filter bar article for more information.

Filter Dialog

In the filter dialog, the user can switch between the visual filter bar and the compact filters using a toggle button, and also manage the filters. For more about the standard filter dialog, see Filter Bar. Visual filters are explained in more detail below.

Filter Dialog for Visual Filters

The filter dialog is launched by clicking the Adapt Filters ([number of applied filters]) link in the page header area. In the filter dialog for visual filters, the user can choose which filter fields are shown in the visual filter bar, and make the following changes:

  • Add visual filters
  • Delete visual filters
  • Hide visual filters in the visual filter bar
  • Search for visual filters
  • Change the sort order  of each visual filter
  • Change the chart type   of each visual filter
  • Switch to other measures  in the visual filter display

Analytical List Page Content Area

The content area shows different visualizations of the selected data. In the hybrid view, users can interact with both the chart and table visualizations at the same time. In addition, the analytical list page supports a chart-only view and a table-only view. The analytical list page always comes with all three views. Offering additional views or even tabs would add too much complexity, and is neither supported nor recommended.

Check out the following sections for more details on the hybrid view, chart-only view, and table-only view.

Hybrid View

The hybrid view uses both chart and table visualizations at the same time. It enables users to analyze data step by step from different perspectives. Users can interact with both the chart and the table, and drill down through either the smart chart or table entries to investigate a root cause. They can also act directly on transactional content. In the initial view of the chart, visualize the most important aspects of the whole dataset in the chart.

Example: The view shows all the suppliers the user is responsible for, organized by value. By drilling down the material to the plant with the highest/lowest volume, the user can see if materials need to be shifted from one plant to another. The corresponding transactional data is shown in an analytical table below the chart, which might also offer an action for shifting the material.

Analytical list page - Hybrid view
Analytical list page - Hybrid view

Chart-Only View

The chart-only view enables users to analyze data step by step from different perspectives, and to investigate a root cause through drilldown, without direct access to transactional content. The smart chart control provides the chart visualization in the chart-only and hybrid views: it is used to display the dataset as a chart. The smart chart drilldown functionality provides a convenient way to analyze the dataset. In addition, the smart chart offers detailed information on the chart data and a breadcrumb that shows the drilldown path. Ensure that you show the most important aspects of the dataset in the chart.

This mode is perfect for applications with analytical data that can easily be represented visually using charts, but doesn’t need to be linked to the transactional dataset.

Analytical list page - Chart-only view
Analytical list page - Chart-only view

Table-Only View

The table view provides access to transactional content. The user can act on single or multiple objects, and navigate to the object details or to other applications.

Depending on the use case, you can opt to use either the analytical table or the responsive table.

Snapping or scrolling is not available for desktop-focused tables, such as the analytical table. Scrolling is only available when the responsive table is used. The pin is enabled by default. The table entries are loaded using lazy loading.

Users can apply filters at table level using the Settings button ( ). For analytical tables, filtering is also available at column level. For more information, see Analytical Table (ALV) – Filter.

Analytical list page - Table-only view
Analytical list page - Table-only view

Behavior and Interaction

The expand/collapse header and pin/unpin header features work as in the dynamic page.

Initial Focus

When the analytical list page is loaded, set the initial focus as follows:

  • If the compact filter is visible by default, set the focus on the first filter field (for live update mode) or on the Go button (for manual update mode).
  • If the header contains empty mandatory fields, set the focus on the first empty mandatory field.
  • If the visual filter bar is visible by default, set the focus on the first chart container.
  • If the header is collapsed (visual or compact filter), set the focus on the first chart data point or the first table row (depending on the selected view).

Open and View the Global KPI Card via the Global KPI Tag

Clicking a KPI tag opens the KPI card, which shows the details for the particular KPI.

Select Filters in the Visual Filter

Unlike micro charts, the visual filter charts are interactive. In live search mode, selecting a filter value triggers data filtering in the content area. Both single and multiple selection are supported.

To select a filter value, the user clicks on a value in the chart. The filter can be removed by either clicking on the value help link, or by clicking on the same value in the chart again. The user can select more filter values using the value help or select popover.

Any data point that is selected in a chart still remains selected when the user selects a data point in another chart. Filter values react on each other. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.

Switch Views: Hybrid, Chart-Only, and Table-Only

Users can switch between the hybrid view, chart-only view, and table-only view.

If the user selects values and then switches the view, the selection remains intact. See the table below for more details.

Switch Description
Hybrid view to table view Table selection remains intact
Hybrid view to chart view Chart selection remains intact
Chart view to hybrid view Chart selection remains intact; corresponding table selections are displayed
Table view to hybrid view Table selection remains intact

Show/Hide Table Entries in Hybrid View and Table View

The table toolbar for the analytical list page offers a Show   and Hide    table entries feature as a toggle switch in the hybrid and table views:

  • If the Show icon is active, the table shows all items. These include highlighted entries (where values are selected in the chart) and non-highlighted entries.
  • If the Hide icon is active, the table shows only items that are selected in the chart.

For example, if the user selects SAP’s Sales Revenue for 2012 as Customer in the chart, all records relating to SAP’s Sales Revenue for 2012 are highlighted (but not selected) in the table. Note that the record is still highlighted even if Customer not displayed as a column in the table. If the table rows are grouped, the entire grouping is highlighted, even if only one record within the grouped set is affected by the chart selection. All values that are not selected in the chart are “hidden” and are not shown in this table mode.

Guidelines

Show the filter dimension with one measure in the visual filter, not multiple measures

Filter dimensions in the compact filters (filter bar) have exactly one representation in the visual filter bar.
Do not show the same filter dimension with two or more different measures at the same time in the visual filter bar. The example shows the filter Dimension Year with two different measures Revenue and Quantity. Showing the filter dimensionYear twice is not in sync with the compact filter, where it is shown only once. Furthermore, matching between the two filter types will not work.

If the use case requires you to show a dimension with different measures, consider using an overview page instead.

Do
For each dimension display exactly one representation in the visual filter bar.
For each dimension display exactly one representation in the visual filter bar.
Don't
Do not use the same filter dimension with different measures
Do not use the same filter dimension with different measures

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Initial Page Floorplan

The initial page floorplan allows the user to navigate to a single object to view or edit it. The interaction point on the screen is a single input field that relies on assisted input to direct the user to the object in as few steps as possible (using features such as value help and live search). If you need to display more than one object, use the list report floorplan instead.

When to Use

Use the initial page floorplan if:

  • The user only needs to work on one object at a time. In this case, the list report floorplan would include a redundant step for viewing a list of items found by the search.

A typical use case for the initial page floorplan is a scanning app, where each new scan leads to an object with input fields. Once the user has submitted the entries, the screen is shown in read-only mode. The cursor returns to the input field, ready for the user to scan the next object.

Do not use the initial page floorplan if:

  • The search is supposed to return a list of objects. This is the scenario for the list report floorplan.

It is also advisable to use only one input field for finding the object. If you need to include detail views, or allow the user to switch between views, offer these features when displaying the object itself.

Components

The initial page is a floorplan based on the object page, with a dynamic page header and a content area.

Structure of the initial screen
Structure of the initial screen
  1. Shell bar (mandatory)
  2. Dynamic page header (mandatory)
  3. Input field (mandatory)
  4. Header features (optional)
  5. Content Area (mandatory)
  6. Footer toolbar (optional)

Dynamic page header

The header area can contain the same content as the object page and thereby follows its defined structure, except for the title, which is replaced by an input field. The header initially displays in collapsed mode but expands when the user performs a search or finds an object using the input field. Choose the selection control best suited to your use case.

Content area

The content area is used to display the object. It can contain a navigation bar, sections, subsections, forms, and tables.

Behavior and Interaction

Initial Focus

When the initial page is loaded, set the initial focus on the input field in the header title area.

Live Search

The input field serves as the single starting point for finding the object. The assisted input uses the live search feature (search-as-you-type) to speed up the search. The live search feature can show anything from one attribute to an entire table of values. To guide the user, you can use the message page to display a hint, such as Enter ID Manually or Scan Code.

Live Search
Live Search

Initial Screen with dialog

If multiple hits are possible for the same search terms, you may need to implement a select dialog, table select dialog, or value help dialog. These dialogs let the user narrow down the list of items based on more specific criteria. When the user selects an object from the list, the dialog closes and the object is displayed in the content area.

Behavior of the Search Field

The content of the dynamic page header is initially collapsed and cannot be expanded. The input field is located in the header title area of the object page. If no other additional actions are provided, set the focus to the input field . This allows the user to enter the search term directly without clicking into the field. However, only consider doing this if there are no other elements that could be blocked by it, such as the on-screen keyboard on touch devices.

Once the user finds an object, the dynamic page header expands and displays the relevant information for the object.

The dynamic page header collapses on scrolling or by user interaction, but the input field for performing a different search is always visible.

If the user enters new search terms in the input field, the focus moves away from the field and the app triggers a new search. If no results are found, the initial view of the page is shown – with a collapsed header and a corresponding message in the content area.

If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.

Responsiveness

The initial page features a single interaction point for the user: the input field near the top of the screen. Place the input field inside header title bar (sap.f.DynamicPageTitle). Configure the width to fit the width of the longest text (allowing some additional space for other languages), but do not make it significantly wider. When you set the maximum width of the input field, also consider the width available on mobile devices.

The field should never be as wide as the screen (except on smartphones).

Initial page floorplan - Size S
Initial page floorplan - Size S
Initial page floorplan - Size M
Initial page floorplan - Size M
Initial page floorplan - Size L
Initial page floorplan - Size L

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Overview Page

Information
This floorplan is implemented as an SAP Fiori Element.

Intro

View, Filter, and Take Immediate Action

The overview page (OVP) is a data-driven SAP Fiori app type and floorplan that provides all the information a user needs in a single page, based on the user’s specific domain or role. It allows the user to focus on the most important tasks, and view, filter, and react to information quickly.

Each task or topic is represented by a card (or content container). The overview page acts as a UI framework for organizing multiple cards on a single page.

The overview page is based on SAP Fiori elements technology, and uses annotated views of app data, meaning that the app content can be tailored to the domain or role. Different types of card allow you to visualize information in an attractive and efficient way.

At a Glance

  • Entry-level view of content on cards

  • One specific context and task area for one role

  • Content from different sources shows side by side – no need to switch screens

  • Information can be visualized on cards in different ways (texts, charts, lists, tables)

  • Micro actions let users react on the spot

Overview page
Overview page

When to Use

Use the overview page if:

  • You want to provide an entry-level view of content related to a specific domain or role.
  • Users needs to filter and react to information from at least two different applications to complete their role-specific tasks.
  • You want to offer different information formats (such as charts, lists, and tables) on a single page.
  • You plan to have at least three cards. These cards should not all be of the same type.

Do not use the overview page if:

  • A high-level or birds-eye view of application content is sufficient.
  • You just want the user to launch an application. In this case, use the SAP Fiori launchpad home page.
  • You want to show information about one object only. In this case, use the object page.
  • You just represent one application and less than three cards. In this case, use the object page.

SAP Fiori Launchpad Home Page, Overview Page, and Object Page

The launchpad home page contains all of a user’s favorite apps and offers access to them via tiles. This covers all the roles that a user might have, such as employee, manager, production worker, or quality manager.

An overview page focuses on the key tasks for a specific role, and contains only the most frequently-used apps for that role. The overview page uses cards, which display more (preview) information than tiles because of their size, properties, and interaction areas. One card type also allows users to perform simple actions. Cards represent an entry-level view of application content.

Launchpad Home Page vs. Overview Page

Launchpad Home Page Overview Page
Framework (given) SAP Fiori application (optional)
“Birds-eye” view “Street-level” view
Single point of entry Specific business context for a role
One SAP Fiori launchpad per user Multiple overview pages per user possible
Access to all the user’s favourite applications Selected applications are presented as cards
Uses tiles Uses cards
No actions Micro actions

The overview page is always role-based. The user sees a heterogeneous set of information related to a specific business context and the tasks associated with a specific role. This is not the case with the object page, which contains homogenous, object-based information.

Overview Page vs. Object Page

Overview Page Object Page
Role-based Object-based
“Street-level” view “Details” view
Heterogeneous information Homogeneous information

Role-Specific Overview Pages

As you can see in the picture, the overall content scope (shown in gray) becomes more focused with each interaction step. An overview page brings together information from different sources that support a specific task or information need. Only provide an overview app for a role if it makes sense to do so.

If a role or user has several main tasks that each require a specific set of information, the role or user might also have multiple overview apps. For example, one overview app could be used to reflect the user’s role as manager, with information for managing team performance reviews. Another overview app could be used to track quality issues and other relevant information pertaining to the machines that the user is responsible for in the role of quality manager.

Metaphor – Different entry points in SAP Fiori
Metaphor – Different entry points in SAP Fiori

Components

The basic structure and appearance of the overview page is governed by the dynamic page layout, and is divided into a header area and a content area.

This enables you to use variant management, text, and a smart filter bar in the upper part of the screen (dynamic page header). The content of the overview page is presented using cards.

Two different layouts are available, which determine the size and position of the cards: fixed card layout and resizable card layout.

Overview page – Basic structure
Overview page – Basic structure

Dynamic Page

The dynamic page header comprises the header title and expandable/collapsible header content. Three different header variants are available for overview pages

In the overview page, the header content is used for the smart filter bar with the live update mode (variant 1 and variant 2): the results are updated immediately whenever the user changes a filter field. As a result, there is no Go button for the filter bar.

Users can expand/collapse and pin the header content with the two icon buttons below the smart filter bar:

  1. Expand/collapse header or   
  2. Pin/unpin header content 

Dynamic Page Variants for the Overview Page

The header title (either text or variant management) is mandatory, while the header content (smart filter bar) is optional. Variant 3 shows only a text in the header title.

Variant 1 Variant 2 Variant 3
Dynamic page header Yes Yes Yes
Header title Variant Management Text Text
Header content Smart Filter Bar Smart Filter Bar
Page content Cards Cards Cards

In this variant, the header title contains variant management and the header content includes the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content expands as defined. The header title offers the Share menu, which enables the actions Send Email and Save as Tile.

Dynamic page variant 1 – Expanded mode
Dynamic page variant 1 – Expanded mode

In this variant, the header title contains a text (Header Title in the example below) and the header content area contains the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content snaps as defined.

Dynamic page variant 2 – Expanded mode
Dynamic page variant 2 – Expanded mode

In the third variant, the header title contains a text (Header Title in the example below). This text serves the same purpose as the former page subtitle. The header content is empty (auto hidden) and therefore doesn’t snap. The content area displays the overview page cards.

Dynamic page variant 3 – Expanded/collapsed mode
Dynamic page variant 3 – Expanded/collapsed mode

Overview Page Layout

Fixed card layout
Fixed card layout
Resizable card layout
Resizable card layout

The overview page layout describes the position, size, and characteristics of cards in the content area below the dynamic page header.

There are two layout variants:

Only place cards on the overview page. Never add tiles.

Fixed Card Layout vs. Resizable Card Layout

Fixed Card Layout Resizable Card Layout
Fixed card width and predefined height Resizable card sizes (grid-based)
Users can’t influence the card size Users can influence the card size individually
Predefined static card characteristics Flexible content insights (such as more items, zoom, or different levels of detail)
Lower implementation effort – defined card patterns Higher implementation effort – content strategy required
Self-contained cards Highly interactive and flexible cards
Fast overview and navigation Fast overview, navigation, and investigation
Cards can be swapped Drag and drop supported for cards
Maximum of 5 card columns (letterboxing) Unlimited number of columns

Personalized Selection of Cards

Users can also hide cards. The corresponding setting is in the user actions menu under Manage Cards. A dialog appears on the overview page, and lists the different card names. Users can opt to show or hide the cards using a switch control. Restore reinstates the default setup. The personalized setup stays until the user next changes it.

Each overview page app has its own Manage Cards setting. Users who work with several overview pages can personalize the cards shown for each one.

Overview page – 'Manage Cards' dialog after initial loading
Overview page – 'Manage Cards' dialog after initial loading

Behaviour and Interaction 

As for any other SAP Fiori app, users open overview page apps by selecting a tile on the SAP Fiori launchpad home page, or by bookmarking the direct link in a browser. From the overview page the user decides which issues need attention, and navigates via cards to the relevant SAP Fiori apps. In addition, users can also access the navigation menu in the shell bar, which allows fast and easy navigation to other apps. The overview page supports navigation to both SAP Fiori and non-SAP Fiori apps. For SAP Fiori apps, it uses intent-based navigation. Non-SAP Fiori apps open in a new browser window.

In the screen flow, always position the overview page app between the SAP Fiori launchpad home page and the SAP Fiori app. The overview page doesn’t replace the SAP Fiori launchpad home page. Never start overview page apps from another SAP Fiori app.

The picture below illustrates the complete interaction flow:
SAP Fiori launchpad home page ➝ SAP Fiori overview app ➝ SAP Fiori app or non-SAP Fiori app

Overview page – Interaction flow
Overview page – Interaction flow

Initial Focus

When the overview page is loaded, set the initial focus as follows:

  • If no cards are loaded, and the filter bar is in manual mode, set the focus on the Go button or on the first filter field.
  • If no cards are loaded, the filter bar is in manual mode, and a mandatory field is still empty, set the focus on the mandatory field.
  • When all cards are loaded, set the focus either on the first card or the header of the first card.

Dedicated Floorplan

While other floorplans like the list report and object page can be combined in a single app, there is a 1:1 relationship between the overview page floorplan and the corresponding overview app. The overview page floorplan is never combined with other floorplans. Because of this, the terms “overview page floorplan” and “overview (page) app” are often used synonymously.

Cards

Overview page – Different card types (selection)
Overview page – Different card types (selection)

Cards are containers for app content, and represent an entry-level view of the most pertinent app data for a given topic or issue. The overview page can contain several cards that reference the same underlying application. However, each card must bring added value to the user, and not just repeat information already offered on another card.

Cards can display different types of content. They can show a chart, a list, a table, informative text, or a combination of two elements. Cards can also vary in size, depending on the selected layout. However, cards never have editable fields.

When designing cards, make sure that you define and format the texts on all the cards consistently. Check the UI text guidelines for the overview page for details.

For more information about cards and card types, see the dedicated topics:

Responsivess

The overview page is fully responsive and can accommodate typical laptop screens as well as larger desktop monitors. The responsive behaviour differs for the two layout types – fixed card layout and the resizable card layout.

Both feature responsive (collapsible) “columns” of cards that can scale all the way down to tablet or phone screen sizes. For more information on each card type, follow the respective links.

Top Tips

Before you start designing an overview page, familiarize yourself with following best practices to optimize the user experience. They reflect the basic findings of multiple usability tests across different scenarios and user groups.

  • Make a conscious decision on the number of cards: Show only cards that really support the specific role context or task.
  • Accentuate the most important information: Semantic colors in texts, charts, attract more attention. The same applies to larger cards.
  • Offer a well-balanced mixture of card types: Diversity makes it easy to recognize, select, and read information.
  • Define a deliberate card order: Users assume that bigger cards and cards at the top of the page are more important than others.
  • Group similar topics: Users assume that related cards will be shown next to each other.
  • Choose easy-to-read and actionable texts: If the user needs to take action, use the active voice (for example “Reorder Soon” when stocks are running low).
  • Be semantically consistent: Users expect crucial terms like “Urgent” or “Out of Stock” to be highlighted with semantic colors.

Related Links

Overview Page (SAP Fiori Element)

View, Filter, and Take Immediate Action

The overview page (OVP) is a data-driven SAP Fiori app type and floorplan that provides all the information a user needs in a single page, based on the user’s specific domain or role. It allows the user to focus on the most important tasks, and view, filter, and react to information quickly.

Each task or topic is represented by a card (or content container). The overview page acts as a UI framework for organizing multiple cards on a single page.

The overview page is based on SAP Fiori elements technology, and uses annotated views of app data, meaning that the app content can be tailored to the domain or role. Different types of card allow you to visualize information in an attractive and efficient way.

At a Glance

  • Entry-level view of content on cards

  • One specific context and task area for one role

  • Content from different sources shows side by side – no need to switch screens

  • Information can be visualized on cards in different ways (texts, charts, lists, tables)

  • Micro actions let users react on the spot

Overview page
Overview page

When to Use

Use the overview page if:

  • You want to provide an entry-level view of content related to a specific domain or role.
  • Users needs to filter and react to information from at least two different applications to complete their role-specific tasks.
  • You want to offer different information formats (such as charts, lists, and tables) on a single page.
  • You plan to have at least three cards. These cards should not all be of the same type.

Do not use the overview page if:

  • A high-level or birds-eye view of application content is sufficient.
  • You just want the user to launch an application. In this case, use the SAP Fiori launchpad home page.
  • You want to show information about one object only. In this case, use the object page.
  • You just represent one application and less than three cards. In this case, use the object page.

SAP Fiori Launchpad Home Page, Overview Page, and Object Page

The launchpad home page contains all of a user’s favorite apps and offers access to them via tiles. This covers all the roles that a user might have, such as employee, manager, production worker, or quality manager.

An overview page focuses on the key tasks for a specific role, and contains only the most frequently-used apps for that role. The overview page uses cards, which display more (preview) information than tiles because of their size, properties, and interaction areas. One card type also allows users to perform simple actions. Cards represent an entry-level view of application content.

Launchpad Home Page vs. Overview Page

Launchpad Home Page Overview Page
Framework (given) SAP Fiori application (optional)
“Birds-eye” view “Street-level” view
Single point of entry Specific business context for a role
One SAP Fiori launchpad per user Multiple overview pages per user possible
Access to all the user’s favourite applications Selected applications are presented as cards
Uses tiles Uses cards
No actions Micro actions

The overview page is always role-based. The user sees a heterogeneous set of information related to a specific business context and the tasks associated with a specific role. This is not the case with the object page, which contains homogenous, object-based information.

Overview Page vs. Object Page

Overview Page Object Page
Role-based Object-based
“Street-level” view “Details” view
Heterogeneous information Homogeneous information

Role-Specific Overview Pages

As you can see in the picture, the overall content scope (shown in gray) becomes more focused with each interaction step. An overview page brings together information from different sources that support a specific task or information need. Only provide an overview app for a role if it makes sense to do so.

If a role or user has several main tasks that each require a specific set of information, the role or user might also have multiple overview apps. For example, one overview app could be used to reflect the user’s role as manager, with information for managing team performance reviews. Another overview app could be used to track quality issues and other relevant information pertaining to the machines that the user is responsible for in the role of quality manager.

Metaphor – Different entry points in SAP Fiori
Metaphor – Different entry points in SAP Fiori

Components

The basic structure and appearance of the overview page is governed by the dynamic page layout, and is divided into a header area and a content area.

This enables you to use variant management, text, and a smart filter bar in the upper part of the screen (dynamic page header). The content of the overview page is presented using cards.

Two different layouts are available, which determine the size and position of the cards: fixed card layout and resizable card layout.

Overview page – Basic structure
Overview page – Basic structure

Dynamic Page

The dynamic page header comprises the header title and expandable/collapsible header content. Three different header variants are available for overview pages

In the overview page, the header content is used for the smart filter bar with the live update mode (variant 1 and variant 2): the results are updated immediately whenever the user changes a filter field. As a result, there is no Go button for the filter bar.

Users can expand/collapse and pin the header content with the two icon buttons below the smart filter bar:

  1. Expand/collapse header or   
  2. Pin/unpin header content 

Dynamic Page Variants for the Overview Page

The header title (either text or variant management) is mandatory, while the header content (smart filter bar) is optional. Variant 3 shows only a text in the header title.

Variant 1 Variant 2 Variant 3
Dynamic page header Yes Yes Yes
Header title Variant Management Text Text
Header content Smart Filter Bar Smart Filter Bar
Page content Cards Cards Cards

In this variant, the header title contains variant management and the header content includes the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content expands as defined. The header title offers the Share menu, which enables the actions Send Email and Save as Tile.

Dynamic page variant 1 – Expanded mode
Dynamic page variant 1 – Expanded mode

In this variant, the header title contains a text (Header Title in the example below) and the header content area contains the smart filter bar. The initial default uses the collapsed mode, because content is already available on the cards, and users can start right away. When the user scrolls or clicks, the header content snaps as defined.

Dynamic page variant 2 – Expanded mode
Dynamic page variant 2 – Expanded mode

In the third variant, the header title contains a text (Header Title in the example below). This text serves the same purpose as the former page subtitle. The header content is empty (auto hidden) and therefore doesn’t snap. The content area displays the overview page cards.

Dynamic page variant 3 – Expanded/collapsed mode
Dynamic page variant 3 – Expanded/collapsed mode

Overview Page Layout

Fixed card layout
Fixed card layout
Resizable card layout
Resizable card layout

The overview page layout describes the position, size, and characteristics of cards in the content area below the dynamic page header.

There are two layout variants:

Only place cards on the overview page. Never add tiles.

Fixed Card Layout vs. Resizable Card Layout

Fixed Card Layout Resizable Card Layout
Fixed card width and predefined height Resizable card sizes (grid-based)
Users can’t influence the card size Users can influence the card size individually
Predefined static card characteristics Flexible content insights (such as more items, zoom, or different levels of detail)
Lower implementation effort – defined card patterns Higher implementation effort – content strategy required
Self-contained cards Highly interactive and flexible cards
Fast overview and navigation Fast overview, navigation, and investigation
Cards can be swapped Drag and drop supported for cards
Maximum of 5 card columns (letterboxing) Unlimited number of columns

Personalized Selection of Cards

Users can also hide cards. The corresponding setting is in the user actions menu under Manage Cards. A dialog appears on the overview page, and lists the different card names. Users can opt to show or hide the cards using a switch control. Restore reinstates the default setup. The personalized setup stays until the user next changes it.

Each overview page app has its own Manage Cards setting. Users who work with several overview pages can personalize the cards shown for each one.

Overview page – 'Manage Cards' dialog after initial loading
Overview page – 'Manage Cards' dialog after initial loading

Behaviour and Interaction 

As for any other SAP Fiori app, users open overview page apps by selecting a tile on the SAP Fiori launchpad home page, or by bookmarking the direct link in a browser. From the overview page the user decides which issues need attention, and navigates via cards to the relevant SAP Fiori apps. In addition, users can also access the navigation menu in the shell bar, which allows fast and easy navigation to other apps. The overview page supports navigation to both SAP Fiori and non-SAP Fiori apps. For SAP Fiori apps, it uses intent-based navigation. Non-SAP Fiori apps open in a new browser window.

In the screen flow, always position the overview page app between the SAP Fiori launchpad home page and the SAP Fiori app. The overview page doesn’t replace the SAP Fiori launchpad home page. Never start overview page apps from another SAP Fiori app.

The picture below illustrates the complete interaction flow:
SAP Fiori launchpad home page ➝ SAP Fiori overview app ➝ SAP Fiori app or non-SAP Fiori app

Overview page – Interaction flow
Overview page – Interaction flow

Dedicated Floorplan

While other floorplans like the list report and object page can be combined in a single app, there is a 1:1 relationship between the overview page floorplan and the corresponding overview app. The overview page floorplan is never combined with other floorplans. Because of this, the terms “overview page floorplan” and “overview (page) app” are often used synonymously.

Initial Focus

When the overview page is loaded, set the initial focus as follows:

  • If no cards are loaded and the filter bar is in manual mode, set the focus on the Go button.
  • If no cards are loaded, the filter bar is in manual mode, and a mandatory field is still empty, set the focus on the mandatory field.
  • When all cards are loaded, set the focus either on the first card or the header of the first card.

Cards

Overview page – Different card types (selection)
Overview page – Different card types (selection)

Cards are containers for app content, and represent an entry-level view of the most pertinent app data for a given topic or issue. The overview page can contain several cards that reference the same underlying application. However, each card must bring added value to the user, and not just repeat information already offered on another card.

Cards can display different types of content. They can show a chart, a list, a table, informative text, or a combination of two elements. Cards can also vary in size, depending on the selected layout. However, cards never have editable fields.

When designing cards, make sure that you define and format the texts on all the cards consistently. Check the UI text guidelines for the overview page for details.

For more information about cards and card types, see the dedicated topics:

Responsivess

The overview page is fully responsive and can accommodate typical laptop screens as well as larger desktop monitors. The responsive behaviour differs for the two layout types – fixed card layout and the resizable card layout.

Both feature responsive (collapsible) “columns” of cards that can scale all the way down to tablet or phone screen sizes. For more information on each card type, follow the respective links.

Top Tips

Before you start designing an overview page, familiarize yourself with following best practices to optimize the user experience. They reflect the basic findings of multiple usability tests across different scenarios and user groups.

  • Make a conscious decision on the number of cards: Show only cards that really support the specific role context or task.
  • Accentuate the most important information: Semantic colors in texts, charts, attract more attention. The same applies to larger cards.
  • Offer a well-balanced mixture of card types: Diversity makes it easy to recognize, select, and read information.
  • Define a deliberate card order: Users assume that bigger cards and cards at the top of the page are more important than others.
  • Group similar topics: Users assume that related cards will be shown next to each other.
  • Choose easy-to-read and actionable texts: If the user needs to take action, use the active voice (for example “Reorder Soon” when stocks are running low).
  • Be semantically consistent: Users expect crucial terms like “Urgent” or “Out of Stock” to be highlighted with semantic colors.

Related Links

Wizard Floorplan

The wizard floorplan allows users to complete a long or unfamiliar task by dividing it into sections and guiding the user through it. The wizard consists of the walkthrough screen, where the form sections are revealed in sequence after each one is completed, and the summary page, where the form is displayed in read-only mode for assessment and final submission. You can use the wizard both in full-screen and flexible column layout.

Wizard - Steps
Wizard - Steps

Usage

When to Use the Wizard Floorplan

The wizard aims to help users by dividing large or complex tasks into segments. Use the wizard if the user has to accomplish a long task (such as filling out a long questionnaire) or a task that is unfamiliar to the user. The flow should consist of a minimum of 3 and a maximum of 8 steps.

The wizard can be used for both create and edit scenarios. If your application contains both, consider using the same means for both scenarios – either the wizard, or another create/edit screen (edit flow or object page).

When Not to Use the Wizard Floorplan

If you have a task with only 2 steps or a format that the user is familiar with (for example, it is part of their daily routine), do not use the wizard as it only adds unnecessary clicks to the process. If your process needs more than 8 steps, the wizard will not support those steps as the process is too long and can be confusing for the user. In this case, you should consider restructuring the task.

Consider if the classic edit screens (edit flow or object page) are more suitable for your use case.

Structure

The wizard has two main screens: the walkthrough screen, where users complete a segmented task, and the summary screen, where they can check the data they are about to submit. Wizard content is not restricted to forms; other content such as a value help dialog can also be used.

Walkthrough Screen

The walkthrough screen is the wizard’s main screen. After triggering the wizard, the user is taken to the walkthrough screen, which shows only the first section of the form. Once the user has filled out all the necessary fields, a Step XY button appears, which allows the user to move to the next step. When the user has completed the last section of the wizard, the button label changes to Review and the user is taken to the summary screen.

The wizard footer is used to display the Cancel button, which exits the wizard. If the user has modified any fields, a data loss message also prompts the user. You can also use a Save as Draft function in the footer if the form is long and the user may have to save it before finishing it.

Walkthrough screen in full screen layout
Walkthrough screen in full screen layout
  1. Header toolbar with title
  2. Progress bar
  3. Completed step
  4. Current step
  5. Upcoming step
  6. Step title (for example: 3. Payment)
  7. Action for the next step

The title in the header toolbar above the wizard remains unchanged during all the wizard steps. Align this title left, and make it clear to users where they are and what they are doing (for example, New Sales Order or Sales Order 4815162342). Especially in edit scenarios, it is vital to give users a unique identifier for the object they are changing.

The progress bar below the header highlights the completed steps and the current step. It also allows the user to navigate between steps by clicking any of the circles. If there are multiple steps, and the screen width is reduced, the steps on the progress bar are grouped. This behavior is the same on smartphone, tablet, and desktop screens.

Wizard tooltip – Grouped steps
Wizard tooltip – Grouped steps

In certain use cases, the steps in the wizard depend on the choices the user makes along the way. The user’s entries for one step determine the follow-on steps (“branching”). In these cases, a dotted line shows that more steps will follow.

Wizard branching
Wizard branching

Since the wizard is a lightweight way to create or edit objects, applications can use a quick confirmation popup instead of the heavier data loss message, when the user selects Cancel.

If the wizard is used to create an object, the text on the popup should read Discard this <object>?’ (see image below). If the wizard is used to edit an object, use the text Discard changes? In both cases, the action on the popup should be Discard.

Structure – Quick confirmation
Structure – Quick confirmation

Anchor and Tab Bar Navigation

Anchor Bar

Depending on the use case, you can present the progress bar as an anchor bar or a tab bar. The anchor bar behaves in the same way as the anchor bar in an object page. It consists of a series of links (steps), which are arranged horizontally at the top of the page. Clicking a link navigates to the respective step on the page.

Tab Bar

As an alternative to the anchor bar, you can also use the tab mode (property: rendermode, value: Page). It is visualized in the same way, but shows a series of tabs (steps). These are arranged horizontally at the top of the page and each represent a subpage. Clicking a tab navigates to the respective subpage. Another difference is the placement of the action for the next step: Place the Next Step button in the footer toolbar, as in the summary screen. As soon as users move to the following step, show an additional Previous Step button on the left. This follows the guidance for action placement: if the primary action (such as Next Step) is a forward path, it needs to appear to the right of the secondary action. In the case of the wizard, the secondary action is Previous Step. The negative path action Cancel remains unchanged.

Actions in the footer toolbar (tab bar approach)
Actions in the footer toolbar (tab bar approach)

Summary Screen

On the summary screen, users can check all their entries before the object is actually created or changed. The summary screen has no progress bar or anchor navigation, and shows the form sections for all the steps in read-only mode.

To allow the user to go back and edit entries, provide an Edit button either in the footer toolbar or in each form section:

  • If you place the Edit button is placed in the footer toolbar, the user is taken back to the first section of the wizard.
  • If you offer Edit buttons for each section of the form, the user jumps to that particular step.

Alternatively, users can click the Back button to go to the previous step. From there, they can scroll through the sections.

The main action on the summary page should be the final action after completing the wizard, such as Create or Save.

Wizard summary page example
Wizard summary page example

Layout

Thanks to the wizard’s responsive behavior, it can be used both in a full-screen layout as well as in the flexible column layout. Since there are no subsequent pages after the wizard, it will always occupy the rightmost column – there is no navigation from the wizard to a next page. After completion (or cancellation), the user will always come back to the page the wizard was triggered from.

Wizard in full screen layout
Wizard in full screen layout
Wizard in flexible column layout (2/3)
Wizard in flexible column layout (2/3)
Wizard in flexible column layout (1/3)
Wizard in flexible column layout (1/3)

Types

There are two types of wizard – “standard” and “branching” – which differ in terms of the functions they offer.

Use the standard type if:

  • The total number of steps is known in advance.
  • The number of steps does not change during usage.
  • There is linear progression from one step to the next.

Use the branching type if:

  • The total number of steps is not known.
  • The number of steps may change during usage.
  • There is non-linear progression. In other words, the user’s choice during one step determines which step comes next.

In both types of wizard you can let users skip steps. Label these steps as “Optional”.

Styles

In addition to the functional types, there are also different visual styles.

Numbers and Icons

By default, both versions use a number inside a circle to represent each step. You can also use icons instead of numbers to help users identify the steps. If you plan to use icons, be sure to assign icons to all the steps (not just to some). The icons you choose should be unique and not look too similar. This will ensure that users do not get individual steps confused with one another.

Steps represented by numbers
Steps represented by numbers
Steps represented by icons
Steps represented by icons

Labels

To help users identify the individual steps even more easily, app developers can assign labels. As with icons, labels must be applied to all or none of the steps.

If there is enough horizontal space, all labels are shown.

All labels are visible
All labels are visible

As the width is reduced, the steps outside the currently selected one do not show labels.

Labels - reduced width
Labels - reduced width

Finally, the unselected and outermost steps are stacked on top of each other to further accommodate the reduced space.

Stacked labels
Stacked labels

Users can still easily access steps inside a stack. A single click opens a list of steps inside this stack.

Labels - stacked popover
Labels - stacked popover

Optional Steps

For optional steps, add an (Optional) label. Place the (Optional) label below the content label for the step.

Do
Correct: '(Optional)' label below the content label for the step
Correct: '(Optional)' label below the content label for the step

Explanatory Texts

Ideally, the headlines and field labels for each step should provide enough information for users to complete their tasks. However, if additional explanations are needed, applications can put a simple text underneath a step’s headline – either via the sap.m.Text or the sap.m.FormattedText control.

Responsiveness

The wizard supports all common screen sizes and is available in cozy and compact modes, as well as high-contrast black (HCB).

Wizard – Size S
Wizard – Size S
Wizard – Size M
Wizard – Size M
Wizard – Size L
Wizard – Size L

Behavior and Interaction

Initial Focus

When the wizard is first loaded, focus on the first editable control in the first step.

Exceptions:

  • The user opens a page using a link that jumps directly to a specific step. In this case, focus on the first editable control in this step.
  • The user opens the wizard using one of the Edit actions from the review screen. In this case, focus on the first editable control in the selected editing step.

Navigation, Error- and Draft Handling

Navigation

Users can trigger the wizard app from another application, from the launchpad, or from a notification. The wizard always starts at the initial walkthrough page and ends after the user has clicked the main action (such as Create or Submit) on the summary screen. The Step XY button is only used on the walkthrough page. This button loads the next section of the form. On the summary page, the user can use either the Edit button in the footer or the “back” arrow to return to the wizard and edit any of the fields.

Modifying dependent steps: If there are steps that depend on each other (for example, a selection in step 2 triggers an additional step) and the user modifies the parent step, the dependent step is changed or deleted. Beforehand, the user is warned that data will be lost.

Error Handling

Error handling is done via message popovers. When the user clicks the Step XY button, the form sections and fields should be validated. When the user clicks the Create button on the summary page, the entire form is validated. If there are any errors, the user stays on the walkthrough page, the message popover is displayed, and clicking any of the error items scrolls the page to the relevant field, which is also highlighted in red.

Section validation differs from validation of the entire form. In the first case, correct data entry in the form fields is validated. In the second case, the entire form is checked for backend system errors (such as duplicated data entry).

Draft Handling

If a draft already exists when a user enters the wizard, show a dialog to inform the user. For more information, please visit the draft handling article.

Dynamic Page

Header

Even though the wizard floorplan consumes the dynamic page, the wizard’s header does not allow snapping. Due to the nature of the wizard floorplan, the wizard brings its own step-based header that is already very space-saving.

Footer Toolbar

Contrary to the header, the footer toolbar of the wizard floorplan conforms to the standard layout and uses the sap.m.bar control.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Wizard (SAPUI5 API reference)
  • Wizard (SAPUI5 samples)
  • Form (SAPUI5 API reference)
  • Form (SAPUI5 samples)

Worklist Floorplan

Information
This floorplan is available as an SAP Fiori Element.

For information on the default settings and other options for the SAP Fiori element implementation, see Worklist in the SAP Fiori Elements section.

Intro

A worklist displays a collection of items a user needs to process. Working through the list usually involves reviewing details of the items and taking action. In most cases, the user has to either complete a work item or delegate it.

The worklist is a versatile floorplan that offers three main variants: a simple worklist (plain page with a table), a worklist with tabs, and a worklist with one or more KPI tags. These variants are based on different user needs and use cases. For more details, see the options under Components.

Simple worklist
Simple worklist
Worklist with tabs
Worklist with tabs
Worklist with KPI
Worklist with KPI

When to Use

Use the worklist floorplan if:

  • Users have numerous work items and need to decide which ones to process first.
  • You want to give users a direct entry point for taking action on work items.
  • Users need to work with multiple views of the same content (for example, items that are “Open”, “In Process”, or “Completed”). You want to offer tabs for switching between views.

Do not use the worklist floorplan if:

  • The items you are showing are not work items.
  • You want to show large item lists, or combine different data visualizations (charts or tables). In this case, use the list report floorplan instead.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping. Use the list report floorplan instead.

Components

The worklist floorplan is based on the dynamic page layout and is divided into a header and the page content. The header has a header title, but no header content. As a result, the expand/collapse and pin features are not needed.

The worklist consists of the following areas:

  1. The header title containing:
  2. The content area displaying:
  3.  A footer toolbar (optional) including:

Header Title

Variant Management

Variant management is optional. If used, apply it to the whole page. Use the variants to save and restore all settings, including selected tabs, all tables, and all personalization settings.

If variant management is not needed, just show a title that describes the view.

Key performance indicator/ KPI

The key performance indicator (KPI) allows users to track the impact of their actions while processing the worklist. You can display one or more KPIs within the KPI container next to the page title to show the status/criticality of the tag.

Header Toolbar (Global Actions)

Use the header toolbar for global actions, such as Share. Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information, see Global Actions.

Content Area

Tab Bar

The tab bar is part of the page content container, and must be sticky.

In the worklist, the icon tab bar works as a filter on the content below. It enables users to call up work items in specific categories. This can help users to identify critical items more easily. Different tabs show different perspectives on the same dataset.

Guidelines

  • Display the number of items shown in the table on each tab (sap.m.IconTabFilter, property: count).
  • Only use icons if you need to display semantic colors on the icon tab bar. You can offer visual orientation by applying semantic colors to the icons for the different categories (for example, red for the Error tab).
  • Bear in mind that each tab in an icon tab bar contains its own table toolbar.

Table Toolbar

Display at least a table title (ideally with an item count) and, if needed, icon-only buttons for sorting, grouping, and column settings. For filter, sort, and group, show a view settings dialog with only the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

Table

In general, you can use any kind of table and list for the worklist floorplan in the content area. Nevertheless, we recommend using the responsive table. For more information, see Responsiveness.

If there are no items to display, use the “no data text” for the corresponding table. Explain why the table is empty, and what the user needs to do to display items. For more information and examples see: “No data” texts.

The most basic version of the worklist is the simple worklist: a plain page with a table.

Simple worklist without tabs
Simple worklist without tabs

Footer Toolbar

The footer toolbar is an optional component of the worklist floorplan. Only use it if finalizing actions for the whole page and/or the message popover are required. Keep in mind that the footer toolbar is only visible in edit mode. For more information, see the guidelines for the footer toolbar.

Guidelines
Follow the standard naming conventions for all objects, the object name, action buttons, and the title in the shell bar. For more information, see:

Behavior and Interaction

Initial Focus

When the worklist is loaded, set the initial focus as follows:

  • If the worklist contains only a table, set the focus on the first line item of the table.
  • If the worklist contains an icon tab bar, set the focus on the first tab.

Sticky Behavior

The tab bar, table toolbar, and column headers must all be “sticky”. This means that they stay fixed at the top when the user scrolls down the page. 

Table Navigation

The worklist floorplan supports three types of navigation at item level:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a listtree, or responsive table, clicking the line item triggers the navigation. In a grid tableanalytical table, or tree table, clicking the navigation indicator triggers the navigation. Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use it only if the navigation indicator points to a different target.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually a list report. Use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting. In charts, offer the drilldown navigation link in the popover for the chart element, and navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains a cross-reference to another entity, such as a person or business object, use a link to display the corresponding data point in the table. Triggering the link opens a quick view.

Actions

Action placement in the worklist
Action placement in the worklist

The worklist offers four locations for actions:

  1. Global actions in the header toolbar
  2. Table actions in the table toolbar
  3. Line item actions
  4. Finalizing actions in the footer toolbar
Guidelines

  • Hide actions that cannot be used. This can be the case if the user has no authorization or the line item has the wrong state.
  • To save space, group similar actions using a menu button. For example: 
    • Release and Release with Conditions
    • Add Contact and Replace Contact
    • Edit Account and Edit Title
  • If there is not enough space to show all actions, they are moved to an overflow menu, depending on their priority. For more information, see Action Placement. 

1. Global Actions

Place actions that affect the entire page in the header title within the header toolbar. Examples of global actions are EditDelete, or Share.
Actions in the header toolbar are always right-aligned. Emphasize the most important action and place it on the very left.

For more information, see Header Toolbar.

2. Table Actions

Place actions that affect the content of a table in the table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available, such as Create for new objects. Other actions are only relevant if items have been selected. For example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item.

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions (such as Delete) when no items or only unsuitable items have been selected .
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

For more information, see UI Element States – Control States.

Partial Processing

Allow the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

For more information on table and chart actions, see:

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this option only for specific, frequently-used tasks. If the same action can also be applied to several items at once, you can also place it on the table toolbar. However, if you do so, reconsider whether you really need to offer the action at line item level. For more information, see Actions in Table Rows.

Examples of line item actions include: Start/Stop (a batch job), Approve (an item) or Assign (an item).

Do not disable line item actions. If an action can’t be used, hide it.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar. Examples of finalizing actions include SaveCancel, and Submit.

Bear in mind that even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Guidelines
Often, users will need more information before they can take action. If this is the case, offer navigation to the work item details, and show all the relevant actions in the detail screen. Once the user has completed the task, the app should:

  • Return the user to the worklist
  • Remove the processed item from the list, or move it to a “completed” section
  • Confirm the user’s action with a message toast

Responsiveness

Responsiveness for the worklist follows the dynamic page layout. In general, you can use any kind of table and list for the worklist floorplan in the content area. To ensure that the worklist is fully responsive and runs on all devices, we recommend using the responsive table. Note that the floorplan is not fully responsive if the following controls are used:

  • Grid table and tree table: Supported on desktop and tablet devices only. Implement a fallback solution on smartphones.
  • Smart table: The smart table is a wrapper around the different existing table controls. On smartphones, you can use a responsive table inside the smart table. If you use a grid table inside the smart table, implement a fallback solution for smartphones, as above.

For more details, see the respective guideline articles.

Worklist floorplan - Size L/XL
Worklist floorplan - Size L/XL
Worklist floorplan - Size M
Worklist floorplan - Size M
Worklist floorplan - Size S
Worklist floorplan - Size S

Examples

Worklist floorplan - Size L/XL
Worklist floorplan - Size L/XL
Worklist floorplan - Size M
Worklist floorplan - Size M
Worklist floorplan - Size S
Worklist floorplan - Size S

Top Tips

General

  • Decide whether the worklist or the list report is the right floorplan for your needs: The focus of the worklist floorplan is on processing items. This differs from the list report floorplan, which focuses on finding and acting on relevant items from a large dataset.
  • Choose one of the three basic worklist variants, based on your use case and the user’s needs.

Header

  • Always display a title or offer variant management.

Content

  • We recommend using the responsive table for a fully responsive worklist.
  • In the table toolbar, display at least a table title (ideally with an item count). If needed, offer icon-only buttons for sorting, grouping, and column settings.
  • The tab bar, table toolbar, and column headers of all table types must all be sticky.

Footer Toolbar

  • If you are using the icon tab bar, remember that there is only one footer toolbar for all tabs.
  • Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Related Links

Elements and Controls

Implementation

Analytical List Page

Analytical list page
Analytical list page

The analytical list page (ALP) offers a unique way to analyze data step by step from different perspectives, to investigate a root cause through drilldown, and to act on transactional content. All this can be done seamlessly within one page. The purpose of the analytical list page is to identify interesting areas within datasets or significant single instances using data visualization and business intelligence.

Visualizations help users to recognize facts and situations, and reduce the number of interaction steps needed to gain insights or to identify significant single instances. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

The main target group are users who work on transactional content. They benefit from fully transparent business object data and direct access to business actions. In addition, they have access to analytical views and functions without having to switch between systems. These include KPIs, a visual filter where filter values are enriched by measures and visualizations, and a combined table/chart view with drill-in capabilities (hybrid view). Users can interact with the chart to dig deep into the data. The visualization enables them to identify spikes, deviations and abnormalities more quickly, and to take appropriate action right away.

Usage

Use the analytical list page if:

  • Users need to extract key information to understand the current situation or identify a root cause. The way the data is presented is crucial for giving them the insights they need to take the right action.
  • Users need a way to analyze data step by step from different perspectives, investigate a root cause through drilldown, and act on transactional content within one page.
  • In addition to the filtered dataset, users need to see the impact of their filter settings in a chart (visual filter).
  • Users need to switch between integrated chart and table views (hybrid view).
  • Users need to see the impact of their action on a global key performance indicator (KPI).
  • Users need to find and act on relevant items out of a large set of items by searching, filtering, sorting, grouping, drilling down, and slicing and dicing.

Do not use the analytical list page if:

  • Drilldown is rarely used, not used at all, or is only needed after navigating to another page, rather than as free or flexible drilldown within the page itself. In this case, a list report might be sufficient for your use case.
  • Users need different visualizations for the entire dataset (for example, as a table or chart), but don’t need to work with both visualizations on the same page (for example, in a reporting scenario). In this case, a list report might be sufficient.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping, without using drilldown or “slice and dice”. In this case, consider using a list report.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. They want to be able to switch views using tabs, segmented buttons, or a select control. In this case, consider using a list report.
  • Users need to see or edit a single item with all its details. Use the object page floorplan instead.
  • Users need to find a specific item, and the item or an identifying data point is known to the user (such as a code). In this case, use the initial page floorplan.
  • Users need to work through a comparably small set of items, one by one. In this case, use the worklist floorplan.
  • Users have a trivial use case that does require the use of a chart, but that do not involve identifying a root cause, analyzing data, or drilldown. Instead, use a list report with a table/chart switch.

Structure

This section describes the basic layout of the analytical list page, as well as the different layout variants.

Basic Layout

The shell bar is above the analytical list page. The page itself uses the dynamic page layout and has two main areas:

  1. Analytical list page header:
    The page header is the filter area. Users can expand and collapse the header using the expand/collapse header icon.
  2. Analytical list page content area:
    The content area shows the content for the chosen filters.

All elements are described in more detail in the Components section below.

Analytical list page - Basic layout
Analytical list page - Basic layout

Layout Variants

The layout of the analytical list page is quite flexible. The display is determined by the header and content views chosen by the user.

The analytical list page always offers all of the above layout options. You cannot restrict the available views at app level. For example, you can’t offer only a visual filter (with no option to show the standard filter bar). Likewise, you can’t show only a table view (with no option to display the hybrid or chart views).

Responsiveness

The analytical list page is responsive, except for the global KPIs. Apps with one or more global KPIs are not supported on screen sizes smaller than size L (desktop).

Likewise, the analytical list page is only fully supported in the flexible column layout if no global KPIs are used. If you use the analytical list page with global KPIs within the flexible column layout, the column should have at least size M.

Size S

On size S, the analytical list page supports both the chart-only and table-only views. The table-only view supports only the responsive table. If no responsive table is available, the chart-only view is displayed without a view switch toggle.

Global KPIs are not supported on size S.

Size M

On size M, the analytical list page supports both the chart-only and table-only views. You can use a responsive table or analytical table in the table-only view.

Chart-only view - Size S
Chart-only view - Size S
Table-only view - Size S
Table-only view - Size S
Chart-only view - Size M
Chart-only view - Size M
Table-only view - Size M
Table-only view - Size M

Components

Analytical List Page Header

The page header can be expanded and collapsed on click. Different content is shown in the expanded and collapsed states. For more information about the basic behavior of the header, see Dynamic Page Header.

Collapsed Header

The collapsed page header contains the following elements:

Collapsed analytical list page header
Collapsed analytical list page header

Expanded Header

Initially when the app is launched the header is expanded by default. The expanded page header contains the following elements:

Expanded analytical list page header showing the visual filter bar
Expanded analytical list page header showing the visual filter bar
Expanded analytical page header showing compact filters in the filter bar
Expanded analytical page header showing compact filters in the filter bar

Analytical List Page Content Area

The analytical list page content area contains the following elements:

  • View switch (   |    |    )
  • Hybrid view: View with one chart, chart toolbar, one table, and a table toolbar
Hybrid view
Hybrid view
Chart-only view
Chart-only view
Table-only view
Table-only view

Analytical List Page Header

Variant Management

Variant management in the analytical list page allows users to save a page variant whenever there are changes in the underlying structures of the filter/content area. Variant management for the page is handled by the standard SAPUI5 page variant management.

Currently, the page variant captures the following states across the page:

  • Filter view switch state: Visual filter bar or filter bar
  • Filter set: The filters set in the visual filter bar and filter bar
  • Filter selections: Selected values in the visual filter bar and filter bar
  • Content view switch state: hybrid view  , chart-only view  , or table-only view  
  • Chart and table configurations, such as measures and dimensions used, sort order, or grouping
  • Chart drill-down state, based on the current selections (slice & dice)
  • Table entry switch state: Hide (  ) or Show  (  ) selected table records

Global KPI Tags and Cards

Use a global KPI tag (= global key performance indicator tag) if you would like to show a global KPI related to the task in hand. The global KPI value changes only if an action is executed on the transactional content. For example, the user needs to know the effect of releasing sales orders on a related global KPI, or the effect of posting an accounting document on certain financial global KPIs.

You can display a maximum of three global KPIs. Clicking a global KPI tag opens a global KPI card that displays more details on the KPI.

The global KPI tags and corresponding KPI cards are independent of the filter area. This means that global KPI tags do not react to filters set in the visual filter bar and filter bar.

A global KPI tag has four components:

  • Global KPI label
  • Global KPI value
  • Global KPI color and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator

Global KPI Label

The global KPI label is an abbreviation of the complete global KPI title. It is formed using the first three letters of the first three words of the global KPI title.
Examples: AMR for Actual Monthly Revenue, TAR for Total Advertising Revenue, or LPC for Landing Page Conversation Rates

If there is only one word in the global KPI title, the first three letters of the word are displayed. Example: CON for Contracts

If the global KPI title has only two words, only the first letters of these two words are displayed. Examples: AC for Actual Costs, SG for Sales Growth

KPI label abbreviation: AC
KPI label abbreviation: AC

Global KPI Value

The global KPI value is displayed using a semantic color and a scaling factor. Relative values are shown with a percentage sign and one decimal place.
Examples: 0.3%, 82.9%
Absolute values are shown without decimal places, a currency, or a unit of measure.
Examples: 2K, 75K, 30M, 14B

KPI values: 157.3M and 0.3%
KPI values: 157.3M and 0.3%

Global KPI Color and Criticality Indicator

The color of the global KPI value is based on the thresholds defined for the particular KPI in the annotation. The global KPI tag also uses a line to indicate the criticality. The color of the line is the same as that of the global KPI value.

KPI color and criticality indicator
KPI color and criticality indicator

Global KPI Card

Clicking the KPI tag opens the analytical card, which displays more information about the current value of the global KPI, the global KPI target, the deviation from the target, and how the global KPI has evolved over time.

Global KPI card
Global KPI card

Filter Area: Visual Filter Bar and Filter Bar

The filter area allows users to filter the result set, which feeds the main content area. The analytical list page comes with two filter types: compact filters in the filter bar, and the visual filter bar. Always design both visual filters and compact filters (filter bar) for your app. We recommend setting the visual filter bar as the default, but this is no longer mandatory. You can opt to use the (compact) filter bar as the default if your app has the required parameter values, if your main use case involves date ranges, or if your users often need to combine multiple filters in different ways.

Currently, any visual filter configured in the visual filter bar must always be displayed as a compact filter in the filter bar as well. By contrast, a filter configured as a compact filter in the filter bar may or may not be configured for display as a visual filter. This means that it’s possible to have a smaller set of visual filters and a larger set of compact filters.

Both filter types supports two different modes: live update and manual update. Use the live update mode for both filter types as the default whenever possible. Apply the same mode to both filter types: the visual filter bar and the filter bar. For example, if you use the live update mode in the visual filter bar, you should also use the live update mode for the filter bar.

Visual filter bar
Visual filter bar
Filter bar
Filter bar

Filter Type Switch

Users can toggle between the compact filters    (filter bar) and    (visual filter bar) in the upper-right area of the page header. The filter type switch is a core feature of the analytical list page and is mandatory. The switch is only displayed when the page header is expanded. Once the header collapses, it disappears.

Filter type switch
Filter type switch

Carrying Forward Filter Selections

Visual Filter to Compact Filter

Any values selected in the visual filters are always carried forward to the corresponding compact filters.

Compact Filter to Visual Filter

Filter dimensions that are part of a visual filter are synced to the visual filter. If the dimension value(s) chosen in the compact filter are part of a visual filter, they are shown as selected chart dimensions in the visual filter (single or multiple selections).

Filter dimensions that are not part of the visual filter, parameter values, and interval-based dimensions are applied to the filter query and the content is refreshed.

To show complex conditions, click the link for the number of selected items at the top of the visual filter.

Visual Filter Bar

The visual filter bar combines measures or item counts with filter values. The visual filter bar becomes more powerful if you match measures to the filter dimension instead of just item counts. Use the visual filter bar if you would like to give the user a condensed overview of the data in the dataset. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

Chart Types in the Visual Filter Bar

Currently, the visual filter bar supports three interactive chart types:

These interactive charts are also referred to as visual filters.

Interactive Donut Chart

The interactive donut chart in the visual filter bar is used for non-time-related data (for example, categories) and displays only the top or bottom two values. The rest are aggregated into the “Other” section.

Interactive donut chart
Interactive donut chart
Interactive donut chart with semantic colors
Interactive donut chart with semantic colors

Interactive Line Chart

The interactive line chart is used exclusively for displaying time series data, and can show a maximum of six data points. Always show the first or last six data points (for example, last six days, last six months, first six days, and so on).

Interactive line chart
Interactive line chart
Interactive line chart with semantic colors
Interactive line chart with semantic colors

Interactive Bar Chart

The interactive bar chart can be used for non-time-related data (for example, categories) and has a maximum of three filter values. These filter values show the top three or bottom three entries.

Interactive bar chart
Interactive bar chart
Interactive bar chart with semantic colors
Interactive bar chart with semantic colors

Using Interactive Charts

The interactive charts come with the following features and rules:

  • Minimum number of interactive charts: Show at least three visual filters and try to use different chart types.
  • Filter title:
    • Use the following naming convention for the filter title, using title case:
      [Measure Name] by [Dimension Name] | [Scale Factor] [Unit of Measure].
      Examples:
      Project Costs by Project | K EUR
      Sales Volume by Commodity | M PC
    • For an item count, use the following naming convention for the filter title, using title case:
      Number of [Dimension] | [Scale Factor] [Unit of Measure].
      Examples:
      Number of Products | PC
      Number of Contracts by Month
    • Note that for some use cases, it might be appropriate to replace “Number” with a different expression. Bear in mind that the space for displaying the filter title is limited. If the measure and/or dimension names are longer than the predefined space, the text will be truncated.
Filter title with truncation
Filter title with truncation
Filter title without truncation
Filter title without truncation
  • Filter-to-filter dependencies: Ideally, the filters depend on each other. By selecting one or several chart data points, users can perform a quick analysis of the dataset.
    Examples: Supplier with the lowest supplier performance this year, product with the highest sales volume in March in the EMEA region
  • Adding additional filter values: All charts have a maximum number of filter values that can be displayed within the chart itself. More filter values can be selected using the value help or the select popover.
  • Selected values: Any data point or segment that is selected in the visual filter’s interactive charts will remain selected even when the user changes the measure, chart type, or sort order in any of the charts. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.
  • Semantic colouring: All interactive charts support semantic colors to indicate the criticality of filter values.
  • How to design a visual filter: To design a visual filter, choose a meaningful measure out of the dataset and match it to a filter dimension. If no measures or no meaningful measures are available, use an item count instead. Have a look at the visual filter bar article for more information.

Filter Dialog

In the filter dialog, the user can switch between the visual filter bar and the compact filters using a toggle button, and also manage the filters. For more about the standard filter dialog, see Filter Bar. Visual filters are explained in more detail below.

Filter Dialog for Visual Filters

The filter dialog is launched by clicking the Adapt Filters ([number of applied filters]) link in the page header area. In the filter dialog for visual filters, the user can choose which filter fields are shown in the visual filter bar, and make the following changes:

  • Add visual filters
  • Delete visual filters
  • Hide visual filters in the visual filter bar
  • Search for visual filters
  • Change the sort order  of each visual filter
  • Change the chart type   of each visual filter
  • Switch to other measures  in the visual filter display

Analytical List Page Content Area

The content area shows different visualizations of the selected data. In the hybrid view, users can interact with both the chart and table visualizations at the same time. In addition, the analytical list page supports a chart-only view and a table-only view. The analytical list page always comes with all three views. Offering additional views or even tabs would add too much complexity, and is neither supported nor recommended.

Check out the following sections for more details on the hybrid view, chart-only view, and table-only view.

Hybrid View

The hybrid view uses both chart and table visualizations at the same time. It enables users to analyze data step by step from different perspectives. Users can interact with both the chart and the table, and drill down through either the smart chart or table entries to investigate a root cause. They can also act directly on transactional content. In the initial view of the chart, visualize the most important aspects of the whole dataset in the chart.

Example: The view shows all the suppliers the user is responsible for, organized by value. By drilling down the material to the plant with the highest/lowest volume, the user can see if materials need to be shifted from one plant to another. The corresponding transactional data is shown in an analytical table below the chart, which might also offer an action for shifting the material.

Analytical list page - Hybrid view
Analytical list page - Hybrid view

Chart-Only View

The chart-only view enables users to analyze data step by step from different perspectives, and to investigate a root cause through drilldown, without direct access to transactional content. The smart chart control provides the chart visualization in the chart-only and hybrid views: it is used to display the dataset as a chart. The smart chart drilldown functionality provides a convenient way to analyze the dataset. In addition, the smart chart offers detailed information on the chart data and a breadcrumb that shows the drilldown path. Ensure that you show the most important aspects of the dataset in the chart.

This mode is perfect for applications with analytical data that can easily be represented visually using charts, but doesn’t need to be linked to the transactional dataset.

Analytical list page - Chart-only view
Analytical list page - Chart-only view

Table-Only View

The table view provides access to transactional content. The user can act on single or multiple objects, and navigate to the object details or to other applications.

Depending on the use case, you can opt to use either the analytical table or the responsive table.

Snapping or scrolling is not available for desktop-focused tables, such as the analytical table. Scrolling is only available when the responsive table is used. The pin is enabled by default. The table entries are loaded using lazy loading.

Users can apply filters at table level using the Settings button ( ). For analytical tables, filtering is also available at column level. For more information, see Analytical Table (ALV) – Filter.

Analytical list page - Table-only view
Analytical list page - Table-only view

Behavior and Interaction

The expand/collapse header and pin/unpin header features work as in the dynamic page.

Initial Focus

When the analytical list page is loaded, set the initial focus as follows:

  • If the compact filter is visible by default, set the focus on the first filter field.
  • If the visual filter bar is visible by default, set the focus on the chart container.
  • If the header is collapsed (visual or compact filter), set the focus on the dynamic page header.

Open and View the Global KPI Card via the Global KPI Tag

Clicking a KPI tag opens the KPI card, which shows the details for the particular KPI.

Select Filters in the Visual Filter

Unlike micro charts, the visual filter charts are interactive. In live search mode, selecting a filter value triggers data filtering in the content area. Both single and multiple selection are supported.

To select a filter value, the user clicks on a value in the chart. The filter can be removed by either clicking on the value help link, or by clicking on the same value in the chart again. The user can select more filter values using the value help or select popover.

Any data point that is selected in a chart still remains selected when the user selects a data point in another chart. Filter values react on each other. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.

Switch Views: Hybrid, Chart-Only, and Table-Only

Users can switch between the hybrid view, chart-only view, and table-only view.

If the user selects values and then switches the view, the selection remains intact. See the table below for more details.

Switch Description
Hybrid view to table view Table selection remains intact
Hybrid view to chart view Chart selection remains intact
Chart view to hybrid view Chart selection remains intact; corresponding table selections are displayed
Table view to hybrid view Table selection remains intact

Show/Hide Table Entries in Hybrid View and Table View

The table toolbar for the analytical list page offers a Show   and Hide    table entries feature as a toggle switch in the hybrid and table views:

  • If the Show icon is active, the table shows all items. These include highlighted entries (where values are selected in the chart) and non-highlighted entries.
  • If the Hide icon is active, the table shows only items that are selected in the chart.

For example, if the user selects SAP’s Sales Revenue for 2012 as Customer in the chart, all records relating to SAP’s Sales Revenue for 2012 are highlighted (but not selected) in the table. Note that the record is still highlighted even if Customer not displayed as a column in the table. If the table rows are grouped, the entire grouping is highlighted, even if only one record within the grouped set is affected by the chart selection. All values that are not selected in the chart are “hidden” and are not shown in this table mode.

Guidelines

Show the filter dimension with one measure in the visual filter, not multiple measures

Filter dimensions in the compact filters (filter bar) have exactly one representation in the visual filter bar.
Do not show the same filter dimension with two or more different measures at the same time in the visual filter bar. The example shows the filter Dimension Year with two different measures Revenue and Quantity. Showing the filter dimensionYear twice is not in sync with the compact filter, where it is shown only once. Furthermore, matching between the two filter types will not work.

If the use case requires you to show a dimension with different measures, consider using an overview page instead.

Do
For each dimension display exactly one representation in the visual filter bar.
For each dimension display exactly one representation in the visual filter bar.
Don't
Do not use the same filter dimension with different measures
Do not use the same filter dimension with different measures

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

List Report Floorplan

Information
This article contains general guidelines for the list report floorplan. Note that some features may not be available if you are using the SAP Fiori elements implementation.

For the latest information on SAP Fiori elements, see the documentation and SAP Community wiki. You can also refer to the SAP Fiori elements feature map to see which controls and capabilities are supported for list reports.

Intro

With a list report, users can view and work with a large set of items. This floorplan offers powerful features for finding and acting on relevant items. It is often used as an entry point for navigating to the item details, which are usually shown on an object page.

List report
List report

When to Use

Use the list report floorplan if:

  • Users need to find and act on relevant items within a large set of items by searching, filtering, sorting, and grouping.
  • You want to let users display the whole dataset using different visualizations (for example, as a table or as a chart), but no interactions are required between these visualizations. An example use case might be reporting.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. You want to let users switch views using tabs, segmented buttons, or a select control.
  • Drilldown is rarely or never used, or is only available via navigation to another page, and not as free or flexible drilldown within the page itself.
  • Users work on different kinds of items.

Do not use the list report floorplan if:

  • Users need to see or edit one item with all its details. Use the object page floorplan instead.
  • Users need to find one specific item, and the item or an identifying data point is known to the user (such as a code). Use the initial page floorplan instead.
  • Users need to work through a comparably small set of items, one by one. Use the worklist floorplan instead.
  • Users need to extract knowledge or insights from data, either to better understand the current situation, or to identify the root cause for a certain value.  Use the analytical list page instead.
  • Charts are not only used for visualization. Users need to switch between integrated chart and table views (hybrid view). Use the analytical list page instead.
  • Users need to see the impact of their action on a KPI. Use the analytical list page instead.
  • Users need to see not only the result, but also the impact of their filter settings directly in a chart representation. Use the analytical list page instead.

Components

The list report is a full screen floorplan. It can also be used in flexible column layout, where it is usually displayed in the first column.

The list report page is based on the dynamic page, and is divided into a header area and a content area, as defined by the dynamic page layout.

Schematic visualization of a list report
Schematic visualization of a list report
  • The dynamic page header (1) contains the header title (2) and the expandable/collapsible header content (5).
    • The header title (2) is part of the header area and should display a title or variant (3) for the whole page (mandatory), filter information (if the header is collapsed), and a header toolbar (4) with global actions, such as Share (optional).
    • The header content (5) is used to display the filter bar or the smart filter bar (mandatory).
    • The header features (6) allow users to expand/collapse the header (6a) (mandatory) and pin/unpin the header area (6b).
  • The content area (7) is used to display:
    • A table/chart title, textual icon tab bar, or select (8) (optional)
    • One table/chart toolbar (9) per tab
    • One or multiple tables and/or charts (10). You can use any kind of table. If you use a chart, you can display the chart on its own (without a table) or as an additional view for an existing table (switchable).
  • The footer toolbar (11): If needed, use a footer toolbar to display the messaging button and finalizing actions.

Behavior and Interaction

Initial Focus

When the list report is loaded, set the initial focus as follows:

  • If the header is expanded, set the focus on the first filter field.
  • If the header is collapsed, set the focus on the dynamic page header.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see Manage Objects – Naming Guidelines and Launchpad Shell Bar – Page Title and Navigation Menu.

Header Title

Variant Management

Variant management is optional. If you use variants, we recommend using one variant management control for the whole page. Use the variants to save and restore all settings for filters, selected tabs, all tables, and all charts.

In some specific cases, you might need to add a second variant at control level. This can be the case when the user needs to change the view settings of a list independently of the page filters. However, the default is to use a single variant management control for the entire page.

Users can choose a default variant, which is selected every time the app is started.

Allow users to choose whether a variant should be executed automatically as soon as it has been selected. Not executing a variant automatically allows the user to add or remove filters before the dataset is updated. Provide this option only if the filter bar is in manual update mode. For live updates, this option is not required.

If variant management is not needed, show a title that describes the current view instead.

Variant management
Variant management

Filter Information

Display the filter information only if the header content is collapsed. Use the format Filtered By (x): followed by a comma-separated list of the filters currently applied. “x” stands for the number of applied filters.

Show up to 5 filters. If more filters have been applied, show an ellipsis (“…”) at the end of the string.

If no filters have been applied, show Not filtered.

Filter information
Filter information

Header Toolbar

Use the header toolbar for non-finalizing global actions, such as Share. Share opens an action sheet, which features Save as Tile (if the SAP Fiori launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

If the content area contains a grid table, an analytical table, a tree table, or any other content with its own scrollbar, display a Show Filters / Hide Filters button for expanding and collapsing the header content.

In addition, offer any other global, non-finalizing actions needed. Hide actions that cannot be used at all (for example, because of access rights). To save space on the header toolbar, group similar actions using a menu button.
For more information on global actions, see the guidelines for the header toolbar.

Header toolbar
Header toolbar

Header Content

Search

The filter bar can contain a search field (optional). If you use the search field, the content shows only items that match both the search terms and the filter criteria.

The search generally searches across all available columns of the table, regardless of whether or not they are visible. In rare cases, some columns might not be included due to technical constraints. If the search does not apply to multiple columns, do not offer the search field.

Filters

Filters are applied to all content, including all tables and charts. To improve performance, consider providing mandatory filter fields and/or default settings for filters.

If the list report loads automatically when the page loads, ensure that mandatory filter fields always have default values to avoid error messages.

The filter bar offers two different update modes:

  • The live update mode (recommended) triggers filtering immediately whenever a filter setting is changed. If the search field is used, the search is triggered together with all filter settings with every letter typed.
  • The manual update mode displays a Go button, which triggers the filtering. If the search field is used, the search is executed together with all filters as soon as the Go button is pressed.
    Make sure that all tables and charts in the content area are in a busy state until the new data is available. Also ensure that the content is grayed out as soon as the filter settings do not correspond to the content shown (any table, property: showOverlay). This is usually the case if the content is not yet updated and the Go button needs to be triggered.

Use the manual update mode only if you run into performance problems while loading the table data.

Regardless of the update mode, make sure that the filter bar and the visible content match: The filter bar must always describe the items that are shown in the content area.

Filter bar
Filter bar

The header content collapses when the user scrolls down the page (except for desktop-centric tables), and expands again when the user scrolls back up (“snap on scroll”). Users can pin the header content to keep it visible. For more information, see Dynamic Page – Expand/Collapse Header.

Exception: The “Snap on scroll” and “pin header” features are not provided if the main content area contains desktop-centric tables (grid tablesanalytical tables, tree tables) or any other content with its own scrollbar. In these cases, users need to expand and collapse the header content manually using the Show Filters / Hide Filters button.

When starting the application, expand the header content if no query was fired (and the table is therefore empty). Otherwise, collapse the header content.

Content Area

General Layout

There are three basic list report layouts: simple content, multiple views, and multiple content. These are described in more detail below.

Simple Content

In most cases, the content consists of just a table toolbar and a table. If needed, provide an option to switch between the table and a corresponding chart view.

Multiple Views

For more complex scenarios, provide multiple views of the same content. Multiple views involve one or more of the following:

  • Showing the same table, but with different columns.
  • Showing the same table in different pre-filtered states. These states are usually based on a status column, for example, items that are Open, In Process, or Closed. Make sure that the corresponding filter is not offered on the filter bar.
  • Differentiating between the items displayed in the content in some other fundamental way.

There are two options for switching between different views:

The first option is to replace the table title with a content switch. Use this approach if all views share the same sort and group states, as well as the same actions.

The content switch can be:

If you have both a table title and a content switch, display the table title first, then the content switch. Place both on the left side of the table toolbar. Since the content switch is placed on the table toolbar, the same actions are shown for all views.

If you are using the content switch together with charts, ensure that the chart also reacts to the content switch. This can be done by:

  • Filtering the data that influences the display of the chart
  • Changing the measures and/or dimensions (for example, View by Country/RegionView by Customer, …)

The second option for switching views is to show each view in a tab container of the icon tab bar. Use this approach if all views show different states of the same data (sort states, group states, as well as item selection). Using tabs also allows you to offer different actions on the table toolbar for each view.

Table toolbar with a segmented button for up to three different views
Table toolbar with a segmented button for up to three different views
Table toolbar with a select control for more than three views
Table toolbar with a select control for more than three views

Multiple Content

To support even more complex use cases, a list report floorplan can also contain multiple tables that display different kinds of objects. The filter bar settings are applied to all of these tables in parallel. For example, a customer overview list report might display different tables for invoices, deliveries, and overdue payments. All of these tables can be filtered for a specific customer and a specific date.

Display each table inside a tab container of an icon tab bar. This also allows you to offer different actions on the table toolbar for each table.

List report floorplan with multiple tables placed in multiple tabs
List report floorplan with multiple tables placed in multiple tabs

Icon Tab Bar

Use the text-only version of the icon tab bar. Display the number of items shown in the respective table on each tab (sap.m.IconTabFilter, property: count).

Icon tab bar
Icon tab bar

Table Toolbar

Display at least a table title (ideally with an item count) and icon-only buttons for sorting, grouping, and column settings. Do not offer additional filter settings on the table toolbar. For sort and group, show a view settings dialog with just the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

If alternative visualizations are provided (such as charts), offer an additional view switch on the table toolbar. Triggering the switch replaces the current visualization with another one. If a table and chart need to be shown in parallel, offer a switch for the combined view.

In rare cases, you can offer an additional layout variant on the table toolbar. The layout variant stores view settings like the column order and the sort and group settings. If you use a layout variant, do not store the table settings in the filter variant. Offer this additional layout variant only if there is a strong use case for switching filter and layout variants independently. If there is no strong use case, or you are unsure, do not use a layout variant at all.

Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Toolbar with a switch between table and chart visualizations
Toolbar with a switch between table and chart visualizations
Toolbar with a table title and layout variant
Toolbar with a table title and layout variant
Toolbar with additional actions
Toolbar with additional actions

In addition, offer any other actions needed. Disable selection-dependent actions (such as Delete) if no items are selected, or if the action cannot be applied to the selected items. Always enable selection-independent actions (such as Add). To save space on the table toolbar, group similar actions using a menu button. For example:

  • Release and Release with Conditions
  • Add Contact and Replace Contact
  • Edit Account and Edit Title

For more information on table/chart actions, see the guidelines for the table toolbar, the chart toolbar, and for managing objects.

Do
Table without the filter icon
Table without the filter icon
Don't
Table with a filter option
Table with a filter option

Table

If there are no items to display, use the “no data” text of the corresponding table. Explain why the table is empty, and what the user needs to do to display items.

Examples:

  • After starting the app, no filters are applied:
    To start, set the relevant filters.
  • The filter was executed, but no items were found. This can also happen if the list report was opened by a related app, and the filter criteria were transferred automatically:
    No data found. Try adjusting the filter settings.

If you are using a responsive table, always enable “scroll to load” behavior.

Sticky Behavior

The icon tab bar, table/chart toolbar, and column headers of all table types must be “sticky”. This means that they stay fixed on top when the user scrolls down the page.

Navigation

There are three types of navigation at item level in the list report floorplan:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a list, tree, or responsive table, clicking the line item triggers the navigation.
    In a grid table, analytical table, or tree table, clicking the navigation indicator triggers the navigation.
    Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use this only if the navigation indicator is being used for a different target.
    Only show navigation indicators for target pages the user is authorized to access.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually another list report. In this case, use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting.
    In charts, offer the drilldown navigation link in the popover for the chart element. In this case, also navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains cross-references to other entities, such as people or business objects, use a link to display the corresponding data point in the table. Triggering the link opens a quick view. Typically, the quick view displays basic details of the referenced object and a navigation link to another page (usually an object page) or another app that shows the object details.

Working Modes

When the user edits a list item in a filtered list, the changed item might no longer match the filter criteria. For this use case, there are two alternative working modes:

  • Worklist mode

    Users want to see a direct system reaction to their changes. Items that don’t match the current filters
    vanish immediately. This mode applies to about 80% of all use cases.
  • Continuous working mode

    The user still needs the edited item, even though it no longer matches the filter criteria. The item stays in the list until the next filtering process is triggered. The item is marked, and a system message informs the user about the filter mismatch. This mode applies to about 20% of all use cases.

The app developer can choose the appropriate working mode for the app use case.

Footer Toolbar

Use the footer toolbar to display the messaging button and finalizing actions. Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Always show the footer toolbar in edit mode.

Hide actions that cannot be used at all (for example, if the user doesn’t have authorization). To save space on the footer toolbar, group similar actions using a menu button.

For more information on finalizing actions, see the guidelines for the footer toolbar.

Footer toolbar
Footer toolbar

Actions

Places for actions in the list report
Places for actions in the list report

(1) Global actions in the header toolbar
(2) Table actions in the table toolbar
(3) Line item actions
(4) Finalizing actions in the footer toolbar

1. Global Actions

Place actions that affect the entire page in the header toolbar in the header title (1). These include the following standard actions:

Hide actions that cannot be used at all (for example, because the user has no authorization). To save space on the header toolbar, group similar actions using a menu button.

Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information on global actions, see the guidelines for the header toolbar.

2. Table/Chart Actions

Place actions that affect the content of a table or chart in the table toolbar (2).

Information
When you use the list, tree, or responsive table, actions on the table toolbar move up out of the visible screen area when the user scrolls down, and are not accessible.

If you are using an icon tab bar, be aware that each tab contains its own table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available (such as Create for new objects). Other actions are only relevant if items have been selected (for example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item).

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions when no items have been selected.
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information, also see UI Element States – Control States.

Partial Processing

Enable the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide a sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

Add/Create Items Using a Dialog

You can let users add or create new items at list report level using a dialog. This approach is recommended for cases where there are fewer than 8 required fields. Display the action in the table toolbar.

You can use this option for both draft and non-draft scenarios.

More Information

For more information on table and chart actions, see the guidelines for the table toolbar, chart toolbar, and for managing objects.

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this only for specific, frequently used tasks (3). If the same action can also be applied to several items at once, feel free to also place it on the table toolbar. Nevertheless, if you do so, reconsider whether you really need to offer the action at line item level. Examples of line item actions include:

  • Start/Stop (a batch job)
  • Approve (an item)
  • Assign (an item)

Do not disable line item actions. If an action cannot be used, hide it. This can be the case if the user has no authorization or the line item is in the wrong state.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar (4).

Examples:

  • Save
  • Cancel
  • Submit

Please be aware: Even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information on finalizing actions, see the guidelines for the footer toolbar.

Responsiveness

In general, the list report floorplan is responsive. However, there are exceptions if the following controls are used:

  • Grid table, analytical table: Supported on desktop and tablet devices only. On smartphones, replace these tables with something else, such as a responsive table or a list. In rare cases, displaying only a chart on smartphones might also suffice.
  • Tree table: Supported on desktop and tablet devices only. For smartphones, there is no equivalent alternative. In some cases, a tree, the category navigation pattern, or a chart might work.
  • Smart table: The smart table is a wrapper around the different existing table controls. If a grid table, analytical table, or tree table is used inside the smart table, you will run into the issues mentioned above. On a smartphone, you can use a responsive table inside the smart table. For the tree table, you need to replace the smart table as described above.

For more details, see the respective guideline articles.

List report - Size L
List report - Size L
List report - Size M
List report - Size M
List report - Size S
List report - Size S

Examples

The examples below show variants of the list report with the most commonly-used controls. You can also see the manual update mode (with a “Go” button) and the live update mode (no “Go” button).

Top Tips

  • Avoid loading list report page without any data, even if there are no mandatory filters.
  • Use only one key identifier in the table.
  • If you are using the icon tab bar, place it beneath the filters.
  • In the icon tab bar, use text labels only (without icons).
  • Choose selection controls that best fit your use case.
  • Make sure that columns in the table are aligned correctly.
  • Ensure that mandatory filter fields always have default values.
  • Avoid using variant management for tables. Use the page variant instead.
  • Always enable actions like Add, Create or Edit. Once Edit is triggered, replace it with Save and Cancel.
  • Never place finalizing actions in the header toolbar, even if they affect the whole page.
  • When using the icon tab bar, be aware that each tab contains its own table toolbar.

 

Related Links

Elements and Controls

Object Page Floorplan

Information
This article contains general guidelines for the object page floorplan. Note that some features may not be available if you are using the SAP Fiori elements implementation.

For the latest information on SAP Fiori elements, see the documentation and SAP Community wiki. You can also refer to the SAP Fiori elements feature map to see which controls and capabilities are supported for object pages.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan

Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.

List report floorplan
  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a code identified by a scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Object marker (optional)
  5. Header toolbar with global actions (optional)
  6. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
  7. Header content (optional)
Object page with the expanded dynamic page header
Object page with the expanded dynamic page header
Object page with the collapsed dynamic page header
Object page with the collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Progress indicator
  3. Subtitle (optional)
  4. Footer (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use this facet to display a rating indicator, which can be modified to fit your use case.

A rating indicator facet consists of:

  1. Title
  2. Rating indicator
  3. Supplementary texts (1-2)

We recommend the following property settings when using the rating indicator in header facets:

  • 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

The rating indicator facet can be used for two different use cases: aggregated rating and single-value rating.

Aggregated rating:

A typical example of an aggregated rating is the average of several user reviews for a product.

The aggregated rating facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.

Single value rating:

The single value rating facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary text
  3. Rating indicator
Header facet - Rating indicator facet with aggregated rating and single value rating
Header facet - Rating indicator facet with aggregated rating and single value rating

Navigation Bar (optional)

If your content is simple and you need only one section, use the dynamic page layout. In the dynamic page layout with one section, the header area can’t be edited when the page is in edit mode.

If your content is complex and you need several sections, use the object page layout. You can only have several sections in the object page layout. In the object page layout with several sections, it’s also possible to edit the header area when the page is in edit mode. However, try to avoid having an editable header and move the content from the header to the sections instead.

If you need only one section, but require an editable header, use the object page layout. An object page with only one section doesn’t have any anchor bars. However, a temporary anchor bar and section for editing the header content should be added when edit mode is triggered.

If the content is complex there are two ways to structure it:

  • Anchor bar navigation (default)
  • Tab bar navigation

Anchor Bar Navigation

The anchor bar consists of a series of links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link navigates to the respective section. The anchor bar remains visible when the user scrolls down the page.

Use anchor bar navigation when the content belongs together but users might want to jump to specific parts directly.

For more information, see Anchor Bar Navigation below.

Tab Bar Navigation

The tabs are a series of links to subpages, arranged horizontally at the top of the page. Clicking a link navigates to the respective subpage. The tabs remain visible when the user scrolls down the page.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

For more information, see Tab Bar Navigation below.

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking on these links directs the user to specific sections of the page. The anchor links remain visible when the user scrolls down the page.

Developer Hint
Make sure that the UpperCaseAchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.



Object page – Anchor bar
Object page – Anchor bar
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.



Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. Only use the form title if you are using several forms within the same subsection.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Blocks
Object page – Blocks

Tables

If a section or subsection contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section or subsection title acts as the table title.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 400 Tab navigation
More than 400 or tab approach is unsuitable Navigation to list report

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 5 to 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but less than 400, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to List Report

For tables with more than 400 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend only showing a preview of no more than 20 items. Ideally, you should have about 10 items. This can be achieved by prefiltering and/or sorting the table, and, if necessary, setting a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate list report containing the full table. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If the loading takes a long time, a busy indicator is shown on top of the section or item until the content it loaded and visible.

Busy indicators for sections still loading
Busy indicators for sections still loading

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used in edit and create mode for closing and finalizing actions, such as Save, Post, Accept, Reject, and Activate.

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Edit

In edit mode, the object page can contain a mixture of editable and read-only content.

If the user needs to edit elements in the header, a header section is added in the content area to enable editing.

Use the same content layout for both display and edit mode. Content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Manage Objects – Create, Edit, Delete.

Editing the Header

The object page header can be edited in two ways:

  • Global edit
  • Partial edit

Global Edit

The header can be edited when the entire object page is in edit mode.

Because the header snaps on scroll, there are no editable forms in the header itself. Instead, a temporary header section is added before the other sections of the page. The title bar information and all editable fields from the header container move from the header to the new editable header section. Any non-editable content displays as read-only in the new header section. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts).

If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears.

If your object page has no anchor bar in display mode, and the header section has only a few editable fields, do not add navigation in edit mode.

The header container in edit mode may contain independent facets that are not included in the header content in display mode. They provide information to assist editing.

If the entire object page is in edit mode, but there is no editable information in the header, no editable header section is added.

Any changes made to the header are not reflected until the user saves them.

Partial Edit

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing CTRL+ENTER has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, dispaly the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size M
Object page – Size M
Object page – Size L
Object page – Size L

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see Manage Objects – Naming Guidelines and Launchpad Shell Bar – Page Title and Navigation Menu.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

List Report Floorplan

Information
This article contains general guidelines for the list report floorplan. Note that some features may not be available if you are using the SAP Fiori elements implementation.

For the latest information on SAP Fiori elements, see the documentation and SAP Community wiki. You can also refer to the SAP Fiori elements feature map to see which controls and capabilities are supported for list reports.

Intro

With a list report, users can view and work with a large set of items. This floorplan offers powerful features for finding and acting on relevant items. It is often used as an entry point for navigating to the item details, which are usually shown on an object page.

List report
List report

When to Use

Use the list report floorplan if:

  • Users need to find and act on relevant items within a large set of items by searching, filtering, sorting, and grouping.
  • You want to let users display the whole dataset using different visualizations (for example, as a table or as a chart), but no interactions are required between these visualizations. An example use case might be reporting.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. You want to let users switch views using tabs, segmented buttons, or a select control.
  • Drilldown is rarely or never used, or is only available via navigation to another page, and not as free or flexible drilldown within the page itself.
  • Users work on different kinds of items.

Do not use the list report floorplan if:

  • Users need to see or edit one item with all its details. Use the object page floorplan instead.
  • Users need to find one specific item, and the item or an identifying data point is known to the user (such as a code). Use the initial page floorplan instead.
  • Users need to work through a comparably small set of items, one by one. Use the worklist floorplan instead.
  • Users need to extract knowledge or insights from data, either to better understand the current situation, or to identify the root cause for a certain value.  Use the analytical list page instead.
  • Charts are not only used for visualization. Users need to switch between integrated chart and table views (hybrid view). Use the analytical list page instead.
  • Users need to see the impact of their action on a KPI. Use the analytical list page instead.
  • Users need to see not only the result, but also the impact of their filter settings directly in a chart representation. Use the analytical list page instead.

Components

The list report is a full screen floorplan. It can also be used in flexible column layout, where it is usually displayed in the first column.

The list report page is based on the dynamic page, and is divided into a header area and a content area, as defined by the dynamic page layout.

Schematic visualization of a list report
Schematic visualization of a list report
  • The dynamic page header (1) contains the header title (2) and the expandable/collapsible header content (5).
    • The header title (2) is part of the header area and should display a title or variant (3) for the whole page (mandatory), filter information (if the header is collapsed), and a header toolbar (4) with global actions, such as Share (optional).
    • The header content (5) is used to display the filter bar or the smart filter bar (mandatory).
    • The header features (6) allow users to expand/collapse the header (6a) (mandatory) and pin/unpin the header area (6b).
  • The content area (7) is used to display:
    • A table/chart title, textual icon tab bar, or select (8) (optional)
    • One table/chart toolbar (9) per tab
    • One or multiple tables and/or charts (10). You can use any kind of table. If you use a chart, you can display the chart on its own (without a table) or as an additional view for an existing table (switchable).
  • The footer toolbar (11): If needed, use a footer toolbar to display the messaging button and finalizing actions.

Behavior and Interaction

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see Manage Objects – Naming Guidelines and Launchpad Shell Bar – Page Title and Navigation Menu.

Header Title

Variant Management

Variant management is optional. If you use variants, we recommend using one variant management control for the whole page. Use the variants to save and restore all settings for filters, selected tabs, all tables, and all charts.

In some specific cases, you might need to add a second variant at control level. This can be the case when the user needs to change the view settings of a list independently of the page filters. However, the default is to use a single variant management control for the entire page.

Users can choose a default variant, which is selected every time the app is started.

Allow users to choose whether a variant should be executed automatically as soon as it has been selected. Not executing a variant automatically allows the user to add or remove filters before the dataset is updated. Provide this option only if the filter bar is in manual update mode. For live updates, this option is not required.

If variant management is not needed, show a title that describes the current view instead.

Variant management
Variant management

Filter Information

Display the filter information only if the header content is collapsed. Use the format Filtered By (x): followed by a comma-separated list of the filters currently applied. “x” stands for the number of applied filters.

Show up to 5 filters. If more filters have been applied, show an ellipsis (“…”) at the end of the string.

If no filters have been applied, show Not filtered.

Filter information
Filter information

Header Toolbar

Use the header toolbar for non-finalizing global actions, such as Share. Share opens an action sheet, which features Save as Tile (if the SAP Fiori launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

If the content area contains a grid table, an analytical table, a tree table, or any other content with its own scrollbar, display a Show Filters / Hide Filters button for expanding and collapsing the header content.

In addition, offer any other global, non-finalizing actions needed. Hide actions that cannot be used at all (for example, because of access rights). To save space on the header toolbar, group similar actions using a menu button.
For more information on global actions, see the guidelines for the header toolbar.

Header toolbar
Header toolbar

Header Content

Search

The filter bar can contain a search field (optional). If you use the search field, the content shows only items that match both the search terms and the filter criteria.

The search generally searches across all available columns of the table, regardless of whether or not they are visible. In rare cases, some columns might not be included due to technical constraints. If the search does not apply to multiple columns, do not offer the search field.

Filters

Filters are applied to all content, including all tables and charts. To improve performance, consider providing mandatory filter fields and/or default settings for filters.

If the list report loads automatically when the page loads, ensure that mandatory filter fields always have default values to avoid error messages.

The filter bar offers two different update modes:

  • The live update mode (recommended) triggers filtering immediately whenever a filter setting is changed. If the search field is used, the search is triggered together with all filter settings with every letter typed.
  • The manual update mode displays a Go button, which triggers the filtering. If the search field is used, the search is executed together with all filters as soon as the Go button is pressed.
    Make sure that all tables and charts in the content area are in a busy state until the new data is available. Also ensure that the content is grayed out as soon as the filter settings do not correspond to the content shown (any table, property: showOverlay). This is usually the case if the content is not yet updated and the Go button needs to be triggered.

Use the manual update mode only if you run into performance problems while loading the table data.

Regardless of the update mode, make sure that the filter bar and the visible content match: The filter bar must always describe the items that are shown in the content area.

Filter bar
Filter bar

The header content collapses when the user scrolls down the page (except for desktop-centric tables), and expands again when the user scrolls back up (“snap on scroll”). Users can pin the header content to keep it visible. For more information, see Dynamic Page – Expand/Collapse Header.

Exception: The “Snap on scroll” and “pin header” features are not provided if the main content area contains desktop-centric tables (grid tablesanalytical tables, tree tables) or any other content with its own scrollbar. In these cases, users need to expand and collapse the header content manually using the Show Filters / Hide Filters button.

When starting the application, expand the header content if no query was fired (and the table is therefore empty). Otherwise, collapse the header content.

Content Area

General Layout

There are three basic list report layouts: simple content, multiple views, and multiple content. These are described in more detail below.

Simple Content

In most cases, the content consists of just a table toolbar and a table. If needed, provide an option to switch between the table and a corresponding chart view.

Multiple Views

For more complex scenarios, provide multiple views of the same content. Multiple views involve one or more of the following:

  • Showing the same table, but with different columns.
  • Showing the same table in different pre-filtered states. These states are usually based on a status column, for example, items that are Open, In Process, or Closed. Make sure that the corresponding filter is not offered on the filter bar.
  • Differentiating between the items displayed in the content in some other fundamental way.

There are two options for switching between different views:

The first option is to replace the table title with a content switch. Use this approach if all views share the same sort and group states, as well as the same actions.

The content switch can be:

If you have both a table title and a content switch, display the table title first, then the content switch. Place both on the left side of the table toolbar. Since the content switch is placed on the table toolbar, the same actions are shown for all views.

If you are using the content switch together with charts, ensure that the chart also reacts to the content switch. This can be done by:

  • Filtering the data that influences the display of the chart
  • Changing the measures and/or dimensions (for example, View by Country/RegionView by Customer, …)

The second option for switching views is to show each view in a tab container of the icon tab bar. Use this approach if all views show different states of the same data (sort states, group states, as well as item selection). Using tabs also allows you to offer different actions on the table toolbar for each view.

Table toolbar with a segmented button for up to three different views
Table toolbar with a segmented button for up to three different views
Table toolbar with a select control for more than three views
Table toolbar with a select control for more than three views

Multiple Content

To support even more complex use cases, a list report floorplan can also contain multiple tables that display different kinds of objects. The filter bar settings are applied to all of these tables in parallel. For example, a customer overview list report might display different tables for invoices, deliveries, and overdue payments. All of these tables can be filtered for a specific customer and a specific date.

Display each table inside a tab container of an icon tab bar. This also allows you to offer different actions on the table toolbar for each table.

List report floorplan with multiple tables placed in multiple tabs
List report floorplan with multiple tables placed in multiple tabs

Icon Tab Bar

Use the text-only version of the icon tab bar. Display the number of items shown in the respective table on each tab (sap.m.IconTabFilter, property: count).

Icon tab bar
Icon tab bar

Table Toolbar

Display at least a table title (ideally with an item count) and icon-only buttons for sorting, grouping, and column settings. Do not offer additional filter settings on the table toolbar. For sort and group, show a view settings dialog with just the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

If alternative visualizations are provided (such as charts), offer an additional view switch on the table toolbar. Triggering the switch replaces the current visualization with another one. If a table and chart need to be shown in parallel, offer a switch for the combined view.

In rare cases, you can offer an additional layout variant on the table toolbar. The layout variant stores view settings like the column order and the sort and group settings. If you use a layout variant, do not store the table settings in the filter variant. Offer this additional layout variant only if there is a strong use case for switching filter and layout variants independently. If there is no strong use case, or you are unsure, do not use a layout variant at all.

Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Toolbar with a switch between table and chart visualizations
Toolbar with a switch between table and chart visualizations
Toolbar with a table title and layout variant
Toolbar with a table title and layout variant
Toolbar with additional actions
Toolbar with additional actions

In addition, offer any other actions needed. Disable selection-dependent actions (such as Delete) if no items are selected, or if the action cannot be applied to the selected items. Always enable selection-independent actions (such as Add). To save space on the table toolbar, group similar actions using a menu button. For example:

  • Release and Release with Conditions
  • Add Contact and Replace Contact
  • Edit Account and Edit Title

For more information on table/chart actions, see the guidelines for the table toolbar, the chart toolbar, and for managing objects.

Do
Table without the filter icon
Table without the filter icon
Don't
Table with a filter option
Table with a filter option

Table

If there are no items to display, use the “no data” text of the corresponding table. Explain why the table is empty, and what the user needs to do to display items.

Examples:

  • After starting the app, no filters are applied:
    To start, set the relevant filters.
  • The filter was executed, but no items were found. This can also happen if the list report was opened by a related app, and the filter criteria were transferred automatically:
    No data found. Try adjusting the filter settings.

If you are using a responsive table, always enable “scroll to load” behavior.

Sticky Behavior

The icon tab bar, table/chart toolbar, and column headers of all table types must be “sticky”. This means that they stay fixed on top when the user scrolls down the page.

Navigation

There are three types of navigation at item level in the list report floorplan:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a list, tree, or responsive table, clicking the line item triggers the navigation.
    In a grid table, analytical table, or tree table, clicking the navigation indicator triggers the navigation.
    Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use this only if the navigation indicator is being used for a different target.
    Only show navigation indicators for target pages the user is authorized to access.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually another list report. In this case, use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting.
    In charts, offer the drilldown navigation link in the popover for the chart element. In this case, also navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains cross-references to other entities, such as people or business objects, use a link to display the corresponding data point in the table. Triggering the link opens a quick view. Typically, the quick view displays basic details of the referenced object and a navigation link to another page (usually an object page) or another app that shows the object details.

Working Modes

When the user edits a list item in a filtered list, the changed item might no longer match the filter criteria. For this use case, there are two alternative working modes:

  • Worklist mode

    Users want to see a direct system reaction to their changes. Items that don’t match the current filters
    vanish immediately. This mode applies to about 80% of all use cases.
  • Continuous working mode

    The user still needs the edited item, even though it no longer matches the filter criteria. The item stays in the list until the next filtering process is triggered. The item is marked, and a system message informs the user about the filter mismatch. This mode applies to about 20% of all use cases.

The app developer can choose the appropriate working mode for the app use case.

Footer Toolbar

Use the footer toolbar to display the messaging button and finalizing actions. Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Always show the footer toolbar in edit mode.

Hide actions that cannot be used at all (for example, if the user doesn’t have authorization). To save space on the footer toolbar, group similar actions using a menu button.

For more information on finalizing actions, see the guidelines for the footer toolbar.

Footer toolbar
Footer toolbar

Actions

Places for actions in the list report
Places for actions in the list report

(1) Global actions in the header toolbar
(2) Table actions in the table toolbar
(3) Line item actions
(4) Finalizing actions in the footer toolbar

1. Global Actions

Place actions that affect the entire page in the header toolbar in the header title (1). These include the following standard actions:

Hide actions that cannot be used at all (for example, because the user has no authorization). To save space on the header toolbar, group similar actions using a menu button.

Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information on global actions, see the guidelines for the header toolbar.

2. Table/Chart Actions

Place actions that affect the content of a table or chart in the table toolbar (2).

Information
When you use the list, tree, or responsive table, actions on the table toolbar move up out of the visible screen area when the user scrolls down, and are not accessible.

If you are using an icon tab bar, be aware that each tab contains its own table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available (such as Create for new objects). Other actions are only relevant if items have been selected (for example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item).

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions when no items have been selected.
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information, also see UI Element States – Control States.

Partial Processing

Enable the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide a sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

Add/Create Items Using a Dialog

You can let users add or create new items at list report level using a dialog. This approach is recommended for cases where there are fewer than 8 required fields. Display the action in the table toolbar.

You can use this option for both draft and non-draft scenarios.

More Information

For more information on table and chart actions, see the guidelines for the table toolbar, chart toolbar, and for managing objects.

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this only for specific, frequently used tasks (3). If the same action can also be applied to several items at once, feel free to also place it on the table toolbar. Nevertheless, if you do so, reconsider whether you really need to offer the action at line item level. Examples of line item actions include:

  • Start/Stop (a batch job)
  • Approve (an item)
  • Assign (an item)

Do not disable line item actions. If an action cannot be used, hide it. This can be the case if the user has no authorization or the line item is in the wrong state.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar (4).

Examples:

  • Save
  • Cancel
  • Submit

Please be aware: Even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information on finalizing actions, see the guidelines for the footer toolbar.

Responsiveness

In general, the list report floorplan is responsive. However, there are exceptions if the following controls are used:

  • Grid table, analytical table: Supported on desktop and tablet devices only. On smartphones, replace these tables with something else, such as a responsive table or a list. In rare cases, displaying only a chart on smartphones might also suffice.
  • Tree table: Supported on desktop and tablet devices only. For smartphones, there is no equivalent alternative. In some cases, a tree, the category navigation pattern, or a chart might work.
  • Smart table: The smart table is a wrapper around the different existing table controls. If a grid table, analytical table, or tree table is used inside the smart table, you will run into the issues mentioned above. On a smartphone, you can use a responsive table inside the smart table. For the tree table, you need to replace the smart table as described above.

For more details, see the respective guideline articles.

List report - Size L
List report - Size L
List report - Size M
List report - Size M
List report - Size S
List report - Size S

Examples

The examples below show variants of the list report with the most commonly-used controls. You can also see the manual update mode (with a “Go” button) and the live update mode (no “Go” button).

Top Tips

  • Avoid loading list report page without any data, even if there are no mandatory filters.
  • Use only one key identifier in the table.
  • If you are using the icon tab bar, place it beneath the filters.
  • In the icon tab bar, use text labels only (without icons).
  • Choose selection controls that best fit your use case.
  • Make sure that columns in the table are aligned correctly.
  • Ensure that mandatory filter fields always have default values.
  • Avoid using variant management for tables. Use the page variant instead.
  • Always enable actions like Add, Create or Edit. Once Edit is triggered, replace it with Save and Cancel.
  • Never place finalizing actions in the header toolbar, even if they affect the whole page.
  • When using the icon tab bar, be aware that each tab contains its own table toolbar.

 

Related Links

Elements and Controls

Introduction to SAP Fiori Elements

SAP Fiori elements (formerly known as smart templates) provide a framework for the most common application patterns.

The application team selects the relevant floorplan and adds semantic and structural data using metadata annotations. The framework then generates the application screen.

SAP Fiori elements ensure design consistency and compliance with the latest design guidelines, while reducing the amount of frontend code needed to build SAP Fiori apps.

Information
SAP Fiori elements are part of the SAPUI5 delivery.
SAP Fiori elements – The production line for UIs
SAP Fiori elements – The production line for UIs

Supported Floorplans and Layouts

The following floorplans are available as SAP Fiori elements:

The SAP Fiori elements framework supports the dynamic page layout for all available floorplans. In addition, the flexible column layout is supported for all available floorplans except the overview page, which is not allowed within the flexible column layout.

SAP Fiori elements use the global edit flow, which includes draft handling, or the local edit flow without draft handling. SAP Fiori elements also offer message handling.

Overview page
Overview page
List report
List report
Worklist
Worklist
Analytical list page
Analytical list page
Object page
Object page

Usage

You can use the SAP Fiori elements framework if the floorplan and layout you need for your app design are supported. The overview page floorplan, analytical list page floorplan, dynamic page layout, and flexible column layout are all fully supported. If you want to use the object page or list report floorplans, check the respective guideline articles to see which features are supported for SAP Fiori elements.

If you want to use floorplans that are not supported by the SAP Fiori elements framework, or if you require several features that are not supported by the respective floorplan in SAP Fiori elements, you should go with a freestyle app instead.

One of the big benefits of SAP Fiori elements is the reduction in development effort. This is especially important for features like draft handling or the flexible column layout. If you need these features in your app, you should go with SAP Fiori elements.

For an overview of all available floorplans and layouts, see Overview – Layouts, Floorplans, and Frameworks.

For more information on when to use SAP Fiori elements, see the usage guide.

Responsiveness

The responsiveness of SAP Fiori elements depends on the responsiveness of the floorplans and controls used in your app.

The SAP Fiori elements framework lets you influence the responsiveness of certain controls. For example, you can adapt the overflow behavior of actions and fields in the overflow toolbar, or change the pop-in behavior of columns in a responsive table.

Developer Hint
You can use the priority annotation to influence the responsive behavior of certain controls. This annotation supports the values “high”, “medium”, and “low”.

Adjustments

The behavior and interaction generally follows the guidelines for the respective floorplan or concept. If the guideline offers choices, the SAP Fiori elements framework offers the most generic option or, where possible, provides different options to choose from.

For example, the default table for list reports is the responsive table (or, for aggregated services, the analytical table). Other table types are offered as well, but have to be actively enabled by the application developer.

Deviations from the guidelines are sometimes necessary due to technical limitations, which are listed in the respective guideline artices. These limitations are usually short term and will be solved in future releases.

Developer Hint
You can adjust certain features by implementing breakouts, by adapting the manifest.json of your app, or through annotations or UI adaptation.

Mandatory Adjustments

Some UI texts provided by the SAP Fiori element contain generic placeholders. Always replace the default placeholders with an application-specific text. For more information about placeholder texts in SAP Fiori elements, see Replacing Standard UI Texts.

Examples of generic and adjusted texts:

Default Text Adjusted Example
List Report Create Object Create Sales Order
Object Page New Object New Sales Order
Overview Page Could not perform action Unable to approve the request

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Initial Page Floorplan

The initial page floorplan allows the user to navigate to a single object to view or edit it. The interaction point on the screen is a single input field that relies on assisted input to direct the user to the object in as few steps as possible (using features such as value help and live search). If you need to display more than one object, use the list report floorplan instead.

When to Use

Use the initial page floorplan if:

  • The user only needs to work on one object at a time. In this case, the list report floorplan would include a redundant step for viewing a list of items found by the search.

A typical use case for the initial page floorplan is a scanning app, where each new scan leads to an object with input fields. Once the user has submitted the entries, the screen is shown in read-only mode. The cursor returns to the input field, ready for the user to scan the next object.

Do not use the initial page floorplan if:

  • The search is supposed to return a list of objects. This is the scenario for the list report floorplan.

It is also advisable to use only one input field for finding the object. If you need to include detail views, or allow the user to switch between views, offer these features when displaying the object itself.

Components

The initial page is a floorplan based on the object page, with a dynamic page header and a content area.

Structure of the initial screen
Structure of the initial screen
  1. Shell bar (mandatory)
  2. Dynamic page header (mandatory)
  3. Input field (mandatory)
  4. Header features (optional)
  5. Content Area (mandatory)
  6. Footer toolbar (optional)

Dynamic page header

The header area can contain the same content as the object page and thereby follows its defined structure, except for the title, which is replaced by an input field. The header initially displays in collapsed mode but expands when the user performs a search or finds an object using the input field. Choose the selection control best suited to your use case.

Content area

The content area is used to display the object. It can contain a navigation bar, sections, subsections, forms, and tables.

Behavior and Interaction

Live Search

The input field serves as the single starting point for finding the object. The assisted input uses the live search feature (search-as-you-type) to speed up the search. The live search feature can show anything from one attribute to an entire table of values. To guide the user, you can use the message page to display a hint, such as Enter ID Manually or Scan Code.

Live Search
Live Search

Initial Screen with dialog

If multiple hits are possible for the same search terms, you may need to implement a select dialog, table select dialog, or value help dialog. These dialogs let the user narrow down the list of items based on more specific criteria. When the user selects an object from the list, the dialog closes and the object is displayed in the content area.

Behavior of the Search Field

The content of the dynamic page header is initially collapsed and cannot be expanded. The input field is located in the header title area of the object page. If no other additional actions are provided, set the focus to the input field . This allows the user to enter the search term directly without clicking into the field. However, only consider doing this if there are no other elements that could be blocked by it, such as the on-screen keyboard on touch devices.

Once the user finds an object, the dynamic page header expands and displays the relevant information for the object.

The dynamic page header collapses on scrolling or by user interaction, but the input field for performing a different search is always visible.

If the user enters new search terms in the input field, the focus moves away from the field and the app triggers a new search. If no results are found, the initial view of the page is shown – with a collapsed header and a corresponding message in the content area.

If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.

Responsiveness

The initial page features a single interaction point for the user: the input field near the top of the screen. Place the input field inside header title bar (sap.f.DynamicPageTitle). Configure the width to fit the width of the longest text (allowing some additional space for other languages), but do not make it significantly wider. When you set the maximum width of the input field, also consider the width available on mobile devices.

The field should never be as wide as the screen (except on smartphones).

Initial page floorplan - Size S
Initial page floorplan - Size S
Initial page floorplan - Size M
Initial page floorplan - Size M
Initial page floorplan - Size L
Initial page floorplan - Size L

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Object Page Floorplan

Information
This article contains general guidelines for the object page floorplan. Note that some features may not be available if you are using the SAP Fiori elements implementation.

For the latest information on SAP Fiori elements, see the documentation and SAP Community wiki. You can also refer to the SAP Fiori elements feature map to see which controls and capabilities are supported for object pages.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan

Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.

List report floorplan
  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a barcode identified by a barcode scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header initially expands in display mode. It also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Object marker (optional)
  5. Header toolbar with global actions (optional)
  6. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
  7. Header content (optional)
Object page with the expanded dynamic page header
Object page with the expanded dynamic page header
Object page with the collapsed dynamic page header
Object page with the collapsed dynamic page header

If the object page is used in the flexible column layout, it can also contain layout actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (no more than 5 in a group)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Progress indicator
  3. Subtitle (optional)
  4. Footer (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use this facet to display a rating indicator, which can be modified to fit your use case.

A rating indicator facet consists of:

  1. Title
  2. Rating indicator
  3. Supplementary texts (1-2)

We recommend the following property settings when using the rating indicator in header facets:

  • 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

The rating indicator facet can be used for two different use cases: aggregated rating and single-value rating.

Aggregated rating:

A typical example of an aggregated rating is the average of several user reviews for a product.

The aggregated rating facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.

Single value rating:

The single value rating facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary text
  3. Rating indicator
Header facet - Rating indicator facet with aggregated rating and single value rating
Header facet - Rating indicator facet with aggregated rating and single value rating

Navigation Bar (optional)

If your content is simple and you need only one section, use the dynamic page layout. In the dynamic page layout with one section, the header area can’t be edited when the page is in edit mode.

If your content is complex and you need several sections, use the object page layout. You can only have several sections in the object page layout. In the object page layout with several sections, it’s also possible to edit the header area when the page is in edit mode. However, try to avoid having an editable header and move the content from the header to the sections instead.

If you need only one section, but require an editable header, use the object page layout. An object page with only one section doesn’t have any anchor bars. However, a temporary anchor bar and section for editing the header content should be added when edit mode is triggered.

If the content is complex there are two ways to structure it:

  • Anchor bar navigation (default)
  • Tab bar navigation

Anchor Bar Navigation

The anchor bar consists of a series of links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link navigates to the respective section. The anchor bar remains visible when the user scrolls down the page.

Use anchor bar navigation when the content belongs together but users might want to jump to specific parts directly.

For more information, see Anchor Bar Navigation below.

Tab Bar Navigation

The tabs are a series of links to subpages, arranged horizontally at the top of the page. Clicking a link navigates to the respective subpage. The tabs remain visible when the user scrolls down the page.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

For more information, see Tab Bar Navigation below.

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking on these links directs the user to specific sections of the page. The anchor links remain visible when the user scrolls down the page.

Developer Hint
Make sure that the UpperCaseAchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.



Object page – Anchor bar
Object page – Anchor bar
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.



Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. Only use the form title if you are using several forms within the same subsection.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

SAP Fiori elements provide an option to show or hide fields on small screen devices based on their importance.

Developer Hint
You can set the importance of a field using the UI.Importance annotation. Based on the annotation type ("High", "Medium", or "Low"), the fields are shown or hidden depending on the screen size. If you do not specify the UI.Importance annotation, the default is set to "High" and the field is shown on all device types.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Blocks
Object page – Blocks

Tables

If a section or subsection contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section or subsection title acts as the table title.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 400 Tab navigation
More than 400 or tab approach is unsuitable Navigation to list report

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 5 to 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but less than 400, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to List Report

For tables with more than 400 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend only showing a preview of no more than 20 items. Ideally, you should have about 10 items. This can be achieved by prefiltering and/or sorting the table, and, if necessary, setting a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate list report containing the full table. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If the loading takes a long time, a busy indicator is shown on top of the section or item until the content it loaded and visible.

Busy indicators for sections still loading
Busy indicators for sections still loading

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used in edit and create mode for closing and finalizing actions, such as Save, Post, Accept, Reject, and Activate.

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Edit

In edit mode, the object page can contain a mixture of editable and read-only content.

If the user needs to edit elements in the header, a header section is added in the content area to enable editing.

Use the same content layout for both display and edit mode. Content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Manage Objects – Create, Edit, Delete.

Editing the Header

The object page header can be edited in two ways:

  • Global edit
  • Partial edit

Global Edit

The header can be edited when the entire object page is in edit mode.

Because the header snaps on scroll, there are no editable forms in the header itself. Instead, a temporary header section is added before the other sections of the page. The title bar information and all editable fields from the header container move from the header to the new editable header section. Any non-editable content displays as read-only in the new header section. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts).

If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears.

If your object page has no anchor bar in display mode, and the header section has only a few editable fields, do not add navigation in edit mode.

The header container in edit mode may contain independent facets that are not included in the header content in display mode. They provide information to assist editing.

If the entire object page is in edit mode, but there is no editable information in the header, no editable header section is added.

Any changes made to the header are not reflected until the user saves them.

Partial Edit

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

To enable users to create subobjects inline, offer an Add or Create button on the table toolbar. Clicking the button creates a row at the top of the table. Pressing CTRL+ENTER has the same effect.

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, dispaly the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size M
Object page – Size M
Object page – Size L
Object page – Size L

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see Manage Objects – Naming Guidelines and Launchpad Shell Bar – Page Title and Navigation Menu.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Overview Page – Stack Card | Quick View Card

Take Action on the Overview Page 

As well as giving users access to content from multiple applications using different visualizations, the overview page can also let users take immediate action. This is supported by a special interaction pattern with a set of closely-integrated card types: the stack card, object stream, and quick view card. These three card types are only ever used together, and navigation between them has been optimized to best support user needs.

A stack card is a collection of quick view cards, which provide a footer area with actions. These quick view cards are displayed in the object stream (overlay). The advantage of using stack cards is that users don’t have to leave the overview page, and therefore don’t lost their focus.

Overview page – Navigation overview of stack card, object stream, and quick view card
Overview page – Navigation overview of stack card, object stream, and quick view card

Explanation:

  1. Stack card (left side): Opens the parent application (such as a list report with all approvals).
  2. Stack card (right side): Opens the object stream.
  3. Heading of the object stream: A link that navigates to the parent application (such as a list report with all approvals).
  4. Single quick view cards within the object stream: Offer navigation to the object details (such as an object page with the selected approval), as well as actions.
  5. Placeholder card: The last card a one-click area and navigates directly to the parent application (such as a list report with all approvals).

Stack Card

A stack card is a special collection of single-object quick view cards, based on a topic or action. Unlike the other card types, the top-level stack cards don’t show any application content. Instead, they act as an entry point to an object stream containing multiple cards.

Stack cards have the following components:

  • The title is the top element and is always required. It is used as the heading for the detail view, and comprises 1-2 lines of text.
  • The subtitle is optional. You can use it to qualify the title, offer an explanation, or show a status. The purpose of the subtitle is explain the content of the stack in one line, so its usage depends on the context.
  • The stack content count indicates the number of cards in the stack (object stream). The object stream can contain up to 20 cards. Below the number of cards in the stack, you see the total number of items returned for the annotated view (for example, “20 of 42”).

The top-level stack card contains two clickable navigation areas:

  • The left area and View All link navigate to the parent application, where the user can see all the objects returned for the annotated view (42 in the example above). The placeholder card and heading inside the object stream have the same navigation target.
  • The right area opens the object stream, which contains a scrollable collection of cards presented in an overlay format. The user can browse individual cards, with the option to view, inspect, or take action.

Object Stream

Overview page – Object stream
Overview page – Object stream

Clicking the right-hand area of the stack card opens the object stream. The object stream appears on top of the overview page as a modeless overlay, and serves as a layer for showing quick view cards with actions. The overlay has heading on the top left, and a Close button on the right. The heading is the same as the stack card title, and links to the full result set in the parent application (same target as the left-side navigation on the stack card and the navigation from the placeholder card). Clicking outside the overlay area also closes the object stream.

The object stream can have up to 20 cards (maximum), which all get their content from the same parent application. By default, the cards are ordered chronologically, with the most recent items first. However, app developers can define the best object stream sorting option for their own needs and content. If the number of cards exceeds the available space in the overlay window, an arrow icon appears on the right for scrolling. Mobile device users can swipe to see more cards. If the object stream is empty, the stack link is not active and the overlay cannot be opened. The stack count number displays 0. If only one item is returned, the object stream contains just a single card.

The header area of the quick view cards in the object stream navigates to the detail view for that specific object in the parent application. The footer area of the quick view cards can also offer actions.

Object Stream – Scroll Arrows

Scroll arrows only appear on desktop devices. If all the cards in the object stream fit on the screen, the arrows are not visible. If the number of cards exceeds the available space, an arrow icon appears on the right when the user mouses over the object stream overlay. Mousing over the arrow button area scrolls the cards across the screen from right to left. As soon as the first card on the left moves out of the visible overlay area, a second arrow appears on the left for moving in the other direction. Once the last card is in full view, the arrow on the right disappears.

Placeholder Card

If the number of items returned for the annotated view exceeds the maximum 20 cards allowed in the object stream, a placeholder card is added automatically at the end of the stream (as card 21). The entire placeholder card is navigable, and takes the user to the full result set in the parent application.

The text on the placeholder card is composed as follows:

See all [total] [items] in the“[app name]” app.

Where:

  • The values for [total] and [app name] are supplied by the system.
  • The term for [items] must be rephrased by the app team to reflect the type of item or business object. For more information, see Mandatory Adjustments.

Examples:

  • See all 42 items awaiting approval in the “Approve Leave Requests” app.
  • See all 42 purchase orders awaiting approval in the “Approve Purchase Orders” app.
Overview page – Placeholder card
Overview page – Placeholder card

Object Stream – Tablet Version

On tablet devices, the modeless overlay expands horizontally. It also expands vertically to accommodate the card height and allow space for the title and Close button. The user can swipe through cards and perform micro actions. Swiping a card into view moves the entire object stream. Tapping the Close button closes the stack card and returns the user to the main overview page. There are no scroll arrows on touch devices.

Tablet in horizontal orientation
Tablet in horizontal orientation
Tablet in portrait orientation
Tablet in portrait orientation

Object Stream – Phone Version

On smartphones, the overview page layout collapses to a single column in both portrait and landscape modes. Tapping the right-hand navigation area of a stack card opens the object stream on top of the overview page in a new full screen window.

The object stream expands horizontally and vertically to accommodate the card height, and to allow space for the title and Close button. The user can swipe through the cards and perform micro actions. Swiping a card moves the entire object stream. Since the cards are too large to fit on the screen in landscape mode, users can also scroll vertically to see the full card content. Tapping the Close button closes the stack card and returns the user to the main overview page. There are no scroll arrows on touch devices.

Phone in horizontal orientation
Phone in horizontal orientation
Phone in portrait orientation
Phone in portrait orientation

Quick View Card

Quick view cards are single-object cards. They display the basic details for one object, such as the name, address, and phone numbers for a contact. This card type is only available within the object stream; you can’t place quick view cards on the overview page itself. The quick view card inherits the SAPUI5 element sap.m.QuickView.

The header area contains a static text, such as Purchase Order, and an optional dynamic text, such as 1005-3345. In this way, each card header can show different content. Clicking on the header area of the card opens the detailed view of the object in the corresponding parent app. If the content area of a card cannot display all the information, a scrollbar appears on the right. Only the footer area of the quick view card can provide actions. The footer bar is a specific feature of the card anatomy for quick view cards.

Card anatomy of the quick view card
Card anatomy of the quick view card
Quick view card for a contact
Quick view card for a contact
Quick view card for a product
Quick view card for a product
Quick view card for a purchase order
Quick view card for a purchase order

Actions on Cards

Only quick view cards within an object stream can have actions in the footer area. The overflow toolbar manages how the actions are displayed. All actions are right-aligned. Any actions that don’t fit into the available space move into the overflow action sheet, represented by the ellipsis ( ). A maximum of six actions are allowed in the footer area. Only offer actions the user really needs in the specific context.

Footer area with additional actions in the overflow
Footer area with additional actions in the overflow

There are two possible types of action: navigation and function import. Any combination of navigation and function import actions is allowed. Error or confirmation messages are displayed directly on the overview page. Always overwrite the predefined default text for errors in a message box: Formulate your message in plain language (without code), describe the issue precisely, and suggest a constructive solution.

Type: Navigation

Navigation is “intent-based” and takes the user to a different SAP Fiori app that specializes in executing an action. Navigation actions are always multi-click (meaning they can be repeated over and over). The destination screen opens in the same browser window, and any error or task confirmation messages are handled by the supporting application, not the overview page.

Type: Function Import

Function imports are custom OData service operations for actions. These actions are handled by the overview page, rather than by another SAP Fiori app. The interaction depends on whether or not the action requires user input:

  • If the action requires additional user input, the input parameters are handled directly on the overview screen without further navigation. A dialog appears on top of the card, allowing the user to enter data or make a selection. An example of additional input might be the rejection reason for a “Reject” action.
  • If the action has no input parameters, the action request is sent immediately. Once the action has been completed, the card disappears from the object stream.

Action on Phone

If an action on a card requires an input dialog box, use a full screen dialog on smartphones.

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

Worklist Floorplan

Information
This article contains general guidelines for the worklist floorplan. Note that some features may not be available if you are using the SAP Fiori elements implementation.

For the latest information on SAP Fiori elements, see the documentation and SAP Community wiki.

Intro

A worklist displays a collection of items a user needs to process. Working through the list usually involves reviewing details of the items and taking action. In most cases, the user has to either complete a work item or delegate it.

The worklist is a versatile floorplan that offers three main variants: a simple worklist (plain page with a table), a worklist with tabs, and a worklist with one or more KPI tags. These variants are based on different user needs and use cases. For more details, see the options under Components.

Simple worklist
Simple worklist
Worklist with tabs
Worklist with tabs
Worklist with KPI
Worklist with KPI

When to Use

Use the worklist floorplan if:

  • Users have numerous work items and need to decide which ones to process first.
  • You want to give users a direct entry point for taking action on work items.
  • Users need to work with multiple views of the same content (for example, items that are “Open”, “In Process”, or “Completed”). You want to offer tabs for switching between views.

Do not use the worklist floorplan if:

  • The items you are showing are not work items.
  • You want to show large item lists, or combine different data visualizations (charts or tables). In this case, use the list report floorplan instead.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping. Use the list report floorplan instead.

Components

The worklist floorplan is based on the dynamic page layout and is divided into a header and the page content. The header has a header title, but no header content. As a result, the expand/collapse and pin features are not needed.

The worklist consists of the following areas:

  1. The header title containing:
  2. The content area displaying:
  3.  A footer toolbar (optional) including:

Header Title

Variant Management

Variant management is optional. If used, apply it to the whole page. Use the variants to save and restore all settings, including selected tabs, all tables, and all personalization settings.

If variant management is not needed, just show a title that describes the view.

Key performance indicator/ KPI

The key performance indicator (KPI) allows users to track the impact of their actions while processing the worklist. You can display one or more KPIs within the KPI container next to the page title to show the status/criticality of the tag.

Header Toolbar (Global Actions)

Use the header toolbar for global actions, such as Share. Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information, see Global Actions.

Content Area

Tab Bar

The tab bar is part of the page content container, and must be sticky.

In the worklist, the icon tab bar works as a filter on the content below. It enables users to call up work items in specific categories. This can help users to identify critical items more easily. Different tabs show different perspectives on the same dataset.

Guidelines

  • Display the number of items shown in the table on each tab (sap.m.IconTabFilter, property: count).
  • Only use icons if you need to display semantic colors on the icon tab bar. You can offer visual orientation by applying semantic colors to the icons for the different categories (for example, red for the Error tab).
  • Bear in mind that each tab in an icon tab bar contains its own table toolbar.

Table Toolbar

Display at least a table title (ideally with an item count) and, if needed, icon-only buttons for sorting, grouping, and column settings. For filter, sort, and group, show a view settings dialog with only the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

Table

In general, you can use any kind of table and list for the worklist floorplan in the content area. Nevertheless, we recommend using the responsive table. For more information, see Responsiveness.

If there are no items to display, use the “no data text” for the corresponding table. Explain why the table is empty, and what the user needs to do to display items. For more information and examples see: “No data” texts.

The most basic version of the worklist is the simple worklist: a plain page with a table.

Simple worklist without tabs
Simple worklist without tabs

Footer Toolbar

The footer toolbar is an optional component of the worklist floorplan. Only use it if finalizing actions for the whole page and/or the message popover are required. Keep in mind that the footer toolbar is only visible in edit mode. For more information, see the guidelines for the footer toolbar.

Guidelines
Follow the standard naming conventions for all objects, the object name, action buttons, and the title in the shell bar. For more information, see:

Behavior and Interaction

Sticky Behavior

The tab bar, table toolbar, and column headers must all be “sticky”. This means that they stay fixed at the top when the user scrolls down the page. 

Table Navigation

The worklist floorplan supports three types of navigation at item level:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a listtree, or responsive table, clicking the line item triggers the navigation. In a grid tableanalytical table, or tree table, clicking the navigation indicator triggers the navigation. Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use it only if the navigation indicator points to a different target.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually a list report. Use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting. In charts, offer the drilldown navigation link in the popover for the chart element, and navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains a cross-reference to another entity, such as a person or business object, use a link to display the corresponding data point in the table. Triggering the link opens a quick view.

Actions

Action placement in the worklist
Action placement in the worklist

The worklist offers four locations for actions:

  1. Global actions in the header toolbar
  2. Table actions in the table toolbar
  3. Line item actions
  4. Finalizing actions in the footer toolbar
Guidelines

  • Hide actions that cannot be used. This can be the case if the user has no authorization or the line item has the wrong state.
  • To save space, group similar actions using a menu button. For example: 
    • Release and Release with Conditions
    • Add Contact and Replace Contact
    • Edit Account and Edit Title
  • If there is not enough space to show all actions, they are moved to an overflow menu, depending on their priority. For more information, see Action Placement. 

1. Global Actions

Place actions that affect the entire page in the header title within the header toolbar. Examples of global actions are EditDelete, or Share.
Actions in the header toolbar are always right-aligned. Emphasize the most important action and place it on the very left.

For more information, see Header Toolbar.

2. Table Actions

Place actions that affect the content of a table in the table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available, such as Create for new objects. Other actions are only relevant if items have been selected. For example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item.

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions (such as Delete) when no items or only unsuitable items have been selected .
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

For more information, see UI Element States – Control States.

Partial Processing

Allow the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

For more information on table and chart actions, see:

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this option only for specific, frequently-used tasks. If the same action can also be applied to several items at once, you can also place it on the table toolbar. However, if you do so, reconsider whether you really need to offer the action at line item level. For more information, see Actions in Table Rows.

Examples of line item actions include: Start/Stop (a batch job), Approve (an item) or Assign (an item).

Do not disable line item actions. If an action can’t be used, hide it.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar. Examples of finalizing actions include SaveCancel, and Submit.

Bear in mind that even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Guidelines
Often, users will need more information before they can take action. If this is the case, offer navigation to the work item details, and show all the relevant actions in the detail screen. Once the user has completed the task, the app should:

  • Return the user to the worklist
  • Remove the processed item from the list, or move it to a “completed” section
  • Confirm the user’s action with a message toast

Responsiveness

Responsiveness for the worklist follows the dynamic page layout. In general, you can use any kind of table and list for the worklist floorplan in the content area. To ensure that the worklist is fully responsive and runs on all devices, we recommend using the responsive table. Note that the floorplan is not fully responsive if the following controls are used:

  • Grid table and tree table: Supported on desktop and tablet devices only. Implement a fallback solution on smartphones.
  • Smart table: The smart table is a wrapper around the different existing table controls. On smartphones, you can use a responsive table inside the smart table. If you use a grid table inside the smart table, implement a fallback solution for smartphones, as above.

For more details, see the respective guideline articles.

Worklist floorplan - Size L/XL
Worklist floorplan - Size L/XL
Worklist floorplan - Size M
Worklist floorplan - Size M
Worklist floorplan - Size S
Worklist floorplan - Size S

Examples

Worklist floorplan - Size L/XL
Worklist floorplan - Size L/XL
Worklist floorplan - Size M
Worklist floorplan - Size M
Worklist floorplan - Size S
Worklist floorplan - Size S

Top Tips

General

  • Decide whether the worklist or the list report is the right floorplan for your needs: The focus of the worklist floorplan is on processing items. This differs from the list report floorplan, which focuses on finding and acting on relevant items from a large dataset.
  • Choose one of the three basic worklist variants, based on your use case and the user’s needs.

Header

  • Always display a title or offer variant management.

Content

  • We recommend using the responsive table for a fully responsive worklist.
  • In the table toolbar, display at least a table title (ideally with an item count). If needed, offer icon-only buttons for sorting, grouping, and column settings.
  • The tab bar, table toolbar, and column headers of all table types must all be sticky.

Footer Toolbar

  • If you are using the icon tab bar, remember that there is only one footer toolbar for all tabs.
  • Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Related Links

Elements and Controls

Implementation

Introduction to SAP Fiori Elements

SAP Fiori elements (formerly known as smart templates) provide a framework for the most common application patterns.

The application team selects the relevant floorplan and adds semantic and structural data using metadata annotations. The framework then generates the application screen.

SAP Fiori elements ensure design consistency and compliance with the latest design guidelines, while reducing the amount of frontend code needed to build SAP Fiori apps.

Information
SAP Fiori elements are part of the SAPUI5 delivery.
SAP Fiori elements – The production line for UIs
SAP Fiori elements – The production line for UIs

Supported Floorplans and Layouts

The following floorplans are available as SAP Fiori elements:

The SAP Fiori elements framework supports the dynamic page layout for all available floorplans. In addition, the flexible column layout is supported for all available floorplans except the overview page, which is not allowed within the flexible column layout.

SAP Fiori elements use the global edit flow, which includes draft handling, or the local edit flow without draft handling. SAP Fiori elements also offer message handling.

Overview page
Overview page
List report
List report
Worklist
Worklist
Analytical list page
Analytical list page
Object page
Object page

Usage

You can use the SAP Fiori elements framework if the floorplan and layout you need for your app design are supported. The overview page floorplan, analytical list page floorplan, dynamic page layout, and flexible column layout are all fully supported. If you want to use the object page or list report floorplans, check the respective guideline articles to see which features are supported for SAP Fiori elements.

If you want to use floorplans that are not supported by the SAP Fiori elements framework, or if you require several features that are not supported by the respective floorplan in SAP Fiori elements, you should go with a freestyle app instead.

One of the big benefits of SAP Fiori elements is the reduction in development effort. This is especially important for features like draft handling or the flexible column layout. If you need these features in your app, you should go with SAP Fiori elements.

For an overview of all available floorplans and layouts, see Overview – Layouts, Floorplans, and Frameworks.

For more information on when to use SAP Fiori elements, see the usage guide.

Responsiveness

The responsiveness of SAP Fiori elements depends on the responsiveness of the floorplans and controls used in your app.

The SAP Fiori elements framework lets you influence the responsiveness of certain controls. For example, you can adapt the overflow behavior of actions and fields in the overflow toolbar, or change the pop-in behavior of columns in a responsive table.

Developer Hint
You can use the priority annotation to influence the responsive behavior of certain controls. This annotation supports the values “high”, “medium”, and “low”.

Adjustments

The behavior and interaction generally follows the guidelines for the respective floorplan or concept. If the guideline offers choices, the SAP Fiori elements framework offers the most generic option or, where possible, provides different options to choose from.

For example, the default table for list reports is the responsive table (or, for aggregated services, the analytical table). Other table types are offered as well, but have to be actively enabled by the application developer.

Deviations from the guidelines are sometimes necessary due to technical limitations, which are listed in the respective guideline artices. These limitations are usually short term and will be solved in future releases.

Developer Hint
You can adjust certain features by implementing breakouts, by adapting the manifest.json of your app, or through annotations or UI adaptation.

Mandatory Adjustments

Some UI texts provided by the SAP Fiori element contain generic placeholders. Always replace the default placeholders with an application-specific text. For more information about placeholder texts in SAP Fiori elements, see Replacing Standard UI Texts.

Examples of generic and adjusted texts:

Default Text Adjusted Example
List Report Create Object Create Sales Order
Object Page New Object New Sales Order
Overview Page Could not perform action Unable to approve the request

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Worklist Floorplan

Information
This article contains general guidelines for the worklist floorplan. Note that some features may not be available if you are using the SAP Fiori elements implementation.

For the latest information on SAP Fiori elements, see the documentation and SAP Community wiki.

Intro

A worklist displays a collection of items a user needs to process. Working through the list usually involves reviewing details of the items and taking action. In most cases, the user has to either complete a work item or delegate it.

The worklist is a versatile floorplan that offers three main variants: a simple worklist (plain page with a table), a worklist with tabs, and a worklist with one or more KPI tags. These variants are based on different user needs and use cases. For more details, see the options under Components.

Worklist
Worklist

When to Use

Use the worklist floorplan if:

  • Users have numerous work items and need to decide which ones to process first.
  • You want to give users a direct entry point for taking action on work items.
  • Users need to work with multiple views of the same content (for example, items that are “Open”, “In Process”, or “Completed”). You want to offer tabs for switching between views.

Do not use the worklist floorplan if:

  • The items you are showing are not work items.
  • You want to show large item lists, or combine different data visualizations (charts or tables). In this case, use the list report floorplan instead.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping. Use the list report floorplan instead.

Components

The worklist floorplan is based on the dynamic page layout and is divided into a header and the page content. The header has a header title, but no header content. As a result, the expand/collapse and pin features are not needed.

The worklist consists of the following areas:

  1. The header title containing:
  2. The content area displaying:
  3.  A footer toolbar (optional) including:

Header Title

Variant Management

Variant management is optional. If used, apply it to the whole page. Use the variants to save and restore all settings, including selected tabs, all tables, and all personalization settings.

If variant management is not needed, just show a title that describes the view.

Key performance indicator/ KPI

The key performance indicator (KPI) allows users to track the impact of their actions while processing the worklist. You can display one or more KPIs within the KPI container next to the page title to show the status/criticality of the tag.

Worklist with KPI
Worklist with KPI

Header Toolbar (Global Actions)

Use the header toolbar for global actions, such as Share. Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information, see Global Actions.

Content Area

Tab Bar

The tab bar is part of the page content container, and must be sticky.

In the worklist, the icon tab bar works as a filter on the content below. It enables users to call up work items in specific categories. This can help users to identify critical items more easily. Different tabs show different perspectives on the same dataset.

Worklist with tab categories
Worklist with tab categories
Guidelines

  • Display the number of items shown in the table on each tab (sap.m.IconTabFilter, property: count).
  • Only use icons if you need to display semantic colors on the icon tab bar. You can offer visual orientation by applying semantic colors to the icons for the different categories (for example, red for the Error tab).
  • Bear in mind that each tab in an icon tab bar contains its own table toolbar.

Table Toolbar

Display at least a table title (ideally with an item count) and, if needed, icon-only buttons for sorting, grouping, and column settings. For filter, sort, and group, show a view settings dialog with only the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

Table

In general, you can use any kind of table and list for the worklist floorplan in the content area. Nevertheless, we recommend using the responsive table. For more information, see Responsiveness.

If there are no items to display, use the “no data text” for the corresponding table. Explain why the table is empty, and what the user needs to do to display items. For more information and examples see: “No data” texts.

The most basic version of the worklist is the simple worklist: a plain page with a table.

Simple worklist without tabs
Simple worklist without tabs

Footer Toolbar

The footer toolbar is an optional component of the worklist floorplan. Only use it if finalizing actions for the whole page and/or the message popover are required. Keep in mind that the footer toolbar is only visible in edit mode. For more information, see the guidelines for the footer toolbar.

Guidelines
Follow the standard naming conventions for all objects, the object name, action buttons, and the title in the shell bar. For more information, see:

Behavior and Interaction

Sticky Behavior

The tab bar, table toolbar, and column headers must all be “sticky”. This means that they stay fixed at the top when the user scrolls down the page. 

Table Navigation

The worklist floorplan supports three types of navigation at item level:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a listtree, or responsive table, clicking the line item triggers the navigation. In a grid tableanalytical table, or tree table, clicking the navigation indicator triggers the navigation. Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use it only if the navigation indicator points to a different target.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually a list report. Use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting. In charts, offer the drilldown navigation link in the popover for the chart element, and navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains a cross-reference to another entity, such as a person or business object, use a link to display the corresponding data point in the table. Triggering the link opens a quick view.

Actions

Action placement in the worklist
Action placement in the worklist

The worklist offers four locations for actions:

  1. Global actions in the header toolbar
  2. Table actions in the table toolbar
  3. Line item actions
  4. Finalizing actions in the footer toolbar
Guidelines

  • Hide actions that cannot be used. This can be the case if the user has no authorization or the line item has the wrong state.
  • To save space, group similar actions using a menu button. For example: 
    • Release and Release with Conditions
    • Add Contact and Replace Contact
    • Edit Account and Edit Title
  • If there is not enough space to show all actions, they are moved to an overflow menu, depending on their priority. For more information, see Action Placement. 

1. Global Actions

Place actions that affect the entire page in the header title within the header toolbar. Examples of global actions are EditDelete, or Share.
Actions in the header toolbar are always right-aligned. Emphasize the most important action and place it on the very left.

For more information, see Header Toolbar.

2. Table Actions

Place actions that affect the content of a table in the table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available, such as Create for new objects. Other actions are only relevant if items have been selected. For example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item.

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions (such as Delete) when no items or only unsuitable items have been selected .
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

For more information, see UI Element States – Control States.

Partial Processing

Allow the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

For more information on table and chart actions, see:

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this option only for specific, frequently-used tasks. If the same action can also be applied to several items at once, you can also place it on the table toolbar. However, if you do so, reconsider whether you really need to offer the action at line item level. For more information, see Actions in Table Rows.

Examples of line item actions include: Start/Stop (a batch job), Approve (an item) or Assign (an item).

Do not disable line item actions. If an action can’t be used, hide it.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar. Examples of finalizing actions include SaveCancel, and Submit.

Bear in mind that even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Guidelines
Often, users will need more information before they can take action. If this is the case, offer navigation to the work item details, and show all the relevant actions in the detail screen. Once the user has completed the task, the app should:

  • Return the user to the worklist
  • Remove the processed item from the list, or move it to a “completed” section
  • Confirm the user’s action with a message toast

Responsiveness

Responsiveness for the worklist follows the dynamic page layout. In general, you can use any kind of table and list for the worklist floorplan in the content area. To ensure that the worklist is fully responsive and runs on all devices, we recommend using the responsive table. Note that the floorplan is not fully responsive if the following controls are used:

  • Grid table and tree table: Supported on desktop and tablet devices only. Implement a fallback solution on smartphones.
  • Smart table: The smart table is a wrapper around the different existing table controls. On smartphones, you can use a responsive table inside the smart table. If you use a grid table inside the smart table, implement a fallback solution for smartphones, as above.

For more details, see the respective guideline articles.

Worklist floorplan - Size L/XL
Worklist floorplan - Size L/XL
Worklist floorplan - Size M
Worklist floorplan - Size M
Worklist floorplan - Size S
Worklist floorplan - Size S

Examples

Worklist floorplan - Size L/XL
Worklist floorplan - Size L/XL
Worklist floorplan - Size M
Worklist floorplan - Size M
Worklist floorplan - Size S
Worklist floorplan - Size S

Top Tips

General

  • Decide whether the worklist or the list report is the right floorplan for your needs: The focus of the worklist floorplan is on processing items. This differs from the list report floorplan, which focuses on finding and acting on relevant items from a large dataset.
  • Choose one of the three basic worklist variants, based on your use case and the user’s needs.

Header

  • Always display a title or offer variant management.

Content

  • We recommend using the responsive table for a fully responsive worklist.
  • In the table toolbar, display at least a table title (ideally with an item count). If needed, offer icon-only buttons for sorting, grouping, and column settings.
  • The tab bar, table toolbar, and column headers of all table types must all be sticky.

Footer Toolbar

  • If you are using the icon tab bar, remember that there is only one footer toolbar for all tabs.
  • Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Related Links

Elements and Controls

Implementation

Analytical List Page (SAP Fiori Element)

Analytical list page
Analytical list page

The analytical list page (ALP) offers a unique way to analyze data step by step from different perspectives, to investigate a root cause through drilldown, and to act on transactional content. All this can be done seamlessly within one page. The purpose of the analytical list page is to identify interesting areas within datasets or significant single instances using data visualization and business intelligence.

Visualizations help users to recognize facts and situations, and reduce the number of interaction steps needed to gain insights or to identify significant single instances. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

The main target group are users who work on transactional content. They benefit from fully transparent business object data and direct access to business actions. In addition, they have access to analytical views and functions without having to switch between systems. These include KPIs, a visual filter where filter values are enriched by measures and visualizations, and a combined table/chart view with drill-in capabilities (hybrid view). Users can interact with the chart to dig deep into the data. The visualization enables them to identify spikes, deviations and abnormalities more quickly, and to take appropriate action right away.

Usage

Use the analytical list page if:

  • Users need to extract key information to understand the current situation or identify a root cause. The way the data is presented is crucial for giving them the insights they need to take the right action.
  • Users need a way to analyze data step by step from different perspectives, investigate a root cause through drilldown, and act on transactional content within one page.
  • In addition to the filtered dataset, users need to see the impact of their filter settings in a chart (visual filter).
  • Users need to switch between integrated chart and table views (hybrid view).
  • Users need to see the impact of their action on a global key performance indicator (KPI).
  • Users need to find and act on relevant items out of a large set of items by searching, filtering, sorting, grouping, drilling down, and slicing and dicing.

Do not use the analytical list page if:

  • Drilldown is rarely used, not used at all, or is only needed after navigating to another page, rather than as free or flexible drilldown within the page itself. In this case, a list report might be sufficient for your use case.
  • Users need different visualizations for the entire dataset (for example, as a table or chart), but don’t need to work with both visualizations on the same page (for example, in a reporting scenario). In this case, a list report might be sufficient.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping, without using drilldown or “slice and dice”. In this case, consider using a list report.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. They want to be able to switch views using tabs, segmented buttons, or a select control. In this case, consider using a list report.
  • Users need to see or edit a single item with all its details. Use the object page floorplan instead.
  • Users need to find a specific item, and the item or an identifying data point is known to the user (such as a barcode). In this case, use the initial page floorplan.
  • Users need to work through a comparably small set of items, one by one. In this case, use the worklist floorplan.
  • Users have a trivial use case that does require the use of a chart, but that do not involve identifying a root cause, analyzing data, or drilldown. Instead, use a list report with a table/chart switch.

Structure

This section describes the basic layout of the analytical list page, as well as the different layout variants.

Basic Layout

The shell bar is above the analytical list page. The page itself uses the dynamic page layout and has two main areas:

  1. Analytical list page header:
    The page header is the filter area. Users can expand and collapse the header using the expand/collapse header icon.
  2. Analytical list page content area:
    The content area shows the content for the chosen filters.

All elements are described in more detail in the Components section below.

Analytical list page - Basic layout
Analytical list page - Basic layout

Layout Variants

The layout of the analytical list page is quite flexible. The display is determined by the header and content views chosen by the user.

The analytical list page always offers all of the above layout options. You cannot restrict the available views at app level. For example, you can’t offer only a visual filter (with no option to show the standard filter bar). Likewise, you can’t show only a table view (with no option to display the hybrid or chart views).

Responsiveness

The analytical list page is responsive, except for the global KPIs. Apps with one or more global KPIs are not supported on screen sizes smaller than size L (desktop).

Likewise, the analytical list page is only fully supported in the flexible column layout if no global KPIs are used. If you use the analytical list page with global KPIs within the flexible column layout, the column should have at least size M.

Size S

On size S, the analytical list page supports both the chart-only and table-only views. The table-only view supports only the responsive table. If no responsive table is available, the chart-only view is displayed without a view switch toggle.

Global KPIs are not supported on size S.

Size M

On size M, the analytical list page supports both the chart-only and table-only views. You can use a responsive table or analytical table in the table-only view.

Chart-only view - Size S
Chart-only view - Size S
Table-only view - Size S
Table-only view - Size S
Chart-only view - Size M
Chart-only view - Size M
Table-only view - Size M
Table-only view - Size M

Components

Analytical List Page Header

The page header can be expanded and collapsed on click. Different content is shown in the expanded and collapsed states. For more information about the basic behavior of the header, see Dynamic Page Header.

Collapsed Header

The collapsed page header contains the following elements:

Collapsed analytical list page header
Collapsed analytical list page header

Expanded Header

Initially when the app is launched the header is expanded by default. The expanded page header contains the following elements:

Expanded analytical list page header showing the visual filter bar
Expanded analytical list page header showing the visual filter bar
Expanded analytical page header showing compact filters in the filter bar
Expanded analytical page header showing compact filters in the filter bar

Analytical List Page Content Area

The analytical list page content area contains the following elements:

  • View switch (   |    |    )
  • Hybrid view: View with one chart, chart toolbar, one table, and a table toolbar
Hybrid view
Hybrid view
Chart-only view
Chart-only view
Table-only view
Table-only view

Analytical List Page Header

Variant Management

Variant management in the analytical list page allows users to save a page variant whenever there are changes in the underlying structures of the filter/content area. Variant management for the page is handled by the standard SAPUI5 page variant management.

Currently, the page variant captures the following states across the page:

  • Filter view switch state: Visual filter bar or filter bar
  • Filter set: The filters set in the visual filter bar and filter bar
  • Filter selections: Selected values in the visual filter bar and filter bar
  • Content view switch state: hybrid view  , chart-only view  , or table-only view  
  • Chart and table configurations, such as measures and dimensions used, sort order, or grouping
  • Chart drill-down state, based on the current selections (slice & dice)
  • Table entry switch state: Hide (  ) or Show  (  ) selected table records

Global KPI Tags and Cards

Use a global KPI tag (= global key performance indicator tag) if you would like to show a global KPI related to the task in hand. The global KPI value changes only if an action is executed on the transactional content. For example, the user needs to know the effect of releasing sales orders on a related global KPI, or the effect of posting an accounting document on certain financial global KPIs.

You can display a maximum of three global KPIs. Clicking a global KPI tag opens a global KPI card that displays more details on the KPI.

The global KPI tags and corresponding KPI cards are independent of the filter area. This means that global KPI tags do not react to filters set in the visual filter bar and filter bar.

A global KPI tag has four components:

  • Global KPI label
  • Global KPI value
  • Global KPI color and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator

Global KPI Label

The global KPI label is an abbreviation of the complete global KPI title. It is formed using the first three letters of the first three words of the global KPI title.
Examples: AMR for Actual Monthly Revenue, TAR for Total Advertising Revenue, or LPC for Landing Page Conversation Rates

If there is only one word in the global KPI title, the first three letters of the word are displayed. Example: CON for Contracts

If the global KPI title has only two words, only the first letters of these two words are displayed. Examples: AC for Actual Costs, SG for Sales Growth

KPI label abbreviation: AC
KPI label abbreviation: AC

Global KPI Value

The global KPI value is displayed using a semantic color and a scaling factor. Relative values are shown with a percentage sign and one decimal place.
Examples: 0.3%, 82.9%
Absolute values are shown without decimal places, a currency, or a unit of measure.
Examples: 2K, 75K, 30M, 14B

KPI values: 157.3M and 0.3%
KPI values: 157.3M and 0.3%

Global KPI Color and Criticality Indicator

The color of the global KPI value is based on the thresholds defined for the particular KPI in the annotation. The global KPI tag also uses a line to indicate the criticality. The color of the line is the same as that of the global KPI value.

KPI color and criticality indicator
KPI color and criticality indicator

Global KPI Card

Clicking the KPI tag opens the analytical card, which displays more information about the current value of the global KPI, the global KPI target, the deviation from the target, and how the global KPI has evolved over time.

Global KPI card
Global KPI card

Filter Area: Visual Filter Bar and Filter Bar

The filter area allows users to filter the result set, which feeds the main content area. The analytical list page comes with two filter types: compact filters in the filter bar, and the visual filter bar. Always design both visual filters and compact filters (filter bar) for your app. We recommend setting the visual filter bar as the default, but this is no longer mandatory. You can opt to use the (compact) filter bar as the default if your app has the required parameter values, if your main use case involves date ranges, or if your users often need to combine multiple filters in different ways.

Currently, any visual filter configured in the visual filter bar must always be displayed as a compact filter in the filter bar as well. By contrast, a filter configured as a compact filter in the filter bar may or may not be configured for display as a visual filter. This means that it’s possible to have a smaller set of visual filters and a larger set of compact filters.

Both filter types supports two different modes: live update and manual update. Use the live update mode for both filter types as the default whenever possible. Apply the same mode to both filter types: the visual filter bar and the filter bar. For example, if you use the live update mode in the visual filter bar, you should also use the live update mode for the filter bar.

Visual filter bar
Visual filter bar
Filter bar
Filter bar

Filter Type Switch

Users can toggle between the compact filters    (filter bar) and    (visual filter bar) in the upper-right area of the page header. The filter type switch is a core feature of the analytical list page and is mandatory. The switch is only displayed when the page header is expanded. Once the header collapses, it disappears.

Filter type switch
Filter type switch

Carrying Forward Filter Selections

Visual Filter to Compact Filter

Any values selected in the visual filters are always carried forward to the corresponding compact filters.

Compact Filter to Visual Filter

Filter dimensions that are part of a visual filter are synced to the visual filter. If the dimension value(s) chosen in the compact filter are part of a visual filter, they are shown as selected chart dimensions in the visual filter (single or multiple selections).

Filter dimensions that are not part of the visual filter, parameter values, and interval-based dimensions are applied to the filter query and the content is refreshed.

To show complex conditions, click the link for the number of selected items at the top of the visual filter.

Visual Filter Bar

The visual filter bar combines measures or item counts with filter values. The visual filter bar becomes more powerful if you match measures to the filter dimension instead of just item counts. Use the visual filter bar if you would like to give the user a condensed overview of the data in the dataset. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

Chart Types in the Visual Filter Bar

Currently, the visual filter bar supports three interactive chart types:

These interactive charts are also referred to as visual filters.

Interactive Donut Chart

The interactive donut chart in the visual filter bar is used for non-time-related data (for example, categories) and displays only the top or bottom two values. The rest are aggregated into the “Other” section.

Interactive donut chart
Interactive donut chart
Interactive donut chart with semantic colors
Interactive donut chart with semantic colors

Interactive Line Chart

The interactive line chart is used exclusively for displaying time series data, and can show a maximum of six data points. Always show the first or last six data points (for example, last six days, last six months, first six days, and so on).

Interactive line chart
Interactive line chart
Interactive line chart with semantic colors
Interactive line chart with semantic colors

Interactive Bar Chart

The interactive bar chart can be used for non-time-related data (for example, categories) and has a maximum of three filter values. These filter values show the top three or bottom three entries.

Interactive bar chart
Interactive bar chart
Interactive bar chart with semantic colors
Interactive bar chart with semantic colors

Using Interactive Charts

The interactive charts come with the following features and rules:

  • Minimum number of interactive charts: Show at least three visual filters and try to use different chart types.
  • Filter title:
    • Use the following naming convention for the filter title, using title case:
      [Measure Name] by [Dimension Name] | [Scale Factor] [Unit of Measure].
      Examples:
      Project Costs by Project | K EUR
      Sales Volume by Commodity | M PC
    • For an item count, use the following naming convention for the filter title, using title case:
      Number of [Dimension] | [Scale Factor] [Unit of Measure].
      Examples:
      Number of Products | PC
      Number of Contracts by Month
    • Note that for some use cases, it might be appropriate to replace “Number” with a different expression. Bear in mind that the space for displaying the filter title is limited. If the measure and/or dimension names are longer than the predefined space, the text will be truncated.
Filter title with truncation
Filter title with truncation
Filter title without truncation
Filter title without truncation
  • Filter-to-filter dependencies: Ideally, the filters depend on each other. By selecting one or several chart data points, users can perform a quick analysis of the dataset.
    Examples: Supplier with the lowest supplier performance this year, product with the highest sales volume in March in the EMEA region
  • Adding additional filter values: All charts have a maximum number of filter values that can be displayed within the chart itself. More filter values can be selected using the value help or the select popover.
  • Selected values: Any data point or segment that is selected in the visual filter’s interactive charts will remain selected even when the user changes the measure, chart type, or sort order in any of the charts. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.
  • Semantic colouring: All interactive charts support semantic colors to indicate the criticality of filter values.
  • How to design a visual filter: To design a visual filter, choose a meaningful measure out of the dataset and match it to a filter dimension. If no measures or no meaningful measures are available, use an item count instead. Have a look at the visual filter bar article for more information.

Filter Dialog

In the filter dialog, the user can switch between the visual filter bar and the compact filters using a toggle button, and also manage the filters. For more about the standard filter dialog, see Filter Bar. Visual filters are explained in more detail below.

Filter Dialog for Visual Filters

The filter dialog is launched by clicking the Adapt Filters ([number of applied filters]) link in the page header area. In the filter dialog for visual filters, the user can choose which filter fields are shown in the visual filter bar, and make the following changes:

  • Add visual filters
  • Delete visual filters
  • Hide visual filters in the visual filter bar
  • Search for visual filters
  • Change the sort order  of each visual filter
  • Change the chart type   of each visual filter
  • Switch to other measures  in the visual filter display

Analytical List Page Content Area

The content area shows different visualizations of the selected data. In the hybrid view, users can interact with both the chart and table visualizations at the same time. In addition, the analytical list page supports a chart-only view and a table-only view. The analytical list page always comes with all three views. Offering additional views or even tabs would add too much complexity, and is neither supported nor recommended.

Check out the following sections for more details on the hybrid view, chart-only view, and table-only view.

Hybrid View

The hybrid view uses both chart and table visualizations at the same time. It enables users to analyze data step by step from different perspectives. Users can interact with both the chart and the table, and drill down through either the smart chart or table entries to investigate a root cause. They can also act directly on transactional content. In the initial view of the chart, visualize the most important aspects of the whole dataset in the chart.

Example: The view shows all the suppliers the user is responsible for, organized by value. By drilling down the material to the plant with the highest/lowest volume, the user can see if materials need to be shifted from one plant to another. The corresponding transactional data is shown in an analytical table below the chart, which might also offer an action for shifting the material.

Analytical list page - Hybrid view
Analytical list page - Hybrid view

Chart-Only View

The chart-only view enables users to analyze data step by step from different perspectives, and to investigate a root cause through drilldown, without direct access to transactional content. The smart chart control provides the chart visualization in the chart-only and hybrid views: it is used to display the dataset as a chart. The smart chart drilldown functionality provides a convenient way to analyze the dataset. In addition, the smart chart offers detailed information on the chart data and a breadcrumb that shows the drilldown path. Ensure that you show the most important aspects of the dataset in the chart.

This mode is perfect for applications with analytical data that can easily be represented visually using charts, but doesn’t need to be linked to the transactional dataset.

Analytical list page - Chart-only view
Analytical list page - Chart-only view

Table-Only View

The table view provides access to transactional content. The user can act on single or multiple objects, and navigate to the object details or to other applications.

Depending on the use case, you can opt to use either the analytical table or the responsive table.

Snapping or scrolling is not available for desktop-focused tables, such as the analytical table. Scrolling is only available when the responsive table is used. The pin is enabled by default. The table entries are loaded using lazy loading.

Users can apply filters at table level using the Settings button ( ). For analytical tables, filtering is also available at column level. For more information, see Analytical Table (ALV) – Filter.

Analytical list page - Table-only view
Analytical list page - Table-only view

Behavior and Interaction

The expand/collapse header and pin/unpin header features work as in the dynamic page.

Open and View the Global KPI Card via the Global KPI Tag

Clicking a KPI tag opens the KPI card, which shows the details for the particular KPI.

Select Filters in the Visual Filter

Unlike micro charts, the visual filter charts are interactive. In live search mode, selecting a filter value triggers data filtering in the content area. Both single and multiple selection are supported.

To select a filter value, the user clicks on a value in the chart. The filter can be removed by either clicking on the value help link, or by clicking on the same value in the chart again. The user can select more filter values using the value help or select popover.

Any data point that is selected in a chart still remains selected when the user selects a data point in another chart. Filter values react on each other. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.

Switch Views: Hybrid, Chart-Only, and Table-Only

Users can switch between the hybrid view, chart-only view, and table-only view.

If the user selects values and then switches the view, the selection remains intact. See the table below for more details.

Switch Description
Hybrid view to table view Table selection remains intact
Hybrid view to chart view Chart selection remains intact
Chart view to hybrid view Chart selection remains intact; corresponding table selections are displayed
Table view to hybrid view Table selection remains intact

Show/Hide Table Entries in Hybrid View and Table View

The table toolbar for the analytical list page offers a Show   and Hide    table entries feature as a toggle switch in the hybrid and table views:

  • If the Show icon is active, the table shows all items. These include highlighted entries (where values are selected in the chart) and non-highlighted entries.
  • If the Hide icon is active, the table shows only items that are selected in the chart.

For example, if the user selects SAP’s Sales Revenue for 2012 as Customer in the chart, all records relating to SAP’s Sales Revenue for 2012 are highlighted (but not selected) in the table. Note that the record is still highlighted even if Customer not displayed as a column in the table. If the table rows are grouped, the entire grouping is highlighted, even if only one record within the grouped set is affected by the chart selection. All values that are not selected in the chart are “hidden” and are not shown in this table mode.

Guidelines

Show the filter dimension with one measure in the visual filter, not multiple measures

Filter dimensions in the compact filters (filter bar) have exactly one representation in the visual filter bar.
Do not show the same filter dimension with two or more different measures at the same time in the visual filter bar. The example shows the filter Dimension Year with two different measures Revenue and Quantity. Showing the filter dimensionYear twice is not in sync with the compact filter, where it is shown only once. Furthermore, matching between the two filter types will not work.

If the use case requires you to show a dimension with different measures, consider using an overview page instead.

Do
For each dimension display exactly one representation in the visual filter bar.
For each dimension display exactly one representation in the visual filter bar.
Don't
Do not use the same filter dimension with different measures
Do not use the same filter dimension with different measures

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

List Report Floorplan

Information
This article contains general guidelines for the list report floorplan. Note that some features may not be available if you are using the SAP Fiori elements implementation.

For the latest information on SAP Fiori elements, see the documentation and SAP Community wiki. You can also refer to the SAP Fiori elements feature map to see which controls and capabilities are supported for list reports.

Intro

With a list report, users can view and work with a large set of items. This floorplan offers powerful features for finding and acting on relevant items. It is often used as an entry point for navigating to the item details, which are usually shown on an object page.

List report
List report

When to Use

Use the list report floorplan if:

  • Users need to find and act on relevant items within a large set of items by searching, filtering, sorting, and grouping.
  • You want to let users display the whole dataset using different visualizations (for example, as a table or as a chart), but no interactions are required between these visualizations. An example use case might be reporting.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. You want to let users switch views using tabs, segmented buttons, or a select control.
  • Drilldown is rarely or never used, or is only available via navigation to another page, and not as free or flexible drilldown within the page itself.
  • Users work on different kinds of items.

Do not use the list report floorplan if:

  • Users need to see or edit one item with all its details. Use the object page floorplan instead.
  • Users need to find one specific item, and the item or an identifying data point is known to the user (such as a barcode). Use the initial page floorplan instead.
  • Users need to work through a comparably small set of items, one by one. Use the worklist floorplan instead.
  • Users need to extract knowledge or insights from data, either to better understand the current situation, or to identify the root cause for a certain value.  Use the analytical list page instead.
  • Charts are not only used for visualization. Users need to switch between integrated chart and table views (hybrid view). Use the analytical list page instead.
  • Users need to see the impact of their action on a KPI. Use the analytical list page instead.
  • Users need to see not only the result, but also the impact of their filter settings directly in a chart representation. Use the analytical list page instead.

Components

The list report is a full screen floorplan. It can also be used in flexible column layout, where it is usually displayed in the first column.

The list report page is based on the dynamic page, and is divided into a header area and a content area, as defined by the dynamic page layout.

Schematic visualization of a list report
Schematic visualization of a list report
  • The dynamic page header (1) contains the header title (2) and the expandable/collapsible header content (5).
    • The header title (2) is part of the header area and should display a title or variant (3) for the whole page (mandatory), filter information (if the header is collapsed), and a header toolbar (4) with global actions, such as Share (optional).
    • The header content (5) is used to display the filter bar or the smart filter bar (mandatory).
    • The header features (6) allow users to expand/collapse the header (6a) (mandatory) and pin/unpin the header area (6b).
  • The content area (7) is used to display:
    • A table/chart title, textual icon tab bar, or select (8) (optional)
    • One table/chart toolbar (9) per tab
    • One or multiple tables and/or charts (10). You can use any kind of table. If you use a chart, you can display the chart on its own (without a table) or as an additional view for an existing table (switchable).
  • The footer toolbar (11): If needed, use a footer toolbar to display the messaging button and finalizing actions.

Behavior and Interaction

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see Manage Objects – Naming Guidelines and Launchpad Shell Bar – Page Title and Navigation Menu.

Header Title

Variant Management

Variant management is optional. If you use variants, we recommend using one variant management control for the whole page. Use the variants to save and restore all settings for filters, selected tabs, all tables, and all charts.

In some specific cases, you might need to add a second variant at control level. This can be the case when the user needs to change the view settings of a list independently of the page filters. However, the default is to use a single variant management control for the entire page.

Users can choose a default variant, which is selected every time the app is started.

Allow users to choose whether a variant should be executed automatically as soon as it has been selected. Not executing a variant automatically allows the user to add or remove filters before the dataset is updated. Provide this option only if the filter bar is in manual update mode. For live updates, this option is not required.

If variant management is not needed, show a title that describes the current view instead.

Variant management
Variant management

Filter Information

Display the filter information only if the header content is collapsed. Use the format Filtered By (x): followed by a comma-separated list of the filters currently applied. “x” stands for the number of applied filters.

Show up to 5 filters. If more filters have been applied, show an ellipsis (“…”) at the end of the string.

If no filters have been applied, show Not filtered.

Filter information
Filter information

Header Toolbar

Use the header toolbar for non-finalizing global actions, such as Share. Share opens an action sheet, which features Save as Tile (if the SAP Fiori launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

If the content area contains a grid table, an analytical table, a tree table, or any other content with its own scrollbar, display a Show Filters / Hide Filters button for expanding and collapsing the header content.

In addition, offer any other global, non-finalizing actions needed. Hide actions that cannot be used at all (for example, because of access rights). To save space on the header toolbar, group similar actions using a menu button.
For more information on global actions, see the guidelines for the header toolbar.

Header toolbar
Header toolbar

Header Content

Search

The filter bar can contain a search field (optional). If you use the search field, the content shows only items that match both the search terms and the filter criteria.

The search generally searches across all available columns of the table, regardless of whether or not they are visible. In rare cases, some columns might not be included due to technical constraints. If the search does not apply to multiple columns, do not offer the search field.

Filters

Filters are applied to all content, including all tables and charts. To improve performance, consider providing mandatory filter fields and/or default settings for filters.

If the list report loads automatically when the page loads, ensure that mandatory filter fields always have default values to avoid error messages.

The filter bar offers two different update modes:

  • The live update mode (recommended) triggers filtering immediately whenever a filter setting is changed. If the search field is used, the search is triggered together with all filter settings with every letter typed.
  • The manual update mode displays a Go button, which triggers the filtering. If the search field is used, the search is executed together with all filters as soon as the Go button is pressed.
    Make sure that all tables and charts in the content area are in a busy state until the new data is available. Also ensure that the content is grayed out as soon as the filter settings do not correspond to the content shown (any table, property: showOverlay). This is usually the case if the content is not yet updated and the Go button needs to be triggered.

Use the manual update mode only if you run into performance problems while loading the table data.

Regardless of the update mode, make sure that the filter bar and the visible content match: The filter bar must always describe the items that are shown in the content area.

Filter bar
Filter bar

The header content collapses when the user scrolls down the page (except for desktop-centric tables), and expands again when the user scrolls back up (“snap on scroll”). Users can pin the header content to keep it visible. For more information, see Dynamic Page – Expand/Collapse Header.

Exception: The “Snap on scroll” and “pin header” features are not provided if the main content area contains desktop-centric tables (grid tablesanalytical tables, tree tables) or any other content with its own scrollbar. In these cases, users need to expand and collapse the header content manually using the Show Filters / Hide Filters button.

When starting the application, expand the header content if no query was fired (and the table is therefore empty). Otherwise, collapse the header content.

Content Area

General Layout

There are three basic list report layouts: simple content, multiple views, and multiple content. These are described in more detail below.

Simple Content

In most cases, the content consists of just a table toolbar and a table. If needed, provide an option to switch between the table and a corresponding chart view.

Multiple Views

For more complex scenarios, provide multiple views of the same content. Multiple views involve one or more of the following:

  • Showing the same table, but with different columns.
  • Showing the same table in different pre-filtered states. These states are usually based on a status column, for example, items that are Open, In Process, or Closed. Make sure that the corresponding filter is not offered on the filter bar.
  • Differentiating between the items displayed in the content in some other fundamental way.

There are two options for switching between different views:

The first option is to replace the table title with a content switch. Use this approach if all views share the same sort and group states, as well as the same actions.

The content switch can be:

If you have both a table title and a content switch, display the table title first, then the content switch. Place both on the left side of the table toolbar. Since the content switch is placed on the table toolbar, the same actions are shown for all views.

If you are using the content switch together with charts, ensure that the chart also reacts to the content switch. This can be done by:

  • Filtering the data that influences the display of the chart
  • Changing the measures and/or dimensions (for example, View by Country/RegionView by Customer, …)

The second option for switching views is to show each view in a tab container of the icon tab bar. Use this approach if all views show different states of the same data (sort states, group states, as well as item selection). Using tabs also allows you to offer different actions on the table toolbar for each view.

Table toolbar with a segmented button for up to three different views
Table toolbar with a segmented button for up to three different views
Table toolbar with a select control for more than three views
Table toolbar with a select control for more than three views

Multiple Content

To support even more complex use cases, a list report floorplan can also contain multiple tables that display different kinds of objects. The filter bar settings are applied to all of these tables in parallel. For example, a customer overview list report might display different tables for invoices, deliveries, and overdue payments. All of these tables can be filtered for a specific customer and a specific date.

Display each table inside a tab container of an icon tab bar. This also allows you to offer different actions on the table toolbar for each table.

List report floorplan with multiple tables placed in multiple tabs
List report floorplan with multiple tables placed in multiple tabs

Icon Tab Bar

Use the text-only version of the icon tab bar. Display the number of items shown in the respective table on each tab (sap.m.IconTabFilter, property: count).

Icon tab bar
Icon tab bar

Table Toolbar

Display at least a table title (ideally with an item count) and icon-only buttons for sorting, grouping, and column settings. Do not offer additional filter settings on the table toolbar. For sort and group, show a view settings dialog with just the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

If alternative visualizations are provided (such as charts), offer an additional view switch on the table toolbar. Triggering the switch replaces the current visualization with another one. If a table and chart need to be shown in parallel, offer a switch for the combined view.

In rare cases, you can offer an additional layout variant on the table toolbar. The layout variant stores view settings like the column order and the sort and group settings. If you use a layout variant, do not store the table settings in the filter variant. Offer this additional layout variant only if there is a strong use case for switching filter and layout variants independently. If there is no strong use case, or you are unsure, do not use a layout variant at all.

Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Toolbar with a switch between table and chart visualizations
Toolbar with a switch between table and chart visualizations
Toolbar with a table title and layout variant
Toolbar with a table title and layout variant
Toolbar with additional actions
Toolbar with additional actions

In addition, offer any other actions needed. Disable selection-dependent actions (such as Delete) if no items are selected, or if the action cannot be applied to the selected items. Always enable selection-independent actions (such as Add). To save space on the table toolbar, group similar actions using a menu button. For example:

  • Release and Release with Conditions
  • Add Contact and Replace Contact
  • Edit Account and Edit Title

For more information on table/chart actions, see the guidelines for the table toolbar, the chart toolbar, and for managing objects.

Do
Table without the filter icon
Table without the filter icon
Don't
Table with a filter option
Table with a filter option

Table

If there are no items to display, use the “no data” text of the corresponding table. Explain why the table is empty, and what the user needs to do to display items.

Examples:

  • After starting the app, no filters are applied:
    To start, set the relevant filters.
  • The filter was executed, but no items were found. This can also happen if the list report was opened by a related app, and the filter criteria were transferred automatically:
    No data found. Try adjusting the filter settings.

If you are using a responsive table, always enable “scroll to load” behavior.

Sticky Behavior

The icon tab bar, table/chart toolbar, and column headers of all table types must be “sticky”. This means that they stay fixed on top when the user scrolls down the page.

Navigation

There are three types of navigation at item level in the list report floorplan:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a list, tree, or responsive table, clicking the line item triggers the navigation.
    In a grid table, analytical table, or tree table, clicking the navigation indicator triggers the navigation.
    Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use this only if the navigation indicator is being used for a different target.
    Only show navigation indicators for target pages the user is authorized to access.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually another list report. In this case, use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting.
    In charts, offer the drilldown navigation link in the popover for the chart element. In this case, also navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains cross-references to other entities, such as people or business objects, use a link to display the corresponding data point in the table. Triggering the link opens a quick view. Typically, the quick view displays basic details of the referenced object and a navigation link to another page (usually an object page) or another app that shows the object details.

Working Modes

When the user edits a list item in a filtered list, the changed item might no longer match the filter criteria. For this use case, there are two alternative working modes:

  • Worklist mode

    Users want to see a direct system reaction to their changes. Items that don’t match the current filters
    vanish immediately. This mode applies to about 80% of all use cases.
  • Continuous working mode

    The user still needs the edited item, even though it no longer matches the filter criteria. The item stays in the list until the next filtering process is triggered. The item is marked, and a system message informs the user about the filter mismatch. This mode applies to about 20% of all use cases.

The app developer can choose the appropriate working mode for the app use case.

Footer Toolbar

Use the footer toolbar to display the messaging button and finalizing actions. Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Always show the footer toolbar in edit mode.

Hide actions that cannot be used at all (for example, if the user doesn’t have authorization). To save space on the footer toolbar, group similar actions using a menu button.

For more information on finalizing actions, see the guidelines for the footer toolbar.

Footer toolbar
Footer toolbar

Actions

Places for actions in the list report
Places for actions in the list report

(1) Global actions in the header toolbar
(2) Table actions in the table toolbar
(3) Line item actions
(4) Finalizing actions in the footer toolbar

1. Global Actions

Place actions that affect the entire page in the header toolbar in the header title (1). These include the following standard actions:

Hide actions that cannot be used at all (for example, because the user has no authorization). To save space on the header toolbar, group similar actions using a menu button.

Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information on global actions, see the guidelines for the header toolbar.

2. Table/Chart Actions

Place actions that affect the content of a table or chart in the table toolbar (2).

Information
When you use the list, tree, or responsive table, actions on the table toolbar move up out of the visible screen area when the user scrolls down, and are not accessible.

If you are using an icon tab bar, be aware that each tab contains its own table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available (such as Create for new objects). Other actions are only relevant if items have been selected (for example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item).

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions when no items have been selected.
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information, also see UI Element States – Control States.

Partial Processing

Enable the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide a sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

Add/Create Items Using a Dialog

You can let users add or create new items at list report level using a dialog. This approach is recommended for cases where there are fewer than 8 required fields. Display the action in the table toolbar.

You can use this option for both draft and non-draft scenarios.

More Information

For more information on table and chart actions, see the guidelines for the table toolbar, chart toolbar, and for managing objects.

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this only for specific, frequently used tasks (3). If the same action can also be applied to several items at once, feel free to also place it on the table toolbar. Nevertheless, if you do so, reconsider whether you really need to offer the action at line item level. Examples of line item actions include:

  • Start/Stop (a batch job)
  • Approve (an item)
  • Assign (an item)

Do not disable line item actions. If an action cannot be used, hide it. This can be the case if the user has no authorization or the line item is in the wrong state.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar (4).

Examples:

  • Save
  • Cancel
  • Submit

Please be aware: Even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information on finalizing actions, see the guidelines for the footer toolbar.

Responsiveness

In general, the list report floorplan is responsive. However, there are exceptions if the following controls are used:

  • Grid table, analytical table: Supported on desktop and tablet devices only. On smartphones, replace these tables with something else, such as a responsive table or a list. In rare cases, displaying only a chart on smartphones might also suffice.
  • Tree table: Supported on desktop and tablet devices only. For smartphones, there is no equivalent alternative. In some cases, a tree, the category navigation pattern, or a chart might work.
  • Smart table: The smart table is a wrapper around the different existing table controls. If a grid table, analytical table, or tree table is used inside the smart table, you will run into the issues mentioned above. On a smartphone, you can use a responsive table inside the smart table. For the tree table, you need to replace the smart table as described above.

For more details, see the respective guideline articles.

List report - Size L
List report - Size L
List report - Size M
List report - Size M
List report - Size S
List report - Size S

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Overview Page – Table Card

Table cards are a type of object group card, and display a set of items in a table format. Table cards use the responsive SAPUI5 control sap.m.Table. For general information on cards, see Cards.

Navigation

Clicking the header area of a table card opens the parent application, which uses the same filter as the annotated card, and shows a list of all the objects returned for the result set. The counter indicates how many items are showing on the card in relation to the total number of relevant items: [Items on Card] of [Total Items], as in 3 of 10.

Clicking a list item (row) on the card opens the detail view for that specific object in the same parent application. You can also use the smart link control in table cards. However, only use smart links if they add genuine value in your use case. Otherwise, you risk confusing users by offering too many navigation targets.

All three columns can show either a data field or a data point. Data points can use semantic colors.

Because the header area and line items are based on the same result set, they must always link to the same target application. You can also integrate a view switch inside the content area of a card.

Size of a Table Card

The fixed card layout defines a specific size. The height can vary depending on the number of table cells. Tables are limited to a maximum of 3 columns and 3 rows, with a maximum of 3 lines of text per row. To see the full result set, the user needs to navigate to the parent app.

In the resizable card layout, users can see more content/insights by resizing the cards.

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

Overview Page – Stack Card | Quick View Card

Take Action on the Overview Page 

As well as giving users access to content from multiple applications using different visualizations, the overview page can also let users take immediate action. This is supported by a special interaction pattern with a set of closely-integrated card types: the stack card, object stream, and quick view card. These three card types are only ever used together, and navigation between them has been optimized to best support user needs.

A stack card is a collection of quick view cards, which provide a footer area with actions. These quick view cards are displayed in the object stream (overlay). The advantage of using stack cards is that users don’t have to leave the overview page, and therefore don’t lost their focus.

Overview page – Navigation overview of stack card, object stream, and quick view card
Overview page – Navigation overview of stack card, object stream, and quick view card

Explanation:

  1. Stack card (left side): Opens the parent application (such as a list report with all approvals).
  2. Stack card (right side): Opens the object stream.
  3. Heading of the object stream: A link that navigates to the parent application (such as a list report with all approvals).
  4. Single quick view cards within the object stream: Offer navigation to the object details (such as an object page with the selected approval), as well as actions.
  5. Placeholder card: The last card a one-click area and navigates directly to the parent application (such as a list report with all approvals).

Stack Card

A stack card is a special collection of single-object quick view cards, based on a topic or action. Unlike the other card types, the top-level stack cards don’t show any application content. Instead, they act as an entry point to an object stream containing multiple cards.

Stack cards have the following components:

  • The title is the top element and is always required. It is used as the heading for the detail view, and comprises 1-2 lines of text.
  • The subtitle is optional. You can use it to qualify the title, offer an explanation, or show a status. The purpose of the subtitle is explain the content of the stack in one line, so its usage depends on the context.
  • The stack content count indicates the number of cards in the stack (object stream). The object stream can contain up to 20 cards. Below the number of cards in the stack, you see the total number of items returned for the annotated view (for example, “20 of 42”).

The top-level stack card contains two clickable navigation areas:

  • The left area and View All link navigate to the parent application, where the user can see all the objects returned for the annotated view (42 in the example above). The placeholder card and heading inside the object stream have the same navigation target.
  • The right area opens the object stream, which contains a scrollable collection of cards presented in an overlay format. The user can browse individual cards, with the option to view, inspect, or take action.

Object Stream

Overview page – Object stream
Overview page – Object stream

Clicking the right-hand area of the stack card opens the object stream. The object stream appears on top of the overview page as a modeless overlay, and serves as a layer for showing quick view cards with actions. The overlay has heading on the top left, and a Close button on the right. The heading is the same as the stack card title, and links to the full result set in the parent application (same target as the left-side navigation on the stack card and the navigation from the placeholder card). Clicking outside the overlay area also closes the object stream.

The object stream can have up to 20 cards (maximum), which all get their content from the same parent application. By default, the cards are ordered chronologically, with the most recent items first. However, app developers can define the best object stream sorting option for their own needs and content. If the number of cards exceeds the available space in the overlay window, an arrow icon appears on the right for scrolling. Mobile device users can swipe to see more cards. If the object stream is empty, the stack link is not active and the overlay cannot be opened. The stack count number displays 0. If only one item is returned, the object stream contains just a single card.

The header area of the quick view cards in the object stream navigates to the detail view for that specific object in the parent application. The footer area of the quick view cards can also offer actions.

Object Stream – Scroll Arrows

Scroll arrows only appear on desktop devices. If all the cards in the object stream fit on the screen, the arrows are not visible. If the number of cards exceeds the available space, an arrow icon appears on the right when the user mouses over the object stream overlay. Mousing over the arrow button area scrolls the cards across the screen from right to left. As soon as the first card on the left moves out of the visible overlay area, a second arrow appears on the left for moving in the other direction. Once the last card is in full view, the arrow on the right disappears.

Placeholder Card

If the number of items returned for the annotated view exceeds the maximum 20 cards allowed in the object stream, a placeholder card is added automatically at the end of the stream (as card 21). The entire placeholder card is navigable, and takes the user to the full result set in the parent application.

The text on the placeholder card is composed as follows:

See all [total] [items] in the“[app name]” app.

Where:

  • The values for [total] and [app name] are supplied by the system.
  • The term for [items] must be rephrased by the app team to reflect the type of item or business object. For more information, see Mandatory Adjustments.

Examples:

  • See all 42 items awaiting approval in the “Approve Leave Requests” app.
  • See all 42 purchase orders awaiting approval in the “Approve Purchase Orders” app.
Overview page – Placeholder card
Overview page – Placeholder card

Object Stream – Tablet Version

On tablet devices, the modeless overlay expands horizontally. It also expands vertically to accommodate the card height and allow space for the title and Close button. The user can swipe through cards and perform micro actions. Swiping a card into view moves the entire object stream. Tapping the Close button closes the stack card and returns the user to the main overview page. There are no scroll arrows on touch devices.

Tablet in horizontal orientation
Tablet in horizontal orientation
Tablet in portrait orientation
Tablet in portrait orientation

Object Stream – Phone Version

On smartphones, the overview page layout collapses to a single column in both portrait and landscape modes. Tapping the right-hand navigation area of a stack card opens the object stream on top of the overview page in a new full screen window.

The object stream expands horizontally and vertically to accommodate the card height, and to allow space for the title and Close button. The user can swipe through the cards and perform micro actions. Swiping a card moves the entire object stream. Since the cards are too large to fit on the screen in landscape mode, users can also scroll vertically to see the full card content. Tapping the Close button closes the stack card and returns the user to the main overview page. There are no scroll arrows on touch devices.

Phone in horizontal orientation
Phone in horizontal orientation
Phone in portrait orientation
Phone in portrait orientation

Quick View Card

Quick view cards are single-object cards. They display the basic details for one object, such as the name, address, and phone numbers for a contact. This card type is only available within the object stream; you can’t place quick view cards on the overview page itself. The quick view card inherits the SAPUI5 element sap.m.QuickView.

The header area contains a static text, such as Purchase Order, and an optional dynamic text, such as 1005-3345. In this way, each card header can show different content. Clicking on the header area of the card opens the detailed view of the object in the corresponding parent app. If the content area of a card cannot display all the information, a scrollbar appears on the right. Only the footer area of the quick view card can provide actions. The footer bar is a specific feature of the card anatomy for quick view cards.

Card anatomy of the quick view card
Card anatomy of the quick view card
Quick view card for a contact
Quick view card for a contact
Quick view card for a product
Quick view card for a product
Quick view card for a purchase order
Quick view card for a purchase order

Actions on Cards

Only quick view cards within an object stream can have actions in the footer area. The overflow toolbar manages how the actions are displayed. All actions are right-aligned. Any actions that don’t fit into the available space move into the overflow action sheet, represented by the ellipsis ( ). A maximum of six actions are allowed in the footer area. Only offer actions the user really needs in the specific context.

Footer area with additional actions in the overflow
Footer area with additional actions in the overflow

There are two possible types of action: navigation and function import. Any combination of navigation and function import actions is allowed. Error or confirmation messages are displayed directly on the overview page. Always overwrite the predefined default text for errors in a message box: Formulate your message in plain language (without code), describe the issue precisely, and suggest a constructive solution.

Type: Navigation

Navigation is “intent-based” and takes the user to a different SAP Fiori app that specializes in executing an action. Navigation actions are always multi-click (meaning they can be repeated over and over). The destination screen opens in the same browser window, and any error or task confirmation messages are handled by the supporting application, not the overview page.

Type: Function Import

Function imports are custom OData service operations for actions. These actions are handled by the overview page, rather than by another SAP Fiori app. The interaction depends on whether or not the action requires user input:

  • If the action requires additional user input, the input parameters are handled directly on the overview screen without further navigation. A dialog appears on top of the card, allowing the user to enter data or make a selection. An example of additional input might be the rejection reason for a “Reject” action.
  • If the action has no input parameters, the action request is sent immediately. Once the action has been completed, the card disappears from the object stream.

Action on Phone

If an action on a card requires an input dialog box, use a full screen dialog on smartphones.

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

Overview Page – List Card

Lists with Different Flavors

List cards display a set of items or links in a list format. The overview page supports three types of list card: list card, bar chart list card, and link list card. You can also show icons and images. For general information on cards, see Cards.

List Card

List cards are a type of object group card, and display a set of items in a vertical list. List cards use the sap.m.List container in the content area.

Navigation

Clicking the header area of a list card opens the parent application, which uses the same filter as the annotated card, and shows a list of all the objects returned for the result set. The counter indicates how many items are showing on the card in relation to the total number of relevant items: [Items on Card] of [Total Items], as in 5 of 40.

Clicking a list item (row) on the card opens the detail view for that specific item in the same parent application. Only aggregate list items in exceptional cases.

Because the header area and line items are based on the same result set, they must always link to the same target application. You can also integrate a view switch inside the content area of a card.

List Item Types

Two different list item types are available:

  • The standard list item always shows 3 pieces of information and inherits the properties of the SAPUI5 control sap.m.StandardListItem.
    You can also show an (optional) icon or image on the left.
  • The extended list item can show up to 6 pieces of information and inherits the properties of the SAPUI5 control sap.m.ObjectListItem.

In addition, you can display the data on the right-hand side in semantic colors.

You can only use one type of list item on any given card.

Standard list item
Standard list item
Extended list item
Extended list item

Size of a List Card

The fixed card layout defines a specific size. The height of list cards can vary, depending on the number of text fields. Show no more than five standard list items and no more than three extended list items on one card. To see the full result set, the user needs to navigate to the parent app.

In the resizable card layout, users can see more content/insights by resizing the cards.

Bar Chart List Card

Bar chart list cards are a type of object group card, and display a set of items in a vertical list. Unlike list cards, bar chart list cards are embedded in another component: the comparison micro chart. This allows you to display negative values and use semantic colors.

Navigation

Clicking the header area of a list card opens the parent application, which uses the same filter as the annotated card, and shows a list of all the objects returned for the result set. The counter indicates how many items are showing on the card in relation to the total number of relevant items: [Items on Card] of [Total Items], as in 5 of 35.

Clicking a list item (row) on the card opens the detail view for that specific item in the same parent application. Only aggregate list items in exceptional cases.

Because the header area and line items are based on the same result set, they must always link to the same target application. You can also integrate a view switch inside the content area of a card.

Bar Chart List Item Types

Three different list item types are available:

  • The standard list item always shows 3 pieces of information.
  • The condensed list item can show up to 4 pieces of information.
  • The extended list item can show up to 6 pieces of information.

You can only use one type of list item on any given card.

Standard list item
Standard list item
Condensed list item
Condensed list item
Extended list item
Extended list item

Size of a Bar Chart List Card

The fixed card layout defines a specific size. The height can vary, depending on the number of text fields. Show no more than five standard/condensed list items and no more than three extended list items on one card. To see the full result set, the user needs to navigate to the parent app.

In the resizable card layout, users can see more content/insights by resizing the cards.

Link List Card

Link list cards allow you to display a collection of links or images that can reference both internal and external targets. Links and images are handled as two separate variants: list and image.

Variant Type: List

The list variant shows a collection of links that can navigate to a target or open a popover with additional information. You can also show an optional subtitle below the link with a description or additional information. The link text and subtitle are each limited to one line.

You can display an icon or image before each link. For example, you might want to include app icons for set of links to recently-used apps, or images for a list of recent contacts. Use icons and images consistently:

  • If you opt to use icons, show an icon before every link.
  • If you include images, use a placeholder for images that are not available.

Variant Type: Image

Overview page - Link list card (image variant)
Overview page - Link list card (image variant)

The image variant uses the sap.m.Carousel control to display one or more images. If the carousel contains only one image, the Previous and Next icons and the paging indicator are not visible. The link and an optional subtitle are displayed above the carousel. The link text and subtitle are each limited to one line.

Size of a Link List Card

In the fixed card layout, link list cards with the variant type “list” can have a maximum of 6 links. There is no maximum limit for cards with the variant type “image”.

In the resizable card layout, there is no maximum limit. Users can see more links by resizing the cards.

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

Overview Page – Cards

Cards – Harmonized and Powerful Information

Each task or topic on an overview page is represented by a card. The overview page acts as a UI framework for organizing multiple cards for one role on a single page .

Cards are containers for app content, and represent an entry-level view of the most pertinent app data for a given topic or issue. Technically, a card is a smart component that uses UI annotations to render its content. Cards allow you to show application content from different sources side by side – without requiring the user to switch screens. Cards differ in the content they display: They can show a chart, a list, a table, informative text, or a combination of two elements. However, cards never have editable fields.

Cards can focus on a single object or topic, or on a group of objects. Cards can also vary in size, depending on the selected layout.

The overview page can contain several cards that reference the same (parent) application. However, each card must bring added value to the user, and not just repeat information already offered on another card.

Before you start designing cards for an overview page, see the best practices.

At a Glance

  • Cards are small previews of application content.
  • Each card represents a specific topic, task, or perspective.
  • Cards help users to focus by applying progressive disclosure principles.
  • Cards are powerful and beautiful.
  • Cards offer a variety of visualizations.
Overview page with different card types (extract)
Overview page with different card types (extract)

Card Anatomy

Each card comprises two components: a header area and a content area. The header and content areas are mandatory. A footer area is only used for actions in the quick view card.

The interactive navigation in the header and content areas is represented by a hover effect.

When designing cards, make sure that you define and format the texts on all the cards consistently. For details , check out the UI text guidelines for the overview page.

Card anatomy
Card anatomy

Card Header

The card header area is mandatory, and serves three purposes:

  • It indicates what the card is about.
  • It functions as a navigation area for opening the parent app, whereby the whole header area is clickable. We highly recommend offering this navigation to enable users to move seamlessly to the app details without losing focus on the task in hand  (exception: link list card). 
  • A counter shows how many items are on the card in relation to the total number of relevant items.

The height of the header area is variable; it expands vertically to accommodate the text. The header area can contain two text fields: a mandatory title, and an optional subtitle. The primary purpose of the header area is to identify the content source, summarize the focus of the card (title), show any relevant parameters (subtitle), and offer navigation to the content source (parent app).

Title

The title is mandatory and represents the card’s “point of view”. In one or two words, it explains why this card exists and why a user might want to use it. It is a natural language reflection of the annotated view. Titles that exceed three lines are truncated with the ellipsis ().

Subtitle

The subtitle is optional. You can use it to qualify the title, offer an explanation, or show a status. The use of the subtitle can differ, depending on the card type. Subtitles that exceed one line are truncated with the ellipsis (…).

Card header with counter
Card header with counter

Counter

The counter in the header area indicates how many items are showing on the card in relation to the total number of relevant items:

Format: [Items on Card] of [Total Items]
Example: 5 of 40 

The counter is right-aligned and is never truncated (the title wraps instead). The width of the counter is flexible, depending on the amount of data. [Items on Card] can show a maximum three digits, and [Total Items] a maximum of four digits. For larger numbers, a scaling factor is shown. If all the relevant items are visible on the card, no counter is shown. There is also no counter if there is an issue loading a card, or no items are found for the filter criteria.

In the resizable card layout, the card counter adapts to the card size. If the user increases the size of a card with a scaled counter, the counter shows the exact number of items (without the scaling factor). The scaling factor appears when values exceed 1000.

Card Content

The content area is mandatory and is reserved for application content. Content is currently displayed on cards by embedding SAPUI5 controls that specify the properties and data format. For example, an embedded standard list control provides formatting, such as row height, font sizes, and the number of text blocks.

The resizable card layout also has a special kind of the content area, called mini content. It describes the minimum height for the card content.

Card Types

The overview page supports the following standard card types:

 

You also have the option of creating custom cards. Custom cards allow you to define the appearance and the type of content within the content area of a card.

Important: Only use custom cards if the features required for your use case are not offered in any way by the standard cards for the overview page. If your basic requirements can be reasonably covered by one of the standard cards, always use the standard card, even if there are technical or visual limitations.

Appearance

Texts in Cards

Make sure that you define and format the texts on all the cards consistently. Check the UI text guidelines for the overview page for details.

Formatting Dates, Times, Amounts, and Currencies

Apply the following formats:

  • Dates: The default is the relative date format (for example, Today). However, you can also use the medium date format (such as Aug 7, 2015).
  • Times: Times are not visible by default, but if you need to show a time, use the short format (for example, 11:28 AM).
  • Integers/Float/Currencies: Use the short format (for example, 1K for 1000).

Refresh Behavior

You can set a specific refresh interval for the card content. All cards are refreshed at once.

Keep the user in mind: the shorter the refresh interval, the more disruptive it is for users.

Navigation and Interaction

The navigation and interaction depends on the technical card type:

The view switch enables you to reduce the number of similar cards and avoid repeating information.

Single-Object Cards

Cards that feature content with a single focal point, detail, or entity are called single-object cards. An example is a quick view card with information about a particular product. Analytical cards are also single-object cards. The header area of this card type always navigates to this specific focal point, detail, or entity. The content area can also have interaction areas (for example, a section in a chart, or a telephone number for a contact). However, only quick view cards can have actions in the footer area.

Interaction for a single-object card
Interaction for a single-object card

Object Group Cards

Cards that feature a subset of items grouped by a common criterion are called object group cards. A typical example would be a list of purchase orders grouped by delivery date, amount, or supplier. The cards do not have actions, but each row or list item is selectable, thus providing direct navigation to the object details within the parent application. The header area of this card type always navigates to all items in the list or table. Object group cards include all types of list cards, bar chart list cards, and table cards.

Interaction for an object group card
Interaction for an object group card

Link List Cards

Link list cards allow you to display a collection of links or images that can reference both internal and external targets.

  • Links can navigate to a target or open a popover with additional information.
  • Clicking an image opens an image carousel.
Interaction for a link list card
Interaction for a link list card

Stack Cards

A stack card is a special card type for showing a collection of single-object cards. Stack cards have 3 components with different navigation areas:

  • The top-level stack card opens the collection and contains two clickable areas: the left area navigates to the parent app (with the list of all items), and the right area opens the object stream.
  • The object stream shows individual cards that represent objects from the parent application. The object stream heading links to the parent application, while individual cards can contain links and actions relating to the respective object. A Close button returns the user to the stack card.
  • The last card in the object stream is the placeholder card. The entire card is navigable and leads the user directly to the parent application.
Interaction for a stack card
Interaction for a stack card
Interaction for a placeholder card
Interaction for a placeholder card

View Switch

You can use a view switch to offer several different content areas on one card, which can help to reduce the number of cards on the overview page. The user chooses the view using a select control. You can only combine views that have a common denominator. The options offered by the select control merely offer different perspectives. For example, a card “Purchasing Spend” (title in the header area) could offer two views “By Material Group” and “By Supplier” (options in the select control). The view switch is located in the upper part of the content area.

You can use the view switch for the following cards:

View switch
View switch

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori Overview Page.

Elements and Controls

Implementation

Overview Page – Custom Card

Adaption of standard cards

Custom cards allow you to define the appearance of a card on an overview page, and the type of content that appears in the card content area. They offer additional flexibility when you require features that are not offered by the standard cards for overview pages.

Information
Keep in mind:

  • A card is not a substitute for an application.
  • A card focuses on the most important task-related data. It lets the user view, filter, and react to information quickly.
  • The content must be defined for a specific context. Do not display irrelevant or unclear content.

Usage

Use a custom card if:

  • Your use case cannot be satisfied in any way by the standard cards provided for the overview page. Always consider the requirements below before using a custom card.

Do not use the custom card if:

  • You can satisfy your use case to a certain extent with the existing standard cards. Even if there are technical or visual limitations, stick with the standard cards if they are still workable for your scenario.
  • You are not using the overview page floorplan.

Standard Requirements

Custom cards must meet the standard SAP Fiori requirements, especially:

  • Responsiveness: Ensure that the cards can run on different devices (touch, mouse and keyboard), using breakpoints supported by SAPUI5.
  • Cozy/compact: Provide different control dimensions as described by the visual design. If your existing design already covers both use cases (mouse and touch input), you do not have to provide two different designs. For more information on cozy and compact form factors, see content density.
  • Theming: Custom designs must allow theming and use the LESS parameters provided by the official Belize theme. Implementation of the customized design must be tested in all themes (high-contrast white, high-contrast black, and Belize Deep).
  • Accessibility: Support keyboard navigation and screen readers (as stipulated by accessibility requirements).
  • Browsers: Support all types of browser.
  • Performance: Ensure the performance of the implementation is satisfactory.
Information
Be aware that implementing a custom card costs time and effort for development.

Components

Custom cards have two components:

  • A mandatory header area
  • A mandatory content area
Custom card – card components
Custom card – card components

Header Area

The title and subtitle of custom cards follow the guidelines for standard titles and subtitles.

From the header area, users can navigate to the parent app. Since the entire header area is clickable, only one navigation target is allowed. We highly recommend offering this navigation option to give users access to the full-blown app with the complete set of results and actions. If a card displays a subset of grouped items, use a text label to show how many of the relevant items are showing on the card. Also refer to the guidelines for the overview page card header.

If a card features content with a single focal point (detail/entity), the header area navigation must always lead to this specific focal point. If a card features a subset of items grouped by a common criterion, the header area navigation must always lead to all items.

Custom card – header area
Custom card – header area

Content Area

The content area is reserved for application content and shows an entry-level view of the content. The use case determines what should be shown in the content area of a custom card. The content must adhere to the standard content guidelines.

Make sure that the content is responsive.

Provide a stable context for the content area and sustain it when the user navigates away from the overview page into another app. Transfer any sort or filter criteria to the application. In other words, show the same context, but with additional information.

Custom card – content area
Custom card – content area

Card Size

Follow the guidelines for the fixed card layout or the resizable card layout. Make sure that the card is responsive whichever layout you use.

Guidelines

Custom cards inherit the drag and drop behavior from the standard cards. Only place custom cards on the overview page itself (not in the object stream).

Custom cards must:

  • Provide information that is relevant for the user’s specific domain or role
  • Offer an entry-level view of application content
  • Represent a single topic, task, or context
  • Provide a stable context and sustain it after navigating from the overview page to another application
  • Be integrated in the Manage Cards dialog (show/hide cards)
  • React on filtering (when a smart filter bar is used)
  • Follow the guidelines for formatting dates, times, amounts, currencies, as well as for truncation (ellipsis). These guidelines are the same as for standard cards.
  • Contain consistent texts and formatting, aligned with the other cards on the overview page. Check the UI text guidelines for the overview page for details.

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

  • No links

Overview Page – Resizable Card Layout

Unlimited Possibilities for Designing Cards 

The resizable card layout is a layout for the overview page. It enables users to define a personalized card layout by changing not only the position of a card, but also its size, and thus how the card content is presented.

This layout gives users much greater flexibility in tailoring the overview page to their specific business needs. And it allows app teams to offer varying levels of detail for any given card. Whenever the size of a card changes, the content adapts automatically to show the most relevant information in the available space.

At a Glance

  • Flexible card dimensions (grid-based)
  • More flexibility to define individual card layouts
  • Responsive and adaptive card content
  • Applying progressive disclosure principles
Overview page – Resizable card layout
Overview page – Resizable card layout

Unlike the fixed card layout, cards in the resizable card layout do not have fixed dimensions. In addition, the number of columns in the resizable layout is no longer limited (also see letterboxing).

The cards are positioned on an underlying grid, making it possible to arrange and resize cards in a flexible, yet guided manner. You can offer different views of the card content for different dimensions of the various card types. For example, you can show more items, zoom in or out, or change the granularity of a dataset.

The resizable card layout does not replace the fixed card layout.

Usage

Use the resizable card layout if:

  • You want to give users the flexibility to rearrange and adapt their overview page as they need.
  • You want to help users focus by applying progressive disclosure principles.
  • You want to make use of different card sizes.
  • You want to show more content (for example, more items or an additional level of detail)

Do not use the resizable card layout if:

  • Your card content doesn’t react properly to a change in size. Use the fixed card layout instead.
  • You are not able to invest UX and development resources for creating and prioritizing additional content. Use the fixed card layout instead.
  • You want to use the resizing functionality on mobile devices. Resizing and rearranging cards is currently not possible on mobile devices.

Flexible Card Sizes

Grid

Cards can be increased and decreased vertically in rows of 1 rem and horizontally in steps of 20 rem (minimum width). These dimensions facilitate both a high degree of flexibility and measured guidance. The card content responds immediately to a change in size.

The grid provides a guided resizing and repositioning experience. This ensures that the cards are always correctly aligned on the overview page as the user moves or resizes them.

Resizable card layout – Grid
Resizable card layout – Grid

Card Anatomy

card is made up of a mandatory header and a content area.

Mini Header

The smallest representation of the card is the header. The card can be collapsed to only its header height. We call this the “mini header” card height.

Mini Content

The “mini content” height of a card is defined by the next suitable size for a card when it is resized. The minimum height for the card content depends on the card type, and must be as high as the smallest representation of the content. In a list card, for example, first list item needs to fit in.

To avoid states with cut or unsubstantial content, there are no resizing steps between mini header and mini content.

Card anatomy
Card anatomy
Minimum heights for a card in the resizable card layout
Minimum heights for a card in the resizable card layout
Example of Card Sizes
Example of Card Sizes

Dealing with White Space

If no additional content is available, the user still can make the card bigger, resulting in white space.

Resizing Parameters

The card content depends on the available space, which in turn determines how many items are shown, how each item is displayed, and the level of detail (granularity). How the content is resized depends on the type of card. For example, table cards can have fewer columns when the size of the card is decreased. By contrast, the content shown for each item on list cards remains the same.

Space

When a card is resized, the content adapts responsively. 

Example: List card
When the size of a card is reduced, texts might be truncated or wrapped. When the card size is increased again, the text is shown in full and previously wrapped text moves back onto one line. The line item content itself is unchanged.

Resizing for a list card
Resizing for a list card

Items

When you increase the size of a list or table card, more line items are shown.

Resizing for a table card
Resizing for a table card

Granularity

If you increase the size of an analytical card, more data points are revealed. In this example, the donut chart on the larger card shows more individual product categories.

Resizing for an analytical card (donut chart)
Resizing for an analytical card (donut chart)

Rearranging Cards – Behavior

When a user long presses on a card instead of just clicking, the mouse cursor changes to indicate that the card can be dragged. Cards can be dragged from both the header and content areas. 

Cards always strive towards the top of the page (uplift mode). When you move or stretch cards horizontally, the existing cards you displace are pushed downwards.

Resizing cards / rearranging cards using drag and drop
Resizing cards / rearranging cards using drag and drop

Getting Started

UX and DEV Investment Required

To enable users to benefit fully from the resizable card functionality, you need to define additional content that is revealed progressively as the card size grows. You will need to develop a content strategy to prioritize the chunks of information for each card type, and hence the order in which these additional chunks of information appear. For instance, the content strategy for a table card should answer the following questions:

  • What should be the initial size of the card in the layout?
  • Which table columns do you want to show in the card with the minimum width?
  • Which table columns do you want to add when the card width is increased by one, two, three, … horizontal steps?

Keep in mind that the overview page is an SAP Fiori element.

Developer Hint
If you want to enable the resizable card layout for an existing overview page with the fixed card layout, consider the investment you’ll need to make in additional and meaningful content.

Set Initial Card Sizes

Set an initial order and initial dimensions for each card as a default. Do this for the mini header, the mini content, and for bigger card sizes. In cards with content, define the exact number of items included in the content area.

Consider the best practices for designing an overview page and the principles for resizing the cards. It’s important to provide a meaningful starting point for users. If users change the card size or order, the initial app default can always be restored using the Manage Cards setting in the user actions menu.

Important: Do not provide only mini headers in the initial layout for your overview page.

Block Card Resizing

App teams can block the resize feature for each card individually. In this case, the cards can’t be resized by users and the resize icon is not shown on the card. Use this feature judiciously and only if you really have to. The majority of cards should be resizable. Otherwise, users are likely to be confused, and might feel driven to check the resizing behavior for each card.

Alternative approach

If you want to make use of the different card sizes, but don’t want to allow resizing for users at all, you can block the resizing function for all cards (independently of the initial card size). This allows you to use different card sizes and the same (limited) personalization features as in the fixed card layout. Because none of the cards are resizable, users won’t be confused.

Letterboxing

The resizable card layout uses different letterboxing behavior than the fixed card layout: to handle different card sizes more flexibly, the resizable card layout does not have a fixed number of columns. Cards take up the the available screen real estate and adapt accordingly (also see responsiveness). As a result, larger screens can be almost completely filled.

Responsiveness

Information
Resizing is not supported on mobile devices. However, users can resize cards freely in smaller windows on a desktop device.

UI controls inside the cards react responsively when cards are resized. On mouse-release, additional content might be loaded, or content might be removed to reflect the new dimensions.

The number of grid columns in the layout is dependent on the width of the browser window. The breakpoints are defined as follows:

Width of Browser Window Number of Card Columns Displayed
Less than 656 px 1 column
656 – 975 px 2 columns
976 – 1359 px 3 columns
1360 – 1679 px 4 columns
1680 – 1999 px 5 columns
More than 2000 px 6 columns or more

There is no limitation to the number of columns. You can also design for bigger screens.

Resizable card layout – Size L
Resizable card layout – Size L
Resizable card layout – Size M
Resizable card layout – Size M
Resizable card layout – Size S
Resizable card layout – Size S

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

Overview Page – Fixed Card Layout

Self-Contained Cards

The fixed card layout is a layout for the overview page. It comes with predefined card characteristics that support automatic, easy and fast card design. The cards have a fixed width, and the height is determined by the card type and the embedded control.

The cards are ordered in responsive and collapsible columns. The number of columns is also fixed to keep the focus on the middle of the screen and show the set of cards in a compact display (a kind of letterboxing). For more information, see Responsiveness.

The fixed card layout is one of two layout options for the overview page. The other is the resizable card layout.

Before you start designing cards for an overview page, see the best practices.

At a Glance

  • Easy and fast card design using predefined card framework

  • Fixed card width and predefined height

  • Arbitrary card order

Overview page – Fixed card layout
Overview page – Fixed card layout

Fixed Card Sizes

Grid

The grid is based on rows and columns. The spacing of 1 rem between the cards is always stable. Furthermore, there is a minimum width of 20 rem per card (corresponding to the column width). The columns with the cards adapt to the available screen real estate (also see Responsiveness).

Based on the underlying grid, users can rearrange the cards (see Rearranging Cards – Behavior).

Fixed card layout – Grid
Fixed card layout – Grid

The cards are arranged as a “Z” flow: cards are ordered from left to right, starting with the first card on the top left of the page. For example, if a 5-column layout is reduced to 4-column layout, the fifth card drops to the next row, assuming the leftmost position underneath the first card.

There is no limit on the number of cards included. However, be careful not to overwhelm your users.

For general information on cards, see Cards.

Fixed card layout – Z flow
Fixed card layout – Z flow

Card Sizes per Type

The card size is determined by the predefined card characteristics and maximum content for a given card type. As a result, the card types differ in height. The stack card and corresponding quick view card are handled independently.

List Card

The height of list cards can vary, depending on the number of text fields. Show no more than five standard list items and no more than three extended list items on one card. To see the full result set, the user needs to navigate to the parent app.

Standard list item
Standard list item
Extended list item
Extended list item

Bar Chart List Card

The height of  bar chart list cards can vary, depending on the number of text fields. Show no more than five standard/condensed list items and no more than three extended list items on one card. To see the full result set, the user needs to navigate to the parent app.

Standard list item
Standard list item
Condensed list item
Condensed list item
Extended list item
Extended list item

Link List Card (Variant Type “List”)

The link list card with the variant type “list”  is limited to a maximum of six links. There is no limit to the number of links for the variant type “image”.

Table Card

The height of table cards can vary, depending on the number of table cells. Tables are limited to a maximum of 3 columns and 3 rows, with a maximum of 3 lines of text per row. To see the full result set, the user needs to navigate to the parent app.

Rearranging Cards – Behavior

Drag and Drop

Users can reposition cards on the overview page by dragging them to a different location. As the user drags a card, it swaps places with any cards in its path. As soon as a neighbouring card is touched, the position of that card becomes the new target location for the card being dragged. A dashed line offers a preview of the new position.

To drag a card, the user has to long press on a card instead of just clicking. It doesn’t matter where the cursor is positioned – cards can be dragged from both the header and content areas. The mouse cursor also changes to indicate that the card can be dragged. Releasing the mouse or lifting the finger from the touch surface completes the move. To avoid gaps, cards always snap to the next free space in the row, or to the start of the next row.

In addition, users can personalize their own overview page by hiding cards.

Fixed card layout – Drag and drop
Fixed card layout – Drag and drop

Getting Started

In the fixed card layout, you can’t influence the amount of information on each card. However, you can define the card order. Before you design your overview page, take a look at the best practices, which outline how to best use cards for an optimal user experience.

Responsiveness

The fixed card layout uses padding on both sides. The cards are displayed inside collapsible columns, making the page fully responsive. When the user resizes the browser or uses a smaller screen, the columns containing the cards collapse. To view all the cards, the user just scrolls down. In this way, the layout can accommodate typical laptop screens, larger desktop monitors, and mobile devices.

The width of the cards is tied to the column width. Breakpoints for the different screen resolutions determine whether the column width is 20 or 25 rem. The cards inside the columns adapt their width and content automatically. By contrast, the height of the cards is flexible, and depends on the content and type of card (see Card Sizes per Type).

  • Phone: 1 column
  • Tablet (portrait): 2 columns
  • Laptop / tablet (landscape): 3 columns
  • Large desktop: 4 columns
  • Extended monitor: 5 columns (maximum)
Fixed card layout – Size S
Fixed card layout – Size S
Fixed card layout – Size M
Fixed card layout – Size M
Fixed card layout – Size L
Fixed card layout – Size L

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

Initial Page Floorplan

The initial page floorplan allows the user to navigate to a single object to view or edit it. The interaction point on the screen is a single input field that relies on assisted input to direct the user to the object in as few steps as possible (using features such as value help and live search). If you need to display more than one object, use the list report floorplan instead.

When to Use

Use the initial page floorplan if:

  • The user only needs to work on one object at a time. In this case, the list report floorplan would include a redundant step for viewing a list of items found by the search.

A typical use case for the initial page floorplan is a barcode scanning app, where each new scan leads to an object with input fields. Once the user has submitted the entries, the screen is shown in read-only mode. The cursor returns to the input field, ready for the user to scan the next object.

Do not use the initial page floorplan if:

  • The search is supposed to return a list of objects. This is the scenario for the list report floorplan.

It is also advisable to use only one input field for finding the object. If you need to include detail views, or allow the user to switch between views, offer these features when displaying the object itself.

Components

The initial page is a floorplan based on the object page, with a dynamic page header and a content area.

Structure of the initial screen
Structure of the initial screen
  1. Shell bar (mandatory)
  2. Dynamic page header (mandatory)
  3. Input field (mandatory)
  4. Header features (optional)
  5. Content Area (mandatory)
  6. Footer toolbar (optional)

Dynamic page header

The header area can contain the same content as in the object page, except for the title, which is replaced by an input field. The header initially displays in collapsed mode but expands when the user performs a search or finds an object using the input field. Choose the selection control best suited to your use case.

Content area

The content area is used to display the object. It can contain a navigation bar, sections, subsections, forms, and tables.

Behavior and Interaction

Live Search

The input field serves as the single starting point for finding the object. The assisted input uses the live search feature (search-as-you-type) to speed up the search. The live search feature can show anything from one attribute to an entire table of values. To guide the user, you can use the message page to display a hint, such as Enter ID manually or Scan barcode.

Live Search
Live Search

Initial Screen with dialog

If multiple hits are possible for the same search terms, you may need to implement a select dialog, table select dialog, or value help dialog. These dialogs let the user narrow down the list of items based on more specific criteria. When the user selects an object from the list, the dialog closes and the object is displayed in the content area.

Behavior of the Search Field

The content of the dynamic page header is initially collapsed and cannot be expanded. The input field is located in the header title area of the object page. If no other additional actions are provided, set the focus to the input field . This allows the user to enter the search term directly without clicking into the field. However, only consider doing this if there are no other elements that could be blocked by it, such as the on-screen keyboard on touch devices.

Once the user finds an object, the dynamic page header expands and displays the relevant information for the object.

The dynamic page header collapses on scrolling or by user interaction, but the input field for performing a different search is always visible.

If the user enters new search terms in the input field, the focus moves away from the field and the app triggers a new search. If no results are found, the initial view of the page is shown – with a collapsed header and a corresponding message in the content area.

If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.

Responsiveness

The initial page features a single interaction point for the user: the input field near the top of the screen. Place the input field inside header title bar (sap.f.DynamicPageTitle). Configure the width to fit the width of the longest text (allowing some additional space for other languages), but do not make it significantly wider. When you set the maximum width of the input field, also consider the width available on mobile devices.

The field should never be as wide as the screen (except on smartphones).

Initial page floorplan - Size S
Initial page floorplan - Size S
Initial page floorplan - Size M
Initial page floorplan - Size M
Initial page floorplan - Size L
Initial page floorplan - Size L

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Wizard Floorplan

The wizard floorplan allows users to complete a long or unfamiliar task by dividing it into sections and guiding the user through it. The wizard consists of the walkthrough screen, where the form sections are revealed in sequence after each one is completed, and the summary page, where the form is displayed in read-only mode for assessment and final submission. You can use the wizard both in full-screen and flexible column layout.

Wizard - Steps
Wizard - Steps

Usage

When to Use the Wizard Floorplan

The wizard aims to help users by dividing large or complex tasks into segments. Use the wizard if the user has to accomplish a long task (such as filling out a long questionnaire) or a task that is unfamiliar to the user. The flow should consist of a minimum of 3 and a maximum of 8 steps.

The wizard can be used for both create and edit scenarios. If your application contains both, consider using the same means for both scenarios – either the wizard, or another create/edit screen (edit flow or object page).

When Not to Use the Wizard Floorplan

If you have a task with only 2 steps or a format that the user is familiar with (for example, it is part of their daily routine), do not use the wizard as it only adds unnecessary clicks to the process. If your process needs more than 8 steps, the wizard will not support those steps as the process is too long and can be confusing for the user. In this case, you should consider restructuring the task.

Consider if the classic edit screens (edit flow or object page) are more suitable for your use case.

Structure

The wizard has two main screens: the walkthrough screen, where users complete a segmented task, and the summary screen, where they can check the data they are about to submit. Wizard content is not restricted to forms; other content such as a value help dialog can also be used.

Walkthrough Screen

The walkthrough screen is the wizard’s main screen. After triggering the wizard, the user is taken to the walkthrough screen, which shows only the first section of the form. Once the user has filled out all the necessary fields, a Step XY button appears, which allows the user to move to the next step. When the user has completed the last section of the wizard, the button label changes to Review and the user is taken to the summary screen.

The wizard footer is used to display the Cancel button, which exits the wizard. If the user has modified any fields, a data loss message also prompts the user. You can also use a Save as Draft function in the footer if the form is long and the user may have to save it before finishing it.

Walkthrough screen in full screen layout
Walkthrough screen in full screen layout
  1. Header toolbar with title
  2. Progress bar
  3. Completed step
  4. Current step
  5. Upcoming step
  6. Step title (for example: 3. Payment)
  7. Action for the next step

The title in the header toolbar above the wizard remains unchanged during all the wizard steps. Align this title left, and make it clear to users where they are and what they are doing (for example, New Sales Order or Sales Order 4815162342). Especially in edit scenarios, it is vital to give users a unique identifier for the object they are changing.

The progress bar/anchor navigation below the header highlights the completed steps and the current step. It also allows the user to navigate between steps by clicking on any of the circles.

The progress bar exhibits a grouping behavior if there are multiple steps and the screen width is reduced. This behavior is the same on smartphone, tablet, and desktop screens.

Wizard tooltip – Grouped steps
Wizard tooltip – Grouped steps

In certain use cases, the steps in the wizard depend on the choices the user makes along the way. The user’s entries for one step determine the follow-on steps (“branching”). In these cases, a dotted line shows that more steps will follow.

Wizard branching
Wizard branching

Since the wizard is a lightweight way to create or edit objects, applications can use a quick confirmation popup instead of the heavier data loss message, when the user selects Cancel.

If the wizard is used to create an object, the text on the popup should read Discard this <object>?’ (see image below). If the wizard is used to edit an object, use the text Discard changes? In both cases, the action on the popup should be Discard.

Structure – Quick confirmation
Structure – Quick confirmation

Summary Screen

On the summary screen, users can check all their entries before the object is actually created or changed. The summary screen has no progress bar or anchor navigation, and shows the form sections for all the steps in read-only mode.

To allow the user to go back and edit entries, provide an Edit button either in the footer toolbar or in each form section:

  • If you place the Edit button is placed in the footer toolbar, the user is taken back to the first section of the wizard.
  • If you offer Edit buttons for each section of the form, the user jumps to that particular step.

Alternatively, users can click the Back button to go to the previous step. From there, they can scroll through the sections.

The main action on the summary page should be the final action after completing the wizard, such as Create or Save.

Wizard summary page example
Wizard summary page example

Layout

Thanks to the wizard’s responsive behavior, it can be used both in a full-screen layout as well as in the flexible column layout. Since there are no subsequent pages after the wizard, it will always occupy the rightmost column – there is no navigation from the wizard to a next page. After completion (or cancellation), the user will always come back to the page the wizard was triggered from.

Wizard in full screen layout
Wizard in full screen layout
Wizard in flexible column layout (2/3)
Wizard in flexible column layout (2/3)
Wizard in flexible column layout (1/3)
Wizard in flexible column layout (1/3)

Types

There are two types of wizard – “standard” and “branching” – which differ in terms of the functions they offer.

Use the standard type if:

  • The total number of steps is known in advance.
  • The number of steps does not change during usage.
  • There is linear progression from one step to the next.

Use the branching type if:

  • The total number of steps is not known.
  • The number of steps may change during usage.
  • There is non-linear progression. In other words, the user’s choice during one step determines which step comes next.

In both types of wizard you can let users skip steps. Label these steps as “Optional”.

Styles

In addition to the functional types, there are also different visual styles.

Numbers and Icons

By default, both versions use a number inside a circle to represent each step. You can also use icons instead of numbers to help users identify the steps. If you plan to use icons, be sure to assign icons to all the steps (not just to some). The icons you choose should be unique and not look too similar. This will ensure that users do not get individual steps confused with one another.

Steps represented by numbers
Steps represented by numbers
Steps represented by icons
Steps represented by icons

Labels

To help users identify the individual steps even more easily, app developers can assign labels. As with icons, labels must be applied to all or none of the steps.

If there is enough horizontal space, all labels are shown.

All labels are visible
All labels are visible

As the width is reduced, the steps outside the currently selected one do not show labels.

Labels - reduced width
Labels - reduced width

Finally, the unselected and outermost steps are stacked on top of each other to further accommodate the reduced space.

Stacked labels
Stacked labels

Users can still easily access steps inside a stack. A single click opens a list of steps inside this stack.

Labels - stacked popover
Labels - stacked popover

Optional Steps

For optional steps, add an (Optional) label. Place the (Optional) label below the content label for the step.

Do
Correct: '(Optional)' label below the content label for the step
Correct: '(Optional)' label below the content label for the step

Explanatory Texts

Ideally, the headlines and field labels for each step should provide enough information for users to complete their tasks. However, if additional explanations are needed, applications can put a simple text underneath a step’s headline – either via the sap.m.Text or the sap.m.FormattedText control.

Responsiveness

The wizard supports all common screen sizes and is available in cozy and compact modes, as well as high-contrast black (HCB).

Wizard – Size S
Wizard – Size S
Wizard – Size M
Wizard – Size M
Wizard – Size L
Wizard – Size L

Behavior and Interaction

Navigation, Error- and Draft Handling

Navigation

Users can trigger the wizard app from another application, from the launchpad, or from a notification. The wizard always starts at the initial walkthrough page and ends after the user has clicked the main action (such as Create or Submit) on the summary screen. The Step XY button is only used on the walkthrough page. This button loads the next section of the form. On the summary page, the user can use either the Edit button in the footer or the “back” arrow to return to the wizard and edit any of the fields.

Modifying dependent steps: If there are steps that depend on each other (for example, a selection in step 2 triggers an additional step) and the user modifies the parent step, the dependent step is changed or deleted. Beforehand, the user is warned that data will be lost.

Error Handling

Error handling is done via message popovers. When the user clicks the Step XY button, the form sections and fields should be validated. When the user clicks the Create button on the summary page, the entire form is validated. If there are any errors, the user stays on the walkthrough page, the message popover is displayed, and clicking any of the error items scrolls the page to the relevant field, which is also highlighted in red.

Section validation differs from validation of the entire form. In the first case, correct data entry in the form fields is validated. In the second case, the entire form is checked for backend system errors (such as duplicated data entry).

Draft Handling

If a draft already exists when a user enters the wizard, show a dialog to inform the user. For more information, please visit the draft handling article.

Dynamic Page

Header

Even though the wizard floorplan consumes the dynamic page, the wizard’s header does not allow snapping. Due to the nature of the wizard floorplan, the wizard brings its own step-based header that is already very space-saving.

Footer Toolbar

Contrary to the header, the footer toolbar of the wizard floorplan conforms to the standard layout and uses the sap.m.bar control.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Wizard (SAPUI5 API reference)
  • Wizard (SAPUI5 samples)
  • Form (SAPUI5 API reference)
  • Form (SAPUI5 samples)

List Report Floorplan

Information
This article contains general guidelines for the list report floorplan. Note that some features may not be available if you are using the SAP Fiori elements implementation.

For the latest information on SAP Fiori elements, see the documentation and SAP Community wiki. You can also refer to the SAP Fiori elements feature map to see which controls and capabilities are supported for list reports.

Intro

List report
List report

With a list report, users can view and work with a large set of items. This floorplan offers powerful features for finding and acting on relevant items. It is often used as an entry point for navigating to the item details, which are usually shown on an object page.

When to Use

Use the list report floorplan if:

  • Users need to find and act on relevant items within a large set of items by searching, filtering, sorting, and grouping.
  • Users need to display the whole dataset using different visualizations (for example, as a table or as a chart), without requiring interactions between these visualizations. An example use case might be reporting.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. Views can be switched using tabs, segmented buttons, or a select control.
  • Drilldown is rarely or never used, or is only available via navigation to another page, and not as free or flexible drilldown within the page itself.
  • Users work on different kinds of items.

Do not use the list report floorplan if:

  • Users need to see or edit one item with all its details. Use the object page floorplan instead.
  • Users need to find one specific item, and the item or an identifying data point is known to the user (such as a barcode). Use the initial page floorplan instead.
  • Users need to work through a comparably small set of items, one by one. Use the worklist floorplan instead.
  • Users need to extract knowledge or insights from data, either to better understand the current situation, or to identify the root cause for a certain value.  Use the analytical list page instead.
  • Charts are not only used for visualization. Users need to switch between integrated chart and table views (hybrid view). Use the analytical list page instead.
  • Users need to see the impact of their action on a KPI. Use the analytical list page instead.
  • Users need to see not only the result, but also the impact of their filter settings directly in a chart representation. Use the analytical list page instead.

Structure

The list report is a full screen floorplan based on the dynamic page. In addition to the SAP Fiori launchpad shell bar, the dynamic page contains the following areas:

  • The header title: Use this to display a title or the variant for the whole page, filter information (if the header is collapsed), and a header toolbar with global actions, such as Share.
  • The header content: Use this to display the filter bar or the smart filter bar.
  • The content area: Use this to display:
    • An icon tab bar (optional)
    • One table/chart toolbar (per tab)
    • One or multiple tables and/or charts. You can use any kind of table. If you use a chart, you can display the chart on its own (without a table), as an additional view for an existing table (switchable), or in addition to an existing table, where the chart and table are shown at the same time.
  • The footer toolbar: If needed, use a footer toolbar to display the messaging button and finalizing actions.
Schematic visualization of a list report
Schematic visualization of a list report

Responsiveness and Adaptiveness

In general, the list report floorplan is responsive. However, there are exceptions if the following controls are used:

For more details, see the respective guideline articles.

List report - Size L
List report - Size L
List report - Size M
List report - Size M
List report - Size S
List report - Size S

Guidelines

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see Manage Objects – Naming Guidelines and Launchpad Shell Bar – Page Title and Navigation Menu.

Header Title

Variant Management

Variant management is optional. If you use variants, we recommend using one variant management control for the whole page. Use the variants to save and restore all settings for filters, selected tabs, all tables, and all charts.

In some specific cases, you might need to add a second variant at control level. This can be the case when the user needs to change the view settings of a list independently of the page filters. However, the default is to use a single variant management control for the entire page.

Users can choose a default variant, which is selected every time the app is started.

Allow users to choose whether a variant should be executed automatically as soon as it has been selected. Not executing a variant automatically allows the user to add or remove filters before the dataset is updated. Provide this option only if the filter bar is in manual update mode. For live updates, this option is not required.

If variant management is not needed, show a title that describes the current view instead.

Variant management
Variant management

Filter Information

Display the filter information only if the header content is collapsed. Use the format Filtered By (x): followed by a comma-separated list of the filters currently applied. “x” stands for the number of applied filters.

Show up to 5 filters. If more filters have been applied, show an ellipsis (“…”) at the end of the string.

If no filters have been applied, show Filtered By: None.

Filter information
Filter information

Header Toolbar

Use the header toolbar for non-finalizing global actions, such as Share. Share opens an action sheet, which features Save as Tile (if the SAP Fiori launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

If the content area contains a grid table, an analytical table, a tree table, or any other content with its own scrollbar, display a Show Filters / Hide Filters button for expanding and collapsing the header content.

In addition, offer any other global, non-finalizing actions needed. Hide actions that cannot be used at all (for example, because of access rights). To save space on the header toolbar, group similar actions using a menu button.
For more information on global actions, see the guidelines for the header toolbar.

Header toolbar
Header toolbar

Header Content

Search

The filter bar can contain a search field (optional). If you use the search field, the content shows only items that match both the search terms and the filter criteria.

The search generally searches across all available columns of the table, regardless of whether or not they are visible. In rare cases, some columns might not be included due to technical constraints. If the search does not apply to multiple columns, do not offer the search field.

Filters

Filters are applied to all content, including all tables and all charts. To improve performance, consider providing mandatory filter fields and/or default settings for filters.

Since the list report loads automatically when the page loads, ensure that mandatory filter fields always have default values to avoid error messages.

The filter bar offers two different update modes:

  • The live update mode (recommended) triggers filtering immediately whenever a filter setting is changed. If the search field is used, the search is triggered together with all filter settings with every letter typed.
  • The manual update mode displays a Go button, which triggers the filtering. If the search field is used, the search is executed together with all filters as soon as the Go button is pressed.
    Make sure that all tables and charts in the content area are in a busy state until the new data is available. Also ensure that the content is grayed out as soon as the filter settings do not correspond to the content shown (any table, property: showOverlay). This is usually the case if the content is not yet updated and the Go button needs to be triggered.

Use the manual update mode only if you run into performance problems while loading the table data.

Regardless of the update mode, make sure that the filter bar and the visible content match: The filter bar must always describe the items that are shown in the content area.

Filter bar
Filter bar

The header content collapses when the user scrolls down the page (with a responsive table, list, or tree only), and expands again when the user scrolls back up. To avoid this automatic expand/collapse behavior, users can also pin the header content so that it always stays open. Persist the pin setting.

Users can expand and collapse the header content manually by clicking the background of the title bar. The dynamic page header can also be expanded/collapsed using the Collapse Header ( ) and Expand Header ( ) arrows at the bottom of the header area.

If you are using a grid table, analytical table, tree table, or any other content with its own scrollbar, allow users to explicitly collapse and expand the header content manually with a Show Filters Hide Filters button on the header title.

When starting the application, expand the header content if no query was fired (and the table is therefore empty). Otherwise, collapse the header content.

Content Area

General Layout

There are three basic list report layouts: simple content, multiple views, and multiple content. These are described in more detail below.

Simple Content

In most cases, the content consists of just a table toolbar and a table. If needed, provide an option to switch between the table and a corresponding chart view.

Multiple Views

For more complex scenarios, provide multiple views of the same content. Multiple views involve one or more of the following:

  • Showing the same table, but with different columns.
  • Showing the same table in different pre-filtered states. These states are usually based on a status column, for example, items that are Open, In Process, or Closed. Make sure that the corresponding filter is not offered on the filter bar.
  • Differentiating between the items displayed in the content in some other fundamental way.

There are two options for switching between different views:

The first option is to replace the table title with a content switch. Use this approach if all views share the same sort and group states, as well as the same actions.

The content switch can be:

If you have both a table title and a content switch, display the table title first, then the content switch. Place both on the left side of the table toolbar. Since the content switch is placed on the table toolbar, the same actions are shown for all views.

If you are using the content switch together with charts, ensure that the chart also reacts to the content switch. This can be done by:

  • Filtering the data that influences the display of the chart
  • Changing the measures and/or dimensions (for example, View by Country/RegionView by Customer, …)

The second option for switching views is to show each view in a tab container of the icon tab bar. Use this approach if all views show different states of the same data (sort states, group states, as well as item selection). Using tabs also allows you to offer different actions on the table toolbar for each view.

Table toolbar with a segmented button for up to three different views
Table toolbar with a segmented button for up to three different views
Table toolbar with a select control for more than three views
Table toolbar with a select control for more than three views

Multiple Content

To support even more complex use cases, a list report floorplan can also contain multiple tables that display different kinds of objects. The filter bar settings are applied to all of these tables in parallel. For example, a customer overview list report might display different tables for invoices, deliveries, and overdue payments. All of these tables can be filtered for a specific customer and a specific date.

Display each table inside a tab container of an icon tab bar. This also allows you to offer different actions on the table toolbar for each table.

List report floorplan with multiple tables placed in multiple tabs
List report floorplan with multiple tables placed in multiple tabs

Icon Tab Bar

Use the text-only version of the icon tab bar. Display the number of items shown in the respective table on each tab (sap.m.IconTabFilter, property: count).

Icon tab bar
Icon tab bar

Table Toolbar

Display at least a table title (ideally with an item count) and icon-only buttons for sorting, grouping, and column settings. Do not offer additional filter settings on the table toolbar. For sort and group, show a view settings dialog with just the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

If alternative visualizations are provided (such as charts), offer an additional view switch on the table toolbar. Triggering the switch replaces the current visualization with another one. If a table and chart need to be shown in parallel, offer a switch for the combined view.

In rare cases, you can offer an additional layout variant on the table toolbar. The layout variant stores view settings like the column order and the sort and group settings. If you use a layout variant, do not store the table settings in the filter variant. Offer this additional layout variant only if there is a strong use case for switching filter and layout variants independently. If there is no strong use case, or you are unsure, do not use a layout variant at all.

Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Toolbar with a switch between table and chart visualizations
Toolbar with a switch between table and chart visualizations
Toolbar with a table title and layout variant
Toolbar with a table title and layout variant
Toolbar with additional actions
Toolbar with additional actions

In addition, offer any other actions needed. Disable selection-dependent actions (such as Delete) if no items are selected, or if the action cannot be applied to the selected items. Always enable selection-independent actions (such as Add). To save space on the table toolbar, group similar actions using a menu button. For example:

  • Release and Release with Conditions
  • Add Contact and Replace Contact
  • Edit Account and Edit Title

For more information on table/chart actions, see the guidelines for the table toolbar, the chart toolbar, and for managing objects.

Do
Table without the filter icon
Table without the filter icon
Don't
Table with a filter option
Table with a filter option

Table

If there are no items to display, use the “no data” text of the corresponding table. Explain why the table is empty, and what the user needs to do to display items.

Examples:

  • After starting the app, no filters are applied:
    To start, set the relevant filters.
  • The filter was executed, but no items were found. This can also happen if the list report was opened by a related app, and the filter criteria were transferred automatically:
    No data found. Try adjusting the filter settings.

If you are using a responsive table, always enable “scroll to load” behavior.

Sticky Behavior

The icon tab bar, table/chart toolbar, and column headers of all table types must be “sticky”. This means that they stay fixed on top when the user scrolls down the page.

Navigation

There are three types of navigation at item level in the list report floorplan:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a list, tree, or responsive table, clicking the line item triggers the navigation.
    In a grid table, analytical table, or tree table, clicking the navigation indicator triggers the navigation.
    Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use this only if the navigation indicator is being used for a different target.
    Only show navigation indicators for target pages the user is authorized to access.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually another list report. In this case, use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting.
    In charts, offer the drilldown navigation link in the popover for the chart element. In this case, also navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains cross-references to other entities, such as people or business objects, use a link to display the corresponding data point in the table. Triggering the link opens a quick view. Typically, the quick view displays basic details of the referenced object and a navigation link to another page (usually an object page) or another app that shows the object details.

Working Modes

When the user edits a list item in a filtered list, the changed item might no longer match the filter criteria. For this use case, there are two alternative working modes:

  • Worklist mode

    Users want to see a direct system reaction to their changes. Items that don’t match the current filters
    vanish immediately. This mode applies to about 80% of all use cases.
  • Continuous working mode

    The user still needs the edited item, even though it no longer matches the filter criteria. The item stays in the list until the next filtering process is triggered. The item is marked, and a system message informs the user about the filter mismatch. This mode applies to about 20% of all use cases.

The app developer can choose the appropriate working mode for the app use case.

Footer Toolbar

Use the footer toolbar to display the messaging button and finalizing actions. Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Always show the footer toolbar in edit mode.

Hide actions that cannot be used at all (for example, if the user doesn’t have authorization). To save space on the footer toolbar, group similar actions using a menu button.

For more information on finalizing actions, see the guidelines for the footer toolbar.

Footer toolbar
Footer toolbar

Actions

Places for actions in the list report
Places for actions in the list report

(1) Global actions in the header toolbar
(2) Table actions in the table toolbar
(3) Line item actions
(4) Finalizing actions in the footer toolbar

1. Global Actions

Place actions that affect the entire page in the header toolbar in the header title (1). These include the following standard actions:

Hide actions that cannot be used at all (for example, because the user has no authorization). To save space on the header toolbar, group similar actions using a menu button.

Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information on global actions, see the guidelines for the header toolbar.

2. Table/Chart Actions

Place actions that affect the content of a table or chart in the table toolbar (2).

Information
When you use the list, tree, or responsive table, actions on the table toolbar move up out of the visible screen area when the user scrolls down, and are not accessible.

If you are using an icon tab bar, be aware that each tab contains its own table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available (such as Create for new objects). Other actions are only relevant if items have been selected (for example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item).

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions when no items have been selected.
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information, also see UI Element States – Control States.

Partial Processing

Enable the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide a sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

Add/Create Items Using a Dialog

You can let users add or create new items at list report level using a dialog. This approach is recommended for cases where there are fewer than 8 required fields. Display the action in the table toolbar.

You can use this option for both draft and non-draft scenarios.

More Information

For more information on table and chart actions, see the guidelines for the table toolbar, chart toolbar, and for managing objects.

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this only for specific, frequently used tasks (3). If the same action can also be applied to several items at once, feel free to also place it on the table toolbar. Nevertheless, if you do so, reconsider whether you really need to offer the action at line item level. Examples of line item actions include:

  • Start/Stop (a batch job)
  • Approve (an item)
  • Assign (an item)

Do not disable line item actions. If an action cannot be used, hide it. This can be the case if the user has no authorization or the line item is in the wrong state.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar (4).

Examples:

  • Save
  • Cancel
  • Submit

Please be aware: Even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information on finalizing actions, see the guidelines for the footer toolbar.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Initial Page Floorplan

The initial page floorplan allows the user to navigate to a single object to view or edit it. The interaction point on the screen is a single input field that relies on assisted input to direct the user to the object in as few steps as possible (using features such as value help and live search). If you need to display more than one object, use the list report floorplan instead.

When to Use

Use the initial page floorplan if:

  • The user only needs to work on one object at a time. In this case, the list report floorplan would include a redundant step for viewing a list of items found by the search.

A typical use case for the initial page floorplan is a barcode scanning app, where each new scan leads to an object with input fields. Once the user has submitted the entries, the screen is shown in read-only mode. The cursor returns to the input field, ready for the user to scan the next object.

Do not use the initial page floorplan if:

  • The search is supposed to return a list of objects. This is the scenario for the list report floorplan.

It is also advisable to use only one input field for finding the object. If you need to include detail views, or allow the user to switch between views, offer these features when displaying the object itself.

Components

The initial page is a full screen floorplan based on the object page, with a dynamic page header and a content area.

Structure of the initial screen
Structure of the initial screen

Header area

The header area can contain the same content as in the object page, except for the title, which is replaced by an input field. The header initially displays in collapsed mode but expands when the user performs a search or finds an object using the input field. Choose the selection control best suited to your use case.

Content area

The content area is used to display the object. It can contain sections, subsections, forms, and tables.

Behavior and Interaction

Live Search

The input field serves as the single starting point for finding the object. The assisted input uses the live search feature (search-as-you-type) to speed up the search. The live search feature can show anything from one attribute to an entire table of values. To guide the user, you can use the message page to display a hint, such as Enter ID manually or Scan barcode.

Live Search
Live Search

Initial Screen with dialog

If multiple hits are possible for the same search terms, you may need to implement a select dialog, table select dialog, or value help dialog. These dialogs let the user narrow down the list of items based on more specific criteria. When the user selects an object from the list, the dialog closes and the object is displayed in the content area.

Behavior of the Search Field

The content of the dynamic page header is initially collapsed and cannot be expanded. The input field is located in the header title area of the object page. If no other additional actions are provided, set the focus to the input field . This allows the user to enter the search term directly without clicking into the field. However, only consider doing this if there are no other elements that could be blocked by it, such as the on-screen keyboard on touch devices.

Once the user finds an object, the dynamic page header expands and displays the relevant information for the object.

The dynamic page header collapses on scrolling or by user interaction, but the input field for performing a different search is always visible.

If the user enters new search terms in the input field, the focus moves away from the field and the app triggers a new search. If no results are found, the initial view of the page is shown – with a collapsed header and a corresponding message in the content area.

If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.

Responsiveness

The initial page features a single interaction point for the user: the input field near the top of the screen. Place the input field inside header title bar (sap.f.DynamicPageTitle). Configure the width to fit the width of the longest text (allowing some additional space for other languages), but do not make it significantly wider. When you set the maximum width of the input field, also consider the width available on mobile devices.

The field should never be as wide as the screen (except on smartphones).

Initial page floorplan - Size S
Initial page floorplan - Size S
Initial page floorplan - Size M
Initial page floorplan - Size M
Initial page floorplan - Size L
Initial page floorplan - Size L

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Object Page Floorplan

Information
This article contains general guidelines for the object page floorplan. Note that some features may not be available if you are using the SAP Fiori elements implementation.

For the latest information on SAP Fiori elements, see the documentation and SAP Community wiki. You can also refer to the SAP Fiori elements feature map to see which controls and capabilities are supported for object pages.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan

Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.

List report floorplan
  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a barcode identified by a barcode scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Object marker (optional)
  5. Header toolbar with global actions (optional)
  6. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
  7. Header content (optional)
Object page with the dynamic header
Object page with the dynamic header

If the object page is used in the flexible column layout, it can also contain navigation actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (not more than 5)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 320 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title (mandatory)
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Progress indicator
  3. Subtitle (optional)
  4. Footer (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use this facet to display a rating indicator, which can be modified to fit your use case.

A rating indicator facet consists of:

  1. Title
  2. Rating indicator
  3. Supplementary texts (1-2)

We recommend the following property settings when using the rating indicator in header facets:

  • 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

The rating indicator facet can be used for two different use cases: aggregated rating and single-value rating.

Aggregated rating:

A typical example of an aggregated rating is the average of several user reviews for a product.

The aggregated rating facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.

Single value rating:

The single value rating facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary text
  3. Rating indicator
Header facet - Rating indicator facet with aggregated rating and single value rating
Header facet - Rating indicator facet with aggregated rating and single value rating

Navigation Bar (optional)

If your content is simple and you need only one section, use the dynamic page layout. In the dynamic page layout with one section, the header area can’t be edited when the page is in edit mode.

If your content is complex and you need several sections, use the object page layout. You can only have several sections in the object page layout. In the object page layout with several sections, it’s also possible to edit the header area when the page is in edit mode. However, try to avoid having an editable header and move the content from the header to the sections instead.

If you need only one section, but require an editable header, use the object page layout. An object page with only one section doesn’t have any anchor bars. However, a temporary anchor bar and section for editing the header content should be added when edit mode is triggered.

If the content is complex there are two ways to structure it:

  • Anchor bar navigation (default)
  • Tab bar navigation

Anchor Bar Navigation

The anchor bar consists of a series of links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link navigates to the respective section. The anchor bar remains visible when the user scrolls down the page.

Use anchor bar navigation when the content belongs together but users might want to jump to specific parts directly.

For more information, see Anchor Bar Navigation below.

Tab Bar Navigation

The tabs are a series of links to subpages, arranged horizontally at the top of the page. Clicking a link navigates to the respective subpage. The tabs remain visible when the user scrolls down the page.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

For more information, see Tab Bar Navigation below.

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking on these links directs the user to specific sections of the page. The anchor links remain visible when the user scrolls down the page.

Developer Hint
Make sure that the UpperCaseAchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.



Object page – Anchor bar
Object page – Anchor bar
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.



Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

If the subsection contains a table or a chart and the title is the same, you have the option to hide the subsection title.

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the toggle button Show More / Show Less at the bottom right of the subsection.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. Only use the form title if you are using several forms within the same subsection.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Blocks
Object page – Blocks

Tables

If a section or subsection contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section or subsection title acts as the table title.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 400 Tab navigation
More than 400 or tab approach is unsuitable Navigation to list report

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 5 to 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but less than 400, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to List Report

For tables with more than 400 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend only showing a preview of no more than 20 items. Ideally, you should have about 10 items. This can be achieved by prefiltering and/or sorting the table, and, if necessary, setting a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate list report containing the full table. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If the loading takes a long time, a busy indicator is shown on top of the section or item until the content it loaded and visible.

Busy indicators for sections still loading
Busy indicators for sections still loading

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used in edit and create mode for closing and finalizing actions, such as Save, Post, Accept, Reject, and Activate.

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Edit

In edit mode, the object page can contain a mixture of editable and read-only content.

If the user needs to edit elements in the header, a header section is added in the content area to enable editing.

Use the same content layout for both display and edit mode. Content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Manage Objects – Create, Edit, Delete.

Editing the Header

The object page header can be edited in two ways:

  • Global edit
  • Partial edit

Global Edit

The header can be edited when the entire object page is in edit mode.

Because the header snaps on scroll, there are no editable forms in the header itself. Instead, a temporary header section is added before the other sections of the page. The title bar information and all editable fields from the header container move from the header to the new editable header section. Any non-editable content displays as read-only in the new header section. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts).

If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears.

If your object page has no anchor bar in display mode, and the header section has only a few editable fields, do not add navigation in edit mode.

The header container in edit mode may contain independent facets that are not included in the header content in display mode. They provide information to assist editing.

If the entire object page is in edit mode, but there is no editable information in the header, no editable header section is added.

Any changes made to the header are not reflected until the user saves them.

Partial Edit

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks outside the popover.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, dispaly the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size M
Object page – Size M
Object page – Size L
Object page – Size L

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see Manage Objects – Naming Guidelines and Launchpad Shell Bar – Page Title and Navigation Menu.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Block Layout

Information

This layout has been designed specifically for the tool landscape for the SAP Cloud Platform. It is not intended for use in regular SAP Fiori applications. 

Intro

The block layout is used to display content in a section-based manner. It features horizontal and vertical subdivisions and full-width banners seen frequently in contemporary web design. Background colors are attached directly to these areas within the layout. Also, special full-width sections of the block layout enable horizontal scrolling through a set of areas.

General page structure of a tool using the block layout
General page structure of a tool using the block layout

Usage

Use the block layout if:

  • You want to display section-based content. Place elements next to each other to indicate a content relationship.

Do not use the block layout if:

  • You want to display properties or features of one content item. Use the object page floorplan instead.
  • You want to display KPIs in the dashboard-variant. Use the overview page or a layout using cards instead.

Block layout case examples include landing pages and catalog-like pages.

In landing pages, the block layout may serve as a banner-like presentation of illustrative icons with associated text. By placing pictorial and textual elements side by side in different areas, a content relationship is established. In catalog-like layouts, the block layout serves as a flexible container for diverging content, such as headings, explanatory texts, code snippets, remarks, and examples.

It is also possible to have clickable blocks with their own hover and pressed states.

Layout

The block layout is divided into horizontal sections, which take on the full width of the available screen real estate. Their screen height is determined by their inner content, which prevents vertical scrolling.

If needed, the width of sections can also be set to the following predefined ratios (for the sizes XL, L and M):

  • 1 block: 100%
  • 2 blocks:
    • 50% and 50% or
    • 75% and 25% or
    • 25% and 75%
  • 3 blocks:
    • 3 × 33% or
    • 2 × 25% and 50% or
    • 50% and 2 × 25% or
    • 25% and 50% and 25%
  • 4 blocks: 4 × 25%

Block layouts can also contain sections that allow horizontal scrolling. These sections always have a width of 100%.

Schematic block layout
Schematic block layout
Schematic block layout with a section scrolling horizontally
Schematic block layout with a section scrolling horizontally

Components

Block layout components
Block layout components

1 – Section

1a – Section Title

2 – Block

2a – Block Title – can be text or a link.

2b – Block Body – can contain text or other controls.

Guidelines

  • Links within a block must lead to areas outside of the block. In addition, controls must update only their own containers.
  • Usage of disabled, emphasized or subtle links as block titles is not recommended. Dark background designs, for example when using the Accent variant, are not fully supported with regards to accessibility when used with links as titles.

Types

There are four types of block layouts:

  1. Default: This layout does not use any background colors.
  2. Dashboard: This layout type uses white blocks with spacing around them, making each block look like a card.
  3. Light: Areas use predefined colors found in the SAP Fiori 3 Quartz Light theme. These colors follow a specific order that is defined in the control. If there are more than six areas, the background colors start over beginning with the initial color.
  4. Accent: Each row contains a range of colors derived from one accent color, and these colors are used alternately. If required by the control, you can display multiple gray blocks: the different shades of gray will then be displayed alternately, beginning with the initial color.

Light Color Set

For the Light variant, use colors as follows:

  • block color A for the section title block.
  • block colors BCDEF and G for the blocks, one after another.
  • block color H for the footer.
Color set for the
Color set for the "Light" block layout type

Accent Color Sets

Row (Section) Color Sets

For the Accent variant of the block layout, you can use a different color set for each row (sap.ui.layout.BlockLayoutRow, property:rowColorSet). This enables different starting colors for the row coloring, and prevents color coalescence in the responsive behavior of the block layout.

Cell (Block) Colors

There are 10 predefined color sets that you can use as accent variants, each with 6 different shades.

To change the background of a particular block, set the desired color set (sap.ui.layout.BlockLayoutCell, property: backgroundColorSet) and color shade (sap.ui.layout.BlockLayoutCell, property: backgroundColorShade) accordingly.

Color set 1, with shades A to F
Color set 1, with shades A to F
Color set 4, with shades A to F
Color set 4, with shades A to F
Color set 7, with shades A to F
Color set 7, with shades A to F
Color set 10, with shades A to F
Color set 10, with shades A to F
Color set 2, with shades A to F
Color set 2, with shades A to F
Color set 5, with shades A to F
Color set 5, with shades A to F
Color set 8, with shades A to F
Color set 8, with shades A to F
Color set 3, with shades A to F
Color set 3, with shades A to F
Color set 6, with shades A to F
Color set 6, with shades A to F
Color set 9, with shades A to F
Color set 9, with shades A to F

Images

Images may be placed as background images within one block. The predefined paddings do not apply to blocks with images; images fill out the entire block.
If needed, the title control may be placed on top of the images.

Responsiveness

The block layout offers responsive behavior. There are three breakpoints, which results in four supported sizes: XL, L, M, and S. As with the responsive grid (another generic layout control), these breakpoints apply both to the page and block layout. However, the page layout’s breakpoints react to screen width, whereas the breakpoints of the block layout react to the width of the control itself.

Ratios of areas in different contexts

Blocks per section XL, L M S
1

(Block 1)

100%  100% 100%
2

(Blocks 2-3)

75% and 25%
or
25% and 75%
75% and 25%
or
25% and 75%
100% each*
100% each*
2

(Blocks 4-5)

50% and 50%  50% and 50% 100% each*
3

(Blocks 6-8)

3 × 33%  3 × 33% 100% each*
3

(Blocks 9-11)

2 × 25% and 1 × 50%
or
1 × 50% and 2 × 25%
or
1 × 25%, 1 × 50% and 1 × 25%
2 × 50% and 1 × 100% over two rows
or
1 × 100% and 2 × 50% over two rows
100% each*
100% each*
100% each*
4

(Blocks 12-15)

4 × 25%  2 × 50% over two rows 100% each*

*Blocks wrap and are displayed underneath each other

Responsive behavior - Size XL
Responsive behavior - Size XL
Responsive behavior - Size M
Responsive behavior - Size M
Responsive behavior - Size S
Responsive behavior - Size S

Sections with Horizontal Scrolling

The width of the horizontal scrolling area in different device contexts:

 

Blocks per section XL, L M S
3 – 5 40% 40% 90%
6 – 10 22.5% 40% 90%
Responsive behavior of a section with horizontal scrolling - Size L
Responsive behavior of a section with horizontal scrolling - Size L
Responsive behavior of a section with horizontal scrolling - Size M
Responsive behavior of a section with horizontal scrolling - Size M
Responsive behavior of a section with horizontal scrolling - Size S
Responsive behavior of a section with horizontal scrolling - Size S

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

List Report Floorplan

Information
This article contains general guidelines for the list report floorplan. Note that some features may not be available if you are using the SAP Fiori elements implementation.

For the latest information on SAP Fiori elements, see the documentation and SAP Community wiki. You can also refer to the SAP Fiori elements feature map to see which controls and capabilities are supported for list reports.

Intro

List report
List report

With a list report, users can view and work with a large set of items. This floorplan offers powerful features for finding and acting on relevant items. It is often used as an entry point for navigating to the item details, which are usually shown on an object page.

When to Use

Use the list report floorplan if:

  • Users need to find and act on relevant items within a large set of items by searching, filtering, sorting, and grouping.
  • Users need to display the whole dataset using different visualizations (for example, as a table or as a chart), without requiring interactions between these visualizations. An example use case might be reporting.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. Views can be switched using tabs, segmented buttons, or a select control.
  • Drilldown is rarely or never used, or is only available via navigation to another page, and not as free or flexible drilldown within the page itself.
  • Users work on different kinds of items.

Do not use the list report floorplan if:

  • Users need to see or edit one item with all its details. Use the object page floorplan instead.
  • Users need to find one specific item, and the item or an identifying data point is known to the user (such as a barcode). Use the initial page floorplan instead.
  • Users need to work through a comparably small set of items, one by one. Use the worklist floorplan instead.
  • Users need to extract knowledge or insights from data, either to better understand the current situation, or to identify the root cause for a certain value.  Use the analytical list page instead.
  • Charts are not only used for visualization. Users need to switch between integrated chart and table views (hybrid view). Use the analytical list page instead.
  • Users need to see the impact of their action on a KPI. Use the analytical list page instead.
  • Users need to see not only the result, but also the impact of their filter settings directly in a chart representation. Use the analytical list page instead.

Structure

The list report is a full screen floorplan based on the dynamic page. In addition to the SAP Fiori launchpad shell bar, the dynamic page contains the following areas:

  • The header title: Use this to display a title or the variant for the whole page, filter information (if the header is collapsed), and a header toolbar with global actions, such as Share.
  • The header content: Use this to display the filter bar or the smart filter bar.
  • The content area: Use this to display:
    • An icon tab bar (optional)
    • One table/chart toolbar (per tab)
    • One or multiple tables and/or charts. You can use any kind of table. If you use a chart, you can display the chart on its own (without a table), as an additional view for an existing table (switchable), or in addition to an existing table, where the chart and table are shown at the same time.
  • The footer toolbar: If needed, use a footer toolbar to display the messaging button and finalizing actions.
Schematic visualization of a list report
Schematic visualization of a list report

Responsiveness and Adaptiveness

In general, the list report floorplan is responsive. However, there are exceptions if the following controls are used:

For more details, see the respective guideline articles.

List report - Size L
List report - Size L
List report - Size M
List report - Size M
List report - Size S
List report - Size S

Guidelines

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see Manage Objects – Naming Guidelines and Launchpad Shell Bar – Page Title and Navigation Menu.

Header Title

Variant Management

Variant management is optional. If you use variants, we recommend using one variant management control for the whole page. Use the variants to save and restore all settings for filters, selected tabs, all tables, and all charts.

In some specific cases, you might need to add a second variant at control level. This can be the case when the user needs to change the view settings of a list independently of the page filters. However, the default is to use a single variant management control for the entire page.

Users can choose a default variant, which is selected every time the app is started.

Allow users to choose whether a variant should be executed automatically as soon as it has been selected. Not executing a variant automatically allows the user to add or remove filters before the dataset is updated. Provide this option only if the filter bar is in manual update mode. For live updates, this option is not required.

If variant management is not needed, show a title that describes the current view instead.

Variant management
Variant management

Filter Information

Display the filter information only if the header content is collapsed. Use the format Filtered By (x): followed by a comma-separated list of the filters currently applied. “x” stands for the number of applied filters.

Show up to 5 filters. If more filters have been applied, show an ellipsis (“…”) at the end of the string.

If no filters have been applied, show Filtered By: None.

Filter information
Filter information

Header Toolbar

Use the header toolbar for non-finalizing global actions, such as Share. Share opens an action sheet, which features Save as Tile (if the SAP Fiori launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

If the content area contains a grid table, an analytical table, a tree table, or any other content with its own scrollbar, display a Show Filters / Hide Filters button for expanding and collapsing the header content.

In addition, offer any other global, non-finalizing actions needed. Hide actions that cannot be used at all (for example, because of access rights). To save space on the header toolbar, group similar actions using a menu button.
For more information on global actions, see the guidelines for the header toolbar.

Header toolbar
Header toolbar

Header Content

Search

The filter bar can contain a search field (optional). If you use the search field, the content shows only items that match both the search terms and the filter criteria.

The search generally searches across all available columns of the table, regardless of whether or not they are visible. In rare cases, some columns might not be included due to technical constraints. If the search does not apply to multiple columns, do not offer the search field.

Filters

Filters are applied to all content, including all tables and all charts. To improve performance, consider providing mandatory filter fields and/or default settings for filters.

Since the list report loads automatically when the page loads, ensure that mandatory filter fields always have default values to avoid error messages.

The filter bar offers two different update modes:

  • The live update mode (recommended) triggers filtering immediately whenever a filter setting is changed. If the search field is used, the search is triggered together with all filter settings with every letter typed.
  • The manual update mode displays a Go button, which triggers the filtering. If the search field is used, the search is executed together with all filters as soon as the Go button is pressed.
    Make sure that all tables and charts in the content area are in a busy state until the new data is available. Also ensure that the content is grayed out as soon as the filter settings do not correspond to the content shown (any table, property: showOverlay). This is usually the case if the content is not yet updated and the Go button needs to be triggered.

Use the manual update mode only if you run into performance problems while loading the table data.

Regardless of the update mode, make sure that the filter bar and the visible content match: The filter bar must always describe the items that are shown in the content area.

Filter bar
Filter bar

The header content collapses when the user scrolls down the page (with a responsive table, list, or tree only), and expands again when the user scrolls back up. To avoid this automatic expand/collapse behavior, users can also pin the header content so that it always stays open. Persist the pin setting.

Users can expand and collapse the header content manually by clicking the background of the title bar. The dynamic page header can also be expanded/collapsed using the Collapse Header ( ) and Expand Header ( ) arrows at the bottom of the header area.

If you are using a grid table, analytical table, tree table, or any other content with its own scrollbar, allow users to explicitly collapse and expand the header content manually with a Show Filters Hide Filters button on the header title.

When starting the application, expand the header content if no query was fired (and the table is therefore empty). Otherwise, collapse the header content.

Content Area

General Layout

There are three basic list report layouts: simple content, multiple views, and multiple content. These are described in more detail below.

Simple Content

In most cases, the content consists of just a table toolbar and a table. If needed, provide an option to switch between the table and a corresponding chart view.

Multiple Views

For more complex scenarios, provide multiple views of the same content. Multiple views involve one or more of the following:

  • Showing the same table, but with different columns.
  • Showing the same table in different pre-filtered states. These states are usually based on a status column, for example, items that are Open, In Process, or Closed. Make sure that the corresponding filter is not offered on the filter bar.
  • Differentiating between the items displayed in the content in some other fundamental way.

There are two options for switching between different views:

The first option is to replace the table title with a content switch. Use this approach if all views share the same sort and group states, as well as the same actions.

The content switch can be:

If you have both a table title and a content switch, display the table title first, then the content switch. Place both on the left side of the table toolbar. Since the content switch is placed on the table toolbar, the same actions are shown for all views.

If you are using the content switch together with charts, ensure that the chart also reacts to the content switch. This can be done by:

  • Filtering the data that influences the display of the chart
  • Changing the measures and/or dimensions (for example, View by Country/RegionView by Customer, …)

The second option for switching views is to show each view in a tab container of the icon tab bar. Use this approach if all views show different states of the same data (sort states, group states, as well as item selection). Using tabs also allows you to offer different actions on the table toolbar for each view.

Table toolbar with a segmented button for up to three different views
Table toolbar with a segmented button for up to three different views
Table toolbar with a select control for more than three views
Table toolbar with a select control for more than three views

Multiple Content

To support even more complex use cases, a list report floorplan can also contain multiple tables that display different kinds of objects. The filter bar settings are applied to all of these tables in parallel. For example, a customer overview list report might display different tables for invoices, deliveries, and overdue payments. All of these tables can be filtered for a specific customer and a specific date.

Display each table inside a tab container of an icon tab bar. This also allows you to offer different actions on the table toolbar for each table.

List report floorplan with multiple tables placed in multiple tabs
List report floorplan with multiple tables placed in multiple tabs

Icon Tab Bar

Use the text-only version of the icon tab bar. Display the number of items shown in the respective table on each tab (sap.m.IconTabFilter, property: count).

Icon tab bar
Icon tab bar

Table Toolbar

Display at least a table title (ideally with an item count) and icon-only buttons for sorting, grouping, and column settings. Do not offer additional filter settings on the table toolbar. For sort and group, show a view settings dialog with just the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

If alternative visualizations are provided (such as charts), offer an additional view switch on the table toolbar. Triggering the switch replaces the current visualization with another one. If a table and chart need to be shown in parallel, offer a switch for the combined view.

In rare cases, you can offer an additional layout variant on the table toolbar. The layout variant stores view settings like the column order and the sort and group settings. If you use a layout variant, do not store the table settings in the filter variant. Offer this additional layout variant only if there is a strong use case for switching filter and layout variants independently. If there is no strong use case, or you are unsure, do not use a layout variant at all.

Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Typical toolbar in the list report floorplan containing the table title and item count, as well as buttons for sorting, grouping, and column settings
Toolbar with a switch between table and chart visualizations
Toolbar with a switch between table and chart visualizations
Toolbar with a table title and layout variant
Toolbar with a table title and layout variant
Toolbar with additional actions
Toolbar with additional actions

In addition, offer any other actions needed. Disable selection-dependent actions (such as Delete) if no items are selected, or if the action cannot be applied to the selected items. Always enable selection-independent actions (such as Add). To save space on the table toolbar, group similar actions using a menu button. For example:

  • Release and Release with Conditions
  • Add Contact and Replace Contact
  • Edit Account and Edit Title

For more information on table/chart actions, see the guidelines for the table toolbar, the chart toolbar, and for managing objects.

Do
Table without the filter icon
Table without the filter icon
Don't
Table with a filter option
Table with a filter option

Table

If there are no items to display, use the “no data” text of the corresponding table. Explain why the table is empty, and what the user needs to do to display items.

Examples:

  • After starting the app, no filters are applied:
    To start, set the relevant filters.
  • The filter was executed, but no items were found. This can also happen if the list report was opened by a related app, and the filter criteria were transferred automatically:
    No data found. Try adjusting the filter settings.

Sticky Behavior

The icon tab bar, table/chart toolbar, and column headers of all table types must be “sticky”. This means that they stay fixed on top when the user scrolls down the page.

Navigation

There are three types of navigation at item level in the list report floorplan:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a list, tree, or responsive table, clicking the line item triggers the navigation.
    In a grid table, analytical table, or tree table, clicking the navigation indicator triggers the navigation.
    Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use this only if the navigation indicator is being used for a different target.
    Only show navigation indicators for target pages the user is authorized to access.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually another list report. In this case, use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting.
    In charts, offer the drilldown navigation link in the popover for the chart element. In this case, also navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains cross-references to other entities, such as people or business objects, use a link to display the corresponding data point in the table. Triggering the link opens a quick view. Typically, the quick view displays basic details of the referenced object and a navigation link to another page (usually an object page) or another app that shows the object details.

Footer Toolbar

Use the footer toolbar to display the messaging button and finalizing actions. Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Always show the footer toolbar in edit mode.

Hide actions that cannot be used at all (for example, if the user doesn’t have authorization). To save space on the footer toolbar, group similar actions using a menu button.

For more information on finalizing actions, see the guidelines for the footer toolbar.

Footer toolbar
Footer toolbar

Actions

Places for actions in the list report
Places for actions in the list report

(1) Global actions in the header toolbar
(2) Table actions in the table toolbar
(3) Line item actions
(4) Finalizing actions in the footer toolbar

1. Global Actions

Place actions that affect the entire page in the header toolbar in the header title (1). These include the following standard actions:

Hide actions that cannot be used at all (for example, because the user has no authorization). To save space on the header toolbar, group similar actions using a menu button.

Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information on global actions, see the guidelines for the header toolbar.

2. Table/Chart Actions

Place actions that affect the content of a table or chart in the table toolbar (2).

Information
When you use the list, tree, or responsive table, actions on the table toolbar move up out of the visible screen area when the user scrolls down, and are not accessible.

If you are using an icon tab bar, be aware that each tab contains its own table toolbar.

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available (such as Create for new objects). Other actions are only relevant if items have been selected (for example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item).

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions when no items have been selected.
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information, also see UI Element States – Control States.

Partial Processing

Enable the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide a sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

More Information

For more information on table and chart actions, see the guidelines for the table toolbar, chart toolbar, and for managing objects.

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this only for specific, frequently used tasks (3). If the same action can also be applied to several items at once, feel free to also place it on the table toolbar. Nevertheless, if you do so, reconsider whether you really need to offer the action at line item level. Examples of line item actions include:

  • Start/Stop (a batch job)
  • Approve (an item)
  • Assign (an item)

Do not disable line item actions. If an action cannot be used, hide it. This can be the case if the user has no authorization or the line item is in the wrong state.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar (4).

Examples:

  • Save
  • Cancel
  • Submit

Please be aware: Even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information on finalizing actions, see the guidelines for the footer toolbar.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Worklist Floorplan

Information
This article contains general guidelines for the worklist floorplan. Note that some features may not be available if you are using the SAP Fiori elements implementation.

For the latest information on SAP Fiori elements, see the documentation and SAP Community wiki.

You can also refer to the worklist floorplan article for guideline version 1.52, which includes the main features of the SAP Fiori elements implementation. However, please note that this page is no longer updated.

Intro

A worklist displays a collection of items that a user needs to process. Working through the list usually involves reviewing details of the items and taking action. In most cases, the user has to either complete a work item or delegate it.

The focus of the worklist floorplan is on processing the items. This differs from the list report floorplan, which focuses on finding and acting on relevant items from a large dataset.

Worklist – Full screen
Worklist – Full screen

When to Use

Use the worklist floorplan if:

  • The user has numerous potential work items and needs to decide which ones to process first.
  • You want to give the user a direct entry point for taking action on work items.
  • Users need to work with multiple views of the same content (for example, items that are “Open”, “In Process”, or “Completed”. Users can switch between views using the tab bar.

Do not use the worklist floorplan if:

  • The items you are showing are not work items.
  • You want to show large item lists, or combine different data visualizations (charts or tables). In this case, use the list report floorplan instead.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping. Use the list report floorplan instead.

Structure

The worklist floorplan is based on the dynamic page. In addition to the SAP Fiori launchpad shell bar, the dynamic page contains the following areas:

  • The header title: Use this to display a title or the variant for the whole page, KPI information (if relevant), and a header toolbar with global actions, such as Share.
  • The content area: Use this to display:
    • An icon tab bar in the content area
    • One table (per tab)
    • You can use any kind of table and list. To ensure that the application runs on all devices, we recommend using the responsive table.
Basic structure
Basic structure

Responsiveness

In general, the worklist floorplan is responsive. However, there are exceptions if the following controls are used:

For more details, see the respective guideline articles.

Worklist floorplan - Size L/XL
Worklist floorplan - Size L/XL
Worklist floorplan - Size M
Worklist floorplan - Size M
Worklist floorplan - Size S
Worklist floorplan - Size S

Guidelines

Simple Worklist

The worklist floorplan allows the user to work through a list of items. Ideally, the system provides the user with a complete list of work items in the correct order. You should also ensure that no important work items are lost, and keep distracting functions to a minimum.

The most basic version of the worklist is therefore a plain page with a table.

Simple worklist without tabs
Simple worklist without tabs

Worklist with Tabs

The icon tab bar enables users to call up work items in specific categories. This can help users identify critical items more easily. Different tabs show different perspectives on the same dataset.

You can offer visual orientation by applying semantic colors to the icons for the different categories (for example, red for the Error tab).

Worklist with tab categories
Worklist with tab categories

Worklist with KPI

The key performance indicator (KPI) worklist allows the user to track a KPI while processing the worklist. You can display the KPI within the KPI container next to the page title as an object status.

Worklist with KPI
Worklist with KPI

Header Title

Variant Management

Variant management is optional. If used, apply it to the whole page. Use the variants to save and restore all settings, including selected tabs, all tables, and all personalization settings.

If variant management is not needed, just show a title that describes the current view instead.

Header Toolbar (Global Actions)

Use this for non-finalizing global actions such as ShareShare opens an action sheet, which features Save as Tile (if the SAP Fiori launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

In addition, offer any other global, non-finalizing actions that are needed. Hide actions that cannot be used at all (for example, because of access rights). To save space on the header toolbar, group similar actions using a menu button.
For more information on global actions, see the guidelines for the header toolbar.

Page Content

Tab Bar

The tab bar is part of the page content container, and has to be sticky. This means that the tab bar remains visible at the top when the user scrolls down the page.

Use the icon tab bar. Display the number of items shown in the table on each tab (sap.m.IconTabFilter, property: count). Only use icons if you need to display semantic colors on the icon tab bar.

The tab bar works as a filter on the content below.

Table Toolbar

Display at least a table title (ideally with an item count) and icon-only buttons for sorting, grouping, and column settings. For filter, sort, and group, show a view settings dialog with only the corresponding features enabled. For column settings, show the table personalization dialog. If you need more extensive functionality (for example, grouping or sorting on several levels, tables with more than 20 columns), use the P13n-Dialog with just the corresponding feature enabled.

In addition, offer any other actions needed. Disable selection-dependent actions (such as Delete) if no items or only unsuitable items are selected. Always enable selection-independent actions (such as Add). To save space on the table toolbar, group similar actions using a menu button. For example:

  • Release and Release with Conditions
  • Add Contact and Replace Contact
  • Edit Account and Edit Title

For more information on table actions, see the guidelines for the table toolbar and for managing objects.

Keep the table toolbar and all its components sticky.

Table

If there are no items to display, use the “no data text” of the corresponding table. Explain why the table is empty, and what the user needs to do to display items.

Examples:

  • The search was executed, but no items were found: No items found. Try adjusting your search criteria.
  • By opening a related app, the filter criteria were transferred automatically, but no items were found: No items found. Check the search and filter settings.

There are three types of navigation at item level in the worklist floorplan:

  • Line item navigation: If applicable, allow navigation to a detail view (usually an object page) at line item level. Show a navigation indicator (chevron icon) for each line item that provides a detail view. In a listtree, or responsive table, clicking the line item triggers the navigation. In a grid tableanalytical table, or tree table, clicking the navigation indicator triggers the navigation. Another option is to use a link as the identifier for the line item. This link triggers the navigation. Use this only if the navigation indicator is used for a different target.
  • Drilldown navigation: If a line item contains aggregated data, allow navigation to a view that contains details for the aggregated amount. This is usually a list report. In this case, use a link to display the aggregated amount. If the table contains many columns with links, use the link options to provide different levels of highlighting. In charts, offer the drilldown navigation link in the popover for the chart element. In this case, also navigate to the corresponding list report to show the details.
  • Cross navigation: If a line item contains cross-references to other entities, such as people or business objects, use a link to display the corresponding data point in the table. Triggering the link opens a quick view. Typically, the quick view displays basic details of the referenced object, as well as a navigation link to another page (usually an object page) or another app that shows the object details.

Keep the column headers of all table types sticky.

Footer Toolbar

Use the footer toolbar to display the messaging button and finalizing actions. Only use the footer toolbar if finalizing actions for the whole page and/or the message popover are available.

Always show the footer toolbar in edit mode.

Hide actions that cannot be used at all (for example, if the user doesn’t have authorization). To save space on the footer toolbar, group similar actions using a menu button.

For more information on finalizing actions, see the guidelines for the footer toolbar.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see Manage Objects – Naming Guidelines and Launchpad Shell Bar – Page Title and Navigation Menu.

Actions

Placement for actions in the worklist
Placement for actions in the worklist

The worklist offers four locations for actions:

(1) Global actions in the header toolbar
(2) Table actions in the table toolbar
(3) Line item actions
(4) Finalizing actions in the footer toolbar

1. Global Actions

Place actions that affect the entire page in the header toolbar in the header title (1). These include the standard Share action.

The Share button opens an action sheet that contains actions like Save as Tile (if the SAP Fiori Launchpad is available), Send Email, and Share in SAP Jam (if SAP Jam is available). Show the Share button only if it makes sense for your application.

Hide actions that cannot be used at all (for example, because the user has no authorization). To save space in the header toolbar, group similar actions using a menu button.

Do not place actions that finalize the current process (“finalizing actions”) on the header toolbar of the header title, even if they affect the entire page.

For more information on global actions, see the guidelines for the header toolbar.

2. Table Actions

Place actions that affect the content of a table in the table toolbar (2).

When to Enable, Disable, or Hide Actions

Indicate whether an action is available. Some actions are always available (such as Create for new objects). Other actions are only relevant if items have been selected (for example, Edit at item level, Remove, object-specific actions, or actions that change the status of an item).

Enable the following actions:

  • All Add/Create actions, unless the user needs to specify where in the table the new item should be added.
  • Edit actions that switch the entire table to edit mode (independent of the selected items).
    If the user triggers the Edit button, replace it with Save and Cancel buttons (see Editing the Whole Table).
  • Item-dependent actions that can be applied to some or all of the selected items.

Disable the following actions:

  • Item-dependent actions when no items have been selected.
  • Add/Create actions where the user needs to specify the insert position in the table, but either no item has been selected, or more than one item has been selected.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information, also see UI Element States – Control States.

Partial Processing

Enable the user to apply the changes to as many of the selected items as possible.

If an action can’t be applied to all selected items, show a warning message before executing the action:

  • Indicate the number of selected items that can’t be processed (out of the total number of selected items).
  • Give a reason why the action can’t be applied to these items.
  • Let the user choose whether to apply the action to the remaining items anyway or cancel the action.

See an example here.

Note: In some scenarios, you might not be able to identify whether an action can be applied to all selected items before executing it. If the system is unable to apply the action to all items, show a message after executing the action.

Sort, Group, Personalization

Decide if you need to provide a sorting, grouping or personalization for your use case. If you offer more than one of these actions, offer them as single actions. We recommend keeping them in the following order: Sort, GroupPersonalization.

More Information

For more information on table and chart actions, see the guidelines for the table toolbar, chart toolbar, and for managing objects.

3. Line Item Actions

In rare cases, actions that affect a single item can be placed directly inside the line item. Use this option only for specific, frequently-used tasks (3). If the same action can also be applied to several items at once, feel free to also place it on the table toolbar. Nevertheless, if you do so, reconsider whether you really need to offer the action at line item level. Examples of line item actions include:

  • Start/Stop (a batch job)
  • Approve (an item)
  • Assign (an item)

Do not disable line item actions. If an action cannot be used, hide it. This can be the case if the user has no authorization or if the line item has the wrong state, for example.

4. Finalizing Actions

Place actions that trigger the end of a process and affect the entire page in the footer toolbar (4).

Examples:

  • Save
  • Cancel
  • Submit

Please be aware: Even if you are using the icon tab bar, there is only one footer toolbar for all tabs.

Hide actions that cannot be used at all (for example, because the user has no authorization).

For more information on finalizing actions, see the guidelines for the footer toolbar.

Often, users will need more information before they can take action. In this case, offer navigation to the work item details, and offer all the relevant actions in the detail screen. Once the user has completed the task, the app should:

  • Return the user to the worklist
  • Remove the processed item from the list, or move it to a “completed” section
  • Confirm the user’s action with a message toast

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Object Page Floorplan

Information
This article contains general guidelines for the object page floorplan. Note that some features may not be available if you are using the SAP Fiori elements implementation.

For the latest information on SAP Fiori elements, see the documentation and SAP Community wiki. You can also refer to the SAP Fiori elements feature map to see which controls and capabilities are supported for object pages.

Intro

The object page floorplan is used to display and categorize all relevant information about an object. Categorized content can be accessed quickly using anchor or tab navigation, and users can switch from display to edit mode to change the content. To create a new object, users can switch to create mode.

The object page floorplan comes with a flexible, responsive layout and a dynamic page header that can be adapted to display simple and complex business objects. This allows you to adjust the layout to a wide range of use cases.

Object page floorplan
Object page floorplan

Warning

  • Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
  • Do not use the current implementation of the “page variant” feature in SAP Fiori elements. This feature is technically available for object pages, but we are still working on the final design.

When to Use

Use the object page floorplan if:

  • Users need to display, create, or edit an object.
  • Users need to get an overview of an object and interact with different parts of the object.

Do not use the object page floorplan if:

Use instead:

  • Users need to edit several items at the same time.
  • Users need to find relevant items without knowing the exact item details.

List report floorplan
  • Users need to be guided through a series of steps when a new object is created.
  • The creation process for a new object is not linear, but can have different paths, depending on the information selected.
Wizard floorplan
  • Users need to find one specific item, where the item or an identifying data point is known to the user (such as a barcode identified by a barcode scanner).
Initial page floorplan
  • Users need a way to analyze data step by step from different perspectives. They need to drill down to investigate a root cause and act on transactional content within one page.
  • Users need to interact with interdependent chart and table views (rather than using charts for visualization only).
Analytical list page

Components

The object page consists of the following elements:

  • Dynamic page header (mandatory)
  • Navigation bar (optional)
  • Content area (mandatory)

The image below provides an overview of the object page components.

Schematic visualization of the object page
Schematic visualization of the object page
  1. Dynamic page header
  2. Navigation bar
  3. Content area
  4. Shell bar
  5. Breadcrumbs
  6. Global actions
  7. Header content
  8. Footer toolbar

The following sections explain these components in more detail.

Dynamic Page Header (mandatory)

The dynamic page header contains key information about the object and provides the user with the necessary context. The header also contains global actions for the object, such as Edit or Delete.

The header consists of the following elements:

  1. Breadcrumbs (optional)
  2. Title (mandatory)
  3. Subtitle (optional)
  4. Object marker (optional)
  5. Header toolbar with global actions (optional)
  6. Visual indicator for header features (mandatory if the header can be collapsed and expanded)
  7. Header content (optional)
Object page with the dynamic header
Object page with the dynamic header

If the object page is used in the flexible column layout, it can also contain navigation actions.

Please note:

  • To display images and placeholders in the header, use the avatar control.
  • The subtitle is now below the title. (In the former object page header it was next to the title.)

For an example of an object page with the dynamic page header, see this SAPUI5 sample. A sample with an image can be found here.

For more information, see the Dynamic Page Header section for the dynamic page layout.

Warning
Always build the object page using the dynamic page header and not the former object page header. Using the old object page header creates issues that can’t be fixed retrospectively. Using the dynamic header will also ensure consistency across all floorplans and provide greater flexibility. For details, see the Header section below.
Developer Hint
To use the dynamic page header in SAP Fiori Elements, set the class “objectPageHeaderType” to “Dynamic”.

Breadcrumbs

A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.

Header Content (optional)

The header content displays app-specific contextual information. You build the content using containers, called facets.

The facets are arranged inline with a left float. Each facet adapts its size to the content and makes optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the right wrap to the line below.

The header content is hidden by scrolling down the page or clicking the collapse indicator.

There are several types of header facets for different kinds of data. The facets must be implemented by the app team for standalone object pages. For SAP Fiori elements, they are predefined.

The following header facets are available:

Form Facet (Dataset)

You can use the form facet to display datasets.

A form facet consists of:

  1. Title (optional)
  2. Label-text pair (not more than 5)
  • The labels can be invisible, but need to have a text for accessibility purposes.
  • The labels can be icons, but need to have a text for accessibility purposes.
  • Each text can hold a link.
Developer Hint
For non-SAP Fiori element object pages only:

For each label-value pair in the form header facet, use a sap.m.Label and a sap.m.Text or sap.m.Link, nested within an sap.m.HBox.

Header facet - Form facets
Header facet - Form facets

Plain Text Facet

You can use the plain text facet to display a continuous text in the header.

A plain text facet consists of:

  1. Title (optional)
  2. Text

You can have links inline in the continuous text. They can navigate to another page or open a quick view. The text can contain more than one link, with different actions.

The default width of the facet is 300 px. The width of the facet doesn’t adapt to its content, but when the headline is broader than the facet width, the header wraps. You can also set a specific width to make optimal use of the given space.

Developer Hint
For non-SAP Fiori element object pages only:

To set the width of the plain text facet, nest the text within an sap.m.HBox and set the property:width of the sap.m.HBox.

Header facet - Plain text facet with default width
Header facet - Plain text facet with default width
Header facet - Plain text facet with custom width
Header facet - Plain text facet with custom width

Image Facet

You can use the image facet to show a picture of the object or a user profile. The header can have either one image facet or no image facet. The position of the image facet is fixed to the left. The image can have a press event. The default press event enlarges the image. When the header collapses, the image facet moves to the left of the title and becomes smaller.

Guidelines
Always use the avatar control for the image in the header. This applies to both expanded and collapsed images.
Header facet – Image facet specification
Header facet – Image facet specification

Key Value Facet

You can use the key value facet to highlight important data or KPIs.

A key value facet contains:

  1. Title
  2. Text or number in a larger font size

If the key value facet is used with a text, such as a status, you can also display an icon to the right of the text. This icon must only be used as a visual cue for the text it relates to, and not to add more information.

Developer Hint
For non-SAP Fiori element object pages only:

Larger value texts are now possible following the introduction of new properties for the object status and object number.

Header facet – Key value facets with KPIs and a status
Header facet – Key value facets with KPIs and a status

Micro Chart Facet

A micro chart facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional)
  3. Micro chart (mandatory)
  4. Footer (optional)

To display the unit used in the micro chart, use the footer.

The following micro charts can be used in the micro chart facet:

The micro chart facet can have a click or tap event on the chart itself. This can lead to a page with a bigger chart or open a quick view, for example.

For more information, see Micro Charts.

Header facet – Micro chart facets
Header facet – Micro chart facets

Progress Indicator Facet

A progress indicator facet consists of:

  1. Title (mandatory)
  2. Progress indicator
  3. Subtitle (optional)
  4. Footer (optional)

For more information, see Progress Indicator.

Header facet - Progress indicator facet
Header facet - Progress indicator facet

Rating Indicator Facet

You can use this facet to display a rating indicator, which can be modified to fit your use case.

A rating indicator facet consists of:

  1. Title
  2. Rating indicator
  3. Supplementary texts (1-2)

We recommend the following property settings when using the rating indicator in header facets:

  • 5 symbols as the default.
  • Use the Favorite icon as the symbol.
  • Display half-stars to represent decimal values.

The rating indicator facet can be used for two different use cases: aggregated rating and single-value rating.

Aggregated rating:

A typical example of an aggregated rating is the average of several user reviews for a product.

The aggregated rating facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Indicates the amount of data being aggregated.
  3. Rating indicator
  4. Footer (mandatory): Displays the exact aggregation value. Use the format “<average rating> out of <maximum rating>”. For the average rating, use the exact value with one decimal place.

Single value rating:

The single value rating facet consists of:

  1. Title (mandatory)
  2. Subtitle (optional): Displays supplementary text
  3. Rating indicator
Header facet - Rating indicator facet with aggregated rating and single value rating
Header facet - Rating indicator facet with aggregated rating and single value rating

Navigation Bar (optional)

If your content is simple and you need only one section, use the dynamic page layout. In the dynamic page layout with one section, the header area can’t be edited when the page is in edit mode.

If your content is complex and you need several sections, use the object page layout. You can only have several sections in the object page layout. In the object page layout with several sections, it’s also possible to edit the header area when the page is in edit mode. However, try to avoid having an editable header and move the content from the header to the sections instead.

If you need only one section, but require an editable header, use the object page layout. An object page with only one section doesn’t have any anchor bars. However, a temporary anchor bar and section for editing the header content should be added when edit mode is triggered.

If the content is complex there are two ways to structure it:

  • Anchor bar navigation (default)
  • Tab bar navigation

Anchor Bar Navigation

The anchor bar consists of a series of links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking a link navigates to the respective section. The anchor bar remains visible when the user scrolls down the page.

Use anchor bar navigation when the content belongs together but users might want to jump to specific parts directly.

For more information, see Anchor Bar Navigation below.

Tab Bar Navigation

The tabs are a series of links to subpages, arranged horizontally at the top of the page. Clicking a link navigates to the respective subpage. The tabs remain visible when the user scrolls down the page.

Use tab bar navigation if your page covers different topics that each have complex content, such as long tables or lists.

For more information, see Tab Bar Navigation below.

Anchor Bar Navigation

The anchor bar is the default navigation control for the object page. It consists of a series of anchor links, which are arranged horizontally at the top of the page. The anchors represent sections or subsections of the page. Clicking on these links directs the user to specific sections of the page. The anchor links remain visible when the user scrolls down the page.

Developer Hint
Make sure that the UpperCaseAchorBar property is disabled and that you enter the anchor bar labels in title case (for example: Contact Information).

Overflow

If there are more anchors than the screen can accommodate, the remaining anchors move into an overflow menu. The overflow button on the right of the navigation bar () opens a hierarchical dropdown list of all sections and subsections. When the user scrolls down the page, the anchor links scroll horizontally to ensure that the active anchor is always visible.

You might also see a small right arrow on the anchor bar. This arrow allows you to scroll horizontally to reveal any hidden content, and only appears when you hover over the overflow menu. In the meantime, this arrow has been replaced by the overflow menu button, but is still supported technically for legacy reasons.

Responsiveness

On small screens, the anchor bar becomes a dropdown list. The text field of the dropdown list shows the section currently selected. Clicking the dropdown menu opens a hierarchical list with all the sections and subsections of the page.



Object page – Anchor bar
Object page – Anchor bar
  1. Active anchor
  2. Inactive anchor
  3. Subsection dropdown
  4. Subsection
  5. Subsection dropdown indicator
  6. Overflow carousel button
  7. Overflow menu button
  8. Overflow menu dropdown
  9. Section (hover) in overflow menu
  10. Section in overflow menu
  11. Subsection in overflow menu

Behavior and Interaction

Click / Select: Action:
Anchor link Scrolls page directly to the content of the selected section (not to the title).
Arrow next to section anchor with several subsections Opens the submenu.
Item in the overflow list Scrolls the page to the content of the respective section or subsection (not to the title).
Keyboard left and right arrows Move between anchor links.
Fade area to the left or right of the anchor bar Causes an overflow arrow button to appear (compact mode only). The overflow arrow button is always visible in cozy mode.
Overflow scroll button (right arrow) Scrolls the anchors horizontally to bring anchors that are hidden in the overflow into view.
Overflow menu button () Displays a hierarchical dropdown list with all the sections and subsections of the page.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

Tab Bar Navigation

As an alternative to the anchor bar, you can also use the tab bar for navigation. The tab bar works in a similar way to the icon tab bar, but is not the same control. The tab bar navigation for the object page is a variant of the anchor bar, and is handled by the object page layout control.

If you set the tab bar property (useIconTabBar = “true”), the navigation bar displays tabs instead of anchors. The object page only supports text-only tabs; icon tabs and icon/text tabs are not available. The object page sections and subsections are reflected in the tab navigation: sections of the object page become the tabs, and subsections become the internal content of the tab. The tabs can have an item counter, which is displayed in parentheses next to the title of the tab.

On small screens, the tab bar uses the same horizontal carousel overflow pattern as the icon tab bar. This differs from the dropdown approach used for the anchor bar.

Subnavigation

To make it easier to reach specific content on a long tab page, tabs can have subnavigation. Subnavigation is optional, but the default state is set to “true” and a dropdown arrow is shown next to the tab. Clicking on the dropdown arrow displays a dropdown menu with the subsection anchors for that tab. Applications can decide which tabs are enabled for anchor subnavigation by setting their property to “true”.



Object page – Tab navigation
Object page – Tab navigation
  1. Anchor/tab bar navigation
  2. First section
  3. Second section

Content Area

The object page content consists of sections and subsections arranged in a column layout.

Sections

Sections are containers for subsections. They provide the basic structure for navigation and are directly reflected in the navigation bar.

The first section doesn’t have a title.

All the following sections consist of:

  1. Title with item counter (counter is optional)
  2. Subsections

Sections cannot contain controls.

If a section contains only one subsection, the title of the subsection is used as the name of the section. In this case, there is no subsection submenu in the anchor bar.

Sections can only contain subsections, not content. Because of this, the object page only provides toolbars for local actions at the subsection level.

Subsections

Subsections are containers for actual content.

A subsection consists of:

  1. Title with item counter (counter is optional)
  2. Toolbar with actions (optional)
  3. Content
  4. Mixable related content (optional)
  5. Controls inside subsection (optional)

Subsection content is arranged according to the column layout approach for the respective screen size.

Subsections have a progressive disclosure mechanism to show and hide content. App developers can specify which content is shown initially, but the user can always choose to display everything by selecting the Show All button at the bottom right of the subsection.

Responsiveness

The content blocks in a subsection display in a row. The width of the row depends on the column layout for the respective screen size. If there is not enough space to display a content block, it wraps to the line below.

Object page – Content responsiveness
Object page – Content responsiveness

Forms

Forms follow the standard layout of the object page:

  • Extra large: 4 columns
  • Large: 3 columns
  • Medium: 2 columns
  • Small: 1 column

Forms are located within subsections. They follow the column design of the object page, whereby each form group is arranged into a column. The title of the form is given by the subsection header. Only use the form title if you are using several forms within the same subsection.

Use top-aligned labels for form fields. Top-aligned labels are known to reduce completion times and are the best approach for forms requiring localization or long labels. Using top-aligned labels also avoids issues with the spacing between the label and form field, which can occur with left- and right-aligned labels.

If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.

You can enable users to show and hide forms, groups or label-value field pairs using the Show More / Show Less toggle button.

Blocks

Layout blocks allow content to be aligned within the columns as follows:

  • Layout 1: Occupies the maximum available horizontal space of one column.
  • Layout 2: Occupies the horizontal space of only two columns. If there is only one column available, it occupies one column.
  • Layout 3: Occupies the horizontal space of three columns. If there is only one column available, it occupies one column. If there are only two columns available, it occupies two columns.

To show and hide blocks, you can use a Show More / Show Less toggle button. Do not use the panel container in the object page content area.

Object page – Blocks
Object page – Blocks

Tables

If a section or subsection contains only one table and no other content, remove the table title to avoid having duplicate titles for the table. In this case, the section or subsection title acts as the table title.

Depending on the number of table items, use one of the following loading behaviors:

Number of Table Items: Use:
Up to 20 Items can be displayed right away
Up to 100 Lazy loading
More than 50-100 but less than 400 Tab navigation
More than 400 or tab approach is unsuitable Navigation to list report

If a table is expected to have more than 20 items, use one of the 3 options below for long tables.

For all three options, we recommend providing a search, and if feasible, sort and filtering for the table in the object page. Avoid grouping.

1. Lazy Loading Behavior (“More” button)

If you expect up to 100 items, use the More button of the responsive table. The initial number of items shown depends on the height of the rows. We recommend initially showing 5 to 10 items, but not more than 20. If there is more than one table in the object page, only use this option for tables with up to 50 expected items.

2. Tab Navigation

If you expect to have more than 50 to 100 items, but less than 400, using the object page with tab navigation instead of anchor navigation also solves the problems associated with long tables. To enable the scroll-to-load behavior, the table must be the only or last element within a tab.

3. Navigation to List Report

For tables with more than 400 items, or when the tab approach is unsuitable, restrict the size of the table in the object page to a reasonable number of items. We recommend only showing a preview of no more than 20 items. Ideally, you should have about 10 items. This can be achieved by prefiltering and/or sorting the table, and, if necessary, setting a fixed number of items (such as the top 10). To enable the user to work with the entire table, offer navigation to a separate list report containing the full table. To do this, place a right-aligned link below the table with the label Show All (x), where x represents the total number of items in the table.

Table with navigation to a separate list report
Table with navigation to a separate list report

The object page loads in a “growing” mode. This means that the object page loads section by section to show users some content before the whole page is loaded. Scrolling down the page triggers loading for the sections below. Hidden items in sections are only loaded (and rendered) by clicking the Show More button for the section.

If the loading takes a long time, a busy indicator is shown on top of the section or item until the content it loaded and visible.

Busy indicators for sections still loading
Busy indicators for sections still loading

Representation of Child Pages

In object pages with drilldown navigation, child pages are represented in two ways:

  • Breadcrumbs: A breadcrumb is displayed above the object title. Limit the breadcrumb to the drilldown levels within the object page.
  • Paging buttons: Up and down arrows in the layout action area allow the user to navigate between subitems without going back to the original list.

Footer Toolbar

The footer toolbar is used in edit and create mode for closing and finalizing actions, such as Save, Post, Accept, Reject, and Activate.

Behavior and Interaction

The basic layout of the object page in terms of header, navigation, and content remains the same in all modes (display, edit, create).

Edit

In edit mode, the object page can contain a mixture of editable and read-only content.

If the user needs to edit elements in the header, a header section is added in the content area to enable editing.

Use the same content layout for both display and edit mode. Content should not change location when the user switches between display and edit modes.

For global and local editing guidelines, see Manage Objects – Create, Edit, Delete.

Editing the Header

The object page header can be edited in two ways:

  • Global edit
  • Partial edit

Global Edit

The header can be edited when the entire object page is in edit mode.

Because the header snaps on scroll, there are no editable forms in the header itself. Instead, a temporary header section is added before the other sections of the page. The title bar information and all editable fields from the header container move from the header to the new editable header section. Any non-editable content displays as read-only in the new header section. You can leave out header content that doesn’t make sense in edit mode (for example, aggregated values that are calculated from several sources, KPIs, or micro charts).

If only a few fields in the header are editable, and they match an existing section, they are moved to that section. In this case, no editable header section appears.

If your object page has no anchor bar in display mode, and the header section has only a few editable fields, do not add navigation in edit mode.

The header container in edit mode may contain independent facets that are not included in the header content in display mode. They provide information to assist editing.

If the entire object page is in edit mode, but there is no editable information in the header, no editable header section is added.

Any changes made to the header are not reflected until the user saves them.

Partial Edit

The user can edit the header content separately by pressing the Edit Header button.

If there are only a few elements to edit, the partial edit triggers a dialog.

If there are too many elements to fit in a dialog, the partial edit triggers a subpage. The subpage contains all editable information from the header. However, it differs from the “Header” section in global edit mode in that it has no action buttons in the toolbar, no navigation, and no breadcrumbs.

Create and Edit Subobjects

The following options are available for creating or editing subobjects:

  • Navigation to a subobject page
  • Inline create or inline edit in a table
  • Dialog containing the fields of the object

If the subobject has less than 8 fields, use a dialog or the inline create/edit option (no separate page for the subobject). Exceptions can apply if additional content for the subobject is available but not part of the edit process, or if other apps need to offer deep links to the subobject page.

Unsaved Changes

If draft handling has been implemented, documents are automatically saved as draft versions in the background. An editing icon to the right of the object title indicates that a draft version exists. In other words, either the current user or another user has made changes, but not yet actively saved the document (“unsaved changes”). Do not show the editing icon for unsaved changes if draft handling is not supported.

Selecting the editing icon invokes a popover with more information about the unsaved changes. This normally states:

  • Who made the changes
  • When the last changes were made

The popover closes when the user clicks or taps outside the popover.

Unsaved changes popover
Unsaved changes popover

Create

Create mode is similar to edit mode, except that the user creates a new object and defines a title for it. Until the new object title is known, dispaly the placeholder text “New ” (for example, New Purchase Order). Replace the placeholder text with the actual name or ID of the new object as soon as this has been entered or generated.

Consider using the wizard floorplan instead of the object page floorpan if:

  • You need to guide the user through a series of steps when a new object is created.
  • You need a progressive disclosure approach for the creation process.
  • The creation process is not linear, but can have different paths, depending on the information selected.
  • The user is not familiar with the creation task.

Responsiveness

The object page floorplan is responsive and supports all SAP FIori screen sizes: small (S), medium (M), large (L), and extra large (XL). The layout for size XL contains four columns.

Object page – Size S
Object page – Size S
Object page – Size M
Object page – Size M
Object page – Size L
Object page – Size L

The default layout for size L (desktop) contains three columns. If you want to display two content elements that require an equal amount of space, you can also use an optional two-column layout (for example, two tables next to each other). Do not use the two-column layout with forms.

Object page layout – Size L
Object page layout – Size L

The layout for size M (tablet) contains two columns.

Object page layout – Size M
Object page layout – Size M

The layout for size S (smartphone) contains one column.

Object page layout – Size S
Object page layout – Size S

Guidelines

Dynamic Page Header

Use the header to set the context. Ensure that it is clearly structured and contains only essential information. Too much information impedes the main purpose of providing clear context.

Developer Hint
How to achieve a small header:

  • The header container is always optional. If there is no important data to be displayed, you can omit it. In this case, only the header title bar is shown.
  • Omit the image if it is not necessary. It is generally the tallest element in a header container.
  • Use a light theme to reduce the emphasis on the header if it doesn’t contain much information.
  • Consider moving information from the header into a general information section.

Actions

Arrange the actions in the header toolbar with care, and consider what matters most to the user:

  • Highlight actions that are common or most important.
  • Differentiate between secondary and generic actions.
  • Use either a text button or an icon for an action, but not both.
  • Use icons only for generic actions (such as  for Share). For all business actions, use text buttons.
  • Place the most important actions on the left (actions go into the overflow from right to left).
  • Establish a coherent visual approach.

For more information, see Action Placement.

Image Facet

If you intend to use images in the object header, consider the following:

  • How will the user manage the images?
  • How will the system block people without permission from editing images?
  • How will these images be reflected in other floorplans if they are part of the object?
  • If there are a large number of items, how would a user be able to manage images without having to navigate from page to page?
  • Will the organization be able to manage the images?

Tab Navigation

If you have a complex object page, use the tab navigation approach. This can be useful when a complex object page has performance issues in a flat view, or in response to a specific user preference.

Content Area

  • Avoid using the object page as a universal container for masses of information. Use the object page in accordance with the SAP Fiori principles: role-based, coherent, simple, and adaptive.
  • Give your users quick and easy access to the information they need to complete their task(s). Use a progressive disclosure strategy to keep your interface clean. You can always provide additional information on request.
  • Only present your users with information that makes sense for their industry, role, activity, and task.

Dynamic Side Content

You can offer dynamic side content alongside the object page under the following conditions:

  • Use the side panel only for contextual content. Do not place finalizing or global actions in the side panel. This is because opening the side panel occupies the whole right side of the screen. There is no way to show it only below the header and anchor bar.
  • Do not place object information in the side panel. This information should always be in the content area of the object page.

Standard Naming Conventions

For all objects, follow the standard conventions for action buttons, the object name, and the title in the shell bar. For more information see Manage Objects – Naming Guidelines and Launchpad Shell Bar – Page Title and Navigation Menu.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Analytical List Page (SAP Fiori Element)

Analytical list page
Analytical list page

The analytical list page (ALP) offers a unique way to analyze data step by step from different perspectives, to investigate a root cause through drilldown, and to act on transactional content. All this can be done seamlessly within one page. The purpose of the analytical list page is to identify interesting areas within datasets or significant single instances using data visualization and business intelligence.

Visualizations help users to recognize facts and situations, and reduce the number of interaction steps needed to gain insights or to identify significant single instances. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

The main target group are users who work on transactional content. They benefit from fully transparent business object data and direct access to business actions. In addition, they have access to analytical views and functions without having to switch between systems. These include KPIs, a visual filter where filter values are enriched by measures and visualizations, and a combined table/chart view with drill-in capabilities (hybrid view). Users can interact with the chart to dig deep into the data. The visualization enables them to identify spikes, deviations and abnormalities more quickly, and to take appropriate action right away.

Usage

Use the analytical list page if:

  • Users need to extract key information to understand the current situation or identify a root cause. The way the data is presented is crucial for giving them the insights they need to take the right action.
  • Users need a way to analyze data step by step from different perspectives, investigate a root cause through drilldown, and act on transactional content within one page.
  • In addition to the filtered dataset, users need to see the impact of their filter settings in a chart (visual filter).
  • Users need to switch between integrated chart and table views (hybrid view).
  • Users need to see the impact of their action on a global key performance indicator (KPI).
  • Users need to find and act on relevant items out of a large set of items by searching, filtering, sorting, grouping, drilling down, and slicing and dicing.

Do not use the analytical list page if:

  • Drilldown is rarely used, not used at all, or is only needed after navigating to another page, rather than as free or flexible drilldown within the page itself. In this case, a list report might be sufficient for your use case.
  • Users need different visualizations for the entire dataset (for example, as a table or chart), but don’t need to work with both visualizations on the same page (for example, in a reporting scenario). In this case, a list report might be sufficient.
  • Users need to find and act on relevant items from within a large set of items by searching, filtering, sorting, and grouping, without using drilldown or “slice and dice”. In this case, consider using a list report.
  • Users need to work with multiple views of the same content, for example on items that are “Open”, “In Process”, or “Completed”. They want to be able to switch views using tabs, segmented buttons, or a select control. In this case, consider using a list report.
  • Users need to see or edit a single item with all its details. Use the object page floorplan instead.
  • Users need to find a specific item, and the item or an identifying data point is known to the user (such as a barcode). In this case, use the initial page floorplan.
  • Users need to work through a comparably small set of items, one by one. In this case, use the worklist floorplan.
  • Users have a trivial use case that does require the use of a chart, but that do not involve identifying a root cause, analyzing data, or drilldown. Instead, use a list report with a table/chart switch.

Structure

This section describes the basic layout of the analytical list page, as well as the different layout variants.

Basic Layout

The shell bar is above the analytical list page. The page itself uses the dynamic page layout and has two main areas:

All elements are described in more detail in the Components section below.

Analytical list page - Basic layout
Analytical list page - Basic layout

Layout Variants

The layout of the analytical list page is quite flexible. The display is determined by the header and content views chosen by the user.

The analytical list page always offers all of the above layout options. You cannot restrict the available views at app level. For example, you can’t offer only a visual filter (with no option to show the standard filter bar). Likewise, you can’t show only a table view (with no option to display the hybrid or chart views).

Responsiveness

The analytical list page is responsive, except for the global KPIs. Apps with one or more global KPIs are not supported on screen sizes smaller than size L (desktop).

Likewise, the analytical list page is only fully supported in the flexible column layout if no global KPIs are used. If you use the analytical list page with global KPIs within the flexible column layout, the column should have at least size M.

Size S

On size S, the analytical list page supports both the chart-only and table-only views. The table-only view supports only the responsive table. If no responsive table is available, the chart-only view is displayed without a view switch toggle.

Global KPIs are not supported on size S.

Size M

On size M, the analytical list page supports both the chart-only and table-only views. You can use a responsive table or analytical table in the table-only view.

Chart-only view - Size S
Chart-only view - Size S
Table-only view - Size S
Table-only view - Size S
Chart-only view - Size M
Chart-only view - Size M
Table-only view - Size M
Table-only view - Size M

Component Overview

Analytical List Page Header

The page header can be expanded and collapsed on click. Different content is shown in the expanded and collapsed states. For more information about the basic behavior of the header, see Dynamic Page Header.

Collapsed Header

The collapsed page header contains the following elements:

Collapsed analytical list page header
Collapsed analytical list page header

Expanded Header

The expanded page header contains the following elements:

Expanded analytical list page header showing the visual filter bar
Expanded analytical list page header showing the visual filter bar
Expanded analytical page header showing compact filters in the filter bar
Expanded analytical page header showing compact filters in the filter bar

Analytical List Page Content Area

The analytical list page content area contains the following elements:

  • View switch (   |    |    )
  • Hybrid view: View with one chart, chart toolbar, one table, and a table toolbar
Hybrid view
Hybrid view
Chart-only view
Chart-only view
Table-only view
Table-only view

Analytical List Page Header

Variant Management

Variant management in the analytical list page allows users to save a page variant whenever there are changes in the underlying structures of the filter/content area. Variant management for the page is handled by the standard SAPUI5 page variant management.

Currently, the page variant captures the following states across the page:

  • Filter view switch state: Visual filter bar or filter bar
  • Filter set: The filters set in the visual filter bar and filter bar
  • Filter selections: Selected values in the visual filter bar and filter bar
  • Content view switch state: hybrid view  , chart-only view  , or table-only view  
  • Chart and table configurations, such as measures and dimensions used, sort order, or grouping
  • Chart drill-down state, based on the current selections (slice & dice)
  • Table entry switch state: Hide (  ) or Show  (  ) selected table records

Global KPI Tags and Cards

Use a global KPI tag (= global key performance indicator tag) if you would like to show a global KPI related to the task in hand. The global KPI value changes only if an action is executed on the transactional content. For example, the user needs to know the effect of releasing sales orders on a related global KPI, or the effect of posting an accounting document on certain financial global KPIs.

You can display a maximum of three global KPIs. Clicking a global KPI tag opens a global KPI card that displays more details on the KPI.

The global KPI tags and corresponding KPI cards are independent of the filter area. This means that global KPI tags do not react to filters set in the visual filter bar and filter bar.

A global KPI tag has four components:

  • Global KPI label
  • Global KPI value
  • Global KPI color and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator
4 KPI tags including KPI labels, KPI values, KPI color, and criticality indicator

Global KPI Label

The global KPI label is an abbreviation of the complete global KPI title. It is formed using the first three letters of the first three words of the global KPI title.
Examples: AMR for Actual Monthly Revenue, TAR for Total Advertising Revenue, or LPC for Landing Page Conversation Rates

If there is only one word in the global KPI title, the first three letters of the word are displayed. Example: CON for Contracts

If the global KPI title has only two words, only the first letters of these two words are displayed. Examples: AC for Actual Costs, SG for Sales Growth

KPI label abbreviation: AC
KPI label abbreviation: AC

Global KPI Value

The global KPI value is displayed using a semantic color and a scaling factor. Relative values are shown with a percentage sign and one decimal place.
Examples: 0.3%, 82.9%
Absolute values are shown without decimal places, a currency, or a unit of measure.
Examples: 2K, 75K, 30M, 14B

KPI values: 157.3M and 0.3%
KPI values: 157.3M and 0.3%

Global KPI Color and Criticality Indicator

The color of the global KPI value is based on the thresholds defined for the particular KPI in the annotation. The global KPI tag also uses a line to indicate the criticality. The color of the line is the same as that of the global KPI value.

KPI color and criticality indicator
KPI color and criticality indicator

Global KPI Card

Clicking the KPI tag opens the analytical card, which displays more information about the current value of the global KPI, the global KPI target, the deviation from the target, and how the global KPI has evolved over time.

Global KPI card
Global KPI card

Filter Area: Visual Filter Bar and Filter Bar

The filter area allows users to filter the result set, which feeds the main content area. The analytical list page comes with two filter types: compact filters in the filter bar, and the visual filter bar. Always design both visual filters and compact filters (filter bar) for your app. We recommend setting the visual filter bar as the default, but this is no longer mandatory. You can opt to use the (compact) filter bar as the default if your app has the required parameter values, if your main use case involves date ranges, or if your users often need to combine multiple filters in different ways.

Currently, any visual filter configured in the visual filter bar must always be displayed as a compact filter in the filter bar as well. By contrast, a filter configured as a compact filter in the filter bar may or may not be configured for display as a visual filter. This means that it’s possible to have a smaller set of visual filters and a larger set of compact filters.

Both filter types supports two different modes: live update and manual update. Use the live update mode for both filter types as the default whenever possible. Apply the same mode to both filter types: the visual filter bar and the filter bar. For example, if you use the live update mode in the visual filter bar, you should also use the live update mode for the filter bar.

Visual filter bar
Visual filter bar
Filter bar
Filter bar

Filter Type Switch

Users can toggle between the compact filters    (filter bar) and    (visual filter bar) in the upper-right area of the page header. The filter type switch is a core feature of the analytical list page and is mandatory. The switch is only displayed when the page header is expanded. Once the header collapses, it disappears.

Filter type switch
Filter type switch

Carrying Forward Filter Selections

Visual Filter to Compact Filter

Any values selected in the visual filters are always carried forward to the corresponding compact filters.

Compact Filter to Visual Filter

Filter dimensions that are part of a visual filter are synced to the visual filter. If the dimension value(s) chosen in the compact filter are part of a visual filter, they are shown as selected chart dimensions in the visual filter (single or multiple selections).

Filter dimensions that are not part of the visual filter, parameter values, and interval-based dimensions are applied to the filter query and the content is refreshed.

To show complex conditions, click the link for the number of selected items at the top of the visual filter.

Visual Filter Bar

The visual filter bar combines measures or item counts with filter values. The visual filter bar becomes more powerful if you match measures to the filter dimension instead of just item counts. Use the visual filter bar if you would like to give the user a condensed overview of the data in the dataset. Chart visualization increases the joy of use, and enables users to spot relevant data more quickly.

Chart Types in the Visual Filter Bar

Currently, the visual filter bar supports three interactive chart types:

These interactive charts are also referred to as visual filters.

Interactive Donut Chart

The interactive donut chart in the visual filter bar is used for non-time-related data (for example, categories) and displays only the top or bottom two values. The rest are aggregated into the “Other” section.

Interactive donut chart
Interactive donut chart
Interactive donut chart with semantic colors
Interactive donut chart with semantic colors

Interactive Line Chart

The interactive line chart is used exclusively for displaying time series data, and can show a maximum of six data points. Always show the first or last six data points (for example, last six days, last six months, first six days, and so on).

Interactive line chart
Interactive line chart
Interactive line chart with semantic colors
Interactive line chart with semantic colors

Interactive Bar Chart

The interactive bar chart can be used for non-time-related data (for example, categories) and has a maximum of three filter values. These filter values show the top three or bottom three entries.

Interactive bar chart
Interactive bar chart
Interactive bar chart with semantic colors
Interactive bar chart with semantic colors

Using Interactive Charts

The interactive charts come with the following features and rules:

  • Minimum number of interactive charts: Show at least three visual filters and try to use different chart types.
  • Filter title:
    • Use the following naming convention for the filter title, using title case:
      [Measure Name] by [Dimension Name] | [Scale Factor] [Unit of Measure].
      Examples:
      Project Costs by Project | K EUR
      Sales Volume by Commodity | M PC
    • For an item count, use the following naming convention for the filter title, using title case:
      Number of [Dimension] | [Scale Factor] [Unit of Measure].
      Examples:
      Number of Products | PC
      Number of Contracts by Month
    • Note that for some use cases, it might be appropriate to replace “Number” with a different expression. Bear in mind that the space for displaying the filter title is limited. If the measure and/or dimension names are longer than the predefined space, the text will be truncated.
Filter title with truncation
Filter title with truncation
Filter title without truncation
Filter title without truncation
  • Filter-to-filter dependencies: Ideally, the filters depend on each other. By selecting one or several chart data points, users can perform a quick analysis of the dataset.
    Examples: Supplier with the lowest supplier performance this year, product with the highest sales volume in March in the EMEA region
  • Adding additional filter values: All charts have a maximum number of filter values that can be displayed within the chart itself. More filter values can be selected using the value help or the select popover.
  • Selected values: Any data point or segment that is selected in the visual filter’s interactive charts will remain selected even when the user changes the measure, chart type, or sort order in any of the charts. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.
  • Semantic colouring: All interactive charts support semantic colors to indicate the criticality of filter values.
  • How to design a visual filter: To design a visual filter, choose a meaningful measure out of the dataset and match it to a filter dimension. If no measures or no meaningful measures are available, use an item count instead. Have a look at the visual filter bar article for more information.

Filter Dialog

In the filter dialog, the user can switch between the visual filter bar filters and the filter bar filters using a toggle button. The standard filter dialog is explained in the Filter Bar article. The part for the visual filter is further explained below.

Filter Dialog for Visual Filters

The filter dialog is launched by clicking the Adapt Filters ([number of applied filters]) link in the page header area. In the filter dialog for visual filters, the user can choose which filter fields are shown in the visual filter bar, and make the following changes:

  • Add visual filters
  • Delete visual filters
  • Hide visual filters in the visual filter bar
  • Search for visual filters
  • Change the sort order  of each visual filter
  • Change the chart type   of each visual filter
  • Switch to other measures  in the visual filter display

Analytical List Page Content Area

The content area shows different visualizations of the selected data. In the hybrid view, users can interact with both the chart and table visualizations at the same time. In addition, the analytical list page supports a chart-only view and a table-only view. The analytical list page always comes with all three views. Offering additional views or even tabs would add too much complexity, and is neither supported nor recommended.

Check out the following sections for more details on the hybrid view, chart-only view, and table-only view.

Hybrid View

The hybrid view uses both chart and table visualizations at the same time. It enables users to analyze data step by step from different perspectives. Users can interact with both the chart and the table, and drill down through either the smart chart or table entries to investigate a root cause. They can also act directly on transactional content. In the initial view of the chart, visualize the most important aspects of the whole dataset in the chart.

Example: The view shows all the suppliers the user is responsible for, organized by value. By drilling down the material to the plant with the highest/lowest volume, the user can see if materials need to be shifted from one plant to another. The corresponding transactional data is shown in an analytical table below the chart, which might also offer an action for shifting the material.

Analytical list page - Hybrid view
Analytical list page - Hybrid view

Chart-Only View

The chart-only view enables users to analyze data step by step from different perspectives, and to investigate a root cause through drilldown, without direct access to transactional content. The smart chart control provides the chart visualization in the chart-only and hybrid views: it is used to display the dataset as a chart. The smart chart drilldown functionality provides a convenient way to analyze the dataset. In addition, the smart chart offers detailed information on the chart data and a breadcrumb that shows the drilldown path. Ensure that you show the most important aspects of the dataset in the chart.

This mode is perfect for applications with analytical data that can easily be represented visually using charts, but doesn’t need to be linked to the transactional dataset.

Analytical list page - Chart-only view
Analytical list page - Chart-only view

Table-Only View

The table view provides access to transactional content. The user can act on single or multiple objects, and navigate to the object details or to other applications.

Depending on the use case, you can opt to use either the analytical table or the responsive table.

Snapping or scrolling is not available for desktop-focused tables, such as the analytical table. Scrolling is only available when the responsive table is used. The table entries are loaded using lazy loading.

Users can apply filters at table level using the Settings button ( ). For analytical tables, filtering is also available at column level. For more information, see Analytical Table (ALV) – Filter.

Analytical list page - Table-only view
Analytical list page - Table-only view

Behavior and Interaction

Open and View the Global KPI Card via the Global KPI Tag

Clicking a KPI tag opens the KPI card, which shows the details for the particular KPI.

Select Filters in the Visual Filter

Unlike micro charts, the visual filter charts are interactive. In live search mode, selecting a filter value triggers data filtering in the content area. Both single and multiple selection are supported.

To select a filter value, the user clicks on a value in the chart. The filter can be removed by either clicking on the value help link, or by clicking on the same value in the chart again. The user can select more filter values using the value help or select popover.

Any data point that is selected in a chart still remains selected when the user selects a data point in another chart. Filter values react on each other. If a selected record falls outside the top/bottom three records being displayed, the number of selected records is shown in parentheses at the top right of the chart.

Switch Views: Hybrid, Chart-Only, and Table-Only

Users can switch between the hybrid view, chart-only view, and table-only view.

If the user selects values and then switches the view, the selection remains intact. See the table below for more details.

Switch Description
Hybrid view to table view Table selection remains intact
Hybrid view to chart view Chart selection remains intact
Chart view to hybrid view Chart selection remains intact; corresponding table selections are displayed
Table view to hybrid view Table selection remains intact

Show/Hide Table Entries in Hybrid View and Table View

The table toolbar for the analytical list page offers a Show   and Hide    table entries feature as a toggle switch in the hybrid and table views:

  • If the Show icon is active, the table shows all items. These include highlighted entries (where values are selected in the chart) and non-highlighted entries.
  • If the Hide icon is active, the table shows only items that are selected in the chart.

For example, if the user selects SAP’s Sales Revenue for 2012 as Customer in the chart, all records relating to SAP’s Sales Revenue for 2012 are highlighted (but not selected) in the table. Note that the record is still highlighted even if Customer not displayed as a column in the table. If the table rows are grouped, the entire grouping is highlighted, even if only one record within the grouped set is affected by the chart selection. All values that are not selected in the chart are “hidden” and are not shown in this table mode.

Guidelines

Show the filter dimension with one measure in the visual filter, not multiple measures

Filter dimensions in the compact filters (filter bar) have exactly one representation in the visual filter bar.
Do not show the same filter dimension with two or more different measures at the same time in the visual filter bar. The example shows the filter Dimension Year with two different measures Revenue and Quantity. Showing the filter dimensionYear twice is not in sync with the compact filter, where it is shown only once. Furthermore, matching between the two filter types will not work.

If the use case requires you to show a dimension with different measures, consider using an overview page instead.

Do
For each dimension display exactly one representation in the visual filter bar.
For each dimension display exactly one representation in the visual filter bar.
Don't
Do not use the same filter dimension with different measures
Do not use the same filter dimension with different measures

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Overview Page – Stack Card | Quick View Card

Take Action on the Overview Page 

As well as giving users access to content from multiple applications using different visualizations, the overview page can also let users take immediate action. This is supported by a special interaction pattern with a set of closely-integrated card types: the stack card, object stream, and quick view card. These three card types are only ever used together, and navigation between them has been optimized to best support user needs.

A stack card is a collection of quick view cards, which provide a footer area with actions. These quick view cards are displayed in the object stream (overlay). The advantage of using stack cards is that users don’t have to leave the overview page, and therefore don’t lost their focus.

Overview page – Navigation overview of stack card, object stream, and quick view card
Overview page – Navigation overview of stack card, object stream, and quick view card

Explanation:

  1. Stack card (left side): Opens the parent application (such as a list report with all approvals).
  2. Stack card (right side): Opens the object stream.
  3. Heading of the object stream: A link that navigates to the parent application (such as a list report with all approvals).
  4. Single quick view cards within the object stream: Offer navigation to the object details (such as an object page with the selected approval), as well as actions.
  5. Placeholder card: The last card a one-click area and navigates directly to the parent application (such as a list report with all approvals).

Stack Card

A stack card is a special collection of single-object quick view cards, based on a topic or action. Unlike the other card types, the top-level stack cards don’t show any application content. Instead, they act as an entry point to an object stream containing multiple cards.

Stack cards have the following components:

  • The title is the top element and is always required. It is used as the heading for the detail view, and comprises 1-2 lines of text.
  • The subtitle is optional. You can use it to qualify the title, offer an explanation, or show a status. The purpose of the subtitle is explain the content of the stack in one line, so its usage depends on the context.
  • The stack content count indicates the number of cards in the stack (object stream). The object stream can contain up to 20 cards. Below the number of cards in the stack, you see the total number of items returned for the annotated view (for example, “20 of 42”).

The top-level stack card contains two clickable navigation areas:

  • The left area and View All link navigate to the parent application, where the user can see all the objects returned for the annotated view (42 in the example above). The placeholder card and heading inside the object stream have the same navigation target.
  • The right area opens the object stream, which contains a scrollable collection of cards presented in an overlay format. The user can browse individual cards, with the option to view, inspect, or take action.

Object Stream

Overview page – Object stream
Overview page – Object stream

Clicking the right-hand area of the stack card opens the object stream. The object stream appears on top of the overview page as a modeless overlay, and serves as a layer for showing quick view cards with actions. The overlay has heading on the top left, and a Close button on the right. The heading is the same as the stack card title, and links to the full result set in the parent application (same target as the left-side navigation on the stack card and the navigation from the placeholder card). Clicking outside the overlay area also closes the object stream.

The object stream can have up to 20 cards (maximum), which all get their content from the same parent application. By default, the cards are ordered chronologically, with the most recent items first. However, app developers can define the best object stream sorting option for their own needs and content. If the number of cards exceeds the available space in the overlay window, an arrow icon appears on the right for scrolling. Mobile device users can swipe to see more cards. If the object stream is empty, the stack link is not active and the overlay cannot be opened. The stack count number displays 0. If only one item is returned, the object stream contains just a single card.

The header area of the quick view cards in the object stream navigates to the detail view for that specific object in the parent application. The footer area of the quick view cards can also offer actions.

Object Stream – Scroll Arrows

Scroll arrows only appear on desktop devices. If all the cards in the object stream fit on the screen, the arrows are not visible. If the number of cards exceeds the available space, an arrow icon appears on the right when the user mouses over the object stream overlay. Mousing over the arrow button area scrolls the cards across the screen from right to left. As soon as the first card on the left moves out of the visible overlay area, a second arrow appears on the left for moving in the other direction. Once the last card is in full view, the arrow on the right disappears.

Placeholder Card

If the number of items returned for the annotated view exceeds the maximum 20 cards allowed in the object stream, a placeholder card is added automatically at the end of the stream (as card 21). The entire placeholder card is navigable, and takes the user to the full result set in the parent application.

The text on the placeholder card is composed as follows:

See all [total] [items] in the“[app name]” app.

Where:

  • The values for [total] and [app name] are supplied by the system.
  • The term for [items] must be rephrased by the app team to reflect the type of item or business object. For more information, see Mandatory Adjustments.

Examples:

  • See all 42 items awaiting approval in the “Approve Leave Requests” app.
  • See all 42 purchase orders awaiting approval in the “Approve Purchase Orders” app.
Overview page – Placeholder card
Overview page – Placeholder card

Object Stream – Tablet Version

On tablet devices, the modeless overlay expands horizontally. It also expands vertically to accommodate the card height and allow space for the title and Close button. The user can swipe through cards and perform micro actions. Swiping a card into view moves the entire object stream. Tapping the Close button closes the stack card and returns the user to the main overview page. There are no scroll arrows on touch devices.

Tablet in horizontal orientation
Tablet in horizontal orientation
Tablet in portrait orientation
Tablet in portrait orientation

Object Stream – Phone Version

On smartphones, the overview page layout collapses to a single column in both portrait and landscape modes. Tapping the right-hand navigation area of a stack card opens the object stream on top of the overview page in a new full screen window.

The object stream expands horizontally and vertically to accommodate the card height, and to allow space for the title and Close button. The user can swipe through the cards and perform micro actions. Swiping a card moves the entire object stream. Since the cards are too large to fit on the screen in landscape mode, users can also scroll vertically to see the full card content. Tapping the Close button closes the stack card and returns the user to the main overview page. There are no scroll arrows on touch devices.

Phone in horizontal orientation
Phone in horizontal orientation
Phone in portrait orientation
Phone in portrait orientation

Quick View Card

Quick view cards are single-object cards. They display the basic details for one object, such as the name, address, and phone numbers for a contact. This card type is only available within the object stream; you can’t place quick view cards on the overview page itself. The quick view card inherits the SAPUI5 element sap.m.QuickView.

The header area contains a static text, such as Purchase Order, and an optional dynamic text, such as 1005-3345. In this way, each card header can show different content. Clicking on the header area of the card opens the detailed view of the object in the corresponding parent app. If the content area of a card cannot display all the information, a scrollbar appears on the right. Only the footer area of the quick view card can provide actions. The footer bar is a specific feature of the card anatomy for quick view cards.

Card anatomy of the quick view card
Card anatomy of the quick view card
Quick view card for a contact
Quick view card for a contact
Quick view card for a product
Quick view card for a product
Quick view card for a purchase order
Quick view card for a purchase order

Actions on Cards

Only quick view cards within an object stream can have actions in the footer area. The overflow toolbar manages how the actions are displayed. All actions are right-aligned. Any actions that don’t fit into the available space move into the overflow action sheet, represented by the ellipsis ( ). A maximum of six actions are allowed in the footer area. Only offer actions the user really needs in the specific context.

Footer area with additional actions in the overflow
Footer area with additional actions in the overflow

There are two possible types of action: navigation and function import. Any combination of navigation and function import actions is allowed. Error or confirmation messages are displayed directly on the overview page. Always overwrite the predefined default text for errors in a message box: Formulate your message in plain language (without code), describe the issue precisely, and suggest a constructive solution.

Type: Navigation

Navigation is “intent-based” and takes the user to a different SAP Fiori app that specializes in executing an action. Navigation actions are always multi-click (meaning they can be repeated over and over). The destination screen opens in the same browser window, and any error or task confirmation messages are handled by the supporting application, not the overview page.

Type: Function Import

Function imports are custom OData service operations for actions. These actions are handled by the overview page, rather than by another SAP Fiori app. The interaction depends on whether or not the action requires user input:

  • If the action requires additional user input, the input parameters are handled directly on the overview screen without further navigation. A dialog appears on top of the card, allowing the user to enter data or make a selection. An example of additional input might be the rejection reason for a “Reject” action.
  • If the action has no input parameters, the action request is sent immediately. Once the action has been completed, the card disappears from the object stream.

Action on Phone

If an action on a card requires an input dialog box, use a full screen dialog on smartphones.

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

  • No links
 

Wizard Floorplan

The wizard floorplan allows users to complete a long or unfamiliar task by dividing it into sections and guiding the user through it. The wizard consists of the walkthrough screen, where the form sections are revealed in sequence after each one is completed, and the summary page, where the form is displayed in read-only mode for assessment and final submission. You can use the wizard both in full-screen and flexible column layout.

Wizard - Steps
Wizard - Steps

Usage

When to Use the Wizard Floorplan

The wizard aims to help users by dividing large or complex tasks into segments. Use the wizard if the user has to accomplish a long task (such as filling out a long questionnaire) or a task that is unfamiliar to the user. The flow should consist of a minimum of 3 and a maximum of 8 steps.

The wizard can be used for both create and edit scenarios. If your application contains both, consider using the same means for both scenarios – either the wizard, or another create/edit screen (edit flow or object page).

When Not to Use the Wizard Floorplan

If you have a task with only 2 steps or a format that the user is familiar with (for example, it is part of their daily routine), do not use the wizard as it only adds unnecessary clicks to the process. If your process needs more than 8 steps, the wizard will not support those steps as the process is too long and can be confusing for the user. In this case, you should consider restructuring the task.

Consider if the classic edit screens (edit flow or object page) are more suitable for your use case.

Structure

The wizard has two main screens: the walkthrough screen, where users complete a segmented task, and the summary screen, where they can check the data they are about to submit. Wizard content is not restricted to forms; other content such as a value help dialog can also be used.

Walkthrough Screen

The walkthrough screen is the wizard’s main screen. After triggering the wizard, the user is taken to the walkthrough screen, which shows only the first section of the form. Once the user has filled out all the necessary fields, a Step XY button appears, which allows the user to move to the next step. When the user has completed the last section of the wizard, the button label changes to Review and the user is taken to the summary screen.

The wizard footer is used to display the Cancel button, which exits the wizard. If the user has modified any fields, a data loss message also prompts the user. You can also use a Save as Draft function in the footer if the form is long and the user may have to save it before finishing it.

Walkthrough screen in full screen layout
Walkthrough screen in full screen layout
  1. Header toolbar with title
  2. Progress bar
  3. Completed step
  4. Current step
  5. Upcoming step
  6. Step title (for example: 3. Payment)
  7. Next step

The title in the header toolbar above the wizard remains unchanged during all the wizard steps. Align this title left, and make it clear to users where they are and what they are doing (for example, New Sales Order or Sales Order 4815162342). Especially in edit scenarios, it is vital to give users a unique identifier for the object they are changing.

The progress bar/anchor navigation below the header highlights the completed steps and the current step. It also allows the user to navigate between steps by clicking on any of the circles.

The progress bar exhibits a grouping behavior if there are multiple steps and the screen width is reduced. This behavior is the same on smartphone, tablet, and desktop screens.

Wizard tooltip – Grouped steps
Wizard tooltip – Grouped steps

In certain use cases, the steps in the wizard depend on the choices the user makes along the way. The user’s entries for one step determine the follow-on steps (“branching”). In these cases, a dotted line shows that more steps will follow.

Wizard branching
Wizard branching

Since the wizard is a lightweight way to create or edit objects, applications can use a quick confirmation popup instead of the heavier data loss message, when the user selects Cancel.

If the wizard is used to create an object, the text on the popup should read Discard this <object>?’ (see image below). If the wizard is used to edit an object, use the text Discard changes? In both cases, the action on the popup should be Discard.

Structure – Quick confirmation
Structure – Quick confirmation

Summary Screen

On the summary screen, users can check all their entries before the object is actually created or changed. The summary screen has no progress bar or anchor navigation, and shows the form sections for all the steps in read-only mode.

To allow the user to go back and edit entries, provide an Edit button either in the footer toolbar or in each form section:

  • If you place the Edit button is placed in the footer toolbar, the user is taken back to the first section of the wizard.
  • If you offer Edit buttons for each section of the form, the user jumps to that particular step.

Alternatively, users can click the Back button to go to the previous step. From there, they can scroll through the sections.

The main action on the summary page should be the final action after completing the wizard, such as Create or Save.

Wizard summary page example
Wizard summary page example

Layout

Thanks to the wizard’s responsive behavior, it can be used both in a full-screen layout as well as in the flexible column layout. Since there are no subsequent pages after the wizard, it will always occupy the rightmost column – there is no navigation from the wizard to a next page. After completion (or cancellation), the user will always come back to the page the wizard was triggered from.

Wizard in full screen layout
Wizard in full screen layout
Wizard in flexible column layout (2/3)
Wizard in flexible column layout (2/3)
Wizard in flexible column layout (1/3)
Wizard in flexible column layout (1/3)

Types

There are two types of wizard – “standard” and “branching” – which differ in terms of the functions they offer.

Use the standard type if:

  • The total number of steps is known in advance.
  • The number of steps does not change during usage.
  • There is linear progression from one step to the next.

Use the branching type if:

  • The total number of steps is not known.
  • The number of steps may change during usage.
  • There is non-linear progression. In other words, the user’s choice during one step determines which step comes next.

In both types of wizard you can let users skip steps. Label these steps as “Optional”.

Styles

In addition to the functional types, there are also different visual styles.

Numbers and Icons

By default, both versions use a number inside a circle to represent each step. You can also use icons instead of numbers to help users identify the steps. If you plan to use icons, be sure to assign icons to all the steps (not just to some). The icons you choose should be unique and not look too similar. This will ensure that users do not get individual steps confused with one another.

Steps represented by numbers
Steps represented by numbers
Steps represented by icons
Steps represented by icons

Labels

To help users identify the individual steps even more easily, app developers can assign labels. As with icons, labels must be applied to all or none of the steps.

If there is enough horizontal space, all labels are shown.

All labels are visible
All labels are visible

As the width is reduced, the steps outside the currently selected one do not show labels.

Labels - reduced width
Labels - reduced width

Finally, the unselected and outermost steps are stacked on top of each other to further accommodate the reduced space.

Stacked labels
Stacked labels

Users can still easily access steps inside a stack. A single click opens a list of steps inside this stack.

Labels - stacked popover
Labels - stacked popover

Optional Steps

For optional steps, add an (Optional) label. Place the (Optional) label below the content label for the step.

Do
Correct: '(Optional)' label below the content label for the step
Correct: '(Optional)' label below the content label for the step

Explanatory Texts

Ideally, the headlines and field labels for each step should provide enough information for users to complete their tasks. However, if additional explanations are needed, applications can put a simple text underneath a step’s headline – either via the sap.m.Text or the sap.m.FormattedText control.

Responsiveness

The wizard supports all common screen sizes and is available in cozy and compact modes, as well as high-contrast black (HCB).

Wizard – Size S
Wizard – Size S
Wizard – Size M
Wizard – Size M
Wizard – Size L
Wizard – Size L

Behavior and Interaction

Navigation, Error- and Draft Handling

Navigation

Users can trigger the wizard app from another application, from the launchpad, or from a notification. The wizard always starts at the initial walkthrough page and ends after the user has clicked the main action (such as Create or Submit) on the summary screen. The Step XY button is only used on the walkthrough page. This button loads the next section of the form. On the summary page, the user can use either the Edit button in the footer or the “back” arrow to return to the wizard and edit any of the fields.

Modifying dependent steps: If there are steps that depend on each other (for example, a selection in step 2 triggers an additional step) and the user modifies the parent step, the dependent step is changed or deleted. Beforehand, the user is warned that data will be lost.

Error Handling

Error handling is done via message popovers. When the user clicks the Step XY button, the form sections and fields should be validated. When the user clicks the Create button on the summary page, the entire form is validated. If there are any errors, the user stays on the walkthrough page, the message popover is displayed, and clicking any of the error items scrolls the page to the relevant field, which is also highlighted in red.

Section validation differs from validation of the entire form. In the first case, correct data entry in the form fields is validated. In the second case, the entire form is checked for backend system errors (such as duplicated data entry).

Draft Handling

If a draft already exists when a user enters the wizard, show a dialog to inform the user. For more information, please visit the draft handling article.

Dynamic Page

Header

Even though the wizard floorplan consumes the dynamic page, the wizard’s header does not allow snapping. Due to the nature of the wizard floorplan, the wizard brings its own step-based header that is already very space-saving.

Footer Toolbar

Contrary to the header, the footer toolbar of the wizard floorplan conforms to the standard layout and uses the sap.m.bar control.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

  • Wizard (SAPUI5 API reference)
  • Wizard (SAPUI5 samples)
  • Form (SAPUI5 API reference)
  • Form (SAPUI5 samples)

Initial Page Floorplan

The initial page floorplan allows the user to navigate to a single object to view or edit it. The interaction point on the screen is a single input field that relies on assisted input to direct the user to the object in as few steps as possible (using features such as value help and live search). If you need to display more than one object, use the list report floorplan instead.

Usage

Use the initial page floorplan if the user only needs to work on one object at a time. In this case, the list report floorplan would include a redundant step for viewing a list of items found by the search.

A typical use case for the initial page floorplan is a barcode scanning app, where each new scan leads to an object with input fields. Once the user has submitted the entries, the screen is shown in read-only mode. The cursor returns to the input field, ready for the user to scan the next object.

Do not use the initial screen floorplan if the search is supposed to return a list of objects. This is the scenario for the list report floorplan.

It is also advisable to use only one input field for finding the object. If you need to include detail views, or allow the user to switch between views, offer these features when displaying the object itself.

Structure

The initial page is a full screen floorplan based on the object page, with a dynamic header and a content area.

Structure of the initial screen
Structure of the initial screen

Header area

The header area can contain the same content as in the object page, except for the title, which is replaced by an input field. The header initially displays in collapsed mode, but expands when the user performs a search or finds an object using the value help dialog.

Content area

The content area is used to display the object. It can contain sections, subsections, forms, and tables.

Responsiveness

The initial page features a single interaction point for the user: the input field near the top of the screen. Place the input field inside the header section. Configure the width to fit the width of the longest text (allowing some additional space for other languages), but do not make it significantly wider.  When you set the maximum width of the input field, also consider the width available on mobile devices.

The field should never be as wide as the screen (except for on smartphone screens).

Initial page floorplan - Size S
Initial page floorplan - Size S
Initial page floorplan - Size M
Initial page floorplan - Size M
Initial page floorplan - Size L
Initial page floorplan - Size L

Flows and Interaction

Initial Screen with Live Search

The input field serves as the single starting point for finding the object. The assisted input uses the live search feature (search-as-you-type) to speed up the search. The live search feature can show anything from one attribute to an entire table of values. It is possible to show a message such as “Enter ID manually or scan barcode” using the message page to guide the user.

Live Search
Live Search

Initial Screen with Value Help Dialog

If multiple hits are possible for the same search terms, you may need to implement a value help dialog. This dialog lets the user narrow down the list of items based on more specific criteria. When the user selects an object from the list, the dialog closes and the object is displayed in the content area (no additional navigation is required).

Behavior of the Search Field

The dynamic header content is initially collapsed and cannot be expanded. The input field is located in the header area of the object page and should be on focus if no other additional actions are provided. This allows the user to enter the search term directly without clicking into the field. Only consider using this if there are no other elements that could be blocked by it, such as the on-screen keyboard on touch devices.

Once the user finds an object, the dynamic header expands and displays the relevant information for the object.

The dynamic header collapses on scrolling or by user interaction, but the input field for performing a different search is always visible.

If the user enters new search terms in the input field, the focus moves away from the field and the app triggers a new search. If no results are found, the initial view of the page is shown – with a collapsed header and a corresponding message in the content area.

If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If the user deletes the search term and moves the focus away from the input field (or clicks ENTER), the screen becomes blank again.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.
If a search is executed, but no documents are found, the screen becomes blank again, and a corresponding message is displayed.

Resources

Want to dive deeper? Follow the links below to find out more about related controls, the SAPUI5 implementation, and the visual design.

Elements and Controls

Implementation

Overview Page – Table Card

Table cards are a type of object group card, and display a set of items in a table format. Table cards use the responsive SAPUI5 control sap.m.Table. For general information on cards, see Cards.

Navigation

Clicking the header area of a table card opens the parent application, which uses the same filter as the annotated card, and shows a list of all the objects returned for the result set. The counter indicates how many items are showing on the card in relation to the total number of relevant items: [Items on Card] of [Total Items], as in 3 of 10.

Clicking a list item (row) on the card opens the detail view for that specific object in the same parent application. You can also use the smart link control in table cards. However, only use smart links if they add genuine value in your use case. Otherwise, you risk confusing users by offering too many navigation targets.

All three columns can show either a data field or a data point. Data points can use semantic colors.

Because the header area and line items are based on the same result set, they must always link to the same target application. You can also integrate a view switch inside the content area of a card.

Size of a Table Card

The fixed card layout defines a specific size. The height can vary depending on the number of table cells. Tables are limited to a maximum of 3 columns and 3 rows, with a maximum of 3 lines of text per row. To see the full result set, the user needs to navigate to the parent app.

In the resizable card layout, users can see more content/insights by resizing the cards.

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

  • No links

Overview Page – List Card

Lists with Different Flavors

List cards display a set of items or links in a list format. The overview page supports three types of list card: list card, bar chart list card, and link list card.  You can also icons and images. For general information on cards, see Cards.

List Card

List cards are a type of object group card, and display a set of items in a vertical list. List cards use the sap.m.List container in the content area.

Navigation

Clicking the header area of a list card opens the parent application, which uses the same filter as the annotated card, and shows a list of all the objects returned for the result set. The counter indicates how many items are showing on the card in relation to the total number of relevant items: [Items on Card] of [Total Items], as in 5 of 40.

Clicking a list item (row) on the card opens the detail view for that specific item in the same parent application. Only aggregate list items in exceptional cases.

Because the header area and line items are based on the same result set, they must always link to the same target application. You can also integrate a view switch inside the content area of a card.

List Item Types

Two different list item types are available:

  • The standard list item always shows 3 pieces of information and inherits the properties of the SAPUI5 control sap.m.StandardListItem.
    You can also show an (optional) icon or image on the left.
  • The extended list item can show up to 6 pieces of information and inherits the properties of the SAPUI5 control sap.m.ObjectListItem.

In addition, you can display the data on the right-hand side in semantic colors.

You can only use one type of list item on any given card.

Standard list item
Standard list item
Extended list item
Extended list item

Size of a List Card

The fixed card layout defines a specific size. The height of list cards can vary, depending on the number of text fields. Show no more than five standard list items and no more than three extended list items on one card. To see the full result set, the user needs to navigate to the parent app.

In the resizable card layout, users can see more content/insights by resizing the cards.

Bar Chart List Card

Bar chart list cards are a type of object group card, and display a set of items in a vertical list. Unlike list cards, bar chart list cards are embedded in another component: the comparison micro chart. This allows you to display negative values and use semantic colors.

Navigation

Clicking the header area of a list card opens the parent application, which uses the same filter as the annotated card, and shows a list of all the objects returned for the result set. The counter indicates how many items are showing on the card in relation to the total number of relevant items: [Items on Card] of [Total Items], as in 5 of 35.

Clicking a list item (row) on the card opens the detail view for that specific item in the same parent application. Only aggregate list items in exceptional cases.

Because the header area and line items are based on the same result set, they must always link to the same target application. You can also integrate a view switch inside the content area of a card.

Bar Chart List Item Types

Three different list item types are available:

  • The standard list item always shows 3 pieces of information.
  • The condensed list item can show up to 4 pieces of information.
  • The extended list item can show up to 6 pieces of information.

You can only use one type of list item on any given card.

Standard list item
Standard list item
Condensed list item
Condensed list item
Extended list item
Extended list item

Size of a Bar Chart List Card

The fixed card layout defines a specific size. The height can vary, depending on the number of text fields. Show no more than five standard/condensed list items and no more than three extended list items on one card. To see the full result set, the user needs to navigate to the parent app.

In the resizable card layout, users can see more content/insights by resizing the cards.

Link List Card

Link list cards allow you to display a collection of links or images that can reference both internal and external targets. Links and images are handled as two separate variants: list and image.

Variant Type: List

The list variant shows a collection of links that can navigate to a target or open a popover with additional information. You can also show an optional subtitle below the link with a description or additional information. The link text and subtitle are each limited to one line.

You can display an icon or image before each link. For example, you might want to include app icons for set of links to recently-used apps, or images for a list of recent contacts. Use icons and images consistently:

  • If you opt to use icons, show an icon before every link.
  • If you include images, use a placeholder for images that are not available.

Variant Type: Image

Overview page - Link list card (image variant)
Overview page - Link list card (image variant)

The image variant uses the sap.m.Carousel control to display one or more images. If the carousel contains only one image, the Previous and Next icons and the paging indicator are not visible. The link and an optional subtitle are displayed above the carousel. The link text and subtitle are each limited to one line.

Size of a Link List Card

In the fixed card layout, link list cards with the variant type “list” can have a maximum of 6 links. There is no maximum limit for cards with the variant type “image”.

In the resizable card layout, there is no maximum limit. Users can see more links by resizing the cards.

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

Overview Page – Resizable Card Layout

Unlimited Possibilities for Designing Cards 

The resizable card layout is a layout for the overview page. It enables users to define a personalized card layout by changing not only the position of a card, but also its size, and thus how the card content is presented.

This layout gives users much greater flexibility in tailoring the overview page to their specific business needs. And it allows app teams to offer varying levels of detail for any given card. Whenever the size of a card changes, the content adapts automatically to show the most relevant information in the available space.

At a Glance

  • Flexible card dimensions (grid-based)
  • More flexibility to define individual card layouts
  • Responsive and adaptive card content
  • Applying progressive disclosure principles
Overview page – Resizable card layout
Overview page – Resizable card layout

Unlike the fixed card layout, cards in the resizable card layout do not have fixed dimensions. In addition, the number of columns in the resizable layout is no longer limited (also see letterboxing).

The cards are positioned on an underlying grid, making it possible to arrange and resize cards in a flexible, yet guided manner. You can offer different views of the card content for different dimensions of the various card types. For example, you can show more items, zoom in or out, or change the granularity of a dataset.

The resizable card layout does not replace the fixed card layout.

Usage

Use the resizable card layout if:

  • You want to give users the flexibility to rearrange and adapt their overview page as they need.
  • You want to help users focus by applying progressive disclosure principles.
  • You want to make use of different card sizes.
  • You want to show more content (for example, more items or an additional level of detail)

Do not use the resizable card layout if:

  • Your card content doesn’t react properly to a change in size. Use the fixed card layout instead.
  • You are not able to invest UX and development resources for creating and prioritizing additional content. Use the fixed card layout instead.
  • You want to use the resizing functionality on mobile devices. Resizing and rearranging cards is currently not possible on mobile devices.

Flexible Card Sizes

Grid

Cards can be increased and decreased vertically in rows of 1 rem and horizontally in steps of 20 rem (minimum width). These dimensions facilitate both a high degree of flexibility and measured guidance. The card content responds immediately to a change in size.

The grid provides a guided resizing and repositioning experience. This ensures that the cards are always correctly aligned on the overview page as the user moves or resizes them.

Resizable card layout – Grid
Resizable card layout – Grid

Card Anatomy

card is made up of a mandatory header and a content area.

Mini Header

The smallest representation of the card is the header. The card can be collapsed to only its header height. We call this the “mini header” card height.

Mini Content

The “mini content” height of a card is defined by the next suitable size for a card when it is resized. The minimum height for the card content depends on the card type, and must be as high as the smallest representation of the content. In a list card, for example, first list item needs to fit in.

To avoid states with cut or unsubstantial content, there are no resizing steps between mini header and mini content.

Card anatomy
Card anatomy
Minimum heights for a card in the resizable card layout
Minimum heights for a card in the resizable card layout
Example of Card Sizes
Example of Card Sizes

Dealing with White Space

If no additional content is available, the user still can make the card bigger, resulting in white space.

Resizing Parameters

The card content depends on the available space, which in turn determines how many items are shown, how each item is displayed, and the level of detail (granularity). How the content is resized depends on the type of card. For example, table cards can have fewer columns when the size of the card is decreased. By contrast, the content shown for each item on list cards remains the same.

Space

When a card is resized, the content adapts responsively. 

Example: List card
When the size of a card is reduced, texts might be truncated or wrapped. When the card size is increased again, the text is shown in full and previously wrapped text moves back onto one line. The line item content itself is unchanged.

Resizing for a list card
Resizing for a list card

Items

When you increase the size of a list or table card, more line items are shown.

Resizing for a table card
Resizing for a table card

Granularity

If you increase the size of an analytical card, more data points are revealed. In this example, the donut chart on the larger card shows more individual product categories.

Resizing for an analytical card (donut chart)
Resizing for an analytical card (donut chart)

Rearranging Cards – Behavior

When a user long presses on a card instead of just clicking, the mouse cursor changes to indicate that the card can be dragged. Cards can be dragged from both the header and content areas. 

Cards always strive towards the top of the page (uplift mode). When you move or stretch cards horizontally, the existing cards you displace are pushed downwards.

Resizing cards / rearranging cards using drag and drop
Resizing cards / rearranging cards using drag and drop

Getting Started

UX and DEV Investment Required

To enable users to benefit fully from the resizable card functionality, you need to define additional content that is revealed progressively as the card size grows. You will need to develop a content strategy to prioritize the chunks of information for each card type, and hence the order in which these additional chunks of information appear. For instance, the content strategy for a table card should answer the following questions:

  • What should be the initial size of the card in the layout?
  • Which table columns do you want to show in the card with the minimum width?
  • Which table columns do you want to add when the card width is increased by one, two, three, … horizontal steps?

Keep in mind that the overview page is an SAP Fiori element.

Developer Hint
If you want to enable the resizable card layout for an existing overview page with the fixed card layout, consider the investment you’ll need to make in additional and meaningful content.

Set Initial Card Sizes

Set an initial order and initial dimensions for each card as a default. Do this for the mini header, the mini content, and for bigger card sizes. In cards with content, define the exact number of items included in the content area.

Consider the best practices for designing an overview page and the principles for resizing the cards. It’s important to provide a meaningful starting point for users. If users change the card size or order, the initial app default can always be restored using the Manage Cards setting in the user actions menu.

Important: Do not provide only mini headers in the initial layout for your overview page.

Block Card Resizing

App teams can block the resize feature for each card individually. In this case, the cards can’t be resized by users and the resize icon is not shown on the card. Use this feature judiciously and only if you really have to. The majority of cards should be resizable. Otherwise, users are likely to be confused, and might feel driven to check the resizing behavior for each card.

Alternative approach

If you want to make use of the different card sizes, but don’t want to allow resizing for users at all, you can block the resizing function for all cards (independently of the initial card size). This allows you to use different card sizes and the same (limited) personalization features as in the fixed card layout. Because none of the cards are resizable, users won’t be confused.

Letterboxing

The resizable card layout uses different letterboxing behavior than the fixed card layout: to handle different card sizes more flexibly, the resizable card layout does not have a fixed number of columns. Cards take up the the available screen real estate and adapt accordingly (also see responsiveness). As a result, larger screens can be almost completely filled.

Responsiveness

Information
Resizing is not supported on mobile devices. However, users can resize cards freely in smaller windows on a desktop device.

UI controls inside the cards react responsively when cards are resized. On mouse-release, additional content might be loaded, or content might be removed to reflect the new dimensions.

The number of grid columns in the layout is dependent on the width of the browser window. The breakpoints are defined as follows:

Width of Browser Window Number of Card Columns Displayed
Less than 656 px 1 column
656 – 975 px 2 columns
976 – 1359 px 3 columns
1360 – 1679 px 4 columns
1680 – 1999 px 5 columns
More than 2000 px 6 columns or more

There is no limitation to the number of columns. You can also design for bigger screens.

Resizable card layout – Size L
Resizable card layout – Size L
Resizable card layout – Size M
Resizable card layout – Size M
Resizable card layout – Size S
Resizable card layout – Size S

Resources

Want to dive deeper? Follow the links below to find out more about the SAP Fiori overview page.

Elements and Controls

Implementation

  • No links