Quantcast
  • Login
    • Account
    • Sign Up
  • Home
    • About Us
    • Catalog
  • Search
  • Register RSS
  • Embed RSS
    • FAQ
    • Get Embed Code
    • Example: Default CSS
    • Example: Custom CSS
    • Example: Custom CSS per Embedding
  • Super RSS
    • Usage
    • View Latest
    • Create
  • Contact Us
    • Technical Support
    • Guest Posts/Articles
    • Report Violations
    • Google Warnings
    • Article Removal Requests
    • Channel Removal Requests
    • General Questions
    • DMCA Takedown Notice
  • SAP>>
    • Collections:
    • RSSing
    • EDA
    • Intel
    • Mesothelioma
    • SAP
    • SEO
  • Latest
    • Articles
    • Channels
  • Popular
    • Articles
    • Pages
    • Channels
  • Trending
    • Articles
    • Pages
    • Channels
Switch Editions?
Cancel
Sharing:
Title:
URL:
Copy Share URL
English
SAP>> Latest Popular Trending
Channel: SAP BusinessObjects Design Studio
NSFW?
Claim
0


X Mark channel Not-Safe-For-Work? cancel confirm NSFW Votes: (0 votes)
X Are you the publisher? Claim or contact us about this channel.
X 0
Showing article 641 to 660 of 662 in channel 10926068
Channel Details:
  • Title: SAP BusinessObjects Design Studio
  • Channel Number: 10926068
  • Language: English
  • Registered On: April 2, 2013, 1:06 pm
  • Number of Articles: 662
  • Latest Snapshot: July 18, 2016, 5:30 am
  • RSS URL: http://scn.sap.com/community/businessobjects-design-studio/blog/feeds/posts
  • Publisher: http://scn.sap.com/community/businessobjects-design-studio/blog
  • Description:
  • Catalog: //cybernetic20.rssing.com/catalog.php?indx=10926068
Remove ADS
Viewing all 662 articles
Browse latest View live
↧

Enhance Basic Analysis Layout Template with Lumira Style Lasso - Part 3

May 27, 2016, 1:40 pm
Latest and popular articles on SAP ERP
≫ Next: Utilizing Global Script in Design Studio
≪ Previous: Design Studio Innovation Series - Topic 9: A Wish List for Bookmarks
$
0
0

    In first and second parts of my blog I explained how Lumira Style Lasso is working and implemented. In last part of the blog, I will focus on Undo Previous Step command issue with Lasso and how to resolve it.

 

    Problem

 

    Design Studio provides Undo Previous step menu command. This command takes you only one step back whereas using Lasso filtering is two step process (Lasso selection and Decision making popup). So Undo Previous Step command takes you to decision making step (modal window) from where you have no choice but filter or exclude again. Suppose you excluded carrier AZ

Lasso 12.jpg

Lasso 13.jpg

Then after you decided to undo AZ carrier exclusion. If you choose standard command from context menu it will take you take you to decision making popup rather then undoing Lasso Exclude altogether.

Lasso 14.jpg

Lasso 15.jpg

 

    Solution

 

    I added two toolbar buttons:Undo Previous Step and Undo Two Previous Steps.

Lasso 16.jpg

Here is BIAL script for the buttons.

Lasso 17.jpg

Lasso 18.jpg

 

I had to download custom font icons because there is not standard button for Undo Two Previous Steps button and use custom font icons for both buttons to keep look consistent.

Lasso 19.jpg

 

Lets see new Undo Two Previous Steps button in action

 

Lasso 20.jpg

 

Lasso 21.jpg

Lasso 22.jpg

Lasso 23.jpg

 

So it works like a charm.

 

Attached is an exported model (unpack and change extension to zip prior to importing).

↧
Search

Utilizing Global Script in Design Studio

May 31, 2016, 1:28 pm
Latest and popular articles on SAP ERP
≫ Next: Design Studio 1.6 SDK - Leaflet Maps WMS Layer Support!
≪ Previous: Enhance Basic Analysis Layout Template with Lumira Style Lasso - Part 3
$
0
0

Utilizing Global Scripts in Design Studio

 

Global Script Component has been available for a while since Design Studio 1.4 and has been a powerful tool to write scripts that are easy to understand and maintain. But most importantly, it gives the dashboard developers a creative space with endless possibilities. I’d like to discuss a few simple use cases that Global Scripting comes in very handy, especially at the point when you give up counting the number of components in your dashboard. Hope everyone can join the discussion and help each other become more efficient in building DS applications.


1. Setting Global Filters

Most often time, setting a filter on the dashboards means setting a filter on several datasources. Soon you would be tired of writing DS_1.setFilter over and over again. Things get complicated when your target datasources change, and you have to go back to add or remove datasource in each component’s script. (Ouch!) By creating a Global Script names, for example, globalFilter(Dimension,Value), you can maintain all the filtered datasources in one place and just use the script to pass the filtering dimension and values. In the following example, I have a function called globalFilter to set the same filter to all of my datasources within the dashboard. From an information hierarchy perspective, I want to have a central control of all my datasources so that the scope of the data stays consistent.

 

Global Script.png

 

DS_1.setFilterExt(filterDim,filterVal);
DS_2.setFilterExt(filterDim,filterVal);
DS_3.setFilterExt(filterDim,filterVal);
DS_4.setFilterExt(filterDim,filterVal);
DS_5.setFilterExt(filterDim,filterVal); 
DS_6.setFilterExt(filterDim,filterVal);

Let’s say you want to set filter by selection on a chart, simple call the script:

 

 

FILTERS.globalFilter("SEND_CATEGORY", CHART_1.getSelectedMember("SPEND_CATEGORY"));

 

This function lets you add or remove datasources to your dashboard without having to go back and editing the scripts of each filter-setting components. You can have different scripts to control different groups of datasources if each group share the same filter control.

 

2. Navigating Between Different Views


If your navigation is as simple as PAGE_BOOK.setSelectedPageIndex(), there is no need for Global Script. But the scenario we’re talking about is when you need to manipulate components or datasources for a specific view. One example is when you use the same datasource for different visualizations in separate views (for the sake of performance). This list of use cases is never ending. So are the changes. That is why setting up a Global Script is very useful.

In this case, you can create a parent Global Script Component with functions orchestrating all events for each page initiation, for example:

These functions in most cases don’t need parameters. They simple include events or changes in component’s CSS classes and provide a single source repository for your code.


Changeview.png


3. Drilldown Functionality on Chart

If you are using Visual BI Extensions VBX, which comes with a built-in drilldown functionalities and requires no scripting, skip this section. Otherwise, drilling-down on a single chart can make your script difficult to read, even for yourself.  Just a side note, you can by all means keep all your script in On Selection event of your chart, but it’s not going to look pretty. Global script not only helps you write cleaner code but also help you think more efficiently. Here is an example of how it can be done.

Here is what the code on global script looks like:

 

// Set filter fromDim
var filterValues ="";
chart.getSelectedMembers(fromDim).forEach(function(element, index) {
 filterValues = filterValues + ";"+element.externalKey;
});
//remove the first semicolon:
filterValues = filterValues.substring(1);
source.setFilterExt(fromDim,filterValues);
// Swap dimensions
source.swapDimensions(fromDim, toDim);
// Change level status
level = toDim

We keep a global variable level to keep trach of which level the visualization is on, so that we don’t have to request this information from the datasource when needed. There can be many more script on changes of UI element such as chart title, icons, etc. In addition, you can reuse this script on different visualization. Example of script execution:

 

If (level == “REGION”){
GLOBAL_SCRIPT.drilldown(“REGION”, CHART_REGION,”COUNTRY”,DS_GEOGRAPHY)
}
  1. 4. Search Function

When it comes to a bit more complex script like this, utilize global script so you can reuse. Let’s say you save several Search Boxes using Input fields to search for different dimension values. You can utilize one function called search() in Global Script for all input fields with the following parameters:

 

Search.png

 

var filteredList = [""];  // Search Result Set
if (keyword !="") // If the search key is not empty
{      var memberList = searchDatasource.getMembers("searchDim", 50000); // List of first 50 000 values from posted data       memberList.forEach(function(element, index) {         if (element.text.indexOf(keyword)!=-1)         { // Add value with search key to Array of result set              filteredList.push(element.externalKey);          }       });                         target.removeAllItems();       target.addItem("", "All");            // Populate listbox with result set       filteredList.forEach(function(element, index) {       target.addItem(element, element);       });
}
else {       // If search key is empty       // Populate listbox with all values (first 100)       GET_MEMBERS.Listbox_loadItems(searchDatasource, "searchDim", target, 100);       // Utilizing the loadItems function demonstrated previously.
}

An example of script execution On Value Change of an Input Field, returning list of Spend Category with the key word “corporate” and load to LB_CATEGORY:

 

GLOBAL_SCRIPT.search(“corporate”, DS_1,”SPEND_CATEGORY”,LB_CATEGORY)
  1. 5. Convert strings to Uppercase / Lowercase

Since there isn’t any built-in function in DS to convert strings to upper case or lower case, we need to build them manually. Yes, that means going through the whole alphabet. This function is called uppercase(). This function is helpful when you need to reformat the search key before passing to the search function, since it is case-sensitive.

lower.png

 

inputString=Convert.replaceAll(inputString, "a", "A");
inputString=Convert.replaceAll(inputString, "b", "B");
inputString=Convert.replaceAll(inputString, "c", "C");
// repeat till the end of the alphabet……
inputString=Convert.replaceAll(inputString, "x", "X");
inputString=Convert.replaceAll(inputString, "y", "Y");
inputString=Convert.replaceAll(inputString, "z", "Z");
return inputString;

You can implement lowercase() the same way. Execute the function by calling

 

GLOBAL_SCRIPT.uppercase(inputString)
↧
↧

Design Studio 1.6 SDK - Leaflet Maps WMS Layer Support!

June 1, 2016, 10:59 am
Latest and popular articles on SAP ERP
≫ Next: ASUG BI Webinar List - June 2016
≪ Previous: Utilizing Global Script in Design Studio
$
0
0

I have added a new interesting feature to the SCN Open Source Community Leaflet Maps component I would like to share today.

 

An original overview can be found here:

 

Design Studio 1.6 SDK - Leaflet Maps for more mapping goodness

 

