Fiori Completeness

Published by Tobias Hofmann on

12 min read

Definition

The Fiori Completeness indicates if Fiori apps and processes using these are fully aligned with the current Fiori UX.

The Fiori Completeness factor is for a single app and process calculated. The app itself does not need to be a Fiori app per se to have a Fiori Completeness number assigned. When a process consists of using 3 transactions (Dynpro) with a low Fiori Completeness and 1 Fiori app with a score of 100%, the process is not 100% Fiori complete.

Examples:

  • All Fiori apps in a process in an SAP system are fully aligned with the current Fiori UX. In that case, the Fiori Completeness of the system is 100%.
  • A single app fulfills 50% of the requirements. This app is 50% Fiori Complete.
  • A process involving 4 Fiori apps and one has a Fiori Completeness of 80% cannot have a Fiori Completeness of 100%.

The Fiori Completeness factor is best displayed as a completion level in 0%, 25%, 50%, 75% and 100%.

This makes it easy to capture the vital part of the information instead of discussing if 74% is as good as 75% or 99% Fiori Complete is the same as 100%. If the app is not fully aligned with the criteria for Fiori Completeness, it is not 100% Fiori Complete.

Current Fiori UX

What does “fully aligned with the current Fiori UX” mean? The answer to that question defines how the Fiori Completeness is calculated. As long as SAP is not providing a clear answer and criteria, it is up to you to define it. The answer to the question is complicated and can be a challenge. For some companies more, for some less, but it won’t be easy. Important is to understand that the definition must be ambitious. It makes no sense to look at the past or how Fiori is currently used. The definition must look at the future: what is achievable in the medium term? What is a company’s north star regarding Fiori?

There is not one true for all definition. Some criteria are common and valid for all. Other criteria depend on the customers reality. Not everyone might be able to use SAP Build Work Zone, having at as a criteria makes no senso for such companies. It makes no sense to include a product / technology that is out of scope for certain customers in a general Fiori Completeness definition. Therefore, to a certain degree it makes sense for every company to define their own criteria. Do not expect me to provide a general valid list of Fiori Complete criteria. I’ll only provide some guidance in this article. Keep an open mind: if your Fiori (or UI5) consultants state that they are already delivering 100% Fiori Complete apps, be suspicious.

Several aspects need to be taken into consideration. Depending on the individual situation and requirements, some are mandatory, others nice to have or even irrelevant. For each of these aspects, the “current” part of the definition is important. Having an app that implemented all aspects at one point in time, but was never updated, won’t stay 100% Fiori Complete forever. A natural degradation will occur over time. This is already given by the fact that the Fiori Completeness is based on the current Fiori recommendation. As this changes of the years, the Fiori Completeness of each app and process will decrease. This is not bad, this is good! It implies that a constant evaluation and investment is needed to achieve the desired level.

Criteria

What are the criteria that should be taken into consideration? Some of the criteria that can be used are Fiori Design, Fiori Launchpad, technology, API and Framework and personalization and adaptation and Fiori type.

Fiori Design

An important aspect is the Fiori Guidelines. Fiori apps must follow the guidelines. General patterns, page layouts, floorplans, UI elements are a must. Support for internationalization (i18n) and accessibility (a11y) is automatically included. While special parts might not be valid for every customer – e.g. AI and Joule Design. Current means to use:

  • Latest version of the guidelines (or not older than 2 years)
  • Horizon Fiori theme
  • Follow the Fiori patterns and look & feel.

A Fiori app that uses the old master / detail page layout instead of the “new” flexible column layout is not 100% Fiori Complete. Regarding custom controls: at best no custom controls are used. This might not be possible at all times, but apps that use custom UI controls for tasks that are available as standard controls are not compliant. Using custom icons instead of the Fiori icons should be seen as a risk as these icons must be maintained.

Fiori Launchpad

Fiori Launchpad is the central access point for Fiori apps and therefore each app must be integrated into one. Be it a local Fiori Launchpad or in the cloud. Where does not matter, as long as the app is integrated into one, including spaces, pages, catalogs, intent based navigation, semantic object, my home, etc. A Fiori app that still includes a back navigation button instead of letting the FLP handle the navigation is not 100% Fiori Complete. In case the old groups concept is still used: then all Fiori apps that are accessed through the FLP are not going to be 100% Fiori Complete.

Technology

While it is possible to develop apps that follow the Fiori guidelines without using SAP technology, to reach Fiori Completeness, a Fiori app must be developed using Fiori Elements, MDK or one of the Fiori for iOS / Android SDKs. If outside a SAP technology stack, at WebComponents is to be used, and as a last resort, Fundamental Styles. A Fiori app developed using freestyle UI5 won’t reach 100% Fiori Completeness. The best practice is to use as much Fiori Elements as possible. Such an app would need to be at least be based on Fiori Elements and use FPM for the custom parts. Another aspect is Single Sign-on (SSO). For mobile apps offline capability can be added to the list of requirements.

API and Framework

Fiori apps that read/write to a backend must do so via OData. The protocol version is OData v4. In conjunction with using Fiori Elements, the UI needs to be defined using annotations. Going a step further, the backend technology is SAP based and therefore RAP or CAP. Serving OData v4 using Olingo and Java only (no CAP) or some other technology, or an OData v2 SEGW service won’t serve for a 100% Fiori Completeness score.

Fiori type

