Skip to Content
Technical Articles
Author's profile photo Vladimir Velinov

Smart Controls and OpenUI5


Lately, question of why smart controls, are not part of OpenUI5 started coming to our team on a regular basis. So, we started wondering if all smart controls need to be part of OpenUI5 or just some of them? Therefore, I’d like to reach out to you and open discussion in the SAP Community Coffee corner. But before that, let me set the context here.

How it began

Few years ago, smart controls appeared in UI5 to address the need of reusable and adaptable components, that SAP S/4HANA needed to ramp up SAP Fiori application development. Back then, OData V2 was chosen as a protocol for business applications, so smart controls adopted it. This allowed the applications to be flexible in the way how the backend data is interpreted and displayed or interacted with by the user. In addition, SAP Fiori elements (called Smart templates back then) appeared on the stage. Combined offering with smart controls allowed to optimize the cost of development of SAP Fiori applications.

Controls usage

Over time, SAP S/4HANA scenarios remained the main focus for smart controls development. Two capabilities of the smart controls made them so attractive to application developers and reduced the development efforts drastically: First, these controls provide the rendering by reusing other UI5 core controls. Second, these smart controls provide the logic to analyze OData V2 annotations and to adapt the UI part in accordance with what was defined in the backend.

The second part usually relieves the application developer from the burden to create, evolve and sustain the functionality over time. In course of time other SAP Fiori applications outside of SAP S/4HANA started making use of the smart controls.

So which controls are smart controls? They are handful, placed in the sap.ui.comp library and consist of Smart table, Smart chart, Smart filter bar, Value help dialog, Smart form, Smart field, Smart link and table/chart personalization logic. Along with some additional internal helper classes this library contains all that is referred to as smart controls.

The library is part of SAPUI5 only, that means it can be used only if the required SAP product licenses are obtained. So, if application developers have a project based on OpenUI5, then it’s a problem for them to use the smart controls. This is how we started discussing transition to the OpenUI5, so that open-source community could benefit without the need to have licenses.

Finding the way ahead

Still, we try to understand better how to organize the move to OpenUI5? For instance, does it make sense that the complete library is moved into OpenUI5? Are all parts needed? Do we need to extract some parts, that are currently part of a monolithic piece and to provide them with public APIs?

That’s why we’ve decided to reach out and ask the community. If you could give us feedback on questions like:

  • What are the typical use cases when you use smart controls?
  • Which are the controls you use most from the library?
  • Any control’s functionality in particular that you find helpful? On the other hand, perhaps there are functionalities that you don’t really need in your use cases.
  • Apart from OData, do you have other backend protocols that you use?
  • Did you have the need to use only the logic that analyzes OData annotations? For instance, because you utilized another rendering technology.

Other suggestions that you think are relevant to smart controls in OpenUI5 that are helpful for the community are welcome. We highly appreciate your individual feedback. You can provide your comments in the dedicated SAP Community Coffee corner discussion.

Thank you!


Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Volker Buzek
      Volker Buzek

      first of all, *high5* for triggering the move of the v2 smart controls into OpenUI5 - hopefully eliminating another barrier for the merger into a plain and simple „UI5“ 😁

      from a developer perspective, I‘d like to see the alignment with the v4 building blocks, so that the „smart controls“ more or less become OData v2 & v4 driven automagic rendering units. That‘s more a naming and documentation challenge than a tech one 😜 Key enabler will be sufficient documentation with many code examples to lower adoption hurdles.

      best, v.

      Author's profile photo Vladimir Velinov
      Vladimir Velinov
      Blog Post Author

      Volker Buzek thanks for the feedback. We take one step at a time. For now it's smart controls. Aligning with V4 is a priority lately that our teams spend considerable effort. And indeed we know we can be better with the documentation, that is never sufficient 😉


      Author's profile photo Mike B.
      Mike B.

      Does it make sense that the complete library is moved into OpenUI5? Are all parts needed?

      To simplify the future maintenance process, I think it would be easier to unify the codebase of SAPUI5 and OpenUI5 as much as possible. And let a developer decide which components to use. On the contrary, the more customization is done, the more expensive, bug prone and laborious will be the maintenance.

      Author's profile photo Krzysztof Murkowski
      Krzysztof Murkowski

      for my hobby projects with openui5 as frontend I'm using quite popular stack of MySQL/PHP as backend and JSON to communicate. For a lot of requirements the sap.ui.table.AnalyticalTable could be used, I suppose it's not a true smart control but it is impossible to use it without OData.
      In my opinion it will be quite interesting to have some alternative to OData, which is difficult to provide from open source stacks.


      Author's profile photo Lc Anton
      Lc Anton

      I don't think it's a big secret that the UI5 are used by companies near (close to) SAP practice (maybe they are no longer SAP customers, but internal solutions remain built on SAP standards). Therefore, components of the Variant type (selection and configuration of variants) are the hallmark of SAP and I would like to see them in OpenUI5.

      Author's profile photo Vladimir Velinov
      Vladimir Velinov
      Blog Post Author

      Thanks for the input Lc Anton. Indeed variants are integral part of SAP Business applications, but it's good to have confirmation anyways.

      Author's profile photo Lc Anton
      Lc Anton

      Vladimir, please tell me the component 'sap.ui.integration' is part of the open source product OpenUI5, but if I create an [analytical card] with a diagram, then in the source code ( I see the use (closed component 'sap.viz' from SAP UI5). Do I understand correctly that you can use a component ('sap.ui.integration') in open projects, but you cannot use an analytical card (with component 'sap.viz')?

      Author's profile photo Vladimir Velinov
      Vladimir Velinov
      Blog Post Author

      Lc Anton. the analytical card has reference to a SAPUI5 component, as the charts are mostly located in SAPUI5. In case chart can't be loaded then you see an error message and that's it. So if you can't provide the necessary SAPUI5 library at runtime then you don't get the functionality.