Skip to content

We need more traction…

A common misconception in automobile racing is that the limiting factor in how fast a racing car can travel around the track is the amount of horsepower under the hood. While this concept has been pounded into our heads by the millions of car advertisements, the simple truth of the matter is that there is another factor that’s far more important. It’s what helps to explain how the  Ariel Atom or the Gumpert Appollo, while not being the most powerful cars, are the fastest around a track, and that factor is traction.

In BI, we’re often sucked into the client’s wishes for more functioanlity, more complex reporting, more, more, more…but it’s our jobs, as a consultant to direct the client into the fastest way around the track, not just cramming the most bells and whistles into the package and slamming a beastly server under the hood. It’s often easy to forget, amid the 100′s of status calls, discussions, planning sessions, POC’s, etc, that it’s necessary to have restraint and not just give the client everything they are looking for.

Using my car analogy, I’ll go back to a Tom Cruise classic, Days of Thunder.  There’s a particular scene where the hot shot race car driver (Tom Cruise) wants to run around the track as fast as he knows how, but in turn, destroys his tires, thus costing him a quality lap time. Eventually, with coaching from his driving instructor, he learns how to best use his car on the track and performs better overall. This is essentially the same thing that we try to do on a daily basis, coach our users and BAs into creating a product that will be the fastest around the track without slamming a $3M server into to the environment just to mask a design issue.

Some ways that I have been successful in the past at convincing clients to take a more ideal path around the track:

- Stories. Nothing works better to convince a client to go one way or the other than telling them a heart felt horror story of someone else’s mistakes and where they ended up.

- Common sense. Stepping back from a proposed solution and looking at a top down approach and explaining, with clear and simple logic why a different approach may be better suited has often led to changes in report design.

- Examples. The one thing that we, as report developers often take for granted, is that we already know how the tool will look and how it will perform given certain tasks, but this knowledge isn’t something that we can always easily convey to a user. Sometimes the best way to achieve this is to make an example. Sometimes spending an hour to create a mock-up will save you 20 in development and rework.

-Ask the annoying question….”Why?” I’ve often seen that users will make requests for reasons like “Well, such-and-such program did it that way” or “It just seemed like the right thing to do”, when in reality, typically a much simpler design is going to almost always work out better for both the end user experience and the functionality of the analytics being presented.

Happy Reporting

Displaying Images in Excel Downloads

Recently, a defect came through on our project that said that images that were in a report’s header were not showing up in Excel when the user downloaded the report. The report in question was a customer facing report, so it was imperative that the logo be visible to the client when printed. Without getting into the many reasons that I don’t think that users should be able to print to Excel, I do want to post up the method that did finally accomplish this goal.

It was brought to my attention by @Nephentur that the only suitable code for passing images through the Excel download link was the fmap used in the following format:

Fmap:images/yourimage.jpg

This of course assumes that yourimage.jpg is located in both of the following directories on the BI Server:

ORAHome\j2ee\home\applications\analytics\analytics\res\s_oracle10\images

And

OracleBI\web\app\res\s_oracle10\images

As it turns out, you can’t use fmap references in the Narrative view, which is where we originally tried to reference the image, but you can use them in the Title object in the dashboard editor.


Using an extra title object, you can place the image wherever you want within the report. It’s good to note that you’re probably going to want to remove the blue line that defaults under the title.


Go ahead and remove the default boarder and you will no longer have the line.

It’s as simple as that.

Thanks to @Nephentur for pointing me in the right direction and to Srikanth Addala for his post on the subject.

The Power of Social Media

Recently I’ve started to use Twitter again, mostly at the bequest of ORACLENERD, and it’s been pretty good so far. I’ve gotten some good information, excellent help and been introduced to some great folks in the OBIEE community at-large. With Twitter on my mind, before I went out this past Friday night, I decided to check out the website of the beer bar here in Boca Raton that I sometimes go to, The Lodge. While browsing their page, I noticed that they had a Twitter feed, so I figured that I’d sign up and get to hear about the latest going’s on in the local beer community.

That evening, I headed out to the bar, got dinner, some drinks and met with some friends. At the end of the night, I didn’t really think much about it, as the waitress handed me my bill and thanked me for my patronage. I signed the bill and went home that night. Everything was as you would expect. The next day, as I was taking out my debit card to pay for something, I realized that I had an extra Bank of America debit card in my wallet…puzzled, I didn’t really know what to make of it. I figured that I must have picked it up somewhere along the way, and, being an honest individual, I did what any honest person would do, I pushed it through my shredder.

Well, I get up this morning, log into Twitter and have a private message from @LodgeBoca, letting me know that I had the other gentleman’s card and they would like me to come in to square everything up. I was astonished and actually quite impressed. It was pretty remarkable that Twitter was able to make that connection as quickly and easily as it did. It’s things like this that show that the whole social media craze that’s going on today is more than just a passing fad, it’s something that has real and applicable uses other than just allowing teenagers to stalk one another. Nice job Lodge.

Using Non-Indexed Prompts while Utilizing Indexed Values

I’ve often been asked by a client to us a specific value in a prompt, but pass something else in the SQL to aid in performance. For example, prompting on “City Name – Zip” and just passing the indexed Zip.

