Filtering Across Models: Linked Analysis Basics
In SAP Analytics Cloud, stories often contain widgets such as charts and tables, which can connect to different models. Linked analysis helps you to create dynamic interactions between said widgets and can be performed on widgets living within the same model or even across different models that contain at least one common dimension.
To learn more about filtering across models using linked analysis, take a seat and join us as we cover all the basics you need to know to start incorporating this feature into your workflow:
- Locating a Common Dimension & Establishing the Link
- Filtering Across Models: Direct and Indirect Filters
- General Performance Guidelines
- Understanding the Difference Between Filtering Across Models and Blending
When performing cross-model linked analysis, we must first set up a link between the models. In other words, together we must define the common dimensions between the models and link them in the Link Dimension dialog within a new or existing story.
For the purpose of this blog, consider the following two models: SAC_SHIPPING_INFO and SAC_ORDER_FINANCE. In the Linked Dimension dialog box below, we see SAC_SHIPPING_INFO on the left-hand side and SAC_ORDER_FINANCE on the right.
Between the two models, we see that they have the dimension, Store, in common. As a result, this will be the dimension we use to link them.
When we set up a link between dimensions, it is important to differentiate between linking them based on their ID versus their description.
Please note that, if a dimension’s description and ID are identical, we recommend that you establish the link based on the dimension’s ID.
Once we have established a link between common dimensions in our SAC_SHIPPING_INFO and SAC_ORDER_FINANCE models, any filter on SAC_SHIPPING_INFO will influence widgets such as charts and tables within SAC_ORDER_FINANCE and vice versa.
There are two categories of filters that can be applied across models. In short, the difference between the two can be described as followings:
- Direct Filter: filtering on linked dimensions across models
- Indirect Filter: filtering on unlinked dimensions across models
To explore the differences between direct and indirect filters more in-depth, read on. To skip to General Performance Guidelines and other key learnings in this blog, click here.
A direct filter takes place when you filter on a linked dimension. For example, imagine that we have nominated the common dimension, Store, from SAC_ORDER_FINANCE as a filter dimension and created a page filter on the following story:
The chart above shows Store wise Sales Revenue from our SAC_ORDER_FINANCE model. The tables, on the other hand, show Average Order Delivery Time from our SAC_SHIPPING_INFO model and Store wise Product wise Gross Margin and Sales Revenue from SAC_ORDER_FINANCE.
From here, let’s apply a filter to Cricket Supplied Store to get the following story:
Notice how the filter has been applied across the two models and is reflected in the chart and tables above. Since the filter is based on the previously linked dimension, Store, from our SAC_ORDER_FINANCE model, the filter is applied to SAC_SHIPPING_INFO.
Overlapping members between SAC_SHIPPING_INFO and SAC_ORDER_FINANCE are picked up and filters are applied on SAC_SHIPPING_INFO. Note that there are usually no performance concerns associated with direct filters, and we should always create a filter on the model with all the dimension members required for filtering.
Indirect filters refer to filters applied to unlinked dimensions. Recall that our two models, SAC_ORDER_FINANCE and SAC_SHIPPING_INFO are linked by Store, not Product. For the purpose of understanding how indirect filtering may look in real life, let’s choose the dimension, Product.
Notice how our Product dimension is only available for the SAC_ORDER_FINANCE model. Because of this, we use this dimension to create a new page filter with the filter value Lifting Gloves. You can see the results of this new filter here:
After a quick glance, you may be wondering: how did the SAC_SHIPPING_INFO-based chart get filtered if Product is not a dimension within this model? Which store delivery time is shown for the chart on the right?
Well, since SAC_SHIPPING_INFO does not have the Product dimension, all Store dimension members corresponding to Lifting Gloves are found from the SAC_ORDER_FINANCE model and passed as a store filter for the SAC_SHIPPING_INFO-based chart.
Based on SAC_ORDER_FINANCE, we see that the Lifting Gloves product is available in only two stores – Fitado and Weightloss Central. These two stores are passed as a filter for the Store wise Average Order Deliver Time table that is based on our SAC_SHIPPING_INFO model so we can see the average order delivery time for each store.
Similarly, we can choose an unlinked dimension filter from SAC_SHIPPING_INFO and apply filters on SAC_ORDER_FINANCE-based charts and tables to reap a similar process. An important thing to note, however, is that using indirect filters is usually performance intensive and can slow down the overall filtering process.
As you can see, performance when filtering across models can vary depending upon the type of filter used and the number of linked dimensions in question. To gauge how you can optimize performance when filtering across models, see the guidelines below.
- If the dimensions you wish to filter can be linked, link them such that a direct filter can be used. Next, link as many dimensions as possible to increase the speed of propagation and the application of filter values across models
- In our previous example, when we created filters for the dimension Store, then Store had to be a part of the linked dimensions and we had to find and link all common dimensions thereafter
- If the dimensions you wish to filter cannot be linked, link as few dimensions as possible to mitigate the slower performance caused by indirect filters. Then, just like before, link as few dimensions as possible so SAP Analytics Cloud can quickly find the correct combination of filter values
- In our previous example, when we created filters for the dimension Product – which was only present in our SAC_ORDER_FINANCE model and therefore couldn’t be linked to the other model – we created as few linked dimensions as possible for optimized performance
If you are a regular SAP Analytics Cloud user, you may have already used dimension linking as a step to creating blended charts and tables in your stories. In this case, to refresh your understanding of blending, consider exploring the posts in our Additional Resources section, below.
Unclear on the difference between filtering across models and blending? We’ve got you covered. In short, blending is the process of combining data from more than one model into a chart or table as a part of a story. When filtering across models, on the other hand, we don’t need to combine, but rather link dimensions.
In both cases, however, the first step is to link the common dimension(s) of one model with the other. For blending charts and tables, we need to perform additional steps. See the Builder panel below for the table in our story:
In the Builder panel, we must first click Add Linked Models (below the title of the data source) and add our SAC_SHIPPING_INFO model. This will allow us to combine our data from this model with the data from our SAC_ORDER_FINANCE model.
As you can see, a link through the dimension, Store, has already been established. As a result, our next step is to add the measure Average Delivery time from SAC_SHIPPING_INFO and Sales Revenue and Gross Margin from SAC_ORDER_FINANCE.
Notice how the blended table below shows measures from both models: