cancel
Showing results for 
Search instead for 
Did you mean: 

Load Datasource in a script using the Filter Panel

Former Member
0 Kudos

Hello,

I am in the process of building a dashboard with more than 15/20 charts/crosstabs (one data source per chart/crosstab) spread across multiple tabs (tabstrip). In other words, I have 3-5 charts in each tab with around 4 tabs total. All the data sources must be filtered using only one Filter Panel. The dashboard performance is very bad when I make all the data sources as "Target Data Sources" in the filter panel.

Ideally I want to load the data sources (using the selections made in the filter panel) specific to a tab only when it is opened/clicked. This way I load only 3-5 data sources at any instant rather than only all the 15-20 data sources. I tried using <DataSource>.setFilter and loadDataSource() option but I couldn't succeed.

Another questions - Is there way load a data source with multiple filter dimensions. <DataSource>.setFilter function lets you filter only one dimension at a time.

Any help in this matter is appreciated.

Thanks,

BK

Accepted Solutions (0)

Answers (1)

Answers (1)

IngoH
Active Contributor
0 Kudos

Hello Bahnu,

on the data sources, did you activate the option to load them via script as part of the date source properties ?

Are those data sources going back to identical Bex queries and are just different views or are they different BEx queries ?

regards

Ingo Hilgefort, SAP

Former Member
0 Kudos

Hello Ingo,

Thanks for your reply.

The answer to your question is both Yes and No. Data Sources on one tab are going to back to identical (same) Bex query and data sources in another tab are doing back to different set identical Bex queries.

I activated the option to load the data source via script but when I do that the data source loads with initial view ignoring the selections made in the filter panel.

Let me give you more details about my requirement.

My HR dashboard contains 4 tabs - Homepage, Talent Acquisition, Demographics, Employee Retention. See below for details:

Homepage: This tab contains around 9 crosstabs (ex: Time to Fill a position, Cost per Hire, Total of FTE/PTEs, Retention Rate and so on.) All these crosstabs go back to same master Bex Query (but different DS aliases).

Demographics: This tab contains 6 charts (ex: Headcount by grade, age, rating, region etc.) and all these charts are going back to same Demographics Bex Queries (but different DS aliases). Additional requirement is to drilldown on the charts to see a popup window with the details of employees matching the filter criteria.

and so on for other two tabs.

Data in all the crosstabs and charts in various tabs must be controlled by only one filter panel (based on another Bex Query). I achieved this by putting all these datasources as targets to the filter panel but the performance is so bad that this solution is no longer a viable option.

FYI - Using setFilter option I can pass only one dimension value as filter to the datasource.

I tried to load them via script but as I mentioned above the filtered criteria is ignored and default initial view is loaded instead.

Let me know if you need further details.

Regards,

Bhanu

IngoH
Active Contributor
0 Kudos

Hello Bhanu,

the data source will load with the initial view and then you need to apply the filter.

for items that are going back to the same BEx Query you should consider to build query views in BW already and point Design Studio to those query views instead of creating multiple data sources and views in Design Studio.

In terms of filtering, try to load the source via script and then to filter it.

Ingo

Former Member
0 Kudos

Hello Ingo,

We created query views and used them in the dashboard and performance is still bad. I defined the query views as data source the same way as I would define a Bex query. I am not aware if there is an alternate way to point the Design Studio to those query views.

I used the option to load the data sources via script and then filter it by using setFilter option but by doing that I can filter only dimension (single value). My requirement is to load the data source using the multiple dimensions (values selected in the filter panel). Moreover, my filter panel has hierarchies.

Bhanu

IngoH
Active Contributor
0 Kudos

Hello Bhanu,

lets clarify a couple of items:

- When you execute the BEx queries in RSRT, what is the timing you see ?

- what is the timing when you run them using Design Studio ?

- are the Query Views all based on different BEx queries ?

- Do you need all BEx Query Views at the same time ?

On the filtering part:

- which component to you use to filter ? There are components that do allow multi-select.

and you mentioned that your filter panel has hierarchies - is that the intention or did you not want hierarchies, thats not clear

regards

Ingo Hilgefort, SAP

Former Member
0 Kudos

Hello Ingo,

Answers to questions:

When I execute a single query in RSRT it takes about a second or two. And it takes about 3 or so seconds when I run the same (single) query in Design Studio. Problem arises when I execute multiple (similar) queries in Design Studio. It takes more than 2 minutes when I run say 7-8 queries in Design Studio.

