OracleBIBlog Search

Wednesday, October 13, 2010

Testing Project Business Requirements

Discussion:
We usually think of testing during the Project Development Cycle. The first instance of testing is to do some unit testing during development to insure that the system does not break when a user logons on to the system and accesses screens to enter data. A second instance of testing is usually during User Acceptance Testing (UAT) to let the user logon to the system and test the functionally of the system. If testing is developed in the environment focused on testing the actual testing begin when the Project is first undertaken. One of the first documents in the testing cycle is to develop a Test Strategy Document. This document is normally developed by the Testing Team with the help of the other Project Team Members especially the business users. Once the document is completed it should be reviewed by all the team members, and agreed to by the Project Team. The next document is the detail test plan. This is normally developed during the Requirements and Design Phases of the Project Life Cycle, and details the detailed testing needs and requirements. The next documents that are completed during the Project Life Cycle are the Test Cases. The Test Cases detail are the scenarios that the users will encounter when using the system, and provides the user the capability to respond to whether the system processes meet the expected conditions.

Requirement Testing:
One of the most often missed steps during the Project Testing Cycle is to test the System Requirements. Once the Requirements Document is completed, the next step in the process it to test the documented requirement to insure that the meet the Business Users needs. This is usually a very difficult process because many Business Users may understand part of their business process, but do not have a detailed understanding of all phases of their business processes, and the data that supports their business processes. One of the main functions of the Information Technology Department is to work with the Business Users to help them understand the business processes and the data that supports their business processes. Usually Requirements Gathering Workshops are one of the best ways to develop the Project Requirements and help educate the Business Users about their business processes the that data that supports their business processes.

The Requirements Testing Phase is an excellent to give all members the opportunity gain an understanding of the Business Requirements, and to ask detailed questions about all phases of the Project Business Requirements. This is very critical because during the Project Design Stage the design should address all the Project Business Requirements. I have seen projects where the Project Design is not compatible with the Project Requirements Documents. This can only lead to project failure.

Some of the main questions that need to be asked during the Business Intelligence Requirements Testing Phase are:

1.) Do the metrics enable the business user to measure the efficiency and effectiveness of his business processes?
2.) Do the Dimensions provide the attributes that enable business user to provide the ways to view the metrics to measure their business processes?
3.) Is the proper security established to access to the Reports and Dashboards by the appropriate business users?
4.) Is the proper data security established to permit the business users access their data and not see other users secure data?
5.) Can we look at Charts and Graphs to view tends in data?
6.) Can we easily navigate through the BI Application without having to minimize the keystrokes and scrolling?
7.) Does the data provide the information to measure progress with the Business Users Goals and Objectives?
8.) Do the information, reports, and dashboards provide the needed information to help the business users better manage their business processes?
9.) Do the information, Reports and dashboards show out of bound conditions so that the business user can respond in a timely manner to correct the situation?
10.) Can the business users use the data to further analyze out of bound conditions or look at the data from a different perspective?

Summary:
Testing the Business Requirements is an important step of the Project Life Cycle. If the Business Requirements are thoroughly tested by all team members, it will lead to a more successful and rewarding development effort for the Project Team. By Testing the requirements early in the Project Life Cycle and getting agreement that they are correct, all the remaining Project Phases will be easier and lead to a better developed system that will meet the Business Users needs and Requirements.

Tuesday, October 5, 2010

OBIEE Go URL Command to access Reports and Dashboards from External Portals or Applications

General:
When using OBIEE at a Customer’s sites, as part of the requirement it may be necessary to integrate OBIEE Reports and Dashboards within other applications or portals. In one instance at a client site, the requirement was to integrate the OBIEE Repots, Dashboards, and Alerts into a Web Portal. The Portal was the main way for Line Manager to view their OBIEE Reports and Dashboards. Also another requirement was to distribute alerts from OBIEE Delivers to the Line Mangers email and let the Line Managers navigate to more detailed reports from the report delivered to their email. The alerts were based on a condition occurring in situation where the Line Manager needs to be notified. OBIEE Delivers enable an alert to be sent to specific uses based on a conditional report; however when the alert was received by the Line Manager he was unable to drill down to the more detailed reports. The way that the requirements were met was to use OBIEE Presentation Services Go URL Command.

