Navigating among task flows

From a button which is in a region on a page (and therefore belongs to a task flow based on page fragments), how can we go about calling a page which belongs to another separate task flow (this one not being based on page fragments)? Is there a declarative way to do this? Is there a programmatic way to do this? Either way, giving or pointing to existing examples would be very helpful. Thank you.

There is a declarative approach for calling a page (not a page fragment) from a button within a region using what's called a task flow "URL View" activity. It will navigate the page containing the region to the new page. Therefore, the new page will not appear within the context of the region. Here's some more information on task flow URL View activities:
A task flow URL View Activity redirects the root view port to any URL addressable resource, even from within the context of an ADF Region. Possible URL addressable resources include ADF Bounded Task Flows, View Activities in ADF Unbounded Task Flows, and addresses external to the current web application (e.g. Google Search). When the URL View Activity is executed at runtime, its corresponding URL EL expression will be evaluated to get the appropriate URL. Any parameter value EL expressions will be evaluated and their resulting values will be added to the URL. Then the client will be redirected to the corresponding URL.
A URL View Activity will redirect the client regardless of which view port the URL View Activity is executed from (root view port or an ADF Region). This differs from using a regular View Activity with a <redirect> element since the <redirect> element of View Activities is ignored within the context of an ADF Region. It is only honored if the View Activity is within the root view port.
Redirecting elsewhere within the same application will be handled similar to a back button navigation since the task flow stack will get cleaned up. Redirecting out of the web application will be handled like dereferencing a URL to a site external to the application. Therefore, a URL View Activity is not always expected to redirect the whole page. When running with in a portal environment, redirects to external URLs (e.g. www.google.com) will redirect the whole page while redirects to resources within the same web application (e.g. /context/faces/some-view) will redirect just the portlet, not the whole portal page.
When constructing a URL for use in a URL View Activity, the URL can be constructed using one of the following approaches:
* By calling ControllerContext.getLocalViewActivityURL()
* By calling ControllerContext.getGlobalViewActivityURL() passing in the target viewId
* Be a fully qualified, absolute URL
* Be a URL relative to the current view (doesn't start with a '/')

Similar Messages

  • Issues with table filter during navigation between task-flows

    Hello everyone,
    I'm looking for a workaround to resolve two issues about the table filter. They are:
    1) If I type something in a filter and I change tha page (in a different task flow) when I return on the first page there is the previous search plus the string "%*". Here the video example: http://screencast.com/t/FbVenZGm
    2) In the same scenario, if I click enter on this filter the system returns this message error: "Attempt to set a parameter name that does not occur in the SQL: vc_temp_1 ". Here the video example: http://screencast.com/t/yMs6rNDF
    I have found something interesting in this thread: task-flow table filtering behaviour related to bug 8602867
    Anyway, I have implemented the solution reported in this document: http://www.oracle.com/technetwork/developer-tools/adf/learnmore/april2012-otn-harvest-1609383.pdf (pp. 8-11). This solution works fine with my master table, but it doesn't with the detail table.
    Have you any idea for this kind of behavior?
    Thanks in advance,
    Baduel

    Sudipto,
    each table has a binding on a page fragment in this way:
    <af:table [...] binding="#{backingBeanScope.MyBackingBean.masterTable}">
    <af:table [...] binding="#{backingBeanScope.MyBackingBean.detailTable}">
    In the pageDef I have two methods, each one of the VOImpl class related to the table:
    <methodAction IterBinding="MasterTableVO1Iterator"
    id="clearOutstandingImplicitViewCriteriaMaster"
    RequiresUpdateModel="true" Action="invokeMethod"
    MethodName="clearOutstandingImplicitViewCriteria"
    IsViewObjectMethod="true" DataControl="MyDataControl"
    InstanceName="MyDataControl.MasterTableVO1"/>
    <methodAction IterBinding="DetailTableVO2Iterator"
    id="clearOutstandingImplicitViewCriteriaDetail"
    RequiresUpdateModel="true" Action="invokeMethod"
    MethodName="clearOutstandingImplicitViewCriteria"
    IsViewObjectMethod="true" DataControl="MyDataControl"
    InstanceName="MyDataControl.DetailTableVO1"/>
    MyBackingBean class:
    public class MyBackingBean {
    private RichTable masterTable;
    private RichTable detailTable;
    /*getter methods here*/
    public void setMasterTable(RichTable masterTable) {
    this.masterTable = masterTable;
    resetTableFilter(1);
    public void setDetailTable(RichTable detailTable) {
    this.detailTable = detailTable;
    resetTableFilter(2);
    /*This method returns the phase id */
    private String printCurrenPhaseID() { 
    FacesContext fctx = FacesContext.getCurrentInstance();
    Map requestMap = fctx.getExternalContext().getRequestMap();
    PhaseId currentPhase=(PhaseId)requestMap.get("oracle.adfinternal.view.faces.lifecycle.CURRENT_PHASE_ID");
    // System.out.println("currentPhase = "+currentPhase);
    return currentPhase.toString();
    public void resetTableFilter(int tab) {
    String phase = printCurrenPhaseID();
    FilterableQueryDescriptor queryDescriptor;
    if(phase.startsWith("RENDER_RESPONSE")) { // Only in this phase the binding is ready
    switch(tab) {
    case 1:
    queryDescriptor = (FilterableQueryDescriptor) getMasterTable().getFilterModel();
    if (queryDescriptor != null && queryDescriptor.getFilterCriteria() != null) {
    queryDescriptor.getFilterCriteria().clear();
    // PPR refresh a jsf component
    AdfFacesContext.getCurrentInstance().addPartialTarget(getMasterTable());
    break;
    case 2:
    queryDescriptor = (FilterableQueryDescriptor) getDetailTable().getFilterModel();
    if (queryDescriptor != null && queryDescriptor.getFilterCriteria() != null) {
    queryDescriptor.getFilterCriteria().clear();
    // PPR refresh a jsf component
    AdfFacesContext.getCurrentInstance().addPartialTarget(getDetailTable());
    break;
    default: return;
    invokeClearViewCriteria(tab);
    public BindingContainer getBindings() {
    return BindingContext.getCurrent().getCurrentBindingsEntry();
    /* This method invokes the exposed method in my fragment */
    public void invokeClearViewCriteria(int tab) {
    BindingContainer bindings = getBindings();
    OperationBinding operationBinding;
    if(tab == 1)
    operationBinding = bindings.getOperationBinding("clearOutstandingImplicitViewCriteriaMaster");
    else if(tab == 2)
    operationBinding = bindings.getOperationBinding("clearOutstandingImplicitViewCriteriaDetail");
    else
    return;
    if(operationBinding != null) {
    operationBinding.execute();
    Finally I have two identical exposed methods in the VOImpl classes of the tables:
    public void clearOutstandingImplicitViewCriteria() {
    // we only want to remove the stuff that was added though the table
    //filter (or a default search form)
    // "__ImplicitViewCriteria__" is the magic name for this VC
    ViewCriteria vcDefault = this.getViewCriteria(ViewCriteriaManager.IMPLICIT_VIEW_CRITERIA_NAME);
    if (vcDefault != null) {
    //Clear the stored values
    vcDefault.clear();
    //And refresh the collection
    this.executeQuery();
    Please note that this workaround works fine with my master table, but i does not with the detail table.
    Thanks again.
    Baduel

  • Af:table filter date format : task-flow navigation issue

    hi
    When trying to use the date format configured on the Entity Object, with Format Type as Simple Date and Format as "dd-MM-yyyy", there seems to be a problem when using task-flows.
    The approach involves an explicitly configured attributeValues binding to use in f:validator and af:convertDateTime components in the af:inputDate in the filter facet, as discussed in the forum thread "af:table filter date format"
    at af:table filter date format
    I used JDeveloper 11.1.1.3.0 to create the example application
    in http://www.consideringred.com/files/oracle/2010/TableFilterDateFormatIssueApp-v0.03.zip
    - The page filterEmp.jspx shows expected behaviour, the filter uses the configured date format and there is no problem when navigating to another page and back.
    see the screencast at http://screencast.com/t/CtQ9rsVFH3k
    - The page menuBTFPage.jspx allows for some navigation after using the filter resulting in the filter showing a date in the wrong format, using scenario (sc1)
    -- (sc1-a) : run menuBTFPage.jspx
    -- (sc1-b) : on "menu-btf : menu", click the "do go-filter-emp-btf" link
    -- (sc1-c) : on "filter-emp-btf : filterEmpFragment", filter on HireDate using "10-03-2005"
    -- (sc1-d) : click the "do goReturnSuccess" button
    -- (sc1-e) : back on "menu-btf : menu", click the "do go-filter-emp-btf" link again
    -- (sc1-f) : back on "filter-emp-btf : filterEmpFragment", see the HireDate filter value in the wrong format as "2005-03-10"
    -- (sc1-g) : click the "do goReturnSuccess" button again, which results in an error "The date is not in the correct format."
    see the screencast at http://www.screencast.com/t/ORHauBd3oQ
    questions:
    - (q1) Can the behaviour in scenario (sc1) be reproduced?
    - (q2) Why is the filter value in the wrong date format in step (sc1-f)?
    - (q3) What can be done to have the filter value consistently in the configured date format, so that errors as in step (sc1-g) can be avoided?
    many thanks
    Jan Vervecken

    hi
    First a short summary of relevant aspects of service request 3-2190488381:
    - development has reviewed bug 10193260
    - development identified some code where a pattern was not applied and started fixing the problem
    - out of the blue, development asked "Will clearing out the filter field completely when moving out of ataskflow be an acceptable behavior ?"
    - I pointed out some concerns (even in a phone call with development), but development did not see any alternative not "perceived to be very risky because of the current design", so the question whether the clearing-all-filter-fields approach would be acceptable became superfluous.
    - following this, bug 10193260 suddenly became an enhancement request (for reasons I still don't understand)
    - a workaround was suggested (for behaviour not perceived as a bug), "Clearing the search fields during taskflow exit in the backing bean (in the app)." for which I also received a modified version of my example application TableFilterDateFormatIssueApp-v0.04.zip with an implementation of the suggested workaround
    As an exercise to try an understand the suggested workaround (an because my example application seemed to have been modified using the currently yet-to-be-released JDeveloper 11.1.1.4.0) I re-implemented it in the example application
    at http://www.consideringred.com/files/oracle/2010/TableFilterDateFormatIssueApp-v0.05.zip
    It has a filter-emp-workaround-btf task-flow with a method-call activity on a managed-bean method, responsible for clearing the search fields, resulting in behaviour where the error "The date is not in the correct format." does not occur,
    as can be seen in the screencast at http://screencast.com/t/Nq7TkkRQ
      public void clearFilterFields()
        BindingContainer vBindingContainer =
          BindingContext.getCurrent().getCurrentBindingsEntry();
        DCBindingContainer vDCBindingContainer = (DCBindingContainer)vBindingContainer;
        DCDataControl vDCDataControl = vDCBindingContainer.getDataControl();
        ApplicationModule vApplicationModule = vDCDataControl.getApplicationModule();
        ViewObject vViewObject = vApplicationModule.findViewObject("EmployeesVOVI");
        ViewCriteriaManager vViewCriteriaManager = vViewObject.getViewCriteriaManager();
        vViewCriteriaManager.clearViewCriterias();
        vViewObject.clearCache();
      }Because the managed-bean method requires access to the ADF Model binding layer to get to the View Object instance used for the filtered table, the method-call activity has a page element configured in DataBindings.cpx referring to the same usageId as the page element for the page fragment showing the filtered table. So that both the method-call and view activity depend on one and the same Binding Container (e.i. PageDef file).
    The method-call activity, responsible for clearing the search fields, would need to be called before each task-flow-return activity.
    As there can be multiple view activities with multiple filtered tables in a bounded task-flow, would that result in multiple method-call activities responsible for clearing search fields (all to be called before each task-flow-return activity)?
    It looks like a more general/generic approach is desirable for the suggested workaround to be feasible.
    - (q5) Does the suggested workaround imply (as bug 10193260 is not a bug) that all bounded task-flows with filtered tables should implement it to avoid errors about formatting?
    thanks
    Jan

  • Edit the task flow which is default in template for top navigation

    Hi,
    Where can I get the the default task flow file (i. e. spacesNavigationPanel) for collaborative with top navigation template?
    I want to edit the task flow for navigation.
    Thanks,
    A

    Here are the steps to find the default task flow file (i. e. spacesNavigationPanel) for collaborative with top navigation template :
    Note: I am assuming you're using Oracle WebCenter Portal 11.1.1.8.x
    Goto Portal Builder - Assets tab localhost:8888/webcenter/portal/builder/administration/assets
    Select Page Templates under Structure from left side pane and you'll see list of out of the box page templates (source not editable) and custom page templates (source editable) on the right side pane.
    Take a copy of the existing 'Collaborative with Top Navigation' page template
    Select the row 'Collaborative with Top Navigation'
    Click on Actions -> Copy
    Change the display name (Default : Copy of Collaborative with Top Navigation) and description if needed.
    Click OK to create a copy of 'Collaborative with Top Navigation' page template
    Select the row w.r.t. newly created page template Copy of 'Collaborative with Top Navigation'
    Click the checkbox to make it Available (Optional if you want to use this template later)
    Click on Actions -> Edit Source to edit the source of selected page template.
    You'll see template code in the window (by default).
    Click on 'Page Definition' tab at the bottom of the template code window i.e. Switch to Page Definition tab.
    Under Executables, you can see the taskflow code w.r.t. spacesNavigationPanel as follows :      <taskFlow id="spacesNavigationPanel" taskFlowId="/oracle/webcenter/webcenterapp/view/taskflows/navigation/SpacesNavigationTopPanelCollaborative.xml#SpacesNavigationTopPanel" Refresh="ifNeeded" activation="deferred" xmlns="http://xmlns.oracle.com/adf/controller/binding"/>
    I hope it answers your question.

  • Bounded Task Flow Navigation Issue

    Hi,
    I'm using Studio Edition Version 11.1.2.3.0.
    I have a main page with a panel splitter. The right side has a dynamic region and the left side contains links to launch a bounded task flow in the dynamic region.
    One of my task flows is a search form and has a call to another bounded task flow when I click on a command link in the table.
    My issue is if I want to return to search form, clicking on the dynamic task flow link doesn't render the search page.
    I have a bean for my dynamic task flow and the taskFlowId variable shows the url of my search page, but the navigation does not happen.
    Is there something that needs to be reset for this to work?

    Hi Frank,
    Sorry about being vague.
    I've compiled a little project using the hr sample db that duplicates my issue.
    Let me know if you have issues downloading it.
    I can provide the project via email if needed.
    Change your db connection to whatever you've defined for the hr db. I have mine running on a slave machine.
    If you click on "Search", search for an employee and then load the employee details by clicking on the employee id link in the table, the region navigates to the employee details page.
    However, if you click on "Search" again, the region does not navigate to the search page, it stays on the employee details page.
    I'm hoping it's just a setting in the properties for the task flow or the page fragment, but I can pen some code if needed.
    [Test Project Folder|https://docs.google.com/folder/d/0B5sTioNqfODuNWpfd3l3cEZfNU0/edit]

  • How to invoke task flow navigation after closing inline popup?

    Using JDev 11.1.1.3; I have a commandButton that currently executes task flow navigation when pressed. I need however to invoke an inline popup from the button press before executing (conditionally) the task flow navigation. The Action setting on the button then needs to be removed, but it's not clear where to reinstate it. I have the button executing some managed bean code, which conditionally invokes the inline popup, and when the popup (contains af:dialog) is closed, I have some more managed bean code that determines whether the task flow navigation should occur or not. What I need to know is how to fire off the Action from the managed bean. Any suggestions?
    Thanks,

    1. To add to Timo's solution:
    you can call those code from DialogListener like:
    public void dLstnr(DialogEvent dle){
    if("ok".equalsIgnoreCase(dle.getOutcome().toString())){
    FacesContext context = FacesContext.getCurrentInstance();
    NavigationHandler nh = context.getApplication().getNavigationHandler();
    System.out.println("1");
    nh.handleNavigation(context, "", "go");
    2. As another solution:'
    you can have custom buttons and on one of then (say OK or Yes) you can call bean method like this as Action:
    public String actionMethod(){
    // DO YOUR LOGIC
    return "NEXT_TARGET";
    for Other button (say Cancel, NO) just close the popup.
    Amit

  • ADF Mobile : task-flow navigation takes at least 500 milliseconds

    hi
    While navigating the CompGallery sample application [1] I noticed that navigation between (what looks like) simple pages/views was rather slow.
    Surely, this can be caused by different things (possibly the device, the app implementation, the framework, ...).
    To review this, I tried to build a simple example application using JDeveloper 11.1.2.3.0
    at http://www.consideringred.com/files/oracle/2012/NavigationTimeMApp-v0.01.zip
    and as APK at http://www.consideringred.com/files/oracle/2012/navigationtimemapp-v0.01.apk
    It has a bounded task-flow with two views that allow to navigate to each other.
    see the screenshot at http://www.consideringred.com/files/oracle/img/2012/navigationtimemapp-20121025.png
    It has a simple TimerBean that allows to get an idea about how much time navigation requires:
    public class TimerBean
         protected long fStartTimerMillis = 0;
         public void startTimer(ActionEvent pActionEvent)
              fStartTimerMillis = System.currentTimeMillis();
         public String getTimerInfo()
              if (fStartTimerMillis == 0)
                   return "no timer info yet";
              long vMillisAgo = System.currentTimeMillis() - fStartTimerMillis;
              return "timer started " + vMillisAgo + " milliseconds ago";
    }It allows for the following scenario (sc1):
    - (sc1-a) start the app
    - (sc1-b) click the "do goSecondView using a_TimerBean" button, which will navigate to "secondView" showing something like "timer started 621 milliseconds ago"
    - (sc1-c) click the "do goFirstView using a_TimerBean" button, which will navigate to "firstView" showing something like "timer started 537 milliseconds ago"
    - (sc1-d) if you care to stop the app, try a "Force stop" on the "App info" via "Apps" in the Android settings
    On my HTC Sensation Z710e I always get at least 500 milliseconds for each navigation.
    questions:
    - (q1) Anyone who wants to try scenario (sc1) and share his observed navigation times?
    - (q2) Which navigation times can be expected for simple navigation in ADF Mobile apps (like in scenario (sc1))?
    - [1] http://docs.oracle.com/cd/E35521_01/doc.111230/e24475/demoapps.htm#BACGDHDJ
    many thanks
    Jan Vervecken

    Thanks for your reply Joe Huang.
    Joe Huang wrote:
    ... Did you change CVM logging settings? ...I have not changed any defaults. If I unzip "navigationtimemapp-v0.01.apk", I find:
    - assets\storage\jvm\lib\cvm.properties having things like "java.debug.enabled=false" and "javascript.debug.enabled=false"
    - assets\storage\jvm\lib\logging.properties having only "level=SEVERE" configurations
    If you refer to something else, please specify.
    - Did you deploy the application in release mode vs. debug mode in the deployment profile? You would want to deploy it in release mode.Looks like the default is debug, which I have used for "navigationtimemapp-v0.01.apk".
    So, I configured on the Android Options the Build Mode as "Release" in the modified example application
    at http://www.consideringred.com/files/oracle/2012/NavigationTimeMApp-v0.02.zip
    and as APK at http://www.consideringred.com/files/oracle/2012/navigationtimemapp-v0.02.apk (now only 8 MB instead of 20 MB)
    But, I don't see a big improvement, maybe about 50 milliseconds improvement per navigation (so, about 450 milliseconds instead of about 500 milliseconds).
    ... so page navigation performance (and overall UI performance) is primarily dictated by JS performance by the web engine on the device. ...How can I determine (in the app) which "JavaScript / web engine" a device uses?
    At the end of the day, the actual performance of your application will be largely dictated by how you access data and the complexity of your screen. ...Sure, but I explicitly avoided those aspects here to have some kind of "base line" behaviour before introducing other complexities (that can slow things down).
    regards
    Jan

  • Navigating away form adf task flow causes validation to activated in WebCenter

    Experts,
    We are using WebCenter 11g.  We have created a task flow with a form on the first page.  There are a few fields that are required on the form.  We deployed the taskflow and are running it within WebCenter Portal.  There are three tabs:  "Home", "About Us", and "Ask for Information".  The "Ask for Information" tab the task flow that we are having trouble with.
    Here's what happens.  When we land on the Portal page, the Home page tab is where we land.  Then let's say the user clicks on "Ask for Information" tab, a form shows up.  This is the ADF form.  On the form, we request Name, email, phone etc. The Name and Email fields are required. We have a submit and a reset button on the form page.  Let's assume that the user clicked on this tab, realized they didn't want to provide the information, and wants to click back on the Home tab.  When they click on the Home tab, the form validation on the "Ask for Information" form fires and display an error telling the user that the Name and Email address have not been provided.
    This is very annoying and we would like some suggestions on how to overcome this issue.
    Thank you.
    Sam.

    Hi.
    You have two options:
    - Immediate property to skip validation step in the lifecycle as gawish said.
    - Wrap your form with an af:subform
    Regards.

  • 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>

  • 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.

  • 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!

  • How can i assign view page name at run time in task flow

    Hi,
    jdev 11.1.2.3.0
    I have a requirement to get view page (jsff page) dynamically.
    Ex: I have TF in that i have two views i.e view1 and view2. in view1  there is one inputtext and button in inputtext i will give the name of the page, In view2 that particular page should be displayed.
    Input Text                 View2
    Employee                Employee Page
    Department              Department Page
    How can i implement this ?
    Thanks,
    Nitesh

    Use a router in your task flow and point to the page you want to display according to the value entered in the input text.
    A sample on how to use this technique can be found here http://tompeez.wordpress.com/2011/11/27/jdev-11-1-2-1-0-using-router-to-conditionally-set-navigation-target/
    Timo

  • ADF mobile: how to link task flow to a list view item

    Hi
    I am trying to build a mobile app in adf and i created a popup on the left button on the header. this popup has a list view showing few options.
    now the requirement is to click on the option and navigate to that feature (which is created as a task flow).
    so, i am not sure how do like the task flow to the link in the listView of the popup. Please advise

    Well, if that list contains all features, you can use the 'features' from the ApplicationFeatures DC (they contain the ID, name, ... so you can use #{row.id} instead of hardcoding it).
    If that list does only contain a few features, you can make your own list.
    In your own backing bean or data control, you can get all the features by using:
            ApplicationFeatures af = new ApplicationFeatures();
            af.getFeatures();And filter them.
    An example that I made/use myself:
    It uses an commandLink to navigate because I need to be able to 'disable' (= not clickable) some features (it has the same look as an ListView).
    So iff just use the getFeatures(), you can use the ListView for navigation.
    <amx:iterator var="row" value="#{bindings.features.collectionModel}" id="i1">   
            <amx:tableLayout width="100%" id="tl2" inlineStyle="background-color:White;">
              <amx:rowLayout id="rl2">
                <amx:cellFormat width="50px" height="50px" halign="center" id="cf4" valign="middle"
                                inlineStyle="border-bottom:thin solid #b8b9c8;">
                  <amx:image source="#{row.icon}" id="i2" inlineStyle="width:40px;"/>
                </amx:cellFormat>
                <amx:cellFormat width="100%"  height="43px" id="cf3" valign="middle"
                                inlineStyle="border-bottom:thin solid #b8b9c8;">
                  <amx:commandLink text="#{row.name}" id="cl1" inlineStyle="color:Black; font-weight:bolder; font-size:110%;"
                                   disabled="#{!row.enable}">
                    <amx:setPropertyListener from="#{row.id}" to="#{pageFlowScope.feature}" />
                    <amx:actionListener binding="#{bindings.resetFeature.execute}"/>
                  </amx:commandLink>
                </amx:cellFormat>
              </amx:rowLayout>
            </amx:tableLayout>
          </amx:iterator>This my own data control :
    public class MenuDC {
        private ExtendedFeatureInformation[] features;
        private String message;
        public MenuDC() {
        public ExtendedFeatureInformation[] getFeatures()
            ApplicationFeatures af = new ApplicationFeatures();
            this.fillExtendedFeatureList(af.getFeatures());
            return features;
        private void fillExtendedFeatureList(FeatureInformation[] realFeatures)
            message = "";
            ModelController.getSingletonModelController().refreshMinorTables();
            features = new ExtendedFeatureInformation[realFeatures.length];
            for(int i = 0; i < realFeatures.length; i++) 
                boolean enable = true;
                FeatureInformation fi = realFeatures;
    if(fi.getId().equals("be.kpd.newDayReport"))
    if(ModelController.getSingletonModelController().getVarFormLocalDB(HardcodedVarCodes.LAST_SYNC).equals(""))
    enable = false;
    if(fi.getId().equals("be.kpd.overviewDayReport"))
    if(ModelController.getSingletonModelController().getRegisDFromLastSevenDays().size() == 0)
    enable = false;
    if(!enable)
    message = "SYNC_NEEDED";
    ExtendedFeatureInformation efi = new ExtendedFeatureInformation(fi.getId(),fi.getName(),fi.getIcon(),fi.getImage(),enable);
    features[i] = efi;
    public String getMessage() {
    return message;
    I made my own POJO which implements the FeatureInformation interface,
    because I needed an extra boolean attribute for disabling some features.
    public class ExtendedFeatureInformation implements FeatureInformation {
        private String id,name,icon,image;
        private boolean enable;
        public ExtendedFeatureInformation() {
            super();
        public ExtendedFeatureInformation(String id, String name, String icon, String image, boolean enable) {
            super();
            this.id = id;
            this.name = name;
            this.icon = icon;
            this.image = image;
            this.enable = enable;
        public String getId() {
            return id;
        public String getName() {
            return name;
        public String getIcon() {
            return icon;
        public String getImage() {
            return image;
        public boolean isEnable() {
            return enable;

  • Problem with ADF security and task flow calls

    Hi.
    I am using JDeveloper 11.1.2.0.0.
    I encountered a problem when tried to apply ADF security to my application.
    The way to reproduce the problem:
    1. Create new Fusion Web Application;
    2. Import Business Components from Tables from any existing schema and add at least one table to the ApplicationModule.
    3. Create "welcome page" (for instance, welcome.jsf). Add a button with fixed action outcome "test".
    4. Create test page, for instance, test.jsf. Drag and drop any view object from Data Controls onto the page and create a form with navigation controls. Add a button with fixed action outcome "return".
    5. Create bounded task flow, name it "test", drag and drop our test page on it - the page will be the default activity. Add a task flow return activity. Add a control flow case from the default view activity to the return activity, set From Outcome property to "return". So our return button should cause the task flow to exit.
    6. Open adfc-config.xml in diagram mode and place our welcome page on it. Then drag and drop the test task flow to create a task flow call activity. Add a control flow case from welcome page to task flow call activity, set the From Outcome property to "test". So our test button should call the test task flow.
    7. Configure application to run the unbounded task flow starting with Welcome view activity.
    At this point all works as expected: when application runs, the welcome page is displayed with test button. Pressing the test button results in displaying the test page, return button leads back to the welcome page.
    Now let's configure ADF Security.
    Run the ADF Security configuration wizard, choose ADF Authentication and Authorization.
    On the second page select Form-Based Authentication, check the Generate Default Pages flag.
    On the third page choose No Automatic Grants.
    On the next page keep the Redirect Upon Successful Authentication unchecked. Press Finish.
    Open jazn-data.xml to configure roles, users and resource grants:
    1. Create application role test-role.
    2. Grant the test-role privileges to view the test task flow.
    3. Create user and grant him the test-role.
    Now we have the public available welcome page and the test page with restricted access.
    When application runs, the welcome page is displayed as expected. Pressing the test button redirect us to auto-generated login page. After successful authorization the test page is displayed. But nothing happens if we click now the return button for the first time. When we click the return button once more, the application crushes with Error-500 and message "Target Unreachable, identifier 'bindings' resolved to null". The exact error trace depends on UI control bindings, but looks like this:
    javax.el.PropertyNotFoundException: //C:/Users/DUDKIN/AppData/Roaming/JDeveloper/system11.1.2.0.38.60.17/o.j2ee/drs/Test1/ViewControllerWebApp.war/test.jsf @10,120 value="#{bindings.Id.inputValue}": Target Unreachable, identifier 'bindings' resolved to null
         at com.sun.faces.facelets.el.TagValueExpression.isReadOnly(TagValueExpression.java:122)
         at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer._getUncachedReadOnly(EditableValueRenderer.java:476)
         at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.getReadOnly(EditableValueRenderer.java:390)
         at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.wasSubmitted(EditableValueRenderer.java:345)
         at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.decodeInternal(EditableValueRenderer.java:116)
         at oracle.adfinternal.view.faces.renderkit.rich.LabeledInputRenderer.decodeInternal(LabeledInputRenderer.java:56)
         at oracle.adf.view.rich.render.RichRenderer.decode(RichRenderer.java:342)
         at org.apache.myfaces.trinidad.render.CoreRenderer.decode(CoreRenderer.java:274)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.__rendererDecode(UIXComponentBase.java:1324)
    (the rest of lines skipped).
    Any suggestions?
    Edited by: user13307311 on Apr 16, 2013 11:39 PM

    @Lovin_JV_941794
    The welcome page is public available since it does not have appropriate PageDef file.
    Login page comes not from the welcome page, it comes after attempt to access the test page. So after the login succeeded the test page appears, because redirect to welcome page after successful login is not configured. I do not need to return the welcome page at this moment, I need to go to the test page.
    It seems the task flow call stack to be destroyed after redirect to login page.
    Edited by: user13307311 on Apr 17, 2013 12:45 AM

  • How to pass a parameter to a bounded task flow?

    Hi,
    We are facing issue while passing parameter from a bounded task flow to another bounded task flow and then showing the passed parameter in a jspx page.
    We have a caller task flow with following component:
    1. A jspx page
    - In this jspx we have a text box have its value as #{pageFlowScope.inputvalue}.
    - Also we have a command button which has its "Action" as the control flow that leads to the "called" task flow.
    2. A bounded task flow named "called".
    So, we call the "called" task flow on the button click in the jspx page.
    Also, in called taskflow we have a jspx page where we are using a output label to show the parameter passed from caller task flow to the called task flow.
    We performed the following steps to set the parameter passing from caller task flow to the called task flow.
    1. Select the input text component on the JSF page.
    2. In the Property Inspector, enter a value for the input text component. You can specify the value as an EL expression, for example #{pageFlowScope.inputValue}.
    3. In the Application Navigator, double-click the name of the called task flow to open its diagram.
    4. Click the Overview tab for the called task flow.
    5. Click Parameters and expand the Input Parameter Definition node.
    6. Click the Add icon next to Input Parameter Definition.
    7. In the Name field, enter a name for the parameter, for example, inputParm1.
    8. In the Value field, enter an EL expression where the parameter value is stored and referenced, for example, #{pageFlowScope.inputValue}.
    9. In the Class field, enter a Java class for the input parameter definition. If you leave the Class field empty, its value is by default implicitly set to java.lang.String.
    10. In the editor, open the diagram for the calling task flow.
    11. In the Application Navigator, drag the called ADF bounded task flow and drop it on top of the task flow call activity that is located on the calling task flow. Dropping a bounded task flow on top of a task flow call activity in a diagram automatically creates a task flow reference to the bounded task flow.
    12. In the Property Inspector for the task flow call activity, click Parameters and expand the Input Parameters section.
    13. Enter a name that identifies the input parameter.
    14. Enter a parameter value, for example, #{pageFlowScope.parm1}.
    Now when we try to fetch the value of parameter using #{pageFlowScope.parm1} in the jspx in called taskflow, its not giving the desired value.
    We even tried to set the to and from parameter of the jspx in called askflow. But no success.
    Can anyone let us know if we are doing smething wrong or exact steps to configure passing of parameters to a bounded task flow and retrieving it in a jspx page will also help.
    Thanks in advance.

    Hi Tushar,
    In step# 14, the value should be "#{pageFlowScope.inputValue}" (should be the same as the value in step#2) .
    tushar wrote:
    Now when we try to fetch the value of parameter using #{pageFlowScope.parm1} in the jspx in called taskflow, its not giving the desired value.To display the passed parameter, you should use "#{pageFlowScope.inputValue}"<----- should be the same as the value in step#8
    Regards,
    Rommel Pino

Maybe you are looking for

  • Tables for IV & excise

    In which tables do the header & item level fileds are stored in Invoice Verification? Also in which table the taxes as well as excise duty are stored? regards VS

  • Image conversion settings

    This question was posted in response to the following article: http://help.adobe.com/en_US/robohelp/robohtml/WS58A8F266-0345-4a92-AE66-24F1832E8C6F.html

  • Playing old games on new Mac

    Hello, I have a macbook pro and i want to play this old powerPC mac game called Indiana Jones and the Fate of Atlantis. Seeing as how my computer is intel based, i dont have classic environment. I put the game CD into my computer and it reads, but do

  • I have cs2. Was running on OSX Snow Leopard.  Upgraded OSX to Lion. Now CS2 will not run (PowerPC)

    I would like to upgrade to Photoshop CC.  Do I get a discount for owning cs2?  How do I claim the discount?

  • Time Capsule Set Up Problem

    Hello, I am trying to set up my new time capsule. I have an existing wireless network with an existing (linksys) router that I would like to use. When I open AirPort Utility it says "AirPort Utility found an AirPort Express with 802.11". But for exam