Monday, May 13, 2013

OBIEE 11.1.1.7 - Include Null Values

In OBIEE 11.1.1.7 there is a change of behavior regarding Rows with Null Values. What is the difference between new features and change of behavior? It means that things that used to work in previous releases work differently.

Lets start with new features: In most relevant presentation object properties (table, pivot, chart...) there is a new flags regarding "Include Rows with only Null Values" or in Pivot, 2 new flags: "Include Rows with only Null Values" and "Include Columns with only Null Values".















This a result with this option turned off:
 
 Here is the same with optioned turned on:

You can see that now I have an Null Amount_Sold for Catalog Channel, I didn't have in the previous result.

In the past to achieve this functionality you had to do an right outer join in the Business Layer. Most DBAs I know hate outer joins because of performance reasons.

What happened here?

The regular (first query) did the following select:
WITH
SAWITH0 AS (select sum(T43863.AMOUNT_SOLD) as c1,
     T43790.CHANNEL_DESC as c2,
     T43790.CHANNEL_ID as c3
from
     CHANNELS T43790,
     SALES T43863
where  ( T43790.CHANNEL_ID = T43863.CHANNEL_ID )
group by T43790.CHANNEL_DESC, T43790.CHANNEL_ID)
select D1.c1 as c1, D1.c2 as c2, D1.c3 as c3, D1.c4 as c4 from ( select distinct 0 as c1,
     D1.c2 as c2,
     D1.c3 as c3,
     D1.c1 as c4
from
     SAWITH0 D1
order by c2, c3 ) D1 where rownum <= 65001

The important part of the select statement is:
select sum(T43863.AMOUNT_SOLD) as c1,
     T43790.CHANNEL_DESC as c2,
     T43790.CHANNEL_ID as c3
from
     CHANNELS T43790,
     SALES T43863
where  ( T43790.CHANNEL_ID = T43863.CHANNEL_ID )
group by T43790.CHANNEL_DESC, T43790.CHANNEL_ID)

Now lets see the code for the "Include Rows with only Null Values" turned on:
We have 2 queries!

Q1:
select T43790.CHANNEL_DESC as c1,
     T43790.CHANNEL_ID as c2
from
     CHANNELS T43790
order by c1, c2

Q2:
select T43790.CHANNEL_DESC as c1,
     T43790.CHANNEL_ID as c2,
     sum(T43863.AMOUNT_SOLD) as c3
from
     CHANNELS T43790,
     SALES T43863
where  ( T43790.CHANNEL_ID = T43863.CHANNEL_ID )
group by T43790.CHANNEL_DESC, T43790.CHANNEL_ID
order by c1, c2
So what can I do to show the Null lines?
Option 1:

In the Criteria, Analysis properties, at Data Tab, mark the "Include Null Values":
Option 2:
Do it for each Visualization in the Analysis as shown before.





Great! No outer join, just a quick select on the dimension.
So why I was blabbering about "change of behavior"? This is just great new functionality!

Lets see what happens with outer joins...
I duplicated the Channels Dimension with an Alias and in the Business Layer have set a right outer join between the new Channels and Sales Fact.

I created an Analysis:
I expected to see 5 lines of results, but I have only 4!
 This is different from previous releases.

The SQL has outer join on Channels:
select T45370.CHANNEL_DESC as c1,
     sum(T43863.AMOUNT_SOLD) as c2
from
          SALES T43863 left outer join
          CHANNELS T45370 /* Channels_outer */  On T43863.CHANNEL_ID = T45370.CHANNEL_ID
group by T45370.CHANNEL_DESC
order by c1
 But the result doesn't show the null lines.

When applying the previously shown options it works well and I see the Null lines as well. I just have to want them explicitly!
This is a change of behavior.

P.S.
Thanks to Eira and Rakefet from Oracle ACS for their enthusiastic remarks about this feature.


Saturday, May 11, 2013

OBIEE 11.1.1.6.10 is available (and bug fixed)

Please note, since OBIEE 11.1.6.11 is available (see here) you should consider it instead of 11.1.1.6.10.



The patch 11.1.1.6.10 is available from Oracle support site (support.oracle.com). The first part of the patch is Patch 16504136