What is WMS?  Wikipedia has a good definition (https://en.wikipedia.org/wiki/Web_Map_Service):

 

A Web Map Service (WMS) is a standard protocol for serving (over the Internet) georeferenced map images which a map server generates using data from a GIS database. The Open Geospatial Consortium developed the specification and first published it in 1999.

 

Basically it makes for interesting overlays not possible with Map Tiles or feature overlays alone.  This could be because geographic data is too huge to maintain pre-rendered tiles for, or the real-time nature of some data (weather, for example) would not make sense to store/bake in as a tile or feature.

 

I have what I think makes for an interesting illustration of how you could augment your maps as a result.  I'll use a few interesting examples:

 

I'll start with an example map from my prior Leaflet blog post with Markers showing universities in a few regions of the US:

 

wms1.png

Next, in Additional Properties Sheet, I go to Layers -> Overlays -> and Add a new overlay and click the 'More...' button.

 

What I have added is a new Layer Type option called 'WMS':

 

wms2.png

 

What we now must do is provide a WMS server URL which then will request the WMS capabilities available.  To find a WMS server, use google or a directory service like Spatineo (Spatineo Directory).  I have included a few examples that you can find under Presets:

 

wms3.png

 

For this example however, I will pick Nexrad under the 'WMS Presets' entry.  As you change your WMS base URL, it will query the URL and assuming you have provided a valid URL, it will return a list of Layers available for your use:

 

wms4.png

In this example, I will pick the first entry 'nexrad_base_reflect'.  Below are the results:

 

wms5.png

 

Pretty cool!

 

What else can we do?  I found another WMS that shows Geological survey information, perhaps good if your data makes sense to be paired with that.  I included a few sample URLs:

 

wms6.png

 

I will pick Tennessee Geology, and then checkmark the layer with the title 'Tennessee_Geology':

 

wms7.png

 

We can even add both Nexrad, Tennessee Geological layers at same time:

 

wms8.png

And of course you can set which layers are visible by the default, and the user may toggle them at runtime:

 

wms9.png

 

I am no WMS expert, but the possibilities become quite interesting I think!

 

A few things to note:

 

  • The WMS services must support the map CRS (Coordinate Reference System) that is being used.  Leaflet by default is set to EPSG3857 (Sperical Mercator).  This is what most map tile providers also use.  I did run across some WMS services that only supported EPSG4326 projection (Equirectangular.)  You can read details here (Documentation - Leaflet - a JavaScript library for interactive maps) As a result, I went ahead and made this a property that you can change on your Leaflet Map to support these type of WMS layers:

    wms10.png
  • Note that if you use a different projection besides the default, your tile provider will most likely now look incorrect:

    wms11.png
  • What I've noticed is if the WMS overlays are only available at EPSG4326 projection, you'd be better off deleting your base maps and using perhaps just a simple GeoJSON shape overlay (or a WMS that renders it for you in the correct projection) to give your map some context:

    wms12.png

    So why so much fuss over EPS4326?  I found many of the NASA overlays only support that projection.  I'll throw one on there:

    Here's NASA with a Blue Marble overlay:

    wms13.png

  • Another thing to note with this Leaflet plugin is that during design-time, I've got a pretty bad memory leak going on in the Additional Property Sheet that I cannot seems to track down.  Probably related to the sheer number of dialog components available for this component.  I'd highly suggest saving your work often as you change properties.  A way to work around this leak is to make changes slowly, save often, and close your bi app and re-open it.  (Or simply close and re-open the Additional Property Sheet panel).  This is just a reality for open source free software so I hope you don't mind - This does not affect your end-users and there is no memory leak there.

 

This version is nearly done and should be available for download in the usual spot (details here: SCN Design Studio 1.6 SDK Components (ver 3.0)) this week (week of June 1 2016)



Questions/Comments/Feedback always welcomed!

↧

ASUG BI Webinar List - June 2016

June 6, 2016, 6:19 pm
Latest and popular articles on SAP ERP
≫ Next: How to use Design Studio Applications offline
≪ Previous: Design Studio 1.6 SDK - Leaflet Maps WMS Layer Support!
$
0
0

Here the updated list of webinars for April 2016


For all webinars :

 

  • Start Time : 11:00 AM (CT), 12:00 PM (ET), 10:00 AM (MT), 9:00 AM (PT)
  • Duration : 1 hour


 


June 07 - What's New in SAP Lumira 1.31


Join the session for an overview of SAP Lumira (desktop, server for team and BI platform), what’s new in SAP Lumira 1.31 and future roadmap.

 

 

June 08 - Are You Ready to Migrate from SBOP Dashboards to SBOP Design Studio?

 

Explore the main differences between SAP BusinessObjects Dashboards (formerly Xcelsius) and SAP BusinessObjects Design Studio, and get expert advice on how to migrate your existing SAP BusinessObjects Dashboards to SAP BusinessObjects Design Studio. Attendees will learn key differences between the tools and guidelines for transitioning.

 

Attendees will learn:

 

* Key differences between the tools in various areas such as data visualization, filter components, and mapping solutions

 

* Guidelines for transitioning components already built in Xcelsius or SAP BusinessObjects Dashboards to SAP BusinessObjects Design Studio

 

* Tips to ensure a smooth transition for your dashboard designers as well as your users and best practices on performance, such as design configuration tips and selecting the right data sources

 

 

June 09 -  Keep Your Customers Happy with Reduced Time-to-Resolution and Preventative Maintenance


If your telecommunications company is running a data center, you know how critical it is to make sure that data center is running like a top. But given the many different sources of data in your data center, how can you keep on top of the servers, processes, and customers to make sure you are delighting your customers with outstanding services? Enter SAP IT Operations Analytics (ITOA). With SAP ITOA, you can use your own network data and enable your customers to load their own relevant data, detect fraud & network abusers, ensure optimal network performance, and prioritize expansion by pinpointing congested areas. But ITOA also helps you predict what to do next. It’s true. You can view heat maps of potential outages, use real-time data from cell towers to do proactive maintenance, predict customer churn.

 

 

June 14 -  SAP Early Adopter Care Program

 

In the next 10 years, 40% of the S&P 500 will no longer exist if they do not keep up with technology trends.  Customers participating in the SAP Early Adopter Care program are winning.  Hear firsthand how companies are adopting and influencing innovation with SAP Software.

 

The session includes an overview of a refined engagement model and SAP’s Early Adopter Care Services integration into the overall SAP Influence initiative.  You’ll have the opportunity to

 

- Connect and learn

- Collaborate with your peers and Product Experts

- Maximize your SAP Investment

- Influence and adopt SAP’s latest innovations

 

Take advantage of this ASUG Webcast to hear about SAP’s portfolio of services. Learn how you can impact SAP’s Product Lifecycle - and keep up with technology trends!

 

 

June 22 - Reporting in Color at Benjamin Moore

 

How Benjamin Moore, a 100+ year old company rooted in tradition, embarked on one of the fastest and most successful SAP BW implementations to support a corporate wide business transformation. As a result, the organization is now armed with the relevant data and analysis for more effective business decisions. This reporting solution offers SAP technology, specifically ECC, SAP BW, BW-on-Hana, and BI Web Intelligence. This solution provides a combination of real-time data access through standard reporting, pre-built reports for distribution to users and improved self-service capabilities for power users. It has enabled continued data-driven decision making with the transition to a new SAP ERP system.

 

 

June 23 -  Decomposing Business Problems for Developing Analytics Solutions on HANA


We decompose a business problem into components that serve to facilitate a modular design approach for developing analytics solutions. Each module contains a model that solves a distinct component, and they combine to form a holistic solution. A challenge lies in specifying decomposition guidelines, which we offer as a best practice framework. The objectives are:

- Learn specific prescriptive guidelines that can be used to decompose a business problem into components that serve to facilitate a modular design approach for analytics solutions;

- Apply the same prescriptions to match analytic modeling method to problem component; and

- Understand how to combine multiple modeling methods (PAL algorithms) to form a comprehensive analytics solution running on HANA.

 

 

June 28 - What's New in SAP BusinessObjects Mobile BI 6.4 Release

 

Presenting the new features introduced in Mobile BI 6.3 release including SAP Lumira visualization support and other enhancements.

 

 

June 29 - SAP Predictive Analytics Experts: Data Science 101


New to Predictive? Curious to learn more about Data Science? This is the right session for you. We will go over some of the basic concepts of Data Science. In the second half, we will go over the high-level summary of an end-to-end predictive project using SAP Predictive Analytics - starting with the business problem and ending with the integration in a business process.

 

 


I hope you enjoy these session.

 

Please note, that these are webinars organized by the ASUG BI group and for attending you need to be a ASUG Member.

↧

How to use Design Studio Applications offline

June 9, 2016, 5:51 am
Latest and popular articles on SAP ERP
≫ Next: Implement Top N/Bottom N in SAP Design Studio using BIAL script
≪ Previous: ASUG BI Webinar List - June 2016
$
0
0

Dear SAP community,

 

a lot of people demand an offline usage of SAP Design Studio, but you know that are just a few ways to simulate such behavior, like the record mode introduced in 1.5. Even this one won’t work if you are using SDK extensions, hence you are limited to show some screenshots of your applications if you want to have it really offline.

 

I also faced the requirement to make my applications working without internet connection, as our executives show them regularly to potential clients where mobile internet is hardly available and they are regularly refused to connect to the companies’ WLAN. These applications are based on Universe as data source and the solution provided works while executing on BI platform. I can not judge whether it works on Netweaver or HANA, but I assume it won’t work due to the higher requirements I expect for installation.

 

The great thing to know at the beginning is: It works. You can build an environment that enables you use a Design Studio Application via BI Platform without having any connection to the internet. The bad thing is, it is a bit complicated to rebuild and I faced a lack of speed and response time of the application in offline mode compared to the usual online mode.

 

What is required to make Design Studio offline? Well, basically you are configuring a laptop as a server that hosts all server and client applications and databases you need. Sounds simple, but when I started I was not sure if I could install:

 

  • BI Platform Server
  • BI Platform Client Tools (mainly IDT)
  • Design Studio Server
  • Design Studio Client
  • MS SQL Database

 

on the same machine, a laptop with just 8GB RAM. The answer is yes – you can. You have to make sure that the operating system is a Server Operating System, in my case Windows Server 2008R2. Otherwise you are not allowed to install the BI Platform Server. Luckily it is no problem to install the client tools on a server operating system.

 

The rest is just repetition of what most of you have already done – install and configure your BI Platform, Server Extensions, Client Tools and Databases. All connections will have IPs like “localhost:8080/BOE/BI”, same thing for your databases. I used a small MS SQL Server 2008R2, as the application I wanted to have offline only uses about 10 tables.

 

Using Promotion Management in the CMC, I copied the universe, applications and supporting documents (like CSS-file and images) to a LCMbiar-file and imported it to the BI platform running on my server-like laptop.

 

In Information Design Tool I created a new relational ODBC connection to my local database and built a Data Foundation that contained all the required tables, then set the imported Universe to this new data foundation. The major thing is to make sure that all dimensions and measures you require are correctly set to the new data foundation and SQL statements are valid. Then publish the universe.

 

In Design Studio itself, you’ll have to install all SDK extensions you are using as well on client- and server-side. Then, open your application and test it. As I was using only some demo-data, I had to remove a few prompts from the datasources and had to rebuild the initial views. But the most important thing is that all metadata information stays the same. This means, any script you have created within your application will still work. For maintenance reasons this is crucial – otherwise you would have to rewrite every script that is using data from your data sources.

 

In a nutshell, all script functions like

 

DS_XYZ.getDataAsString("_1ZyVYwYJEeanzqUk4xkQOw", {

                     "_1ZyVYAYJEeanzqUk4xkQOw":element.internalKey,

                     "_1ZokYAYJEeanzqUk4xkQOw":"Example_1"});


Will retrieve the correct results and hence your copied application runs like its original version.

 

Last but not least you can use the link provided by “Send to mobile device (using QR code)” option to copy the URL of the application to your clipboard. Open up your favorite browser and add the link to your Favorites. Now you can access your application in your browser without any internet connection – everything is running locally on the laptop.

 

I have to admit, the performance is an issue – initial loading time is fine, but the response to onClick()-Scripts is a little annoying, as it takes 2-3 seconds for execution. I assume this is because of the BI platform that takes 4 - 6 GB RAM even in the smallest possible system setting. So my laptop faces 90%-95% of RAM usage just for all services that are running in the background...

 

As it is a server, it also takes about 20 minutes for all services to start after startup of your Operating System. That’s important to keep in mind when you want to present your applications; as long as the BI Platform is not running you won’t be able to use your Design Studio applications.

 

Keeping that disadvantages in mind, you can face the requirement of using Design Studio Applications offline in the best feasible way. We will use it as a workaround whenever a stable internet connection is doubtful.

 

Have fun!

 

[and make sure you have sufficient licenses to implement this solution]

↧
↧

Implement Top N/Bottom N in SAP Design Studio using BIAL script

June 14, 2016, 3:07 pm
Latest and popular articles on SAP ERP
≫ Next: Upgrade Installation of SAP BusinessObjects Design Studio 1.6 SP01 in a Distributed Clustered Environment 4.1 SP6
≪ Previous: How to use Design Studio Applications offline
$
0
0

We know now we have Top N and Bottom N feature in Run time in the context menu of the Cross tab as Filter by Measure. Many people ask whether this Top N or Bottom N is possible by default or in Design time or in script. The best way recommended and many will agree is to have conditions in the back end to handle the Top/Bottom N requirement.

But, just in case if you still need to do it in Design Studio, here is one way to implement Top N or Bottom N using BIAL script for any combination of a dimension and a measure. Using this method, it is also possible to display the total of the selected measure for the top N members of the selected dimension. For simplicity the example here demonstrates Top 5 and Bottom 5 for a dimension and measure combination.


After we create a data source in an application we have the option of creating simple calculations in the data source. We need to add a dynamic calculation on the desired measure and select Rank Number. The dynamic calculation feature was added in the Design Studio 1.6 release. You can add the Rank Number for the measures in the source query (back end) itself and then create a data source on this query.

Create Rank in Initial view of the data source.JPG 

Create Rank in Initial view of the data source

 

Now in the On Startup event we can write the following script to open the report to show only the Top 5 products by sales on initial load by default.

  Top 5 products – initial load.JPG

Top 5 products – initial load

 

var members = DS_1.getMembers("ZPRDCT", 100000);
var topBotNmembers = "";
var rankValue = 0.0;
var count = 0;
var n = 5;
members.forEach(function(element, index) {     if(count != n) {          rankValue = DS_1.getData("0MEASURES0000000000000009_Formula1", {"ZPRDCT": element.internalKey}).value;          if (rankValue <= n) {                topBotNmembers = topBotNmembers + element.internalKey + ";";                count = count + 1;          }     }
});
DS_1.setFilter(dimension, topBotNmembers.split(";"));

This script makes use of the rank measure that we just created. It extracts the rank value for each product and compares it with n, which is equal to 5 in our case. Any member with rank lesser than or equal to 5 will be selected for filtering the data source.

 

Or if we wanted to show the Bottom 5 products by sales then we can write the following script:

  Bottom 5 products – initial load.JPG

Bottom 5 products – initial load


var members = DS_1.getMembers("ZPRDCT", 100000);
var topBotNmembers = "";
var rankValue = 0.0;
var count = 0;
var n = 5;
var totalNumber = members.length - n;
members.forEach(function(element, index) {     if(count != n) {          rankValue = DS_1.getData("0MEASURES0000000000000009_Formula1", {"ZPRDCT": element.internalKey}).value;          if (rankValue > totalNumber) {                topBotNmembers = topBotNmembers + element.internalKey + ";";                count = count + 1;          }      }
});
DS_1.setFilter(dimension, topBotNmembers.split(";"));

This is similar to what we did for the Top 5 with only a minor difference. Here we will not be comparing the rank with n;instead we will compare it with n subtracted from the total number of members of that dimension. For example if total members = 50 then we compare rank with 45 and any member with rank greater than 45 will be selected for filtering.

 

Based on the script above we can enable Top N or Bottom N members of any dimension by a selected measure. We may need a few other components to make Top/Bottom selection, dimension selection, measure selection, and most importantly the value for N.

One problem with this approach is limitations with the ability to pass dynamic JSON pairs. Since this is based on JSON, we may have to write a script for every combination of dimension and measure that we provide in the respective selectors. Also we will have to add rank, in the initial view, for each measure that we provide in the selector.

Below is an example to demonstrate the logic for the scenario we just described. Here we have a script for Top N/Bottom N for 2 different dimensions (Product and Country) by sales. If we provide a selector for measures then we will just need another global variable that holds the technical name of the corresponding rank measure. We can then replace the rank measure in the getData function by the new global variable.

Top N-Bottom N scenario for 2 different dimensions.jpg

Top N/Bottom N scenario for 2 different dimensions

 

DS_1.clearFilter(dimension);
var newDimension = DROPDOWN_2.getSelectedValue();
DS_1.swapDimensions(dimension, newDimension);
DS_2.swapDimensions(dimension, newDimension);
dimension = newDimension;
N = Convert.stringToInt(INPUTFIELD_1.getValue());
var members = DS_1.getMembers(dimension, 100000);
var topBotNmembers = "";
var rankValue = 0.0;
var count = 0;
var totalNumber = members.length - N;
if (DROPDOWN_1.getSelectedValue() == "TOPN") {     if (dimension == "ZPRDCT") {          members.forEach(function(element, index) {               if(count != N) {                    rankValue = DS_1.getData("0MEASURES0000000000000009_Formula1", {"ZPRDCT": element.internalKey}).value;                    if (rankValue <= N) {                         topBotNmembers = topBotNmembers + element.internalKey + ";";                         count = count + 1;                    }               }         });     }     else if (dimension == "ZCUNTRY") {          members.forEach(function(element, index) {               if (count != N) {                    rankValue = DS_1.getData("0MEASURES0000000000000009_Formula1", {"ZCUNTRY": element.internalKey}).value;                    if (rankValue <= N) {                         topBotNmembers = topBotNmembers + element.internalKey + ";";                         count = count + 1;                    }               }        });     }        DS_2.sortByMeasure("0MEASURES0000000000000009_Formula1", false);
}
else {     if (dimension == "ZPRDCT") {          members.forEach(function(element, index) {               if (count != N) {                    rankValue = DS_1.getData("0MEASURES0000000000000009_Formula1", {"ZPRDCT": element.internalKey}).value;                    if (rankValue > totalNumber) {                         topBotNmembers = topBotNmembers + element.internalKey + ";";                         count = count + 1;                    }               }          });     }          else if (dimension == "ZCUNTRY") {          members.forEach(function(element, index) {               if (count != N) {                    rankValue = DS_1.getData("0MEASURES0000000000000009_Formula1", {"ZCUNTRY": element.internalKey}).value;                    if (rankValue > totalNumber) {                         topBotNmembers = topBotNmembers + element.internalKey + ";";                         count = count + 1;                    }               }          });     }     DS_2.sortByMeasure("0MEASURES0000000000000009_Formula1", true);
}
DS_1.setFilter(dimension, topBotNmembers.split(";"));
DS_1.sortByMeasure("0MEASURES0000000000000009_Formula1", false);

 

Here are a few screen shots of the application in runtime. The chart always shows the Top N/Bottom N items and for reference the table below shows all the data with a rank for each member.

Top 5 Products by Sales – initial load.JPG

Top 5 Products by Sales – initial load

 

The screen shot below shows the result for Top 5 countries by sales, after making changes in the selectors above and applying it to the data source using the script.

Top 5 Countries by Sales.JPG

Top 5 Countries by Sales

 

The screen shot below shows the result for Bottom 5 Countries by Sales.

Bottom 5 Countries by Sales.JPG

Bottom 5 Countries by Sales

 

The screen shot below shows the result for Top 8 Countries by Sales.

Top 8 Countries by Sales.JPG

Top 8 Countries by Sales

 

 

At the end I would definitely recommend you to use the Top/Bottom N feature from the back end.


Back end in the above example is SAP BW. Attached files contain the scripts for reference.

↧

Upgrade Installation of SAP BusinessObjects Design Studio 1.6 SP01 in a Distributed Clustered Environment 4.1 SP6

June 16, 2016, 3:00 pm
Latest and popular articles on SAP ERP
≫ Next: Are You Ready to Migrate from SAP BusinessObjects Dashboards to SAP BusinessObjects Design Studio?
≪ Previous: Implement Top N/Bottom N in SAP Design Studio using BIAL script
$
0
0

I would like to show you the step by step procedure of the SAP BusinessObjects Design Studio 1.6 SP01 Server Upgrade Installation in a Distributed Cluster environment. This is on SAP BusinessObjects 4.1 SP06 Patch 4.

 

After downloading the software, we need to extract the zip file. Open the extracted files, we see 4.0, 4.1 and 4.2 folders. Based on which version of SAP BI Platform we select the appropriate folder. Since the system I'm installing is 4.1 I'm selecting 4.1 folder

 

 

1. Select Server as this is the Server Upgrade installation

2. After extracting the zip file Select SP01 ADD ON 1.6

 

3. After extracting select the DSBIPADDON01_2-70001269

 

4. We are on 4.1 so select the folder based on the version you're on

 

5. Run the setup file

6. Here are the different languages you can install Design Studio.

 

 

7. I selected English

 

8. As we are upgrading from older version we see that it has detected the older version and ready for upgrade. Click Next

 

9. We see all status are succeeded

 

10. Click next after you close all your windows programs

 

11. Accept the License Agreement

 

12. The path is selected by default

 

13. As we have a distributed environment I'm installing the web part on a different server. So I just check Analysis Application Service

 

14. Enter the CMS Name, Port and Password for the Admin

 

15. Click Next to begin the Installation

 

16. This might take around 45mins to complete

 

 

 

17. Click Finish.

 

Now we need to Install the Analysis Application Web Components and Analysis Application Support for Mobile Servers on the Web Server.

 

Login to the Web Tier Server and repeat steps from 1 to 12 and

 

After doing the 12 steps you need to select

 

Analysis Application Web Components and

Analysis Application support for Mobile Services

 

and continue from 14th to 17th step to finish the Installation of SAP BusinessObjects Design Studio on Distributed systems.

 

Based on the number of systems that are clustered in your environment you would need to repeat the above steps. The above installation is good if your SAP BI Platform is in a Distributed environments only.

 

Hope this helps. If I have missed anything please let me know I'll try to add or modify accordingly.

 

Thanks!

MK

↧

Are You Ready to Migrate from SAP BusinessObjects Dashboards to SAP BusinessObjects Design Studio?

June 19, 2016, 3:40 pm
Latest and popular articles on SAP ERP
≫ Next: Implement Top N/Bottom N in SAP Design Studio using BIAL script
≪ Previous: Upgrade Installation of SAP BusinessObjects Design Studio 1.6 SP01 in a Distributed Clustered Environment 4.1 SP6
$
0
0

This was an ASUG webcast earlier this month.

 

 

1fig.jpg

Figure 1: Source: ASUG/Visual BI

 

2fig.jpg

 

Figure 2: Source: ASUG/Visual BI

 

Design Studio is becoming an important part of the strategy moving forward

 

3fig.jpg

 

 

Figure 3: Source: ASUG/Visual BI

 

What is the difference between Dashboards and Design Studio?

 

 

Why SAP had to move to a different environment – limited support for mobile devices, HTML5; SAP did create a way for dashboards to export to HTML5 but it is limited

 

 

Dashboards did not have a true eventing framework; catch if someone clicked on a chart or a filter

 

 

Design Studio is only HTML5.  It doesn’t matter which device.

 

 

Support for JavaScript and CSS; some customers may be hesitant but this is a huge benefit as you have more capabilities

 

 

A shortcoming for Design Studio is a lack for non-SAP data sources

 

 

With the latest announcement that Lumira Desktop and Studio moving closer, this problem will get addressed soon.  Design Studio will get the same connectivities that Lumira has today and leverage those.

 

 

4fig.jpg

 

Figure 4: Source: ASUG/Visual BI

 

 

Figure 4 is something to look for when you want to move to Design Studio

Both tools talk to BW, HANA

 

 

Design Studio can connect to HANA directly ( a benefit) – less of a hassle

 

 

Dashboards has some interesting connectivity options – a web service, a Web Intelligence/Excel as a data source.  Some can be closed using a partner extensions such as APOS (Web Intelligence)

 

 

5fig.jpg

 

Figure 5: Source: ASUG/Visual BI

 

 

Why should you move to Design Studio?

 

 

Design Studio provides control over how you treat data; you can trigger when to refresh and load data.  You can do background processing, parallel queries, and more.

 

 

In Dashboards, you could not decide to load which data.

 

 

6fig.jpg

 

Figure 6: Source: ASUG/Visual BI

 

 

Figure 6 shows where present options

 

 

Both are capable of showing in the portals, BI launchpad, and Mobile BI

 

 

If you are interested in moving to Fiori landscape, Design Studio can be integrated with Fiori Launchpad, but not with Dashboards

 

 

Dashboards has offline dashboards; if offline dashboards is very important for you in the next several months then keep looking at Dashboards.  This is part of Design Studio’s roadmap

 

 

7fig.jpg

 

Figure 7: Source: ASUG/Visual BI

 

 

Dashboards was designed for particular screen resolution

In Design Studio, dashboards are resizing, ability to add responsiveness

 

 

Data sources – there is still a gap for Design Studio – has strong support for BW/HANA; limited for non-SAP datasource; SAP improves each release

 

8fig.jpg

 

 

Figure 8: Source: ASUG/Visual BI

 

 

There is no automatic migration

 

 

Old presentations show a tool was once considered; no longer on the roadmap

 

 

The reason is from a technology point of view it would be difficult

 

 

Migration is manual effort; you should take this as an opportunity to reconsider design decisions made.  Technology has moved on; you are not designing for a specific screen resolution and mobile is more important.  Design Studio gives you the opportunity to change approach.

 

 

9fig.jpg

 

Figure 9: Source: ASUG/Visual BI

 

 

You see a comparison of visual aspects including Lumira, Dashboards, Design Studio

 

 

You could be looking for a certain visualization or map

 

 

Most of the chart types Design Studio can deliver

 

 

Some are still outstanding in Design Studio – High-Low stock chart, candlestick charts

 

 

There are chart types Design Studio provides – column % stacked, for example

 

 

10fig.jpg

 

Figure 10: Source: ASUG/Visual BI

 

 

More differences

 

11fig.jpg

 

 

Figure 11: Source: ASUG/Visual BI

 

 

Design Studio does not provide gauges out of the box; partner solutions are available.

 

12fig.jpg

 

 

Figure 12: Source: ASUG/Visual BI

 

 

Range sliders for charts is available for Dashboards, but not out of box Design Studio

 

 

Drill down is not possible out of the box for Design Studio

 

13fig.jpg

 

 

Figure 13: Source: ASUG/Visual BI

 

 

Filter components for Dashboards – select a region, country, timeframe – this was huge for dashboards

 

 

Not possible yet in Design Studio such as List View and List Builder

 

 

14fig.jpg

 

Figure 14: Source: ASUG/Visual BI

 

 

Design Studio does not provide standard maps out of the box; means like a world map with all the countries without you having to create definition

 

 

Design Studio uses GeoJSON syntax; you have to define this first

 

 

15fig.jpg

 

Figure 15: Source: ASUG/Visual BI

 

 

More component comparison – such as a what if scenario or trend icon are not out of the box in Design Studio

 

 

Offline dashboards, export to MS Office – are not out of the box in Design Studio

 

 

16fig.jpg

 

Figure 16: Source: ASUG/Visual BI

 

 

Common questions – no automatic migration process; need to migrate manually.  This gives you the chance to rethink design and use new technologies

 

 

Licensing is shown in Figure 16

 

 

Design Studio provides a data discovery template for business users to create their own applications

 

 

 

17fig.jpg

 

 

Figure 17: Source: ASUG/Visual BI

 

 

Some components are not available in Design Studio

If you are using an extension in Dashboards, is it available in Design Studio

 

 

SAP has not announced end of life for Dashboards; remember technology has moved on with browsers, mobile operating systems

 

 

 

 

18fig.jpg

Figure 18: Source: ASUG/Visual BI

 

 

Why should you move? Design Studio gives you the enterprise readiness.  Dashboard never reached the scalability required.

 

 

Design Studio is the future as part of the overall portfolio

 

 

19fig.jpg

 

Figure 19: Source: ASUG/Visual BI

 

 

There may be times to continue to use Dashboards

 

 

If offline is a must-have in the next 6-7 months, if go-live is 2016, look at Dashboards or some other alternative.  Design Studio does not have offline capabilities.  Planned for Q1 2017 release (announced at SAPPHIRE)

 

 

20fig.jpg

 

Figure 20: Source: ASUG/Visual BI

 

 

Do an inventory of dashboards you have, look at the data sources, look at your current add-ons

 

 

Is platform configured for Design Studio?  Have you sized it for Design Studio?

 

 

Rethink your design; if you design dashboard today the same

 

 

Do not forget about training your team

 

21fig.jpg

 

 

Figure 21: Source: ASUG/Visual BI

 

 

Figure 21 is a summary of key points.

 

 

Question & Answer

 

 

 

 

Q: We have Design Studio currently but are not using it because we are told Lumira and Webi will cover all our needs and are more geared toward end users. I believe that Design Studio has advantages over Webi and Lumira. Is there a differnece?

 

 

A: Yes, huge difference; look at use case; Web Intelligence (reporting) / Lumira (data discovery) designed for self-service; have to sacrifice some capabilities to build a full dashboards. Data connectivity – do not have best integration with BW and HANA which Design Studio supports – creating hierarchies is an example.

 

 

Q: Have many customers successfully made the migration to Design Studio?

 

 

A: SAP does not share out; SAP not give out concrete numbers. Look at Design Studio sessions at conference, customers downloaded in the thousands – close 100 customers increase each month

 

 

Q: From the training my understanding is there is no separate cost for the design studio licence and some features are easier to use it dashboard vs some in the Design studio. Hence we should use either of the tool based on the features we need in report?

 

 

A: May still be a scenario for Dashboards (e.g. offline) but that is not a feature you require you should look at Design Studio

 

 

Resource:

Upcoming ASUG Business Intelligence Community W... | ASUG

↧
Search

Implement Top N/Bottom N in SAP Design Studio using BIAL script

June 14, 2016, 3:07 pm
Latest and popular articles on SAP ERP
≫ Next: How to do an Upgrade Installation of SAP BusinessObjects Design Studio 1.6 SP01 in a Distributed Clustered Environment 4.1 SP6
≪ Previous: Are You Ready to Migrate from SAP BusinessObjects Dashboards to SAP BusinessObjects Design Studio?
$
0
0

We know now we have Top N and Bottom N feature in Run time in the context menu of the Cross tab as Filter by Measure. Many people ask whether this Top N or Bottom N is possible by default or in Design time or in script. The best way recommended and many will agree is to have conditions in the back end to handle the Top/Bottom N requirement.

But, just in case if you still need to do it in Design Studio, here is one way to implement Top N or Bottom N using BIAL script for any combination of a dimension and a measure. Using this method, it is also possible to display the total of the selected measure for the top N members of the selected dimension. For simplicity the example here demonstrates Top 5 and Bottom 5 for a dimension and measure combination.


After we create a data source in an application we have the option of creating simple calculations in the data source. We need to add a dynamic calculation on the desired measure and select Rank Number. The dynamic calculation feature was added in the Design Studio 1.6 release. You can add the Rank Number for the measures in the source query (back end) itself and then create a data source on this query.


In the following example "0MEASURES0000000000000009_Formula1" is the Rank Measure created and used.

Create Rank in Initial view of the data source.JPG 

Create Rank in Initial view of the data source

 

Now in the On Startup event we can write the following script to open the report to show only the Top 5 products by sales on initial load by default.

  Top 5 products – initial load.JPG

Top 5 products – initial load

 

var members = DS_1.getMembers("ZPRDCT", 100000);
var topBotNmembers = "";
var rankValue = 0.0;
var count = 0;
var n = 5;
members.forEach(function(element, index) {     if(count != n) {          rankValue = DS_1.getData("0MEASURES0000000000000009_Formula1", {"ZPRDCT": element.internalKey}).value;          if (rankValue <= n) {                topBotNmembers = topBotNmembers + element.internalKey + ";";                count = count + 1;          }     }
});
DS_1.setFilter(dimension, topBotNmembers.split(";"));

This script makes use of the rank measure that we just created. It extracts the rank value for each product and compares it with n, which is equal to 5 in our case. Any member with rank lesser than or equal to 5 will be selected for filtering the data source.

 

Or if we wanted to show the Bottom 5 products by sales then we can write the following script:

  Bottom 5 products – initial load.JPG

Bottom 5 products – initial load


var members = DS_1.getMembers("ZPRDCT", 100000);
var topBotNmembers = "";
var rankValue = 0.0;
var count = 0;
var n = 5;
var totalNumber = members.length - n;
members.forEach(function(element, index) {     if(count != n) {          rankValue = DS_1.getData("0MEASURES0000000000000009_Formula1", {"ZPRDCT": element.internalKey}).value;          if (rankValue > totalNumber) {                topBotNmembers = topBotNmembers + element.internalKey + ";";                count = count + 1;          }      }
});
DS_1.setFilter(dimension, topBotNmembers.split(";"));

This is similar to what we did for the Top 5 with only a minor difference. Here we will not be comparing the rank with n;instead we will compare it with n subtracted from the total number of members of that dimension. For example if total members = 50 then we compare rank with 45 and any member with rank greater than 45 will be selected for filtering.

 

Based on the script above we can enable Top N or Bottom N members of any dimension by a selected measure. We may need a few other components to make Top/Bottom selection, dimension selection, measure selection, and most importantly the value for N.

One problem with this approach is limitations with the ability to pass dynamic JSON pairs. Since this is based on JSON, we may have to write a script for every combination of dimension and measure that we provide in the respective selectors. Also we will have to add rank, in the initial view, for each measure that we provide in the selector.

Below is an example to demonstrate the logic for the scenario we just described. Here we have a script for Top N/Bottom N for 2 different dimensions (Product and Country) by sales. If we provide a selector for measures then we will just need another global variable that holds the technical name of the corresponding rank measure. We can then replace the rank measure in the getData function by the new global variable.

Top N-Bottom N scenario for 2 different dimensions.jpg

Top N/Bottom N scenario for 2 different dimensions

 

DS_1.clearFilter(dimension);
var newDimension = DROPDOWN_2.getSelectedValue();
DS_1.swapDimensions(dimension, newDimension);
DS_2.swapDimensions(dimension, newDimension);
dimension = newDimension;
N = Convert.stringToInt(INPUTFIELD_1.getValue());
var members = DS_1.getMembers(dimension, 100000);
var topBotNmembers = "";
var rankValue = 0.0;
var count = 0;
var totalNumber = members.length - N;
if (DROPDOWN_1.getSelectedValue() == "TOPN") {     if (dimension == "ZPRDCT") {          members.forEach(function(element, index) {               if(count != N) {                    rankValue = DS_1.getData("0MEASURES0000000000000009_Formula1", {"ZPRDCT": element.internalKey}).value;                    if (rankValue <= N) {                         topBotNmembers = topBotNmembers + element.internalKey + ";";                         count = count + 1;                    }               }         });     }     else if (dimension == "ZCUNTRY") {          members.forEach(function(element, index) {               if (count != N) {                    rankValue = DS_1.getData("0MEASURES0000000000000009_Formula1", {"ZCUNTRY": element.internalKey}).value;                    if (rankValue <= N) {                         topBotNmembers = topBotNmembers + element.internalKey + ";";                         count = count + 1;                    }               }        });     }       DS_2.sortByMeasure("0MEASURES0000000000000009_Formula1", false);
}
else {     if (dimension == "ZPRDCT") {          members.forEach(function(element, index) {               if (count != N) {                    rankValue = DS_1.getData("0MEASURES0000000000000009_Formula1", {"ZPRDCT": element.internalKey}).value;                    if (rankValue > totalNumber) {                         topBotNmembers = topBotNmembers + element.internalKey + ";";                         count = count + 1;                    }               }          });     }          else if (dimension == "ZCUNTRY") {          members.forEach(function(element, index) {               if (count != N) {                    rankValue = DS_1.getData("0MEASURES0000000000000009_Formula1", {"ZCUNTRY": element.internalKey}).value;                    if (rankValue > totalNumber) {                         topBotNmembers = topBotNmembers + element.internalKey + ";";                         count = count + 1;                    }               }          });     }     DS_2.sortByMeasure("0MEASURES0000000000000009_Formula1", true);
}
DS_1.setFilter(dimension, topBotNmembers.split(";"));
DS_1.sortByMeasure("0MEASURES0000000000000009_Formula1", false);

 

Here are a few screen shots of the application in runtime. The chart always shows the Top N/Bottom N items and for reference the table below shows all the data with a rank for each member.

Top 5 Products by Sales – initial load.JPG

Top 5 Products by Sales – initial load

 

The screen shot below shows the result for Top 5 countries by sales, after making changes in the selectors above and applying it to the data source using the script.

Top 5 Countries by Sales.JPG

Top 5 Countries by Sales

 

The screen shot below shows the result for Bottom 5 Countries by Sales.

Bottom 5 Countries by Sales.JPG

Bottom 5 Countries by Sales

 

The screen shot below shows the result for Top 8 Countries by Sales.

Top 8 Countries by Sales.JPG

Top 8 Countries by Sales

 

 

At the end I would definitely recommend you to use the Top/Bottom N feature from the back end.


Back end in the above example is SAP BW. Attached files contain the scripts for reference.

↧
↧

How to do an Upgrade Installation of SAP BusinessObjects Design Studio 1.6 SP01 in a Distributed Clustered Environment 4.1 SP6

June 16, 2016, 3:00 pm
Latest and popular articles on SAP ERP
≫ Next: Are You Ready to Migrate from SAP BusinessObjects Dashboards to SAP BusinessObjects Design Studio?
≪ Previous: Implement Top N/Bottom N in SAP Design Studio using BIAL script
$
0
0

I would like to show you the step by step procedure of the SAP BusinessObjects Design Studio 1.6 SP01 Server Upgrade Installation in a Distributed Cluster environment. This is on SAP BusinessObjects 4.1 SP06 Patch 4.

 

After downloading the software, we need to extract the zip file. Open the extracted files, we see 4.0, 4.1 and 4.2 folders. Based on which version of SAP BI Platform we select the appropriate folder. Since the system I'm installing is 4.1 I'm selecting 4.1 folder

 

 

1. Select Server as this is the Server Upgrade installation

2. After extracting the zip file Select SP01 ADD ON 1.6

 

3. After extracting select the DSBIPADDON01_2-70001269

 

4. We are on 4.1 so select the folder based on the version you're on

 

5. Run the setup file

6. Here are the different languages you can install Design Studio.

 

 

7. I selected English

 

8. As we are upgrading from older version we see that it has detected the older version and ready for upgrade. Click Next

 

9. We see all status are succeeded

 

10. Click next after you close all your windows programs

 

11. Accept the License Agreement

 

12. The path is selected by default

 

13. As we have a distributed environment I'm installing the web part on a different server. So I just check Analysis Application Service

 

14. Enter the CMS Name, Port and Password for the Admin

 

15. Click Next to begin the Installation

 

16. This might take around 45mins to complete

 

 

 

17. Click Finish.

 

Now we need to Install the Analysis Application Web Components and Analysis Application Support for Mobile Servers on the Web Server.

 

Login to the Web Tier Server and repeat steps from 1 to 12 and

 

After doing the 12 steps you need to select

 

Analysis Application Web Components and

Analysis Application support for Mobile Services

 

and continue from 14th to 17th step to finish the Installation of SAP BusinessObjects Design Studio on Distributed systems.

 

Based on the number of systems that are clustered in your environment you would need to repeat the above steps. The above installation is good if your SAP BI Platform is in a Distributed environments only.

 

Hope this helps. If I have missed anything please let me know I'll try to add or modify accordingly.

 

Thanks!

MK

↧

Are You Ready to Migrate from SAP BusinessObjects Dashboards to SAP BusinessObjects Design Studio?

June 19, 2016, 3:40 pm
Latest and popular articles on SAP ERP
≫ Next: One Design Studio Crosstab with multiply data sources changed by dropdown list
≪ Previous: How to do an Upgrade Installation of SAP BusinessObjects Design Studio 1.6 SP01 in a Distributed Clustered Environment 4.1 SP6
$
0
0

This was an ASUG webcast earlier this month.

 

 

1fig.jpg

Figure 1: Source: ASUG/Visual BI

 

2fig.jpg

 

Figure 2: Source: ASUG/Visual BI

 

Design Studio is becoming an important part of the strategy moving forward

 

3fig.jpg

 

 

Figure 3: Source: ASUG/Visual BI

 

What is the difference between Dashboards and Design Studio?

 

 

Why SAP had to move to a different environment – limited support for mobile devices, HTML5; SAP did create a way for dashboards to export to HTML5 but it is limited

 

 

Dashboards did not have a true eventing framework; catch if someone clicked on a chart or a filter

 

 

Design Studio is only HTML5.  It doesn’t matter which device.

 

 

Support for JavaScript and CSS; some customers may be hesitant but this is a huge benefit as you have more capabilities

 

 

A shortcoming for Design Studio is a lack for non-SAP data sources

 

 

With the latest announcement that Lumira Desktop and Studio moving closer, this problem will get addressed soon.  Design Studio will get the same connectivities that Lumira has today and leverage those.

 

 

4fig.jpg

 

Figure 4: Source: ASUG/Visual BI

 

 

Figure 4 is something to look for when you want to move to Design Studio

Both tools talk to BW, HANA

 

 

Design Studio can connect to HANA directly ( a benefit) – less of a hassle

 

 

Dashboards has some interesting connectivity options – a web service, a Web Intelligence/Excel as a data source.  Some can be closed using a partner extensions such as APOS (Web Intelligence)

 

 

5fig.jpg

 

Figure 5: Source: ASUG/Visual BI

 

 

Why should you move to Design Studio?

 

 

Design Studio provides control over how you treat data; you can trigger when to refresh and load data.  You can do background processing, parallel queries, and more.

 

 

In Dashboards, you could not decide to load which data.

 

 

6fig.jpg

 

Figure 6: Source: ASUG/Visual BI

 

 

Figure 6 shows where present options

 

 

Both are capable of showing in the portals, BI launchpad, and Mobile BI

 

 

If you are interested in moving to Fiori landscape, Design Studio can be integrated with Fiori Launchpad, but not with Dashboards

 

 

Dashboards has offline dashboards; if offline dashboards is very important for you in the next several months then keep looking at Dashboards.  This is part of Design Studio’s roadmap

 

 

7fig.jpg

 

Figure 7: Source: ASUG/Visual BI

 

 

Dashboards was designed for particular screen resolution

In Design Studio, dashboards are resizing, ability to add responsiveness

 

 

Data sources – there is still a gap for Design Studio – has strong support for BW/HANA; limited for non-SAP datasource; SAP improves each release

 

8fig.jpg

 

 

Figure 8: Source: ASUG/Visual BI

 

 

There is no automatic migration

 

 

Old presentations show a tool was once considered; no longer on the roadmap

 

 

The reason is from a technology point of view it would be difficult

 

 

Migration is manual effort; you should take this as an opportunity to reconsider design decisions made.  Technology has moved on; you are not designing for a specific screen resolution and mobile is more important.  Design Studio gives you the opportunity to change approach.

 

 

9fig.jpg

 

Figure 9: Source: ASUG/Visual BI

 

 

You see a comparison of visual aspects including Lumira, Dashboards, Design Studio

 

 

You could be looking for a certain visualization or map

 

 

Most of the chart types Design Studio can deliver

 

 

Some are still outstanding in Design Studio – High-Low stock chart, candlestick charts

 

 

There are chart types Design Studio provides – column % stacked, for example

 

 

10fig.jpg

 

Figure 10: Source: ASUG/Visual BI

 

 

More differences

 

11fig.jpg

 

 

Figure 11: Source: ASUG/Visual BI

 

 

Design Studio does not provide gauges out of the box; partner solutions are available.

 

12fig.jpg

 

 

Figure 12: Source: ASUG/Visual BI

 

 

Range sliders for charts is available for Dashboards, but not out of box Design Studio

 

 

Drill down is not possible out of the box for Design Studio

 

13fig.jpg

 

 

Figure 13: Source: ASUG/Visual BI

 

 

Filter components for Dashboards – select a region, country, timeframe – this was huge for dashboards

 

 

Not possible yet in Design Studio such as List View and List Builder

 

 

14fig.jpg

 

Figure 14: Source: ASUG/Visual BI

 

 

Design Studio does not provide standard maps out of the box; means like a world map with all the countries without you having to create definition

 

 

Design Studio uses GeoJSON syntax; you have to define this first

 

 

15fig.jpg

 

Figure 15: Source: ASUG/Visual BI

 

 

More component comparison – such as a what if scenario or trend icon are not out of the box in Design Studio

 

 

Offline dashboards, export to MS Office – are not out of the box in Design Studio

 

 

16fig.jpg

 

Figure 16: Source: ASUG/Visual BI

 

 

Common questions – no automatic migration process; need to migrate manually.  This gives you the chance to rethink design and use new technologies

 

 

Licensing is shown in Figure 16

 

 

Design Studio provides a data discovery template for business users to create their own applications

 

 

 

17fig.jpg

 

 

Figure 17: Source: ASUG/Visual BI

 

 

Some components are not available in Design Studio

If you are using an extension in Dashboards, is it available in Design Studio

 

 

SAP has not announced end of life for Dashboards; remember technology has moved on with browsers, mobile operating systems

 

 

 

 

18fig.jpg

Figure 18: Source: ASUG/Visual BI

 

 

Why should you move? Design Studio gives you the enterprise readiness.  Dashboard never reached the scalability required.

 

 

Design Studio is the future as part of the overall portfolio

 

 

19fig.jpg

 

Figure 19: Source: ASUG/Visual BI

 

 

There may be times to continue to use Dashboards

 

 

If offline is a must-have in the next 6-7 months, if go-live is 2016, look at Dashboards or some other alternative.  Design Studio does not have offline capabilities.  Planned for Q1 2017 release (announced at SAPPHIRE)

 

 

20fig.jpg

 

Figure 20: Source: ASUG/Visual BI

 

 

Do an inventory of dashboards you have, look at the data sources, look at your current add-ons

 

 

Is platform configured for Design Studio?  Have you sized it for Design Studio?

 

 

Rethink your design; if you design dashboard today the same

 

 

Do not forget about training your team

 

21fig.jpg

 

 

Figure 21: Source: ASUG/Visual BI

 

 

Figure 21 is a summary of key points.

 

 

Question & Answer

 

 

 

 

Q: We have Design Studio currently but are not using it because we are told Lumira and Webi will cover all our needs and are more geared toward end users. I believe that Design Studio has advantages over Webi and Lumira. Is there a differnece?

 

 

A: Yes, huge difference; look at use case; Web Intelligence (reporting) / Lumira (data discovery) designed for self-service; have to sacrifice some capabilities to build a full dashboards. Data connectivity – do not have best integration with BW and HANA which Design Studio supports – creating hierarchies is an example.

 

 

Q: Have many customers successfully made the migration to Design Studio?

 

 

A: SAP does not share out; SAP not give out concrete numbers. Look at Design Studio sessions at conference, customers downloaded in the thousands – close 100 customers increase each month

 

 

Q: From the training my understanding is there is no separate cost for the design studio licence and some features are easier to use it dashboard vs some in the Design studio. Hence we should use either of the tool based on the features we need in report?

 

 

A: May still be a scenario for Dashboards (e.g. offline) but that is not a feature you require you should look at Design Studio

 

 

Resource:

Upcoming ASUG Business Intelligence Community W... | ASUG

↧

One Design Studio Crosstab with multiply data sources changed by dropdown list

June 22, 2016, 3:27 am
Latest and popular articles on SAP ERP
≫ Next: Issues Installing SDK Extensions in SAP Design Studio 1.6
≪ Previous: Are You Ready to Migrate from SAP BusinessObjects Dashboards to SAP BusinessObjects Design Studio?
$
0
0

Here I explain how to combine one report (crosstab) with multiply data sources by a dropdown list.

After you have create a new report you have to create a crosstab, a dropdown list and several datasources:

scn1.png

scn2.png

 

You click on the dropdown list and create on Items the values which you want to select. Each value we will be mapped to one datasource.

scn3.png

After that you select Events/on select you have to map the Dropdown list with the data sources.

scn4.png

↧

Issues Installing SDK Extensions in SAP Design Studio 1.6

June 23, 2016, 9:02 am
Latest and popular articles on SAP ERP
≫ Next: How to save comments in Design Studio
≪ Previous: One Design Studio Crosstab with multiply data sources changed by dropdown list
$
0
0

I have added an extension and would like to share the issues I encountered. I was able to successfully install the KPI Tile.

 

Below Image shows how and where the SDK Extensions are added in the SAP BusinessObjects Design Studio

KPI Tile.png

Sample dashboard with KPI Tiles

Tile for SCN.png

Landscape:

SAP BI Platform 4.1 SP06 Patch 4

SAP Design Studio 1.6 SP01

 

Prerequisites:

1. JAVA  SE Development Kit 7 (Mine is Update 79)

you can download from here Java SE Development Kit 7 - Downloads | Oracle Technology Network | Oracle

 

2. Eclipse IDE for Java EE Developers

Download link: Eclipse Downloads

 

 

Issue 1: After downloading the Eclipse I was able to run the application without selecting Run as Administrator. This will be good until the last step where you hit export to convert as Archive file. At that moment it throws Access Denied Error. I'll try to see and post the image of the error later. SO EVEN THOUGH YOU'RE ABLE TO RUN WITHOUT ADMIN. DON'T RUN as it wont convert. So make sure you run as admin.

 

Issue 2: While following the steps when you're trying to Run the SDK Extension in the Eclipse you get an error saying

 

!MESSAGE Unable to find feature.xml in directory: C:\Program Files (x86)\SAP BusinessObjects\Design Studio\features\__sap.dir

 

Well looks like this is a normal message. Ignoring this I continued on to the SDK Extension Installation on SAP BusinessObjects Design Studio. It works perfectly fine.

 

If required I'll try to post a step by step procedure.

 

-MK

↧
↧

How to save comments in Design Studio

June 24, 2016, 6:26 am
Latest and popular articles on SAP ERP
≫ Next: Design Studio SDK transforming key figures into text again
≪ Previous: Issues Installing SDK Extensions in SAP Design Studio 1.6
$
0
0

In my session in the BI2016 in Vienna last week I encouraged everybody in the room to come to SCN. I promised that I would write an blog about comments to give a good reason to come here and join the community.

So this is to fulfill my promise. How to save comments in your application?

comment screen.jpg

Comment screen

 

In the example I showed an comment screen, with a save button. which added a comment component to the fragment gallery

commnent_parts.jpg

 

Comment in fragment gallery

 

And finally it was dragged in the selfmade dashboard.

dashboard_including.jpg

 

Comment added to dashboard

 

 

Using bookmarks

The trick is to use bookmarks. You can either use multiple input fields or you can have an SDK that works as an editor. The thing is that you set the text in an component. (in the first case use a formatted text component), bookmark the component.

You will be able to load the comments back again or add them into an split cell container. This allows users to add comments to their self-made dashboards.

When you save to enable users to add their own remarks. The following two lines suffice:

 

var newBookmark = Bookmark.PortableFragmentBookmark.saveBookmark("Comment_dashboard", PNL_COMMENT,"Dashboard Comment");
FRAGMENTGALLERY_1.addItem(newBookmark);
Where PNL_COMMENT is a formatted text component.
Basically you can create the content for the component with script like this :
var title = "<H2>" + INPUT_1.getValue() + "</H2>";
var content = "<p>" + INPUT_2.getValue()+ "</p>";
FORMATTEDTEXTVIEW_1.setHtmlText(title+content);

Using title as unique key

The next step is to have context related bookmarks. We want comments that apply to the current view that you’re currently have.

Suppose that you look at data voor Store 2512 in month 01 2016. You want the comment on that particular subset to be shown.

To able to retrieve that we need to store a key in the bookmark. We will use the title property of the bookmark to store the unique key for the store and month.

Var currentMonth = “200601”
 var currentKey = “2512”

Bookmark.PortableFragmentBookmark.saveBookmark(currentStore+currentMonth, PNL_COMMENT,"Dashboard Comment");

 

Colllecting later on can be done with script code similar to this

var myBookmarks = Bookmark.PortableFragmentBookmark.getAllBookmarkInfos("Dashboard Comment ");

myBookmarks.forEach(function(element, index) {
if (element.title == currentStore+currentMonth)
{
LIST_BOOKMARKS.addItem(element.id, element.title);
}
});

In this case only comments for this particular store+month are loaded into a listbox. Note you could have multiple comments as this is not a truly unique key field.

 

 

Final thing

 

You may have noticed that I use a fancy editor in my example. Actually this is a SAPUI5 element. The underlying code is quite simple to add it :

 

jQuery.sap.require("sap.ui.richtexteditor.RichTextEditor");
sap.ui.richtexteditor.RichTextEditor.extend("com.rabobank.sapui5.RichTextEditor", {                initDesignStudio: function() {                                var that = this;                                var _currentValue = undefined;                                this.attachReady(function(oControlEvent)                                                                {this.fireDesignStudioEvent("onInit");});                                this.attachChange(function(oData)                                                                {                                                                                this.fireDesignStudioPropertiesChanged(["value"]);                                                                                this.fireDesignStudioEvent("onChange");                                                                });                },                renderer: {                                }
});

And that’s it . A fairly easy workaround to have some comment functionality in your application. I hope you can find some use in your own applications.

↧

Design Studio SDK transforming key figures into text again

June 29, 2016, 8:39 am
Latest and popular articles on SAP ERP
≫ Next: Design Studio Simple but Important things to note: Part 1
≪ Previous: How to save comments in Design Studio
$
0
0

Dear all,

 

Recently I was told that working with characteristics for statistical evaluations is a nightmare on BEx queries. Let’s have a brief look at financial ratings for that purpose. They are usually represented as a sequence of characters like “AAA” and SAP provides a standard object/characteristic for that on BW. So far so good. But now the accountants ask if you could show average ratings for given aggregations on a report.

 

The calculation should be quite simple:

 

  • Transform the ratings into meaningful numbers (e.g. 1 for AAA) so that you can perform arithmetical operations on them.
  • Once you are done, transform the value back into its character representation. That is the hard part on BEx query level.

 

I want to show you one Design Studio SDK based approach to transform arbitrary texts on your dashboard to solve the task described above. It might also be useful for other use cases as well.

 

The starting point

Like I described before, let’s assume we have a data feed showing something like below:

 

 

Financial Rating

ID

Financial Instrument Type

 

Crappy bond

Bond

3

Trustworthy Share (probably ;-)

Share

1

 

The first key figure shall be transformed into “C” and the second one into “A”. My first idea was to use smart CSS selectors to identify the numbers and replace them with Text. That line of thought would have worked if there were a selector to identify special content on the HTML dom tree but there is not. The W3C drafted a version for this particular use case but it was discarded eventually. So what next? I need means to perform complex selections and manipulations on certain elements and components on my dashboard at dedicated points in time (for example when the data is actually loaded). That means JavaScript is the key to fulfilling this task.

 

The solution is rather simple but powerful

I implemented a Design Studio SDK component called Replacer, which allows you to define a mapping table for the values you want matched and replaced. In addition to that you have to put a CSS selector to identify the desired html element. This should be as selective as possible because otherwise you might change more values than you initially wanted to. As a last step you have to put the ID of the target dashboard component you want to perform the changes on. In my case this is the standard crosstab with id “CROSSTAB_1”.

 

On the JavaScript coding, thanks to jQuery, I am finally able to search for values on the HTML dom tree. I take the dashboard designer’s data mapping and CSS selection to corner the desired value and voila the key figures are text again. This approach however is not limited to that. You can see that on the following example. It is possible to manipulate whatever value on the component there is.

 

replacer1.png

     Fig.1 Original values of CROSSTAB_1

replacer2.png

     Fig.2 Mapping example

 

The first selector targets values on the header of component. The second one targets the first column of the table row on the key figure section. The third selection alters the column title of the characteristic for the rating. The successful replacement can be seen down below.

The context for all selections is defined by the technical id of the component. In my case that is CROSSTAB_1.

 

replacer3.png

     Fig.3 Result on CROSSTAB_1 after mapping

 

To actually run the “Replacer” you need to call the method replaceAccordingToMapping. You will have to call it after the target component and its data is loaded. “Replacer” makes sure to wait for the data to arrive before it runs the replacement logic, cool isn’t it?

 

You have to use regular expressions on the mapping table to realize more complex selections.

 

Final Words

The manipulation functionalities of this new component are only limited by your creativity. You can target any object on the HTML dom tree you want. You can identify it using CSS and its content to finally shape the representation to your needs. Of course messing with the inner workings of your dashboard and other components might cause side effects if your selections are not selective enough. Knowledge about CSS selectors and regular expressions is key to use this component reliably and to its full extent.

 

You can get the component by installing the latest SCN SDK repository package. The SCN blog entry below can give you directions on how to work with our awesome Design Studio SDK package:


http://scn.sap.com/community/businessobjects-design-studio/blog/2014/12/10/scn-design-studio-sdk-development-community

[Please note that a new build of the repos is necessary to finally publish the component. I will remove this message once that is done.]

 

Like all our SCN community SDK components the code is published open-source on GitHub:

https://github.com/org-scn-design-studio-community/sdkpackage

 

As always feel free to leave comments and ask lots of follow up questions.

 

Yours

Martin

↧
Search

Design Studio Simple but Important things to note: Part 1

June 30, 2016, 3:57 am
Latest and popular articles on SAP ERP
≫ Next: Design Studio Webcast Notes - Enterprise Ready Analytics - Performance, Scale, Troubleshooting
≪ Previous: Design Studio SDK transforming key figures into text again
$
0
0

Hi All,

 

Design Studio Version Used for this Blog:1.6.0.5

In this blog I'll highlight few simple but important things to note while working on few components/functionalities of Design Studio.

 

1) Add PDF in Technical Components if you want to add the functionality to Print in your Design Studio Application.

Printer_Req.jpg

 

2) GEO Maps: Data Source for a Geo Map can be found in Additional Properties and not in the regular Properties Tab.

Geo_Map_DataSource_Additiona_prop.jpg

 

3) If your Geo Map does not display results as expected, try the different options available in GeoJSON Mapping Property

Geo_Map_Properties.JPG

 

4) Bookmarks: Design Studio Bookmarks will not work properly unless the Network Port number in Embedded Web Server is set to a number between 1024-65535 in Preferences.

BookMark_Req.JPG

 

5) Hierarchy Look in Design Studio: Explore the option of Compact Display available in Edit Initial View -> Rows of a Data SourceHierarchyLikeLook_Edit_Initial_View_Rows.jpgHierarchyLikeLook.jpg

 

6) Before starting your new Design Studio application take a minute to understand the limitations of SAPUI5 m, since you cannot go back to SAPUI5 mode once you have developed the application in m mode.
NewApp.JPG

↧

Design Studio Webcast Notes - Enterprise Ready Analytics - Performance, Scale, Troubleshooting

June 30, 2016, 3:12 pm
Latest and popular articles on SAP ERP
≫ Next: Generate CSS code dynamically in Design Studio with the Community Package
≪ Previous: Design Studio Simple but Important things to note: Part 1
$
0
0