Query views in a single tab are based on the same Bex query and query views in another tab are based on another Bex query.

I need all the Bex query views in single tab to run at the same time.

I am using the "Filter Panel" component to filter the data sources (This filter panel has dimensions and also hierarchies as per the requirement). My entire dashboard has only one filter panel and it filters Data Sources across all the tabs. This is achieved by defining all the datasources as targets in the Data binding section of "Filter Panel" properties. However it results in very slow performance.

To improve the performance, I want to load the datasources in other tabs, only when they are selected, with all the filter conditions selected in the above filter panel. I am not sure how to achieve this functionality by wrting script.

Please let me know if you need further information.

Regards,

Bhanu

IngoH
Active Contributor
0 Kudos

Hi Bhanu,

you mentioned that each tab uses several query views but based on one BEx Query - correct ?

The Filter also needs a "source" and from what you describe it sounds you have at least one BEx query per tab as source - correct ?

if that is the case I would also expect a filter per tab as the different queries might have a different set of characteristics and key figures.

You mentioned that you do need the query views per tab at the same time - correct ?

if that is the case you would need to load all the query views for the tab

just to make sure I have everything correct:

- the app has multiple tabs

- each tab has one BEx query as source, but with multiple query views

- query views are defined in BW already

- each tab also should have a filtering option

- the query views per tab all need to be "visible" at the same time

regards

Ingo

Former Member
0 Kudos

Hello Ingo,

Answer to your questions:

you mentioned that each tab uses several query views but based on one BEx Query - correct ?

<Bhanu> Yes. You are correct.

The Filter also needs a "source" and from what you describe it sounds you have at least one BEx query per tab as source - correct ?

<Bhanu> Correct. The source for filter a different Bex Query only with characteristics required for

if that is the case I would also expect a filter per tab as the different queries might have a different set of characteristics and key figures.

<Bhanu> All the queries have some common characteristics and we want to filter all the queries based on only those characteristics. To be exact we have characteristics like Cost Center Hierarchy, Country (Hierarchy), Function Code etc which are common to all the queries. So that is the main reason why we want only one  filter for entire dashboard rather than having one filter panel per tab. Also I have additional requirement to drill down on the charts to open another popup window with the details (based on filtered criteria plus the drilldown selection in the chart).

You mentioned that you do need the query views per tab at the same time - correct ?

if that is the case you would need to load all the query views for the tab

<Bhanu> You are correct. I want to load query views per tab but they should be filtered based on the selection criteria in the "Filter Panel". 

Regards,
Bhanu

IngoH
Active Contributor
0 Kudos

ok,

so are all the steps that need to happen clear ?

what is the issue here ? performance or something else ?

ingo

Former Member
0 Kudos

Hello Ingo,

I can load all the queries using only one filter panel but the performance is very bad.

I want to load the data sources (using the selections made in the single filter panel) specific to a tab only when it is opened/clicked. In other words, I don't want to define the queries (Data Sources) in other tabs as "Targets" in the Filter panel. They (queries in other tabs) must be set to "true" in "Load in script" in the property of Data source and must be loaded via script) only when the other tab is clicked. And it should load with selections (filters) made in the filter panel on the home page.

Regards,

Bhanu

IngoH
Active Contributor
0 Kudos

Hello Bhanu,

- so we have one filter

- we have multiple data sources, all data source configured to load in script

- you have a tabstrip with a "onSelect" property that you can use to trigger the "load" of data sources based on the selected tab.

so whats missing ?

Ingo

Former Member
0 Kudos

Ingo,

I want to load the data sources (via script) in other tabs with all the filters selected in the filter panel only when they are selected.

Load data source funtion (via script) loads the only initial view which I don't want and same goes with SetFilter() function which loads the datasource with only one dimension value.

I cannot find an option to load the datasrouce in othertabs based on filters selected in the filter panel.

Bhanu

jmsrpp
Advisor
Advisor
0 Kudos

We have determined that applying filters to a deferred load data source is not currently supported.  Solution Management for Design Studio has agreed to add it to the backlog as a valuable enhancement to performance and scalability of complex applications.

I have raised an Idea Place request here:

https://ideas.sap.com/ct/ct_a_view_idea.bix?c=6055F3C4-E8DA-454F-9C49-85D5A5070BCE&idea_id=B6C2A752-...

Please encourage your colleagues to vote for this idea.

Jim