Showing posts with label OBIEE11g. Show all posts
Showing posts with label OBIEE11g. Show all posts

Wednesday, July 16, 2014

OBIEE 11g : Implicit Fact Column

OBIEE 11g : Implicit Fact Column

An Implicit fact column is used when we have multiple fact tables and the report is getting generated using only dimension columns.

A User may request a report where it may have only Dimensions and no Fact columns. In this case, the server may sometimes get confused as to which fact table should it join to fetch the data. So it joins to the nearest fact table and pulls the data through it. So the report output obtained may be different from what the user is expecting.
So, in order to avoid this kind of error,we need to set Implicit Fact Column.

The goal of this is to guide the BI Server to make the best choice between two possible query paths.
We can set a fact attribute (measure) as an implicit fact column.
We can also create dummy implicit fact column on and assign any numeric value to it.

We can set implicit fact column in presentation catlog properties.

1.  Goto properties of presentation catlog in presentation layer.
2.  In implicit fact column section click on set and select any measure column from fact table.
3.  Click OK.
4.  Save your work.

Implicit Fact Column

Instead of selecting any fact measure column as implicit fact column, we can also define a dummy implicit fact.
1.  Create a Physical Column in Fact table in Physical Layer.
2.  Name it as Implicit_Column.
3.  Drag this column in Fact table from BMM layer.
4.  Double click on logical table source of fact table.
5.  In content tab, assign any numeric value to Implicit_Column.

Implicit Fact Column

Once this is done we can set this column as Implicit Fact Column in Presentation catlog as mentioned above.

Thursday, June 12, 2014

OBIEE 11g : Using IFrame with OBIEE 11g

Using IFrame with OBIEE 11g
OBIEE 11g Object/Webpage embeding in dashboard


We can make use of HTML and Javascript very effectively when it comes to the UI customizations of OBIEE.

In this post I will explain about how we can use HTML <iframe> tag with OBIEE 11g for UI customizations.
An iframe is used to display a web page within a web page.
Syntax for iframe is,

                     <iframe src="URL" width="200" height="200"></iframe>

In OBIEE 11g we can use IFrame tag to in HTML code to display an object from within OBIEE such as analysis created, reports etc. or we can embed any webpage within dash board.

I have created a table which I need to display on my dashboard page using iframe.


To fetch the URL of this particular analysis I need to go to catlog and open this analysis.
On opening this analysis we get URL in browser address bar.



 We need to add this URL in iframe tag as follows,

Add text object in ‘IFrame Demo’ tab of Test dashboard. Add following script to dashboard and select ‘contains HTML markup’.

<iframe frameborder="0" MARGINWIDTH="0"  MARGINHEIGHT="0" scrolling="no" width="100%" height="1200"   src="http://slc02oky.oracle.com:7780/analytics/saw.dll?PortalGo&Action=prompt&path=%2Fshared%2FPrashant%2FIFrame_Demo_table"></iframe>

In src property we need to add URL of this particular analysis.

Now execute the dashboard.
On executing the dashboard, you will be able to see Child dashboard being merged into parent dashboard. But we do not wish to see the OBIEE header getting displayed with analysis.


To remove these links from embedded analysis add narrative view in analysis edit section and select ‘contains HTML markup’. Then add following script,




<script type="text/javascript">
var tds = document.getElementsByTagName('table');
for (var td = 0; td < tds.length; td++) {
if (tds[td].className != 'HeaderTopBar' && tds[td].className != 'HeaderSecondBar' ) {
continue;
}
if (tds[td].className == 'HeaderTopBar') {
var x = tds[td].parentNode;
x.removeChild(tds[td]);}
if (tds[td].className == 'HeaderSecondBar HeaderSecondBarPadding' || tds[td].className == 'HeaderSecondBar HeaderSecondBarMargin') {
var x = tds[td].parentNode;
x.removeChild(tds[td]);}
}
</script>

This script disables the header objects of child dashboard.

getElementsByTagName() method accesses all elements with the specified tagname.

'HeaderTopBar' and HeaderSecondBar' are the class names of header bars.
So using this javascript code we are disabling the header bars.

Run the dashboard and you will be able to see the analysis embedded within dashboard page.





Same way  we can embed a web page or web page object on dashboard.
In following example I am embedding http://www.bseindia.com/  on dashboard page.

<iframe frameborder="0" MARGINWIDTH="0"  MARGINHEIGHT="0" scrolling="no" width="100%" height="1200"   src="http://www.bseindia.com/"></iframe>



In this example we don’t need to add javascript to disable header.
Set width and height as per requirement.

Monday, June 9, 2014

OBIEE 11g: Deploying & Developing a Custom Skin Part 2

Developing a Custom Skin


1.   Once the custom skin folder ‘analyticRes’ is deployed and tested successfully, we can create custom skin.

2.   To create custom skin we will copy one default skins, either blafp or FusionFX.
These skins are located at,

<ORACLE_HOME>/OracleBI1/bifoundation/web/app/res 

3.   We will copy ‘FusionFX’ skin for our development.
We can see 2 forlders at these locations as s_FusionFX and sk_FusionFX
Here 's' represents style and 'sk' represents skin.

4.   We will rename these folders within AnalyticRes folder as per the requirement.
      Now whatever changes we need to do we will be doing in these copied skin folders.
      For example, our skin name is 'TestSkin' and 2 copied folders will be s_TestSkin and sk_TesSkin.

5.   Now we need to set this skin as a default skin for our dashboard.
For this we need to add a XML code within instanceconfig.xml file located at,

<ORACLE_INSTANCE>/config/OracleBIPresentationServicesComponent/coreappliation_obips1

At the bottom of the file but within the <ServerInstance> grouping, enter the following code:

 <URL>
 <CustomerResourcePhysicalPath>/u01/Middleware/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes
</CustomerResourcePhysicalPath>

<CustomerResourceVirtualPath>/analyticsRes</CustomerResourceVirtualPath>

  </URL>

 <UI>
      <DefaultStyle>TestSkin</DefaultStyle>
      <DefaultSkin>TestSkin</DefaultSkin>
 </UI>


Here <CustomerResourcePhysicalPath> sets the path of the skin.
<CustomerResourceVirtualPath> sets the virtual path for path mentioned within <CustomerResourceVirtualPath> tag.
<DefaultStyle> sets the default style and will map to folder s_TestSkin.
<DefaultSkin> sets the default skin and will map to folder sk_TestSkin.


6.    Now restart the Presentation Services from EM.

7.   Once the services are restarted you can check the default skin being set under dashboard properties.



In my further posts I will explain further customizations for the custom skin we created.


Relevant Post :
Deploying & Developing a Custom Skin Part 1

Wednesday, June 4, 2014

OBIEE 11g: Application Roles, Groups and Users Management

In this post I am going to explain Groups and user management in OBIEE 11g.
Users can be created in Weblogic Server which is common with all Oracle Fusion Middleware 11g Based Products.
Application roles are nothing but collection of policies and it is defined in Fusion Middleware.
Application role defines the type of accesses given on various type of resources.
Groups and users are mapped with these application roles

 



 OBIEE comes with a pre created set of roles called, Application Roles.
BIAdministrator which has all administrative privileges. The BIAuthor is able to create dashboards and also create analyses. Finally, the BIConsumer is a role where the user can only view existing dashboards and analysis. There is also an additional role that can be created called BIAnalyst. This role enables the user to create an analyses, but not the dashboards and also has viewing privileges like the BIConsumer.
Following are the steps to create user and assign it to Groups and Application role.
1.     Goto Oracle WebLogic Server Administration Console, http://[localhost]:7001/console
2.     click on the Security Realms menu item in the Domain Structure navigation tree menu.

3.     Under Summary of Security Realms page, click on the myrealm.
4.      Click on the Users and Groups tab to create new user.
5.     Press the New button, and then enter the details for the new user:

6.     Similarly you can create new group as well.
7.     To add this user to one of the groups, and therefore grant them the corresponding application role, click on the user in the list of users that’s displayed, and then click on the Groups tab.
  1.   Select any group, for example BIConsumer, from the Parent Groups Available pane, then move it across to the Chosen pane.


We have created a new user and added them to the BIConsumers group. The policies within Oracle Platform Security Services are granted to  this group as group is added to BIConsumer Role in background.

Steps to create the Application Roles in EM (http://[localhost]:7001/em),
          1.      Login to Enterprise Manager with Admin User.
          2.      Click on Business Intelligence and coreapplication
          3.      Go to Security tab and Single Sign on
          4.      Click on Configure and Manage Application Roles
          5.      Click on Create and Provide the Role name and OK
Steps to Add User’s or Groups on Application Role in EM,
1.      Click on Role and Edit the Created Application role
2.      Add the Existing User’s and Groups to Application Role and OK.




Thats the process to create application roles and assigning groups and users under it.