Quantcast
Channel: SCN : Blog List - SAP BusinessObjects Web Intelligence
Viewing all 221 articles
Browse latest View live

WebI Trick: Top N data for any integer N using Entry field Input controls

$
0
0

There are some discussions about selecting top N data recently. I have been haunted by the idea. In this post, I will show you how to choose top N data using input controls without building extra tables. In addition, you can specify any integer value for N to see the top N data.

 

I utilize eFashion Universe for demonstration purposes. I also am assuming that you are somewhat familiar with Webi 4.0 – Rich Internet Application Viewing Mode.

 

Step 1: Build a Webi report using eFashion Universe

step1.png


Step 2: Create a new variable (Rank) to show the ranking of sales revenue in the table

step2.png


Step 3: Sort sales revenue in the table from the highest to the lowest (descending)

step3.png


Step 4: Create a new input control on variable Rank to show top N Sales revenue

Choose variable Rank as an object to filter data. Then click Next.

step4.png


Define the input control as shown in the picture below. Click Next.

step4-1.png


Select the report element to use with the input control. Click Finish.

step4-2.png


Now enjoy the result.


Top 3 sales revenue by SKU desc

e1.png


Top 5 sales revenue by SKU desc

e2.png


Top 10 sales revenue by SKU desc

e3.png

 

Thanks,

Huu Nguyen


Concepts on BW,Understanding Connections

$
0
0


I have gone through a lot of articles on SCN which speak extensively about integration with BO-BW however, I could not find a document that consolidated and spoke about UNX on Multiprovider SSO manually setup, BICS on BEX issue and the concepts on BW. In case if there are issues how do we troubleshoot to get to the root of the cause.

Concepts on BW:

Before we begin on how we integrate BO with BW, we must be aware of some of the basic concepts of BW.

  1. Multiprovider: A multi-cube is a union of basic cubes. The multi-cube itself does not contain any data; rather, data reside in the basic cubes. To a user, the multi-cube is similar to a basic cube. When creating a query, the user can select characteristics and key figures from different basic cubes.
  2. Infocube: An InfoCube is a fact table and its associated dimension tables in the star schema. The maximum number of characters allowed for the technical name is 30.
  3. Info Object: In BW, key figures and characteristics are collectively called Info Objects.
  4. DSO: A Data Store object serves as a storage location for consolidated and cleansed transaction data or master data on a document (atomic) level. This data can be evaluated using a BEx query.
  5. Bex: Short for Business Explorer. It includes following tools to present the reports to end user: Analyzer, Query Designer, Web Application Designer (WAD), Report Designer and Web Analyzer.
  6. Key Figure: Key figures are numeric values or quantities, such as Per Unit Sales Price, Quantity Sold, and Sales Revenue. The maximum number of characters allowed for the technical name is 9. Reference Characteristic.

 

Understanding Connections:

In order to proceed further into development ways we must first understand the mode of connection with the BW system.

  1. OLAP Universe: before 4.0 had set in the market in 3.1 we connected through the unv universe .This was the traditional way to connect to the BW environment through BW Info cubes or Bex Queries.  In this process the MDX parser is used to connect to Bex and the output comes in a flat structure. The RFC executes the MDX parser which executes a query.

 

  1. Relational Universes through Data Federator: Currently in 4.0 and higher versions we are using the unx universe, the leverage or advantage of this universe is that the data federator allows to create a single as well as multiple connection to connect to a BW source. So for example to can have a multiprovider as one source and one or more DSO’s in the same universe.

Note: This connection type too flattens the hierarchy.

This method connects through the SAP JCO/ Java Connector to connect to the BW data source.

Also through this method we cannot connect to the BEX Query.

 

  1. BICS Connection: The last connection method is the BICS connection / BI Consumer Services which connects directly to the Bex Query in BW. No universe is needed here and the hierarchies do not come in the flattened structure. Also connecting to BW through this mechanism brings in better performance and faster access to BW data.

 

Connecting to Multiprovider, Infocube through UNX:

While working on my current project, we connected to the Multiprovider, Info cubes, DSO’s through the multisource capability of the under lying Data Federator connecting to the BW environment.

To establish connectivity to connect through the SAP JCO/Java Connector.

When we speak of JCO it is very important that while setting up of connectivity with the BO and BW we ensure that the JCO connection is setup. This process can be a manual process and an automatic. We explain below the necessary steps to create a JCO connection manually.

  1. Logon to SAP logon screen. Enter t-code SE37 and click execute.
  2. This opens the parameter panel. Enter function module RSDRI_DF_CONFIGURE click execute.

              Set the parameters as follows.

I_ONLY_CHECK'' (empty)

I_RFC_DESTINATIONDF_JCO_hostnameOfBOEServer_some-sid

I_REMOVE_CONFIGURATION'' (empty)

  1. Run SM59, check TCP/IP connections and you should be able to see the newly created JCO connection DF_JCO_MYHOST( adaptive processing server)
  2. This JCO connection should be updated in the parameters of the Relation Connection.
  3. Login to Data Federator ->Connector Configurations tab->Create Configurations
  4. In the property programIDMapping, point the JCO connection only use the RFC destination defined in step 4
  5. In the programIDMapping = MySia.AdaptiveProcessingServer=DF_JCO_MYHOST
  6. In the property gatewayHostname, type in the FQDN of the BW server.

 

Note:Create the relational JCO connection to BW using an account that has full authorization on S_RFC_ADM

It is always advisable in an environment where you have multiple adaptive processing servers to create separate JCO connections.

Authorizations to access data through relational connection.

When a user is accessing data from the BO end, to access data at the BW end through relational connection. There are certain authorizations/ rights that are needed to be provided to those group pf users.

The rights or BW roles that required:

S_RFC (Authorization Check for RFC Access)

S_RS_ADMWB (Data Warehousing Workbench - Objects)

S_RS_AUTH (BI Analysis Authorizations in Role)

S_RS_ICUBE (Data Warehousing Workbench - InfoCube)

S_RS_IOBJ (Data Warehousing Workbench - InfoObject)

S_RS_ISET (Data Warehousing Workbench - InfoSet)

S_RS_MPRO (Data Warehousing Workbench - MultiProvider)

S_RS_ODSO (Data Warehousing Workbench - DataStore Object)

The above authorizations are required for end user that run queries against

BW e.g. running Webi reports.

You can keep the connection in the BO end to Single Sign on without the manual user name and password .You might receive an error but there shouldn’t be any issue in accessing the data.

 

Refer to note: SAP Note 1465871

The coding here comes as MSQL and not as XML and we can play around with the tables and the structure as we wish too.

 

 

Connecting to BICS –Bex Query:

When we are creating a connection from BO to connect to the Bex Query we are doing the same through SAP BICS client.

Creation of the connection is a simple process however, but in order to use the SSO we must ensure that the certificate you created during the configuration of STS has been added to the SYSTEM PSE section of the STRUSTSSO2 transaction. Else while we access the connection through SSO, the connection will through an error.

 

Please give me your feedback and hence forth I’ll be posting more articles /blog on the same lines.

When is a chart not a chart?

$
0
0

Chart.JPG

I'd like to share a mechanism I use to create the above table & graphic. For this example we are using a very simple E-Fashion query:

Query.JPG

The basis of this mechanism is using the FILL function to dynamically populate a cell with a symbol.

 

Firstly, once I know the size of the column I want to use, I use a FILL function to work out how many symbols it can hold:

=fill("¦";35)

The 35 is an arbitrary number. Experiment with it until you arrive at the number which your column can accommodate easily. I know my column holds 35 of these symbols.

 

Now, I need to work out which store has the greatest revenue amount:

=Max([Sales revenue]) ForAll ([Store name])

...which is e-Fashion Magnolia with $1,911,434.

 

If we divide this by our 35 number, we have an operator we can use on each stores Sales Revenue:

=Max([Sales revenue]) ForAll ([Store name])/35


If we now divide each stores Sales Revenue by this operator, we arrive at a Fraction of 35 - this is what we use in our FILL function. Add a ROUND function to make it neat:

=Fill("¦";Round([Sales revenue]/(Max([Sales revenue]) ForAll ([Store name])/35);0))


Finally, we apply an alerter to colour code the symbols based upon an arbitrary percentage of your choosing:

Alerter.JPG

...the [Max Revenue] variable is just:

=Max([Sales revenue]) ForAll ([Store name])

 

...and that's pretty much it. Obviously you can use any symbol you like, and you can make your column any width you like and experiment with the capacity of it to derive the number to use with the FILL function.

 

You can easily modify the mechanism to work with static ranges or to use percentages instead. I hope you find this useful!

Show Trend Icon/Arrows in webi as per conditions

$
0
0

Hi All,

 

Business always interested in Trend/Arrows in tables instead of numbers .In 4.0 IPAD we can get this by writing some code.

we can use images and hyperlinks to get the same .But it needs some maintenance.

 

End Result

 

This blog gives you simple trick to show Trend/Arrows in your webi report as per condition.

We know that we can use ascii values in webi with CHAR() function.

CHAR(9660 ) - DOWN ARROW

CHAR(9650 ) - UP ARROW

CHAR(9679 ) - CIRCLE

 

> Insert new column to show your Arrows

>Write alerter with sub alter to show your Icons with different colors per condition.

 

>write your condition : Sales Qty less 10

Format your alerter as per req. In my case DOWN Arrow

 

Set color for ARROW :RED and width of arrow (you can change it by increasing font size and style as BOLD)

 

Now you need to create sub alert for the Sales Qty greater than 10

create alert

 

Format :

Display : =CHAR(9650)

Format : GREEN color

 

Now apply Alert in your blank column. That's it

 

Similarly you can create Alerters for ICONS also.

You can get ascii char values for different shapes from here

http://www.nwmtwd.com/misc_character_sets.html

The Pro’s and Con’s using an Excel Source file for WebI Publications.

$
0
0

Traditionally we have setup a separate publication for each report selection, i.e. A publication for Sales Manager 1, another for Sales Manager 2, another for Sales Manager 3 and so on.  As our publications grew it became obvious that this was no longer an efficient mechanism to manage our report distribution. We were changing eMail addresses as new people joined the organization and removing eMail addresses as other collegaues moved to different roles.

 

