Saturday, November 3, 2012

How To use INDEX Hints In OBIEE

I’ve found quite a few blogs describing how to add an oracle database hint to a physical table in OBI; but they all stop short of showing how they can be added to an Alias Object.  There is a section at the end of the blog addressing this.
Database Hints allow us to change suboptimal SQL Execution Plans; they simply allow us to provide more information to the optimizer and influence the plan executed.  A database hint will take the form as below.

SELECT
   /*+ index(T222,PK) */
   ‘ROW_WID’ as c1
FROM
   W_CUSTOMER_D T222


OBIEE Query Hints
In OBIEE we can add a database hint to a table object in the physical layer; whenever this table is referenced in a query the hint will be applied.  Importantly, a hint should use the table alias whenever a query specifies an alias for a table; the table itself should not be used.  If you look at the underlying SQL of an OIBEE query, via the Obiee view log, you will notice OBIEE will always use an alias for a table in the generated SQL; an alias taking the form such as T222 above.
The first step to adding our hint to a table is to determine the alias that OBIEE will use in the generated SQL.  Select to Query Repository from the Tools Menu of the Administration Tool.  The Query Repository Tool will open, as in the image below.  Enter the Name of the table in the Name textbox and select Physical Table from the Type menu; click query to run the tool.  Notice the use of the wildcard character, *.
Query Repository Tool
In this example you can see we have a physical table in the database, W_CUSTOMER_D, and that I have created an Alias ojbect based on that table of Dim_W_CUSTOMER_D.  In the ID column the two objects have IDs of 3001:111 and 3001:222 respectively.  If we were using the table in our query, we can deduce we will use an alias of T111.  Actually we used the Alias object and the database alias generated would be T222.  You can see it is the latter segment of the ID that is used.
We can now add the hint; a hint can not be added to an OBIEE Alias object, only to an underlying Table object.  We open the properties for the table object and add the hint to the text box as below.
Table Properties
You can see that the hint is applied to the OBIEE Alias object, T222; but we are creating that definition on the underlying Table object.  If there were no Alias object and the table itself were used in the query then we would need to use the SQL generated alias of T111.
Hinting an Alias Object
But what do we do if we have multiple Alias’ objects sharing the same underlying Table object; this happens all the time. 
We can’t apply the hint to the Alias object itself; instead we apply it to physical joins to and from the Alias object.  The screenshot below shows where we apply the hint for the Alias table above.
Apply hint to Join Object
You can see that we’ve populated the hint textbox referencing the SQL alias T222.  Whenever this join is used the hint will be added to the query.

Thanks,
Satya Ranki Reddy

Dynamic Variables for Previous Date Period


One of my client was looking at a report which would provide data from first day of last month to current date, so that he can compare sales trend for the last month and plan for the current month.
Best way to quickly work on it is to create variable and use it on dashboard prompt as default to provide first day of last month to current date.
To demonstrate the steps, I have created an excel database to work on the example.
Firstly, create an initialization block and dynamic variables called previous months
Click Manage > Variables to open the Variable Manager.
Click Repository > Initialization Blocks.
Right-click in the white space on the right and select New Initialization Block.
 
 Name the initialization block as Previous_MonthsClick Edit Data Source to open the Repository Variable Init Block Data Source dialog box.
Click the Browse button to open the Select Connection Pool dialog box.