It's the most updated / latest version (actually patch bundle) of OBIEE, installed on top of the basic 11.1.1.6.0 version.

It can be installed on OBIEE 11.1.1.6.0, 11.1.1.6.1, 11.1.1.6.2, 11.1.1.6.2 BP1, 11.1.1.6.4,11.1.1.6.5, 11.1.1.6.6, 11.1.1.6.7, 11.1.1.6.8 and  11.1.1.6.9 .

As usual, the real patch has 7+1 parts. The installation steps for the first 7 are similar. I recommend reading the first readme – patch 16504136 readme file. 

Since 11.1.1.7 is available, I suspect we will not see many more 11.1.1.6.X patches.

The Oracle Business Intelligence 11.1.1.6.10 patchset comprises a number of patches:
Patch Abstract
16504136 Patch 11.1.1.6.10 (1 of 7) Oracle Business Intelligence Installer
16504143 Patch 11.1.1.6.10 (2 of 7) Oracle Real Time Decisions
16504148 Patch 11.1.1.6.10 (3 of 7) Oracle Business Intelligence Publisher
16504154 Patch 11.1.1.6.10 (4 of 7) Oracle Business Intelligence ADF Components
16504156 Patch 11.1.1.6.10 (5 of 7) Enterprise Performance Management Components Installed from BI Installer 11.1.1.6.x
PLEASE note, this is platform specific patch (Windows 32, 64, Linux X86, X86-64, IBM AIX Power 64, Solaris SPARC 64, Solaris X86-64, HP-UX Itanium)
16427939 Patch 11.1.1.6.10 (6 of 7) Oracle Business Intelligence
PLEASE note, this is platform specific patch (Windows32,  64, Linux X86-64, IBM AIX Power 64, Solaris SPARC 64, Solaris X86-64, HP-UX Itanium) 
16287884 Patch 11.1.1.6.10 (7 of 7) Oracle Business Intelligence Platform Client Installers and MapViewer

Additionally there is the patch number 8, it is named JDeveloper Patch, but it is for OBIEE as well. It's the same patch you used if you installed 11.1.1.6.2 BP1 or later. So if you already installed it, I see no reason to do it again.
Patch 13952743JDeveloper patch -   - RUP3 MLR4.3  CUMULATIVE: BASED ON JDEVADF_11.1.1.6.2_GENERIC_120329.1447.6268.1 (last release 11.1.1.6.2)
The installation steps are same as 11.1.1.6.2 BP1 as we described here.
Please note, that readme tell you to do the following backups:
  • The ORACLE_HOME\bifoundation\server directory
  • The ORACLE_INSTANCE\bifoundation\OracleBIServerComponent\coreapplication_obis1\repository
  • The ORACLE_BI_HOME\bifoundation\jee\mapviewer.ear\web.war\WEB_INF\conf\mapViewerConfig.xml, if you have modified it. This last bullet is relevant to those who configured the OBIEE Maps (described, in Hebrew here).
HP Itanium users, please note: HP Itanium platform must first download and apply patch 14016752 from My Oracle Support.

 I'm not aware of any new features in 11.1.1.6.10.


Bugs Fixed By This Patch

Publisher:
13825454: ORACLE DB SECURITY DONOT HANDLE USR ACCT STATUS EXPIRED(GRACE) FOR AUTHORIZATION
15886696: PARAMETERS WITHOUT DEFAULT VALUES ALLOW MANUAL ENTRY OF DATA USING IE7
16036921: MDX QUERIES FAIL TO LOAD WHEN SAVING, OR IF SAVED, GENERATE NO DATA
16183449: TRIGGER DOES NOT ACCEPT VARIABLE PARAMETER {$SYSDATE()-7$}
16191483: UNABLE TO SEE REPORTS AFTER UPLOAD ON ONE OF TWO NODES
16303357: 10G RTF TEMPLATE FAILS IN 11G WITH XPATH ERROR DUE TO INVALID DATA TYPE CASTING