Each time this happened, you had to replace the existing scheduled job with a new one which we found tedious.  The Instance Manager view was also becoming very busy and it was getting difficult to see the wood through the trees. So we needed some way of thining out the number of publication we were producing and I read about the method of an Excel file with Dynamic Recipients.

 

I have now started to rollout the use of an Excel file containing the variable and the eMail address for report distribution and its been really useful.  I don't see us using this scenario for every single WebI report that we publish, but we will use where we can.

 

 

There is no right way of doing this or wrong way, it’s just an option that might help you if you have similar challenges to those that we did.  Here are some of my thoughts on the process.

 

 

Pro’s :

 

  • Adding or removing an email address to a scheduled publication is so much easier. The alternative was to change the Publication and then to remember to reschedule or delete/recreate the schedule.
  • Managing one scheduled job rather than one per selection (For one sales report we had 17 publications). On the instance manager section in SCM, having fewer jobs in that list is a lot easier!
  • We have setup Notifications for each publication to ensure that they were sent.  We received an eMail for a Successful or a Failed publication.  One eMail notification per publication was becoming a huge number of eMails to receive and check to be sure all was OK.  Using an Excel file we now get one confirmation email when the entire recipients list get their reports (or if it failed but that hasn't happened yet ).

   

Con’s :

 

  • Individual publications means individual notification of success or fail – if the job fails you might know where the root cause is immediately. (May have to resend the entire publication).
  • You lose the ability for individual customization in the Subject line of the eMail / File Name.

 

 

Things that I don't like  :

 

  • Not being able to pass more than one variable in a dimension.  For example if we have Cost Center report and I have one person responsible for 5 Cost Centers. I want to send them one eMail with all 5 of their Cost Centers combined in one report. Using this method, if Cost Center was the value I was passing to the WebI Document, the person would receive five separate reports.
  • Not being able to pass values for two different dimensions to the publication run .For instance, we might have an Area Manager who manage a few different Sales regions, it would be nice to have a report for Area Manager 1 – Region A, Area Manager 1 – Region B, Area Manager 2, Region C, Area Manager 2, Region D and so on.  One for the ideas panel! 
    So I would want to pass different values for Area Manager AND Region in the Excel file.
  • The NOFILTER command doesn't work the way you would expect it. While I have a workaround, it means adding an extra query to your WebI Document and I don't think this is good practice in the long run.
  • If the WebI publication content is empty – then I don’t want the file to be published. We have this option on Crystal but not in WebI.
  • Why do we need a WebI document created from the Excel file which then becomes the source for your dynamic recipients.  We need to eliminate this step!

 

 

One general suggestions :

 

  • Create an ad hoc publication for the odd time that you need it. This won't use the Dynamic Recipients method and it allows for once off runs of a publication. Sometimes people can’t find the eMail that was sent so it’s easy with an Ad Hoc version to facilitate their request for a rerun. Needless to say you will have to change the prompts, recipient address and eMail Subject line each time.

WebI Trick: Line chart to show running average for each year

$
0
0

Business requirement: Display 3-month running average for sales revenue in a 12-month timing window for each year, like the one below

0.png

This chart helps the business understand how well they perform in term of sales revenue in each year after slightly adjusting data for seasonality.

 

Here’s how we can achieve that.

 

Step 1: Build a report using eFashion Universe

1.png

 

Step 2: Create “3-month Running Average” variable for sales revenue

=RunningSum(Previous([Sales revenue];3))/3

 

Step 3: Extract “3-month Running Average” for each year (2005 & 2006)

2.png

And

3.png

 

If you add these 3 variables in the original table, you can see that the running average of sales revenue is extracted from the first calculation for each year.

4.png

 

We still need one more step to display data correctly. We cannot use 2005 RA and 2006 RA because WebI may get confused between 2005 and 2006 data. You can add the [Year] dimension to the chart, but you may not have a clear look for trending performance in each year.

 

Step 4: Clean running average data for each year so that they can be displayed on the chart separately.

Create 2005 variable

=Sum([2005 RA] In([Year];[Month]))

 

Create 2006 variable

=Sum([2006 RA] In([Year];[Month]))

 

Now we should be able to assign data to the chart as requested

5.png

 

And then we have the final result:

0.png

 

Huu Nguyen

the query cannot run because it contains incompatible objects

$
0
0

Hello All,

 

After upgraded webi reports and universes from 3.x version to 4.1 version, this "the query cannot run because it contains incompatible objects" error is being displayed when refresh the reports. But these reports are being refreshed in 3.x version. No changes has been done in universes and reports. Could you please  help on this issue?

 

Thanks in advance,

Kishore.

De la cartographie sur IPad à partir d'un document WebI 4.1

$
0
0

Mettre de la cartographie dans un document WebI en BI4 pour ensuite le visualiser sous iPad, c’est aujourd’hui possible !

 

Cet article vous présente la façon d’obtenir cet effet, sans autre outil que WebI …

1)    Création du tableau Web Intelligence (WebI)

 