Reference:
Chapter 11 of Oracle Business Intelligence Presentation Services Administration Guide, Version 10.1.3.2

Purpose:
The purpose of this document is to discuss the OBIEE Go URL Command and show how it can be used to incorporate Oracle Business Intelligence Results into External Portals using the Go URL Command. Also it will discuss how to permit navigation down to detailed reports from a report delivered to a Mangers’ email.

Snytax:
The starting syntax of the GO URL Command is:

http://server/analytics/saw.dll?GO

There are many other parameters and option that can be used in the GLO URL to access Reports and Dashboards. The following topics will show some of the parameters and filters that can be used with the GO URL Command. The parameters and filters are discussed in more detail in the referenced document.

Syntax for use in Portals:
Below is an example of the Go URL used in a web portal to access an OBIEE Report. The sections of the Go URL command are discussed below the example command.

https://server/analytics/saw.dll?GO&Path=/Shared/Expense/Expense%20Cost/Direct%20Reports%20Requestor%20Summary&ViewName=compoundView!1&Options=drf

https://server/analytics/saw.dll?GO – The standard GO URL syntax

&Path=/Shared/Expense/Expense%20Cost/Direct%20Reports%20Requestor%20Summary – The path to the OBIEE Presentation Server Report. Note that %20 is used in the statement where spaces are in the Presentation Server Path to the Report.

&ViewName=compoundView!1 – The view that is requested in the Go URL to be displayed in the portal. The View Name is found in the XML for the Report in the Advance Tab in OBIEE Answers. If there are different compound views needed for different reasons, multiple compound views can be made for the request. Only the one that is needed for the portal would be referenced in the Go URL Statement. Instead of using a compound view, any view in the request can be referenced in the Go URL command.

&Options=drf – A link option in the Go URL command that permits the following for the report in the portal: d – download to Excel, r – refresh results, f – printer friendly

Other optional parameters can be used in the Go URL command. Refer to the referenced document for a discussion of the optional parameters that can be used for the Go URL command.

Syntax for use in an email Alert Report:
Below is an example of a Go URL command that was used in an Alert to permit enable navigation to a lower level report. A discussion of each section of the Go URL Command will be discussed below the example.

'href=http://server/analytics/saw.dll?Go&Path=/Shared/Project%20Central/Expense%20Report%20Listing%20Person&Action=Navigate&P0=1&P1=eq&P2=Requestor."Requestor%20Name"&P3='|| Replace(Requestor."Requestor Name",' ','%20') || ' > '||Requestor."Requestor Name"||'

This Go URL command is placed in the column formula section of the column on the report that you want to navigate from. You also have to edit the column and make it a HTML format. The above href command must be enclosed in the HTML anchor syntax.


href=http://server/analytics/saw.dll?Go - The href statement for the Go URL command

&Path=/Shared/Project%20Central/Expense%20Report%20Listing%20Person – The path to the report in the OBIEE Presentation Server. Note the use of the %20 for the spaces in the OBIEE Presentation Server catalog path to the report.



&Action=Navigate – the action filter to tell that tell the Go URL Command that you want to navigate

&P0=1 – the number of columns that you want to filter

&P1=eq – the operation operator. The other potential operation operators are shown in the referenced document

&P2=Requestor."Requestor%20Name" – the requestor column in the report that you want to navigate to. This must be a filter with an “ is prompted” value.

|| - concatenation symbol

&P3='|| Replace(Requestor."Requestor Name",' ','%20') || ' – the name of the column on the report that you need to filter from. The Replace statement is needed because the Requestor Name has spaces in it in the database.