This was an SCN webcast today; these are my rough notes (as I heard them).  The recording will be available in a week, according to SAP.  Always the most interesting is the question & answer at the bottom.

2fig.png

Source: SAP

 

Standard apps are the Design Studio templates

 

Architecture:

3fig.png

Source: SAP

 

Local mode is for testing
In blue box you have BICS run time

Q: why isnt UNX shown as a data source?
A: logon to the BI platform

4fig.png

 

Source: SAP

Logon to BIP
Add-on is installed in BI Platform
Application files on BIP
5fig.png
Source: SAP

Run locally on BIP helps isolate issues

 

6fig.png

Source: SAP
How process flows happens, calls being made, which server is responsible for what
Where you see issues, root-cause

 

Best Practices:

7fig.png

Source: SAP
Product Availability Matrix
SAP Help Portal

"Make sure client and BIP add on are on the same version" was highlighted8fig.png

 

Source: SAP

9fidder.png
Source: SAP
Consider using Fiddler for troubleshooting
10fig.png
Source: SAP

Wiki: Design Studio Troubleshooting - Business Intelligence (BusinessObjects) - SCN Wiki


Question & Answer

Q: is it recommended to use NetWeaver platform over BI platform
A: Support NetWeaver today; will learn if 2.x will be supported on NetWeaver
Recommend go for BI Platform
Q: Is there any strategy in future to build Design Studio Dashboards without writing scripts..because Users like DS format and features..when it comes to Self service , its too much complex.
A: Use the templates

