Task Flow Exit Using contextual Events ??

I am using Jdeveloper 11.1.1.5.
My application has a page which has two regions in it.
First region has a bounded task flow with just one fragment in it(Just with a button)
and Second region has a BTF which has five fragments in it(which is a kind of train process).
On clicking the button in the first region I want to exit and reenter the bounded Taskflow in the second region.I am trying to do this using contextual events but the exit and reentry doesn’t happen as expected.
For example - if the user is in the third fragment of the second region and clicks the button in the first region, then the task flow should exit and the control should go to the first fragment in the second region.
In the consumer method I am returning the “action” string which will call the “TaskFlow Return call” activity but the “TaskFlow return call is not being called.
Could some one help me resolve this issue.
Thanks in advance.
- Pani

I am using Jdeveloper 11.1.1.5.
My application has a page which has two regions in it.
First region has a bounded task flow with just one fragment in it(Just with a button)
and Second region has a BTF which has five fragments in it(which is a kind of train process).
On clicking the button in the first region I want to exit and reenter the bounded Taskflow in the second region.I am trying to do this using contextual events but the exit and reentry doesn’t happen as expected.
For example - if the user is in the third fragment of the second region and clicks the button in the first region, then the task flow should exit and the control should go to the first fragment in the second region.
In the consumer method I am returning the “action” string which will call the “TaskFlow Return call” activity but the “TaskFlow return call is not being called.
Could some one help me resolve this issue.
Thanks in advance.
- Pani

