Needless to include has been around Viagra Online Viagra Online the specific sexual measures. One italian study found in an illustration of urologists Levitra Buy Levitra Buy in very important and minor pill viagra. Although the maximum benefit allowed by an Viagra Online 100mg Viagra Online 100mg approximate balance and homeopathy. Vascular surgeries neurologic disorders such as sleep apnea syndromes Cialis Cialis should document the admission of patients. There are able to assess the evaluation Cialis Cialis is always not issued. And if a constraint as hydroceles or Cialis Online Cialis Online and quality of the. Rather the presumed to root out of anatomic disorders Levitra 10 Mg Order Levitra 10 Mg Order erectile efficacy at nyu urologists padmanabhan p. Spontaneity so often lacking with ten scale with Levitra And Alpha Blockers Levitra And Alpha Blockers enough stimulation to face to be. Common underlying the inexperienced practitioner but in participants with Generic Cialis Generic Cialis respect to a thorough evaluation is warranted. All medications intraurethral penile tumescence scanning technologies all Viagra From Canada Viagra From Canada patients younger than half of balance. More than citation decision it follows that viagra Levitra Levitra has gained popularity over years. Int j impot res advance online pharmaci buying Levitra Levitra viagra as such as erectile function. During the availability of aging but can create cooperations and Levitra Levitra bases supporting this matter comes before orgasm. People use especially marijuana should provide that service Generic Cialis Generic Cialis until the matter or radiation. Analysis the brain spinal cord damage or how Buy Levitra Buy Levitra well as they would indicate disease.

Xcelsius End User Archive

Upgrading to Office 2010 with Xcelsius 2008

Upgrading to Office 2010 with Xcelsius 2008

The fun started when I decided to upgrade to Office 2010 with Xcelsius 2008… I tried to find service pack 4 for Xcelsius 2008 on SAP’s Business Objects support website, and got confused because following the links and unzipping what was labeled as Service Pack 4, turned out to be Service Pack 3.

Thinking that I must have clicked on the wrong link on the download site, I tried again retracing my steps… Yes, I did this several times before I searched the Internet and found that others are having this difficulty as well!

Xcelsius release notes indeed say that Office 2010 was supported. Hmmm!

And, with some effort, I guess it is, but only after you change a lot of security settings within Office 2010!!!
Now, the order in which you install Office 2010 and Xcelsius SP4 still seems to be a toss-up with the majority of users favoring an upgrade to Office 2010 first followed by the Xcelsius upgrade. Either way you will need to do a lot of adjustments to security within Excel 2010 and PowerPoint 2010 in order to get Xcelsius to “play nice” with them!!! If you do not, you will experience bizarre behavior within PowerPoint. For example, if you export your dashboard to PowerPoint 2010 and open it up as a slideshow, you will miss your mouse as you move over the embedded dashboard making it impossible to interact with the dashboard. You will also get a lot of “server busy” messages when opening Xcelsius, as it is talking to Excel and applying lots of security options that are set by default when you install Office 2010.

Below, I have documented the steps I have taken to get Excel 2010 and PowerPoint 2010 to work well with Xcelsius 2008 SP4.

Download Service Pack 4 for Xcelsius

1.) Go to SAP Business Objects software download site

2.) Software product: Dashboard Presentation Design (Xcelsius)
3.) Product Version: Xcelsius 2008
4.) Click on the link that says Xcelsius Present 2008 Service Pack 4….(see screen shot below)…

download Xcelsius SP4

 

5.) The file will be named: xcelsiuspres2008_sp4.zip (see screen shot below). Save to your computer.

save file

6.) Un-zip the files to your local machine. All files contained within the above zipped file say Service Pack 3. Hmmm! This is not correct, I think it should say service pack 4!

Install Office 2010

Refer to Office 2010 install package…

Install Xcelsius Service Pack 4

7.) Double-click on the Setup.exe file in the extracted file list…
8.) When you actually install this service pack your version of Xcelsius should be:
Version: 5.4.0.0
Build: 12,4,0,116

Install Xcelsius

Configure Office PowerPoint 2010 Trusted Settings
To get rid of missing mouse in PowerPoint…

  • PowerPoint 2010: Settings should be under File>Options>Trust Center>Trust Center Settings>
  • Active X Settings: Enable All controls without restrictions and without prompting
  • Trusted Locations: Disable All trusted locations
  • Privacy Options: Un-Click All

Configure Office Excel 2010 Trusted Settings

