Oracle BI EE 11g - Styles, Skins & Custom XML Messages
BI EE 11g, like 10g provides ability to customize the End-User Interface through 3 methods. They are
1. Styles 2. Skins 3. XML Messages
Like 10g, the procedure described in the 11g documentation to customize the UI using the above 3 methods is not correct. Fortunately, Oracle has come out with a White Paper that describes the process for customizing the User Interface using the above 3 methods here. Even the White Paper is not complete in all aspects. Hence, I will try to cover each of these methods in detail in this blog post.
Before we get into the methodology, one thing that we need to be aware of is, the Styles & Skins of 10g cannot be used directly in 11g. In fact, the directory structure, css files, images files of the default skins & styles have changed completely. So, if you have done UI customization in 10g, its better to start from scratch for 11g. In the case of XML messages, most of the messages that were there in 10g, will continue to work in 11g. But even in this case, its better to first understand whether there is a corresponding feature in 11g before starting to customize the messages.
In BI EE 10g, all the default Styles, Skins were present under a folder called {OracleBI}\web\app\res. In 11g, the default ones reside under {Oracle_Home}\bifoundation\web\app\res. The default Skin & Style used in 11g is called as blafp (Browser Look & Feel Plus).
So, to copy the base Style & Skin, we need to first identify a target directory. In 10g, we used to copy them to the same {OracleBI}\web\app\res directory and give them a new name. Also, we used to copy them to the {OC4J} directory so that it becomes available to the web server. But in 11g, that is not needed anymore. It is enough to create(or copy base ones) new Styles & Skins in a single Target Directory. There are 2 options for the Target Directory
1. Use the Default directory that comes shipped with BI EE 11g - As part of the installation there is a directory called analyticsRes under {MIDDLEWARE_HOME}\instances\instance1\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obips1 folder. We can copy the new Styles & Skins to this directory.
In both the above cases, in order to use a target directory (either the system analyticsRes or a custom target directory), we need to expose them to the web server. This is one new step for 11g which was not there for 10g (In 10g, the copy of files to OC4J is equivalent to exposing the target directory to the web server). The example that i will be showcasing will use a custom target directory instead of the system analyticsRes (the documentation/white paper is not complete for this).
In my case, i am going to copy the base s_blafp & sk_blafp style/skin to a custom C:\biee11g directory. I am going to rename these 2 base style & skins to s_rittmanmead & sk_rittmanmead as shown below.
1. Copy the WEB-INF directory from {MIDDLEWARE_HOME}\instances\instance1\bifoundation\OracleBIPresentationServer\coreapplication_obips1\analyticsRes to the C:\biee11g directory.
The next step is to basically let Presentation Services know that the new Styles/Skins are available from the new biee11g directory. This is done by adding the following tags to the instanceconfig.xml file.
<URL> <CustomerResourcePhysicalPath>C:\biee11g</CustomerResourcePhysicalPath> <CustomerResourceVirtualPath>/biee11g</CustomerResourceVirtualPath> </URL>
CustomerResourcePhysicalPath is a tag that specifies the actual target directory name. CustomerResourceVirtualPath provides the URLPrefix that will be added for sourcing all the files. For example, in the above link http://localhost:9704/biee11g/sk_rittmanmead/b_mozilla_4/oracle_logo.png, /biee11g is the URLPrefix. If we don't give this tag, BI EE will automatically add analyticsRes (System target directory). Also, lets add the DefaultStyle & DefaultSkin tags as well to the instanceconfig.xml file.
<UI> <DefaultStyle>rittmanmead</DefaultStyle> <DefaultSkin>rittmanmead</DefaultSkin> </UI>
For Custom XML messages, the procedure is more or less the same like 10g. Instead of copying the messages to the OracleBIData\customMessages directory, we need to copy to a customMessages directory (under the target directory). If it is a language specific message, create the language directory under customMessages folder in the target directory and then customize the message. For example, to change the Business Intelligence title to say Delivered Intelligence in the BI EE 11g header bar, we need to copy the productmessages.xml from {Oracle_Home}\bifoundation\web\msgdb\l_en directory to C:\biee11g\customMessages\l_en directory (Create the customMessages\l_en directory).