SAP BusinessObjects Lumira Designer/SAP BusinessObjects Design Studio 1.6: Showing/hiding the components in the dashboard based on back end BW authorizations
Applies to:
SAP BusinessObjects Lumira Designer 2.X version, SAP BusinessObjects Design Studio
Summary:
This blog gives a detailed broader picture on how to control the component visibility in SAP BusinessObjects Design Studio and SAP BusinessObjects Lumira Designer based on user authorizations defined in the backend system (BW)
Created on: 5th April 2018.
Prerequisites:
SAP BW backend authorizations needs to be implemented.
OLAP connection between BW and SAP BusinessObjects Design Studio/SAP BusinessObjects Lumira Designer should be of SSO connection type. predefined connection mode do not work to set up authorizations in the dashboards.
Implemenation Procedure:
Step1: Objective of this to set the authorization based on specific region, in my scenario I have considered three regions Europe, North America and South America. Users are assigned with relevant authorizations in the back end to see specific region data and also specific components in the SAP BusinessObjects Design Studio/SAP BusinessObjects Lumira Designer created dashboards.
Step2: In order to achieve this requirement firstly I have created a tab strip with three tabs shown below to display Europe, North America and South America Regions shown below.
Europe region is placed with a cross tab, North America to display column chart and south America to display pie chart.
Step 3: create a drop down and ensure we pass one value to the drop down, this drop will only show the region based on their back end authorizations. Write the start up script to get region value in the drop down.
Step 4: write below java script as global script and call it in the start up to control the tabs in the tab strip disabling non authorized region data in the dashboard.
if (DROPDOWN_1.getSelectedValue()==”Europe”) //based on the backend authorizations this drop down will hold one region value authorized to see its data
{
TABSTRIP_REG.setSelectedTab(“TAB_EUR”); //tab strip will set the tab europe to show the data
TAB_EUR.setEnabled(true); //tabstip europe should be enabled and it should disable north america and south america tabs
TAB_NAM.setEnabled(false);
TAB_SAM.setEnabled(false);
}
else if (DROPDOWN_1.getSelectedValue()==”North America”) //based on the backend authorizations this drop down will hold one region value authorized to see its data
{
TABSTRIP_REG.setSelectedTab(“TAB_NAM”); //tab strip will set the tab North america to show the data
TAB_NAM.setEnabled(true); //tabstip North america should be enabled and it should disable north america and south america tabs
TAB_EUR.setEnabled(false);
TAB_SAM.setEnabled(false);
}
else if (DROPDOWN_1.getSelectedValue()==”South America”) //based on the backend authorizations this drop down will hold one region value authorized to see its data
{
TABSTRIP_REG.setSelectedTab(“TAB_SAM”); //tab strip will set the tab North america to show the data
TAB_SAM.setEnabled(true); //tabstip south America should be enabled and it should disable north america and south america tabs
TAB_NAM.setEnabled(false);
TAB_EUR.setEnabled(false);
}
STEP 5: Result
User with authorization South america disabling other two regions
User with authorization North america disabling other two regions
User with authorization Europe disabling other two regions
BR,
Lakshmikanth Adharapurapu Venkata
Hi,
nice blog!
But I think you could write a better script using variables:
if you define var country = DROPDOWN_1.getSelectedValue(); and use it in the if clause, Design Studio calculates once the DROPDOWN_1.getSelectedValue() and not three times.
You could also use the function DS_1.getMembers("REG",1) to get the region value based on their back end authorizations.
Regards,
Giulia