Tuesday, April 3, 2012

Customized Links on the Header OBIEE 11.1.1.6

In this blog, I will explain on the steps required to configure the custom links on the header portal. This option is only available with 11.1.1.6 version.

Global Header contains different links/menus like "New, Catalog,Help,etc". With OBIEE 11.1.1.6 version, we can customize the global header and the Get Started section of the Home page for better accessibility and good user experience. These changes do not affect the other links/menu in the global header.

This feature will be very helpful for navigation from OBIEE application to other applications. Examples include, sharepoint link, similar project application related to OBIEE application, Custom Help link (project specific help), Contact Us, FAQ,etc.

For custom links, you can specify various attributes, including the following:
  • The text for the link (either a static string or a message name to use for localization).
  • A URL to access.
  • Whether the page from the URL replaces the current page or opens in a new tab or window that you can name.
  • The relative ordering of links in the header.
  • An optional icon to use with the link.
  • Link access/display privilege.

Steps required to configuration :-

1. Update customscripts.xml located at $OBIEE_Home\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obips
2. Insert relevent element details and save the file at same location or other physical location.
3. If file is stored in custom location, update Instanceconfig file to provide location of custom file path.
4. Restart the services.

Example :-

Here is the sample tags which could be added in customscripts.xml file.

<?xml version="1.0" encoding="utf-8"?>
<customLinks xmlns="com.siebel.analytics.web/customlinks/v1">
<link id="l1" name="SharePoint" description="Application SharePoint Link open in new window" src="http://www.microsoft.com" target="blank" >
   <locations>
      <location name="header"/>
   </locations>
</link>
<link id="l2" name="Google Search" description="Google open in named window" src="http://www.google.com/" target="google" iconSmall="common/info_ena.png" >
   <locations>
      <location name="header" insertBefore="advanced" />
   </locations>
</link>
<link id="l3" name="Yahoo" description="Yahoo" src="http://www.yahoo.com" target="yahoo" iconLarge="common/helptopics_lg_qualifier.png">
   <locations>
      <location name="getstarted"/>
   </locations>
</link>
<link id="14" name="Finance Details" description="Navigates to Reuters" src="http://www.reuters.com" target="blank" iconSmall="res/s_blafp/images/report_bankAccount.jpg" >
   <locations>
      <location name="header" insertBefore="catalog" />
   </locations>
</link>
</customLinks>

As shown in above script, following links should get added in global header/Get Started page.

1. Sharepoint link (11) on the global header.
2. Google Search link (12) on the global header which is required to be shown before "advanced" link on the header.
3. Yahoo link (13) which needs to be shown in GetStarted links.
4. Finance portal (14) will navigate to Reuters and this will be shown before "catalog" file.

Link ID is used as a unique ID that specifies the position of the link. We must include IDs for custom links to position them relative to default links.These IDs should not get repeated.

InsertBefore can accept following entries :

Navigation Bar
    catalog
    dashboard
    favorites
    home
    new
    open
    user
Search Bar
    admin
    advanced
    help
    logout

 

Please note that, it is not possible to put InsertBefore for GetStarted links as these can be customized. 

Path of the customscripts.xml file:

According to Oracle documentation, OBIEE should be able to read this file from the same location ($OBIEE_Home\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obips). But this did not work for me. (Any suggestions?)

Now, I kept this file on custom location and updated InstanceConfig files as shown below. (before end of ServerInstance.)

Instanceconfig.xml located at $OBIEE_HOME\instances\instance1\config\OracleBIPresentationServicesComponent\coreapplication_obips1

<ServerInstance>
   
  <CustomLinks>
          <filePath>C:/Custom_OBIEE/customscripts.xml</filePath>
     </CustomLinks>
    
</ServerInstance>
Save Instanceconfig.xml and restart the services. Clear browser cache.

We can see all the links added and displayed in the portal under GetStated/Header.

Cheers...

Monday, April 2, 2012

Globally change RPD changes to catalog file - II

In my last blog, I explained all the steps to automate the folder(table) name change in catalog file by using XML Search and Replace.


Now, lets thinks about the complex scenrio where you have sizeable changes in your catalog files and you want to automate this by writing a script. Also, the first option does not give feature to change the specific objects like "Folder name/Formula, Subject Area" only.

Option 2 :- Use "Import from File"