' > '||Requestor."Requestor Name"||' – the name of the column that should be displayed in the column on the Report that you want to navigate from.

Once you build the Go URL command you can test it in the Web Browser to check the syntax and insure that the Report will drill down to the detail report from the displayed report.

Other Options and Filters:
The referenced document discusses the optional parameters and filters that can be used the Go URL command. The Go URL command can access Dashboards as well as OBIEE Reports. Refer to the attached document for more information on the Go URL Command.

Summary:
The Go URL command is a good way to incorporate OBIEE Reports and Dashboards in into External Portals or other Applications. It can also be used to navigate down to detailed reports from Alerts sent to Managers by email. Going forward I anticipate that many other companies will want to incorporate OBIEE Reports and Dashboards into their existing Application instead of having to navigate and login to the OBIEE Application. Using the Go URL command is not difficult but you need to become familiar with the syntax, parameters, and filters to effectively use the command to meet your client or your requirements.

Friday, September 24, 2010

OBI Apps Informatica Performance Tuning – Optimizing SIL Read Throughputs – Teradata Response Buffer Size Optimization

Teradata Response Buffer Size

For the reader connection to source data from a Teradata database, ODBC connection is used out of the box. There is another option using piped FastExport utility connection with which there has been mixed success and will be discussed in a later blog post. OBDC can be tuned to achieve better performance in read throughput by changing the response buffer size. MaxRespSize is used to change the value in ODBC.ini. The default is 8192. The max value that can be specified is 1048576. From experience at a client site, simply specifying the max value did not help in improving the throughput. Increase the value systematically to determine the sweet spot for a network. The graph bellow illustrates throughputs achieved at different MaxRespSize values

image

Driver=/usr/odbc/drivers/tdata.so

Description=Teradata Linux 64-bit

DBCName=DWTESTcop1.XXXX.COM

SessionMode=Teradata

StCheckLevel=0

LastUser=

Username=

Password=

Database=

DefaultDatabase=

OutPutAsResultSet=Yes

MaxRespSize=8192

Friday, September 3, 2010

OBI Apps Informatica Performance Tuning - Optimizing SDE Read Throughputs - Oracle DB Network Optimization

Oracle DB Network Optimization

After exhausting query performance with viable indices, consider modifying Session Data Unit (SDU) and Transport Data Unit (TDU) parameters to increase session throughput. The default value of SDU and TDU is 2048 and the maximum is 32767. These can be set as global parameters in sqlnet.ora or for a particular descriptor in tnsnames.ora. They need to be set on both server and client. Consider setting these parameters in tnsnames.ora so that it affects only a particular connection descriptor that is used for Oracle DB server to Informatica server communication. The SDU and TDU parameters can be set higher depending on the network and memory. Get help from your Infrastructure team in determining the MSS (Maximum Segment Size) of the network. Ideally they should be in the multiple of MSS. In addition, the SDU should not be greater than TDU. Ideally, they should be the same. For slower networks, consider a lower value.

Client Side Configuration (Informatica Server):

tnsnames.ora:

CRMOLTP =

  (DESCRIPTION =

(SDU=32768)

  (TDU=32768)

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = crmoltp.xyzcompany.com)(PORT = 1521))

Server Side Configuration:

listener.ora:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SDU=32768)

  (TDU=32768)

(GLOBAL_DBNAME = CRMOLTP)

(ORACLE_HOME = /u01crmoltp/oracle/product/10.2.0)

(SID_NAME = CRMOLTP)

)

)

tnsnames.ora:

CRMOLTP =

(SDU=32768)

(TDU=32768)

(DESCRIPTION =

(ADDRESS =

(PROTOCOL= TCP)

(Host= CRMOLTP)

(Port= 1521))

(CONNECT_DATA =

(SID = CRMOLTP)

)

)

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...