The Fiori type criteria check for the app type (analytical, Fiori Elements or a native Fiori iOS/Android app). Criteria like extensibility, UI flexibility or if the app is draft enabled are part of it. An app that cannot be easily adjusted be functional consultants or whose backend components cannot easily be extended are not aligned with the latest Fiori recommendations. Therefore, most of the “old” Fiori apps are not any longer 100% Fiori Complete.

Personalization and adaptation

Fiori apps must support personalization and adaption. Be it UI flexibility, creation of views on page or table / filter level: a Fiori app that does not support this is not Fiori Complete. Also for more complex customizations: the app and the OData service should be extensible. This is an aspect that heavily depends on the customer. Some might only be interested in UI flexibility; some might need the option to add custom enhancements on the CDS level.

Purpose

The idea of Fiori Completeness is to find out which apps and processes need to improve regarding their overall Fiori usefulness. If all the Fiori apps on a specific SAP system are Fiori Complete is not part of this analysis. For this, there is the Fiori Readiness. A system – and the app running on it – might only be a part of a larger process. The point of view of the user is decisive. If all apps on one system fulfill the Fiori Completeness, but the user must use apps from other systems to complete the process and these are not Fiori Complete, then the from the point of view of the user, the process is not Fiori Complete. That the system might be is of no value. That’s why the Fiori Completeness is to be calculated for individual apps and processes.

Another aspect is that a high Fiori Completeness is a good indication whether a process / app is easy to maintain. Can upgrades occur effortless, is maintenance easier, are customizations non-disruptive? The more the apps in a process are aligned to the latest recommendations, the easier it is for companies to operate them. Fiori Completeness gives a good hint to which processes and apps might cause problems in the future. Processes that have a high number of apps with a low Fiori Completeness score should be treated as a risk. Why are the apps off standard? Can those apps brought easily back to standard or is maybe even a new solution necessary?

Calculation

How can the Fiori Completeness be calculated? It starts with a list of criteria, valid for all apps. Here is a sample of how this can look like.

Two processes A and B and the apps involved are analyzed. App B is used in both processes. The result shows that while only App B has Fiori Completeness of 0%, process A only achieves 50%. And while App G is at 75%, the process B achieves only 25%, as the other apps are too far away from Fiori Completeness. The analysis shows that App C, D, F and G might get to 100% Fiori Completeness with some more investment. Overall, App B will cause both processes to not reach 100% Fiori Completeness. Therefore, it makes sense to take a closer look at App B.

How to transform a process to achieve 100% Fiori Completeness? One step might be to transform the apps of each process over time to Fiori applications – increasing the Fiori Readiness. Let’s take as an example processes A – D. Each one is already at some transformation step to Fiori.

The Fiori Readiness of Process D indicates that the transformation is done. All involved apps are green, while Process A is still at the beginning of the transformation. A possible result for process D could be to reach to the conclusion that from a Fiori point of view everything is fine.

Adding the Fiori Completeness level shows that there is more work. With a 0% rating, what can be done with these apps? Can these maybe even transformed to Fiori or is it maybe better to go for a different approach, like back to standard? Sometimes, even when an app is not Fiori Ready, a transformation regarding its Fiori Completeness might already have started. This can be that the app is integrated into the launchpad, or that a Dynpro app is made mobile/tablet accessible using Personas.

Regarding Process C, even with 4 apps already being Fiori apps, their Completeness level shows a possible future problem. A Fiori app with a Completeness level of 25%? Maybe this is an older UI5 freestyle app that was never updated? Here the Fiori Completeness shows that future investment is needed to update the Fiori apps.

Looking also at Process D shows that a Fiori Readiness of 100% does not mean that the apps also have a Fiori Readiness of 100%. Maybe the Fiori app with 25% once already fulfilled completely the requirements and is now degrading? If so, why?Is it an app that can be considered obsolete and will be replaced soon?

Looking at the overall analysis of the processes the outcome might be that none of the processes is 100% Fiori Complete.

This shows clearly that even when a process is 100% Fiori Complete, it might not be 100% Fiori Complete. Being aligned with the latest Fiori features and recommendations is a continuous effort. Just having all apps on Fiori is not enough.

Benefits

The real benefit of knowing your Fiori Completeness is not to know which apps are not Fiori Complete. It lets you know which apps are only achieving a low score, like 50% or less. Or apps that are not evolving to a better score over time, but a decreasing. Apps with a lower score after each evaluation should analyzed in more detail. Why are they moving away from the current Fiori recommendations? Looing at processes, Fiori Completeness allows to identify the apps that need to improve to offer a better Fiori experience to the users working with the process. The one low scored app in a process, where all other apps are 100% Fiori Complete, can cause more negative impact than having all apps achieving 75%. A side effect of going for a high Fiori Completeness score is simple: these apps are automatically using new technology. This makes it easier to maintain, to customize or to enhance them. Maybe even without having to involve developers. This gives a good indication on how good a process can be aligned with future business requirements.

Let the world know
Categories: FioriSAP

Tobias Hofmann

Doing stuff with SAP since 1998. Open, web, UX, cloud. I am not a Basis guy, but very knowledgeable about Basis stuff, as it's the foundation of everything I do (DevOps). Performance is king, and unit tests is something I actually do. Developing HTML5 apps when HTML5 wasn't around. HCP/SCP user since 2012, NetWeaver since 2002, ABAP since 1998.

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.