Sunday, April 14, 2013

BPM 11g R1 Worklist Integration (Hacking Experiment) Into Non-SOA ADF 11g R2 Domain

We all know there are no Oracle SOA/BPM available for ADF 11g R2 platform. In practice it happens to run both environments in parallel - Oracle SOA/BPM 11g R1 for process applications and ADF 11g R2 for ADF applications. Obvious question in such situations - how to access BPM 11g R1 Worklist application from ADF 11g R2 context? Well, this is possible - I will describe in this post how it can be done with some hacks. Keep in mind that officially it is not supported to access BPM 11g R1 Worklist from ADF 11g R2 environment, but if there is such requirement it can be achieved. Previously I was explaining how to run BPM 11g R1 Worklist and Human Task on Non-SOA 11g R1 domain - Running Oracle BPM 11g PS5 Worklist Task Flow and Human Task Form on Non-SOA Domain, today we go one step further and use newer ADF version for Non-SOA domain. But you should know that BPM Worklist is ADF application and really it can run well in ADF 11g R2 context. There are no SOA/BPM libraries for ADF 11g R2 installation, but this is not the issue - we can add and reference SOA/BPM libraries from different 11g R1 domain. There is no need to install complete SOA/BPM 11g R1 domain on that machine where ADF 11g R2 runs - you can copy SOA/BPM libraries package only.

Usually we don't want to deploy and run ADF related applications on the same domain where SOA/BPM is installed. Often ADF and SOA/BPM development is out of synch, this is when we need to make different BPM/SOA and ADF versions talk together.

Here you can download sample application for today post - This sample is based on two JDeveloper applications. IntegratedBPMWorklistApp - ADF 11g R2 application with integrated ADF 11g R1 BPM Worklist. EmployeeManagementLab - ADF 11g R1 Human Task ADF UI migrated to ADF 11g R2. BPM process - EmployeeManagement you can download from my previous post - Generic ADF 11g Human Task Handler Concept for Oracle BPM.

Visually this integration between SOA/BPM 11g R1 and ADF 11g R2 looks like this:

BPM process is deployed on SOA/BPM 11g R1 domain. Custom ADF application includes BPM Worklist ADF 11g R1 task flow and runs on ADF 11g R2 domain.

ADF 11g R2 application with integrated BPM Worklist ADF 11g R1 task flow:

Human Task ADF application generated with ADF 11g R1 and migrated to ADF 11g R2 runs on ADF 11g R2 domain:

The same ADF 11g R2 application renders custom ADF screens:

When Human Task is deployed on ADF 11g R2 domain, from the log we can see successful Human Task initialization and registration:

BPM process running on SOA/BPM 11g R1 domain points Human Task URL's to ADF 11g R2 domain:

BPM Worklist task flow is added into ADF 11g R2 custom application and is configured to run in worklist mode. At the end of the day BPM Worklist is ADF 11g R1 application with usage of some additional SOA/BPM libraries - it runs well in ADF 11g R2 context:

Make sure you don't forget to add ADF security permissions for BPM ADF task flows:

Worklist Components tag must be registered - pay attention, it points to the library from SOA/BPM 11g R1 domain.:

There are worklist and task list libraries added into ADF 11g R2 application from SOA/BPM 11g R1 domain:

Shared library - oracle.soa.workflow.wc is installed on ADF 11g R2 domain and must be referenced by custom ADF application with integrated BPM worklist:

You should install on ADF 11g R2 domain 2 worklist related libraries and make sure that WebService Policy Manager library is installed (is needed to communicated to BPM domain securely):

Add Foreign JNDI Provider pointing to the SOA/BPM 11g R1 domain (read more about this from my previous post):

Both applications - custom ADF 11g R2 with BPM Worklist and Human Task are deployed on the same ADF 11g R2 domain:

Ok, we are done with BPM Worklist part.

Let's take a look now into Human Task ADF implementation part ready to run on ADF 11g R2 domain. I simply migrated Human Task application to ADF 11g R2 by opening it in JDeveloper 11g R2:

JSF library is not migrated automatically. You need to remove JSF 1.2 and add JSF 2.0 library manually:

BPM Worklist libraries are added only for compilation, these two libraries are not not deployed:

Configuring ADF 11g R2 environment to run BPM Worklist from 11g R1 is not an easy task, but is doable based on my hacking experiment.

No comments: