Tag Archives: skin

Customising OBIEE’s colour palette

OBIEE 11g Default Colour SelectorBy default the OBI colour palette may not be to everyone’s taste or corporate branding. Using the custom messages functionality of OBI to customise it we can change the colours in this palette!

The custom message that we need to customise is {Oracle_Home}/bifoundation/web/msgdb/messages/commonuitemplates.xml so we’ll copy that to our custom messages directory for editing.

The message we’re interested in is named “kuiColorSelectorColors” <WebMessage name="kuiColorSelectorColors" translate="false"> so the easiest way is to search the file for that and delete out the other messages.

Within the kuiColorSelectorColors message we see three parameters, two for the dimensions of the palette: knFormatColorsRows = 6; knFormatColorsCols = 8;

11g custom color selectorSo by default the palette is 6 rows by 8 columns for a total of 48 colours. We can change this to increase or reduce the number of colours the palette will hold.

The third parameter is an array definition of the colour values in their hexadecimal format: kaFormatColors = new Array(“#CC99CC”,…);

Obviously we need to define the right number of colours for the volume of our palette (I’ve not tested what happens if we define too many or too few colours here). Interestingly the palette will fill from this array starting with the bottom left corner, filling to the right and upwards one row at a time – not from the top as you may expect.

Customising the OBIEE login page

In the last post we showed how to get OBIEE set up for customisation. Now lets look at using that to start making OBIEE look like it belongs a bit more in our company.

Just about all of the text on the OBIEE pages is customisable, as all of that text is defined in XML files that are loaded when the Presentation Server is started. Previously we set up a CustomMessages directory that was made available to OBI through weblogic. This directory is the one that PS now checks first when starting up, for the XML messages files and takes any that it finds there in preference to the default messages that were installed with OBI.

Creating a Custom Message

The easiest way to create the first custom message is to copy one of the defaults. So, for the login page lets take

  • {Oracle_Home}/bifoundation/web/msgdb/l_en/messages/logonmessages.xml

and copy it to

  • …CustomMessages/l_en/logonmessages.xml

When we look at the file through a text editor, we see that each piece of text on the logon screen is contained within a WebMessage XML tag. We only need to keep the ones that we are editing, if we want the defaults then we can delete them from our custom file.

So, for example, we use an LDAP source for authentication. As such people use their network password to log on to OBI. To stop any confusion, we can change the “Password” field to hold the label “Network Password”. After that our custom XML file will read as:

<?xml version="1.0" encoding="utf-8"?>

<WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
<WebMessageTable lang="en-us" system="Logon" table="Messages">

<WebMessage name="kmsgAuthenticatePassword"><TEXT>Password</TEXT></WebMessage>

</WebMessageTable>
</WebMessageTables>

Setting up OBIEE for customisation

RittmanMead already have a good and detailed post on this, but basically:

Configuring the Directory

First, we need a directory to use. Either on the server or at least somewhere it can access.

To get this directory ready we first copy in the WEB-INF directory from {MIDDLEWARE_HOME}\instances\instance1\bifoundation\OracleBIPresentationServer\coreapplication_obips1\analyticsRes

We also have to copy the skin (sk_blafp) and style (s_blafp) directories from {Oracle_Home}\bifoundation\web\app\res and rename them to sk_custom and s_custom respectively. While we’re there we’ll make a CustomMessages directory too

The UI directory now has three subdirectories:

  • WEB-INF
  • sk_custom
  • s_custom
  • CustomMessages

Next this directory has to be made available through a web server. For simplicity we will use Weblogic as we have that handy. To expose the directory using Weblogic, it is deployed as a J2EE application using the WLS Console.

  1. Log into the WLS Console, navigate to Deployments then click the Lock & Edit.
  2. Click the install button which has now become available.
  3. Enter the path of the UI directory previously set up and select Next.
  4. Opt to “Install this deployment as an application”.
  5. Select to deploy the application to a cluster, and the bi_server# component part of the cluster.
  6. Customise the name, if you like, and select the option “I will make the deployment accessible from the following location”, the path to the UI directory should be populated below.
  7. Click Finish

There should now be a new application called UI (or whatever you customised the name to) in WLS. Apply the changes and then check the state of the deployment to make sure it is active.

Configuring OBI

Next we need to configure OBI to use the styles and skins from the new location.

Into the InstanceConfig.xml ({MIDDLEWARE_HOME}\instances\instance1\config\OracleBIPresentationServicesComponent\coreapplication_obips1) file we add:

<URL>
<CustomerResourcePhysicalPath>\obiee\ui</CustomerResourcePhysicalPath>
<CustomerResourceVirtualPath>/ui</CustomerResourceVirtualPath>
</URL>
<UI>
<DefaultStyle>custom</DefaultStyle>
<DefaultSkin>custom</DefaultSkin>
</UI>

To enable this change, the presentation server component will need to be restarted.