Presentation layer object access can be restricted for individual users or application roles by using permission tab provided for presentation objects. One can provide read-only access, read-write access or no access for specific application role or user. With OBIEE 11g release, there is a option called Hide object if field on each of the presentation object. The idea is one can use Hide Object if field to determine presentation layer visibility.
What additional it offers than restricting access to presentation objects? What is a use case for this option? Does it support presentation layer objects? This blog is an attempt to answer these questions.
The possible options to set permission for a presentation object with meaning of each of the options are as below.
- Read. Only allows read access to this object.
- Read/Write. Provides both read and write access to this object.
- No Access. Explicitly denies all access to this object.
- Default. The permission is inherited from the parent object. For subject areas, because they are a top-level object, Default is equivalent to the permission granted to the Authenticated User application role.
Hide Object if Field
One can use the Hide object if field to hide selected Presentation layer objects in Answers and BI Composer. The supported presentation objects include subject areas, tables, columns, and hierarchies. It does not support presentation levels in this release. The ‘Hide object if field’ only controls object visibility and does not affect object access.
There are three different types of expressions that you can use in the Hide object if field to determine Presentation layer object visibility:
Constant: - Non-zero constant in the field can hide the object while 0 or blank field will display the object.
Session Variable: - A session variable can be used in the expression to control whether the object is hidden, if expression evaluates to a non-zero value, the object is hidden. An example of an expression with a session variable might be: VALUEOF(NQ_SESSION."VISIBLE")
Session Variable Comparison:- One can use an equality or inequality comparison to control whether the object is hidden, using the following form:
NQ_SESSION."VISIBLE" = 'ABC'
NQ_SESSION."VISIBLE" <> 'ABC'
One can use any scalar functions (any function that accepts a simple value for each of its arguments and returns a single value) within expression with some exceptions.
Expression example is - LEFT(VALUEOF (NQ_SESSION."VISIBLE"), 3) = 'ABC'
I found ‘Hide Object if Field’ is useful though not a great feature.