Monday, 29 April 2013

OBIEE11g: How to Call or Insert an Image in the Narrative View



Scenario : 

Recently we got a requirement to insert an image in to Narrative view of OBIEE Answers. We know how to call or insert an image in to Title view (by using fmap syntax).

Syntax: fmap:images/imagename.imageformat
e.g: fmap:images/ABC.jpg

In the same way we have one syntax to call an image in to Narrative view. 

Step 1: 

Place your images in the following paths 


Path 1:

OBIEE_HOME\Oracle_BI1\bifoundation\web\app\res\s_blafp\images

Path 2:

OBIEE_HOME\user_projects\domains\bifoundation_domain\servers\bi_server1\
tmp\_WL_user\analytics_11.1.1\7dezjl\war\res\s_blafp\images


Note: After adding the images in the above mentioned paths presentation server restart is mandatory.

Step 2:

Create your analysis/report by adding the required columns to the criteria tab. Click on Results tab and create "Narrative View"

Paste the following code in the Narrative box

<img src="res/s_blafp/images/imagename.imageformat" />  <b><font Size=4>&nbsp;&nbsp Test Information</font size> </b> 



Here "Image_name" is the full name of the image which you placed in the above mentioned paths.

Passing the Values or Parameters from OBIEE report to any website

Scenario: 

Recently i have got a very interesting requirement i.e passing the parameters from OBIEE report to a different website. For example we have a report which displays delivery status of an Item, Let us say you purchased a mobile in online. Then you will receive the conformation of your shipment through the mail and mobile message. They are going to provide you one Unique ID for your shipment using which we can track the status of your shipment. for example assume that your shipment is done through Fedex, by using your unique tracking number you can find the shipment status by logging in to Fedex website. In this scenario the user wants to get the status of the shipment from OBIEE report itself. The report displays the tracking number column , Once the user clicks on the particular tracking number it has to go to the respective website and gets the details of that tracking number. In this post we can see how this can be achieved....

Step 1:

 Navigate the shipping website in our example it is Fedex. Try to get the details of any dummy tracking number. This exercise is only to capture the URL of that Page.

In the above example i have just logged in to Fedex website and given one dummy tracking number to capture the URL.

https://www.fedex.com/fedextrack/index.html?tracknumbers=12345678sdfsf&cntry_code=us

Here we need to analyze where the parameters are passing in this URL.

https://www.fedex.com/fedextrack/index.html?------> It is constant for all the tracking numbers, so it is not going to change.

tracknumbers-----> (12345678sdfsf) This is variable in nature here we need to pass the tracking number on which the user is clicking from OBIEE report.

&cntry_code=us----> This is the country code if we are looking at only US tracking numbers then we can make it as constant or we can change it using a variable.

Step 2:  

Edit the OBIEE report and go to Criteria tab. Click on the column properties of the tracking number column and go to Interaction tab. Go to Value--->Primary Interaction--->Select Action Links----> click on (+) "Add Action Link"


Step 3:

Then Click on "Create New Action"---> Select "Navigate to a Web Page"






Step 4:

You can see one new window popping up.In that new window paste the URL we got from the Fedex website. (https://www.fedex.com/fedextrack/index.html?tracknumbers=12345678sdfsf&cntry_code=us) then click on "Define Parameters" 


Step 5:

Then you can see the following window...




 Here we need to define the parameters. By default it recognizes the variables and defines below...In our example we have two parameters. 
1. Tracknumber
2.cntry_code 

Step 6:

Go to Value tab and click on the options and select Column Values and select the Tracking Number column.


Step 7:

 Check in all the check boxes as shown in the below screenshot..

Now we need to check with the URL highlighted in the above screenshot. There we can find some variable values in the following format {Variable_Name}. In our example we have two variables {1} and {2}

{1} = Tracking Number , It is going to capture the value of the tracking number on which the OBIEE user is clicking in the report.

{2} = Country Code, In this case it is fixed that is why we are selecting it as a static value from the value tab. In the same way we can define multiple parameters as per the requirement.

Step 8:

After doing all these configurations click on OK and go to Results tab. You can see the hyperlink is enabled on the Tracking Number column values. Click on any value it will navigate to the Fedex website and its going to show the status of the tracking number on which we clicked.

In the same way we can add multiple websites in the Action Link menu and define the conditional navigation.
 


Thursday, 24 January 2013

OBIEE11g: Replacing a "NUMBER" datatype with NULL ( ' ' ) in a case statement

Hi All,

We have a requirement where we need to replace a NUMBER data type with NULL value (blank value). We have IFNULL function to replace a NULL value. But in this scenario we have to replace a number data type value with a character ( Null value is considered as character in Obiee). To achieve this we have done a simple manipulation using a case statement.

The following example will illustrates the workaround....

Scenario : I have a number data type column Calendar Year . When the Year is greater than 2009 then it has to display the value eg : 2010 ,2011 etc.. otherwise it has to display null.

Step 1 : Add the column to the Criteria tab.


Step 2 : Click on the Results tab and see the results.

Step 3 : Now you can see its retuning data which is less than 2009 also. So i need to replace the values which are less than 2009 with a blank. Go back to the criteria tab and click on the column formula and write the formula as shown in the below screen shot.

Syntax : Case when "CONDITION" then "VALUE" end


Step 4 : Now go to the Results tab you can see the expected result.






Conclusion : Here we are just taking leverage on the case statement functionality. If we exclude the "Else"part in a case statement then it would consider null as (blank value) default value. It wont bother about the data type of the first argument. :)

Hope this helps you......





Friday, 18 January 2013

OBIEE11g: How to Unhide a Dashboard in OBIEE11g

Hi All,

This is the next part of my previous post "How to Hide a Dashboard in OBIEE11g". In the previous post we have seen how to hide a dashboard now we can see how to unhide it.Follow the below steps...

Step 1: Go to the Dashboards from Catalog link as shown in the previous post. Extreme right side you can see one small check box which says "Show Hidden Items". Check that check box so that you can see all the Hidden objects (Dashboards) as shown in the below screenshot.



Step 2: Click on the "More" link of the Hidden dashboard. Click on "Properties". Now you can see Properties window Popping up. Under "Attributes" uncheck the check box which says "Hidden". Then click on "Ok". (Please follow the below screenshot)


Step 3 : Now you can see the dashboard is unhidden......

Hope this Helps you.......   :)

OBIEE11g: How to Hide a Dashboard or Hiding a Dashboard in OBIEE11g

Hi All,

Recently I was working on Dashboards and had a requirement to Hide a dashboard in OBIEE11g. I tried the same way that we used to hide a dashboard in 10g.

Settings---> Administration--->Mange Interactive Dashboards--->Dashboard Properties--->Check in the Check box which says "Hide"

But Hiding a Dashboard in 11g is quite different. After a small research I got the solution. The solution is as follows

Step1 : After logging in to the Presentation services click on "Catalog" link as shown in the below screenshot.


Step 2: From left side panel select the "Dashboards" option then select the respective dashboard which you want to hide as shown in the below screenshot.


Step 3: From Right side pane click on "More" link of the Dashboard which has to be hidden as shown in the below screenshot.





Step 4: Select "Properties" option, you can see Properties window popping up.Select the Check box which says "Hidden" under "Attributes" and click on Ok. (please follow the below screenshot)


Step 5: Now you can see the Dashboard is Hidden.

Note : You can see how to Unhide a Dashboard in the Next Post......

Sunday, 6 January 2013

OBIEE11g: "NULL" Value in Prompts (NULL is showing as a value in the Prompts) or Removing NULL value from Prompts

Hi All,

In OBIEE 11g when we create a prompt on a column we can see "NULL" value is in the prompt. As it is the unwanted value we have to suppress this value. We can achieve this by following the below steps...

Step 1 : NULL is getting displayed in the Prompt

Step2 : Edit the prompt and look for the column on which the prompt is created

Step3 : Open the RPD in Online or Offline mode. Go to the physical layer and select the table, expand the table and select the column



Step 4 : Edit the properties of the column by double clicking on it.


Step 5 : Unchecked the Check box which says "Nullable" as follows



Step 6 : Save the RPD and check the same on the dashboard. Now you can see the NULL value got disappeared.

NOTE : After saving the RPD changes it will take some time to reflect the result on the dashboard. Immediately you can not see the NULL value disappeared. It will take about an hour or so to reflect if you make the changes in Online Mode. If you restart the services then you can see the immediate expected result.
After making the changes in Online mode and saving it dont forget to clear the cache.

OBIEE11g : Export to Excel issue

Hi All,

We have gone through a strange issue in the recent project with an export option. As we have huge amount of data on the reports which are retuning about more than 1,00,000 records, OBIEE is creating the excel files which has a size of 200 MB to 2GB. But the clients are more interested to do their analysis in excel only. As a work around we suggested to use export to CSV. This is working fine but catch up with another issue with descriptive data which has commas (,) in it. If we have any , in the column data the CSV is considering it as new column hence we are getting difference in row count and the formatting also. Again there is a workaround for this CSV issue which is nothing but replacing (,) with any other special character which is not serving the purpose. So we did not have any other option other than making the Export to Excel works as per the expectations. Our expectations are as follows...

1) Export to Excel should create the small files which ranges to KB to MB.
2) We should not miss any data or columns on exporting ( This also one known bug in OBIEE 11g all the versions)
3) The formatting should be proper which matches with the report.


Solution:

To solve this issue we have taken the help from Oracle support by creating an P1 Service Request. Even though its not a permanent solution its serving the requirements for now. Oracle said they are going to provide the permanent solution in the future version which is 11.1.1.7.0 ( Its going to be a bundle patch mostly). The solution is as follows...

1)      Go to the following path to edit controlmessages.xml file 
/<OBIEE_HOME>/Oracle_BI1/bifoundation/web/msgdb/messages
           Fix: do the following changes
          Change export "format=mht" to "format=excel"
Note: Replace the text  “mht” to “excel” . Don’t forget to take the back up for the controlmessages.xml file before editing.
Don’t place the back up in the same folder, save the back up in a different folder.

2)      Go to the following path to edit config.xml file 
<OBIEE_HOME>/instances/instance1/config/OracleBIJavaHostComponent/coreapplication_obijh1
Fix: do the following changes

Before:

<XMLP>
      <InputStreamLimitInKB>8192</InputStreamLimitInKB>
      <ReadRequestBeforeProcessing>true</ReadRequestBeforeProcessing>
   </XMLP>

<DVT>
      <InputStreamLimitInKB>8192</InputStreamLimitInKB>
</DVT>

After:

<XMLP>
      <InputStreamLimitInKB>0</InputStreamLimitInKB>
      <ReadRequestBeforeProcessing>true</ReadRequestBeforeProcessing>
</XMLP>

<DVT>
      <InputStreamLimitInKB>0</InputStreamLimitInKB>
</DVT>

Note: 0 represents unlimited. No Need to restart the services.

Result: Exporting to excel in OBIEE report is creating huge file size. Before fix for 5000 records the file size was 1.6 MB and after fix the file size was 800KB

 Hope this helps you......  :)