Quantcast
Channel: SCN : All Content - SAP BusinessObjects Design Studio
Viewing all 4216 articles
Browse latest View live

SAP Design Studio SDK Maps (Part 4) - Maps with Bubbles and Maps with Plots

$
0
0

This is my 4th post related to mapping in the Design Studio SDK.  Including this post, my last 3 are specifically related to vector-based maps using D3 and TopoJSON.  I've taken the maps a step further to include a new layer in the Choropleth Maps, as well as a new component called Location Intelligence maps which allows you to plot by latitude and longitude instead of by geographical feature.

 

Below is a preview overview of what is now available from the SCN Design Studio SDK Development Community extension.

 

What's New?
The focus for this iteration was placed on new functionality and additional bug fixes.


  • New Features:
    • New (optional) Bubble Measure property now available to your Choropleth Maps which means you can now visualize 2 measures, one by a quantile/quintile color scale for feature shading, and now a second linear scaled Bubble overlay based on a second measure.
    • New Location Intelligence Map that when provided a Latitude and Longitude field, will place plot markers on the map.  A third optional Title field can be given to show the title of the location when the tooltip is shown.
    • More Maps - Added some more European country maps
  • Fixes:
    • Maps used to not work when only one measure was in the data set.  This was an unintentional bug now corrected.
    • Manual Map Data changes can be done in text box and updates now in Design Studio.
    • Fixed issue with maps that use diacritics.  Design Studio property storage seems to have limitations on certain character set encoding.
  • To Do:
    • Location Intelligence Maps onclick event for plot markers.
    • Optional Data-driven Marker Size by Measure (Effectively allowing a marker to become a Bubble)

 

What's New for SDK Developers?

 

  • Choropleth Map Component now inherits from a Base Map Class
  • Location Intelligence Map now inherits from said Base Map Class.

 

View of 2 Location Intelligence Maps followed by 2 Bubble Overlay in Choropleth Maps:


maps_5.png

 

This is available NOW from the SCN Design Studio SDK Development Community link.

 

Questions/Comments/Feedback always welcome.

 

Enjoy!


Column Chart with different colors

$
0
0

Hi,

 

I would like to use Column Charts with a Kind of  "Color coding"

 

In the attached Picture you can see a table sorted by column A. In Column B I have different values that I would like to Show in a normal Column Chart. I don't want to use the same Color for every column. The Color depents on the Information in column 3.

 

Is this even possible?

 

A friend gave me the  CSS nth-child() as a hint but I'm not sure if this is the right way

 

Many thanks!

Error with Column Combination - Dual Axis SP01

$
0
0

Hello all,

 

After applying the patch SP01 in my 1.4 SP00 installation (both client and BI Platform) I'm facing some issues with the component Column Combination - Dual Axis (I'm working with HANA as Source data):

 

First Problem: The chart, executed on BI Platform, doesn't show correctly the measures defined in the initial view of the DataSource.

 

1. I create a DataSource with this initial view:

 

Initialview.png

2. I define the Column Combination - Dual Axis as default with the previos DataSource assigned. If I execute it on Local Mode, it works:

 

chartok.png

3. But if I execute it on BI Platform mode I get this error:

 

charterror.png

 

It seems that doesn't filter properly the measures defined in the Initial view and when it tries to represent it, fails at they are no configured in the Data of the Additional Properties of the chart.

 

 

Second Problem: I think that the Additional Properties - Data Series tab of the Column Combination - Dual Axis is completely broken:

 

With the same DataSource and chart as before, I write CHART_1.setDataSelection({"[Measures]": ["IMPORTE_FAC_REAL","IMPORTE_FAC_PLAN","IMPORTE_FAC_AA"]}); at the On Startup script.

 

The result is this:

 

error3.png

 

Nothing weird until you see the configuration of the DataSeries...

 

error4.png

 

If you see it, you will see that the 3 measures that are displayed are 2 configured as BAR and 1 as LINE, but if you see the chart, there are 2 lines and 1 bar...

 

Moreover, sometimes is the Axis that is not set properly and you get an error in the chart as it tries to plot the measures but all the measures are in the same Axis... But is not true as they are configured in the correct Axis but seems that Design Studio doesn't get it properly.

 

charterror2.png

 

After all of this, has someone found a similar problem or can you replicate this?

 

 

Thank you very much

CHart ONSELECT event

$
0
0

Hi Friends,

 

I am unable to slecet the chart ,that while clicking on the column chart, its unable to read the data after one click,

 

Table data should get changed after clicking on the chart.

 

Also enabled ONSelect in chart .

 