Pour arriver à obtenir de la cartographie sous SAP BI (l’application SAP BI Mobile sous iPad version 5.0.5.9) à partir d’un fichier Web Intelligence (WebI), il faut tout d’abord créer un tableau dans un document WebI.

 

Nous allons prendre un exemple avec des « Clients de la Grande distribution », qui souhaitent connaitre la quantité commandée, le montant de leur marge et le CA commandé par ville.

 

Dans Web Intelligence, créez donc un tableau standard avec le nom des différents magasins et les 3 indicateurs (la quantité commandée, le montant de leur marge et le CA commandé par ville).

 

Qui dit Cartographie, dit Ville et points géographiques ! Il faut donc ajouter avec une colonne « Ville ».

BO utilise la latitude et la longitude de chaque ville pour les représenter. Il faut donc ajouter une colonne « Latitude » ainsi qu’une colonne « Longitude ».

 

Pour cela,  je vous propose le lien d’un site qui permet de récupérer gratuitement la latitude et la longitude de chaque ville. (http://www.batchgeocodeur.mapjmz.com/). Vos villes seront donc ainsi géocodées gratuitement.

 

Vous obtenez donc un tableau avec les colonnes : Nom, Villes, Latitudes, Longitudes, (Vous pouvez rajouter des colonnes avec la région, département permettant la navigation dans les hiérarchies …).

 

Pour que SAP BI Mobile interprète ce tableau en carte, il faut lui donner un nom qu’il va pouvoir interpréter. Pour cela, sélectionnez le tableau, clic droit, puis cliquez sur « Format du tableau », pour enfin changer le nom du tableau et le renommer comme suit :

map_lt2_lo3_poi1

lt : numéro de la colonne ou se trouve la latitude (dans notre exemple ci-dessus : 2)

lo : numéro de la colonne ou se trouve la longitude (dans notre exemple ci-dessus :3)

poi : numéro de la colonne ou se trouve le nom de ce que l’on souhaite afficher (dans notre exemple ci-dessus : 1)

Il faut savoir que certaines informations sont obligatoires comme le lt, lat, poi… (il en existe des facultatives)

 

Il ne reste plus qu’à enregistrer votre document dans les dossiers publics et de l’associer à la Catégorie permettant d’afficher les documents dans l’application SAP BI Mobile (préalablement paramétrée lors de la mise en place de la mobilité).

Depuis votre IPad, ouvrez SAP BI, connectez-vous, puis sélectionnez le document que vous souhaitez afficher.

L’application mobile interprète automatiquement le tableau comme étant un composant à afficher sous la forme d’une carte et les indicateurs sont projetés par défaut sur les Villes du tableau.

2)    Pour aller plus loin !

Si vous souhaitez ajouter de la couleur pour représenter vos indicateurs, il suffit simplement de changer la couleur du titre de la colonne représentant un indicateur.

Vous pouvez ajouter une fenêtre PopUp à votre carte, vous pourrez ainsi ajouter des informations supplémentaires en cliquant sur un POI.

Pour cela, il faut créer une colonne PopUp dans votre tableau. Cela permet par exemple d’ajouter un graphe lorsque vous sélectionnez une ville :

Par exemple, dans la cellule de la colonne POI, il faut mettre le lien du graphe que vous souhaitez afficher :
iDocID=<identifierValue>&sIDType=CUID&sType=wid&sReportName=<ReportName>&sRefresh=Y&sReportPart=<ReportPartName>&lsS[Name]= »<value> »

Si vous le souhaitez, vous pouvez mettre plusieurs documents dans la fenêtre PopUp. Pour cela, il faut mettre dans la colonne plusieurs liens. (il faut les séparer par ||) :

iDocID=<identifierValue>&sIDType=CUID&sType=wid&sReportName=<ReportName>&sRefresh=Y&sReportPart=<ReportPartName>&lsS[Name]= »<value> »||iDocID=<identifierValue>&sIDType=CUID&sType=wid&sReportName=<ReportName>&sRefresh=Y&sReportPart=<ReportPartName>&lsS[Name]= »<value> »

IdentifierValue : c’est le numéro CUID de votre document.

ReportName : c’est le nom de l’onglet de votre Rapport.

ReportPartName : c’est le nom du graphe ou tableau que vous souhaitez afficher.

 

Vous devez également renommer votre tableau ainsi :

map_lt2_lo3_poi1_od11_gp1

od : numéro de la colonne ou se trouve le lien pour la fenêtre PopUp (dans notre exemple ci-dessus :11)

gp : numéro de la colonne ou se trouve le POI sur lequel on va afficher tous les indicateurs (dans notre exemple ci-dessus :1)

 

Ce procédé n’est en rien officiel chez SAP, nous ne sommes pas sûr qu’il sera maintenu dans les prochaines versions, mais est néanmoins … Magique !

 

Olivier Hébert

DeciVision

http://www.decivision.com

http://www.decivision.com/blog


Webi Formulae for Calendar Day Prompt

$
0
0

Below are the list of Formulae used to display the Calendar Day Prompt values in the Webi Report Headings or Header Labels.

 