So for both Lumira and DS, the versions will be 1.x with some patches in the middle and then toward around Q4/Q1, 2.x is planned for release, which of course comes with some major features that people have been asking for

Q: Based on what I see in the SAP Wiki, DS Applications are not supported for Promotion Mgnt. Is this not the case? Based on Wiki page, updated 2 days ago, DS Applications (plus ccomponents) are not supported for Prom. Mgnt. and Version Mgnt. Is this accurate?    https://wiki.scn.sap.com/wiki/display/BOBJ/Object+support+for+Promotion+and+Version+Management
A: bookmarks are not supported, but application itself can be promoted since 4.1 SP2
Q: Will the process flow change with 2.x?
A: It's too early to comment if the process flow would change with 2.x. We will provide you the link for the process flow which would be updated if there is any change.

Q: BI4.x Version required for  2.x
A: Think it was 4.1 sp6or7 and 4.2 sp2 for the new lumira 2.0; 2.x we would have to wait to confirm about supported version

Q: BEx query limitations
A:  In regards to the Bex queries limitations - as it uses BICS the SAP safety belt limitation on the BW server would be your restriction - by default 500K CELLS (not rows)

Q: When will Design Studio sizing be included as an integral part of the BI Platform Sizing guide? Currently it's a SAP note which is not very clear to follow. Thanks
A: will connect with the developer team on this

