Help on adf taskflow scope

Hi,
I am using JDeveloper 11.1.1.4 and ADF-BC in my application.
In one of my modules,I have the following scenario.
I have a bounded task flow and a page fragment[ex: mainTabs.jsff] on it.I have registered a backing bean with scope pageFlow and some name[ex:mainTabsBean].
In the mainTabs.jsff file , I have four tabs.[I have to show separate table in each tab] and two buttons Save and Cancel.
So I created 4 taskfows with corresponding jsff files and in all the 4 taskflows, I have registered the same backing bean as above and with same scope[scope pageFlow  and  name 'mainTabsBean']
I dragged and dropped these taskflows as regions in the mainTabs.jsff in the corresponding showDetailItem tags for tabs.
I want to have the same instance of 'mainTabsBean' being used in the mainTabs.jsff as well as the tab pages.
But the instances are coming differently when accessed from mainTabs.jsff-->Save button and subTab.jsff --> some action.
Please advice where am I doing wrong or which scope to use in this case.
Regards,
Praveen

Hi,
First add all beans to taskFlow as managedBeans,then keep one bean as a main bean(say MainBean) and add other beans as manageBean property to MainBean.and in MainBean you can access all subBeans as follows
class MainBean {
SubBean subBean;//define setters and getters
SubBean2 subBean2;//define setters and getters
SubBean3 subBean3;//define setters and getters
*manageBean property* name should same as above define instances names(subBean,subBean2,subBean3...)

Similar Messages

  • ADF Taskflows with EJB and pageflow scope

    Hi,
    I am trying to create a simple registration page which is very simillar to FOD customer registration using EJBs instead of ADF BC.
    I can achieve the registration in one page but I wanted to try this using a wizard based process using ADF taskflows.
    I created a bounded taskflow with 3 pages. page1 is employee details, page2 is job details, page 3 is the summary page. I have JPA entities for Employee and Jobs and an EJB3 session Facade. I have used the Employees default constructor to create the UI bindings from the constructor section of the data controls. This creates an EmployeesIterator which I use it for bindings on all the three pages.
    My question is can I use this Iterator binding in pageflow scope? If yes How do I do this?
    The other way is to use a managed bean in pageflow scope and have UI bindings to the variables in managed bean. This option will work but I will not be utilising any of the features of ADF bindings.
    Can anyone please suggest which is the better option.
    Thanks
    Venkatesh

    Hi,
    pageDef files can be shared, but their instances aren't. The caching is on the data control side, which means that instead of using a constructor you would break up the input form into method calls like
    createPerson(String, fn, String ln, String address)
    createInterest(String hobby1, String hobby2);
    dagging and dropping the method calls should the reate an input form. Submitting the forms allows you to build a new person object on the session facade which at the end is committed. This way the ADF binding works across pages, operating on a single new object
    Frank
    Ps.: Note that I did not run this example for a test

  • New ADF Taskflow transaction acquires a new JDBC connection?

    Hi,
    I would like to know more about ADF Taskflow transaction in relation to JDBC Connection.
    tf1 ----(contains)---- page1 and call to tf2
    tf2 ----(contains)---- page2
    page1 - search objects
    page2 - edit objects
    I have two pages part of two taskflows, first taskflow does not create any transaction but the page1 in tf1 shows a searh screen for objects. I want to use transaction behavior of ADF TF for tf2 which is called in tf1.
    My tf2 contains a page for edit objects, if i set New transaction as TF transaction behavior for tf2.
    Does it really acquire a new JDBC connection?
    I really appreciate if someone can help me with this.
    Thanks,
    Sunil.