1. Getting Start date from Date prompt: Start Date=FormatDate(ToDate(Replace(Left(Replace(UserResponse("Calendar Day");" ";"  ");10);" ";"");"MM/dd/yyyy");"dd.MM.yyyy")

 

 

2. GettingEnd date from Date prompt: End Date=FormatDate(ToDate(Replace(Substr(Replace(UserResponse("Calendar Day");" ";"  ");Pos(Replace(UserResponse("Calendar Day");" ";"  ");";")+1;10);" ";"");"mm/dd/yyyy");"dd.mm.yyyy")

 

 

3. Getting Month Name from Date prompt: Month Name=FormatDate(ToDate(Replace(Substr(Replace(UserResponse("Calendar Day");" ";"  ");Pos(Replace(UserResponse("Calendar Day");" ";"  ");";")+1;10);" ";"");"MM/dd/yyyy");"MMMM")

 

 

4. Getting Month Value from Date prompt: Month Number=FormatDate(ToDate(Replace(Substr(Replace(UserResponse("Calendar Day");" ";"  ");Pos(Replace(UserResponse("Calendar Day");" ";"  ");";")+1;10);" ";"");"MM/dd/yyyy");"MM")

 

 

5. Getting Year Value from Date prompt: Year=FormatDate(ToDate(Replace(Substr(Replace(UserResponse("Calendar Day");" ";"  ");Pos(Replace(UserResponse("Calendar Day");" ";"  ");";")+1;10);" ";"");"MM/dd/yyyy");"yyyy")

 

 

6. Getting Last Year from above formula: LY=FormatNumber((ToNumber([Year])-1);"####")

 

 

7. Getting Before Last Year from above year formula: BLY=FormatNumber((ToNumber([Year])-2);"####")

 

 

8. Getting Start Date from Month prompt: Start Date=FormatDate(ToDate(Replace(Replace(Left(UserResponse("Calendar Day");9);" 1";"");" ";"");"MM/dd/yyyy");"dd.MM.yyyy")

 

 

9. Getting Month Value from Month prompt: Month Number=Left(UserResponse("ZMONTH_VAR");2)

 

 

10. Getting Year Value from month prompt: Year=UserResponse("ZMONTH_VAR")

 

 

11. Getting Fiscal Year Value from above formula: Fiscal Year=If [month] inlist("January";"February";March) Then formatnumber((ToNumber([Year])-1);"##") Else [Year]

 

 

12. Getting Last Day of Month: Last Day Of Month=If [Month Number] InList ("01";"03";"05";"07";"08";"10";"12") Then "31" ElseIf [Month Number] InList ("02") Then "28" Else "30"

How my first Extension Point experiment will bring Maps to Webi

$
0
0

For those of you who have been around in the SAP BusinessObjects ecosystem long enough, you may remember an awesome labs feature for Webi called Extension Points. Now it is back in a slightly different form as an officially supported Extension Points SDK. I have been fantasizing about integrating our location intelligence solution into Web Intelligence for years so Evan Delodder (wrote the book on SAP Dashboards SDK) and I dove in head first to give Extension Points a shot. The goal was to integrate SAP Dashboards and CMaps Analytics, which uncovered Extension Points as a hidden jewel inside of the BI4.1 platform!

 

Untitled-12.jpgWhat is Extension Points?

Extension Points is a brand new SDK that allows developers to create and inject custom visual controls via HTML/Javascript and even custom Functions for processing data. Extension points SDK comes with basic documentation and a sample project. Though it was first supported with BI4.1 SP02 newer versions add more APIs and hooks to accomplish new experiences not possible before with Webi.

 

What do you need to get started with Extension Points?

Approaching Extension Points is similar to any SAP BusinessObjects SDK project. First and fore most, you need patience. There is not a development community, massive forum with lots of developers, or library of existing examples to work from. The test cycles are fairly slow but the upside and potential once you get through your first extension is well worth the effort. Extension Points is a development SDK, so you need a Javascript developer to bind exposed functions through the SDK to your desired features.

 

What is possible?

Armed with the right resources, the results can be extremely rewarding for your business users. Extension Points treats a panel as a empty shell, where you can code just about anything you can imagine. This level of control and flexibility is exactly what you want from an SDK. While our initial goals to utilize a narrow span of functionality, we found that with Extension Points SDK you can:

 

  • Embed new input controls
  • Consume data from Webi report parts into new embedded tools
  • Change the structure and layout of your report document
  • Create new visualizations
  • Integrate third party tools and applications
  • Dynamically control various report behaviors

 

What did we accomplish?

Rather than re-building 150 input properties for our CMaps Analytics tool in Webi, we wanted to use SAP Dashboards as our initial vehicle for delivering maps to Webi. However the end result needed to look and feel as seamless as possible for end user. In short, we built the beginnings of a deeply integrated bridge between SAP Dashboards and Webi. Currently our CMaps Analytics Extension Point consumes data from a single WebI report part, and then refresh itself as you drill or filter. With a solid foundation in place, we are onto exposing prompts, filters, and refined workflows to create an integrated experience that customers have always asked for.

 

webicmaps.jpg

 

