Saturday, May 28, 2011

Extending WebCenter 11g PS3/PS4 ADF Task Flows - RSS Example

Oracle WebCenter 11g PS3/PS4 allows to extend standard WebCenter product task flows, original Oracle library files are not modified - all customizations are stored inside MDS repository. Thats really powerful feature, quite often we can hear customer requests to customize one or another item for out-of-the box functionality. Because all changes are stored inside MDS, we are safe when doing migrations from one WebCenter release to another, just need to apply previous MDS. As per documentation - 24 Customizing Task Flows, only View level customizations are supported in current release. Will be waiting for ADF Model and Controller layers to be supported as well.

I will walk you through WebCenter RSS task flow customization example - EnterprisePortalApp_v3.zip. In order to customize WebCenter task flow, you need to install Oracle WebCenter Customization Framework Design Time extension, as per documentation link mentioned above.

WebCenter RSS task flow looks like this:


It brings news items, however is not so convenient to read. Let's say, we would like to have more space between news items and news link to be highlighted in bold. No problem, we can customize this and store our changes in MDS.

This task flow is pointing to certain RSS feed location and brings data from the internet directly into your WebCenter portal application:


This task flow is part of WebCenter product task flows:


Once RSS task flow is added into your application, we can customize imported WebCenter library. As I already mentioned, you should have installed WebCenter customization extension. Second step would be to enable Seeded Customizations for your Portal project:


Restart JDeveloper in Customization Developer mode:


WebCenter application will be marked for customization with MDS:


Enable Show Libraries option, this will list all imported libraries, among then WebCenter libraries want to customize:


You will perform customizations on "site" level, this means MDS customization will be applied on application scope:


Locate WebCenter RSS library from imported libraries list:


Expand library contents and open RSSViewer.jsff fragment, this is main fragment for WebCenter RSS task flow:


We can explore fragment contents, for example there is refresh icon - but rendered property is set to check for authenticated users. We don't need that, so I can remove this condition and make it default:


Set rendered property to default (true) - change will be stored in MDS file:


Change RSS item link to be rendered in bold:


There is no spacer between RSS messages:


We can add one - this will make messages more readable:


All the customizations are stored inside designated MDS file for specific resource (RSS fragment in our case). During deployment, this file is uploaded into MDS repository and applied later on runtime, during rendering. Its how standard functionality is adjusted on runtime, based on available MDS data:


Take a look, RSS news became much more readable now - and still using same WebCenter RSS task flow. Refresh icon now is available as well:


12 comments:

  1. Great post!!

    Do you know if it´s possible to customice the number of post?

    Thanks in advance!

    ReplyDelete
  2. Thanks !

    Yes, I had same requirement few weeks ago - to customize number of RSS messages. Its possible.

    You can pass additional parameter with RSS URL, to specify number of posts you want show. Set this parameter as a value for af:iterator.

    Andrejus

    ReplyDelete
  3. This post is awesome!!!

    Could you give more details in how to customize the number of posts?

    thanks in advance

    ReplyDelete
  4. I will describe this in my next post !

    Andrejus

    ReplyDelete
  5. Hi,

    I have posted requested updated here: http://andrejusb.blogspot.com/2011/08/further-customizing-webcenter-ps3ps4.html

    Enjoy !

    Andrejus

    ReplyDelete
  6. Thanks for your help!!

    ReplyDelete
  7. Thanks for the post. I followed the steps but I am not able to edit the source code of RSSViewer.jsff, it seems all files are locked. Looking for your help

    ReplyDelete
  8. Did you tried to open Expression Builder from Property Inspector and modify data through it?

    Andrejus

    ReplyDelete
  9. Thank you Andrejus it really helped me. Just want to know Why these files are locked and how to unlock it.

    ReplyDelete
  10. It can be JDev bug sometimes :)

    Andrejus

    ReplyDelete
  11. Hi Andrejus,

    I have deployed a Custom taskflow as a shared library on to WC_Spaces managed server. I wanted to display this taskflow in one of the pages of the spaces existing. How to add the taskflow to the resource catalogue in WC Spaces.

    Thanks,
    Morgan.

    ReplyDelete
  12. Hi
    Great post!
    However, after customizing the taskflow and launching the application - the changes to RSSViewer.jsff aren't visible. I checkecked RSSViewer.jsff.xml - it has the changes.

    Any steps that I might be missing?

    Thanks,
    Shweta

    ReplyDelete