    "Is there any way to achieve 1 user ---> 1 connection ?"
    I don't claim to be an expert on answering this as there's still a lot of things I need to investigate, and other's in the forum may chime in with more informed answers, but my understanding is you need to:
    a) Use a single root AM
    b) Configure your BTFs to use "shared data control scope" and the same AM
    c) All of your BTFs should use "Use existing transaction if possible"
    Because of "c", the very first BTF called, will not have a transaction to borrow, so it will establish a new transaction and therefore a new connection.
    An alternative is, and I'm on shaky grounds here so please check this for yourself, but you could set all your BTFs to "use no transaction", which implies I believe they switch back to the model used in JDev 10g, where it's purely your AMs that determine connections/transactions.
    As for saying 250 connections sounds very high, that's really up to you. If you build an application that you need to support a user with multiple transactions, it's your requirement that causes this. IMHO Oracle has given you the flexibility to build your application anyway you want, so it's up to you to decide if you want multiple concurrent transactions per user or not.
    Finally regards the behaviour observed in WLS, note that the AM pooling options can influence the behvaiour of connections, so it's hard to say what you're seeing is correct, it depends. A suggestion is to install Oracle's Fusion Middleware Control application and use that for monitoring statistics; the FMW Control has smarts built it to help you observe the AM pooling and connection pooling. Andrejus Baranovskis has a few blog posts describing how he used this to track the pooling options.
    CM.

  • Not able to get the value in ADF taskflow on load

    Hi,
    I have created an ADF task flow. I have created a ViewObject in this ADF taskflow and I am setting the value of this ViewObject using the java API.
    The issue is that i need to show the data when this ADF task flow executes first time.
    Currently I am getting the blank table in jspx page when ADF task flow is run. Now when I click on a button then I can see the required data in the table.
    Please help me to solve this issue.

    Thanks for the reply.
    I have tried placing the code to get the set the data in table and display the same from table in bean constructor, but I am getting table value as null.
    Looks like it is not able initialize the table until the jsff page gets loaded.
    Does jsff page gets loaded after bean constructor method gets called ?

  • How to get BPM Payload attribute value in ADF TaskFlow

    Hi,
               Activities which I did : I have created ADF Project. Then I created ADF TaskFlow through 'ADF TaskFlow Based on Human Task' option by locating BPM task. So now TaskFlow is been generated and also respective dataControl value also generated. In TaskFlow I created new .jspx file. I am going to design this jspx page by drag and drop from VO instances from dataControl. So for this jspx page, at runtime value will be populated from DB Table.
                      My Requirement :  When the Flow initiated, there will be Parameter value passed to the TaskFlow through Payload which is available in DataControl. So now I based on the Payload parameter value I need to filter DBTable and show the respective value in jspx page which I created in TaskFlow. So getting Payload value and applying filter on VO based on Payload parameter value has to be done before rendering Page.
    I tried to achieve this schenario as like below :
           - Assume like there is attribute called 'transactionId', for which value will be passed to the TaskFlow through DataControl. I created VO based on EO and appended where clause as : "VO.Trans_Id = : bindVar". Created bindVariable called 'bindVar'. In jspx page I just Drag and Dropped VO instance as form. And also I drag and Dropped 'transactionId' as outputText from Payload. And also I created ExecuteWithParams in Binding section of PageDef and mapped that one with invokeAction item in executable section. So now both payload Iterator and invokeAction  will be created in PageDef. I kept Iterator as in the order of : PayloadIterator at first and InvokeAction second one, So that at runtime it will execute in that order. And also I given "refresh" property to payloadIterator and invokeAction to 'renderModel' and I mapped PayloadIterator id to  refreshAfter property of InvokeAction iterator. Now at runtime, So at runtime updated/Newvalue will be retrived to Payload attribute by executing payloaditerator. So now for 'transactionId' value vill be retrieved. Next invokeAction will take value from newly retrieved 'transactionId' as input and execute query. So now VO will be filtered and need to be shown. But instead of that getting error saying like 'No outcome metadata specified for method call activity 'null'.'
    Is this way is correct? If yes, then What mistake which I have done?
    Is any other way to acieve this schenario?
    Do the needful.
    Thanks with Regards,
    PraveenKumar.N

    Guessing you might have looked at this at some point, but you might want to consider using the setCurrentRowWithKeyValue method to do this.
    Here's a blog post that I wrote a while back that goes through step-by-step what I think you're trying to accomplish:  Using a BPM Process Variable on an ADF form to Retrieve Database Information | AVIO Consulting
    Hope this helps,
    Dan

  • ScrollBar Behaviour of ADF Taskflows rendered as Inline Popup

    Hi All,
    I am using Jdeveloper 11.1.1.5.
    I have created a bounded Taskflow and then i have used two other taskflow in my current taskflow as Inline Popup.Functionality wise everything works fine but if my given taskflow size i.e the window width and height parameters are small then the page content then automatically the Scroll bar comes into the Taskflow at runtime.
    It is good to have a scroll bar automatically but it doesn't work in a correct manner. When my page render , the scroll bar is situated at the edges of the taskflow .Now if i go down , automatically scroll happens and comes to the default position.
    This makes users bit in a hazy situation. I don't want the scrollbar in the ADF Taskflow which rendered as Inline Popup.I want the scrollBar inside thr page which can help users to do scroll in a proper way.
    Is there any way to achieve this ?
    Regards,
    Shah

    Hi All,
    Any suggestions please on this.
    Regards,
    Shah

  • Invoke ADF taskflow with parameters using POST

    Hi,
    Can someone give an example or point me to an example describing invoking adf taskflow with parameters?
    The requirement is to have the parameters passed using POST method and not passing the parameters in the url.
    Jdev: 11.1.1.4.0
    Thanks!

    Hi,
    a use case for the requirement would have been good to have as yet I can't tell if I am helping you with something useful (hope so) or stupid (for which there would be a better approach to use instead if only we knew the use case).
    Anyway, here's a document describing what you asked for
    http://adfpractice-fedor.blogspot.de/2013/07/url-task-flow-call-with-http-post-method.html
    Frank

  • ContentPresenter ADF Taskflow - Avoid re-write of content URL

    Hello,
    I see content presenter ADF taskflow has a feature that re-writes content URL. In my case, i show a HTML content item in content presenter which contains a download link to a DOC file present in UCM (as below). On render, internally content presenter re-writes the URL as below.
    Experts: I want to know if there is any way to override this feature of content presenter.
    1) Its not just ".doc" extensions, any link starting with "/cs" is re-written by content presenter
    ContentPresenter - Avoid re-write of content URL
    Original HTML from UCM:
    Please <a href="/cs/groups/asset/documents/contenttype1/~asded/ad1.doc"> click here </a> </p>
    Rendered as below by Contentpresenter:
    Please <a href="/appcontent/faces/oracle/webcenter/sitestructure/render.jspx?datasource=UCM%23dDocName%DOC_CONTENTID"> click here </a> </p>
    Appreciate help.
    PS: This Taskflow was OOTB built for WebCenter and may be should be part of that forum, but given frequency of responses, I have add here.

    Hi.
    As you said, Content Presenter has a urlRewriterClass in the service definition of type oracle.webcenter.content
    My recommendation is to open an Oracle-SR to ask Oracle for the best approach or what to do with it.
    A solution can be overwrite the Java Class of the rewriter just to avoid the transformation of the URL. It isn't recommendable.
    I hope it helps.
    Regards.

  • ADF Taskflow Navigation

    Hi All,
    I am stuck with a problem of ADF TaskFlows and need a help quickly.
    The description is as follows.
    After login to the application first page i encounter is a jspx page say start.jspx on which i have dragged a bounded taskflow called as TF1. I have 10 jsff pages in this taskflow say(A, B, C, D, E, F, G, H, I, J.)
    Now on one of these pages (say A) i have a link which will open the page B. I have dragged another taskflow say TF2 on B. In TF2 i have 5 jsff pages say (AA, BB, CC, DD, EE).
    Now from page BB i want to navigate to page D of the first taskflow.
    Please help on the same.
    Thanks

    Bind RegionNavigationListener of the region(for TF2) with a bean method and in bean you can navigate from
    if(regionNavigationEvent.getNewViewId() == null){
    NavigationHandler nh =
    FacesContext.getCurrentInstance().getApplication().getNavigationHandler();
    nh.handleNavigation(FacesContext.getCurrentInstance(), null,
    "PROVIDE_CONTROL_FLOW_CASE_NAME_TO_GO_TO_PAGE_D");
    Amit

  • ADF taskflow performance

    I heard that ADF taskflows may slow down the performance at runtime as server needs to maintain pageflowscope variables and complete hierarchy of pages for each user. Is it right?
    Thanks
    Sanjeev

    Hi Frank, Timo
    Thank you for your input.
    I was also thinking on similar lines but let me wear a black hat and try to think all negatives about task-flow
    1) Generally we have 10 task-flows on a page. If each flow is maintaining 10 variables. It means 10 hashmap with 10 variables. Now if 1000 users try to access this application it means (10000 hashmap objects and each with 10 variables). Point is with every new user number of hashmap instances will be multiplied.
    2) We can also register beans in pageflow scope. Now if we bind UI component on such beans, then pageflow scope will not remain light weight. (I know its not good practice to bind component on pageflow beans as ui components are not serializable and they can not be passivated but still if we want to save state of ui components across the page.)
    3) If by mistake we make taskflow to use new datacontrol instance. Now AM instance will be associated with task flow and AM could be memory consuming.
    (I used the word 'by mistake' here because this setting should be derived from functional requirement. If functionality requires it that way, without taskflow also we will end up with 2 AM or 1 AM with two different vo instances. But yes if we set it wrongly by mistake it could be sever impact of memory consumption)
    I can't think of any. If you know any downside of taskflow please share.
    Thanks
    Sanjeev.

  • ADF taskflow and runtime Customizations

    Hi,
    I have a taskflow that contains panel customizable, which is deployed as adf library to my webcenter portal application.
    When I open resorces catalog in composer mode at runtime I am able to add an instance of the taskflow to the page then add content into the customizable area.
    When I add another instance of the taskflow to a page anywhere in the portal it picks up the runtime changes i made to the first instance.
    Is there a way to stop this behaviour and allow multiple instances of a taskflow to run independently.
    My Taskflow:
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
    xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable">
    <cust:panelCustomizable id ="pc1" xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable"
    layout="scroll" showEditAction="true"
    showSplitAction="true"
    rendered="#{Content.display}">
    <af:outputText id="ot1" value="EditId"
    binding="#{Content.ID}"
    rendered="#{securityContext.userInRole['Administrator']}"
    />
    </cust:panelCustomizable>
    </jsp:root>
    So the user can manipulate what goes into the content area at runtime.
    Regards

    Hi,
    To debug it on production, can you check on the hot-deployment area of Spaces apps to validate the shared library reference is updated in weblogic.xml is picked up:
    WebCenter_Domain_Home/servers/WC_Spaces/tmp/_WL_user/webcenter_11.1.1.4.0/<depl_prefix>/war/WEB-INF/weblogic.xml
    - Substitute respective depl_prefix with latest hot deployment folder created inside WebCenter_Domain_Home/servers/WC_Spaces/tmp/_WL_user/webcenter_11.1.1.4.0 directory for your instance.
    Cross verify the shared library reference for the ADF taskflow is reflected in the weblogic.xml for the Spaces server to reflect it.
    I hope it helps
    Thanks,
    Pramod

  • Custom ADF Taskflow to be displayed as part of Human Task notification

    Hi all,
    I am trying to display a custom ADF taskflow as part of notification of a Human Task. I see multiple ways of implementing it and need guidance on how to go about this.
    As a first step, I created a taskflow based on the human workflow task. This is WEB-INF/oracle/apps/xyzcommon/activities/publicUi/worklist/flow/myTaskflow.xml. Then I see 2 options -
    Option 1 - Use setTaskDisplayUrl while creating the task
    oracle.bpel.services.workflow.task.model.Task task = objectFactory.createTask();
    String AppUrl = oracle.topologyManager.client.deployedInfo.EndPointProvider.getExternalEndpoint("xyzCommon");
    String taskflowUrl = AppUrl + "/faces/adf.task-flow?_id=myTaskflow&_document=WEB-INF/oracle/apps/xyzcommon/activities/publicUi/worklist/flow/myTaskflow.xml";
    task.setTaskDisplayUrl(taskflowUrl);
    Option 2 - Define the taskflow in the Enterprise Manager - Add or remove the URI for the user defined task details application.
    Setup the Application Name=worklist, Host Name, HTTS Port, URL=/xyzCommon//faces/adf.task-flow?_id=myTaskflow&_document=WEB-INF/oracle/apps/xyzcommon/activities/publicUi/worklist/flow/myTaskflow.xml
    Questions -
    1. Are both the above options required to get my notification correct or is just one of them enough? If one of them is enough, which is better to use?
    2. Is creating the taskflow from the human workflow task the only way to customize my notification to show a taskflow?
    Thanks,
    Srini

    Learnt that I need to follow this link and no explicit setting is required in code.

  • Easy way to evaluate a complex return type in adf taskflow

    Hi,
    I use a method call in adf taskflow where I call a bpel ws . This bpel has a complex return type. I want to evaluate in the taskflow router if STATUS==true . Can this be done with pageflowscope (in the method call , I have a return value) or do I need a methodIterator / accessorIterator in the pagedef.
    thanks edwin
    <?xml version="1.0" encoding="UTF-8" ?>
    <JavaBean xmlns="http://xmlns.oracle.com/adfm/beanmodel" version="11.1.1.47.96"
    id="process_Result" Package="nl.ordina.order.view.CreditCheck"
    BeanClass="nl.ordina.order.view.CreditCheck.process_Result"
    isJavaBased="false">
    <Attribute Name="STATUS" IsUpdateable="0" Type="java.lang.Boolean"/>
    <Attribute Name="LIMIT" IsUpdateable="0" Type="java.math.BigDecimal"/>
    <Attribute Name="REASON" IsUpdateable="0" Type="java.lang.String"/>
    </JavaBean>
    Here is the methodaction in the pagedef
    <methodAction id="process" RequiresUpdateModel="true" Action="invokeMethod"
    MethodName="process" IsViewObjectMethod="false"
    DataControl="CreditCheck" InstanceName="CreditCheck"
    ReturnName="CreditCheck.methodResults.process_CreditCheck_process_result">

    nice try,
    Unfortunately your method is easily circumvented by either 1.) disabling javascript in the browser preferences or 2.) viewing the source code for the page and clearly seeing the required password or 3.) simply bookmarking and visiting protectpage.html
    It may take you 5 mins. to password protect your iweb site by using the method you've described, but it would take a visitor less than a minute to bypass the password protection. You need server-side scripting like php to enable real password protection so that information is processed on the server before the page is loaded.

  • Javascripts and ADF Taskflows

    Hello All,
    I am using JDeveloper 11.1.1.5 (on Fedora 64-bit).
    This one has been driving me nuts for a while. I have uploaded a simple testcase here - http://dox.bijesh.info/SimpleJS.zip.
    In this particular testcase, I have an ADF taskflow composed of 2 page fragments. This taskflow is embedded as a region in a JSF page. Both the page fragments include some javascript embedded via af:resource and invoked through a clientListener on a button within each. Now, the JS on any page other than the "default activity" page does not get fired on the button action. It is as if the javascript did not get loaded at all. In fact when I examine this in Chrome, the error console shows an error as soon as I navigate to the second page fragment - "Uncaught ReferenceError: jspage2 is not defined".
    I have tried using trh:script and that had the same problem. This happens with referenced JS files (through the source attribute) too.
    My original use-case is to build a reusable Maps component which involves quite a bit of Javascript. Being a reusable library, I wouldn't ideally have control of where my taskflow will be embedded. And therefore embedding the JS in the initial pages is not a viable solution.
    All suggestions are welcome.
    Best Regards,
    Bijesh

    Hi Frank,
    First thanks for your answer.
    I moved my script this way:
    <?xml version='1.0' encoding='UTF-8'?>
    <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
                    xmlns:f="http://java.sun.com/jsf/core" xmlns:dvt="http://xmlns.oracle.com/dss/adf/faces">
        <af:decorativeBox id="db2" theme="light" binding="#{backingBeanScope.beanDvtMapas.db2}" clientComponent="true">
            <f:facet name="center">
                <dvt:map startingX="-47.76" startingY="-18.84" mapZoom="2"
                         mapServerConfigId="mapConfig" baseMapName="CTBC_IREDES.MAPA_TASKFLOW"
                         inlineStyle="width:100%; height:450px;" id="m2"
                         srid="8292" unit="METERS" copyrightText="Todos os direitos são reservados à ALGAR TELECOM"
                         binding="#{backingBeanScope.beanDvtMapas.m2}">
                    <f:facet name="rtPopup"/>
                    <f:facet name="popup"/>
                </dvt:map>
            </f:facet>
            <f:facet name="top">
                <af:group id="grp" binding="#{backingBeanScope.beanDvtMapas.grp}">
                    <dvt:mapToolbar mapId="m2" id="mt2" showViewMenu="false"
                                    binding="#{backingBeanScope.beanDvtMapas.mt2}" showDistanceTools="false"
                                    showSelectThemeDialog="false" showSelectThemeMenuItem="false"
                                    showSelectionTools="false"/>
                    <af:commandButton text="escondido" id="cb1"
                                      binding="#{backingBeanScope.beanDvtMapas.cb1}" visible="false" clientComponent="true">
                        <af:serverListener type="clickMap"
                                           method="#{backingBeanScope.beanDvtMapas.recebeIpid}"/>
                    </af:commandButton>
                    <af:resource type="javascript" source="../js/mapUtil.js"/>
                    <af:resource type="javascript">
                         var temas = new Array();
                         temas[0] = 'PCM_DISTRIBUICAO';
                         temas[1] = 'CAIXA_TERMINAL';
                         var map = AdfPage.PAGE.findComponent( 'r1:0:m2' );
                        alert(map); //undefined
                        showMapWithThemes('m2', temas);
                    </af:resource>
                </af:group>
            </f:facet>
        </af:decorativeBox>
        <!--oracle-jdev-comment:auto-binding-backing-bean-name:beanDvtMapas-->
    </ui:composition>My script was loaded but it didn't find the components in the page fragments, what can I do to solve this question?
    Do you have a idea?
    Today I try to search the components this way:
    AdfPage.PAGE.findComponent( REGION_ID + 0 + COMPONENT_ID)[]s,
    Renan

  • ADF Taskflow Transaction Management Pattern

    We have a project that consumes public common taskflows from a shared library.
    How should we define the transaction management of these public common taskflows?
    Who is respondsible for the transaction management?
    I am able to understand the various transaction handling mechanisms suppported by ADF taskflow from the following link in the Developer's guide:-
    http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/taskflows_complex.htm#BABICCGC
    But I would like to understand the right pattern for implementating the above.
    Please provide your inputs/links on the same.
    Thanks in advance,
    Navaneeth

    There is no "right" way to do it. If the task flows are standalone, independent transactions that operate independently of any master task flows, then you can have them manage their own transactions; if you want them to join any existing transaction, you would do that. Without an example and without understanding the purpose for which you are building the common taskflows, it's pretty impossible to say much of anything.
    John