I am happy to take your feedback or questions as you approach Extension Points, and will certainly report tricks and tips as we move forward.

ryan@centigonsolutions.com.

How to display custom message in BI Launchpad Login page

$
0
0

In a recent BO upgrade project, I did face a requirement of displaying custom message in BI Launchpad login page. The upgrade happened from BOXI3.1 to BO 4.0. Earlier, they used to edit the logon.jsp file inside InfoViewApp web service folder to display their custom messages. But the same trick did not work in BO 4.0.

 

In this blog, let me describe how I managed to display a custom message in BI Launchpad login page for SAP BusinessObjects Business Intelligence Platform 4.0 SP6.

 

Requirement

Let the requirement be as below:

  1. To show a pop-up message when the user enters the URL for BI Launchpad.
  2. In the log-in screen we need to show some custom message.

 

 

Assumption

Let's assume that SAP BO BI Platform 4.0 has been installed and configured with default Tomcat web application server.

 

 

Steps

Here are the steps to achieve the requirement:

  1. Stop Tomcat in the BO server.
  2. Delete the folder <Tomcat Installation directory>\work\Catalina\localhost\BOE. This is a temporary folder and will be re-created when tomcat will be started.
  3. Go to the folder <Tomcat Installation directory>\webapps\BOE\WEB-INF\eclipse\plugins\webpath.InfoView\web.
  4. Take a backup of the file custom.jsp and keep it in a safe location.
  5. Create a copy of the file logon.jsp in the same folder and rename it as custom.jsp.
  6. Open newly created custom.jsp file in notepad for editing.
  7. To create a pop-up message, append the following line just before the <title> tag:

    <scriptlanguage=JavaScript> alert('Custom Pop-Up Message');</script>

     

    Example

    <scriptlanguage=JavaScript>

    alert('Information: \n Any Report / UserID not used in last 2 months will be cleaned up as part of Regular System maintenance.');

    </script>

     

  8. Add the custom message you want to display in the login screen just after the line :

    <divclass="logonIFrame">


    Example

    <fontcolor="Mediumblue">For logon credentials, kindly contact

    <ahref=mailto:ari007.cse@gmail.com"><fontcolor="red"><spanstyle="text-decoration:underline;">Arijit Das</span></font></a>

    </font>

     

  9. Save and close the file.
  10. Go to folder <Tomcat Installation directory>\webapps\BOE\WEB-INF\internal.
  11. Take a backup of the file BIlaunchpad.properties and keep it in a safe location.
  12. Open existing BIlaunchpad.properties file in notepad for editing.
  13. Change the line

    redirection.iframe.1.redirectto.url=/logon.jsp

    to

    redirection.iframe.1.redirectto.url=/custom.jsp

  14. Save and close the file.
  15. Start Tomcat from Central Configuration Manager. It will take some time to re-generate the BOE temporary folder which we deleted in step 2.
  16. Clear browser cache and java temporary files.
  17. Now open the BI Launchpad URL: http://boserver:port/BOE/BI in the browser.
  18. First the pop-up message will appear as we configured in step 7.

     

  19. Once you click OK, the logon screen will appear with custom message that we configured in step 8.

     

 

How to do it for BO 4.1

The process is similar for BO 4.1 also but with some minor differences :


Steps 1-7 are same as we did for BO 4.0.


Step 8: Add the custom message to be displayed just before the tag <h:form>.

 

Steps 9-12 are again same as before.

 

Step 13: Change the line

          redirection.iframe.1.redirectto.url=/logon.faces

          to

          redirection.iframe.1.redirectto.url=/custom.faces


Steps 14-19 are again the same as before.

Are changes to WebI's calculation engine causing you upgrade woes? Check out the new Formula Rewrite Tool!

$
0
0

Starting in BI 4.1 SP03, Developers have introduced a Formula Rewrite Tool to automatically correct formulas in Web Intelligence documents that are affected by known calcluation engine changes.

 

There are 3 formulas the rewrite tool can auto correct when enabled:

  1. Running Calculations
  2. Where operator on measure
  3. Aggregation functions on individual objects inside a merged object (link coming soon)

 

I've encountered quite a few questions around this new feature, so I've started documenting in the SCN WIKI full details on how to use it and what you'll see (feedback most welcome!):

 

BI 4.1 SP03 Web Intelligence Calculation Rewrite Tool - Business Intelligence (BusinessObjects) - SCN Wiki


