OracleBIBlog Search

Friday, July 23, 2010

Impressions of the Oracle BI 11g Launch in New York

Hats off to Oracle for doing a great job on the much anticipated launch of OBIEE 11g. Dennis Busby (BICG) and I were fortunate enough to attend the launch event in New York on July 20 with approximately 300 other people.



The session started with Tony Fernicola kicking off the launch from one of the buildings that make up the Lincoln Center campus. The theater featured an amazing view of Central Park and the Manhattan skyline. Tony set the stage discussing the history of BI at Oracle as well as Oracle’s vision for business intelligence in the future.

The OBIEE 11G release is instrumental to Oracle’s BI vision as it does a great job of integrating OBIEE with additional Oracle technologies including Hyperion Essbase, Oracle Enterprise Manager, Oracle WebCenter and WebLogic (to name a few).

Paul Rodwick and David Granholm then served as co-presenters for the North American release of OBIEE 11g. They grouped the content into 4 different categories that included ROLAP, MOLAP, BI Publishing, and Collaboration. During the presentation, Rodwick and Granholm provided views of the interface design and of the enterprise approach to the architecture. Both presenters did a very nice job showing off Oracle's new business intelligence suite in a way that I felt highlighted the cababilities around OBIEE 11g.



BI Consulting Group has been an integral part of the beta process. BICG's OBIEE 11g Task Force members, consisting of 15 BICG consultants and managers, are working daily on dissecting the OBIEE 11g beta release to ensure we continue to be the most knowledgeable Oracle Business Intelligence experts in the world. Our OBIEE 11g Task Force has been doing a great job on providing beta feedback to Oracle as well as paving the way for BICG to guide and help our customers who plan on embarking on their own OBIEE 11g initiatives.

To ensure we are continually providing proper guidance to our customers and partners around Oracle BI 11g, BICG will be announcing new topics for our BICG Webinar Series that will feature BICG's OBIEE 11g Task Force and focus on the key questions our customers are asking about 11g. Our OBIEE 11g Task Force is also in the process of scheduling Free OBIEE 11g Hands-On Workshops across North America to allow customers and prospects an important hands on experience!

I truly believe the new capabilities of Oracle Business Intelligence 11g will allow organizations to better meet their strategic enterprise business intelligence-related goals . I am most excited to start thinking creatively around best practice usage of collaboration, action framework and the Hyperion Essbase integration as these new features will be game-changers throughout the entire BI space.

Upcoming BICG Webinar Series Events


Leveraging XOLAP and Hybrid Analysis for Increase Performance and Real-time Analytics
July 27, 2010, 1pm-2pm ET

The first chapter of many BICG Webinar Series chapters to focus on Oracle BI 11g. BICG's OBIEE 11g Task Force will simplify the 100's of enhancements and new functionality in the new release.
August 31st, 2010, 1pm-2pm ET


Monday, July 19, 2010

BICG at Florida OAUG Summer Meeting

DLT Solutions, Oracle, and BI Consulting Group (BICG), will be holding a half-day workshop for the Florida OAUG on Tuesday, July 20th. In addition to the members of the FLOAUG this event is opened to all State & Local Government agencies as well.

At this event we will focus on the Oracle HR/Payroll modules and Oracle’s BI Analytics platform with an emphasis on HR reports, graphs, dashboards, and KPIs. The discussion will be led by both Oracle and BI Consulting Group with such noted speakers as Ian Sterling (Oracle), Matt Kvancz (BICG), and Todd Wall (Oracle) sharing their extensive knowledge and experience with attendees.

Ian sterling will discuss HCM Roadmap and Vision, Key Features, R12.1.3 Functional Enhancements, and Productive User Interfaces. Todd Wall will discuss the R12 HCM Upgrade Timeline, key R12 milestones, and workarounds. Brad Reinders and BI Consulting Group will conclude the day focusing on the Oracle BI Analytics platform with an emphasis on HR/Payroll metrics, KPI’s, and reporting.

Agenda:

0930 – 1000 Registration
1000 – 1010 Introductions
1010 – 1100 Oracle HCM Roadmap, Key & New features/functionality
1100 – 1110 Break
1110 – 1200 R12 HCM Upgrade Timeline, Key Milestones, Assessments, & work arounds
1200 – 0100 Lunch
0100 – 0250 BI Consulting Group Oracle BI Analytics Overview and HR/Payroll reporting
0250 – 0300 Concluding Remarks

We hope to see you there!


Date:
Tuesday, July 20th
Time:
9:30 a.m. – 3:00 p.m. ET
Location:
DoubleTree Castle Hotel
8629 International Drive
Orlando, FL 32819

Registration Link: http://www.dlt.com/events/Florida_Oracle_Application_Users_Group/2488

Wednesday, July 7, 2010

Using Selenium for OBIEE Regression Testing

