PopUp in Bounded TaskFlows

Hi,
I basically have
- jdeveloper 11.1.2.1.0
- searchTaskFlow with a search.jsff
- detailTaskFlow whith a detail.jsff
Can i...
call detailTaskFlow in a popup from searchTaskFlow?
I try it, but it not works
(Behavior --> run as Dialog = true, but jdeveloper say "can not call bounded task flow....")
Thankse

Hi,
you need to refactor the detail to a bounded task flow with pages (jspx). You can use a right mouse click in the task flow diagrammer for this. There is a manual option to launch a task flow with page fragments in a dialog. Its documented here:
http://www.oracle.com/technetwork/developer-tools/adf/popupregionpattern-394585.pdf
Frank

Similar Messages

  • Refresh of a bound taskflow in a popup results in an error.

    I have a bounded taskflow in a popup which needs to be refreshed every time the parameter templateName is updated.
    <taskFlow id="list_wkbk_workflow1" taskFlowId="/WEB-INF/list_wkbk_workflow.xml#list_wkbk_workflow" Refresh="ifNeeded"
    xmlns="http://xmlns.oracle.com/adf/controller/binding">
    <parameters>
    <parameter id="templateName" value="#{ListWbkController.templateName}"
    xmlns="http://xmlns.oracle.com/adfm/uimodel"/>
    </parameters>
    </taskFlow>
    I get this error each time the region is refreshed.
    java.lang.IllegalStateException: Unable to queue marking of region as dirty because of a problem (see included cause).null
    at oracle.adf.view.rich.model.RegionModel._markComponentAsPartialTarget(RegionModel.java:320)
    at oracle.adf.view.rich.model.RegionModel.markRegionDirty(RegionModel.java:221)
    at oracle.adf.controller.internal.binding.TaskFlowRegionModel.dirtyRegion(TaskFlowRegionModel.java:436)
    at oracle.adf.controller.internal.binding.TaskFlowRegionController.refreshRegion(TaskFlowRegionController.java:91)
    at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:2913)
    at oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2651)
    at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.prepareRender(PageLifecycleImpl.java:548)
    at oracle.adf.controller.v2.lifecycle.Lifecycle$9.execute(Lifecycle.java:222)
    at oracle.adfinternal.controller.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:190)
    at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.mav$executePhase(ADFPhaseListener.java:19)
    at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$5.before(ADFPhaseListener.java:393)
    at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.beforePhase(ADFPhaseListener.java:58)
    at oracle.adfinternal.controller.faces.lifecycle.ADFLifecyclePhaseListener.beforePhase(ADFLifecyclePhaseListener.java:42)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:218)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:193)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
    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:292)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)...
    Caused by: java.lang.reflect.InvocationTargetException
    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 oracle.adf.view.rich.model.RegionModel._markComponentAsPartialTarget(RegionModel.java:313)
    ... 47 more
    Caused by: java.lang.IllegalArgumentException: ADF_FACES-60041:Phase RENDER_RESPONSE 6 has already started or passed; at least at phase RENDER_RESPONSE 6.
    at oracle.adfinternal.view.faces.context.RichPhaseListener._queueTaskForPhase(RichPhaseListener.java:175)
    at oracle.adfinternal.view.faces.context.RichPhaseListener.queueTaskForBeforePhase(RichPhaseListener.java:144)
    ... 52 more
    I did not see this error with an earlier version, I see it with the Build JDEVADF_MAIN_GENERIC_081202.1750.*5232* build. Any help is appreciated.
    Thanks,
    Suneetha

    Hi,
    The D810 requires Camera Raw 8.6 or later - the latest version that is compatible with Photoshop Elements 12 is Camera Raw 8.5 as far as I can see.
    You need to either buy a new version of Photoshop Elements or use the free Adobe DNG converter.
    DNG  Converter 8.8
    Win – http://www.adobe.com/support/downloads/detail.jsp?ftpID=5888
    Mac – http://www.adobe.com/support/downloads/detail.jsp?ftpID=5887
    Useful Tutorial
    http://www.youtube.com/watch?v=0bqGovpuihw
    Brian

  • Popup ReturnListener, get taskflow return activity

    Hi OTN,
    On my ADF JSF page there is a button, calling a bounded taskflow in a popup.
    In button's popup ReturnListener I need to know which return activity ended the taskflow.
    How can I retrieve this information?
    I expected the ReturnEvent object to hold this information, seems but it doesn't.
        public void createInfPopupReturnListener(ReturnEvent e) {
            System.out.println("e = " + e);       
            System.out.println("e.getReturnValue() = " + e.getReturnValue());
            System.out.println("e.getReturnParameters() = " + e.getReturnParameters());
            if(e.getReturnParameters() != null) {
                System.out.println("e.getReturnParameters().size() = " + e.getReturnParameters().size());
    e = org.apache.myfaces.trinidad.event.ReturnEvent[component=RichCommandToolbarButton[UIXFacesBeanImpl, id=ctb1], returnValue=null]
    e.getReturnValue() = null
    e.getReturnParameters() = {}
    e.getReturnParameters().size() = 0JDeveloper 11.1.1.3
    Thanks.

    Hi Frank,
    I have defined a taskflow return value as a pageFlowScoped bean variable.
    <return-value-definition id="__98">
          <name id="__97">returnValue1</name>
          <value>#{pageFlowScope.CreateInfPageFlowBean.returnValue}</value>
          <class>java.lang.String</class>
        </return-value-definition>With a following taskflow bean code:
        private String returnValue;
        public void setOkReturnValue() {
            returnValue = "ok";
        public void setCancelReturnValue() {
            returnValue = "cancel";
        public String getReturnValue() {
            return this.returnValue;
        }And placed setOk and setCancel method-call activities before two task-flow-return activities.
    Is that the right way?

  • Opening a bounded taskflow in a new browser window.

    Hello,
    I have links in my application that open the application in a new browser window.
    window.open(/MFRAME/faces/adf.task-flow?adf.tfId=moduleDataMan&adf.tfDoc=/WEB-INF/flows/moduleDataMan/moduleDataMan.xml, "w"+new Date().getTime());
    When I open the link in the new window all beans become with null values.
    It used to work before a big list of bug fixes. But somehow this broke. Any ideas what can be the issue. No errors in the log when I open a new window. The old window is working without problems. Only one of the bounded taskflows is working after open in a new window.
    Any ideas.
    Jdeveloper version 11.1.2.3.0

    <SCRIPT language="JAVASCRIPT">But this is a Java forum, not a Javascript forum.

  • Jdev 12.1.2.0.0: Bounded taskflow not listed in Regions in Components pallette

    Using jdev versino 12.1.2.0.0. Created a project (Provider.jpr) with a bounded task flow. Created file system. Added this project's jar as ADF library to another consuming project (Consumer.jpr).Now when I open a jspx within Consumer, and open Components pallette, > select Provider.jar from dropdown, in the Regions section, the bounded taskflow is not listed.
    However, when adfc-config is opened, the bounded taskflow shows up in Components palette when the jar is selected. Is this a bug or is there a change in behavior from the previous versions?

    Hi,
    Is it that technology support in ADF is Jdev-dependent. I mean when we say Jdev 12C do we mean it carries ADF-enhancements? Is there any clear and concise documentation of the changes from 11g to 12c.
    Yes it is as each JDeveloper release is an evolution in technology. JDeveloper 12c and 11g R2 both support JavaServer Faces 2 which actually introduced Facelets. So its not necessarily a new feature enforced by JDeveloper but the current standard of JSF. Furthermore the JSF standard will continue with Facelets so that it makes sense to adopt Facelets for new application developments (or in 12c to migrate existing JSPX projects to facelets, which is supported declaratively)
    Frank

  • Bounded Taskflow Exception Handler not working with Page Fragements

    I have one bounded - taskflow task-flow-definition
    <?xml version="1.0" encoding="windows-1252" ?>
    <adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
      <task-flow-definition id="task-flow-definition">
        <default-activity>view1</default-activity>
        <managed-bean>
          <managed-bean-name>backing_main</managed-bean-name>
          <managed-bean-class>view.backing.Main</managed-bean-class>
          <managed-bean-scope>pageFlow</managed-bean-scope>
        </managed-bean>
        <managed-bean>
          <managed-bean-name>backing_view1</managed-bean-name>
          <managed-bean-class>view.backing.View1</managed-bean-class>
          <managed-bean-scope>pageFlow</managed-bean-scope>
        </managed-bean>
        <managed-bean>
          <managed-bean-name>backing_view2</managed-bean-name>
          <managed-bean-class>view.backing.View2</managed-bean-class>
          <managed-bean-scope>pageFlow</managed-bean-scope>
        </managed-bean>
        <exception-handler>view2</exception-handler>
        <view id="view1">
          <page>/view1.jsff</page>
        </view>
        <view id="view2">
          <page>/view2.jsff</page>
        </view>
        <use-page-fragments/>
      </task-flow-definition>
    </adfc-config>view1.jsff contains one command button, which calls one ActionListener
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <af:commandButton text="commandButton 1" actionListener="#{pageFlowScope.backing_view1.callMyFunction}"
                        binding="#{pageFlowScope.backing_view1.commandButton1}"
                        id="commandButton1"/>
      <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_view1-->
    </jsp:root>view1.java callMyFunction throws an Exception
        public void callMyFunction(ActionEvent event) throws Exception{
            throw new Exception();
        }view2.jsff is an exception handler
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <af:activeOutputText value="Exception Occured"
                           binding="#{pageFlowScope.backing_view2.activeOutputText1}"
                           id="activeOutputText1"
                           inlineStyle="font-size:xx-large; color:red;"/>
      <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_view2-->
    </jsp:root>above taskflow is dragged-drop as a Region in one file main.jspx
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <jsp:directive.page contentType="text/html;charset=windows-1252"/>
      <f:view>
        <af:document binding="#{pageFlowScope.backing_main.document1}"
                     id="document1">
          <af:form binding="#{pageFlowScope.backing_main.form1}" id="form1">
            <af:region value="#{bindings.taskflowdefinition1.regionModel}"
                       id="taskf1"
                       binding="#{pageFlowScope.backing_main.taskf1}"/>
          </af:form>
        </af:document>
      </f:view>
      <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_main-->
    </jsp:root>*pressing a commandButton on view1.jsff throws an Exception as expected but does not go to exceptionHandler [view2.jsff]*
    However, this does work with Bounded Task-Flow without page fragments , view1.jspx contains one button, calling one method which throws an Exception,
    view2.jspx is an Exception Handler, and in this case it redirects to the view2.jspx [error page]
    any ideas?
    thanks

    Hi,
    Pretty much. However, you got the event part wrong, which is mostly my fault here. First, let put down some general JSF facts about event handling.
    1. http://java.sun.com/javaee/5/docs/api/javax/faces/component/UIComponent.html#queueEvent(javax.faces.event.FacesEvent)
    2. So, basically, queuing an event on a component means queuing it on its parent until you reach the UIViewRoot that will really actually queue it. That strategy allows iterating components to intercept event queued on their children to record the row index as well so that the data model can be synchronized correctly during the broadcast phase (see http://java.sun.com/javaee/5/docs/api/javax/faces/component/UIData.html#queueEvent(javax.faces.event.FacesEvent) and http://java.sun.com/javaee/5/docs/api/javax/faces/component/UIData.html#broadcast(javax.faces.event.FacesEvent))
    3. Exceptions that aren't handled by the exception handler are thrown during broadcast or various process* methods.
    So, the catch component must leverage these facts to intercept events queued on its children (by overriding queueEvent method) wrapping the original event in a custom on that flag the catch component itself as the source of the event. The result will be that the broadcast method of the catch component will be called to handle the event. The broadcast method must then unwrap the event (to get the original event), gets the original source, then call originalSource.broadcast(originalEvent) within a try-catch block.
    Does it make any more sense put that way? Note that it's an obscure part of JSF so I cannot make it incredibly simple either.
    Regards,
    ~ Simon

  • Using wildcard in return activity in bounded taskflow

    This is my situation:
    I have a page to which the user may only navigate through a router activity, and I want the user to be authenticated too. So I thought I'd set the router activity (and a filter) and the page inside a bounded taskflow.
    But now I have a problem exiting the bounded taskflow. I don't want to specify all the possible outcomes and create different return activities. I have tabs on each page and I want the user to be able to click a tab and go to that page. But when I set a wildcard the navigation doesn't work.
    What does work is this:
        <control-flow-rule id="__22">
          <from-activity-id id="__23">rr_start</from-activity-id>
          <control-flow-case id="__25">
            <from-outcome id="__28">toAvIndex</from-outcome>
            <to-activity-id id="__24">returnFromStartFlow</to-activity-id>
          </control-flow-case>
        </control-flow-rule>
        <task-flow-return id="returnFromStartFlow">
          <outcome id="__21">
            <name>toAvIndex</name>
          </outcome>
        </task-flow-return>But this allows me only to navigate to AvIndex and I have 4 more pages I want to navigate to.
    What I would like to have is this:
        <control-flow-rule id="__22">
          <from-activity-id id="__23">rr_start</from-activity-id>
          <control-flow-case id="__25">
            <from-outcome id="__28">*</from-outcome>
            <to-activity-id id="__24">returnFromStartFlow</to-activity-id>
          </control-flow-case>
        </control-flow-rule>
        <task-flow-return id="returnFromStartFlow">
          <outcome id="__21">
            <name>*</name>
          </outcome>
        </task-flow-return>and let the unbounded taskflow check the outcome and do the navigation. Could this be possible?

    Wendy,
    have you considered to use a taskflow template for the navigation and use this template for your taskflows?
    Only other thing which come to mind is to set a parameter from inside your flow and check this parameter in a method in the parent flow to decide where to go.
    Timo

  • How can we use Bounded Taskflow in another project.

    Greetings!
    Suppose we have 2 projects: projectA and projectB.
    In projectB we have 4 bounded taskflows: T1, T2, T3, T4.
    In projectA we have a view with a dynamic region, text input for digits and a command button.
    How can we fill our dynamic region with taskflows from projectB, by typing a number of it and pressing a button.
    Thank you.

    Hi,
    Yes, I know.
    However, I'm under the impression that this is not the preferred method. All the documentation describe the ADF library method and I cannot find any description about putting them in a separate project.
    All said, it seems to kind of work, using the 'jar dependencies', except for taskflows with a nested taskflow from another project. An I still need to import them as adf library.
    We'd like to develop our taskflows separately using a short development lifecycle. Putting each of them in a separate application and publish and import them in the main application seems to be too complicated and takes to much time, everytime.
    Am I correct that the shortest development lifecycle is to have all the taskflows in our webapplication, and have full debug and hot-swap functionality?
    Ciao
    Aino

  • How to reinitilize an bounded taskflow with multiple jsff's

    Hi,
    I am having a bounded taskflow which is having two jsff's. On my first jsff i am having an command link on click of which i am navigating to my next jsff, i have added this task flow in my screen in a panel tabbed having 4 tabs .Now i open my first tab in which my taskflow is present and navigate to my second jsff on the button click and then when i change my tab and come back to my 1st tab i want the first jsff to be opened but it shows the second jsff page. How do i reinitilize my taskflow so that i get the first jsff of my taskflow every time i open the tab containing my taskflow.
    Regards,
    Vipin

    1. Bind region to a bean (RichRegion) and generate getter and setter
    2. In the DisclosureListener add a bean method and in this method get the region above and do refresh
    public void disLstrnr(DisclosureEvent disclosureEvent) {
    getRegion().refresh(FacesContext.getCurrentInstance());
    Amit

  • Bounded Taskflows with Fragments And Return Activity

    Hi,
    I have Bounded Taskflow that requires-transaction and based on fragments, which means I should commit or rollback at the end of the taskflow. Since the documentation clearly states that you shouldn't add return activities to Bounded taskflows with fragments, I could call this taskflow from another taskflow and add it to the page as a region. Is it a best practice?
    Best Regards,
    Salim

    Hi,
    in the usecase you describe - yes
    Frank

  • Security problem? Bounded taskflow and sessionid in loopback url

    Hi,
    We just had a security evaluation of our public site. We use ADF in several places on the site (through iframes).
    The applications are made up of bounded taskflows. The request Url reads like:
    http://127.0.0.1:7101/test/faces/adf.task-flow?adf.tfId=task-flow-definition&adf.tfDoc=/WEB-INF/task-flow-definition.xml
    and it returns :
    http://127.0.0.1:7101/test/faces/adf.task-flow;jsessionid=R9YWRvkLJyD6lYC79DyTmTl6fxj177x1ZflDcJy4mrlcYmDVSmn0!-1545839156?adf.tfId=task-flow-definition&adf.tfDoc=/WEB-INF/task-flow-definition.xml&_afrLoop=97476727347664&_afrWindowMode=0&_afrWindowId=null
    According to the security evaluation the ;jsessionid=xxx in the header is a security problem, you could in principle copy the url and send it to a different computer and continue the session from there!
    The jsessionid is put there by the loop back script.
    Is there any way of making the loop back script not put the jsessionid in the url?
    Is it a security problem?
    regards
    Johnny

    Hi, thank you for the opinion. I am not talking about hijacking my own session id. But "malware" or a spy in som way could "sniff" the url and send it off to another computer!
    Look at this url, it explains it even better :
    http://fralef.org/tomcat-disable-jsessionid-in-url.html
    Again it is not my opinion but that of a security firm.
    Cookies are not disabled on my computer ( and our security firms), the case is real and how bounded taskflows work.
    Here is the code from the loop back:
    var sess = ";jsessionid=TdJhRvVGHnYZtTfzsMBpmDcSnLVHW0SzgBWl0gQm2tPQ45lwsq1W!-1545839156";
    if (sess.length > 0)
    href += sess;
    After the redirect the cookies "takes" over and the jsession id is not shown again.
    But it is still shown initially.
    And we do use https on our site, my code was just an illustration.
    Johnny
    Edited by: user11345344 on Feb 28, 2013 8:44 PM

  • ADF UI Shell Pattern- How to pass parameter to the called bounded taskflow?

    The sample Launcher class of the ADF UI Shell template has the following code:
        private void _launchActivity(String title, String taskflowId, boolean newTab)
          try
            if (newTab)
              TabContext.getCurrentInstance().addTab(
                title,
                taskflowId);
            else
              TabContext.getCurrentInstance().addOrSelectTab(
                title,
                taskflowId);
          catch (TabContext.TabOverflowException toe)
            // causes a dialog to be displayed to the user saying that there are
            // too many tabs open - the new tab will not be opened...
            toe.handleDefault();
        }How do I pass a parameter to the bounded taskflow that will be launched?
    For example:
    1) I have a list of employees displayed on a tab.
    2) When I select a record and click an edit button inside the tab, A separate tab should open with the corresponding employee to be edited.
    How then could I pass the employee id to the edit-employee-task-flow?
    I can't think on how/what would a "calling taskflow" come into this picture?
    help!
    pino
    Edited by: pino on 16-Dec-2009 05:57
    Edited by: pino on 16-Dec-2009 09:59

    Hi Arunkumar,
    Thanks for the info. I was actually using EJB DataControls, and something similar to what you have suggested can also be done programmatically, but I wanted to follow the one promoted in the Fusion Developers' Guide to take advantage of the "ADF task flow framework" (like pass-by-value, pageflowScope, etc.) especially that we were having problems when we will just follow the procedures that was presented in the tutorials(I mean that- not all the procedures in the tutorials will work on an application based on the UI Shell pattern which do have multiple active taskflows.).
    For instance, you have an active List of employees in one tab, and two other tabs that try to edit employee records. If these employee list and employee edit forms are based on a single iterator binding, then what would happen to the information in the two edit forms on each separate tabs if you selected another row on the employee list tab? -- In our case, the edit tabs' values synchronized to the new selected row in the list tab.
    There are sure many work-arounds for these, but I am looking for a cleaner, clearer, or best way to handle this scenario.
    regards,
    pino

  • Dynamically Creating Bounded taskflow

    Hi
    Is there any option to create bounded taskflow dynamically that is through coding not by wizard. I have some java utility and by passing it taskflow name and jsff name it automatically create bounded taskflow.

    Yes I want to create bounded task flow. I want to dynamically bind page fragment to links in menu without manually creating there bounded taskflow.
    My Use case is that I have DB driven menu. I have hundred page fragment which I have to call from that menu in dynamic region. I don't want to manually create bounded task flow to open page fragment in region. I want to read form name from database and automatically create bounded task flow for that page automatically if it is not created. Otherwise I have to create these hundred or may be more bounded task flow manually and set task flow id to open particular page fragment.
    or
    Is there any other good way to dynamically bind page fragment to command links in menu.

  • Need help in bounded taskflow

    Hi
    I have created one fusion web application with bounded taskflow with 2 views .When i click command button in first page it should navigate to second page by taking the action name "go".But the redirection is not happening.
    please Help me out in this issue

    You need t use control flow cases and refer them in the action property of your button.
    See - http://docs.oracle.com/cd/E16162_01/web.1112/e16182/taskflows.htm#insertedID4

  • Exception Handling in bounded taskflows - expected behaviour

    Hi,
    I'm currently reviewing exception handling in bounded task flows and some things does not seems to be very clear for me.
    (q1) Does it make sense that a bounded task flow calls a method (via a method activity) defined on the page definition of another page (outside of the BTF) by using a #{data.xxxmyPageDef.myMethodName.execute} EL expression?
    (q2) Is is correct to expect the application to execute the method marked as ExceptionHandler in the taskflow, whenever an exception occurs?
    (q3) I created 5 different scenarios where I call a service method which throws an exception, from within a page fragment of the BTF.
    (q3 – sc1) Call a service method through the binding layer of the current page (by using #{bindings.xxx.execute})
    Result: A dialog containing the exception message appears.
    This is what I expected. Althought, the exception handler method does not seems to be invoked.(q3 – sc2) Call a service method through a task flow method activity using #{bindings.xxx.execute}
    Result: A dialog containing the exception message appears.
    This is what I expected. Althought, the exception handler method does not seems to be invoked.(q3 – sc3) Call a service method through a task flow method activity using #{data.myPageFragementPagedef.xxx.execute} (accessing the pageDef of the page fragment)
    Result: Nothing happens.
    This is not what I expected. Although, the exception handler method does nog seems to be invoked, I expect the ADF Error Handler to create a FacesMessage.(q3 – sc4) Call a service method through a task flow method activity using #{data.myPageContainingThePageFragmentPageDef.xxx.execute} (accessing the page containing the BTF region)
    Result: Nothing happens.
    This is not what I expected. Although, the exception handler method does nog seems to be invoked, I expect the ADF Error Handler to create a FacesMessage. (q3 – sc5) Call a service method through a task flow method activity using #{data.aPageOutsideTheBTFPageDef.xxx.execute} (accessing a page outside the BTW)
    Result: Nothing happens.
    This is not what I expected. Although, the exception handler method does nog seems to be invoked, I expect the ADF Error Handler to create a FacesMessage. (q4) How can it be possible that – without an exception handler – exceptions occur when calling method activities, without the exceptions being translated to FacesMessages?
    Thanks in advance,
    Koen Verhulst
    JDeveloper 11.1.1.4

    Koen,
    +(q1) Does it make sense that a bounded task flow calls a method (via a method activity) defined on the page definition of another page (outside of the BTF) by using a #{data.xxxmyPageDef.myMethodName.execute} EL expression?+
    No. Exceptions should be handled locally.
    +(q2) Is is correct to expect the application to execute the method marked as ExceptionHandler in the taskflow, whenever an exception occurs?+
    Only for exceptions that are before Render Response. The Render Response Phase is not handled in ADFc. So exceptions that occur in managed beans may fall through
    +(q3) I created 5 different scenarios where I call a service method which throws an exception, from within a page fragment of the BTF.+
    +(q3 – sc1) Call a service method through the binding layer of the current page (by using #{bindings.xxx.execute}) Result: A dialog containing the exception message appears.+
    This is what I expected. Althought, the exception handler method does not seems to be invoked.
    The binding layer has an error handler you can override in the DataBinings.cpx file
    +(q3 – sc2) Call a service method through a task flow method activity using #{bindings.xxx.execute}+
    Result: A dialog containing the exception message appears.
    This is what I expected. Althought, the exception handler method does not seems to be invoked.
    Again, you use the binding layer to invoke the service
    +(q3 – sc3) Call a service method through a task flow method activity using #{data.myPageFragementPagedef.xxx.execute} (accessing the pageDef of the page fragment)+
    Result: Nothing happens.
    This is not what I expected. Although, the exception handler method does nog seems to be invoked, I expect the ADF Error Handler to create a FacesMessage.
    Never use such a call. Its bad practice as there is no guarantee the container you reference is active. Always have the method call activity have its own binding defined when accessing a method call activity. I know there are lots of example floating aroundthat you #{data ...} and many are from 10.1.3. This should be avoided alltogether though
    +(q3 – sc4) Call a service method through a task flow method activity using #{data.myPageContainingThePageFragmentPageDef.xxx.execute} (accessing the page containing the BTF region)+
    Result: Nothing happens.
    This is not what I expected. Although, the exception handler method does not seems to be invoked, I expect the ADF Error Handler to create a FacesMessage.
    Again, this is not a proper use of the ADF framework.
    +(q3 – sc5) Call a service method through a task flow method activity using #{data.aPageOutsideTheBTFPageDef.xxx.execute} (accessing a page outside the BTW)+
    Result: Nothing happens. This is not what I expected. Although, the exception handler method does nog seems to be invoked, I expect the ADF Error Handler to create a FacesMessage.
    accessing a page outside the BTW (!!!) This should ring a worst practices alarm on your laptop (obviously doesn't do it either)
    +(q4) How can it be possible that – without an exception handler – exceptions occur when calling method activities, without the exceptions being translated to FacesMessages?+
    Exceptions are not handled in a single place but stacked. The business service raises an exception and passes it to the binding layer if not handled. The binding layer handles the exception and if it can't passes it to ADFc. ADFc can handle this exception if it is not during Render Response.
    Bottom line: There is no single point of exception handling. So as a recommendation for best practices
    - Catch and handle exceptions as close as possible to their origins
    - If things can go wrong, thy will - use try/catch blocks in managed beans
    - Use an exception handling activity in all bounded task flows. In the case of task flow call activities being used exceptions can bubble up to the caller. However, this would take users out of their current application context
    - Exceptions not handled in ADFc can be intercepted by overriding the application task flow exception handler (used by the exception handler activities). This would give you a chance e.g. to handle issues during Render Response
    - Never fight the framework, never bend the framework: Don't use out of scope access to page definitions and resources. Exception handling is not a replacement for bad code practices (sorry for saying this, its not meant to be rude) :-)
    Though I don't have a qualified numbers of bugs open for exception handling in ADF between 11.1.1.4 and now (and some that are open), but there are issues reported in this area. If there is something that really feels wrong, please go ahead and file a bug and provide a test case for development to have a look. The Render Response issue, for example is something we are aware of and that is in discussion (afaik knows, there is a change in exception handling in JSF 2 that may have an impact to what we can do in ADFc).
    thanks
    Frank

Maybe you are looking for

  • X1900 G5 Edition lock-ups

    FYI. Just had the second lock-up in just under 2 weeks of the Quad coming out of Sleep mode. Only recourse is power off as the graphics driver corrupts the whole machine. Ugh. I've reported it to ATI, but who knows when we'll get a fix. Bottom line,

  • How to call Global Abstract Class in Report Program

    Hi All, Can Anyone tell me how call  global abstract class created in SE24. Thanks, Revanth

  • Uploading php files to server

    Hi. I would have thought my hosting provider could have helped me with this, but they could not. I have three different sites that i manage that are hosted at Interland. On one of these sites, when i upload a php file, and then try to bring this page

  • Digital out jack to amplif

    Hi, I'm trying to connect my audigy 2 to my external yamaha HT decoder/amplifier. I'm using a minijack to rca converter and an rca cable to the "coax in" of the decoder but I get no sound. I've also checked the "digital output only" option but nothin

  • Three server farm set up

    i am having three boxes where  in the first 2 boxes  sp 2013  been installed, and i wanna implement the index/crawl server on the second box and  first box being appln server and  3rd box being the db server. would like to know how to implement my se