The main WIKI links to 3 child pages where I provide specific examples of the rules in action including:

  • How to identify which formulas may be affected by calc engine changes
  • How to manually correct the formulas without the tool (especially useful if you're upgrading to BI 4.1 but not yet to SP03)
  • How to enable/disable the rewrite rules
  • How to tell a rewrite has occurred via the WebI logs


The tool is also mentioned in the Release Notes for BI 4.1 Support Pack 03 and further detail can be found here in Developer's SCN Document on WebI Calc Changes (highly recommended for those upgrading to BI 4.1 from any version!):

 

 

Thanks!

Carly

Web Intelligence 4.1 SP3: Applet (Java) vs. HTML

$
0
0

Introduction

Web Intelligence documents can be created, edited or consumed via three different interfaces:

  1. HTML
  2. Applet (Java)
  3. Desktop (Rich Client)

 

The following blog post is a feature comparison of the two web-based modes (HTML & Applet) on the latest version currently available (BI 4.1 SP03).

 

 

Select a Data Source

Data sources specific to Applet (Java): Excel, BEx & Analysis View.

image01.png

 

Document Linking Wizard

  • HTML is the only interface that offers a "Document Linking Wizard" within the [Report Elements] tab.
  • Leveraging OpenDocument syntax is still possible in the Applet (Java) interface but must be entered manually.
  • Note: While Web Intelligence documents based on BEx must be created in Applet (Java) mode, developers can still leverage the HTML specific document linking feature by viewing a Web Intelligence/BEx report and switching to "Design" mode.

image02.png

 

Conditional Formatting

Only Applet (Java) can create new formatting rules.

image03.png

 

Data Source Management

Features specific to Applet (Java):

  • "Data" mode (in addition to Reading & Design).
  • Ability to add a "New data provider" directly within Design mode (Data Access > Data Providers).
  • Ability to "Change Source" directly within Design mode (Data Access > Tools).
  • Ability to Delete, Rename and Change Source within Data mode.

image04.png

 

Number Formatting

Only Applet (Java) can apply Custom number formats.

image05.png

Conditional formatting based on User input

$
0
0

Business requirement: Highlight any sales revenues that are below sales target, which is a user input control. In other words, if a user wants to highlight any sales revenues that are below $2,000,000 then he can type in 2,000,000 as an input and the result is similar the one below

1.png

Here’s how we can do that.

 

Step 1: Build a report using eFashion Universe

2.png

Step 2: Create “Sales Target” variable

3.png

Step 3: Design an Entry Field input control on Sales Target

4.png

Step 4: Apply Conditional formatting on Sales Revenues using Sales Target as an input

5.png

Now enjoy the result

6.png

 

Thanks,

Huu Nguyen

Web Intelligence and Oracle Java Runtime Environment Known Issues

$
0
0

Hello everyone,

 

Since Oracle has released Java 7 there have been multiple issues regarding the web intelligence java panel/RIA/applet in BI 4.x and XI 3.1.

 

There are various issues that occur from ones that are just a nuisance to actually keeping webi from launching completely, depending on your current patch level, JRE version, etc.

 

With the large number of issues and various kba's that cover these issues, we decided it would be best to try and consolidate all of this information into one location.

 

We have created the following wiki that details different java issues that may occur in each currently supported release (XI 3.1, BI 4.0, BI 4.1) when it comes to JRE 1.7 and 1.8.

 

Web Intelligence and Oracle Java Runtime Environment Known Issues

 

Please look it over and leave your comments to help improve the wiki.

 

Mike Neville and I will be updating it as issues are discovered and then their resolutions and appreciate any input or feedback that you may have.

 

Best Regards,

Jason


Considerations/Issues when changing .Unv source to OLAP connection in Webi 4.x

$
0
0

Hi All,

 

Environment : BI 4.1 SP3 and BW 7.4 SP3

 

We are doing a pilot for converting all .Unv based reports. Below are observations when pointing .Unv to BICS

 

Issue/ConsiderationSolution
some of the objects are pointed to wrong objectsRemap again the objects which are pointed incorrectly
If  constant filters applied on a detail object in the filters pane ,
then we can't map this object to any of the object.
Remove all the filters from filters pane before change ,
place filters after source change
Prompt screen loading and Prompt LOV’s fetching
is slow compared to .Unv
Product limitation
Cascading Filters : with UNV we created different levels of hierarchies
for drill down and for filters report specifically.
For drill down we can have BW hierarchy
(Lot of development effort in BW ,and could not be report specific) .
Cascading Filters is limitation , idea has been posted BI 4.0 - WebI on BEX (BICS) -
Make report Drill Filters capable of handling linked / cascading relationship between SAP ….
Most of the BEx variable texts(prompt description )
are customized in Universes .
we may need to change the Variable texts in BW .
This will be difficult when we have reports with 2 or more queries .
Variable text should be same for all queries.
We can't have measure objects in the query filters pane.Apply filters ib Bex/in the Webi report
Web Intelligence Query Panel - not possible to use "OR" operator
when creating Query Filters on BICS BEX source
please refer : SAP Note  1687933

                                    

 

Advantages:

 

1.we have seen ~5% of performance improvement.

2.In some universes we are converted Detail Object Keys (Attributes of dimensions . Ex :Customer Key /Material Key) into dimensions for merging (we can't do merge on details objects in 3.x ) . In 4.1 we can directly merge Detail objects.

 

Hope this helps ...


Please post your experiences for better guidance.

Reading smaller precision negative Value in BO 4.1

$
0
0

Introduction:

 

This blog focuses on a work around solution to read the negative precision value in BO-WEBI 4.1 version.

 

 

Issue:

 

In 4.1 version it has been observed that the smaller precision negative values are not picked in WEBI when BEX is used as a source of the data.

 

 

Bex Output:

 

Bex.JPG

 

WEBI Output for the relative Line:

 

WEBI-Before.JPG

 

Number Format of the Line:

 

Old.JPG

 

Work around solution:

 

Change the number format to below: Where negative is placed in apostrophe.

 

New.JPG

 

Please use the required decimals.

 

WEBI Output:

 

WEBI - After.JPG

 

Cause of the Issue:

 

This issue is coming in BO 4.1 when BEX is used as a source of the data and when the lines are using NODIM to suppress the units. NODIM values are not passing to WEBI when the values are too less.

 

This issue is identified in when the BW7.3 as backend and BO 4.1, the smaller negative precision values are not been pulled in WEBI for which the above work around works fine as a solution.

 

When BW7.4 as backend (Support Pack is less than 5), even the Smaller precision values both for Positive and Negative values also not been recognized by WEBI or by Crystal when the lines are using NODIM function. Quick work around is to remove the NODIM and then pull the values in reporting.

From SP5 of BW7.4, this side effect of NODIM is not occurring and the normal number formatting can be applied.

 

Hope this works for you.

Joining data from two queries in a single report when all the objects are dimensions

$
0
0


Hi I recently worked out how to Join Data from two queries in a single report

 

Create a WEBI document  with 2 queries where 1 reads data from the other
in my example I have 2 queries 1 is Rels and the other is Related Acc the Related Acc query is reading the account name for accounts that are the Rel Business Partner ID from the Rels Query
join1.png
The result is two tables 1 of the accounts with the related accounts and the other of the related accounts IDs with their names. I want to join the second table to the first to provide name details fro the Rel Business Partner ID in the First table
Join2.png
The first step is to define the Merge criteria which is the Rel-Business Partner ID from the Rels query and the Business Partner ID for Filtering from the Related Acc query use Ctrl click to select these two dimensions then right click and select Merge
join3.png
Next right click on the Merged dimension and select Edit Properties
join4.png
Then change the name of the Merged dimension to make it obvious which is which
join5.png
result is shown below
join6.png
Next create a variable for the Organization name from the Related Acc query.
The important elements are to make the Qualification of the variable a detail not a  dimension. When this detail variable type is used it allows you to specify what the associated dimension is in this case it is the MErged dimension Business Partner ID M.  The Formula just reads the value of the field from the Related Acc query
join7.png
finally include the new variable in the first table and the names will be displayed correctly
join8.png

 

 

I hope this helps other people I have been wondering how to do this for ages. So simple in SQL but quite complex in WEBI.

 

Regards

 

Louis

Publication - Dynamic Recipients

$
0
0

This document describes about how to create Publication with Dynamic Recipients in brief.

Performance factors of Webi Reports in BI 4.x

$
0
0

Hi All,

 

Environment : BI 4.1 .

Reporting Database : BW 7.4 SP3.


Recently we migrated to BI 4.1 SP3 from BI 4.0 SP6.

From then reports in BI 4.1 launchpad was taking so much time compared to BI 4.0 and BI 4.1 Rich Client.

There was drastic change in performance .A report which is running in 30 sec in BI 4.1 Rich client and BI 4.0 SP6 was taking >10 minutes in BI 4.1 launchpad.

Below tasks helped us to achieve the performance again.
1.Disabling logs:

-Go to CMC,navigate to the servers and then webi processing server.

-Right click and go to properties.

-Set log level as "None"

-Do the same for all webi processing server.

-Same step you have to follow for rest of the servers.

-For only CMS keep log level as "Unspecified".


2.Delete logs:

-Go to Installing Directory of BusinessObjetcs\SAP BusinessObjects\SAPBusinessObjects Enterprise XI 4.0\logging directory.

-Delete all unwanted logs(.glf files).


3.Clear Cache:

-Go to Installing Directory of BusinessObjetcs\SAP BusinessObjects\SAPBusinessObjects Enterprise XI 4.0\Data directory.

-Take back up of all the content inside it and delete everything.


4.Clear Tomcat cache:

-Stop Tomcat.

-Go to Installing Directory of BusinessObjetcs\SAPBusinessObjects\Tomcat\work\Catalina\localhost.

-Take back up of all the content inside it and delete everything.

-Start Tomcat.


After performing all these steps, Restart SIA.

In Addition to above , we can consider below points also for better performance.

A. If source to webi is .UNV

- Change the connection pool mode to 'Disconnect after each transaction'.

- Increase the Array fetch size to 1000.

- In Universe Parameters, click on the Parameters tab and change the setting DISABLE_ARRAY_FETCH_SIZE_OPTIMIZATION from the default of "No", to "Yes" and click the "Replace" button, then Ok to save the

changes.

 

B.Disable Connection Server Trace

Modify cs.cfgIn Windows this is located in the following

directory C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\dataAccess\connectionServer Set the

following parameter to this value<Traces Active="No">

 

C.Follow the SAP NOTE:1930558 -

How to utilize the 64-bit SAP BAPI driver with UNV universes in BI 4.x (Windows) .


Thanks to Sabari Vasan.S for his valuable sharing

Please post if you have any other points to consider for better performance.


 

 



Viewing all 221 articles
Browse latest View live


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