In my last post I introduced Selenium, an open-source testing platform with an easy-to-use Firefox plugin that can be used as a cost-effective tool for regression testing web-based applications like OBIEE. I promised to demonstrate workaround to OBIEE-specific challenges when using Selenium, namely:

  • Selenium's problematic handling of daughter or "target" windows, and
  • Dynamic element ID generation in OBIEE
[Note: All examples given here will be executed against the Paint demo installation using Firefox 3.5.10, which according to Oracle Support is the most recent version of Firefox that is supported in the most recent version of OBIEE (10.1.3.4.1)]

Here's a common scenario impacted by these challenges: When configuring a Dashboard to link to another Dashboard, OBIEE would open the new Dashboard in a "daughter" or "target" window.

Selenium would have trouble scripting this behavior because a) the only way Selenium can effectively identify target windows is by element ID (this is a known issue that doesn't appear to have a resolution from the Selenium project forthcoming anytime soon - though, in the grand tradition of Open Source software, you are welcome to figure out your own fix!) and b) OBIEE generates element ID's dynamically, which means they will change with each instance of the Presentation Server. So any Selenium-generated script would not work against a different Presentation Server, or against the same Presentation Server after a restart.

To illustrate the problem more clearly, I will create links to Dashboard pages in "My Dashboard." In this example I created links to "Brand Analysis", "Regional Analysis" and "Year over Year Analysis".


As you know, clicking into any of these links opens a new window (whose name = "_blank") to display the selected dashboard.

The workaround solution to this problem: 1) identify the URL that is opened in the "_blank" window, then 2) execute a standard Selenium "Open" command on that URL.

The key is the first step: identifying the URL of the "_blank" window. Doing so involves two tricks: a) Identifying the desired <A> element using XPath (which is an open standard that Selenium relies on to identify & interact with page elements); then b) identifying its HREF attribute.

If you're not familiar with XPath, it may be helpful to take a look at the following sites first, each of which offer a concise one-page explanation of XPath basics:
  • XPath Syntax
    http://www.w3schools.com/xpath/xpath_syntax.asp

  • How XPath Works
    http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPXSLT3.html
Let's take a look at the html for the customized "My Dashbaord" to understand some essential XPath concepts.

<a
   href = "saw.dll?PortalPages[...]Done=Close"
   target = "_blank"
   name = "SectionElements">
   <span
      class="NavLinkCaption">
      Brand Analysis
   </span>
   </a>

The "attributes" of the <a> tag (or "Element") are "href", "target" and "name". Their respective values are 'saw.dll?PortalPages[...]Done=Close', '_blank', and 'SectionElements'.

The "attribute" of the <span> element is "class" and its value is 'NavLinkCaption".

The "child" of the <a> element is the <span> element. Or put another way, the <a> element is the "parent" of the <span> element.

The <span> element content "contains" the text 'Brand Analysis'.

Using XPath there are several ways to identify an element, but not all can be used with web pages created in OBIEE:
  • Element ID - Usually the best approach, and is the default behavior in Selenium, however this approach is not possible because OBIEE generates element ID's dynamically
  • Ordered location in the document - Not advisable because any change in document content (e.g., adding a new <a> tag before the desired <a> tag) may break the XPath query
  • Attribute (href, target, name, etc) - Not possible because OBIEE attributes are not unique; there are several href's whose target = "_blank" or name = "SectionElements"
  • Displayed content - The best bet for OBIEE, since displayed content will be unique by definition (how else could the user differentiate between the links?)
To identify the desired <a> element via the contents of the <span> element, we can use the XPath "contains()" predicate:

//a/span[contains(.,'Brand Analysis')]

Pseudo-SQL translation: Select span.* from document where span.parent = <a> and span.content like '%Brand Analysis%'

Then the ".." expression (meaning "Parent of") can be used to identify the desired <a> tag, which is the parent of the <span> tag we identified above.

//a/span[contains(.,'Brand Analysis')]/..

Pseudo-SQL translation: Select span.parent from document where span.parent = <a> and span.content like '%Brand Analysis%'

Now we're going to use this XPath path expression to create two Selenium test case steps -- one which uses the Selenium saveAttribute command to assign the value of the <a> tag's href to a variable named 'windowURL', and another which opens that URL within the current window:

[Background: Selenium steps consist of three components: Command, Target and Value - For full documentation of Selenium's functionality see its official site: http://seleniumhq.org/docs]

Step 1:
Command: storeAttribute
Target: //a/span[contains(.,'Brand Analysis')]/..@href
Value: windowURL

Step 2:
Command: open
Target: ${windowURL}
Value: [blank]

Here's how the commands would look like in Selenium:


There are many more aspects to Selenium integration with OBIEE to learn that I hope to touch on in subsequent posts - but this little tutorial should give you a good start.

Have fun...