First Filter

One dropdown for selecting the year where all the components are changing after selecting the year ,

 

Second Filter :

 

AFter clicking on the chart ,corresponding data is diaplayed in crosstab

 

 

 

PLANTMONTHLY_DS.setFilter("0PLANT", CHART_3.getSelectedMember("0PLANT"));

 

 

 

Please do the needful.

 

 

 

 

Regards

Sushma

Filtering a data source by string variable

$
0
0

Hello everyone,

 

We have two data sources which share the attribute "location". Both are based on BEx-Queries.

Data Source 1 contains all available locations, while data source 2 contains only a subset of locations. Our goal is to filter data source 1 by its location attribute so that it contains the same number of rows with the same locations as data source 2 (like an inner join).

As it is possible to filter a data source like this

 

DS_xy.setFilter("Dimension", ["member1", "member2", "member3", ... ]);

 

our idea was to use the following method:

 

1. Declare a string variable and an array of the members

 

var text = "";                     //we also tried to use a global scripting variable

var array = DS_2.getMembers("Location", 1000);

 

2. Use a nested for-loop to read all the locations of data source 2 into the string

 

array.forEach(function(element, index) {

      text = "\"" + element.externalKey + "\"";

      array.forEach(function(element, index) {

           text = text + ", \"" + element.externalKey + "\"";

      });

});

 

3. Filter the data source by the generated string (which contains: "location1" , "location2", "location3", ...)

 

DS_1.setfilter("Location", [text]);

 

It doesn's work. We have checked the externalKey-format, which corresponds to the format of members in data source 1.

 

When I copy the string returned by variable "text" into the code like this

 