Select any connection pool associated with database but not excel sheet. (on the above screen shot, emp is excel database.
Double-click the HR > Connection Pool object to add it to the Connection Pool field in the Repository
In the Default Initialization String field, type the following SQL
SELECT
ADD_MONTHS(TRUNC(SYSDATE,’MM’),-1),
SYSDATE AS CURRENT_DATE
FROM DUAL

Click OK to close the Repository Variable Init Block Data Source dialog box. The connection pool and initialization string are added to the Repository Variable Init Block dialog box
Click Edit Data Target to open the Repository Variable Init Block Variable Target dialog box.

Use the New button to create TWO variables as FIRST_DAY_LAST_MONTH and create another as CURRENT_DATE
Click OK to close the Repository Variable Init Block Variable Target dialog box. The variables appear in the Variable Target field in the Repository Variable Init Block dialog box

Click Test and verify you get the results in the picture.
Click OK to close the Repository Variable Init Block Data Source dialog box.
Click Action > Close to close the Variable Manager
Check in changes.
Check Global Consistency. If the Consistency Check Manager displays any errors, edit the repository to correct the errors before continuing. If there are no error messages, close the Consistency Check Manager.
Save the repository.
Logon to Answers
You can use these variable anywhere in the reports like on the filters as well as on prompts.
Create any report which provides data by date range
Build the following query
1. Pull the date field with other fields
2. Add filters on the date field

Click on the results, it will pull only data within the date range. This date range will dynamically change every month to provide data from first day of previous month to current date.

You use the variables in the Date Prompt also as below
Similarly, you can you these variables on the prompt as well.
Go to prompt and pull the columns including date column

On the default to section, select server variable and type the variables as

Save the report. The report will filter date with the above date range by default.


Thanks,
Satya

Wednesday, October 17, 2012

OBIEE Delivers/Schedulers/iBot Setup and Configuration

Following is the step by step configuration of OBIEE Delivers a.k.a. iBots.

Step 1-  Create iBot/Scheduler repository

Suppose you are connected with Oracle database MYDB with user UMIRZA.
Execute following script. This script will create required scheduler repository.


<<<<<<<<<<< Script starts here >>>>>>>>>>>>>>


CREATE TABLE umirza.S_NQ_ERR_MSG
(
  JOB_ID          NUMBER(10)                    NOT NULL,
  INSTANCE_ID     NUMBER(20)                    NOT NULL,
  RELATIVE_ORDER  NUMBER(10)                    NOT NULL,
  ERROR_MSG_TEXT  VARCHAR2(255 BYTE),
  DELETE_FLG      NUMBER(10)                    NOT NULL
)
/
CREATE TABLE umirza.S_NQ_INSTANCE
(
  JOB_ID         NUMBER(10)                     NOT NULL,
  INSTANCE_ID    NUMBER(20)                     NOT NULL,
  STATUS         NUMBER(10),
  BEGIN_TS       DATE,
  END_TS         DATE,
  EXIT_CODE      NUMBER(10),
  DELETE_FLG     NUMBER(10)                     NOT NULL,
  ERROR_MSG_FLG  NUMBER(10)                     NOT NULL
)
/
CREATE TABLE umirza.S_NQ_JOB
(
  JOB_ID              NUMBER(10)                NOT NULL,
  NAME                VARCHAR2(50 BYTE),
  DESC_TEXT           VARCHAR2(255 BYTE),
  SCRIPT_TYPE         VARCHAR2(20 BYTE),
  SCRIPT              VARCHAR2(255 BYTE),
  MAX_RUNTIME_MS      NUMBER(10),
  USER_ID             VARCHAR2(128 BYTE),
  NEXT_RUNTIME_TS     DATE,
  LAST_RUNTIME_TS     DATE,
  MAX_CNCURRENT_INST  NUMBER(10),
  BEGIN_YEAR          NUMBER(10),
  BEGIN_MONTH         NUMBER(10),
  BEGIN_DAY           NUMBER(10),
  END_YEAR            NUMBER(10),
  END_MONTH           NUMBER(10),
  END_DAY             NUMBER(10),
  START_HOUR          NUMBER(10),
  START_MINUTE        NUMBER(10),
  END_HOUR            NUMBER(10),
  END_MINUTE          NUMBER(10),
  INTERVAL_MINUTE     NUMBER(10),
  TRIGGER_TYPE        NUMBER(10),
  TRIGGER_DAY_INT     NUMBER(10),
  TRIGGER_WEEK_INT    NUMBER(10),
  TRIGGER_RANGE_DOW   NUMBER(10),
  TRIGGER_RANGE_DOM   NUMBER(10),
  TRIGGER_RANGE_MTH   NUMBER(10),
  TRIG_RANGE_DAY_OCC  NUMBER(10),
  DELETE_DONE_FLG     NUMBER(10)                NOT NULL,
  DISABLE_FLG         NUMBER(10)                NOT NULL,
  HAS_END_DT_FLG      NUMBER(10)                NOT NULL,
  EXEC_WHEN_MISS_FLG  NUMBER(10)                NOT NULL,
  DEL_SCPT_DONE_FLG   NUMBER(10)                NOT NULL,
  PATH_IN_SCPT_FLG    NUMBER(10)                NOT NULL,
  ISUSER_SCPT_FLG     NUMBER(10)                NOT NULL,
  DELETE_FLG          NUMBER(10)                NOT NULL,
  TZ_NAME             VARCHAR2(100 BYTE)
)
/
CREATE TABLE umirza.S_NQ_JOB_PARAM
(
  JOB_ID          NUMBER(10)                    NOT NULL,
  RELATIVE_ORDER  NUMBER(10)                    NOT NULL,
  JOB_PARAM       VARCHAR2(255 BYTE),
  DELETE_FLG      NUMBER(10)                    NOT NULL
)
/
CREATE INDEX umirza.S_NQ_ERR_MSG_F1 ON umirza.S_NQ_ERR_MSG (INSTANCE_ID)
/
CREATE UNIQUE INDEX umirza.S_NQ_ERR_MSG_U1 ON umirza.S_NQ_ERR_MSG (JOB_ID, INSTANCE_ID, RELATIVE_ORDER)
/
CREATE INDEX umirza.S_NQ_INSTANCE_M1 ON umirza.S_NQ_INSTANCE (END_TS, STATUS, INSTANCE_ID)
/
CREATE INDEX umirza.S_NQ_INSTANCE_M2 ON umirza.S_NQ_INSTANCE (BEGIN_TS, STATUS, INSTANCE_ID)
/
CREATE INDEX umirza.S_NQ_INSTANCE_M3 ON umirza.S_NQ_INSTANCE (INSTANCE_ID, DELETE_FLG)
/
CREATE INDEX umirza.S_NQ_INSTANCE_M4 ON umirza.S_NQ_INSTANCE (JOB_ID, INSTANCE_ID, STATUS, DELETE_FLG)
/
CREATE INDEX umirza.S_NQ_INSTANCE_M5 ON umirza.S_NQ_INSTANCE (STATUS, DELETE_FLG)
/
CREATE UNIQUE INDEX umirza.S_NQ_INSTANCE_U1 ON umirza.S_NQ_INSTANCE (JOB_ID, INSTANCE_ID)
/
CREATE INDEX umirza.S_NQ_JOB_M1 ON umirza.S_NQ_JOB (NEXT_RUNTIME_TS)
/
CREATE INDEX umirza.S_NQ_JOB_M2 ON umirza.S_NQ_JOB (USER_ID)
/
CREATE UNIQUE INDEX umirza.S_NQ_JOB_P1 ON umirza.S_NQ_JOB (JOB_ID)
/


<<<<<<<<<<< Script ends here >>>>>>>>>>>>>>

 Step 2-  Configure Scheduler Schema

Open Command Prompt...

D:\oracle\bise1\bi\server\Bin>schconfig
Copyright (c) 1997-2006 Oracle Corporation, All rights reserved

***** Delivers Configuration Menu *****
1 - Configure Scheduler
2 - Configure Mail
3 - Configure iBots
4 - Configure Workflow
5 - Configure Java Extension
0 - Quit
>>> Enter Choice: 1

***** Scheduler Configuration *****
 1 - Database
 2 - General
 3 - Advanced
 0 - Quit

>>> Enter Choice: 1

***** Scheduler Database Configuration *****
 1 - Database Type                    : Oracle 10g R2
 2 - Call Interface                   : OCI 10g
 3 - Data Source Name                 : MYDB
 4 - User Name                        : umirza
 5 - Password                         : *****
 6 - Timeout (Minutes)                : 60
 7 - Maximum Connections              : 5
 8 - Bulk Fetch Buffer Size (bytes)   : 33792
 9 - Database Table for Jobs          : S_NQ_JOB
10 - Database Table for Instances     : S_NQ_INSTANCE
11 - Database Table for Parameters    : S_NQ_JOB_PARAM
12 - Database Table for Messages      : S_NQ_ERR_MSG
13 - DEFAULT VALUES
 0 - Quit

>>> Enter Choice: 0

***** Scheduler Configuration *****
 1 - Database
 2 - General
 3 - Advanced
 0 - Quit

>>> Enter Choice: 2

***** Scheduler General Configuration *****
 1 - Scheduler Script Path            : D:\oracle\bise1\bi\server\Scripts\Scheduler
 2 - Default Script Path              : D:\oracle\bise1\bi\server\Scripts\Common
 3 - Temporary File Path              : D:\oracle\bise1\bidata\tmp
 4 - Port Number                      : 9705
 5 - Purge Old instances after X days : 7
 6 - Purge DB every X minutes         : 5
 7 - Minimum Execution Threads        : 1
 8 - Maximum Execution Threads        : 100
 9 - Pause When Service Starts        : False
10 - Administrator Name               : Administrator
11 - Administrator Password           : *****
12 - DEFAULT VALUES
 0 - Quit

>>> Enter Choice: 0

***** Scheduler Configuration *****
 1 - Database
 2 - General
 3 - Advanced
 0 - Quit

>>> Enter Choice: 3

***** Scheduler Advanced Configuration *****
 1 - Script Server Port                  : 9707
 2 - Log All SQL Statements              : False
 3 - Participant in Cluster              : False
 4 - Cluster Monitor Port                : 9708
 5 - Use SSL                             : False
14 - DEFAULT VALUES
 0 - Quit

>>> Enter Choice: 0

***** Scheduler Configuration *****
 1 - Database
 2 - General
 3 - Advanced
 0 - Quit

>>> Enter Choice: 0

***** Delivers Configuration Menu *****
1 - Configure Scheduler
2 - Configure Mail
3 - Configure iBots
4 - Configure Workflow
5 - Configure Java Extension
0 - Quit
>>> Enter Choice: 2

***** Mail Configuration *****
 1 - General
 2 - Advanced
 0 - Quit
>>> Enter Choice: 1

***** Mail General Configuration *****
 1 - From Display Name               : domainname.com
 2 - Sender Address                  : admin@
domainname.com
 3 - SMTP Server                     : ###.###.#.##          <------------- this will be the server ip
 4 - SMTP Port                       : 25
 5 - Number of Retries Upon Failure  : 1
 6 - Maximum Recipients              : 0
 7 - Use Bcc                         : False
 8 - Authenticate against SMTP server: True
 9 - User Name                       :
10 - Password                        : *****
11 - DEFAULT VALUES
 0 - Quit

>>> Enter Choice: 0

***** Mail Configuration *****
 1 - General
 2 - Advanced
 0 - Quit
>>> Enter Choice: 2

***** Mail Advanced Configuration *****
 1 - Use SSL                             : False
 5 - DEFAULT VALUES
 0 - Quit

>>> Enter Choice: 0

***** Mail Configuration *****
 1 - General
 2 - Advanced
 0 - Quit
>>> Enter Choice: 0

***** Delivers Configuration Menu *****
1 - Configure Scheduler
2 - Configure Mail
3 - Configure iBots
4 - Configure Workflow
5 - Configure Java Extension
0 - Quit
>>> Enter Choice: 3

***** General Configuration *****
 1 - SAW Machine Name                    : umirza:9710
 2 - iBot Log Directory                  : D:\oracle\bise1\bi\server\Log\iBots
 3 - Purge iBot Log files older than     : 7
     (days)
 4 - Number of Global Tries              : 2
 5 - Minimum Global Sleep Seconds        : 3
 6 - Maximum Global Sleep Seconds        : 10
 7 - Number of Request Tries             : 3
 8 - Minimum Request Sleep Seconds       : 2
 9 - Maximum Request Sleep Seconds       : 10
10 - Number of Delivery Tries            : 4
11 - Minimum Delivery Sleep Seconds      : 5
12 - Maximum Delivery Sleep Seconds      : 10
13 - Maximum Rows Times Columns          : 10000
     (regarding passing of filters)
14 - Debug Enabled                       : False
15 - Keep Error Log Files                : True
16 - DEFAULT VALUES
 0 - Quit

>>> Enter Choice: 0

***** Delivers Configuration Menu *****
1 - Configure Scheduler
2 - Configure Mail
3 - Configure iBots
4 - Configure Workflow
5 - Configure Java Extension
0 - Quit
>>> Enter Choice: 4

***** Workflow Configuration *****
 1 - Server                              : http://localhost
 2 - System                              : eai_enu
 3 - Service                             : ANALYTICS
 4 - User                                : sadmin
 5 - Password                            : *****
 6 - DEFAULT VALUES
 0 - Quit

>>> Enter Choice: 0

***** Delivers Configuration Menu *****
1 - Configure Scheduler
2 - Configure Mail
3 - Configure iBots
4 - Configure Workflow
5 - Configure Java Extension
0 - Quit
>>> Enter Choice: 5

***** General Configuration *****
 1 - Java Host Server             : localhost:9810
 2 - DEFAULT VALUES
 0 - Quit

>>> Enter Choice: 0

***** Delivers Configuration Menu *****
1 - Configure Scheduler
2 - Configure Mail
3 - Configure iBots
4 - Configure Workflow
5 - Configure Java Extension
0 - Quit
>>> Enter Choice: 0

D:\oracle\bise1\bi\server\Bin>








 Step 3-  Credential Store Configurations


C:\oracle\bise1\bi\server\Bin>cryptotools credstore -add -infile C:\oracle\bise1\bidata\web\config\credentialstore.xml
>Credential Alias: admin
>Username: Administrator
>Password: *****
>Do you want to encrypt the password? y/n (y): y
>Passphrase for encryption: secret
>Do you want to write the passphrase to the xml? y/n (n): y
>File "C:\oracle\bise1\bidata\web\config\credentialstore.xml" exists.
Do you want to overwrite it? y/n (y): y



 Step 4-  Entry of Credential Store in InstanceConfig.xml


<?xml version="1.0" encoding="utf-8"?>
<WebConfig>
.
.
.
.
.
<CredentialStore>
<CredentialStorage type="file" path="d:/oracle/bise1/bidata/web/config/credentialstore.xml" passphrase="secret"/>
</CredentialStore>
</ServerInstance>
</WebConfig>



 Step 5-  Presentation Layer Settings

 
Setting up delivery profile for the user account. In this case presentation administrator will kickoff iBot:





Add respective devices to Email and put email address to whom you want to send deliverable content .




Setting the permission for Delivers/iBot from ‘Manage Privileges’ as below:



Goto Delivers and Create new iBot .Schedule it to immediate.







Select recipients as Me and also you can choose from user groups. You can set deliverable content to Dashboard or Report. Select "Email" to be the Destination.







Now you can save the iBot. Once you save the iBot the process will be triggered immediately and you can see detail log from ‘..\OracleBI\server\Log\iBots’. 



Thanks,
Satya Ranki Reddy

Sunday, October 14, 2012

How to Downgrade RPD from 11.1.1.6 to 11.1.1.5 Version.


Issue:  Here I tried to open the 11.1.1.6 version of the Rpd using 11.1.1.5 version Admin tool. It shows the following error.

  
  
  Now we will try to downgrade 11.1.1.6 (V 318) to 11.1.1.5 (V 308)


There is  repository downgrade utility nqgenoldverrpd.exe file available for this purpose
It  is part of the OBIEE software.  This utility was present in the 10.1.3.2.1 version of OBIEE but was removed in the later releases. 

Note: Using this Utility you cannot downgrade the RPD from 11g to 10g version. You can downgrade from one version to another 11g Versions.

 
Physical location of the nqgenoldverrpd.exe  file will be
1 ) If you are using Admin tool on your system , the directory path will be

