NextLytics Blog

Implementing SAP Analytics Cloud interactions with no-code

Written by Rafael | Nov 28, 2024 9:19:07 AM

In the original SAC stories (Classic Experience), there were a variety of no-code functions that enabled interactive dashboards. Since the consolidation of stories and applications, many use cases can be implemented with script or continue to be implemented with no-code functions. But what are the differences? When do the no-code functions reach their limits and for whom are they interesting?

Overview of no-code functions

Let's first take a look at the no-code functions that are generally available. We will always refer to functions that enable the user to interact. We will not cover the setting of default values for input variables, dynamic text and similar functions.

  • Story filter
  • Input control

o Filter values

o Dimensions

o Key figures

  • Chart interactions
  • Linked widgets
  • URL / story jump 

In principle, most functions can also be implemented with script commands, which are triggered by an onClick event on various widgets such as buttons, checkbox groups, dropdown fields or others.

Story filters – Incomparable convenience

Story filters are not tied to a widget, but filter a data source on all pages of the story. It is also possible to link several data sources via linked dimensions. They are used in a similar way to input controls, although story filters are less dynamic and are permanently placed in the filter bar.

Story filter in the SAP Analytics Cloud

In principle, all filter functions can also be recreated with a custom script. However, story filters have some special features, so a custom script would not offer the same look and feel and it would be quite time-consuming to build. Especially for stories with many data sources and pages, story filters shine with their ease of use and configuration. 

Input controls – The secret all-rounder

For many users, it can be hard to spot the difference between input controls and story filters. They look similar, refer to a datasource and support linked dimensions. However, they can be placed anywhere, designed to look different and, in Stories 2.0, a script event can be placed directly on the filter. The biggest technical difference, however, is that the dependencies on other widgets can be freely configured. At the beginning of the configuration, a datasource is specified as the source and initially, input controls affect all widgets with the same datasource. However, multiple datasources can be linked via linked dimension, provided that there are matching characteristics. The key feature is the configuration menu and the diagram view, which make it possible to define relationships between input controls and charts in detail.

Input control only affects a part of the charts

Implementing this out-of-the-box function with your own script is not impossible, but the effort for development, maintenance and above all adaptation when inserting new charts would be hardly justifiable. It is therefore worthwhile to use the no-code standard for input controls in Stories 2.0 as well. Nevertheless, the specific ScriptEvent for the filter allows the implementation of more complex interactions and logics. For example, when certain characteristic values are selected, the display can be customised, additional charts can be displayed or data can be updated in the background. 

Input controls - More than just setting a filter value

Hidden in the chart settings under dimensions or key figures, input controls can also be configured. With two to three clicks, you have created an interactive option to show and hide various facts in a chart.

Dimension input control in a table

Of course, this can also be done with a dropdown and a custom script. There is no clear recommendation here, because whether the no-code solution is sufficient depends on the circumstances. The input control can be reused for multiple charts and tables and can also be combined with a fixed dimension or key figure breakdown. However, it does have some limitations.

  • No multiple selection possible
  • Sequence is fixed
  • Cumbersome configuration if the various display settings are needed

As soon as multiple selections are needed, especially with a user-defined order, a custom script is necessary. Sometimes even different display settings for dimensions can be a reason to turn your back on the no-code approach.

Dashboarding with SAP Analytics Cloud -
Download the Whitepaper here! 

 

Chart interactions based on the motto ‘the more the merrier’

In principle, each widget in the  SAP Analytics Cloud has its own actions that can be accessed via the context menu at runtime. At this point, we will only refer to widgets with a data reference such as tables and charts, since these have the most interesting actions. For example, users can change the sorting, display only the top or flop N hits or create rankings. Likewise, filters can be set directly on the widget or in the case of hierarchies, a drilldown or drillup can be performed.

Menu for configuring chart actions

