David Taylor’s Business Intelligence Blog

July 23, 2008

Common Questions about Connectivity with SAP

Filed under: SAP BusinessObjects — dtaylor92 @ 3:09 pm
Tags: , ,

Now that SAP has clearly and unambiguously stated that BusinessObjects is the new face of BI for SAP, we have many customers who want more information about connectivity was SAP and are surprised when we recommend that they connect to an existing BW Query instead of to the entire Infocube.

Why is connecting to SAP BI/BW Queries a best practice?

There are several reasons for connecting via SAP BW Queries:

  • Performance - The BW OLAP Engine performs its processing against the query cube. In the event, you connect an external analysis tool directly to an InfoCube, a query cube consisting of all the characteristics and key figures in that InfoCube is generated on the fly in order to handle the request processing. This process adds significantly to the processing time of the request made by the end-user when compared to reporting against a pre-defined BW Query.
  • Capabilities - There are several capabilities exposed via the interface to BW Queries that are not exposed when connecting directly to the cube such as calculated and restricted key figures to name a few.
  • Flexbility - The BW Query Designer offers an extension to the data modeling environment in which changes are relatively easy to make as compared to the effort required to change an InfoCube.

Is this required across all the reporting tools? (WebI, Voyager, Crystal Reports)

Its mostly applicable to WebI and Voyager. There’s more flexibility with Crystal since it has more connectivity interfaces to SAP and it is not designed to be an ad-hoc reporting and analysis tool. Xcelsius will typically be built against scheduled content since most dashboard data is usually only updated every 24 hours.

What are the advantages and disadvantages of this different approaches to SAP Connectivity?

Advantages of BW Query - The BW Query can take advantage of Query capabilities such as CKF and RKF. The BI Team can also provide better control over how much data user can request.

Advantages of InfoCube - The BI Team can expose entire dataset to user without additional work from BI team

Disadvantages of BW Query - Using BW Queries requires additional work from BI team to setup queries specifically around areas of the business, e.g. marketing, sales, etc. It limits amount of information available to user for a given query. That being said, the adhoc report designer can combine multiple queries within a single report. In addition a well defined BW Query can serve as the data sources for multiple reports. (whereas traditionally in SAP BW, we saw 1 query = 1 report)

Disadvantages of InfoCube -Users can get lost in the large amount of data available to them. There is a lack of CKF and RKF, which will lead to users creating more filters and calculations at the report level. These efforts will likely be duplicated across multiple reports. Duplication leads to duplicate work and the potential for different answers based on different formulas (i.e., no “single source of the truth” for those formulas)

Performance of BW Query - Better. Because of the constraint on information available to the end-user, the query design can test a subset of data and guarantee a certain level of performance.

Performance of InfoCube - Vulnerable. Because the entire cube is visible, there is no what to know what combinations of information the user might pick. Without specific controls over the type and amount of data returned, it is impossible to determine who long the query might run.

Flexibility of BW Query - The BW Query is more flexibility in regards to exposing “processed” data (CKF and RKF). It also provides flexibility when it comes to making changes to underlying data because not every change to the InfoCube will impact a BW Query.

Flexibility of InfoCube - The Infocube is the most flexible with regards to the data exposed.

What data structures in SAP are supported within BusinessObjects?

WebIntelligence/Voyager supports: Standard and Transactional InfoCubes, Remote InfoCube (not recommended due to performance), MultiCube, MultiProvider.

Crystal Reports supports: Standard and Transactional InfoCubes, Remote InfoCube (not recommended due to performance), MultiCube, MultiProvider, ODS, R/3 Infosets, ABAP Queries, ABAP Functions. ABAP Data Clusters, Transparent Tables, Pool Tables, Cluster Tables, zTables, InfoViews

Conclusion

It’s been exciting to see how quickly SAP customers have been able to unlock the data that they have in there Business Warehouse to a whole new groups of users.  Users can now create their own reports from scratch using the WebIntelligence interface.  Executive users and front-line contributors can have their personalized data delivered directly to the desktop.

I can’t wait to see what will unfold within our next generation of tools.

July 3, 2008

Looking for an Xcelsius 2008 Best Practices Guide?

Filed under: Miscellaneous — dtaylor92 @ 9:56 am

I think I may have found what you are looking for. This is an excellent guide that you can use to bring best practices to all your Xcelsius work. This 16 page guide is an well thought out guide for using standard around colors, data organization, testing, etc. Implementing these best practices will undoubtedly improve your ability to create world-class Xcelsius models that are easy for others to maintain after the fact.

This guide was written by Matt Lloyd with contributing materials from Ryan Goodman and Richard Reynolds.

Download it today!! You’ll be glad you did.

Xcelsius 2008 General Best Practices Guide

June 27, 2008

Next Generation Computer Interface

Filed under: Miscellaneous — dtaylor92 @ 7:12 am

Remember the Mouse revolution? I’ll never forget the first time I saw a Macintosh and used the mouse to move a pointer across the screen. I could start programs, paint pictures and do all kinds of cool things without learning a new interface.

Well, Jeff Han recently introduced the world to an entirely new generation of user interface during the annual TED conference. It is a Minority Report moment.

Its a new multi-sensor touchscreen which allows the user interface to completely disappear. You have to see it to believe it. It is truly incredible.

http://www.ted.com/index.php/talks/jeff_han_demos_his_breakthrough_touchscreen.html

June 26, 2008

Set Analysis Part 5b: Custom Groups in WebIntelligence

Filed under: Semantic Layer, Set Analysis — dtaylor92 @ 1:13 am
Tags: , , ,

So how we do do this exactly? How can I use BusinessObjects to create custom groups on-the-fly? How can I get beyond my requirements for multi-pass SQL and speed up my reports? The answer is Sets.