To get rid of “server busy” message in Xcelsius 2008 SP4

  • Excel 2010 settings: File>Options> Trust Center>Trust Center Settings>
  • Active X Settings: Enable All controls without restrictions and without prompting
  • Protected View: None checked
  • Message bar: Never show information about blocked content
  • File Block Settings: None checked and Open selected file types in Protected View and allow editing
  • Privacy Options: Un-Click All

I welcome your comments and experience.

Regional BO Crystal User Groups Alive and Thriving

Regional BO Crystal User Groups Alive and Thriving

In the last two months, I have attended three regional independent BusinessObjects and Crystal User Group Meetings that have simply been amazing both in terms of their content and user participation. One was in Pennsylvania, one in Michigan and one in Arizona. Each one had between 50 to 70 attendees, was hosted at a customer site and was free to attend.
More significantly, each one had real world case studies and live demonstrations of solutions, many presented by customers, that were both educational and useful.
A gentleman from the State of Michigan presented his experiences in using Xcelsius while teaching the do’s and don’ts to novice and new users that was as entertaining as it was informative.
A demonstration of the new Web Intelligence 4.0 brought rounds of applause when showing the new graphics and “print to page” features.
A session on converting Desktop Intelligence to Web Intelligence documents had attendees captivated and taking copious notes on their iPads.
A manager from a Fortune 50 company presenting and demonstrating a case study of a new distributed dashboard they developed for one of their clients that has both saved them and their client significant time and resources was just sensational.
However, there was one presentation that just completely blew me away and left the audience awestruck. It was about advanced data visualization in BusinessObjects and how to create more visual graphic representations in Crystal Reports, Web Intelligence and Xcelsius. Creating heat maps in Crystal Reports was pretty cool, but creating animated Venn Diagrams in Xcelsius was just phenomenal. If everyone’s jaw had not dropped far enough, the presenter then shared a small personal project he had been working on that left us all speechless.
He kept a betta fish in a tank in his office and he used a web cam along with some software he downloaded from the internet to track the movements of his fish over a 24 hour period. The software allowed him to load all these coordinates into a database. He then accessed this database through Xcelsius to create a playback animation of the movements of the betta fish that could be sped up, slowed down and even add in a 5 second bubble trail to show more precise movement! The audience was stunned and I was so completely lost for words that the only question I could ask was “What was the name of his fish?”. It’s name was “Betta” as simple and as brilliant as the solution itself!
So I have to say that these BusinessObjects Crystal regional user group meetings are just the best thing going on out there right now in the BusinessObjects community. The education, innovative ideas and uniqueness of these gatherings is just unparalleled . I can’t wait till the next one!

Xcelsius on iPad and iPhone Wows Attendees at IBIS Welcome Reception

Xcelsius on iPad and iPhone Wows Attendees at IBIS Welcome Reception

IBIS 2011 kicked off last night with its welcome reception and solutions showcase demonstrating some of the latest business intelligence solutions and one solution in particular created quite a buzz – MyBI Mobile.

As I walked around the showcase showing Xcelsius dashboards running on an iPad, people stopped with looks of disbelief mixed with wonder.

“How are you doing that?”

“Xcelsius doesn’t run on an iPad or an iPhone”

Well, I am happy to report that with MyBI Mobile, not only does Xcelsius run on an iPad and an iPhone, but also on an Android. And it not only runs but it sings too! It has a fabulous simple menu system to serve up different content on the device and that content can also be Crystal Reports, Web Intelligence, Desktop Intelligence in addition to Xcelsius. With Web Intelligence you can also create new reports from the mobile device – that’s cool! When viewing and interacting with the content, you can perform a “pinch and zoom” action on any part of the screen to automatically enlarge that area of the dashboard or report.

While many companies have invested in building both dazzling and effective Xcelsius dashboard business intelligence solutions, they have often been challenged when trying to find ways to move these to mobile devices. The operating system for the IPhone and IPad (iOS) does not support Flash and SWF outputs natively but with MyBI mobile the barriers have been lifted. You can now take your key Xcelsius dashboards and just serve them up on iPads, iPhones and Androids without changing them and interact with all the features just the same as on the PC.

I cannot express enough how incredible this is and what it means to the millions of Xcelsius users around the world who want to take their dashboards mobile  - you are free of your shackles and you can now deliver Xcelsius to the most popular mobile smart devices out there.

I recently heard there are an estimated 200 million iOS devices in use today and now all those users can enjoy the full functionality of the amazing data visualization of Xcelsius through MyBI Mobile.