Chart interactions make widgets dynamic and give the user many options for adapting the story to their information needs at runtime. At the same time, the multitude of options can also overwhelm the user and depending on the data situation not every option makes sense. Fortunately, when creating the story, you can define for each widget individually which actions it should offer. Depending on the story design, the user may still experience problems. If the chart and table design is too minimalist, the user may no longer be able to see which actions they are performing. Page filters, input controls and chart filters may contradict each other, resulting in no data being displayed.

In principle, all actions can also be controlled via self-created scripts. Depending on the circumstances, it makes sense to dispense with the no-code functions and to design the function yourself using the BIAL script. For example, very specific actions could be implemented, such as switching between certain hierarchy levels or a combination of filter and characteristic changes to simulate a drilldown.

Linked Widgets – One for all and all for one

The name says it all. Widgets can be linked to each other and an action performed on one widget applies to all linked widgets, if possible. The best-known example of this is filters that are set directly on a chart. Chart A contains sales by country and Chart B contains sales quantities. If Chart A is filtered for a specific product, this filter also automatically applies to Chart B.

Define dependencies between charts with linked widgets

For most scenarios, the no-code function is perfectly adequate. Of course, scripts can be used to map special scenarios that take into account different dependencies and then react individually to each chart. However, this can also be overwhelming for the user if it is no longer possible to understand why several charts are adapting differently.

URL an story links can do more than you might think

There is more to URL and story links than you might think. URL links only offer the basic hyperlink action to visit a different website. Story links on the other hand, can contain filter settings without writing a single line of code. Its not only possible to transfer story filters, but also filters placed by the user directly on the chart. In addition, it is also possible to determine which page of a story should be navigated to.

Hyperlink configuration of a chart widget with dimension transfer

For special scenarios or if URL variables need to be passed, a custom script can of course be used to close the gap to the no-code approach. URL variables are not only useful for external pages, but can also be used in SAC stories to execute certain settings in the onInitialisation event.

No-code in self-service

Due to the higher accessibility and improved user guidance in many front-end tools, part of the development has shifted from IT to the business department in recent years. In the so-called self-service, smaller developments can be easily carried out by the business users. Thanks to the practical no-code functions, no in-depth scripting knowledge is required to create dynamic and interactive stories. The advantages of no-code functions for a self-service approach are:

  • Many functions out-of-the-box
  • Consistent look and feel of the functions
  • Easy integration without BIAL knowledge
  • Easy to customise and understand

Conclusion – The best of both worlds

Are the no-code functions also useful for developers outside of self-service? The answer to this question is a clear ‘yes’. The no-code functions provide a solid foundation and require little maintenance. In addition, there is no reason not to use some of the no-code functions and to implement certain requirements using script. Depending on the scenario, it may also make sense to extend the no-code function with script. A lot of the no-code funktions can be accessed via script, the input controls even have a own script event, so the possibilities are almost limitless.

Functionality

No-code

Script

Combined

Storyfilter

  • Filters data source on all pages
  • Linked dimensions
  • Easy to use and configure
  • Possible but complex and not the same look and feel
  • No explicit script events possible for story filters

Input control

  • Filters data sources on one page
  • Linked dimensions
  • Linked analysis
  • Possible but complex and not the same look and feel
  • Script event can execute additional logic

Dimension- and keyfigure control

  • Easy to use and configure
  • Changes the chart and table drilldown
  • Few or no restrictions
  • Complex scenarios can be implemented
  • Script event does not work

Chart interactions

  • Easy to use and configure
  • Out-of-the-box interactivity
  • Complex scenarios can be implemented
  • Cannot be combined directly, but can be used at the same time

URL and story links

  • Easy to use and configure
  • Filter transfer possible
  • Complex scenarios can be implemented
  • URL parameters can be integrated freely
  • Cannot be combined directly, but can be used at the same time


Do you have questions about SAP Analytics Cloud or other topics? Are you trying to build up the necessary expertise in your department or do you need support with a specific issue? Simply get in touch with us - we look forward to exchanging ideas with you!