<BI_HOME>\bifoundation\server\bin

2) If you are using Admin client, the directory path will be 

C:\Program Files\Oracle Business Intelligence Enterprise Edition Plus Client11.1.1.6\oraclebi\orahome\bifoundation\server\bin




To understand how this utility works and what versions it can downgrade.

 Let us run the command

  1.   1)   Go to Run 
    2)    Type CMD
    3)  Point to the bin directory as shown below

     

    4) Now type nqgenoldverrpd.exe and hit enter. You will see the following screen
       
Important notes from the above screens shot.
  
1) Format you should type in the command prompt to downgrade the RPD:

nqgenoldverrpd   [-P repository_password] -I input_repository_pathname  –O output_repository_pathname -V version
-P: your RPD password
 -I:  Repository path and name
-o: Repository path and new name of the rep you want to name for the downgraded version
-V: To which version you want to downgrade. 


  2) You can only generate repository of version 302  to 318 [ 318 being 11.1.1.6 Version].

 
Downgrading Process:
  1)     Copy the 11.1.1.6 RPD  to  a location  you want to ( Here I copied the file to C drive)

      2)     Now go to
Run > Cmd  and type the downgrade command as follows and hit enter

 
Here I am downgrading to 308, which is 11.1.1.5 Version.

3)      Your command prompt will show “Done!!!” message as below.