This can simply and quickly be done in OBIEE without resorting to complicated RPD changes.

In this report, we will assume we have an index on the “Market Number” column, but the spec calls for the “Market Name and Number” to be prompted. Here we’re going to want to pass the “Market Number” column in the query, but don’t want the user to have to figure out what the Market Name is associated with the Market Number.

In order to do this, we need to create an auxiliary report that will be placed in the Shared Directory. The report will contain a single field (Indexed Field) and a single filter that is the “is prompted” for the prompt. Create this report and save it in the Shared Directory.

Go back into your main report, and create a filter on the Indexed field, clicking on the Advanced button and then “Filter based on results of another request”.

Select the auxillary report that you created in the previous step as the “Saved Request”. Because there is only a single value in the report, it will default to our Indexed column.

Your report should end up looking like this:

Now, when a user goes and selects a Market Name and Number (our M01 Market field) with the prompt, the original report will not see or read the value, but the auxiliary report will. Our main report will pull back any values that are associated with the selected Market Name and Number fields, but use the Market Number.

In real world testing with larger data sets, I’ve found that using more than a single value in the auxiliary report greatly diminished the benefits that were gained using this approach, but that could have been due to our data, so give it a try to help reduce the number of auxiliary reports needed.

It’s also good to note that the auxiliary report doesn’t need to be displayed on the dashboard for it to run and work.

 

Installing OBIEE 10.1.3.4.1 on Windows 7 x64

I am not going to dig very deep into this subject, as the 32-Bit install been covered in depth on quite a few occasions.

I just wanted to quickly share with you the few items that I found needed to be changed in order to get it up and running quickly.

  1. Turn off Aero. OBIEE does not seem to like when Aero is running, so if you have that running, turn it off while you’re installing.
  2. Install the correct (32-Bit)JDK prior to installing OBIEE. I ran through an install using the 64-Bit version and the install succeeded but OBIEE refused to load. The 32-Bit worked on the first try.
  3. Prior to running the Setup.exe file, a quick right click and into Properties gives you the following image:

    You want to make sure that you have the compatibility set to Vista. I tried a few others and they didn’t work for me. Your mileage may vary, but that’s what I found.When you go to run Setup.exe, right click, and select “Run as Administrator”, as I errored out during my install because I didn’t have sufficient privileges.

  4. Write down your OC4J password! If I had a nickel for every time I forgot that damn password…. I’d have quite a few nickels.
  5. Restart your computer, on the restart, you’ll see the OC4J client run:


Next we have to set up the ODBC Connection. The tool is found here:

8. Load odbcad32 and you’ll get this:

9. Select “Add…” and select the Oracle BI Server and click Finish.

10. Name your connection and hit Next…

11. Enter in the default Administrator login and password and click Next…

12. Click through the final window and we’re onto the last two steps to get OBIEE working.

13. Make sure that IIS service is turned on. This can be found in Windows 7 by going to your Run bar and typing “Windows Features” and clicking on “Turn Windows Features On and Off”

14. Finally, we go and run the ASP.NET Registration tool. You must run both the 32-Bit and 64-Bit versions. One is found in the Framework64 directory and the other is in the Framework directory.

15. Ta-Da! All done… Working local OBIEE install on Windows 7.


When I initially started working on this post, it was really just to document an install with detailed pictures, as there are other install guides out there for Windows 7, but none that were quite detailed. I do want to thank Nick Johnson over at Oracle BI Blog for tipping me off to some of the items that I had forgotten.

OBIEE Variables

(Image courtesy of Siebel Essentials via @nephentur)

OBIEE Variables are often one of the stumbling blocks that new users to the software have to understand, and that being said, since there are a few different types of these variables, coming to an understanding of what each one is and where it resides is the first step towards understanding them, so here is a brief description of the different types of variables available to users:

Server Variables-This kind of variable can be used within a SQL statements within a report.

Session Variable: When a user logs into the BI Server, these variables are initialized according to the user’s log in credentials. OBIEE gives users a set of System Variables which are pre-determined and have saved names. Users can also create their own Non-system variables which will change for each user. Ex: User’s Home Division, User’s Login Name

Repository Variable:To bring in values that are the same, regardless of which user is logging in, Repository Variables are needed. These values work well for time periods, such as a rolling time frame. These variables can be either static or dynamic, depending on the information that’s being provided.

Presentation Variable: Users can pull data from the presentation server using Presentation Variables. These are helpful when you want to get specific values such as current time.

Abstract: Catch All Business Intelligence.NET (a.k.a. Cabi.net)

Abstract: Any career in the IT field is defined by an ever changing landscape of hardware and software. Innovation is changing the face of our industry almost yearly. In this rapidly changing environment, as developers, we’re often faced with challenges that aren’t immediately correctable, and in these cases we’re forced to research and develop new and innovative ways to solve problems. Luckily, there is a strong online community with which we are able to collaborate and work together with in order to solve these many problems. This domain is dedicated to collecting all of the related and semi-random research bits that I find around the web and while doing my job. There may not be a whole lot of new ideas or super creative prose, but in the end, this page is more of a resource for my own use and available to the general public for consumption if needed. Hope you enjoy.