Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
christianjsosa
Participant
3,684
SAP Smart Business apps provide quick KPI analysis and drilldown capabilities[1]. Saving a given configuration can be achieved by creating a new tile in the Fiori Launchpad. For certain use cases, this could lead to the creation of too many tiles, which in turn might become confusing for the end user.

This could be solved by using Variant Management[2] for filter configurations. Since this is not provided by default, the following article will present a way of extending Smart Business apps to support Variant Management.

Requirement


The customer needs to analyse the available options for saving user-defined filters for Smart Business apps. In our example, the chosen app was "PO and Scheduling Agreement Value" (AppID F1378[3]). SAP recommends the usage of tiles for saving configurations, but it is required to evaulate an alternative approach through Variant Management.

Solution


This being an extension requirement, the SAP Guided Answers[4] are a good entry point for finding the available extensibility options.


SAP Guided Answers for Smart Business extensibility


Upon checking the available resources, it becomes clear that none of them address the issue of Variant Management. Extending the frontend code itself is then the only option.

Since the app in question is a "SAP Smart Business generic drill down app", two key infos are needed to create an extension:

  • The Technical Name of the SAPUI5 Application (it is a generic technical app for all Smart Business apps);

  • and the EvaluationId (this provides the specifics of this particular Smart Business app). Both can be found on the Fiori Apps Library[3]



The Fiori Apps Library provides technical configurations for extensibility



Create an extension project for the App SBRT_APPSS1


An extension project can then be created using the development environment of our choice. Here is a possible procedure with the WebIDE Personal Edition:


Extending a standard app with WebIDE Personal Edition



Set up the run configurations


By providing the previously determined EvaluationId, the newly extended Smart Business app renders the specific app "PO and Scheduling Agreement Value".


Parameter EvaluationId determines which specific Smart Business app to render


The app should now be up and running in our development environment.


Initially working application, still without support for Variant Management


After a quick code walkthrough, two important pieces of information are established:

  • The target UI5 Control for Variant Management is a SmartFilterBar within the fragment SmartFilter.fragment.xml

  • The responsible Controller for the fragment is MainApp.controller.js


According to the SAPUI5 API Reference, two requirements must be met for a SmartFilterBar to support Variant Management[5]:

  • The Parameter useToolbar must be set to true

  • A Persistency Key must be provided


These two parameters can be directly configured through view replacement. However this would put the forward compatibility at risk, so the two parameters will be programatically set through a controller extension.

Extend the MainApp Controller and set the two SmartFilterBar parameters


The following code assumes an ID for the SmartFilterBar 'ssbSmartFilter', which is as of version 1.78 valid for the SmartFilterBar. It is important to use the lifecycle method onInit() for the Variant Management to work as expected.
sap.ui.controller("ssuite.smartbusiness.runtime.s1.SmartBusinessExtension.controller.MainAppCustom", {
onInit: function() {
this.byId("ssbSmartFilter").setUseToolbar(true);
this.byId("ssbSmartFilter").setPersistencyKey("PKeyCJ");
}
});

Variant Management should now be available:


Variant Management is now available for the SmartFilterBar



Side-note: Testing Variant Management in the WebIDE


The app could actually be deployed already, since no further coding steps are needed. Testing the Variant Management in the WebIDE requires, however, an additional configuration. The following routes need to be set up in the neo-app.json file:
{
...
"routes": [
{
...
},
{
"path": "/sap/bc/lrep/changes",
"target": {
"type": "destination",
"name": "[INSERT_DESTINATION_NAME]",
"entryPath": "/sap/bc/lrep/changes"
},
"description": "S4H_changes"
},
{
"path": "/sap/bc/lrep/variants",
"target": {
"type": "destination",
"name": "[INSERT_DESTINATION_NAME]",
"entryPath": "/sap/bc/lrep/variants"
},
"description": "S4H_variants"
},
{
"path": "/sap/bc/lrep/actions/getcsrftoken/",
"target": {
"type": "destination",
"name": "[INSERT_DESTINATION_NAME]",
"entryPath": "/sap/bc/lrep/actions/getcsrftoken/"
},
"description": "S4H_action"
},
{
...
}
],
...
}

Variant Management can now be tested in the WebIDE. In particular, drilldown capabilities are apparently not affected by the new variants.

Takeaways


After testing this approach for several Smart Business apps with no apparent side-effects, we come to the following conclusions:

  • Variant Management can be activated for Smart Business apps with minimal development effort.

  • Default capabilities of Smart Business apps do not seem to be affected.

  • "Save as Tile" option remains unaffected.


Discussion


End user tests have so far been positive for this request and it does provide an added value for our customer. The fact that Variant Management is not available by default remains, at the very least, peculiar. This approach might have hidden risks or maybe Smart Business apps were specifically conceived to only be persisted through tiles and not variants (see relevant SAP Note 3077290).

Resources


The following resources were useful for this analysis:

References


[1] SAP Smart Business Framework: https://experience.sap.com/fiori-design-web/smart-business-drilldown-app/

[2] Variant Management: https://experience.sap.com/fiori-design-web/variant-management/

[3] AppId F1378 - PO and Scheduling Agreement Value: https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps('F1378')/S18OP

[4] SAP Guided Answers: https://ga.support.sap.com/dtp/viewer/#/tree/1910/actions/24709:34441:24712

[5] Smart Filter Bar: https://sapui5.hana.ondemand.com/#/api/sap.ui.comp.smartfilterBar.SmartFilterBar%23controlProperties
3 Comments
Labels in this area