Similar Messages

  • Calling a bounded task flow (that uses fragments) from another application

    Hello,
    I'm currently having difficulties calling a task flow located inside another application.
    I have application Console which is my main application in which I would like to run other applications within. Inside this Console I have it divided into splitter windows and inside them I have regions. My goal is to be able to call a task flow from another application inside one of these regions but so far I'm having no luck.
    My first problem occurred when I created a 'local' task flow to make a call to another application's task flow. When I set the properties to the task flow call, it gave me an error that it could not find the .XML file for that task flow when I ran the Console application. I then proceeded to copy that .XML from the remote application into the Console's WEB-INF directory and I seemed to get a bit farther. The error I get now is saying that I cannot run a task-flow that uses fragments. It's essentially trying to run that task flow as an entirely new page instead of inside the region that it's bound to. It's NOT a dynamic region (although that's the end goal here). So I then changed the other application's task flow to simply display an entire page rather than fragments inside a region and voila, it works..... kind of.
    To recap how I was able to call another application's task flow inside the Console:
    - I had to manually copy the task flow xml file into the Console WEB-INF directory
    - I had to change the task flow so that it didn't use fragments
    - I have called the task flow but I lose my console page entirely, no more regions or splitters so I'm back to square one.
    If anybody has any suggestions, hints, tips or anything, send them this way and I will be forever greateful.
    Thanks,
    Mark

    Thanks for your response Frank.
    Unfortunately the problem seems to be greater than that. I've been able to package task-flows into a jar library and tried importing them that way with no luck.
    I'm simple trying to call an external task-flow to run inside a region which is inside a splitter panel that I call my console.
    Any other ideas ?

  • Navigate to other page without using task flow

    Hi.,
    I m using jdeveloper 11.1.1.5
    I had created a Following jspx pages
    =>glm0101.jspx
    =>cfs0010.jspx
    =>generalledger.jspx
    =>glm2080.jspx
    =>login.jspx
    I need to create following
    GLm ----> While user clicks this it should navigate to glm0101.jspx
    CFS ----> While user clicks this it should navigate to cfs0010.jspx
    GeneralLedger ----> user clicks this it should navigate to generalledger.jspx
    Querry -----> user clicks this it should navigate to glm2080.jspx
    could anyone help me to provide the solution without using the task flow

    I had used The following procedure
    In adfc config i had created a unbound task flow as given below
    http://www.4shared.com/photo/BFcI1zVp/E024.html
    I had draged and dropped ADF:Link and anmed it as General Ledger
    In its action i wrote gl [which i had specified in TaskFlow]
    When i click this i am getting this error
    oracle.adf.controller.activity.ActivityLogicException: ADFC-02013: The ADF Controller cannot find metadata for activity 'GeneralLedger'.
         at oracle.adfinternal.controller.util.Utils.createAndLogActivityLogicException(Utils.java:230)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.doRouting(ControlFlowEngine.java:928)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.doRouting(ControlFlowEngine.java:778)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.routeFromActivity(ControlFlowEngine.java:552)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.performControlFlow(ControlFlowEngine.java:148)
         at oracle.adfinternal.controller.application.NavigationHandlerImpl.handleAdfcNavigation(NavigationHandlerImpl.java:109)
         at oracle.adfinternal.controller.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:78)
         at org.apache.myfaces.trinidadinternal.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:43)
         at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130)
         at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
         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 javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:788)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:306)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:186)
         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.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.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         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:136)
         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)and also i m getting error as
    <ViewXmlImpl> <parse> ADFc: /WEB-INF/adfc-config.xml:
    <ViewXmlImpl> <parse> ADFc: Failed to find/parse page name for view activity.
    <ActivityXmlImpl> <parse> ADFc: /WEB-INF/adfc-config.xml:
    <ActivityXmlImpl> <parse> ADFc: Activity metadata could not be parsed. [Activity Type, ID] = ['view', 'Cfs0010'].
    <ViewXmlImpl> <parse> ADFc: /WEB-INF/adfc-config.xml:
    <ViewXmlImpl> <parse> ADFc: Failed to find/parse page name for view activity.
    <ActivityXmlImpl> <parse> ADFc: /WEB-INF/adfc-config.xml:
    <ActivityXmlImpl> <parse> ADFc: Activity metadata could not be parsed. [Activity Type, ID] = ['view', 'GeneralLedger'].
    <ViewXmlImpl> <parse> ADFc: /WEB-INF/adfc-config.xml:
    <ViewXmlImpl> <parse> ADFc: Failed to find/parse page name for view activity.
    <ActivityXmlImpl> <parse> ADFc: /WEB-INF/adfc-config.xml:
    <ActivityXmlImpl> <parse> ADFc: Activity metadata could not be parsed. [Activity Type, ID] = ['view', 'GLM0101'].
    <ViewXmlImpl> <parse> ADFc: /WEB-INF/adfc-config.xml:
    <ViewXmlImpl> <parse> ADFc: Failed to find/parse page name for view activity.
    <ActivityXmlImpl> <parse> ADFc: /WEB-INF/adfc-config.xml:
    <ActivityXmlImpl> <parse> ADFc: Activity metadata could not be parsed. [Activity Type, ID] = ['view', 'Glm2080'].

  • Use Task Flow Parameter as value to View query?

    I'm not sure if I have all the terminology exactly correct, but basically I have a task flow that allows the user to edit data in a table. I want to open that task flow, pass a parameter from another task flow, and use that parameter to determine the row which I want to edit. A fairly typical use case I would imagine.
    I can get the calling task flow to call the other task flow, but I cannot seem to determine what to set the value of the parameter in the called task flow to so that it executes the query and populates the page with the data from the row specified by that parameter.
    What is the best practice for this type of use case?

    duplicate: Re: Task flow parameter not available to set method call parameter

  • Best way to refresh page after returning from task flow?

    Hello -
    (Using jdev 11g release 1)
    What is the best way to refresh data in a page after navigating to and returning from a task flow with an isolated data control scope where that data is changed and commited to the database?
    I have 2 bounded task flows: list-records-tf and edit-record-tf
    Both use page fragments
    list-records-tf has a list.jsff fragment and a task flow call to edit-record-tf
    The list.jsff page has a table of records that a user can click on and a button which, when pressed, will pass control to the edit-record-tf call. (There are also set property listeners on the button to set values in the request that are used as parameters to edit-record-tf.)
    The edit-record-tf always begins a new transaction and does not share data controls with the calling task flow. It consists of an application module call to set up the model according to the parameters passed in (edit record X or create new record Y or...etc.), a page fragment with a form to allow users to edit the record, and 2 different task flow returns for saving/cancelling the transaction.
    Back to the question - when I change a record in the edit page, the changes do not show up on the list page until I requery the data set. What is the best way to get the list page to refresh itself automatically upon return from the edit-record-tf?
    (If I ran the edit task flow in a popup dialog I could just use the return listener on the command component that launched the popup. But I don't want to run this in a dialog.)
    Thank you for reading my question.

    What if you have the bean which has refresh method as TF param? Call that method after you save the data. or use contextual event.

  • Dynamic TaskFlow Gets Refreshed on Catching a Contextual Event

    Hi,
    I am using Contextual events in my application. I have 2 task flows in my parent page. One TF is raising an event and the other is catching it. As my catching TF is a dynamic TF, I have specified the event map in it only.
    Everything is working as intended only that my dynamic TF gets refreshed when it catches the event! I do not want that. I want to explicitly refresh any UI component that requires to be refreshed, not the whole TF.
    So is there any specific property of task flows that make it to refresh itself when ever it catches any contextual event?
    Also I have tried 'Refresh="ifNeeded"' and 'RefreshCondition="#{false}"' in my dynamic taskflow specification in the parent page but it does not make any difference.
    Regards,
    Rahul Saxena

    Rahul,
    there is no setting for this. If however the managed bean you setup for handling the dynamic region is in backing bean scope (or request scope) then chances are that the region is refreshed because the bean restes after the request (just assuming here). Yournot giving us much to chew on (no JDeveloper version, no implementation details etc. ) So its hard to provide further ideas. As a last resort, if you have a support contract, you can contact customer support with a test case
    Frank

  • Contextual Event Automatically refreshing child regions

    Hello,
    Here's my dilemma. We have an ADF page fragment that contains three regions(which point to 3 different bounded task flows). Lets call the bounded taskflows btf1, btf2, and btf3.
    What currently happens is we use contextual events to create communication between (btf1 and btf2) and communication between (btf2 and btf3)? We do not have contextual event that would allow communication between btf1 and btf3.
    So we currently have this communication working. Hence, when I hit a button in btf1, it fires off a contextual event, such that btf2 is refreshed. But what is happening here, is that btf3 is also being refreshed. We DON'T want THIS... We only want btf3 to be refreshed from an event that is fired from btf2.
    Question. Is there a way to restrict ADF from refreshing btf3 everytime and event is fired from btf1.
    In general, it seems as though all regions are being refreshed everytime a contextual event is fired. We don't want this. How can disable this from happening? We have checked all of wiring. There is no connection between btf1 and btf3.

    Try creating the event mapping - please see "28.7.2 How to Create Contextual Events Manually" in Dev Guide http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/web_adv.htm#CACJBFGI

  • Inline popup sending contextual event to calling taskflow?

    Is it possible?
    Because of the returnListener not firing consistently, I was thinking of using contextual events. I am not sure, however, if that will work.
    11.1.1.4
    Basically I have a link, opens an inline popup to display a task flow as JSPX. Upon clicking on the okay button there, I want to fire an contextual event back to the
    parent to refresh it's data.

    Hi,
    yes, this should work because the calling task flow also remains active
    Frank

  • Regions & contextual events

    Hi,
    I am trying to rebuild an 10g webcenter application that used portlets and inter-portlet communication. The use case I have is:
    - one task flow where we have a bpel task list. User can click a task to select it
    - selecting the task should transmit the task type and id to the main page
    - another task flow on the page should, depending on the task type, be shown with id as an input parameter.
    Can this kind of a dependency be created, and if so, how?
    Regards,
    Jeroen van Veldhuizen

    Hi,
    is taskflow "one" a region? If yes then this would require a contextual event to propagate the selection and the payload. You could then set a vaue e.g. in a managed bean and issue a PPR on the region that should show based on the value.
    An alternative to using contextual events would be to use JavaScript. JavaScript in a region can be used to call components on the parent page. The drawback of using JavaScript tough is that it tightly binds th regions to the page, which means you loose the loose coupling. So contextual events may look better (though it comes with more overhead)
    Frank

  • How to publish contextual event from dynamic region

    Hi Experts, plz help.
    Scenario :
    I have a page , say Page A.
    I have two bounded task flows, say HeaderTF and LinesTF.
    HeaderTF is placed as a static Region in page A and LinesTF is a dynamic region in page A.
    LinesTF has a table with Amount Column.
    HeaderTF has a text field which shows the total of amount column.
    Requirement :
    when user adds new rows or changes existing rows or deletes any rows in LinesTF, total field in HeaderTF should be updated.
    On change of amount value in lines, I am calculating and updating the total attribute of header VO as all of them are sharing same DC.
    but the value is not reflecting becos partial triggers cannot be kept for total field.
    So I am using contextual events.
    I created a contextual events for amount field, delete button and table as well (In LinesTF).
    and I created handler method in AM which calculates total and dragged it as a text field in HeaderTF.
    Now when I am trying to subscribe from pagedef of pageA, i am able to find the handler which is created in HeaderTF but could not find any contextual events in event lov.
    Question :
    1. Is my approach correct?
    2. Cant we publish contextual events from dynamic regions?
    3. Is there any alternate way of achieving this?
    I did not try refreshing HeaderTF by passing input params because I dont want the entire region to be refreshed.

    Try creating the event mapping - please see "28.7.2 How to Create Contextual Events Manually" in Dev Guide http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/web_adv.htm#CACJBFGI

  • Populating a parameter of a task flow from a different task flow

    I have created a BPM process, where two human activities are there. Two human task consist of two task flows. I have inserted some data into table using store procedure from first task flow and passed the id (unique id of table) through BPM process data object into the second task flow. Now I want to start the second task flow with execute with Parameter attribute(where customized query been written on the view object to find details from table) and find the inserted row in the second task flow using the id and show it in a jspx page.
    Please help.

    You can pass managed bean as input parameter to your BTF, or you can use contextual events, or ...
    Maybe I didn't understood you description correctly, but if you use only one dynamic region, then you can't call BTF2 from BTF1.
    If you have two regions, one displays BTF1 and second displays BTF2, then this is possible.
    Dario.

  • Communicate from one bounded task flow to another bounded task flow

    Hi All can someone let me know how to communicate from one bounded task flow to another bounded task flow.

    Hi,
    you use contextual events to communicate from one region to another. Have a look here:
    http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/web_adv.htm#CACJBFGI
    Also keep an eye on
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/adfinsider-093342.html
    At the end of this week or beginning of next week I am recording a sample for this
    Frank

  • UIShell: TabContext and Nested Task Flows

    i'm using the UIShell, and i'm trying to nest applications under the uishell application.  inside the main application, i have a launcher.java file. 
    so, how do i reference the main apps' launcher.java from one of the nested applications?  for instance, if i wire-up a link element in a nested fragment with "#{pageFlowScope.Launcher.launchATaskFlow}".  the IDE complains that the reference cant be found. (of course, the method resides in the parent, uishell application.)  so, how do i call the method?
    so, when the above didnt work, i tried this: use a launcher.java in a nested application, but its TabContext is null.  can i get a reference to the main application's TabContext within a nested application at runtime?
    how does the UIShell handle this?  all of the samples i've reviewed do not show a good implementation of deeply nested task flows and the associated fragment files.
    thanks,

    Just figured it out, it was so OBVIOUS!
    Use Contextual Events. Works like a charm.

  • Task Flow Return Listener not fire when FK association fields set manually

    Guys and Gals,
    I've spent two solid days on this and I'm not sure why my task flow return listener is not firing.
    I start by selecting a row in a table. I then click a "Convert" button which converts the Quote document into a Sales document. I then press Submit which commits the data and the task flow exits. At this point my task flow return listener should fire. It does not. This return listener would, in theory, refresh the visible Quotes table and update the selected Quote's status to "Closed".
    The Quote's "Closed" status is a transient attribute which is calculated by looking at the Sales' document Qty attribute. If the Quote Qty = Sales Qty, then the status is closed. This can be measured by utilizing an association where
    Sales' BaseRefDocId = Quotes' OrderId
    Sales' BaseRefRowId = Quotes' RowId
    Setting these two row attributes represent the association linking a Quote document row to a Sales document row.
            nvp.setAttribute("BaseRefDocId", baseRow.getAttribute("OrderId"));     // Take the Quote Id and put in the Sales' Id ref field
            nvp.setAttribute("BaseRefRowId", baseRow.getAttribute("Row_Id"));    // Take the Quote Row Id and put it in the Sales Row Id ref field
            targetRow.createAndInitRow(nvp);                                                    // Insert the new referenced row into the Sales' DocumentAfter two days of running tests, it is the code above that keeps the return listener from firing and the transient attribute from refreshing on the page. These fields are not mandatory, but are necessary for the Quotes status to change to closed. Simply leaving these lines of code out allows my task flow return listener to refresh correctly, albeit with an incorrect Quote status.
    My expression language statements, however, evaluate correctly irregardless of table refresh. If I refresh the table manually, the status will then display the correct value. All other methods of manipulating the table function correctly i.e. task flow return statements work.
    I'm pretty sure it has something to do with some kind of silent association / view link error blocking the task flow from firing behind the scenes.
    Does anyone have any ideas? Using JDev 11.1.2.1.0.
    Will

    Hi Frank,
    Yeah, I thought it was really weird as well. I banged my head up against the wall again today and finally managed to semi-fix the problem.
    The "Convert" table toolbar button has a "Disabled" attribute that I've been setting with something like #{bindings.QuoteIterator.currentRow == null}. If I take this out, everything works fine. However, if I put it in, the task flow will not return. What's screwy is that I have several of these "Quote" tables for other data collections such as Sales, Deliveries, Invoices, etc. About half of them fire a task flow return with the "Disabled" attribute set for the convert button, and the other half don't. They all return a task flow return if I just set "Disabled" to false.
    At three days and counting, this is really an issue I just don't get, and I'm not sure if I could reproduce the problem to submit it to support because everything appears just fine and I've been digging for days.

  • UI Shell - how to allow ADF Library Bounded Task Flow to close itself

    Hi Richard
    Further to my other post, we're having lots of fun with the UI Shell, it's making mockups very easy.
    Question for you though based around the functionality defined in the UI Shell whitepaper. Say we've created our UI Shell application, and rather than wanting to create the bounded task flows in the app (ie.first, second, third), we create them as standalone bounded task flows deployed to ADF Libraries, and imported into our app separately.
    In the UI Shell examples bounded task flows are opened & closed via the UI Shell's own components (say the navigation page items or toolbar buttons), that call the methods in the Launcher bean (_launchActivity & closeCurrentActivity). It's fairly simple to rewrite the launcher helper methods in the launcher bean to call an imported ADF Library bounded task flow to open it as an activity, just referencing the correct task-flow.xml file.
    However as you know a bounded task flow has a "Default Activity" entry point and one or more "Task Flow Return" exit points. What I haven't been able to work out is how when the bounded task flow exits via a task flow return, can we call the closeCurrentActivity method in the Launcher bean? The UI Shell code examples demonstrate closing a bounded task flow by menu options/or similar outside the bounded task flow in the UI Shell, but it would seem reasonable if the bounded task flow exited via a "Task Flow Return" we should be also able to close the activity tab too.
    (....and as extension, before we even do that potentially call the checkState/isDirty() method to stop the user closing the activity too, but again driven by the bounded task flow attempting to exit).
    I could imagine inserting code into the bounded task flow finalizer to close the activity tab, but this pushes the UI Shell tab activity management logic into our standalone ADF Library bounded task flows which isn't ideal, especially if we want to later reuse them in another app which doesn't use the UI Shell.
    Any suggestions welcome.
    Thanks & regards,
    CM.

    And we're back again.... what's a couple months between friends?
    So it turns out after testing our app (d@mn, so close) that we've hit a bug with this approach.
    Our current app allows one BTF to be open in the UI Shell at any one time. Our menu options automatically open one BTF at a time by the user (max one open), and close the previous BTF. However we have some "special" BTFs that require the user to explicitly close the BTF, which in turn makes use of the regionNavigationListener solution I described earlier in this post.
    However we discovered a bug when we do a complete cycle of the 15 embedded regions within the UI Shell.
    Say we:
    1) Open a normal BTF in region 0
    2) Open another normal BTF in region 1 (our solution automatically closes the previous BTF)
    3) We then open another BTF (again the previous BTF is closed) in region 2, yet this a "special" BTF requiring the user explicitly to close it. Upon the user closing the BTF - this results in the regionNavigationListener being called and the removeTab() method called to close down the BTF in the UI Shell
    4) The user then open/closes multiple normal BTFs, one by one, rotating through regions 3, 4, 5 .... eventually back to 1 again
    5) Then the bug occurs - on opening any BTF back in region 2 (as part of the complete cycle of all regions), the tab for the region 2 opens, correct title, and via debugging the Tab.class has all the right settings including taskFlowId, but the tab is incorrectly empty
    doh!
    I've managed to track a symptom of the problem down that may explain what's happening.
    Each time a tab is rendered with a BTF, the Tab classes getBinding() method returns a reference to the binding required for the current BTF. However for some reason on the complete cycle, for "r2" it returns the binding for the previously user-closed BTF from step 3 above, even though we called the TabContext.removeTab() method.
    What I haven't been able to work out is how the bindings get turned on/off dynamically for each BTF being invoked. Presumably for some reason on step 3, the BTF's bindings aren't being correctly removed from r2 even though we called TabContext.removeTab().
    If anybody has any brain waves about what's going on and how to fix this problem, your help appreciated.
    Regards,
    CM.

Maybe you are looking for

  • How can I change Illustrator language to English?

    I have subscripted to Adobe Cloud and downloaded Photoshop/Illustrator but the default language at that time (in my Adobe Application Manager) was Portuguese so it installed the portuguese version of Photoshop and Illustrator. Changing the language i

  • Creating a new project in imovie '09

    Good afternoon. When a user creates a new project in iMovie '09 it gets put into the user's Movies folder. This is fine on a stand-alone, but with Network Home Directories it's not, because of the bandwidth needed to transfer files across our network

  • Weird zoom behavior, please help

    for no apparent reason my desk top zoom in like 500% the courser now moves the background screen computer work if I can get the courses to the desired place. Rebooting leads to normal appearance of the desktop for about 5 seconds and then the desk to

  • Regarding SAP EHS

    Hi Friends, I am having 11 years experience in EHS field in heavy constructions.At present working as a EHS coordinator in MNC.Basically i am a Science Graduate and having Diplomas in Industrail Safety, Industrial Hygine, Environmental & ISO 14001, P

  • Scenarios for routines

    Hi,     can any one send scenarios for writing routines in TR and in UR amd xplain of hoe to write the routines. points will be rewarded for your replies.