Sunday, January 27, 2013

[OBIEE11g] - Create Veriable in OBIEE11g.


OBIEE variable types :

1) Repository Variables

  •  Static Variables
  •  Dynamic Variables

2) Session Variables

3) System

  •  Secutity
  •  Others

4) Non-System
To create any variable Click Manage > Variable
This opens variable Manager as shown below.



REPOSITORY VARIABLE(STATIC)

·         Initialized only when BI server is started
·         Is a hard coded value like string, number , etc
·         Value can only be changed by logging in to the rpd file

REPOSITORY VARIABLE(DYNAMIC)

·         Initialized when BI server is started
·         Assigned value dynamically based on the result of a query
·         Value is dependent of the sql provided in Initialization Block
Create a dynamic variable and provide a Name and Default Initializer.Create a new initialization block by clicking on the New button in the above screen.



Provide Intialization Block variable Name
Click on “Edit Data Source” button and provide the sql to be used for the variable, e.g.
select lower(sys_context('USERENV','SESSION_USER'))||
       '@'||
       lower(sys_context('USERENV','DB_NAME'))
  from dual;
Provide Connection pool name. Note, a separate connection pool should be created for initialization blocks to execute te sql used for fetching data for the variable.
Test the sql by clicking on test button.

SESSION VARIABLE(SYSTEM)

·         Initialized when a Analytics web user logs (creates a new session)
·         Initialization depends on a Initialization block, similar to Dynamic repository Variable
·         Only system reserved variables can be created and the following is the list . Ones in Blue are Security related session Variables.
Variable
Description
USER
Holds the value the user enters as his or her logon name. This variable is typically populated from the LDAP profile of the user.
PROXY
Holds the name of the proxy user. A proxy user is a user that has been authorized to act for another user.
GROUP
Contains the groups to which the user belongs. Exists only for compatibility with previous releases. Legacy groups are mapped to application roles automatically.
WEBGROUPS
Specifies the Catalog groups (Presentation Services groups) to which the user belongs, if any. Note that the recommended practice is to use application roles rather than Catalog groups.
USERGUID
Contains the global unique identifier (GUID) of the user, typically populated from the LDAP profile of the user.
ROLES
Contains the application roles to which the user belongs.
ROLEGUIDS
Contains the global unique identifiers (GUIDs) for the application roles to which the user belongs. GUIDs for application roles are the same as the application role names.
PERMISSIONS
Contains the permissions held by the user, such as oracle.bi.server.impersonateUser or oracle.bi.server.manageRepository.
DISPLAYNAME
Used for Oracle BI Presentation Services. It contains the name that is displayed to the user in the greeting in the Oracle BI Presentation Services user interface. It is also saved as the author field for catalog objects. This variable is typically populated from the LDAP profile of the user.
PORTALPATH
Used for Oracle BI Presentation Services. It identifies the default dashboard the user sees when logging in (the user can override this preference after logged on).
LOGLEVEL
The value of LOGLEVEL (a number between 0 and 5) determines the logging level that the Oracle BI Server uses for user queries.
This system session variable overrides a variable defined in the Users object in the Administration Tool. If the administrator user (defined upon install) has a Logging level defined as 4 and the session variable 
LOGLEVEL defined in the repository has a value of 0 (zero), the value of 0 applies.
REQUESTKEY
Used for Oracle BI Presentation Services. Any users with the same nonblank request key share the same Oracle BI Presentation Services cache entries. This tells Oracle BI Presentation Services that these users have identical content filters and security in the Oracle BI Server. Sharing Oracle BI Presentation Services cache entries is a way to minimize unnecessary communication with the Oracle BI Server.
SKIN
Determines certain elements of the look and feel of the Oracle BI Presentation Services user interface. The user can alter some elements of the user interface by picking a style when logged on to Oracle BI Presentation Services. The SKIN variable points to an Oracle BI Presentation Services folder that contains the nonalterable elements (for example, figures such as GIF files). Such directories begin with sk_. For example, if a folder were called sk_companyx, the SKIN variable would be set to companyx.
DESCRIPTION
Contains a description of the user, typically populated from the LDAP profile of the user.
USERLOCALE
Contains the locale of the user, typically populated from the LDAP profile of the user.
DISABLE_CACHE_HIT
Used to enable or disable Oracle BI Server result cache hits. This variable has a possible value of 0 or 1.
DISABLE_CACHE_SEED
Used to enable or disable Oracle BI Server result cache seeding. This variable has a possible value of 0 or 1.
DISABLE_SUBREQUEST_CACHE
Used to enable or disable Oracle BI Server subrequest cache hits and seeding. This variable has a possible value of 0 or 1.
SELECT_PHYSICAL
Identifies the query as a SELECT_PHYSICAL query..
DISABLE_PLAN_CACHE_HIT
Used to enable or disable Oracle BI Server plan cache hits. This variable has a possible value of 0 or 1.
DISABLE_PLAN_CACHE_SEED
Used to enable or disable Oracle BI Server plan cache seeding. This variable has a possible value of 0 or 1.
TIMEZONE
Contains the time zone of the user, typically populated from the LDAP profile of the user.

SESSION VARIABLE(NON-SESSION)

·         Initialized when a Analytics web user logs (creates a new session)
·         Initialization depends on a Initialization block, similar to Dynamic repository Variable

ROW WISE INITIALIZATION OF VARIABLES

If a variable is marked for row wise initialization it means it returns an array of values. Below are the steps. E.g. if we want a variable to store last 10 years here is how we create it :

Create a variable and click on New  to create  new initialization block
Provide a name for the initialization block and click “Edit Data Source”
Provide a sql that returns multiple values. Set connection pool and Test the sql. Save this and exit the “Variable Manager”
Reopen the “Variable Manager” and open the initialization block. Next click on the “Edit Data Target”.
Select the variable and check “Row wise initialization” and say OK.
On the Initialization block page click Test  to check tat the Variable ARRAY  is initialized and returns values.
 Access method for Variable types