OBIEE:
8198137: GENERATE METADATA DICTIONARY FAILS A COMPLETE EXPORT ON BIG RPD (OUT OF MEMORY)
12320264: MULISELECT PROMPT AND CLIENTSESSIONEXPIRYMINUTES SETTINGS THROW ERROR
13531449: COMMON HEADER SHOWS UP WHEN CLICKING ON DASHBOARD PAGE TAB IN PORTAL PAGES
13533513: OBIEE GRAPH LEGEND LABEL CONCATENATION ISSUE
13950601: QA: RC2: CONDITIONS LIST OF VALUES DO NOT WORK, NOTHING GETS RETURNED
14136472: JAVASCRIPT IN TEXT DASHBOARD OBJECT WORKS IN 11.1.1.5.0 DOES NOT WORK 11.1.1.6.0
14278050: UNABLE TO APPLY CONDITIONAL FORMAT FOR COLUMN HAVING CASE STMT IN GRAPH PIVOTED
14372406: DELETE AGGREGATES RESULTS IN A CHECKIN FAILURE
14521397: DURING CONSISTENCY CHECK ERROR IN SACLIENTRP.H OR SOSECURERPGATEWAY.CPP
14697631: PERFORMANCE ISSUE ON QUERY TO MICROSOFT SSAS
14759014: ERROR WHILE RUNNING REPORT WITH 6 UNION QUERIES
14834396: OPENING THE ADMINISTRATION > MANAGE PRIVILEGE VIEW IS SLOW
14848445: ENCOUNTERING "[NQSERROR: 37005] TRANSACTIONAL UPDATE FAILED." IN ONLINE MODE.
15911357: DISPLAY AS RUNNING SUM NOT SHOWING ZERO WHEN IT IS A NULL VALUE
15916915: CRASH IN DASHBOARDVIEWSUBMITCONDITIONFUNCTOR::GETCONDITIONCURSOR
15989894: OBIEE 11G: UNABLE TO ADD BIN IN COMBINED REQUESTS.
16021684: NO RESULTS DISPLAYED IN A MDX QUERY AGAINST ESSBASE WITH A FILTER
16068402: GRAPHS NOT SHOWN ON IE WHEN OBIEE IS BEHIND A REVERSE PROXY
16098352: MARKETING SEGMENTATION GENERATE PREVIEW THROWS NQSERROR 14065 ILLEGAL CROSS JOIN
16179354: ESSBASE REPORTS RETURN NO RESULTS- WORKED IN 11.1.1.6.4
16195852: OBIEE11GBI SERVER NOT STARTING AFTER SETTING OBIEE_IMPLICIT_CONVERT_TIMESTAMPADD
16227537: MDX GENERATED AGAINST SSAS CUBE WILL FORCE SSAS TO BECOME UNRESPONSIVE
16232096: AGGREGATES CREATION IGNORED AT LEVELS DEFINED ACROSS MULTIPLE HIERARCHIES
16250380: ADMIN TOOL CRASH WHEN WE TRY TO MERGE 2 REPOSITORIES
16309432: SOAP HTMLVIEWSERVICE FILTEREXPRESSIONS IS BROKEN
16387359: PRESENTATION SERVICES CRASHES WHILE NAVIGATING VIA ACTION LINKS
16401538: 10G->11.1.1.6.7 UPGRADE RPT CRASH SAWSERVER WHEN NO COLS IN COL/MEASURE SECTION
16432997: PROMPT DEFAULT TO SESSION VARIABLE NOT SETTING PRESENTATION VARIABLES INITIALLY




Known Bugs With This Patch

14228519: ADMINTOOL CLIENT MISSING ALL FILES UNDER EXTENDER DIRECTORY IN CLIENT INSTALLER
14244844: NAVIGATE TO URL ACTIONS BASED ON ENCODED URLS MAY RESULT IN DOUBLE ENCODING
14743304: FIX FOR BUG 14170374 REQUIRES ADDITIONAL CHANGE TO OPMN.XML
14771782: FIX FOR BUG 14070348 DOES NOT WORK IN CLUSTERED ENVIRONMENT
14772000: UNABLE TO SCROLL AS IE 8.0 PERFORMANCE POOR FOR MAX ROWS IN DASHBOARD
15854192: ERROR MESSAGE RETRIEVED WHEN TRYING TO CREATE AGENT WITH EMAILS AS RECIPIENTS
16531368: DOCUMENT THE ROW SPANNING ISSUE IN RELEASE 11.1.1.6.10
16687063: FIX FOR BUG 15911537 REQUIRES ADDITIONAL SETTING TO THE INSTANCECONFIG.XML FILE

