Saturday, October 12, 2013

Integrating Custom BPM Worklist into WebCenter Portal (Same Domain for BPM and WebCenter)

I would like to share sample application configured to run custom BPM Worklist and steps describing how to configure and access it from the WebCenter Portal. This post will be based on two other posts from my blog, I would recommend to go through them first. The one where is described how to extend WebCenter Portal - Extending WebCenter Portal Made Easy. Other one about deploying custom ADF shared libraries - Deploying ADF Applications as Shared Libraries on WLS. For this post, I assume BPM and WebCenter environment is running on the same domain. Ah, and there is one more - custom BPM Worklist access implementation through BPM Java API - ADF 11g PS5 Application with Customized BPM Worklist Task Flow (MDS Seeded Customization).

BPM and WebCenter Portal runs on the same domain - each of different WebLogic Managed Server. With such configuration, setup is quite straightforward, comparing to having separate domains:

As there is one domain, it is relatively easy to link WebCenter to BPM. You only need to define Foreign JNDI provider, it will alloow to access Worklist context from WebCenter Portal environment. Make sure BPM libraries are targeted to WebCenter Portal server.

Sample application -, contains a script to create required Foreign JNDI provider for WebCenter managed server. As BPM and WebCenter runs on the same domain, make sure to disable other properties of the script, except createJNDI:

Script may fail or produce errors, but JNDI link will be be created successfully anyway, most likely. Go to WebLogic console and verify it, you should see similar entry under Foreign JNDI providers:

All required links for this Foreign JNDI provider should be created by the script:

Script may fail to set proper target for created Foreign JNDI provider, you can do this manually. Make sure target points to WebCenter managed server:

Application where ADF task flow is implemented with custom BPM Worklist, imports several required BPM related libraries. You can see a list here:

ADF task flow is fetching list of tasks from BPM engine, tasks assigned to current user. In the next step, it displays assigned tasks in the table:

Sample application provides a method to access BPM Worklist context and fetched tasks assigned to the user:

ADF task flow with custom BPM Worklist access is deployed as ADF Library, this allows to integrate it into WebCenter portal through extending mechanism:

ADF Library will be deployed with provided SharedLib application, deployed as redsamurai.shared.lib library:

This shared library is referencing required BPM libraries, plus our ADF Library with custom ADF task flow for BPM Worklist:

Deploy shared library to WebCenter managed server:

Once shared library is deployed, restart WebCenter managed server and you should be able to add custom BPM Worklist ADF task flow to WebCenter Resource Catalog:

Through WebCenter page editor, we can add our custom ADF task flow from the catalog:

Task flow displays list of tasks assigned in BPM for current portal user:

We can open standard BPM Workspace environment and see same tasks available there:

This example displays list of tasks retrieved from BPM for the current user. Using BPM API we could create new task, process task, map task instance with UI form. This is the beauty of ADF, you are free to implement your own lightweight components to interact with BPM and consume in WebCenter Portal.

1 comment:

shrikant K said...

hi its really a good post.
We are trying to achieve similar thing in our web center portal application. I am religiously following the steps as mentioned in your blog. Followed till deploying shared lib to managed server. At this point I am facing problem.
When I tried to deploy extend.spaces.webapp library it throws error saying this library is already deployed with version 11.1.1. So I changed the version to 11.1.2 and deployed. It deployed without much issues but web center portal console doesn't come up. WebCenter enterprise application is not in Active mode when I checked in admin console -> deployment section.
Can you please help/suggest what should be the reason and how to over come it.
Thanks in advance