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.
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.