ADF Task Flow Exception Handling

Hi ,
I tried a very simple thing for taskFlow exception handling.
I created a bounded task flow with a page fragment (View1.jsff) and another view which is the TaskFlow ExceptionHandler (error.jsff).
The view1.jsff has a button whose action is bound to the backing bean. In the backingBean method I deliberately do division by 0.
Since this is an unHandled exception, I would have expected the control to come to error.jsff. But, instead I am shown a pop up box with the error message.
Why is the control not getting redirected to error.jsff ?
Thanks.
S.Srivatsa Sivan

Hi Frank , im having the same problem.
I want to handle exceptions that occur while navigating task flows (example: A user navigates to a task flow that he/she does not have view permission)
I tried using a view activity and method activity as the exception handler but none of them works, the exception is still not handles. It does not even navigate to the exception handler on the task flow.
on the view page i have:
<af:panelStretchLayout topHeight="50px" id="psl1">
<f:facet name="top">
<af:panelGroupLayout layout="scroll"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
id="pgl1">
Error message:  
<af:outputText value="#{controllerContext.currentRootViewPort.exceptionData.message}" id="ot2"/>
</af:panelGroupLayout>
</f:facet>
<f:facet name="center">
<af:outputText value="#{my_exception_Handler.stackTrace}" id="ot1"/>
<!-- id="af_one_column_header_stretched" -->
</f:facet>
</af:panelStretchLayout>
I tried getting the error message and stacktrace from the controllerContext via EL like this "#{controllerContext.currentRootViewPort.exceptionData.message}"
and from the controllerContext class in functions that i have declared in my_exception_Handler class like this
" ControllerContext ctx = ControllerContext.getInstance();
ViewPortContext vCtx = ctx.getCurrentViewPort();
if(vCtx.getExceptionData() != null){
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
vCtx.getExceptionData().printStackTrace(printWriter);
return stringWriter.toString();"
But all this dont even matter because when the exception occurs on the task flow it does not navigate to the default exception handler.
thanks for your interest and help in advance.
Cyborg_0912

Similar Messages

  • Task flow exception handler

    Hi all,
    I'm trying to specify a method activity as an exception handler in the adfc-config. The problem is if I specify a view activity or a bounded task flow as the exception handler then it works fine, but if the exception handler is a method activity then it is not recognized. What could be the cause?. I need to execute a method when an exception occurs.
    Version: 11.1.2.0
    Edited by: NewBee on Apr 23, 2013 10:37 AM

    Hi,
    there should not be a problem with this and I recently did the same with JDeveloper 11g R2 (not sure which version of JDeveloper you use because you did not share this information). I assume you just marked the method activity as an exception handler without any other configuration? If so then set a break point to the managed bean method that you access from the method activity to see if it actually stops there. Also note that not all exceptions are handled by the controller exception handler. E.g an exception during render response phase (typically an exception in a managed bean) is not handled by the controller. Also you need to avoid the managed bean that handles the exception to itself throw one. This however you will see when debugging the bean.
    Frank

  • Error while deploying the ADF task flow project based on a SOA human task

    Hi,
    I created a SOA project with a BPEL process containing Human task, deployed it and could able to test it successfully. I created ADF task flow project based on the Human task created in the earlier project and tried to deploy it. It is giving the following error. The idea is to display the task details in BPM worklist.
    [04:10:53 PM] [Deployer:149034]An exception occurred for task [Deployer:149026]deploy application RevisionApprovalMgmtTaskFlow [Version=V2.0] on soa_server1.: null.
    [04:10:53 PM] Weblogic Server Exception: weblogic.application.WrappedDeploymentException
    [04:10:53 PM] See server logs or server console for more details.
    [04:10:53 PM] weblogic.application.WrappedDeploymentException
    [04:10:53 PM] #### Deployment incomplete. ####
    [04:10:53 PM] Deployment Failed
    The server log shows this detailed error.
    java.lang.IllegalArgumentException
         at oracle.xml.xpath.JXPathExpression.evaluate(JXPathExpression.java:178)
         at oracle.xml.xpath.JXPath.evaluate(JXPath.java:288)
         at oracle.security.jps.internal.config.xml.XmlConfigurationFactory.initialize(XmlConfigurationFactory.java:425)
         at oracle.security.jps.internal.config.xml.XmlConfigurationFactory.getConfiguration(XmlConfigurationFactory.java:149)
         at oracle.security.jps.internal.config.deploy.CredentialStoreDeployer.getCredentialStore(CredentialStoreDeployer.java:56)
         at oracle.security.jps.wls.listeners.CredentialDeployment.migrate(CredentialDeployment.java:83)
         at oracle.security.jps.wls.listeners.JpsApplicationLifecycleListener.migrateAppCredential(JpsApplicationLifecycleListener.java:137)
         at oracle.security.jps.wls.listeners.JpsApplicationLifecycleListener.preStart(JpsApplicationLifecycleListener.java:78)
         at weblogic.application.internal.flow.BaseLifecycleFlow$PreStartAction.run(BaseLifecycleFlow.java:277)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.application.internal.flow.BaseLifecycleFlow$LifecycleListenerAction.invoke(BaseLifecycleFlow.java:194)
         at weblogic.application.internal.flow.BaseLifecycleFlow.preStart(BaseLifecycleFlow.java:57)
         at weblogic.application.internal.flow.HeadLifecycleFlow.prepare(HeadLifecycleFlow.java:279)
         at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:609)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:185)
         at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:53)
         at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:197)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:89)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
         at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
         at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Apart from these, I have Model and View Controller projects in the application. If I create the ADF task flow based on a Human task in another sample application, it works fine. Only in this application, it does not work. Not sure what this error is. Any ideas?
    Thanks,
    Manoj

    What I suggest is go into EM and undeploy this composite and all versions. (Only if you don't want the existing ones). Then redeploy your process. This will avoid the version conflict and create a new version. 1.0. Then the next time you try and deploy you need to either specify a new version or check the box to say the version can be over written.
    cheers
    James

  • Problem in working with adf task flow..

    hi all i m trying to run jsf page using adf task flow it is giving me belove error and not running the page what should i do now?
    Target URL -- http://localhost:7101/Myapp-ViewController-context-root/faces/head.jsf
    <ViewHandlerImpl> <_checkTimestamp> Apache Trinidad is running with time-stamp checking enabled. This should not be used in a production environment. See the org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION property in WEB-INF/web.xml
    <LifecycleImpl> <_handleException> ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase RESTORE_VIEW 1
    javax.faces.view.facelets.FaceletException: Error Parsing //C:/JDeveloper/system11.1.2.2.39.61.83.1/o.j2ee/drs/Myapp/ViewControllerWebApp.war/head.jsf: Error Traced[line: 21] <Line 21, Column 26>: XML-20121: (Fatal Error) End tag does not match start tag 'af:panelSplitter'.
         at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:394)
         at com.sun.faces.facelets.compiler.SAXCompiler.doMetadataCompile(SAXCompiler.java:377)
         at com.sun.faces.facelets.compiler.Compiler.metadataCompile(Compiler.java:130)
         at com.sun.faces.facelets.impl.DefaultFaceletFactory.createMetadataFacelet(DefaultFaceletFactory.java:319)
         at com.sun.faces.facelets.impl.DefaultFaceletFactory.access$200(DefaultFaceletFactory.java:92)
         at com.sun.faces.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:168)
         at com.sun.faces.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:166)
         at com.sun.faces.facelets.impl.DefaultFaceletCache$2.newInstance(DefaultFaceletCache.java:94)
         at com.sun.faces.facelets.impl.DefaultFaceletCache$2.newInstance(DefaultFaceletCache.java:89)
         at com.sun.faces.util.ExpiringConcurrentCache$1.call(ExpiringConcurrentCache.java:99)
         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
         at com.sun.faces.util.ExpiringConcurrentCache.get(ExpiringConcurrentCache.java:114)
         at com.sun.faces.facelets.impl.DefaultFaceletCache.getMetadataFacelet(DefaultFaceletCache.java:135)
         at com.sun.faces.facelets.impl.DefaultFaceletCache.getMetadataFacelet(DefaultFaceletCache.java:62)
         at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:252)
         at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:201)
         at com.sun.faces.application.view.ViewMetadataImpl.createMetadataView(ViewMetadataImpl.java:114)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._restoreView(LifecycleImpl.java:749)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:346)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:207)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:508)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    <LifecycleImpl> <_reportFailureForMissingViewRoot> ADF_FACES-30179:For more information, please see the server's error log for an entry beginning with: The UIViewRoot is null. Fatal exception during PhaseId: RESTORE_VIEW 1.
    javax.faces.view.facelets.FaceletException: Error Parsing //C:/JDeveloper/system11.1.2.2.39.61.83.1/o.j2ee/drs/Myapp/ViewControllerWebApp.war/head.jsf: Error Traced[line: 21] <Line 21, Column 26>: XML-20121: (Fatal Error) End tag does not match start tag 'af:panelSplitter'.
         at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:394)
         at com.sun.faces.facelets.compiler.SAXCompiler.doMetadataCompile(SAXCompiler.java:377)
         at com.sun.faces.facelets.compiler.Compiler.metadataCompile(Compiler.java:130)
         at com.sun.faces.facelets.impl.DefaultFaceletFactory.createMetadataFacelet(DefaultFaceletFactory.java:319)
         at com.sun.faces.facelets.impl.DefaultFaceletFactory.access$200(DefaultFaceletFactory.java:92)
         at com.sun.faces.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:168)
         at com.sun.faces.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:166)
         at com.sun.faces.facelets.impl.DefaultFaceletCache$2.newInstance(DefaultFaceletCache.java:94)
         at com.sun.faces.facelets.impl.DefaultFaceletCache$2.newInstance(DefaultFaceletCache.java:89)
         at com.sun.faces.util.ExpiringConcurrentCache$1.call(ExpiringConcurrentCache.java:99)
         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
         at com.sun.faces.util.ExpiringConcurrentCache.get(ExpiringConcurrentCache.java:114)
         at com.sun.faces.facelets.impl.DefaultFaceletCache.getMetadataFacelet(DefaultFaceletCache.java:135)
         at com.sun.faces.facelets.impl.DefaultFaceletCache.getMetadataFacelet(DefaultFaceletCache.java:62)
         at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:252)
         at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:201)
         at com.sun.faces.application.view.ViewMetadataImpl.createMetadataView(ViewMetadataImpl.java:114)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._restoreView(LifecycleImpl.java:749)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:346)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:207)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:508)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

    Hi,
    Do you see this?
    javax.faces.view.facelets.FaceletException: Error Parsing //C:/JDeveloper/system11.1.2.2.39.61.83.1/o.j2ee/drs/Myapp/ViewControllerWebApp.war/head.jsf: Error Traced[line: 21] <Line 21, Column 26>: XML-20121: (Fatal Error) End tag does not match start tag 'af:panelSplitter'.Check out the code and end af:panelSplitter.
    -Arun

  • Separate project for each ADF task flow?!

    Hi,
    We have a BPM process application which is having a few human tasks. The form for each of the human tasks is similar. We’d like to be able to share some page fragments or code between them and create single web application to handle all the human tasks for this BPM process application. Then I found the following in the Oracle document “Developer’s Guide for Oracle SOA Suite 11g Release 1 (11.1.1.4.0)”:
    “If the SOA composite contains multiple human tasks, create a separate project for each ADF task flow associated with each human task.”
    I wonder if we have to do that and if so, what is the reason.
    Do you have any clue? Please help.
    Thanks a lot,
    Helen

    This is answered in SOA forum: Re: Why Dev Guide says "create a separate project for each ADF task flow ..."

  • Why Dev Guide says "create a separate project for each ADF task flow ..."

    Hi,
    We have a BPM process application which is having a few human tasks. The form for each of the human tasks is similar. We’d like to be able to share some page fragments or code between them and create single web application to handle all the human tasks for this BPM process application. Then I found the following in the Oracle document “Developer’s Guide for Oracle SOA Suite 11g Release 1 (11.1.1.4.0)”:
    “If the SOA composite contains multiple human tasks, create a separate project for each ADF task flow associated with each human task.”
    I wonder if we have to do that and if so, what is the reason.
    Do you have any clue? Please help.
    Thanks a lot,
    Helen

    Hi Helen
    1. I do not know the reason why they mentioned like separate project for each human task. NO, this is not required and we can have just one UI Project like MyTaskForms and have all the JSPs in this same project for each Human Task.
    2. On our side, we have like 10 Human Tasks, all using the same Payload. So we have 10 .task file. For the very first .task file, we used Auto Generate Project and gave project name like OurAppTaskForms. The reason we did this is, so that it adds all the required dependent libraries, tag libs etc properly. For all remaining 9 .tasks file, we did NOT use auto generate. Instead we used standard New -> JSF From Human Task and select one task at a time and follow the steps. These steps are covered in the online documentation. At the end in our BPM App, we have just one UI Project with all the 10 screens.
    3. ALSO, all the 10 screens have some common data. This we put in a reusable JSF Fragment page. And associated a custom Managed Bean for this to set and get values from this fragment and also some Actions for some buttons in the JSF. Then we included this JSF in each taskform jsf file, uisng the include tag. We added this include tag, somewhere in the top. So all screens share common jsf fragment page.
    4. We can refine the above stuff further. As per above, we still have 10 JSF screens for each one of the 10 .tasks. Ofcourse all these 10 jsf have same common jsf fragment. BUT instead of 10 individual jsf screens, we can have only ONE Jsf screen also. Refer online docs for the details. The challenging part is, since we have only one jsf, there may be some bussiness stuff, validatoin stuff to take care of in custom ValidationCallback Handler classes. Say for Task1, we had to show some buttons, but NOT for Task2. So we had to handle this logic. Also in validation call back, we can always get each Tasks, title also. So we can workaround this issue also. We are in the process of doing this right now. But first 3, we already did and they are working fine.
    My personal suggestion is first go with single jsf fragment and include in all tasks jsp files. Any changes to common elements need to make only in one place i.e fragment page.
    Thanks
    Ravi Jegga

  • Oracle ADF task flow setup failing- deployment issue

    Hi Experts,
    We are facing issue while deploying the ADF taskflow to Oracle webcenter portal/application server.
    We will need your help to get any pointers from your Oracle network to help resolve.
    Details of issue are as below.
    Please help ASAP.
    Problem Statement: Issue in the ADF taskflow while it is deployed on Oracle Webcenter Portal/Application server (the ADF taskflow is fetching data from PL/SQL procedure using table/record objects as OUT parameter, which is running fine in Jdeveloper).
    Problem Description:
    From ADF task flow we are invoking a PL/SQL procedure, which is returning a PL/SQL objects as an OUT parameter, some of these objects are of TABLE TYPE and one of RECORD TYPE. We are invoking this oracle procedure and fetching the object using jdbc. The object to which we are mapping this PL/SQL object is a custom java type object. We are using Jdeveloper 11.1.1.4 and Oracle ADF for this and we are able to successfully fetch the object using the code snippet #1 attached below.
    However, when we deploying the same code, i.e. the above ADF task flow in the Webcenter Portal server 11.1.1.4, inside the Webcenter portal application, it doesn’t work and give the below error, error snippet #2 below.
    Options tried: Initially we were using oracle.sql.STRUCT to handle the PL/SQL object, we tried changing this to weblogic.jdbc.wrapper.Struct and also java.sql.Struct, however we are still getting same error.
    The objective is to get the data from PL/SQL procedure in objects (record, table) as OUT parameters in ADF taskflow deployed on Oracle webcenter portal/application server.
    ******Code Snippet #1**************************
    txn = getDBTransaction();
    Connection con =
    ((DBTransactionImpl) txn).getPersistManagerConnection();
    st = (OracleCallableStatement) con.prepareCall(callfetchOA);
    st.setString(1, so_number);
    st.setString(2,
    generate_pdf); //generate_pdf should be passed as N in case of FetchOA and Y in case of Generate PDF
    st.setString(3, so_line_id);
    st.registerOutParameter(4, OracleTypes.STRUCT, headerTrxObj);
    st.registerOutParameter(5, OracleTypes.ARRAY, lineTrxTypeObj);
    st.registerOutParameter(6, OracleTypes.ARRAY, fetchFeeLineTypeObj);
    st.registerOutParameter(7, OracleTypes.ARRAY, fetchAdSizeTypeObj);
    st.registerOutParameter(8, OracleTypes.ARRAY, fetchChannelTypeObj);
    st.registerOutParameter(9, OracleTypes.ARRAY, fetchMarketTypeObj);
    st.registerOutParameter(10, OracleTypes.ARRAY, slaTypeObj);
    st.registerOutParameter(11, OracleTypes.NUMBER);
    st.registerOutParameter(12, OracleTypes.VARCHAR);
    st.execute();
    Object[] header = st.getSTRUCT(4).getAttributes();
    ***** error snippet #2**********************
    java.lang.ClassCastException: weblogic.jdbc.wrapper.Struct_oracle_sql_JAVA_STRUCT cannot be cast to oracle.sql.STRUCT
    at weblogic.jdbc.wrapper.CallableStatement_oracle_jdbc_driver_OracleCallableStatementWrapper.getSTRUCT(Unknown Source)
    at com.valassis.service.BaseAppModuleImpl.fetchOrder(BaseAppModuleImpl.java:1496)
    at com.valassis.model.beans.vo.OrderVO.fetchOrder(OrderVO.java:177)
    at com.valassis.model.beans.vo.OrderVO.testSaveOrder(OrderVO.java:399)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.el.parser.AstValue.invoke(Unknown Source)
    at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
    at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46)
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
    at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
    at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:879)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:312)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:185)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.portlet.client.adapter.adf.ADFPortletFilter.doFilter(ADFPortletFilter.java:32)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.webcenter.framework.events.dispatcher.EventDispatcherFilter.doFilter(EventDispatcherFilter.java:44)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.wcps.client.PersonalizationFilter.doFilter(PersonalizationFilter.java:75)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.webcenter.content.integration.servlets.ContentServletFilter.doFilter(ContentServletFilter.java:168)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.webcenter.lifecycle.filter.LifecycleLockFilter.doFilter(LifecycleLockFilter.java:151)
    Thanks
    Phani

    Maybe this can help you: http://mike.hostetlerhome.com/2007/02/12/weblogic-oracle-and-blobs-oh-my/
    It shows how to obtain a vendor object from the weblogic wrapped instance.
    From the blog
    weblogic.jdbc.wrapper.Blob cast1 = (weblogic.jdbc.wrapper.Blob) o;
    BLOB myblob = (BLOB) cast1.getVendorObj();

  • How to call an adf task flow in a commandNavigation tab

    Hi,
    I have created an adf task flow, I am able to invoke the same on click of a link.
    Now I have a tab and some sub tabs under it. I want to open this adf task flow on click of one of these sub tabs.
    For this I have added a property of type CommandNavigationItem in parallel with exising subtabs and on the actionListener of this property I am calling the method of the adf task flow.
    But it is not working. When I click on the sub tab created by me I get this error on the logs :
    ADF_FACES-60096:Server Exception during PPR, #1[[javax.servlet.ServletException
    Please help/guide how to solve this issue.

    Hi,
    do you use the XML Menu Model? If so then the task flow must be referenced from a navigaqtion case in the unbounded task flow you turn into the menu model
    Frank

  • Is ADF task flows available in jdev 10.1.3.3.

    Hie
    I was just wondering if ADF task flow is available in jdeveloper 10g? if yes then how can i use it?
    Vik

    Vik,
    transactions are handled in the current version as well. In JDeveloper 11 however you can add an isolated transaction context. In fact the use of page regions and page fragments is unique in JDeveloper 11 (though we had regions in JDeveloper 10.1.3 as well, but not supported).
    You can work with subviews in JSF to include other parts of a screen, but this is not the same as using Jeveloper 11 taskflows. So I guess the answer is no you need to have JDeveloper 11
    Frank

  • Creation an ADF Task Flow Based on a Human Task

    Hello!
    While creating ADF Task Flow Based on a Human Task, I can't bind New TaskFlow to task, which I choose in Dialog.
    Details:
    I Have:
    BPM Project with PackageCreation.task
    ADF Project in Same Application
    I do:
    1. in Application Navigator right click on ADF Project -> New -> Web Tier -> JSF -> ADF Task Flow Based on a Human Task
    in creation Dialog I choose PackageCreation.task and Don't change name of New TaskFlow (automatically JDeveloper set this name to PackageCreation_TaskFlow)
    I have After that:
    new ADF Task Flow and my old PackageCreation.task.
    Question:
    Why my Task don't bind to created ADF task Flow based on it?
    I think, that while creating ADF Task Flow Based on a Human Task it has to change my task, writing some thing like This (inside xml):
    <taskFlowFileLocation>file:/D:/JDeveloper/mywork/SalesQuoteLab/EnterQuoteUILab/public_html/WEB-INF/EnterQuoteDetails_TaskFlow.xml</taskFlowFileLocation>
    That xml element is creating in xml of *.task, while making auto-generation form for human task in BPM Project.

    Juan C,
    I use JDeveloper 11g Release 1.
    May be I didn't explained my question correctly.
    taskdetails1 is creating, and in Data Controls I have objects of my BPM Human Task Payload.
    But in that file "PackageCreation.task" in source I can't find any link to instantly created TaskFlow.xml in my UI project.
    So, I have
    NEW project "PackageCreationUI" with PackageCreation_TaskFlow.xml in it (and TaskDetails1 file too).
    AND Did't Changed PackageCreation.task in BPM Project.
    If I use *"BPM form creation wizard"*, after creating project and TaskFlow in it I see Changes in PackageCreation.task in BPM Project, something like that:
    <taskFlowFileLocation>file:/C:/JDeveloper/mywork/testApp/PackageCreationUI/public_html/WEB-INF/PackageCreation_TaskFlow.xml</taskFlowFileLocation>

  • What is difference between ADF Task Flow and Faces-Config - when delpoy ?

    What is difference between ADF Task Flow and Faces-Config? When I create navigation between pages with ADF task flow then the navigation don't work when I deploy my application to Weblogic 10.3. When I use default server then navigation works fine. With Faces_config in both situations all works ok - on Stanalone server and default.
    Where is the problem?
    Best regards!

    Shay, I don't use both faces-config and adf task flow! When I failed with task flow I tried faces-config.
    I have active on my weblogic - adf.oracle.domain(1.0,11.1.1.0.0). This is the right ADF? If yes then where is the problem?
    Best regards!

  • Why : Data Control entry not expandable/empty - ADF Task flow based on HT.

    Hi All,
    I've hoping to create an ADF Task flow based on a human task. I have a stand alone ADF application within the ViewController of which I am attempting to create this task flow. The resultant data control entry doesn't seem to be expandable.
    Questions
    1. When creating an ADF Taskflow based on a human task, should it always be within a project in the same application as the SOA components?
    2. If no, is the resultant human task data control empty or not expandable because the xsd for the HT is based on the MDS? I have configured all the MDS connections within my application.
    JDev : 11.1.1.4
    Thanks
    PP

    Hi,
    Answers :-
    1. No, it is not necessary that your ADF Taskflow based on Human Task should be in the same application where the SOA Project Resides. But for the deployment of that ADF Taskflow you will need the SOA Project.You can add that project whenever you want to deploy.
    2. It might be the cause due to the MDS Configuration .
    Do one thing , while creating the ADF Taskflow based on Human Task , you do select the .task file via the file system not from the MDS.
    If you will select the .Task file of your soa project then it will ask you to name the Taskflow, just name the taskflow as you want and say ok.
    After creating the taskflow, it will add a lot of xml files in your project and it will create a data control of it.
    Hope it helps!!
    Regards,
    Shah

  • Create Custom ADF Task Flow for BPM

    Hi,
    I'm working an project on BPM and I'm required to create a custom ADF task flow with multiple views based on the human tasks in BPM. Since I'm new to ADF, could some one please give me some pointers?
    Thanks,
    Debojit

    Hi,
    You have to implement your own custom worklist screens for such a subject. As you know the OOTB worklist screen shows the logged-in users' assigned, etc. tasks. You have to implement the API of SOA workflow.
    You can check Mark Nelson's blogs on Redstack to accomplish this. Hope this is the answer of the problem you are looking for.

  • Create ADF Task Flow for Human task outside of SOA Composite

    Hi,
    Is there any way you can create ADF Task Flow form (for the task Details to be display in worklistapp) for a Human task out side of the SOA Composite applicaiton?. I know we can create ADF Task flow form for task details based on Human Task in SOA composite application. But I dont want to do that. I dont want to keep any association between Human task and ADF Task Flow.
    If there is a way to do this, How can we assiciate this ADF Task flow form with worklist applicaiton?
    Thanks
    --Sreeny                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    By using these services appropriately:
    http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224/bp_workflow.htm

  • Single adf task flow portlet with multiple pages and paramter from url

    Hi ,
    I have made a adf task flow portlet with a parameter.
    I have made a portal applcation and added multiple pages . in each of the page I am consuming that portlet through wsrp2.
    I have mapped the task flow parameter in page bindings of the pages with #{param.code}. where code is the get parameter.
    I have edited navigatinoal template so that when i click the pages , code parameter also get added in the url.
    issue
    When I run the applcation and visits first page with get parameter i get the right result. but when i click the on the other page which has some other value for the same get parameter , it doesnt display the value. But the other page shows me correct value if I go this page first but the later page doesnt display any value.
    thanks

    1001446 wrote:
    Hi ,
    I have edited navigatinoal template so that when i click the pages , code parameter also get added in the url.Can you paste the code from the template here?

Maybe you are looking for