Thursday, August 29, 2013

Custom style and skin in OBIEE 11.1.1.7

When upgrading existing customized installations of OBIEE to 11.1.1.7, one thing that you may run into is a subtle change in the usage of the vanilla style and skin of the application.

FusionFX has become the default, but isn't immediately or better directly suited as a basis for your own custom style and skin.
The reason for that is, that FusionFX itself is only a subset of a full style+skin package and the vanilla application continues to use a lot of blafp.

Oh yes, /web/app/res also has become /web/appv2/res for some reason or another within Oracle_BI1, so here's what you find in there:




A cursory glance at the folder contents of FusionFX and blafp side-by-side shows quite some differences already:




Whipping out out trusty Firebug and what an out-of-the-box applications actually renders, we see blafp used for the application header:




while we see FusionFX being the source for the dashboards themselves:




As most GUI customizations replace first and foremost the logos in the application header and then moving on to the look & feel of the dashboards and analyses, this logically means that adapting the default FusionFX will only get you halfway to your destination.

What you need to do, in order to have a full and complete basis for your own custom skin, which contains all files and artifacts while retaining the slick FusionFX look (it does look a lot leaner and nicer now), is to merge the two into one package. doing this couldn't be any simpler than this:
1.) clone s_blafp and sk_blafp
2.) copy all the content of s_FusionFX and sk_FusionFX into the respective blafp folders, replacing all existing files





Since FusionFX is a modified subset of blafp, you'll retain all base blafp files and gain the modified and "newer" FusionFX files which supersede blafp.

All you need to do now, is rename the resulting folders...







...push them to the /analyticsRes/ directory (or whatever directory holds the deployment of your custom style and skin), reference it in the instanceconfig.xml and, voila, you've got a complete and fully customizable 11.1.1.7 style and skin package.

12 comments:

  1. Hey Christian, thanks so much for this. Really helped me out today; much appreciated man!

    I didn't realize you could overlay blafp and FusionFX like that. Very cool. Hey on this topic, had you ever seen an error like this before in 11g when dealing with custom skins? Especially when clicking the "Catalog" link or otherwise navigating around to various dashboards?

    Error loading XML Document from /analytics/saw.dll/uicomponents/obips.UberBar/obips.UberBar.xml?fmapId=h5eEyQ.
    The response given was:

    Through some brute force trial and error today and looking at your blog along with others, I realized that it looked like there were too many other out of the box baseline folders in my client's analyticsRes folder (they had included b_mozilla, s_blafp, sk_blafp, s_FusionFX, sk_FusionFX in analyticsRes too -- not sure why...)

    Anyway, once I removed those and left only the custom skin and style folders, that error went away, and now "everybody happy, happy, happy." :)

    Jeremy

    ReplyDelete
  2. Hi Jeremy,

    glad that my post was of help.

    As for the problem you describe: it can become an issue when there are several conflicting version of the same file (or files) within the analyticsRes. But nothing that a good hard delete can't solve ;-)

    Take care,
    Christian

    ReplyDelete
  3. Hi Christian,

    I went ahead and wrote up my "obips.UberBar.xml" issue resolution, along with some other “fun” quirks I'm running into on my 11.1.1.7.131017 upgrade. :)

    http://www.emerald-cube.com/2013/12/adventures-in-obiee-upgrade-land-quirks-and-workarounds-episode-i/

    Cheers!

    Jeremy

    ReplyDelete
  4. Hi Christian.

    I'm trying change de skin, but I don't understand the last step

    "/analyticsRes/ directory (or whatever directory holds the deployment of your custom style and skin), reference it in the instanceconfig.xml and, voila, you've got a complete and fully customizable 11.1.1.7 style and skin package."

    - How to reference to the instanceconfig.xml?
    - where is the folder of analyticsRes and folder of instanceconfig.xml

    from already thank you very much.

    Diego

    ReplyDelete
    Replies
    1. Hello Diego,

      the analyticsRes folder (or whatever name you decide to give it) resides wherever you like as long as it is a location which WLS can read as a target for its application deployment.

      Have a look at the initial white paper that Oracle wrote on this subject: http://www.oracle.com/technetwork/middleware/bi/customizing-oracle-biee-11g-176387.pdf

      You will find the information on the analyticsRes folder as well as the instanceconfig tags you will need:


      MySkin
      MyStyle


      ...where the physical folder naming will then be s_MyStyle and s_MySkin.

      Cheers!

      Delete
    2. XML doesn't work in-line...so it'd be

      -UI-
      -DefaultStyle-MyStyle-DefaultStyle-
      -DefaultSkin-MySkin-/DefaultSkin-
      -/UI-

      Just replace - with < and > respectively.

      Delete
    3. Christian, I follow this steps, but it doesn’t work
      1. Copy the s_blafp and sk_blafp in a other folder.
      2. Copy te folder from s_FusionFX and sk_FusionFX to s_blafp and sk_blafp
      3. Rename the s_blafp and sk_blafp to s_ccu and sk_ccu
      4. Moved the folder to AnalyticsRes
      5. Add this code “
      s_ccu
      sk_ccu
      ” in a instanceconfig.xml from this path: /home/oracle/obiee/instances/instance1/config/OracleBIPresentationServicesComponent/coreapplication_obips1

      Tell me what is wrong?

      Thanks you.

      Diego

      Delete
    4. Diego,

      as I said above, a reference to "MyStyle" in the instanceconfig means a physical folder name of "s_MyStyle". So in your code you ommit the s_ and sk_ respectively.

      Delete
  5. Hi, I do the change in the file, but when i try restart of presentation service it didn't start and when a change de style doesn't change in the dashboard.

    where I should put the code in the instanceconfig.xml?
    why doesn't change the style?

    please help me.

    Thanks you.

    Diego.

    ReplyDelete
    Replies
    1. Diego,

      it must be inside the ServerInstance :

      ....
      <UI<
      <DefaultStyle<MyStyle</DefaultStyle<
      <DefaultSkin<MySkin</DefaultSkin<
      </UI<
      </ServerInstance<
      </WebConfig<

      Delete
    2. It work, thank you bery much.
      it's very helpfull yours blog

      Delete