Showing posts with label Business Objects. Show all posts
Showing posts with label Business Objects. Show all posts

Monday, 18 May 2009

To Business Objects or not to Business Objects?

Just out of curiosity. How do others consider Business Objects? My former company, and my current employer use it as a reporting tool on top of their data warehouse. Basically, between the database layer and the end-user, there resides a Business Objects universe that acts as a semantical layer translating database-objects into business entities, which allows endusers without any knowledge of SQL whatsoever to quickly generate their own reports.

That's the theory behind it, anyway. In reality, expecially at my current employer, I have to develop the reports, even after the universe phase, because our client has all kinds of specifications for report layouts (that the Business Objects reporting suite was never intended to be used for, but the client already sold it to their client, and seeing THEY don't have to build it anyway, that's all fine and dandy). Add to that that the existing universe is plain unfit to be consumed by end-users, and I'm seriously wondering why on earth the company is paying top dollars every year for a product that greatly complicates even the most trivial tasks.

I present to you the following theory I came to develop over my time of working with Business Objects: "A properly desgined data warehouse (meaning star schemas using dimensions that make sense to business users) has no need for a translational layer like Business Objects provides". In other words, a proper star-schema makes the universe part of the BI implementation redundant, which will lead to the Business Objects reporting suite becoming at best a limiting (not to mention expensive) engine for making the data look pretty.


My main complaints with Business Objects:

* Pricing
* An engine that greatly complicates even the most trivial tasks
* Poor documentation and error messages
* Reliability is horrible. More than once I experienced things "magically" dissappearing or changing. At first I dismissed these as incidents or failure on my part, but I managed to be able to "reproduce" these anomalies.
* When you're working with a proper data warehouse, the universe layers adds extremely little value.

I'd be interested in hearing other people's opinions.


Read more!

Monday, 8 December 2008

Business Objects - Custom entry to list of values

After recently having joined a new employer, I'll be blogging a bit more about Business Objects and some tricks and tips to get certain stuff done.

Let's start with adding a custom entry to a list of values (lov). In this case, we want to give a user the ability to select in order to select all the values in the lov.

First we of course create the lov itself. In this case, Iøll show a mockup of a lov of clients that pulls data from a table created specifically for the purpose. Imagine that during the ETL process, a SELECT DISTINCT (ClientName) fills the table every night, in order to avoid having to do the SELECT every time an end-user retrieves an updated copy of the universe. It would look something like the following:





With the list of values itself in place, we now create a new object that will contain a dummy string called . In Oracle, we can do this by referencing the SYS.DUAL table. Let's start by creating the value itself:



Add the SYS.DUAL tab le to the universe, and then proceed by clicking on the "Table" button. There, select sys.dual from the list of tables. This will ensure the object will parse properly.

Now open the original list of values again, and select the "properties" tab. Supply a meaningful name for the list of values, and then click the "Edit" button. Here, we will add the newly created object to the existing list of values. Click on the "Combine Queries" button (circled) in order to add the extra object. You will notice a second tab called "Query 2" appearing. Delete the existing variable there, and select the object:



Click "OK" twice to return. At this stage, I usually choose to hide the object, as its only purpose is to enhance the list of values already there. It also is recommended to ensure that on the properties page of the object, you turn off "Associate a list of values".

To finish up, create a filter prompting the user to select a value from the list of values. To this, we will add the option to also select . It would look something like the following (this does assume there is an object "Blog\Client" available, from which the value will be compared with the filter):



This should do the trick. Please be aware that the screenshots contain mockups that have not been validated against a real database, and therefore they might be not neccessarily work 100%. If you find this is the case, please let me know, and I will try to do it over again, and ensure it works against the eFashion universe.


Read more!