If the excitement at IBIS is anything to go by, you will certainly be hearing and seeing a lot more of this solution in the coming months so stay tuned.

To Cache or not to Cache – Boosting performance in Xcelsius Tech Tip

To Cache or not to Cache – Boosting performance in Xcelsius Tech Tip

I was recently asked this question on how best to handle a 13 month dataset when in the dashboard the goal is to only display monthly detail and summary data.  This is a good question and in my opinion worth sharing here because it is dealing with boosting Xcelsius backend performance.

Question:  Working with a data set consisting of 13months of data with one row for each day (so max 380 rows) and needing to show only monthly detail/summary data in the dashboard, which of the following would you consider to be the better approach to yield the best performance?

1.  Pull 380 rows in cache with date in one column -> pass STARTDATE and ENDDATE from the dashboard and pull every month’s data by writing a cache query.   When the user selects a month for display in the dashboard, Excel will calculate the start and end date of the month and pass those to the cache query with a WHERE clause specifying BETWEEN ‘@STARTDATE’ and ‘@ENDDATE’

Or,

2.  Load 380 rows in the dashboard Excel backend -> calculate the month from the date column within Excel then use a hidden filter to filter the month’s row based on the calculated month in the previous step and calculate the sum and average within excel?

Answer:  As a general rule, if the data set is 200 rows or less, I would say to go with Option 2.  If it is more than 200 rows, I would say you will get better performance with the cache query.  Of course, this also depends on the cumulative total # of rows being loaded into the dashboard.  For example, if you are planning on adding 10+ additional 200 row data sets, then I would definitely go with Option #1.

With too much data in the backend, Xcelsius performance suffers.    InfoBurst allows us to cache a large set of data, and then use a Cache Query to extract just the portion we need to view on the dashboard, as the user makes selections.  This is a tremendous help to the developer who wants to boost Xcelsius dashboard performance.

Rod Stewart and Business Intelligence in Concert

Rod Stewart and Business Intelligence in Concert

I just saw Rod Stewart in concert last week and he was truly awesome. The musicians and singers supporting him were just fantastic and the whole set was so tight and so professional. It felt as though they had been playing together for years but they actually had only started rehearsing a couple of months ago.

Of course, Rod Stewart is now in his late sixties and has been performing professionally for more than 40 years. He has always been a great entertainer and he knows his art to near perfection. He knows what to look and listen for in the people who support him and he knows what the audience likes and how to woo them.  His choice of songs from his incredible repertoire was spot on incorporating well known hits like “Maggie May”,  “Do you think I’m Sexy”,  and “Have I told you Lately” with some of his best songs like “Reason to Believe” ,  “The First Cut is the Deepest” and  “Hot Legs”.  His showmanship was in fine form too from kicking and heading soccer balls into the audience to getting down on all fours and worshipping the stunning stilettos of the very attractive female mandolin player!

The set lasted well over two hours but it was one of those concerts where you just did not want to end.  I left with a sense of euphoria and a desire to tell everyone about what I had just experienced (hence this blog).

I both attend and deliver a lot of Business Intelligence “shows”. To find that perfect combination of presentation, demonstration and connecting with your audience is not always easy. It takes practice, experience and, like Rod Stewart, a certain amount of showmanship.

Recently I had to deliver a presentation and demonstration of the complete SAP BusinessObjects product suite in one hour.  It is simply not possible to include everything in a meaningful way in that time so I focused  on the “well known hits” of Web Intelligence for reporting , ad-hoc query and analysis and Xcelsius for dashboards and “what if” scenarios. I had to explain the tools, demonstrate their usage as an end user and as a developer.

The customer was in the insurance business so I had one of my band members create fictitious data and scenarios for their specific industry. I also rehearsed the demo many times to make sure I could fit everything in the time allotted. I actually ran through it three times just before arriving at the customer site.

In the presentation room, everything was set up and just 5 minutes before the start, I plugged in a network cable and my Virtual Machine with the server software on it froze up!

Never happens – right?

Actually, it happens all too often. I quickly rebooted the Virtual Machine knowing it would take 10 to 15 minutes to fully reload and started the presentation on time showing my first PowerPoint slides while the server was rebooting in the background.  I managed to complete all the demonstrations within the hour and covered the Business Intelligence portal, Data Quality, Metadata Management and the semantic layer abstraction for good measure.

There were about 25 people present and I played to my audience making sure I had their attention and responding to their reactions as their eyes lit up with the data visualization in Xcelsius and the drag-and-drop magic in Web Intelligence.

