
SAPUI5 flexibility services allow you to extend your apps based on your requirements, for example, by creating your own variants or adapting the user interface at runtime.
In particular, SAPUI5 flexibility services allow you to manage smart control changes, provide personalization functions for your SAPUI5 apps, and work in multiple layers and store entities in a layered repository. This allows, for example, customers to create their own SAPUI5 entities based on the delivery of SAP without having to modify existing entities in a lower layer.
Flexibility services offer you various options for your SAPUI5 applications, for example, features that are available for the following SAPUI5 controls:
The flexibility services enable the communication between the layered repository and the browser and, in particular, the storing and retrieving of variants.
Layers
The following layers are available in the repository:
Stores SAP content, for example, SAP-delivered variants.
Stores customer-specific adaptation settings and variants. The content is stored separately for each client.
Stores customer-specific adaptation settings and variants. The content is stored separately for each user.
Authorizations
To load variants and other content changes to the client via the //SAP/BC/UI5_UI5/**/COMPONENT-CHANGES.JSON file, the SAPUI5 component name for which data is requested is provided with the request. The system checks in the SAP Fiori launchpad target mapping for the current user and whether the component has been assigned to the user.
To create, change, and delete any content in the USER layer or variants in the CUSTOMER layer, no specific authorization is required.
To adapt the SmartForm control in the CUSTOMER layer, ABAP authorization object /UIF/FLEX with authorization field /UIF/KEYU = 'X' is required.
This authorization is needed for a key user who can make changes for all users in a specific client, such as adding and hiding groups and fields in the SmartForm control.
Role SAP_UI_FLEX_KEY_USER in transaction PFCG already contains the authorization required and is delivered by default.
If you want to define your own roles, make sure you copy SAP_UI_FLEX_KEY_USER and always create them based on this role.
Setup
To enable remote access to the layered repository, you must activate the following ICF nodes in transaction SICF in the target system:
/SAP/BC/UI5_UI5
Required to load the */COMPONENT-CHANGES.JSON file and load SAPUI5 libraries from the MIME repository and SAP Fiori applications from the SAPUI5 ABAP repository.
/SAP/BC/LREP
Required to create, change, and delete variants and other content.
The /UI5/UI5_INFRA_APP/REP_DT_PUT virus scan profile must be active to use the layered repository and the SmartVariantManagement control for the handling of variants.
For more information about virus scans, refer to the SAPUI5 Security Information.
Master Language
Each file in the layered repository has a master language. The master language is the same as the logon language of the user who has created the file (for example, a variant). If the file is changed later on, you can only change the file in that language.
The logon language of a user and thus master language of new files in the repository depend on the following:
The URL parameter overrides the browser language settings.
Transports
If you work with two sytems, a test and a productive system, it is best to make your changes in the test system and then transport them to the productive system by pressing Transport and then selecting the relevant transport in the popup. To transport content from the layered repository, a valid ABAP transport with a task for the user must exist in transaction SE09. The file is then added to the transport request by the layered repository.
If ATO (Adaptation Transport Organizer) is enabled in a cloud-based environment, you do not need a transport request in the backend. Instead, the transport will be generated automatically in the background.
Logging
The logging for creating, changing, or deleting content is done using the application log in transaction SLG1 (log object /UIF/LREP).