4) Now my C drive has new Rpd as shown below which is of version 11.1.1.5. 








 


 You can now open this RPD using 11.1.1.5 Admin tool.
 
Thanks,
Satya Ranki Reddy

Thursday, October 4, 2012

Oracle BI EE 10.1.3.3/2 – Customizing Login Screen

I thought of picking up an older forum question for my blog entry today. The question is how do we go about customizing BI EE login screen? BI EE login screen primarily works (from the UI perspective) using the following style, stylesheets and XML messages.
1.   Logon.css – Stylesheet that sets the font sizes, background color etc
2.   LogonControlMessages.xml
3.   LogonMessages.xml
4.   ProductMessages.xml
5.   Utilmessages.xml
6.   sk_oracle10 – Base skin which provides the images for the login screen.
The login image of the login screen comes from the bglogon.jpg (this would be present in your base skin i.e {OracleBI}\web\app\res\sk_oracle10\b_mozilla_4.
      
In order to modify the above image, just create a new skin and put a new image under the same name as bglogon.jpg. For creating a new skin, check my blog entry here
The word Oracle Business Intelligence comes from the kmsgProductGeneral message in ProductMessages.xml (This file would be under {OracleBI}\web\msgdb\l_en\messages )
      
“Please enter your User ID and Password below, and then press the Log In button.” – This comes from kmsgAuthenticateRequestedContentRequiresLogon message of the logonmessages.xml (This file is present under {OracleBI}\web\msgdb\l_en\messages ).
      
The UserID, Password and the Login button all come from a message called kmsgLogonLanguageForm in logoncontrolmessages.xml (This file would be present under {OracleBI}\web\msgdb\messages).
      
Lastly the copyright messages come from the message kmsgNQuireLegalCopyright in utilmessages.xml (This file would be present under {OracleBI}\web\msgdb\l_en\messages).
      
Just a word of note: Some images like “Powered By Oracle” logo should not be modified since they would violate the license agreement. The above should give you an idea of the list of messages/images that you need to modify to get your desired customization.

Thanks,
Satya Ranki Reddy

Customize OBIEE Logon Image


Customize OBIEE Logon Image

Sometimes it is important to provide a personalized logon image and customized text details for the customer. Let us see the configuration details to customize the login image. I will be using my blog logo for this demonstration.
Steps:
1. Upload the logo image and change the logon image path under Oraclebi directory subfolders.
2. Change settings in Instanceconfig.xml file
3. Restart the services.
Upload the logo image and change the logon image path under Oraclebi directory subfolders.
1. All the skin images are stored in the Oraclebi\web\app\res\sk_oracle10 folder. This folder comes with all default settings.
2. Duplicate sk_oracle10 folder and rename anything, I have renamed it as sk_obiworldlogo.
3. The folder name should contain sk_ as the prefix name.

4. Open the sk_obiworldlogo folder. Place the logo image under b_mozilla_4 folder and change the image name path in the logon.css file which is available in this folder.

Provide the name of the image in the background-image path. Save the file.
5. Follow 1 to 4 steps as above and do the similar changes in the directory:\OracleBI\oc4j_bi\j2ee\home\applications\analytics\analytics\res\sk_obiworldlogo.

So the logo image and logon.css file changes have to be made in two directories.
Change settings in Instanceconfig.xml file
1. Add the default style code as below and mention the folder name in the instanceconfig.xml file. Default style code is for the login screen image and default skin code is for skin within the Answers tool. Ensure the name is case sensitive and do not include sk_ as prefix.

Restart the services.
1. Re-start the BI server and presentation server services. You will see your customized login image as below.

2. You can customize the logon screen as per the company requirements. The content text of this login screen can be changed as well and we will see some examples in the later posts in this blog.

Thanks,
Satya Ranki Reddy

OBIEE 10g Logon Screen Customization

You can customize the OBIEE Logon screen as per your company logo and other standards like color, style etc.
1. Logon background Image change – Logon.css
2. Logon Headline text change – ProductMessages.xml
3. User ID and Password request text change – LogonMessages.xml
4. Copyright content change – Utilmessages.xml
When you install your OBIEE 10g, you will see the below as the default OBIEE logon screen. You can customize it as per your company standards. Let us see how to change all of these components.

Logon background Image change – Logon.css
I have posted an article earlier on how to change the OBIEE logon background image. Pleaes  to check the article in my blog.
Logon Headline text change – ProductMessages.xml
You can change the headline text and format.
1. Change the Logon Text:
Go to “OracleBIwebmsgdbl_enmessages” and open the ProductMessages.xml file in edit mode and edit the text as shown below;

2. Change the Logon Text format:
First, follow the post on how to change the logon background image here and change the formatting style in logon.css file in “D:OracleBIwebappressk_santoshb_mozilla_4. (sk_santosh is a copy of sk_oracle10 folder). Copy the logon.css file after changing the color code as shown below and paste the file in “D:OracleBIoc4j_bij2eehomeapplicationsanalyticsanalyticsressk_santoshb_mozilla_4” folder.

User ID and Password request text change – LogonMessages.xml
To change the User ID and Password request text, go to “OracleBIwebmsgdbl_enmessages” and open the logonmessage.xml file in edit mode and edit the text as shown below;

Copyright content change – Utilmessages.xml
To change the copyright content of the logon screen, go to “OracleBIwebmsgdbl_enmessages” and open the logonmessage.xml file in edit mode and edit the text as shown below;

But, do not change this content as this is copyright content by Oracle.
Run the presentation services and logon to OBIEE, a new world will open with all the above changes.



Thanks,
Satya Ranki Reddy

Wednesday, October 3, 2012

OBIEE Hide the Refresh link within the No Results view – Revisited

Filed Under 10.x Answers, 10.x Dashboards, Answers, Dashboards

Reader Leigh has been in touch with a good idea to hide the refresh link on the ‘No Results’ page using only CSS to make the containing, html td element hide. It’s cross browser compliant and has been tested on OBIEE 10g and 11gR1.
For 10.x you will still need to add a ‘No Results’ view to your report as mention below.


 However in place of the javascript add the following:

<style type="text/css">
td.ResultLinksCell {
display:none;
}
</style>
For 11.x we have a slightly different approach as there is no longer a ‘No Results’ view. Instead, on the criteria tab of your report click the ‘Edit Analysis Properties’ icon as pictured.

Enter the same style declaration as above.

Note that the ‘Refresh’ link will only be hidden when the report is previewed or put on a dashboard – it won’t disappear when viewing using the Results tab.

 

Hide Refresh link for no results view for OBIEE 11g

Use the following workaround to remove the refresh link when the report has no data.Reports with results returned do not display the refresh links by default. The change will impact on all the reports; you cannot make changes only for a particular set of reports/dashboards.This is the solution for 11g
Do the following if you are not concerned with multiple languages (All messages will default to l_en if a language-specific version is not found)
  1. Navigate to $ORACLE_BI_HOME\Oracle_BI1\bifoundation\web\msgdb\l_en\messages
  2. Copy and rename viewmessages.xml to viewmessages.orig
  3. Edit the viewmessages.xml Locate: Refresh : <WebMessage name="kmsgEVCLinkRefresh"><HTML>Refresh</HTML></WebMessage>
  4. Remove the HTML section, so it'll read: <WebMessage name="kmsgEVCLinkRefresh"></WebMessage>
  5. Restart the OBIEE services


Change ‘Go’ Button Name of OBIEE Dashboard Prompt

 How to change OBIEE dashboard prompt ‘Go’ button Name.
By default, prompt button name will appear as follows:
Go Button
Now Button Name Go has to change to desired Name
  • Navigate to {OracleBIDir}:\oraclebi\web\msgdb\l_en\messages
  • Open globalfiltermessages.xml file (before opening this file, you better take backup of this file)
  • Locate the following text

<WebMessage name="kmsgGFPGo"><TEXT>Go</TEXT></WebMessage>

  • Edit the text ‘Go’ to your desired text.
  • Here I am editing it to ‘Confirm’

<WebMessage name="kmsgGFPGo"><TEXT>Confirm</TEXT></WebMessage>

  • Save the changes to file
  • Restart Presentation service
See the change in text of dashboard prompt Go button, now it’s changed to Confirm button
Confrm
 

Changing the background color on hovering in OBIEE

When there is a requirement to have background color to appear on hovering over the text then the below code will help you out.
Use the below code in the Text inside the section with the HTML check box enabled.

<script type="text/javascript">
function changeColor(id, color) {
element = document.getElementById(id);
event.cancelBubble = true;
oldColor = element.currentStyle.background;
element.style.background = color;
}
</script>
<div id="left1" onMouseOver="changeColor(this.id, '#81DAF5');" onMouseOut="changeColor(this.id, '#FFFFFF');"><font size=2>Sample Text</font></div>

The use of div here is to restrict the color change on the particular section only. If we use Body bgcolor, it will  change the color for the whole page.
And in conditions where there are multiple sections, just add the above code and change the div id values.
Hope this will help many people out there. Thanks to javascript :)



Hide the message "Preparing Guided Navigation" in OBIEE

You might have come across with this kind of message when you use guided navigation logic.





There is a way to hide this message and the background yellow colored strip.

  Edit the two CSS files.

C:\OracleBI\web\app\res\s_oracle10\b_mozilla_4\portalcontent.css

AND 

C:\OracleBI\oc4j_bi\j2ee\home\applications\analytics\analytics\res\s_oracle10\b_mozilla_4\portalcontent.css 

Look for this class marked with Black border















Edit as shown below in the CSS file at both the locations:



.PortalPreparingGuided 
{
}


This will remove the yellow colored strip.

Now we have to remove the actual message "Preparing Guided Navigation"

For that purpose go to C:\OracleBI\web\msgdb\l_en\messages\portalsysmessages.xml

and look out for this tag - 


















Remove this message. 

<WebMessage name="kmsgDashboardPrepareGuided"><HTML></HTML></WebMessage>

Now restart the OBI services. You will find that the message "Preparing Guided Navigation" with the yellow strip in the background has been disappeared.



Thanks,
Satya Ranki Reddy