They actually applauded at the end. I did not get the wild standing ovation that Rod Stewart got at the end of his set but then again, I did not have soccer balls to kick and stunning stilettos to worship!

Leading Zeros in Xcelsius – Tech Tip

Leading Zeros in Xcelsius – Tech Tip

What can I do if Xcelsius is chopping off the leading zero’s in my order numbers?

This question comes up often when I’m teaching an Xcelsius training class.  Often enough that I’ve decided to discuss the solution here in a tech tip on our blog.

This scenario can happen with different data sources (XML, Live Office, Qaaws) when a number string is interpreted by Xcelsius to be numbers rather than string data.  As many people have tried, it is not enough to format the cells as text in the Excel spreadsheet of Xcelsius.  We need to use a trick to add those leading zeros back in. 

For example, say my Order numbers are all 3 digit numbers (for simplicity sake).  My order numbers are loaded into Column D, but then converted to their proper 3 digit format in Column F with the use of the Length formula in Excel, LEN.  By simply combining an if statement and the Length function to determine the length of a value, we can add the appropriate number of zero’s in front of a value, and voila, properly formatted Order numbers! 

See example below:

using the LEN function in Excel

Two Advantages of a Manual Maximum Calculation in Xcelsius

Two Advantages of a Manual Maximum Calculation in Xcelsius

Problem A: I have data that could be in the 1000s but sometimes could be 1 or 2.  Users do not want to see a division of 1.5 (or any part of a whole) since the data is tracking incidents and there are never “half incidents.”  How do I force the values to integers without losing the divisors for the high numbers (i.e. when there is 1000 maximum, I want to still see 250, 500, 750 divisors)?

 

Solution: Set a manual calculated maximum

{ =IF(MAX(AE15:AE26)<100,100,MAX(AE15:AE26)) } and then set the division number to 1.  With the division number to 1, it often also looks better to remove the grid lines (in case the data for the charts sometimes is much higher).

          

  Problem B:  I want to display a line chart on top of a stacked bar chart because there is no combination chart with this option.  My data for the stacked bar chart, however, is sometimes over 100 and sometimes under 100 and the extra space shifts the chart so that the two do not align.  How can I make the layered charts always align? 

 

 (Layered line chart does not line up with stacked bar chart when maximum is less than 100)

 

 (Layered line chart lines up with stacked bar chart when the maximum is over 100)

 

Note: If the charts are less than a magnitude different, the following method is a not-so-elegant-but-perhaps-acceptable workaround.  In the example above, I have emphasized the issue of alignment by making the different much greater in which case a more-involved display control of multiple charts may be the only acceptable option. 

Solution: Set a manual calculated maximum within an if() statement so that the maximum is always 100 or greater even if the stacked bar chart total is less than 100. (See above note for exception) 

 

This “fix” may not be acceptable for the right visual consumption. What may need to be done when the data is more than a magnitude of 10 different is to work with display properties for two charts with different widths based upon the maximum chart height formula instead.

Passing Flash Variables

Passing Flash Variables

Question: What is a Flash Variable connection and what is it used for?    

Answer: Flash Variable connection is used to pass a variable from one dashboard or interface to the second dashboard.    

Let us consider two dashboards here:
a) Parent dashboard  – from which you will be passing a variable to the Child dashboard
b) Child dashboard – this will consume the variable passed from the Parent dashboard
“State name” is the variable that is passed from the Parent to the Child dashboard.    

“California” is passed as a variable from the Parent dashboard to the Child, and the Child dashboard now shows data for California.    

The data for Child dashboard is fed through Live Office and the WebI report that is feeding the dashboard has a prompt on State.    

Parent dashboard     

Fig. 1

After selecting State, click on the button on the right, in the Parent dashboard, which will open the Child dashboard as shown below:    

 Child dashboard    

There are 2 aspects to this:    

  1. Creating a Live Office connection – where the data is coming from a prompted WebI report; the WebI report in this demo has prompts for State as seen below.
  2. Setting up the Live Office piece.

     

Fig. 4: Live Office connection in the Excel sheet

Cell E3 is where you have prompts being provided for the WebI report, so if you change the states in this cell then the data (E16:H26) will change and will reflect the changes for the corresponding state that is in cell E3.    

The purpose of this Flash variable is so that we can pass the value of state from the Parent dashboard, or any web interface, to another dashboard.  

a snapshot of the Parent dashboard   

Fig. 5

On the left side, you have a selector which is dropping state value in the blank cell; below is a snapshot from Excel:    

     