Set DataOn Target with Set Analysis

All the information regarding sets is located is the tables called sets_*. The most important tables are:

  • set_set - contains the set name, description, etc.
  • set_set_detail - contains all the set member information including member key, join date, leave date.

Here is a universe I created that you can download and use with the sample database provided in my earlier blog post. We need to add the set_set and set_set_detail tables to our WebIntelligence Universe so that the set member information they contain can be used within our query.

Custom Groups in WebIntelligence

Here you can see that we created a join to the DW_CRM_CONTACT table. We also created a self-join on the set_set_detail table. The self join make sure that we reference the edate value of 12/31/2999, which is the default edate for current members of any set. In the case of a dynamic set, If a member had left the set then the edate would not be equal to 12/31/2999.

In addition to this, we also joined the set_set table to the set_set_detail table using the setversion_id key. (It may appear that the setversion_id is always the same as the set_id, but it is not so only join the tables via the setversion_id)

Here is a look at the Custom Product Groups

Custom Groups in WebIntelligence

BEST PRACTICE: Whenever you may need to alias a table. If you alias a table, then all references to that table should be aliased. You can see that because I needed to reference the set_set_detail and set_set tables twice, once for products and once for contacts, I aliased both.

User Prompts

After joining the tables, we needed to create the filters for our custom groupings to make it easy for users to select which groups they would like to use on the report.

Creating a Group Filter in the Universe

I specifically defined the filters a multi, which will allow the user to select more than one filter. This is important because it provides even more power for your end-users. Now they can do direct comparisons of one group to another, even if a member (e.g. contact) exists in more than one group. The only downside is that it means that a member can be counted twice, this is why I recommended that when you define your sets you should use naming conventions that identify the sets as being mutually exclusive.

Here is what the prompt will look like in action:

BusinessObjects Universe Prompt

In my universe I did not use cascading prompts to first limit the sets by folder, but that is certainly an option since folder information is located in the set_project table.

Getting Results

After configurating the universe and setting up the prompts this is an example of the results you will see. I have run a report and selected multiple custom groups which are mutually exclusive. These groups on based on the current periods sales amounts:

Here you can see the report is broken down by my custom groups which were defined and processed by the Sets Engine.

Summary

I’ve really enjoyed taking you on a quick tour of Set Analysis and showing you some of the ways that you might get more value out of your existing data assets. Sets offers so many solutions around data analysis:

  • Custom Groupings – which allows the organization to more nimble as changes such as mgmt structures, mergers and acquisitions take place.
  • Classic Segmentation – Joiners, Leavers, Stayers (which in turn are perfect for analysis by a predictive tool so that you can see why are people joining or leaving? What are the influencers?)
  • Advanced Analysis – “Give me all quad-pack customers who have never purchased phone accessories from a company owned retail store.”

The ability to divide customers up into categories of: highly profitable down through :unprofitable, and using that to drive the business because the bottom line of any business is the customer and your organization’s ability to make a profit.

Although dashboards are currently in vogue and everyone wants one, I often wonder how organizations are analyzing the information beyond the dashboards. I have nothing against dashboards, but I would encourage you to ask yourself this. Once we see that sales are falling, what am we going to do? How am we going to do root cause analysis? Were all customers affected? What about products? Segmentation might well hold the answer to these yet unsolved mysteries.

June 25, 2008

Set Analysis Part 5a: Custom Groups in WebIntelligence

Just What the Doctor OrderedI recently had a customer who was in the process of migrating from a legacy version of Microstrategy to BusinessObjects. They had been able to migrate over most of their core reports, but there were several reports that required a number of custom groups.

Microstrategy’s approach was to allow the customer to define any number of groups and filters from with the Microstrategy Desktop tool. These global filters and group definitions can then be leveraged by the report editor for building the report. Microstrategy’s SQL generation engine uses multi-pass SQL when creating the reports. Multi-pass SQL means that a single SQL statement cannot deliver back the correct results, so the report data is written into temporary tables. These temporary tables are then combined with additional queries to obtain the final results.

In the case of BusinessObjects, it wasn’t going to be possible to take the same approach. BusinessObjects does not generate multi-pass SQL. Instead, BusinessObjects focuses on creating extremely complex SQL in a single SQL statement. In most cases, this works just as well, but this was an exception. This sales report used a combination of multiple filters at multiple levels in the heirarchy. The Heirarchy was also defined within the custom groupings and not within the database.

The right answer is: Modify the Data Warehouse and ETL processes to make the underlying data better fit your reporting requirements. You see, the problem was that these custom groups should be defined within the data warehouse natively. This would allow for simplified SQL that can be run in a single pass. Translation? Reports the use custom groups will run a heck of a lot faster.

In my situation, the customer wasn’t going to be able to make these changes, but still wanted to migrate the report to BusinessObjects.

The best answer is: Use Sets. Sets gives you the ability to generate those custom grouping within the data warehouse. Unlike Microstrategy which will run the same multi-pass SQL over and over again, sets will allow us to “cache” the previous passes using sets and run single-pass SQL. We can then tie the set tables into the data warehouse and add the custom groupings to our universe.

The advantage of sets over ETL is that it can be much more dynamic. Sets can allow an analyst to create a new set in a matter of minutes and then see a report broken down by the new custom group.

In my case it was just what the doctor ordered. By introducing sets and adding the set tables to the BusinessObjects semantic layer, we now have access to the sets, which in this case, the customer called custom groups. It was perfect.

Now, not only will the customer be able to migrated this complex report from Microstrategy to BusinessObjects, but they will also be able to run the report much faster than ever before because the report will be generated through a single-pass process.

Tomorrow, we’ll take a look at how to set this up using our simplified data.

Next Page »

Blog at WordPress.com.