This options has extra features like changing specific part of the report XML code.


Here is the sample XML file.


<?xml version="1.0" encoding="utf-8"?>
<actions>
<action command="textReplace" oldValue="paint" newValue="HoleyShoes" ignoreCase="true"/>
<action command="renameSubjectArea" oldValue="SnowflakeSales" newValue="GG SALES" ignoreCase="false"/>
<action command="renameTable" subjectArea="Paint Exec" oldValue="forecast measures" newValue="GGFCMEASURES" ignoreCase="true"/>
<action command="renameColumn" oldValue="CategoryID" newValue="GG CATID" ignoreCase="false"/>
<action command="renameFormula" oldValue="&quot;Paint Exec&quot;.Measures.&quot;Year Ago Dollars&quot;" newValue="&quot;Paint Exec&quot;.Measures.&quot;GG YAGODOLLARS&quot;" ignoreCase="false"/>
<action command="renameFormula" subjectArea="&quot;Paint Exec&quot;" oldValue="&quot;Products&quot;.Brand" newValue="GGPRODUCTS.&quot;GG BRAND&quot;" ignoreCase="false"/>
</actions>

  1. textReplace :- will perform blind search/replace and change every context where the specific text is used. Similart to basic option -1. Be careful while using this option.
  2. renameSubjectArea :- This will change only the subject area name from the catalog XMLs.
  3. renameTable :- This will change the Table name of the presentation layer (folder).
  4. renameColumn :- This will update presentation column name of the folder.
  5. renameFormula :- This option will update formulas applied in the criteria.
Once all changes are specified in xml file, save file in .XML format and import the file in the Import option from the XML Search/Replace window.

Example :-



1. Rename the catalog files where Actual Revenue $ is used with Actual Revenue #. (textReplace)
2. Renaming entire subject area from Sample Sales Lite to Sample Sales Lite Version (renameSubjectArea)
3. Rename the files where presentation layer table "Calculated Facts" is used with "Calculated Measures" (renameTable)
4. Rename the files where presentation layer column "Discount Amount" is used with "Discount Amount_1".

Create a new XML file with below syntax. Save it and provide this file as a reference under catalog manager XML Find and Replace utiltiy.

<?xml version="1.0" encoding="utf-8"?>
<actions>
<action command="textReplace" oldValue="Actual Revenue $" newValue="Actual Revenue #" ignoreCase="true"/>
<action command="renameSubjectArea" oldValue="Sample Sales Lite" newValue="Sample Sales Lite Version" ignoreCase="false"/>
<action command="renameTable" subjectArea="Sample Sales Lite" oldValue="Calculated Facts" newValue="Calculated Measures" ignoreCase="true"/>
<action command="renameColumn" oldValue="Discount Amount" newValue="Discount Amount_1" ignoreCase="false"/>
</actions>

Open Catalog manager and perform XML Search and Replace by providing the xml file reference as show below.



We can see the changes after run is completed in the results window.






















Now, deploy the changed RPD and restart services. You can see all the changes are reflected in presentation catalog. No impact on the saved reports/analysis.



Similarly, you can use renameFormula option to update specific column formula in the catalog. This may be necessary sometimes as all the calculations may not be directly fetched from repository.

<action command="renameFormula" oldValue="&quot;Sample Sale&quot;.Measures.&quot;Year Ago Dollars&quot;" newValue="&quot;Sample Sales&quot;.Measures.&quot;GG YAGODOLLARS&quot;" ignoreCase="false"/>
<action command="renameFormula" subjectArea="&quot;Sample Sales&quot;" oldValue="&quot;Products&quot;.Brand" newValue="GGPRODUCTS.&quot;GG BRAND&quot;" ignoreCase="false"/>


Remember, dont forget to take backup of originial files. 

Cheers...



























































Saturday, March 31, 2012

Globally change RPD changes to catalog file - I



Many a times we face the situation where any changes on RPD presentation layer, causing lots of rework on web catalog side by manaully changing references of the column/table/subject area.

Instead of maunally changing the references in all the reports, we can use Catalog manager's option of XML Search and Replace for small changes. If there are significant changes, we can explore XML file option to write all the changes in one file and make changes in ONE Go.

Option 1 :- XML Search and Replace