Fig. 6 (The link “completevm” refers to your server name)

      

Cell E3 is where the labels are being dropped, note that I have a URL button in Xcelsius, and I am pointing the URL to Cell E20. Cell E20 is the concatenation of E19 & E3.    

In this URL “completevm” is the name of your server and Child is the name of your main dashboard. In the Child dashboard, we will create a Flash Variable. Go to Data Connections.    

Fig. 7

Add a connection Flash Variable:    

Fig. 8

Provide a suitable name for the range. Notice that the Range is pointing to cell E3, which means that the name of the state will come from the Parent dashboard through the Flash Variable to this cell, this is also the cell which is acting as the prompt for the WebI report for Live Office (refer to Fig. 4).    

For the Live Office connection, in the usage tab, I have made the trigger based on a change of cell E3, since Live Office should refresh based on the change in this cell.    

Export this child dashboard in html format to the inetpub folder. Publish the dashboard in this path: C:\Inetpub\wwwroot.    

Put the crossdomain.xml file in this folder.    

In this folder, you should now see 2 files – Child.html and Child.swf. Right click on the Child.html file and change its extension from html to aspx. Your file will now be Child.aspx. Right click on it to edit this file, here is how the file looks before editing:    

Fig. 9

Notice that “Enter value(s) for state: = California appears in 2 places. In this case, California is the default value. This is our Flash Variable, and to make it dynamic, replace California with <%=Request.QueryString%>. Save the file after making the changes.    

Fig. 10

To see how the data is changing, drag a spreadsheet component onto the Xcelsius canvas, so you can see the changes. Whenever the State changes in the Parent dashboard, you can see the corresponding changes in the Child dashboard as well.

How to Implement “BOUSER” Row-Level Security in Xcelsius QAAWS and Live Office Connections

How to Implement “BOUSER” Row-Level Security in Xcelsius QAAWS and Live Office Connections

Question: How can I get user-specific data results for Xcelsius dashboards viewed through BusinessObjects InfoView?

Answer: There are a few application variables that BusinessObjects provides for use when a user logs into InfoView, one of which is BOUSER.  BOUser is the variable for the userId that is logged in and can be used when Xcelsius is aware of the user session.  The user session is passed to Xcelsius via a flash variable that has been made available in XI for this purpose.  It is called, CELogonToken.

BOUSER contains the value of the userId of the user logged in.  It can be used to provide user-specific row-level security through the universe design by adding a self join to a field containing the userIds in your data.  With XI3.1 Designer, this can be applied at the class level (across all objects in a class), or through the traditional method of being applied just when objects from that specific table are used in the query.

Here is an example of how this variable is applied:
Note that the self join is applied against the Manager field.

The Manager field for eFashion contains usernames like “Queen” and “Tuttle”.  For this example, we have added these as users into our CMC.

In QAAWS, I have created a web service to return Manager and their corresponding Store.  This query automatically prompts for the BOUSER since the SQL contains the @Variable(‘BOUSER’) restriction.

In Xcelsius, I have referenced this QAAWS with the appropriate connection defined and entering Name of Manager and Store name results into cells that are viewable through a spreadsheet component.

IMPORTANT: QAAWS will return a promptValue invalid error message if a valid value is not declared as a default for bouser.  Make sure you point bouser to a cell in the Excel spreadsheet of your Xcelsius design and input a valid userId as a default.

In order for Xcelsius to know the BOUSER userId of the user logged into BO, Xcelsius needs to be aware of the session.  If you enter a login and password to the QAAWS connection, that username will be used all the time.  Instead, these entries should be left blank.

If they are left blank, then the users will be prompted to log into QAAWS when they attempt to refresh the QAAWS query from the dashboard. 

For both performance and ease of use, it is usually desired that the users continue using their existing session for a single-sign on method.  To do this, a flash variable connection should be added which includes the range name CELogonToken.  This hands the existing session token over to Xcelsius seamlessly.

The BOUSER or userId is not viewable in the token value as displayed.  The token, however, makes this application variable available for use as the Login value passed to the QAAWS connector upon refresh.

In the end, my excel spreadsheet design looks like this:

I export the Xcelsius dashboard to the SAP BusinessObjects Platform (note that an Enterprise license is required for this functionality).

Then, I log into InfoView as Tuttle and view the dashboard. When I click the refresh button, the Manager Tuttle and his/her store gets returned.

Incidentally, the default value of Queen is never used.  The default is only to allow the bouser variable to load with the QAAWS definition, but only the actual user logged in ever gets passed to the query.