DS_1.setFilter("Location", ["location1", "location2", "location3"... ];

 

it works perfectly.

 

Can anyone help? Thank you in advance!

Christiane

How to get dimension members for displaying them in a text element in Design Studio?

$
0
0

Hello,

 

In DS 1.2 we are using a BW query for TOP 10 countries in a datasource as shown in the following example:

 

CountryTurnover
DE50000
AT40000
CN20000
........
BR100

 

Country is a characteristic in rows (technical name 0COUNTRY), turnover a keyfigure in columns (technical name ZTURN) and TOP 10 is a condition in the query.

 

Now we want to get e. g. the second dimension member (in the example "AT") and display it in a text element (the selection of the country should be dynamic). Does anyone have ideas how we can realize this?

 

Thanks in advance,

Bernd

Data Source Initial View

$
0
0

It is very handy to set an Initial View within Design Studio at design-time.  Presumably, behind the scenes, the initial view is stored as some JSON string and used to initialize the Data Source.  I am wondering if its possible to take advantage of this functionality from an SDK component.

 

While the methods on the Data Source object are functionally complete - they are a bit cumbersome when trying to make a lot of changes to a Data Source's view.  I would much rather build an 'Initial View' JSON in the .ZTL and pass it directly to the Data Source to completely configure the view with a single function call.

 

For example I would like to set layout, filters, results display.  This is the only way I know to do this now:

DS_1.setFilter("DB7VSUP6QYPP3Q0B8VD7GTCH2", ['DB7VSUP6QYQGSCC2KESTJ8QQU']);

DS_1.moveDimensionToColumns("DB7VSUP6QYPP3Q0B8VD7GTCH2");

DS_1.moveDimensionToRows("0CALMONTH");

DS_1.setTotalsDisplay("0CALMONTH", TotalsDisplay.HIDE);

 

I would much rather do this (my own syntax, since I do not know the format for the Initial View object):

var myview = {

     layout: {

          columns: ['DB7VSUP6QYPP3Q0B8VD7GTCH2'],

          rows: ['0CALMONTH']

     },

     filters: {

          DB7VSUP6QYPP3Q0B8VD7GTCH2: ['DB7VSUP6QYQGSCC2KESTJ8QQU']

     },

     dimensions: {

          0CALMONTH: {totaldisplay: TotalsDisplay.HIDE}

     }

};

DS_1.setView(JSON.stringify(myview));

Design Studio SDK: Result Set Information Component

$
0
0

This component will target new functional area - a bit of help for app designers, giving basic information about the data source. I am not sure which information can be helpful, so I started with basic statistics, like number of data cells, columns (for header and data area) and rows.

 

How does it Look?

(very primitive from UI point of view)

resin.PNG

 

But,...

There is another interesting feature - as Design Studio supports currently data bound components with only one data source assignment, this component is also having a flag:

resce.PNG

 

What it does, it places the connected result set in central place in Java Script object. Then, another component can access this result set and other result sets and combine information from those.

 

Code

 

var dataSourceInfo = {};  dataSourceInfo.plainData = that.getData();  dataSourceInfo.flatData = that._flatData;  if(that.getDCentralProvisioning()) {  org_scn_community_databound.centralDataStorage[that.oComponentProperties.id] = dataSourceInfo;  }

The data source is provided in the central array under the component technical name and can be accessed as below:

 

var lDataProvisioner = that.getDDataProvisioner();  var hasDataProvisioner = false;  if(lDataProvisioner != undefined && lDataProvisioner.length != "") {  hasDataProvisioner = (org_scn_community_databound.centralDataStorage[lDataProvisioner] != undefined);  }
if(hasDataProvisioner) {  that._flatData = org_scn_community_databound.centralDataStorage[lDataProvisioner].flatData;
}

(example from UI5 Table which implements this way of loading data sources)

 

What is the Use Case?

Of course, having the data sources stored centrally, we can now mix up result sets from more than one data source. For this, reflect to the component Design Studio SDK: Result Set Mixer Component.

 

as of today (26.03.2015) this component is in a "test phase" as the mixing options are quite restricted. Anyway, both components are in the compiled package and you can try to experiment on it. The description on basic use case you can find here Mixing Data from 2 Result Sets together (join, select).

testp.PNG

Help / API Specification

Go directly to the help site and find the component: Component List - SCN Design Studio Community

 

Download & Use

This component is available on the community package, as in SCN Design Studio SDK Development Community

 

Example as BIAPP:

org-scn-design-studio-community/applications · GitHub

 

Any thoughts?

feel free to add as usual...

 

Enhancements Ideas?

if you have good ideas (to those who would like to contribute but cannot code...) - place an "issue" with tag "enhancement" under Issues · org-scn-design-studio-community/sdkpackage · GitHub


Design Studio SDK: Result Set Mixer Component

$
0
0

There is definitely a use case to mix up 2 data sources (2 queries) in the fronted - in scenarios where you have the same keys, but measures from 2 areas (eg. sales and purchase) separately.

 

There is an open idea on the "multiple data sources in SDK", here.

Or an idea direct on merging data sources, here.

 

This component can do it.

 

How?

First, it uses the central data source provisioning via Design Studio SDK: Result Set Information Component. This means, the component itself does not have any data source assignment at all... but it has 2 properties:

  • Master Result Set Provisioner
  • Slave Result Set Provisioner

     sla.PNG

 

This component works as follows:


  • It takes the MASTER, which can be defined as "Structure" or "Rows".


          Structure - basically one dimension in columns and one in rows

          stra.PNG

          Rows - 1 dimension in rows (today works only for 1 dimension)

          oned.PNG

  • then, the cell-coordinated from MASTER will be selected and with this selection the data will be picked up from slave result set.
  • the new master will be provided into central storage under the technical name of the Result Set Mixer
  • and, you can mix it up with other result set

 

Based on the "TYPE" it will either place the selected data in the cell directly OR append additional column with the data.

 

The result of "Structure" Mix:

fill.PNG

 

The result of "Rows" Mix (here the same measure has been appended)

appe.PNG

Of course, such mixed data can be done also conditionally - for this 3 options are available:


  • condition on content
  • condition on row (key)
  • condition on column (key)


and also in case the slave has more entries with same keys (can happen when it is a data source w/o measures and the 3 column is a dimension column) you can choose if "last wins" or "a collected content" should be created.

cpon.PNG


The Conditions

As it is in "experimental" mode, the parsing of conditions can be found in the repository only, function
org_scn_community_databound.checkRule=function (rule, content, value)


I need some time to describe this part (after some more experiments). But the general idea is to allow conditions like:

  • empty
  • contains string
  • equals
  • or value > < = etc..


Any way, stay tuned for the blog Mixing Data from 2 Result Sets together (join, select) which will go in detail on the practical use (I hope I get this done by next week). There also some examples will be provided.


Help / API Specification

Go directly to the help site and find the component: Component List - SCN Design Studio Community

 

Download & Use

This component is available on the community package, as in SCN Design Studio SDK Development Community

 

Example as BIAPP:

org-scn-design-studio-community/applications · GitHub

 

Any thoughts?

feel free to add as usual...

 

Enhancements Ideas?

if you have good ideas (to those who would like to contribute but cannot code...) - place an "issue" with tag "enhancement" under Issues · org-scn-design-studio-community/sdkpackage · GitHub

Mixing Data from 2 Result Sets together (join, select)

$
0
0

This blog describes a functional and practical use of

for one use case - merge data from 2 result sets (fill a structure or append a column).

 

For today, only a primitive options are possible, but anyway it is a good start...

 

Use Case 1. Fill an Empty Structure.

 

The master Result Set looks like:

ds_start.PNG

The slave Result Set looks like:

ds_merge.PNG

Selection Options:

selec.PNG

Explanation:

  • Column Index in Slave is "2", means that the "Region" will be read out.
  • Multiple Matches is set to "Collect", means that the entry is inserted separated by ,

 

You have to use the component "UI5Table" for visualization, with following settings:

tabnl.PNG

It means, in this setup, the table is not requesting data source directly, but is taking the shared result set after data mash-up.

 

Use Case 2. Append a Column from 2nd Result Set.

 

The master Result Set looks like:

r1.PNG

The slave Result Set looks like:

r2.PNG

And the result (carefully! the selection is today only on column 0 - so it works only for such simple resultsets)

rr.PNG

and, as a result there is a combined result set from 2 data sources.

 

Examples of used BIAPPs:

org-scn-design-studio-community/applications · GitHub

 

  • SDK_DATAMIXER_P1 (the first case)
  • SDK_DATAMIXER_P2 (the second case)

 

This is a start only, next is:

  • extend the selection capabilities to more than one column for APPEND
  • think about right / left joins and unions
  • finalize and describe the rules for conditions

 

I hope someone of you will be inspired on this direction.

Using a VAR in getData Statement

$
0
0

Hi All,

 

Does anyone know why this works:-

 

var TW = "36" ;

 

// Calculate the Shopper Stats

var ITEM_VAR = SHOPPER_STATS.getData("BASKET_ITEM_AVG", {"WEEK_NUM": TW }).value

 

But when I try to use a variable such as

 

// Get the max week

var WEEK_ARRAY = SHOPPER_STATS.getMembers("WEEK_NUM", 300) ;

var MAX_WEEK = 0 ;

WEEK_ARRAY.forEach(function(element, index) {

  if (Convert.stringToInt(element.text) > MAX_WEEK) {

  MAX_WEEK = Convert.stringToInt(element.text) ;

  }

}) ;

 

// Set this week and last week

var TW = MAX_WEEK+"" ;

 

// Calculate the Shopper Stats

var ITEM_VAR = SHOPPER_STATS.getData("BASKET_ITEM_AVG", {"WEEK_NUM": TW }).value

 

I get the error "Wrapped java.lang.NullPointerException: while trying to invoke the method java.lang.String.startsWith(java.lang.String) of a null object loaded from local variable 'memberKey'"

 

I have put TW into an alert and the number is shows me is 36 so I know that is the same.

 

Cheers,

 

James.

filter: progid:DXImageTransform.Microsoft .... with IE does not work

$
0
0

Hi,

 

I would like to use a color gradient in a text box and I've added the following code.

 

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#f1f1f1') !important;

 

background:-moz-linear-gradient(bottom,#b3b3b3,#f1f1f1); /* Firefox */

 

background:-webkit-gradient(linear,left top,left bottom,from(#b3b3b3),to(#f1f1f1)); /* Chrome, Safari */

 

 

It works for Firefox, Chrome but not IE 11. Is there something wrong with the coding or is this a "feature" of Design Studio?

 

Thx

setVariableValueExt() ignored within On Variable Initialization when Load In Script = TRUE

$
0
0

Issue: When an applications data sources are set to load in script, attempting to set variables within On Variable Initialization ceases to work.

 

Workaround: Move setVariableValueExt() code to On Background Processing AFTER the data source has been loaded (i.e. DS_1.loadDataSource()).

 

Questions:

  1. Is this expected behavior?
  2. If we execute loadDataSource and then subsequently setVariableValueExt(), wont this refresh the data source twice?
  3. How does this work in scenarios where we have multiple data sources with different subsets of the total amount of variables used by the application? (e.g. DS_1 contains 2 out of 5 variables, DS_2 contains 3 out of 5 variables and so on and so fourth. In this scenario we would not be able to set variable values until a sufficient number of data sources have been loaded).

 

setVariableValue.png

display images created with R Server ?

$
0
0

I created a dashboard with design studio 1.3 that should display images that are created by R server. The data on HANA gets updated in real time, so every time the dashboard gets started a hana view and R server give back a new set of updated data and of course an updated graph. How can I display the new updated graph in my dashboard? My idea to solve the problem is to store the updated R image in the same folder under the same name. Unfortunately I have no clue what folder on what system I should use. Any input is highly appreciated.

How to sort value in arrays

$
0
0

Hi Supers,

 

If a have a float array, for ex. var Arry1=[8900,421,366.20,550.19], how can I sort the values in result like:

 

366.20, 421, 550.19, 8900

 

I know there's a for each for array, I tried some way but didn't work out,  how to code to sort them?

 

Thank you very much!


Design studio - assign measure and axis type for dual axis chart in script

$
0
0

Hello,

 

In my application i need to use dual axis chart - two measures must be in columns (axis 1), third in line (axis 2).

2015-03-26 17_33_13-DB_EMPLOYEE_TURNOVER_02 - SAP BusinessObjects Design Studio.png

If Data source property Load in script = false, it can be asily achieved by Additional properties of Chart:

2015-03-27 11_46_50-DB_EMPLOYEE_TURNOVER_02 - SAP BusinessObjects Design Studio.png


 

But i have to use Data source (Load in script = true).

In that case there is no possibility to manage which measures should be assigned to which axis using script.


For example my script:

// Selecting 2 measures
DS_1.setFilter("6JW7K7JQYJR263T2MGQ78RZNN",["6JW7K7JQYJR263T2MGQ78TKJN","6JW7K7JQYJR263T2MGQ78TQV7"]);
//Setting Chart type
CHART_1.setChartType(ChartType.DUAL_COLUMN);

As shown each measures are in different Axis, but same type - column

2015-03-27 12_51_45-DB_EMPLOYEE_TURNOVER_02 - Analysis Application.png

Now add third measure:

 

// Selecting 3 measures
DS_1.setFilter("6JW7K7JQYJR263T2MGQ78RZNN",["6JW7K7JQYJR263T2MGQ78TKJN","6JW7K7JQYJR263T2MGQ78TQV7","6JW7K7JQYJR263T2MGQ78TX6R"]);
//Set Chart type
CHART_1.setChartType(ChartType.DUAL_COLUMN);

Now there are first measure in Axis 1 and the other two in Axis 2 and axis type column:

2015-03-27 13_14_41-DB_EMPLOYEE_TURNOVER_02 - Analysis Application.png

Is there any solution to control measure assignment and type of axis by scripting using standard functions?

Member Acces Mode Feature does not appear (1.4)

$
0
0

Hi,

 

I am starting to use SAP DS 1.4 SP0 Patch2 (14.0.5) using UNX Universes as data source to buidl the queries. I have created some data sources but when DS shows the context menu of a dimension element the option "Memeber accces mode" does not appear.

 

Some one knows whys this feature is not longer appearing? It is possible to use this feature when using UNX-based queries?

 

Thanks

overlap crosstab

$
0
0

Hi all,

 

i’m using two crosstabs one above the other like this:

 

Bild1.jpg

 

If I expand the upper crosstab, I want to slide the position from lower crosstab down automatically.In WAD it is a standard funcionality. I don’t want to overlap the crosstabs like this:

Bild2.jpg

Also I don’t want to get a scrollbar in the upper crosstab like this:

 

Bild3.jpg

It would be really great if someone has a solution for this!

    

Thanks and Regards

 

Gabriel Motor

Install Extensions

$
0
0

Hello,

 

We have BO developers who want to install Design Studion extensions from their Local machine to the 'Platform'. They are using the Design Studion Desptop tool.

 

However, the option to 'install' extensions is not active - image of the issue: http://i.imgur.com/1zKuBi0.png

 

We have checked the Security for the Application 'Design Studio', but there are not many options there, especially to allow access to install extenstions.

 

Myt question is is it so that only 'Administrators' can install extensions?

 

If not, how can general user install them? Where and what access needs to be provisioned?

 

Thanks.

 

http://i.imgur.com/1zKuBi0.png

Login Issues to SAP HANA from Design Studio

$
0
0

Hello All ,

 

I am pretty newbie here so the question might seem a bit elementary .We are trying to connect to our SAP HANA environment from Design studio .When we are pinging the XSEngine URL it is responding properly .But when we are  trying to connect from Design Studio the following error occurs .

 

Here is the landscape we have designed so far :

 

  1. HANA Server is installed .
  2. BOXI 4.1 SP 5 server is installed .
  3. HANA and BO servers are communicating through SSL .
  4. Design Studio Add-on is installed on BO server .

 

When we tried to explore the path using HANA explorer we found the path mentioned in the error screen does not exist .

 

What we need to do to overcome this error ?

Design Studion Hana connectivity error.JPG

 

Regards,

Sourav Roy

Viewing all 4216 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>