Custom Control for SAP Characteristics (PLM Classifications)


Information about Characteristics in PLM

Characteristics are used very often in Plant Maintenance. Characteristics in SAP can have multiple properties which require different UI5 controls in the UI. Usually, developers end up writing conditions in the view xml to show/hide different control types.

Below is where you can find all the different options available to configure Characteristic. As you would see, a Characteristic can be a String of 30 characteristics or less, a Numeric value, a Date or a Currency value. Rendering of such control in UI5 can be complex sometimes and also need a lot of conditions in the view to hide/show fields. This also impacts on the UI performance and can also slow down rendering sometimes.

Maintain Characteristic – SAP Help Portal

Custom Control which handles Characteristics Rendering

Below GitHub repository contains a custom control for Characteristic Input in the folder customControl of the project. This control considers all the different properties of a Characteristic and renders the control based on that.

GitHub Repository for Characteristic Input:

https://github.com/singhc00/UI5-SAP-CharacteristicInput

Repository has a ReadMe.md file which explains about Characteristics in details and also explains how the control works. It also lists down list of Properties/Aggregations that this control has similar to UI5 demokit.

GitHub project – Source Code & Examples

Project has a Fiori Application which shows how the control works with different examples or options that a user can play with. You can clone the Git repository to get the code for the Custom Control and also run it in Web IDE to play around with it.

Different Characteristic Options available in the custom control:

Different Characteristic controls in a table to try out.

Conclusion

I did have requirement around building multiple Apps which uses Characteristic which led me to writing a custom control as this would be reusable in the future. You should not include this custom control in each application but have this as a separate application which can be used across different applications. This will help you to apply updates at just one place in the future.

I hope this control will help someone who is working on Characteristics output in UI5 which can get complex sometimes. Please feel free to provide feedback or if you would like more features added to this control. Alternatively, you could create a Pull Request to suggest updates to the Custom Control.