Can we create application using only bounded task flow ?

I am new to ADF ..
can we create application by using only bounded task flow ...?
one unbounded task flow is necessary for any application ? ....
i searched on net ..but its not became clear
Thanks

I believe that it requires you to have at least one unbounded task flow as the standard entrance point for the application. However, I don't think there is anything stopping you from having the unbounded task flow only have access to your first bounded task flow. However, one of the purposes of the unbounded task flow is to define the different acceptable entrance points to your application.

Similar Messages

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

  • Calling bounded task flows imported as ADF libraries

    Hello,
    I have a main application referencing many bounded task flows included in ADF libraries.
    Is there a way to make the application not throwing exceptions if one of these libraries including the called task flow is not found?
    The first question is how to catch the exception "Caused by: oracle.adf.controller.ControllerException: ADFC-02001"
    The second problem is that once an exception is thrown , the only way to make the application work again with that task flow is to redeploy the whole application with the missing library in the proper place.
    It seems it is not possible to just add the library at run-time.
    Redoplying an application also seems to invalidate all the current open sessions.
    Could you give me suggestions or best practice on making the main application more indipendent from the libraries?
    Thanks.

    Hello Frank,
    It seems there's no way to catch the exception thrown when dinamically calling a bounded task flow in a (missing) library. In facts, I added the single page of the main application as default exception handler activity. I also tried to catch ALL exceptions in the Launcher class below, but I had no luck at all. Task flows are called dinamically from this common piece of code (appropriate for the UI Shell template):
    try {
    if (newTab) {
    TabContext.getCurrentInstance().addTab(title, taskflowId);
    } else {
    TabContext.getCurrentInstance().addOrSelectTab(title,
    taskflowId);
    } catch (TabContext.TabOverflowException toe) {
    toe.handleDefault();
    } catch (ControllerException ce) {
    System.out.println("The flow arrives here " + title + ": " + taskflowId);
    } catch (RuntimeException re) {
    System.out.println("The flow arrives here " + title + ": " + taskflowId);
    } catch (Exception e) {
    System.out.println("The flow arrives here " + title + ": " + taskflowId);
    I also tried to call the task flow in a remote application, but TabContext.getCurrentInstance().addTab(title, taskflowId) expects the taskflowid to be part of the main application, not of the remote app, since addTab() always add a "/" before the taskflowid String passes as parameter.
    So again my question: is there a way to profit by the dynamic features coming along with the UI Shell template, where task flows can be really referenced and called each time at run-time, no matter if libraries containing these task flows are present or not when deploying the caller application?
    I also repeat that from the tests I have done it looks like I can deploy the caller application without the referenced ADF libraries in their place (containing taskflows that should be called at run-time on user actions), but the problem in this case is that after that moment there's no way to fix the problem by just adding the missing library, that is you cannot place the library where it is expected to be and expect the caller to work after next call; this will just not work until next deploy of the calling application when libraries are in place . We also don't want completely separate web applications. We need task flows integration with the chance to modify and deploy these taskflows as ADF libraries at run time, separately from the caller of the taskflow, without needing to restart/deploy the caller application everytime a libraries changes or a missing library is added.

  • Best practice question for Bounded task flows

    We are new to Jdeveloper/ADF and I was wondering if we should always try to use a bounded task flow for our applications... is this considered the best way to develop an app? even the small single page ones?
    Thanks in advance.

    Hi,
    let me turn teh question around: How many tools do you have at home beside of a hammer ? In other words, its the problem you need to solve (and use cases are problems) that should determine the use of bounded task flows and its granularity. Note that for each use case the bounded task flow makes a good candidate for delivering it. Doesn't mean that every single page needs to go into its own task flow. For general bounded best practices have a look here
    http://www.oracle.com/technetwork/developer-tools/jdev/adf-task-flow-design-132904.pdf
    Frank

  • Pass parameter from one jsff to other in bounded task flow

    Hi All,
    I'm using 11g adf.
    I have a requiement to get parameters value from one jsff to another jsff .
    In bounded taskflow , the trans.jff has parameters which i have to carry to couple of detaill.jsff (5 jsff).
    In between trans.jsff and detail.jsff am using router to validate the path to call particular detail.jsff.
    Issue now i need some parameter value to send from trans.jsff to detail.jsff.
    i have used below in trans.jsff :
    <af:commandToolbarButton text="update ''}" id="ctb_update"
    action="callingPages"
    actionListener="#{RTACorrespondanceQry.SignatureActListionar}">
    <af:setActionListener from="#{bindings.TransBatchNo.inputValue }" to="#{requestScope.batchNo}"/>
    </af:commandToolbarButton>
    I have created batchNo parameter in bounded task flow parameter
    In bean i try to retrieve value like dis JsfUtils.resolveExpression("#{pageFlowScope.batchNo}")
    In detail.jsff -- #{pageFlowScope.batchNo} in value output text component.
    Getting null value.
    thanks in advance

    Hello user9010551 ,
    you are set a value in requestScope
    <af:commandToolbarButton text="update ''}" id="ctb_update"
    action="callingPages"
    actionListener="#{RTACorrespondanceQry.SignatureActListionar}">
    <af:setActionListener from="#{bindings.TransBatchNo.inputValue }" to="#{requestScope.batchNo}"/>
    </af:commandToolbarButton>and read a value in pageFlowScope !!!!
    JsfUtils.resolveExpression("#{pageFlowScope.batchNo}")

  • Can ADF Faces Dialog Framework be used in a Bounded Task Flow ?

    Jdev. 11.1.1.4
    I have read chapter "19 Using Dialogs in Your Application" in the Jdev documentation.
    There explains that there are mainly two methods to open dialogs in ADF:
    The first (point 19.2) is calling a bounded task flow from a view activity (for example). This system can only open modal windows.
    The other is using the ADF Faces Dialog Framework and it seems to be more general. In point "19.3.1 How to Define a JSF Navigation Rule for Opening a Dialog" it is explainied the way to achieve this but the explanation begins with "In the adfc-config.xml file, create a page flow for".
    does this mean that I can not use this technology inside a Bounded task flow ?
    I have tried and it seems that it doesn't work.
    Currently we are using af:showpopupbehaviour to open popups, but this doesn't work with task flows and I don't like this.

    does this mean that I can not use this technology inside a Bounded task flow ?ADF Faces Dialog Framework can be used in both unbounded and bounded taskflows.
    I have tried and it seems that it doesn't work.The command commponent outcome must begin with "dialog:" and the command component tag must have useWindow="true", for example:
    <tt><af:commandButton action="dialog:toEdit" useWindow="true" .../></tt>
    Currently we are using af:showpopupbehaviour to open popups<af:showPopupBehaviour> can be used to open inline popups, but it has nothing to do with the Dialog Framework. Inline popups and the dialogs of the Dialog Framework are two different things.
    Dimitar
    Edited by: Dimitar Dimitrov on Jul 27, 2012 3:33 PM

  • Can't create an ExecuteWithParams activity in a bounded task flow

    I'm trying to replicate the application in the demo, Passing Parameters to a TaskFlow on the URL - http://www.youtube.com/watch?v=3cklxe1qq5I
    I created a ViewObject named PagerByLastName which has an iterator with the generated name, PagerByLastName1Iterator
    (in Data Controls, a node is created for PagerByLastName , named PagerByLastName1
    PagerByLastName1 has query with a parameter and binding variable for the parameter.
    Next, I created a bound task flow and tried to drop an ExecuteWithParams from within PagerByLastName1 onto the bounded task flow.
    However, in the Edit Action Binding dialog that opens, the Data Collection section is read-only and I'm unable to select a data collection to create
    the ExecuteWithParams activity.
    A warning message appears as I try to drop ExecuteWithParams -
    "WARNING: IteratorNameNotFound--AppModuleDataControl1.PagerByLastName1"
    However, the iterator name should be PagerByLastName1Iterator
    Known issue? Is there any workaround?
    Product Versions:
    Oracle JDeveloper 11g Release 1 11.1.1.4.0
    Studio Edition Version 11.1.1.4.0
    Build JDEVADF_11.1.1.4.0_GENERIC_101227.1736.5923
    Copyright 1997, 2011 Oracle and/or its affiliates. All rights reserved.
    IDE Version: 11.1.1.4.37.59.23
    Product ID: oracle.jdeveloper
    Product Version: 11.1.1.4.37.59.23
    Thanks,
    John

    Shay Shmeltzer wrote:
    What do you mean when you say:
    created a ViewObject named PagerByLastName which has an iteratorA view object should have a query in it with a bind parameter.Correction, I saw in the Data Bindings source an iterator is generated for the ViewObject .
    The ViewObject does have both a query and bind variable defined for the parameter in the query.
    The query is
    select BEEPER, FIRST_NAME, MIDDLE_NAME, LAST_NAME, OUN from PERSON_ALL_V4 where ( ( ( UPPER(LAST_NAME) LIKE UPPER('%' || :lastname) ) OR ( :lastname IS NULL ) ) ) and cyber_status='Active'
    lastname is the bind variable
    I DnD the ExecuteWithParams node to the task flow and the Edit Action Bindings dialog opens, but I cannot select a data collection, the collections are collapsed
    and can't be expanded.
    Edited by: JWB on May 23, 2011 4:55 PM

  • Can not commit when using region in bounded task flow

    Hi All
    I am using Jdeveloper 11g R2 (11.1.2.3) & Weblogic 10.3.5.0
    I have 2 bounded task flow in my application (A and B)
    Each contain a fragment with few tabs (using af:panelTabbed)
    I have another common functionality in this 2 bounded task flows
    So I create another bounded task flow and add it as a region in tabs in task flows A and B
    But when I am going to the common tab and insert record and commit using task flow commit it is not commit records in database
    Is something wrong ? Any ideas how I can fix it?
    Regards
    Mohsen

    Hi Frank
    I am using below code for commit (from TaskFlowUtils class)
    public void commitTaskFlow() {
    getDataControlFrame().commit();
    public DataControlFrame getDataControlFrame() {
    BindingContext bindingContext = oracle.adf.controller.binding.BindingUtils.getBindingContext();
    String dataControlFrameName = bindingContext.getCurrentDataControlFrame();
    DataControlFrame dataControlFrame = bindingContext.findDataControlFrame(dataControlFrameName);
    return dataControlFrame;
    Your comment was too helpful , I change data control scope to shared and it is working now
    One more related question:
    Is adding bounded task flow into another fragment as region an advised approach?
    Thanks a lot
    Regards
    Mohsen

  • Can I reference page-flow bean from a bounded-task-flow page-fragment?

    I have a view activity implemented as page fragment in my bounded task flow.
    I declare a page-flow scope managed-bean in adfc-config.xml to do some initialization for the bounded-task-flow:
    <managed-bean id="__23">
    <managed-bean-name id="__22">TaskFlowBean</managed-bean-name>
    <managed-bean-class id="__21">view.backing.TaskFlowBackingBean</managed-bean-class>
    <managed-bean-scope id="__20">pageFlow</managed-bean-scope>
    </managed-bean>
    In my bounded task flow, the default activity is a method-call activity which call the page-flow bean method
    <method-call id="initFlow">
    <method>#{pageFlowScope.TaskFlowBean.initFlow}</method>
    <outcome id="__27">
    <fixed-outcome>showPanel</fixed-outcome>
    </outcome>
    </method-call>
    But JDeveloper (11.1.1.2) show a warning "Refereneed pageFlowScope not found" at the "Diagram" view of the flow definition.
    The fixed outcome of the default activity is to render a page-fragment which also reference the page-flow scope bean method getPanelTitle():
    <af:panelBox text="#{pageFlowScope.TaskFlowBean.panelTitle}" id="pb1">
    <f:facet name="toolbar"/>
    </af:panelBox>
    At runtime, the page fragment was rendered properly except the panel box title is missing. No other error is reported
    When I debugged the application, the bean methods initFlow() and getPanelTitle() didn't get call as the program didn't stop at the breakpoint set in the bean methods.
    The page fragment was rendered properly except the panel box title is missing.
    When I change the scope to backing bean, both initFlow() and getPanelTitle() get called but under a different backing bean.
    As the bean attributes set by initFlow() were not no longer set when getPanelTitle() was invoked even though the methods were invoked in the correct order.
    Why can't I use a page-flow scope bean within the bounded task flow?
    On further debugging, I noticed the bean was not created when it is set to be page-flow scope. I put a debug message in the constructor... never get called.
    When should a page-flow scope bean be created to be accessible on entry to a bounded task flow?
    Edited by: Pricilla on Apr 29, 2010 3:16 PM

    Please check the scope of the pageFlow from the manual.
    pageFlowScope is only available for the pages/views in that taskflow and not in the included taskflows.

  • How to use a managed bean in a bounded task flow without definig it in adfc-config

    Dear all
    I create a bounded task flow without page fragments (the pages are jspx), i created a jspx page with a button that its action has bounded to a managed bean function.
    i defined the managed bean on the corresponding bounded task flow, but it does not work.
    But there is no problem when i define the managed bean in adfc-config.xml.
    can anybody help me with this problem.
    is it possible to use jspx page with backing bean in bounded task flows, without defining the beans on adfc-config?
    Thank you very much

    Dear Timo
    I use jDev 11.1.1.6 and the scope is Request.Although when i use task flow page fragment and create jsff pages, there is no problem.

  • How to Call an ADF Bounded Task Flow Located in Another Web Application

    Hi.
    I'm working in JDev 11G TP3.
    I've read the section from the 11G documentation on Working with Task Flow Activities,
    specifically the section 15.5.3 on How to Call an ADF Bounded Task Flow Located in Another Web Application.
    I've followed the instructions but still can not seem to call another task flow in another application correctly.
    Can someone send a small example specifying how the (TaskFlow Reference) section
    should be filled in, and just a general simple outline of process to set the whole process up.
    Thanks

    Your EL for the remote-app-url needs to return something like this
    "http://www.acme.com:80/myapp/faces/adf.task-flow"
    where "http://www.acme.com:80/myapp/faces" is the root of the url you'd normally use to access the remote application.
    I filed two bugs:
    bug 6944247 to improve the documentation
    bug 6944246 to fix the fact that you currently have to specify the 'adf.task-flow' part. You shouldn't need to do that. But doing so for now will get it to work.

  • Can I create and use more than one repository on OVM 2.1.5

    The version of Oracle VM I am using is 2.1.5 .
    I wonder can I create and use more than one repository on OVM 2.1.5. Because I want to install different GOS on different disks.
    I know in Oracle VM 2.2 we can use following commands to realize that.
    a. #/opt/ovs-agent-2.3/utils/repos.py –n /dev/mapper/mpathxp1
    b. #/opt/ovs-agent-2.3/utils/repos.py –r UUID
    c. #/opt/ovs-agent-2.3/utils/repos.py –i
    And other repositories can also be mounted and found under /var/ovs/mount/UUID.
    But in Oracle VM 2.1.5, seems just one repository can be created and mounted. For example:
    At first, I create a repository using mpath1p1:
    a. # mkfs.ocfs2 /dev/mapper/mpath1p1
    b. #/usr/lib/ovs/ovs-makerepo /dev/mapper/mpath1p1 C "cluster root"
    c. I can find the repository has been mounted under /OVS.
    But if I want to use "/usr/lib/ovs/ovs-makerepo /dev/mapper/mpath2p1 C "cluster root" to create another repository, and check the mount status using command "mount", these two disks are all have been mounted under /OVS.
    "# cat /etc/ovs/repositories", only mpath1p1 with UUID was recorded there.
    After reboot, only repository with mpath1p1 was mounted under OVS.
    Can anyone tell me how to use more than one repositories on OVM 2.1.5. Do I have to install all the GOSs on the same disk and repository.
    Thank you very much.

    Now I've known how to create different repository. They will be mounted under /OVS/UUID. Thanks.

  • Best Practice - Bounded Task Flows, Regions and Nested Application Modules

    Using JDev 11.1.1.3; understand that it's generally considered good practice to just have 1 root application module servicing model content / services for each page. In our application, we've used a number of bounded task flows and page fragments deployed as af:region's into pages as either a) views targeted in page-flow navigation, b) tab panel content inside a regular jspx, or c) af:popup / af:dialog content. As it stands, we've not engaged nesting of the application modules for this embedded region content, so these regions are no doubt instantiating new AM's if/when invoked. Should the AM's servicing these embedded regions be deployed nested within the root AM's, and then if so, does this change the way that the jsff / fragment content is actually developed (currently as per any other jspx using the DataControl pallete). Or are the best-practice directives talking about a page as being the design-time / declarative composition of content rather than the run-time aggregation of page + fragments ... in which case the fact that our embedded fragments are not using nested AM's is unlikely to concern.
    Thanks,

    Probably a better question for the ADF EMG: http://groups.google.com/group/adf-methodology?hl=en
    CM.

  • We can't create form using dblink  and synonim

    We have created a dblink pointing to a table in the remote database.
    When we create a form based on table or view using this dblink, we get the error "page not found".
    We read from
    Re: I can't create form using dblink
    that we must create a synonim, and this was done creating one in the same schema of the db-link using the "Database Objects" of oracle portal 10g (external db is an oracle 9.0.2).
    The new synonim work (tested with reports and pl/sql page)
    but if we click on "Grant Access" (of the synonim) we get the following error :
    Error: The underlying object of the synonym does not exist, is a remote object or is not of type function, procedure, package, sequence, synonym, table or view. (WWV-17076)
    Does form work only with table and view of the portal database (not external one)? or have we loose something in the creation of the synonim?
    Have someone succesfully created a form based on a db-link towards an external database?
    Thanks to all.

    Hei guys, has nobody created succesfully a data-driven forms based on a dblink towards an external database?
    I can't believe this!!!!

  • How to use Train Component only with Task-flows as Train Stops

    Hi,
    I'm using JDeveloper version - 11.1.1.6
    I have below requirement:
    In a Page when user clicks the button, display the Popup with Train Component. I have to use bounded task flow for each Train Stop. I don't have any views to be used as Train Stops. (Most of the Train Samples have Views / JSFF Fragments as Train Stops and child task flows as Train stops)
    Please let me know if I can achieve this.
    Any pointers would be helpful.
    Thanks
    Ravi

    Hi,
    train stops must be displayed on a view. So if you have a task flow that navigates to other taskflows then it needs to have at least a single view to display the train stops. If you attempt to show. If you enter a task flow then this task flow will have its own train model. So maybe its better to look at what your use case is and why you need to quite called task flows without properly exiting them
    Frank

Maybe you are looking for

  • Cannot Sync Ipod touch after upgrading to OS 3.0 (error 13001)

    I got the error 13001 when I sync after I upgraded my ipod touch (2nd gen) to OS 3.0. I tried to reinstall itunes and restore the ipod but the problem still cant be solved. Some topics here said that it can be solved if you do not sync the song with

  • Just uninstalled all Mozilla products in support of free speech

    I wonder how many other people Mozilla will fire for having views that some don't agree with. I'll also add that the latest iterations of Firefox have been slow, buggy and not worth fighting any more. I will miss Thunderbird though. Oh well.

  • Best Way To Update Intersection Tables

    Hi, I'm surprised I haven't been able to find anything on this, but I was wondering if I could get some advice as to the most efficient way to update an intersection table, i.e. a M:N resolution table. My example... Say I have a M:N relationship betw

  • Many Initial Issues - Please advise

    I got two identical new MBP on Wed at the Apple store. I had Time Machine backups from two other older MBP that I used. I ran each of those on the new laptops. Since then, one has been perfect. The other has had many issues... - Already one crash - I

  • Incremental number range in non leading ledger

    Hello Experts, I have a serious problem with regard to number ranges in non leading ledger. I have defined number range from 8000 to 8999 for document type SA. When I do a posting in FB50L, document number for non leading ledger is created as 8001. I