This document will serve as a repository of workaround techniques implemented in SAP Design Studio since inception by various experts and this will help the beginners (and everyone) to get more idea by looking into these scenarios and solutions.
Here are the list of some interesting workaround techniques (in the order of creation date)
By using textboxes and a pie chart depict a Pie chart as Gauge. This technique can be used many dashboarding scenarios where Gauges are perfect to use than Pie chart – How To: Create a Gauge from a Pie Chart..
With combination of several Panels and Text boxes create a Bullet chart! – change the size of the bar in the chart dynamically according to your data by using setwidth() property of the panel component – Creating a bullet graph in Design Studio.
Provide better user experience by keeping few components on focus for the user – swap the other components through scripting using a global variable and visibility logics – SAP Design Studio Tips and Tricks #1: Swapping charts into focus on-demand
With the help of variables and formulas in SAP Business Explorer, create a simple “What if Analyser Application” in SAP BusinessObjects Design Studio .
Pass the value to the variable at run time from SAP BusinessObjects Design Studio, the calculations are made in SAP Business Explorer and their results are replicated in the application – What If Analysis in Design Studio
Search is a cool feature to have in an application that enables the user to type in few letters than scrolling down to the required object details.Using an input field and the getmembers() function a scripting logic is used to compare the input string with all the members and the one that are matched are passed as filter to the datasource.- Search Functionality in a Dashboard
There are a few problems with cascading filters of different levels( works fine with BW ) when we use Universe as a Datasource. As there is no direct approach to solve this problem, different datasources have been used with required global variables. Whenever a selection is made in one of the selector the values are stored in global variable and passed as a filter to other datasources, other selectors are reloaded for this filter value –How to Create Multiple Dropdown boxes (Cascading Filters) when using Universe in the backend.
Using convert functions of Design Studio a workaround as been found for calculating the date by using the number of days. This is very much useful when you need to calculate trailing and following days and pass these as date formats to your datasource.- Design Studio 1.3 Scripting Example to Convert String Number to Date
Depict the options available in Edit Initial view of the datasource in run time using scripts. This provides the user to control the data by changing the decimal values, scaling factors , zero display and negative values etc.This is achieved with buttons,text and dropdown by using scripting logic – Format Dialog for Measures as Application Template
Whenever you wish to show a Top N data there should be a means to change the N value dynamically by the end user. Usually a condition with an input variable is created and the value for this variable is passed from design Studio applicatio. To Avoid the interaction with backend whenever the user changes a top N value in the application a workaround techniques has been implemented using getmembers() and getdatacell() function –How to get “Top X” our of resultset
In cascading filters there are situations where a set of members are to be selected in the second drilldown based on the first level.Using the concept of arrays and split() logic a workaround is done to dynamically select multiple values in the listbox according to the previous selection made –Dynamic selection in Listbox – using Arrays in Design Studio 1.3
While using bookmarks in your application there are cases when you use multiple filter panels the filter values are not retained when you load the bookmarks.Using a hidden text component the values of the filters are stored in it and then saved as a bookmark along with the text component. when you actually load the bookmark the text from this hidden component is read and passed as a filter to the datasource this way the values are retained when you use bookmarks –How to restore custom filters after bookmark load
Images are most important in many applications using lot of images has certain things to consider whenever you move your application to another system you need to move along with all the images used in the application. Second consideration is the performance when using images , sometimes your application renders other components and the image slowly gets loaded. To avoid these kind of scenarios , each image is converted as URI and then used in Design Studio –Using Image URIs in SAP Design Studio
There are various scenarios where a chart is used as for drilldown to another chart. If the application has a drill-up option to show the previous chart, the selection made in the chart will still be retained. To avoid this kind of behaviour a workaround technique is implemented to release the last selected item from the previously selected chart by using two global variable and scripting logic to filter the data-Workaround to prevent automated drill down on chart due to “chart not released last selected item” in DS 1.3
Using buttons/panels you can create a menu based selector, but to make it look and feel like Accordian menu all you need to do is control the visibility and margin in the scripting of every button/panel component you use –Accordion Menu in SAP Design Studio
When more people are using a dashboard/application there are cases where we need to store the comments for each section regarding the performance of each KPI. In order to do there is no direct feature so far in Design Studio but using portable Fragment Bookmarking concept we can depict an online commentary feature that can be used by various users and save their comments for each section- Design Studio 1.4: Portable Fragment Bookmarks – Use for Commentary
When more amount of data is visualised in a chart there must be a flexibility for the user to zoom in to more granular level to look into the data this feature is called as Lasso in charts and it is achieved through getSelectedMember() function and setfilter() function of the datasource – Lasso selection in Design Studio Charts and Reverse Lasso in SAP BusinessObjects Design Studio
A dashboard can have a view that shows the list of customers who come under various segments in order to switch between these segments multiple queries with respective condition were used , this scenario can be implemented using single query that has all conditions with use of array concept and serMeasurefilterActive() function- Switch BEx Conditions on demand from SAP BusinessObjects Design Studio
When Top 10 Customers and Others has to visualised in a same chart, a work around has been used using multiple queries and variables that pass from design studio to SAP Business Explorer to show Others value in the chart – How to visualize ‘Others’ in SAP BusinessObjects Design Studio?
Are you using UNX or HANA as a datasource and wish to show trailing N months trend (with value of N changes dynamically) using arrays concept find the trailing and following N months with ease – ( the same concept can be used for BW data aswell )
I hope this document served the purpose of energising the way of thinking a solution to a particular problem and as you know the fact is there are always multiple ways of solving it. Let us look forward for more interesting workaround techniques!
Thanks to all the contributors and thanks for your time ,