Thursday, July 29, 2010

Oracle BPM 11g Integration with ADF and WebCenter Suite - Quick Overview

In May, I was blogging about new Oracle product release - BPM 11g. You can check this post - Oracle BPM 11g Integration with ADF and WebCenter Suite. I'm working now in this area and integrating BPM 11g Human Tasks into WebCenter Spaces 11g. Really good news for BPM people is that now we can create rich SOA type applications, it is possible to bring standard ADF Task Flows and Oracle BPM based ADF Task Flows together into WebCenter Spaces 11g Process Space.

I can access custom ADF Task Flows in WebCenter Spaces 11g, by declaring them and extending WebCenter resource catalog:


My custom ADF Task Flow is present in resource catalog - it brings filterable list of company employees and allows to modify employee details:


Through WebCenter Composer, this custom ADF Task Flow can be easily added to the Oracle BPM Group Spaces page:


From Oracle BPM Group Spaces page user can see and manage assigned BPM Human Tasks. Additionally, our custom ADF Task Flow for Employees data management is available on the same WebCenter Spaces 11g page:

14 comments:

  1. Hi Andre:

    I really like have some tutorials about this...

    Do you have some tutorials??

    thanks

    ReplyDelete
  2. I really like have some tutorials about this...

    Do you have any tutorial??

    Thanks...

    ReplyDelete
  3. Hi,

    I'm planning to post technical blogs on this topic after OOW. Also I'm doing trainings on the same topic.

    Regards,
    Andrejus

    ReplyDelete
  4. I'm working on the same topic. And there are some questions:

    1. Which version of WebCenter Spaces you are using?
    2. Did you config the BPM, SOA, WebCenter Spaces on one Managed Server?If not, how to resolve the library dependence on the BPM taskflow which added to the WebCenter Resource Catalog?
    3. How to add taskflow which have library dependence to ExtendWebCenterSpaces application? Although I created weblogic.xml under ExtendWebCenterSpacesWAR/WEB-INF directory, there still no effect in deployed war file.

    ReplyDelete
  5. Hi,

    I will post blog articles on this topic. Also I have developed advanced training for BPM/WebCenter/ADF, send me email offline for details.

    Regards,
    Andrejs

    ReplyDelete
  6. Myself I prefer blog articles, book writing takes too long and is too formal process :)

    Andrejus

    ReplyDelete
  7. Hi
    What all other installations to be done to have the Process Space working? I have SOA Suite server running on a managed server, does this automatically have process space in it or should we have to install any other product (like Webcenter) to enable it. Would really appreciate if you could guide me on this.

    Venkat

    ReplyDelete
  8. Hi Venkat,

    I'm preparing blog on this topic, it should go live after OOW.

    Regards,
    Andrejus

    ReplyDelete
  9. Hi! Andrejus...

    I have couple of queries, hopefully you will be able to answer them..
    1) Can we customize 11g worklist application. (I want this to be my landing page for my application)
    Else
    2) How do we create a custom adf human task flow application. This is with respect to ADF technology, I know its quite straight forward in 10g where we have jsp.

    Md Tanveer
    (tanveer_server@rediffmail.com)

    ReplyDelete
  10. Hi,

    You can't customize standard worklist without changing it internal code.

    You can generate Human Task Flow flow app from BPM Human Task - same principle as before...

    Andrejus

    ReplyDelete
  11. You can read my blog post on similar topic: http://andrejusb.blogspot.com/2010/10/initializing-oracle-bpm-11g-process.html

    Andrejus

    ReplyDelete
  12. Hi ,
    I am trying to retrieve the worklist for a particular user.
    The java code is :

    package cpa.apps.fin.wa.model;
    import ..

    public class workflowClient {
    public static void main(String[] args){
    Map properties = new
    HashMap();
    properties.put(IWorkflowServiceClientConstants.CONNECTION_PROPERTY.MODE,
    IWorkflowServiceClientConstants.MODE_DYNAMIC);
    properties.put(IWorkflowServiceClientConstants.CONNECTION_PROPERTY.SOAP_END_POINT_ROOT,
    "http://abc.xyz.pqr.us:8001");
    IWorkflowServiceClient client =
    WorkflowServiceClientFactory.getWorkflowServiceClient(WorkflowServiceClientFactory.SOAP_CLIENT,
    properties, null);
    try
    {
    //Create JAVA WorflowServiceClient
    IWorkflowServiceClient wfSvcClient = WorkflowServiceClientFactory.getWorkflowServiceClient(
    WorkflowServiceClientFactory.REMOTE_CLIENT);
    //Get the task query service
    ITaskQueryService querySvc = wfSvcClient.getTaskQueryService();

    //Login as skyadav
    IWorkflowContext ctx = querySvc.authenticate("skyadav","welcome1".toCharArray(),null); **//this is point where i get the error.**
    //Set up list of columns to query
    List queryColumns = new ArrayList();
    queryColumns.add("TASKID");
    queryColumns.add("TASKNUMBER");
    queryColumns.add("TITLE");
    queryColumns.add("OUTCOME");
    //Query a list of tasks assigned to jstein
    List tasks = querySvc.queryTasks(ctx,
    queryColumns,
    null, //Do not query additional info
    ITaskQueryService.AssignmentFilter.MY,
    null, //No keywords
    null, //No custom predicate
    null, //No special ordering
    0, //Do not page the query result
    0);
    //Get the task service
    ITaskService taskSvc = wfSvcClient.getTaskService();
    //Loop over the tasks, outputting task information, and approving any
    //tasks whose outcome has not been set...
    for(int i = 0 ; i < tasks.size() ; i ++)
    {
    Task task = (Task)tasks.get(i);
    int taskNumber = task.getSystemAttributes().getTaskNumber();
    String title = task.getTitle();
    String taskId = task.getSystemAttributes().getTaskId();
    String outcome = task.getSystemAttributes().getOutcome();
    /* if(outcome == null)
    {
    outcome = "APPROVE";
    taskSvc.updateTaskOutcome(ctx,taskId,outcome);
    }*/
    System.out.println("Task #"taskNumber" ("title") is "+outcome);
    }

    }
    catch (Exception e)
    {
    //Handle any exceptions raised here...
    System.out.println("Caught workflow exception: "+e.getMessage());
    }
    }
    }

    When trying to debug where it threw the error
    // IWorkflowContext ctx = querySvc.authenticate("skyadav","welcome1".toCharArray(),null); **//this is point where i get the error.**
    Caught workflow exception: javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3://localhost:7001: Destination unreachable; nested exception is:
    java.net.ConnectException: Connection refused: connect; No available router to destination]
    Process exited with exit code 0.
    Reading further I understood that i also need to set up a Workflow client Configuration, which i have done using a MAP but i found that we also need to configure wf_client_config.xml
    Can anyone one put some light where i need to keep this file and what sort of configurationis required in it .

    Thanks
    Sumit Yadav

    ReplyDelete
  13. Hi,

    Using the API for QueryTask in the previous post, i would like to know how to use the Predicate or Keyword.

    What i want is to use severeal fileds (not flex fields or title, but other fileds in payload) to make my research.

    Can you help me?

    ReplyDelete