Q: Are there any plans to help customers migrate from Dashboards to Design Studio by proving a migration utility ?
A: No per the roadmap

SAP Note 1127156
Q: When expect conversion from BEx WAD to Design Studio
A: no conversion planned

Q: Can we connect Webi reports to Design Studio for dashboarding?
A: you can use the APOS add-on to use Web Intelligence as a Data Source to Design Studio

Q: Is BI Web Service coming for Design Studio?
A: Not working on now; focusing on universe support; post in Idea Place at ideas.sap.com

↧
↧

Generate CSS code dynamically in Design Studio with the Community Package

July 5, 2016, 6:24 am
Latest and popular articles on SAP ERP
≫ Next: ASUG BI Webinar List - July 2016
≪ Previous: Design Studio Webcast Notes - Enterprise Ready Analytics - Performance, Scale, Troubleshooting
$
0
0

Hello,

 

I would like to share with you a method for implementing dynamic styles on any components, either standard or not, through 2 examples. It requires good scripting and CSS knowledge.

 

Pros:

  • No DOM hacking/modifications: No other component HTML code is modified
  • Only CSS, but very powerful:  Any part of the application can be accessed with the selectors
  • Dynamic: Can be controlled by the application
  • Compatible with IE and Chrome: Works like a charm in both

 

What do you need ? Rapid Prototyping Component from the SCN SDK Community Package For Design Studio !

 

These other components are optional:

  • Array: Only way to have a real global table in your application (except storing it in CSV String format)
  • Data Iterator: If you want to link the CSS to Datasource data

 

Don't hesitate to download the test application shown below here (Build for DS 1.6 SP2 P1)

 

Here's a quick demo with some comments:

PS: sorry for my french accent

 

Use-case 1: Custom Color Palette

I wanted to get a full color customizable color palette in DS. To do that, I used:

  • Buttons: up, down, +, delete etc ...
  • Array component: easy manipulation of the entries
  • Palette component to let the user choose the color

 

The last important feature would be to change the color of each list element:

 

Without the CSSWith CSS dynamically generatedCSS code
Screen Shot 2016-07-01 at 5.26.42 PM.pngScreen Shot 2016-07-01 at 5.23.14 PM.png

<style>

.colorList li:nth-child(1) * {background-color:#ff5d17 !important;}

.colorList li:nth-child(2) * {background-color:#ff8d00 !important;}

.colorList li:nth-child(3) * {background-color:#ffd141 !important;}

.colorList li:nth-child(4) * {background-color:#23b7ff !important;}

.colorList li:nth-child(5) * {background-color:#0092ff !important;}

</style>

 

It's actually quite easy to generate the CSS to get this display. Each entry of the list is a LI, and we just need to address each of the with its line number (using li:nth-child() selector) and apply the associated background color.

You can also use the attribute data-sap-ui-lvx-index the selector nth-child

 

HTML Code associated to the list:

<div id="LIST_COLORS_ddlb" data-sap-ui="LIST_COLORS_ddlb" tabindex="-1" class="sapUiLbx sapUiLbxFixed sapUiLbxStd zenControl zenTempFixForListBox colorList" style="width: 200px; height: 100%;">   <ul id="LIST_COLORS_ddlb-list" tabindex="-1" role="listbox" aria-multiselectable="false" aria-activedescendant="__item3">      <li id="__item0" data-sap-ui="__item0" data-sap-ui-lbx-index="0" tabindex="-1" class="sapUiLbxI" title="#ff5d17" role="option" aria-selected="false" aria-setsize="5" aria-posinset="1"><span class="sapUiLbxITxt" id="__item0-txt" style="text-align:left">#ff5d17</span></li>      <li id="__item1" data-sap-ui="__item1" data-sap-ui-lbx-index="1" tabindex="-1" class="sapUiLbxI" title="#ff8d00" role="option" aria-selected="false" aria-setsize="5" aria-posinset="2"><span class="sapUiLbxITxt" id="__item1-txt" style="text-align:left">#ff8d00</span></li>      <li id="__item2" data-sap-ui="__item2" data-sap-ui-lbx-index="2" tabindex="-1" class="sapUiLbxI" title="#ffd141" role="option" aria-selected="false" aria-setsize="5" aria-ponset="3"><span class="sapUiLbxITxt" id="__item2-txt" style="text-align:left">#ffd141</span></li>      <li id="__item3" data-sap-ui="__item3" data-sap-ui-lbx-index="3" tabindex="0" class="sapUiLbxI sapUiLbxISel" title="#23b7ff" role="option" aria-selected="true" aria-setsize="5" aria-posinset="4"><span class="sapUiLbxITxt" id="__item3-txt" style="text-align:left">#23b7ff</span></li>      <li id="__item4" data-sap-ui="__item4" data-sap-ui-lbx-index="4" tabindex="-1" class="sapUiLbxI" title="#0092ff" role="option" aria-selected="false" aria-setsize="5" aria-posinset="5"><span class="sapUiLbxITxt" id="__item4-txt" style="text-align:left">#0092ff</span></li>   </ul></div>

 

I just added .colorList class to the list and called this script each time a modification is done:

var style = "<style>\n";
//Loop on the different colors in the list (stored in an array)
ARRAY_COLORS.getValuesAsSimpleStringArray().forEach(function(element, index) {  var ind2 = index + 1; //CSS index starts at 1 when array starts at 0  //Generate a CSS style for each list entry, using nth-child to refer to each line  style = style + ".colorList li:nth-child(" + ind2 + ") * {background-color:" + element + " !important;} \n";
});
style = style + "</style>";
TA_GEN_CSS.setValue(style);
if (!CB_CSS_PALETTE.isChecked()) {  style = "";
}
//Include the CSS style in the HTML
RAPID_PROT_COLORS_CSS.setHTML(style);

 

Use-case 2: Crosstab customizing with indicators

Just to demonstrate we can also work on standard components, I will show you how to change alter the style of a cross tab like that:

 

Normal CrosstabCustomized Crosstab
Screen Shot 2016-07-01 at 6.02.54 PM.pngScreen Shot 2016-07-01 at 5.23.35 PM.png

 

Again, the CSS is different from DOM hacking, therefore limits any serious issues.

 

The most difficult part is to get the working CSS, and I recommend testing it in Chrome or IE in debug before.

The first cell (Billed quantity) needs to be referenced by this path:

     .dynamicCT #CROSSTAB_1_dataArea tbody tr:nth-child(1) td:first-child div.sapzencrosstab-DataCellContentDiv


The TR corresponds to each of the lines (and the number will need to be dynamic), the TD corresponds to the columns, i.e. Billed quantity, and finally the div contains the measure value.


The algorithm is:

  • Loop at each line
    • Calculate %variance between Current Year and Last Year Billed quantity
    • if %variance is greater than threshold then:
      • If negative: display a red down arrow in front
      • If positive: display a green up arrow in front
    • Add after the measure value the %variance in parenthesis

 

Note: that Pixel based display must be activated to work.

Note 2: The script is at the end.

 

So, as a conclusion, only the CSS functionalities and your imagination can limit what you can do. Please do comment if you like it or if you have any questions !


Thank you for reading.


And finally the script:

//Data Iterator: get all the rows
var rows = DATA_IT.getRows();
//Get the threshold from the Input Field
var thresh_u  = Convert.stringToFloat(IF_THRESH.getValue());
var thresh_d  = thresh_u * -1;
//Start the Style Markup
var content = "<style>\n";
//Hide PY billed qty
content = content + " .dynamicCT table.sapzencrosstab-ColumnHeaderArea * tr.sapzencrosstab-HeaderRow td:nth-child(3) { display: none}\n";
content = content + " .dynamicCT #CROSSTAB_1_dataArea tbody tr td:nth-child(3) { display: none}\n";
//Loop at each entry from the datasource
rows.forEach(function(element, index) {
//Get measure Billed quantity and Previous Year Billed Quantity  var mes = element.getMeasureValue("BILLED_QUANTITY");  var mes_ly = element.getMeasureValue("PREV_BILL");
//always add 1 to the array index because the CSS starts at 1. This index will bu used to address the correct line  var index2 = index + 1;  var diffpc = 0.0;
//calculate the difference in percentage  if (mes_ly != 0) {     diffpc = (mes - mes_ly) / mes_ly * 100;     diffpc = MATH_1.round(diffpc);  }  var sign = "";  if (diffpc < thresh_d) {  //Percentage value is below -Threshold  var id = ".dynamicCT #CROSSTAB_1_dataArea tbody tr:nth-child(" + index2 + ") td:first-child div.sapzencrosstab-DataCellContentDiv:before ";    content = content + id + " \n{ content:url(http://www.exilim.eu/global/images/red-arrow-down.png);}\n";  } else if (diffpc > thresh_u) {  id = ".dynamicCT #CROSSTAB_1_dataArea tbody tr:nth-child(" + index2 + ") td:first-child div.sapzencrosstab-DataCellContentDiv:before ";    content = content + id + " { content:url(https://upload.wikimedia.org/wikipedia/commons/4/48/Icons-mini-arrow_up.gif);}\n";    sign = "+";    }    id = ".dynamicCT #CROSSTAB_1_dataArea tbody tr:nth-child(" + index2 + ") td:first-child div.sapzencrosstab-DataCellContentDiv:after ";    content = content + id + " \n{ content:' (" + sign + diffpc  + "%)';}\n";
});
content = content + "</style>";
TA_GEN_CSS2.setValue(content);
if (!CB_CSS_CT.isChecked()) {  content = "";
}
//Insert the HTML content in the page
RAPID_PROT_COLORS_CSS2.setHTML(content);
↧

ASUG BI Webinar List - July 2016

July 11, 2016, 8:07 am
Latest and popular articles on SAP ERP
≫ Next: Changing the GeoMap basemap after MapQuest discontinue the direct tile access
≪ Previous: Generate CSS code dynamically in Design Studio with the Community Package
$
0
0

Here the updated list of webinars for July 2016


For all webinars :

 

  • Start Time : 11:00 AM (CT), 12:00 PM (ET), 10:00 AM (MT), 9:00 AM (PT)
  • Duration : 1 hour


 

 


July 12 - Tetrapak BI Reporting Strategy and Business Empowerment with SAP BusinessObjects Design Studio

 

Learn how Tetrapak is synergizing IT and business to drive agile business intelligence (BI) strategy using standardized, repeatable, and clearly understood processes across the organization. This session will present the key driving principles for deploying BI strategy within Tetrapak, where Performance = People+Process+Tools.

 

 

July 13 - SAP Runs SAP: Information Design at SAP • Framework on Reporting Principle


The International Business Communication Standards (IBCS) are proposals for the conceptual, perceptual, and semantic design of comprehensible business reports and presentations. The session will cover the selected approach to standardize reporting in the controlling department at SAP and the technical implementation in various SAP reporting tools.s

 

 

July 18 - SAP BusinessObjects Business Intelligence Performance and Sizing for BI4.2


This session will discuss sizing and performance best practices for the SAP BusinessObjects Business Intelligence platform, 4.2 release

 

 

July 19 - BI and SAP HANA Platform Optimization • Graybar Lessons Learned Leverage Existing BI Models

 

This session will provide an end-to-end view of optimizing overall data models. It will focus on approach, assessment results, and enabling repetitive process for an enterprise-wide data warehouse. It will also include deeper insights on key challenges and opportunities to reduce the number of layers for better performance.

 

 

 

July 20 - From Business Warehouse to Business Intelligence: Bell Helicopter’s Journey

 

We cover Bell’s multi-year journey to develop true business intelligence and analytics capability. We discuss lessons learned about implementing SAP Business Warehouse powered by SAP HANA. We also talk about new development practices, near real-time data feeds, integrating with non-SAP systems such as Hadoop and QlikView, predictive analytics, text search with Solr, and the future road map.

 

July 21 Edge Editions: New and Updated Solutions for the Midmarket

 

 

The group of Edge editions for the midmarket has never been stronger. Recent additions and updates are providing new and exciting capabilities and have helped simplify solution areas. This presentation will provide an overview of updates to existing solutions, describe what is new across the group, and discuss future solution areas.  Solutions covered include BI, Predictive Analytics, and EIM solutions.

 

 

July 26 - Learn How IDEXX Migrated SAP Business Warehouse powered by SAP HANA in Five Weeks


Learn how IDEXX Laboratories Inc. successfully migrated the SAP Business Warehouse application powered by SAP HANA from an Oracle database within five weeks

 

 

July 28 - On-Premise BI Versus SAP BusinessObjects Cloud: What's In It for SAP Business Warehouse Customers?

 

The session will give an overview and strategy update with regards to our business intelligence offerings from the point of view of a customer with the SAP Business Warehouse (SAP BW) application. We will explain the latest innovations, as well as the strategy for our on-premise and cloud offering, and we’ll offer recommendations for your existing investment in SAP BW.

 

 

 


I hope you enjoy these session.

 

Please note, that these are webinars organized by the ASUG BI group and for attending you need to be a ASUG Member.

↧

Changing the GeoMap basemap after MapQuest discontinue the direct tile access

July 12, 2016, 6:10 am
Latest and popular articles on SAP ERP
≫ Next: SAP User Group SAP BusinessObjects Design Studio Roadmap Recap
≪ Previous: ASUG BI Webinar List - July 2016
$
0
0

I had a call from a customer today about the Geo Maps within their Design Studio dashboard. They use the standard GeoMap component which, by default, uses the MapQuest basemap (http://otile1.mqcdn.com/tiles/1.0.0/map/{LOD}/{X}/{Y}.png).

 

When running the dashboard, they received the following messages in the map rendering (note this is a test map/dashboard and not the actual productive version).

Pic 1.png

 

Looking at the MapQuest communication, they discontinued the direct tile access to MapQuest legacy maps after 11th July 2016 and you need to sign up for an account (and developer key) on their developer network.

http://devblog.mapquest.com/2016/06/15/modernization-of-mapquest-results-in-changes-to-open-tile-access/

 

In order to quickly get the maps working again and not have to sign up for an account and worry about API/developer keys I used some of the other base maps available. Thanks to Mike Howles for his guidance in this previous SCN post.

 

The new/alternative base map URLs can be entered into the GeoMap’s Basemap URL property.

Pic 2.png

 

 

The ones I quickly tried (after converting the parameter to be Design Studio friendly) were as below, along with the screenshots of the tests I did.Obviously the maps look different to the MapQuest one so that needs to be taken into consideration. The custom GeoJSONs worked perfectly again after choosing the new basemaps.


OpenStreetMap

http://tile.openstreetmap.org/{LOD}/{X}/{Y}.png

Pic 3.png

 

Stamen Map

http://tile.stamen.com/toner/{LOD}/{X}/{Y}.png


Pic 4.png


ESRI

http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{LOD}/{Y}/{X}.png

Pic 5.png




For the customer's scenarios they have two map layers  - one for the group of locations, where the boundary of the region is coloured and then the coloured polygons within that boundary.

↧
Remove ADS
Viewing all 662 articles
Browse latest View live

Search

  • SAP>>
  • Latest
  • Popular
  • Trending
© 2025 //www.rssing.com