Maybe you are looking for

  • Quick question about null terminator string!

    Hello, I always feel that a char array should end with a "\0". But just to clear up something here, if I do: char *a[10]; and I fill out the array with 10 characters, then, should we *always* append the "\0" at the end of this array? And if so, shoul

  • Loading Yahoo mail causes screen resolution error

    Whenever I load Yahoo mail in FF7, I get an error message saying my screen resolution is too low. However, my resolution is 1440 by 900, the native setting. This only happens in FF7, never in other browsers. It also happens when I use Firefox's zoom

  • Sql server

    Problem: Sql server CPU usage is 70%-100% without Lookout running and with Lookout Hypertrend becomes even worse, have to wait for a several seconds to recognize mouseclick. Platform is  Laptop AMD Sempron 3000+,  512MB Windows xp sp2, where memory u

  • Recurring Kernel Panic on startup, pls advise

    Can I get some advice on how to diagnose a persistent kernel panic on startup? About this Mac Version 10.4.11 Processor: 1.67GHz PowerPC G4 Memory: 1.5GB DDR SDRAM (PowerBookG4) panic(cpu 0 caller 0x002E1EC4): Unable to find driver for this platform:

  • Any known compatible issues between Illustrator CS6 & Photoshop CS2?

    Any known compatible issues between Illustrator CS6 & Photoshop CS2?? thanks alot.