Design Studio 1.6 on SAP Netweaver Portal
SAP BusinessObjects Design Studio 1.6 on SAP Netweaver Portal. In the roadmap of SAP we learn that the way to go is to embed your Design Studio app’s to the SAP BusinessObjects BI Platform. But this is not for all companies directly applicable. For those who the SAP Netweaver Portal is the only platform available, I hope this blog is helpful.
- SAP BusinessObjects Design Studio app contains:
- 68 Tiles
- 43 Bex-queries are loaded into the app
- first page opens in 10 seconds
- the whole app loads in less than 60 seconds
-
System & versions
- SAP Netweaver 7.4
- SAP BW 7.4 SP 15
- SAP BusinessObjects Design Studio 1.6
- When upgrading to SP4, Basic layout will also not be available for SAP Hana and the ready to run templates (Data Discovery – Generic Analysis and Online Composition, will not be available on SAP Netweaver)
-
Configuration
- Chapter 5: https://websmp101.sap-ag.de/~sapidb/012002523100019196712016E/ds_16SP04_admin_nw_en.pdf
- Note chapter 5.8 Configuring the Report-Report Interface for Analysis Applications!
- http://<server>:<port>\nwa to go to the Netweaver Administator
- Restart the design studio Java applications in following order, not only .portal like in the SAP document
- Chapter 5: https://websmp101.sap-ag.de/~sapidb/012002523100019196712016E/ds_16SP04_admin_nw_en.pdf
-
Embedding Design Studio app’s on the SAP Netweaver portal
- Portal Content > ABAP Roles >select or create role > add Iview from template > Design Studio > save > open wizard > add parameter: APPLICATION=”name of your DS app”
- Portal Content > ABAP Roles >select or create role > add Iview from template > Design Studio > save > open wizard > add parameter: APPLICATION=”name of your DS app”
-
Setup of Reporting environment
-
Design Studio as replacement of the Web Application Template
This would be the most ideal solution, to change swiftly all the reports to a neat Design Studio interface. But this is sadly not supported by SAP now and in the future. SAP is heading only for improvements on the SAP Business Objects BI Platform and will not improve the SAP Netweaver Portal.
-
Design Studio app’s per Bex Query
This solution I would recommend not to use. As it has a high work rate to save manually each Bex Query in a Design Studio app. Even if you reuse each time the same app. Modifications on the reused app will be needed on each item saved on the platform.
-
One App meets all
The Netweaver Portal embeds one Design studio app as a portal interface. Via that app you ‘ll retrieve instantly information and you will be able to jump to all bex queries related to it. In this case you’ll only have to maintain 1 app.
-
-
One App meets all – explained step by step
The interface is build from scratch in the SAP BusinessObjects Design Studio application. The goal of the interface is to give you a clear overview of your facts & figures of your business. In the “Welcome (Welkom)” page we will show KPI from different subdomains all together in one view, those are the most used and most important facts the business want to know. “Aanvragen”/”Regularisatie”/etcetera show all the facts & figures per subdomain. Each tile represents thus a KPI. In the headings of the tile we see the Bex Query name belonging to the KPI. On mouse click on the tile we jump to a generic analysis template app that visualizes the go-to- Bex Query. In the new window showing our BEX-Query we are able to jump via RRI to the same app including the jump-to BEX Query.
BUILDING IT
-
CREATION of Main design studio app
- Start creation from a standard app
- HEADER / BODY /FOOTER
- Header you define textcomponents as text
- BODY contains a pagebook filled with the tiles
- The tiles are panels containing Text & Icon components.
- The tiles are via a CSS class Hoover enabled. Name your css class (“myBackground” and add hover effect)
-
.myBackground:hover{ box-shadow: 4px 4px 8px black; margin-left: 2px; margin-right: 2px; margin-top: 2px; margin-bottom: 2px; }
- Allthough there are a lot of tiles, the performance is acceptable when you set the pagebook cache to all, it improves the user friendliness as well
- Each panel contains the jump to the respect. query.
- Code:TO_REPORT.Jump(TEXT_POOL.R_0_1);
- Create global code
- global script XURL to retrieve the server-url
ID = Bookmark.saveBookmark(“URL”);
index = Bookmark.getBookmarkUrl(ID).indexOf(“/irj/”);
url = Bookmark.getBookmarkUrl(ID).substring(0,index);
global script
- XURL = url + “/irj/servlet/prt/portal/prtroot/com.sap.ip.bi.designstudio.nw.portal.ds?APPLICATION=”;
- global variables
- XTEMPLATE (designstudio app used as adhocanalysis )& XQUERY=&XQUERY
-
CREATION of Query app
Query app uses the Generic Analysis template. You’ll have to add this app to your SAP Netweaver Portal as well. See chapter 3:”Embedding Design Studio app’s on the SAP Netweaver portal”. The jump explained in previous chapter (5.1) will push through the variables: XSystem and XQuery. The generic analysis template fetches those values and will open the specified query in the Design Studio App, because you will force it by adding the XTEMPLATE parameter.
url = XURL + XTEMPLATE + XQUERY + REPORT; http://<server>/irj/servlet/prt/portal/prtroot/com.sap.ip.bi.designstudio.nw.portal.ds?APPLICATION=PORTALTEMPLATE&XQUERY=Z_TECH_NAME_BEXQUERY XURL --> <server> & /irj/servlet/prt/portal/prtroot/com.sap.ip.bi.designstudio.nw.portal.ds?APPLICATION= XTEMPLATE --> PORTALTEMPLATE XQUERY --> &XQUERY= REPORT --> Z_TECH_NAME_BEXQUERY
-
CREATION of Jump to app (optional)
Is 100% the same as the design of the query app. But if you really want you can use another template. It could be handy to force the prompts to pop up of the Query app, so business can (re)define the query. It’s another behavior as when you jump from a line in the query to another query, more detailed and passing through the parameters of that line. Sao that’s a choice up to you.
-
Pushing values through
in the main “Launchpad” design studio app we use a textpool to lineup all my tiles as KEY and add the corresponding technical name of the query behind the tile as TEXT. As stated before each tile is showing data from one query.
-
By using the text pool we create our own metadata - by overviewwing this pool - we know which query is behind which tile (documentation)
use the global variables to define:
we create a script function:
url = XURL + XTEMPLATE + XQUERY + REPORT;
APPLICATION.openNewWindow(url);
each tile has a script as event like:
var url_p = TEXT_POOL.KLW_0_1;
url_p = url_p + "&XAANTDBUITTERM=15" + "&XDATVER_REG="+"<"+start_nu_maand;
TO_REPORT.Jump(url_p);
the var url_p fetch the textpool-text via the key so we know the bex-query techn name
we concat the URL with the parameters we want to push through. When the whole URL is established we user our script function to launch the jump to report.
Allright the Jump is created now the target report need to catch the parameters as well.
We used the Generic Analysis template as our jump_to_report. You’ll need to set each parameter/bexquery prompt variable as a global variable.
In the Global scripts Object: START_FUNCTION-on_initialization you’ll need to translate the design studio app parameter into the bex variable tech name.
it’s quite tricky to push values through when it’s envolving dynamical date variables, to tackle that I created a few global variables which I calculate on startup:
ONSTARTUP
sy_date = APPLICATION.getInfo().dateNowInternalFormat;
current_year = sy_date.substring(0,4);
previous_year = Convert.floatToString(Convert.stringToInt(current_year) – 1,”####”);
current_month = sy_date.substring(4,6);
if (current_month.substring(0,1)==”0″){ current_month = current_month.substring(1,2);}
current_day = sy_date.substring(6,8);
if (current_day.substring(0,1)==”0″){ current_day = current_day.substring(1,2);}
sy_date = current_day+”-“+current_month+”-“+current_year;
firstday_current_year = “1-“+”1-“+current_year;
firstday_current_month = “1-“+ current_month +”-“+ current_year;
if (current_month == “1”){
lastday_current_month = “31-1-“+current_year;
firstday_previous_month = “1-12-“+previous_year;
lastday_previous_month = “31-12-“+previous_year;
previous_month = “12.”+previous_year;
previous_month_key = previous_year+”12″;
previous_previous_month = “11.”+previous_year;
previous_previous_lastday_month = “30-11-“+previous_year;}
else if (current_month == “2”){
lastday_current_month = “28-2-“+current_year;
firstday_previous_month = “1-1-“+current_year;
lastday_previous_month = “31-1-“+current_year;
previous_month = “01.”+current_year;
previous_month_key = current_year+”01″;
previous_previous_month = “12.”+previous_year;
previous_previous_lastday_month = “31-12-“+previous_year;}
else if (current_month == “3”){
lastday_current_month = “31-3-“+current_year;
firstday_previous_month = “1-2-“+current_year;
lastday_previous_month = “28-2-“+current_year;
previous_month = “02.”+current_year;
previous_month_key = current_year+”02″;
previous_previous_month = “01.”+current_year;
previous_previous_lastday_month = “31-1-“+current_year;}
else if (current_month == “4”){
lastday_current_month = “30-4-“+current_year;
firstday_previous_month = “1-3-“+current_year;
lastday_previous_month = “31-3-“+current_year;
previous_month = “03.”+current_year;
previous_month_key = current_year+”03″;
previous_previous_month = “02.”+current_year;
previous_previous_lastday_month = “28-2-“+current_year;}
else if (current_month == “5”){
lastday_current_month = “31-5-“+current_year;
firstday_previous_month = “1-4-“+current_year;
lastday_previous_month = “30-4-“+current_year;
previous_month = “04.”+current_year;
previous_month_key = current_year+”04″;
previous_previous_month = “03.”+current_year;
previous_previous_lastday_month = “31-3-“+current_year;}
else if (current_month == “6”){
lastday_current_month = “30-6-“+current_year;
firstday_previous_month = “1-5-“+current_year;
lastday_previous_month = “31-5-“+current_year;
previous_month = “05.”+current_year;
previous_month_key = current_year+”05″;
previous_previous_month = “04.”+current_year;
previous_previous_lastday_month = “30-4-“+current_year;}
else if (current_month == “7”){
lastday_current_month = “31-7-“+current_year;
firstday_previous_month = “1-6-“+current_year;
lastday_previous_month = “30-6-“+current_year;
previous_month = “06.”+current_year;
previous_month_key = current_year+”06″;
previous_previous_month = “05.”+current_year;
previous_previous_lastday_month = “31-5-“+current_year;}
else if (current_month == “8”){
lastday_current_month = “31-8-“+current_year;
firstday_previous_month = “1-7-“+current_year;
lastday_previous_month = “31-7-“+current_year;
previous_month = “07.”+current_year;
previous_month_key = current_year+”07″;
previous_previous_month = “06.”+current_year;
previous_previous_lastday_month = “30-6-“+current_year;}
else if (current_month == “9”){
lastday_current_month = “30-9-“+current_year;
firstday_previous_month = “1-8-“+current_year;
lastday_previous_month = “31-8-“+current_year;
previous_month = “08.”+current_year;
previous_month_key = current_year+”08″;
previous_previous_month = “07.”+current_year;
previous_previous_lastday_month = “31-7-“+current_year;}
else if (current_month == “10”){
lastday_current_month = “31-10-“+current_year;
firstday_previous_month = “1-9-“+current_year;
lastday_previous_month = “30-9-“+current_year;
previous_month = “09.”+current_year;
previous_month_key = current_year+”09″;
previous_previous_month = “08.”+current_year;
previous_previous_lastday_month = “31-8-“+current_year;}
else if (current_month == “11”){
lastday_current_month = “30-11-“+current_year;
firstday_previous_month = “1-10-“+current_year;
lastday_previous_month = “31-10-“+current_year;
previous_month = “10.”+current_year;
previous_month_key = current_year+”10″;
previous_previous_month = “09.”+current_year;
previous_previous_lastday_month = “30-9-“+current_year;}
else {
lastday_current_month = “31-12-“+current_year;
firstday_previous_month = “1-11-“+current_year;
lastday_previous_month = “30-11-“+current_year;
previous_month = “11.”+current_year;
previous_month_key = current_year+”11″;
previous_previous_month = “10.”+current_year;
previous_previous_lastday_month = “31-10-“+current_year;}
TO_REPORT.Get_URL();
APPLICATION.doBackgroundProcessing();
Koen,
This is really cool! A silly question - what type of a component you are using for "tiles"? Do the tiles have any on-hover effect? If so, would you mind sharing, please?
hey Agata,
They are panels, I'll add it in my blog also. and I'll explain the hovering
.myBackground:hover{
box-shadow: 4px 4px 8px black;
margin-left: 2px;
margin-right: 2px;
margin-top: 2px;
margin-bottom: 2px;
}
Awesome! Thank you so much.
Hi Koen !
I really appreciate your post here !
We have just migrated to BW on Hana, but we would like still to use our SAP Netweaver Portal (with webtemplates designed with WAD).
I have some questions:
2. When Lumira 2.0 (new Design Studio) is available ?
and SAP Netweaver Portal can still support a Lumira 2.0 app ?
Thank you very much for your help
Hi,
SAP LUMIRA 2.0 will only be deployable on BI platform.
But note that will be "easy" to transform your design studio 1.6 apps to a lumira 2.0 designer version.
grtz
Koen
Thanks a lot Koen!
Very nice your "Welcome" page, it looks like Fiori launchpad ! 🙂
is that the "One Design Studio App" embedded on the SAP Netweaver portal ?
Can we use 2 environments together with our BW on Hana for the duration of the "conversion phase" of our current reports( webtemplates ) ?
Thank you so much!
Hi,
the all-in-one refers to the idea a lot of people had to be able to switch from the WAD template to a Design Studio template and so be able to open all their BEX reports via that Design Studio template. This is a great idea, but simply not possible. But via the solution in my blog it is. You are able to hang one design studio app in the BI browser like a welcome page and you can enable jumps to all your queries and those will open in a Design Studio template. (the template you'll need to import in your BI Browser) and even if you use RRI, you will jump from query to query all using a design studio app. The welcome-app will be like a middle station, from that point on you can create jumps to whatever you want. We will use it indeed as a middle step in the "conversion phase"
Grtz
Koen
Dear Koen,
Thanks for this brilliant article.
can I kindly ask you to look at my problem as the true genius generate a hint quickly
Huge thanks in advance
https://answers.sap.com/questions/12969507/url-for-bex-report-embedded-into-design-studio-tem.html