Monday, April 15, 2013

OBIEE 11.1.1.7 - The Excel Ready Version, including SmartView

One of important features of OBIEE 11.1.1.7 is the drastic improvement in Excel integration. 
  1. SmartView.
  2. Real Excel file exports.
  3. Export of Dashboards to Excel.
Lets Summarize OBIEE Office capabilities in 11.1.1.6 vs. 11.1.1.7 in a table:  




11.1.1.6
11.1.1.7
Office Add-in for Excel
SmartView for Excel
Office Add-in for Power Point
--No change --
Excel ready export
Real Excel format export
--
Export of Dashboards to Excel
--
SmartView in MS Word
BI Publisher Word Temple
--No change --
BI Publisher reports with local Excel
--No change --
BI Publisher Excel Template Builder
BI Publisher Excel Template Builder Enhancements
 
 Now lets see examples of the 3 points above:

SmartView

SmartView is Hyperion tool that enables you to create new reports and run existing reports/Analysis, directly from Excel..

From the Home page of OBIEE you can download SmartView

 Lets zoom in:
And install it (add-in to Excel).
Now you can run it from Excel Menu. 
To begin, from the Panel create a new connection. Select Oracle BI EE.

And Enter URL.
Here come a critical (not so well documented) part. The Smart View URL is your regular OBIEE URL with jbips/ addition. For example here is mine: http://bdahab-il:9704/analytics/jbips/

A better explanation how to create new connections for SmartView are here: OBIEE - creating Smart View connection

I will do just a basic example:
Once connected you can view the content of the BI Server and select content. For example a Dashboard Page:

You are asked in this case:
I selected all objects and the result is, all report one bellow the other (for several thousand rows, in this case).
 Once you are connected to BI Server additional option appears in the menu:
 And in this option, with View Designer, you can create things from scratch, by selecting Subject Area and assigning columns to Page/Section/Row/Column/Measure in several types of presentations:
So this is what I requested:
And this is the result:
Now you can actually work, add filters, redesign... Lots of thing, all of them later.
 Now I'll cover the other 2.

Real Excel Export

 Why is it important? 2 reasons:
1. You had issues when opening Excel exports on mobile devices in the past. There shouldn't be any problem any more.
 2. It will prevent many little "issues" that could happen in non real Excel format export.


Export of Dashboard to Excel


Here is an example:
I exported Entire Dashboard. And now have several sheets in Excel with all Dashboard pages:
Graphs are pictures but all the rest is real data. As you can see at the bottom, there are several sheets in the Excel. 

Thursday, April 11, 2013

OBIEE - selecting session variables using presntation variable

I believe you know everything about OBIEE variables: Session Variables, Repository Variables, Presentation Variables and Request Variables. If you don't, they are lots of good material about it. For example HERE , HERE or HERE.

I had a special need: we created several Session Variables with Row Wise initialization, so each had several values. We wanted the user to be able to select the Session Variable, to be used in the query, from a prompt.   
In my case in each Session Variables they were several dates and I wanted the user to be able to select in a Dashboard Prompt, one of the lists. (In normal condition I can make a regular "date between" filter. This was not such case.)

So assuming we have a regular Session Variable named "last7", I could create a filter in the criteria such as:

"Time"."Date" = VALUEOF(NQ_SESSION."last7")

But I want the user to be able to select: "last1" or "last7" or "last30". What can we do?

A business partner I worked with, Yeal Uziel from Vision BI, had a great idea: pass the session variable name using Presentation Variable.

So we created a Presentation Variable named LastN:
 As you probably remember calling this presentation variable syntax is:@{LastN}. Or with default value:@{LastN}{"last7"}.

So what we did was combining the 2.  We took the Session Variable filter:

"Time"."Date" = VALUEOF(NQ_SESSION."last7") 

and added the presentation variable instead:

"Time"."Date" = VALUEOF(NQ_SESSION.@{LastN}{"last7"})

 And thats it. It's working. Now user can select the Session Variables in the prompt!