This option is straight forward and easy to use. You should know what is the change required in catalog files. To give you an example, I have changed subject area folder column from Revenue to Actual Revenue.  Shown the change below.

Now I need to change all the references in the catalog files to replicate this change. (I know keeping Alias on the Presentation later will also work, but dont want to keep aliases in my first build).

  • Open Catalog Manager. Open catalog file in offline mode (preferred).
  • Make sure you have already taken a backup of the code.
  • Select the Folder from the catalog tree. (My case, I wanted to change it globally, so selected "Shared"
  • Now Navigate to Tools -> XML Search/Replace Option (Ctrl +H)
  • New window opens up with options like Old Text/New Text.
  • Provide the change as needed. I have changed from "Revenue" to "Actual Revenue"
  • ( Import File Option will be covered in next blog.




















 
  •  Click OK to start search/Replace operation.
  • Once completed, results will be shown with the changed on the reports/analysis in catalog.






















Once these changes are completed, deploy the new files and start the services. If this is done online, server restart is not required.

Assuming, server is restarted, I will now login to portal to do sanity check on the changed dashboards.
Here you go. I can see the changes reflected in catalog files and existing dashboards remain intact. :-)

Please note that, this option is not receommended as it might change other part of the code if same name is used for report name, subject area, conditions,etc. Always prefer to go by "Import From File" option.


Now, I will explain how to use "Import from File" in next blog.

Cheers...

Friday, March 30, 2012

How to implement Type Ahead/Auto Complete Functionality

OBIEE 11.1.1.6 has come up with some new features. Auto Complete is one of the new features which is being introduced with this version.

Oracle BI EE provides auto-complete functionality for prompts, which, when enabled, suggests and highlights matching prompt values as the user types in the prompt selection field. Auto-complete can be excluded or included on dashboards, and users can turn auto-complete off for their accounts.

Constraints :-
  1. Option is available with OBIEE 11.1.1.6 version only.
  2. Available only for the Choice List prompts.
  3. Must select the "Enable user to type values" in the prompt dialog.
  4. Auto Complete is not available for hierarchical prompts.
Options available are :-
  1. case-sensitive or case-insensitive
  2. Matching level can be set up as Starts With, Word Starts With, Match All.
Steps to configure Auto Complete Option :
A. System Settings 
Administrator will modify the system configuration file to enable this option. 
When  this functionality is turned on, all users can view this functionality.
  1. Open the instanceconfig.xml file located at $OBIEE_HOME\instances\instance6\config\OracleBIPresentationServicesComponent\coreapplication_obips1\ instanceconfig.xml
  2. Include elements and their ancestors as shown below. (should be put before end of </ServerInstance>
 
Syntax :-
<Prompts>

<MaxDropDownValues>256</MaxDropDownValues>

<AutoApplyDashboardPromptValues>true</AutoApplyDashboardPromptValues>

<AutoSearchPromptDialogBox>true</AutoSearchPromptDialogBox>

<AutoCompletePromptDropDowns>

<SupportAutoComplete>true</SupportAutoComplete>

<CaseInsensitive>true</CaseInsensitive>

<MatchingLevel>MatchAll</MatchingLevel>

<ResultsLimit>50</ResultsLimit>

</AutoCompletePromptDropDowns>

</Prompts>



Matching level can be set as “MatchAll “, “StartsWith”, “WordStartsWith”

ResultsLimit: - Specifies the number of matching values that are returned when the auto-complete functionality is enabled.


 3. Save your changes and close the file.
 4. Restart Oracle Business Intelligence.
B. Dashboard Settings : 
While creating a new prompt, choose user input as choice list and click on Enable user to type values. Save the prompt and Navigate to Dashboard.


C. Dashboard Execution :




























As shown above, when user starts typing the values, OBIEE will generate matching values and display in the drop
downlist. Goal Achieved :-).


Now, I will describe what if we only need to enable it for specific dashboard/user.

D.Steps to disable the functionality from dashboards:


 1. Dashboard Settings:

     This functionality can be disabled for an individual dashboard as shown below.

    i. Click on Edit Dashboard -> Dashboard Properties




       ii.      Change Prompts Auto Complete as “Off”


  
      2 User Level Settings: - Individual user can set turn off this feature by going to  
                                                   My Account as shown below.
      Click on My Account -> Preferences. Select Prompt Auto Complete as Off.















Cheers... I hope this helps..