Testing Task Flows

Hi everyone
I'm to find a good way to unit test our bounded task flows. Has anyone here tried to do this?

A taskflow is an extension of the controller, hence is a collection of views. You could create a dummy container page on which you could test your TF, other than that, there is not an actual Java representation of a taskflow as there isn´t one for the jsf-config.xml in JSF.
Juan Camilo

Similar Messages

  • 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 request parameter to bounded task flow?

    Hi, this is probably a simple question, but just not sure how this should be done. I have a .jspx that contains an ADF region for a bounded task flow. The task flow has a required input parameter, e.g. objectId. I want to be able to pass a request parameter that's sent into the .jspx page to the task flow. For example, Test.jspx?id=123 should pass 123 for the objectId input parameter of the task flow.
    When adding the ADF region to the page, the Edit Task Flow Binding dialog prompted for a value for the objectId input parameter. I wasn't sure what I can put for the value so I just hard-coded something like 123 for now. So in the page definition file, sometihng like the following got added:
        <taskFlow id="testtaskflow1"
                  taskFlowId="/WEB-INF/taskflow/test/test-task-flow.xml#test-task-flow"
                  activation="deferred"
                  xmlns="http://xmlns.oracle.com/adf/controller/binding">
          <parameters>
            <parameter id="objectId" value="123"/>
          </parameters>
        </taskFlow>I'm wondering is there some EL expression I can use for the parameter value that gets the value of the id request parameter passed into the .jspx? Thanks.

    you have to use it like.. #{bean.idValue} and in the getter of the id Value use it like
    private int idValue;
    //setter
    //getter
    public int getIdValue(){
              HttpServletRequest request =
                (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
            int id = request.getParameter("id");
           return id;
    }

  • Adding Saved Searches task flow to a Page Template

    I am trying to add the Spaces "Saved Searches" task flow to my custom page template. I have tried a few different approaches and none seem to be working.
    First, I tried simply dragging and dropping the task flow from JDeveloper's Resource Palette into my template. JDeveloper created added the following to my template source code:
    +<af:region value="#{bindings.allsavedsearches1.regionModel}" id="pt_r1"/>+
    After uploading the changes to Spaces, there seemed to be no change to the rendered template.
    Second, I tried to simply add the task flow to a page in my test space via composer. However, as soon as I click the "Add" button next to the Saved Searches task flow, the page goes blank (white screen of death) and the following message shows up in the spaces error logs:
    javax.servlet.ServletException: com.sun.el.parser.ParseException: Encountered "\'" at line 1, column 65.
    Finally, I looked at how the out of the box templates implement the saved searches functionality. It appears that the saved searches use a custom folder in the Default Navigation Model. I looked at the source in the Default Navigation Model and found the following node:
    +<customFolder factoryClass="oracle.webcenter.search.view.rc.SearchServiceContextFactory" id="savedSearchesFolder" visible="true">+
    +<attributes resourceBundle="oracle.webcenter.webcenterapp.resource.WebCenterResourceBundle">+
    +<attribute attributeId="Description" isKey="true" resourceBundle="oracle.webcenter.webcenterapp.resource.WebCenterResourceBundle" value="NAV_APPLICATIONS_CUST_FOLDER_SEARCHES.DESCRIPTION"/>+
    +<attribute attributeId="IconURI" value="/adf/webcenter/foldersavedsearches_qualifier.png"/>+
    +<attribute attributeId="Title" isKey="true" resourceBundle="oracle.webcenter.webcenterapp.resource.WebCenterResourceBundle" value="NAV_APPLICATIONS_CUST_FOLDER_SEARCHES.TITLE"/>+
    +<attribute attributeId="WEBCENTER_SERVICE_ID" value="oracle.webcenter.search"/>+
    +</attributes>+
    +</customFolder>+
    I copied the entire node and put it in my navigation model. Upon rendering the template, I can see the new node in the navigation but when I click on it, nothing happens.
    Can someone please tell me if I am on the right track with any of these three approaches? Or where to look to diagnose the issues I am running into?
    Thanks,
    Joe

    UPDATE: I updated the "activation" property in the page def for the allsavedsearches task flow to be "deferred". Now I am getting an ADF popup menu with two menu items: "My Searches" and "Other Members" but clicking on the items does not trigger anything...
    Any thoughts? What additional information would be helpful for analyzing this issue?

  • Error while deploying the ADF task flow project based on a SOA human task

    Hi,
    I created a SOA project with a BPEL process containing Human task, deployed it and could able to test it successfully. I created ADF task flow project based on the Human task created in the earlier project and tried to deploy it. It is giving the following error. The idea is to display the task details in BPM worklist.
    [04:10:53 PM] [Deployer:149034]An exception occurred for task [Deployer:149026]deploy application RevisionApprovalMgmtTaskFlow [Version=V2.0] on soa_server1.: null.
    [04:10:53 PM] Weblogic Server Exception: weblogic.application.WrappedDeploymentException
    [04:10:53 PM] See server logs or server console for more details.
    [04:10:53 PM] weblogic.application.WrappedDeploymentException
    [04:10:53 PM] #### Deployment incomplete. ####
    [04:10:53 PM] Deployment Failed
    The server log shows this detailed error.
    java.lang.IllegalArgumentException
         at oracle.xml.xpath.JXPathExpression.evaluate(JXPathExpression.java:178)
         at oracle.xml.xpath.JXPath.evaluate(JXPath.java:288)
         at oracle.security.jps.internal.config.xml.XmlConfigurationFactory.initialize(XmlConfigurationFactory.java:425)
         at oracle.security.jps.internal.config.xml.XmlConfigurationFactory.getConfiguration(XmlConfigurationFactory.java:149)
         at oracle.security.jps.internal.config.deploy.CredentialStoreDeployer.getCredentialStore(CredentialStoreDeployer.java:56)
         at oracle.security.jps.wls.listeners.CredentialDeployment.migrate(CredentialDeployment.java:83)
         at oracle.security.jps.wls.listeners.JpsApplicationLifecycleListener.migrateAppCredential(JpsApplicationLifecycleListener.java:137)
         at oracle.security.jps.wls.listeners.JpsApplicationLifecycleListener.preStart(JpsApplicationLifecycleListener.java:78)
         at weblogic.application.internal.flow.BaseLifecycleFlow$PreStartAction.run(BaseLifecycleFlow.java:277)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.application.internal.flow.BaseLifecycleFlow$LifecycleListenerAction.invoke(BaseLifecycleFlow.java:194)
         at weblogic.application.internal.flow.BaseLifecycleFlow.preStart(BaseLifecycleFlow.java:57)
         at weblogic.application.internal.flow.HeadLifecycleFlow.prepare(HeadLifecycleFlow.java:279)
         at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:609)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:185)
         at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:53)
         at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:197)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:89)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
         at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
         at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Apart from these, I have Model and View Controller projects in the application. If I create the ADF task flow based on a Human task in another sample application, it works fine. Only in this application, it does not work. Not sure what this error is. Any ideas?
    Thanks,
    Manoj

    What I suggest is go into EM and undeploy this composite and all versions. (Only if you don't want the existing ones). Then redeploy your process. This will avoid the version conflict and create a new version. 1.0. Then the next time you try and deploy you need to either specify a new version or check the box to say the version can be over written.
    cheers
    James

  • Trying to create an annoucement ADF task flow.  Failure to authenticate

    Experts-
    I have created a JSPX page and added the announcement ASF task flow. After I deploy to my WLS instance I recieve the following error when browing the page. "failure to authenticate the user weblogic, due to: Unable to connect to discussion server."
    The java server log file throws this exception "Caused by: org.apache.ws.security.components.crypto.CredentialException: Failed to load credentials. Inner Exception: [Keystore was tampered with, or password was incorrect]"
    I am able to login to the OOTB discussion web app using the same user but not my custom ADF JSPX page.
    I have configured the JDEV Discussion forum connection with the following properties..
    keystore.location = "E:\Oracle\Middleware\user_projects\domains\working_domain\config\fmwconfig\webcenter.jks"
    keystore.type=jks
    encryption.key.alias=orakey
    encryption.key.password=welcome1
    keystore.password=welcome1
    I can test this connection with success.
    Anyone know why I can correctly login the OOTB discussion app using my default weblogic user but not the custom ADK app?
    I am also using the simple login page jdeveloper creates via the "configure ADF security"
    Thanks-

    even I am getting the same problem. I created a Discussion Forum Connection from my Jdeveloper. I tested the connection to be successfull.
    and when I run the ADF application having webCenter Discussion forum taskflow as a region , it says
    For more information on this failure, please set -Djps.auth.debug.verbose=true
    java.io.IOException: Keystore was tampered with, or password was incorrect
    + at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:771)+
    + at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:38)+
    + at java.security.KeyStore.load(KeyStore.java:1185)+
    + at org.apache.ws.security.components.crypto.AbstractCrypto.load(AbstractCrypto.java:525)+
    + at org.apache.ws.security.components.crypto.AbstractCrypto.<init>(AbstractCrypto.java:121)+
    + at org.apache.ws.security.components.crypto.Merlin.<init>(Merlin.java:62)+
    + at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)+
    at the UI page it says the
    failure to authenticate the user john, due to: Unable to connect to discussion server.
    Please suggest some debugging tips.
    Thanks
    Thyagy

  • Task flow-call  as a Dialog with inline-popup issue JDev 11.1.1.2.0

    I have a very serious issue with task flow-call running as a Dialog with inline-popup
    have bunch of data driven table components pointing to pageDefs with Iterators
    the problem is, the dialog comes first with nothing in it (blank) and it takes 3-5 seconds to fetch all views,
    this is useless, there is no option to control taskflow-call activation , like you do for af:region
    For reference : I am talking about this : http://jobinesh.blogspot.com/2010/08/refresh-parent-view-when-in-line-popup.html
    Download the workspace , connect as HR Schema and you will see what I am talking about
    looks really dumb, it would make sense to show dialog with data all at once, rarther than looking at blank screen to wait for the data to show up
    Edited by: user626222 on Sep 20, 2010 8:57 AM
    can I call this a bug?
    Edited by: user626222 on Sep 20, 2010 1:58 PM
    sometimes I wonder if anyone tested this, as soon as you have some data driven components on your page, you get all sorts of problems in ADF
    But something simple, Adf client side invokes the Dialog as a popup first, and then it thinks oh ya I get massive pageDef to load, so end-user customer will stare at the blank screen for 10 secs , hoping that something will come up or program is crashed
    Well, I am afraid to say you lost your customer :(
    Edited by: user626222 on Sep 20, 2010 2:29 PM
    Edited by: user626222 on Sep 20, 2010 2:35 PM
    Edited by: user626222 on Sep 20, 2010 2:35 PM
    Edited by: user626222 on Sep 20, 2010 2:36 PM

    ok, knowing this fact, I want to show some kind of status indicator during the wait time.
    Unfortunately, putting af:statusIndicator does not work untill after entire page loads
    <?xml version="1.0" ?>
    <?Adf-Rich-Response-Type ?>
    <content action="/EmpApp/faces/displayEmployees.jspx?_adf.ctrl-state=5plp6ahes_72">
    <fragment><![CDATA[<span id="f1::postscript"><input type="hidden" name="javax.faces.ViewState" value="!-e8tyzkiuc"></span>]]>
    </fragment>
    <fragment>
    <![CDATA[<div id="afr::DlgSrvPopupCtnr::content" style="display:none"><div id="j_id12" style="display:none">
    <div style="top:auto;right:auto;left:auto;bottom:auto;width:auto;height:auto;position:relative;" id="j_id12::content">
    <div id="j_id13" class="x142"><div class="x157" _afrPanelWindowBackground="1"></div>
    <div class="x157" _afrPanelWindowBackground="1"></div><div class="x157" _afrPanelWindowBackground="1">
    </div><div class="x157" _afrPanelWindowBackground="1"></div>
    <table cellpadding="0" cellspacing="0" border="0" summary="" class="x146">
    <tr>
    <td class="p_AFResizable x148" id="j_id13::_hse"> </td>
    <td class="p_AFResizable x14a" id="j_id13::_hce"><table cellpadding="0" cellspacing="0" border="0" width="100%" summary=""><tr>
    <td><div id="j_id13::_ticn" class="x151"><img src="/EmpApp/afr/task_flow_definition.png" alt=""></div></td><td class="x14e" id="j_id13::tb">
    <div id="j_id13::_ttxt" class="xz8"></div></td><td>
    <div class="x153"><a href="#" onclick="return false" class="xz7" id="j_id13::close" title="Close"></a></div></td></tr></table></td><td class="p_AFResizable x14c" id="j_id13::_hee"> </td></tr><tr><td class="p_AFResizable x14j" id="j_id13::_cse"> </td>
    <td class="p_AFResizable x14g" id="j_id13::contentContainer">
    <div id="j_id13::_ccntr" class="x14h" style="width:700px;height:430px;position:relative;overflow:hidden;">
    <div id="j_id14" class="xne" style="position:absolute;width:auto;height:auto;top:0px;left:0px;bottom:0px;right:0px">
    <iframe _src="javascript:'<html&gt;<head&gt;<title/&gt;</head&gt;
    <body/&gt;
    </html&gt;'" src="javascript:''" frameborder="0" style="position:absolute;width:100%;height:100%">
    </iframe>
    </div></div></td><td class="p_AFResizable x14l" id="j_id13::_cee"> </td></tr><tr><td class="p_AFResizable x14n" id="j_id13::_fse"><div></div></td>
    <td class="p_AFResizable x14p" id="j_id13::_fce">
    <table cellpadding="0" cellspacing="0" border="0" width="100%" summary=""><tr>
    <td class="p_AFResizable x14u" id="j_id13::_fcc"></td><td align="left" valign="bottom"><div class="p_AFResizable x14y"><a tabIndex="-1" class="x14w" id="j_id13::_ree" title="Resize"></a></div></td></tr></table></td><td class="p_AFResizable x14r" id="j_id13::_fee">
    <div></div></td>
    </tr></table></div></div></div></div>]]>
    </fragment>
    <script-library>/EmpApp/afr/partition/gecko/default/opt/frame-SHEPHERD-PS1-9296.js</script-library>
    This is how it launches the taskflow-call, so there is no way to control this behaviour from the calling taskflow's jspx, feels very closed system,why ADF is not making this behavior Open by some kind of client listener,
    <script>
    <![CDATA[AdfDhtmlLookAndFeel.addSkinProperties({"AFPopupSelectorFooterStart":"x11b","AFPopupSelectorHeader":"x114","af|panelWindow-tr-open-animation-duration":"300","AFPopupSelectorHeaderStart":"x115","AFPopupSelectorContentEnd":"x119","AFPopupSelectorContent":"x117","af|panelWindow::resize-ghost":"x144","AFPopupSelectorContentStart":"x118","AFPopupSelectorFooter":"x11a","AFPopupSelectorFooterEnd":"x11c","AFPopupSelectorHeaderEnd":"x116","AFPopupSelector":"x110",".AFPopupSelector-tr-open-animation-duration":"200"});AdfPage.PAGE.addComponents(new AdfRichPopup('j_id12',{'_dialogURL':'/EmpApp/faces/adf.dialog-request?_adf.ctrl-state=5plp6ahes_76&_rtrnId=1285074907739&__ADFvDlg__=true','_inlineFrameId':'j_id14','_launchId':'r1:0:cb2','_panelWindowId':'j_id13','_rtnId':'1285074907739','contentDelivery':'immediate'}),new AdfRichPanelWindow('j_id13',{'modal':true,'resize':'on','stretchChildren':'first'}),new AdfRichInlineFrame('j_id14',{'source':'javascript:\'\x3chtml>\x3chead>\x3ctitle/>\x3c/head>\x3cbody/>\x3c/html>\''}));AdfPage.PAGE.clearMessages();AdfPage.PAGE.clearSubtreeMessages('r1');]]>
    </script>
    AdfDhtmlRichDialogService.getInstance().launchInline there is no way for me to put af:statusindicator for the wait time using this way
    <script>AdfDhtmlRichDialogService.getInstance().launchInline('j_id12');*</script>
    </content>

  • ADF Task Flow Binding - Refresh ifNeeded being invoked even WITHOUT any Parameter change

    Using JDeveloper 11.1.1.6.0
    Issue: Task Flow Binding property "refresh = ifNeeded" seems to be triggered even without the mutation of the input parameter.
    As per definition, "ifNeeded: refresh the ADF Region if the value of a task flow binding parameter changes." (Reference: 17.5 Refreshing an ADF Region)
    Now for the setup which reproduces the issue.
    I'll focus at the fragment bounded task flow level and will skip the jspx side.
    taskflow: main-flow.xml
    contains a single fragment mainFgmt.jsff
    has a managed bean defined SampleBean.java as pageFlow scope.
    taskflow: sub-flow.xml
    contains a single fragment subFgmt.jsff
    has an inputParameter SampleBean.java (because it is an input parameter, by default it will be at pageFlow scope)
    !important - has a nested taskflow (task flow call as defined in the component pallete) called inner-flow (see below)
    the nested taskflow is the default activity
    the nested taskflow has an outcome pointing to subFgmt where outcome = "return"
    taskflow: inner-flow.xml
    contains a single fragment called stop.jsff
    has a return activity without outcome = "return"
    stop.jsff has a navigation pointing to the outcome.
    Finally mainFgmt.jsff has a task flow binding (pageDef)
    with id = "sub-flow.xml"
    refresh = "ifNeeded"
    parameter SampleBean being submitted as sub-flow's input parameter. (id=sampleBean, value=#{pageFlowScope.mainSampleBean})
    Assume that code compiles.
    In this scenario where the only tricky condition is the inner nesting (defined by !important), when the inner nesting decides to invoke its outcome to visit sub-flow's fragment, mainFgmt is restarting its taskflow which makes sub-flow start over again.
    Another way of saying it is, if sub-flow starts a nested activity and that nested activity exits out to utilize sub-flow's view. The high level definition which is mainFgmt's refresh ifNeeded is restarting sub-flow.
    In the above example if you notice, the bean (SampleBean) is not really being utilized except that it is completing the purpose of refresh=ifNeeded. This scenario is only to simplify the setup - in practical use this bean will be mutated to be utilized as a refresh mechanism.
    Now interestingly, if I change the pattern a bit then the issue will not happen:
    Don't use the nested taskflow (inner-flow) as the default activity, let a fragment of sub-flow hold the initial view.
    Navigate to the nested flow.
    Exit nested flow.
    Everything works.
    Now in this scenario, it seems like the sub-flow needs to have a view established first for it to be properly be used.
    So my questions are as follows:
    Can I consider the behavior of the refresh=ifNeeded as a bug in this usecase?
    Would it be better to utilize a different way of refreshing (maybe combination of refresh condition) to get around the issue?
    Is the use of the task flow as defined logical or does it cross any boundary or best practice that might be causing this behavior?

    Hi,
    actually you lost me in your description due to complexity. I lived under assumption that sub-flow already is a region on a view in main flow, but then you sad that
    "!important - has a nested taskflow (task flow call as defined in the component pallete) called inner-flow (see below)"
    which then confused me as to I have no idea if inner flow now is the second level nesting or first level nesting (should be second level nesting). If sub-flow is a region then having "has an inputParameter SampleBean.java (because it is an input parameter, by default it will be at pageFlow scope)"  is an unnecessary broad scope because the region wont live longer than view scope.
    Anyway, it seems that a region refresh is triggered by the lifecycle involved, which can be by design or a bug. I suggest you file a Service Request with support and provide a test case as purely from the description, its hard to parse and understand what is going on.
    Frank

  • BUG: iPad displays 1cm border around content in task flow popup window

    I have tried this out on JDeveloper 11.1.1.6.0, 11.1.2.1.0 and 11.1.2.2.0 and each one seems to have the same problem. When displaying a taskflow in-line popup windows on an iPad (iOS 4.3.5 and iOS 5.1) a ~1cm border is displayed on the left, bottom and top of the window's content, with some of the content (also about 1cm) on the right being cut-off.
    I have also tried my app out on a Android Samsung Galaxy Tab (built-in browser), Android Samsung S1 (built-in) and on my Windows 7 PC in Safari and Firefox. None of these devices/browsers have this problem.
    To replicate this problem the following steps can be followed.
    1) Create a normal fusion web application.
    2) Add a wild card control flow rule to the default unbounded task flow.
    3) Add a new bounded task flow to the unbounded task flow.
    4) Set the bounded task flow 'Run as Dialog' to 'true' and 'Display type' to 'inline popup'.
    5) Link the wild card control flow to the bounded task flow.
    6) Add a single jsf page to the bounded task flow.
    7) Add a panel box to the jsf page (or any other content for that matter)
    8) Create a test page and add a button to it. Set up the button's action properties such that it opens the bounded task flow as a window ('UseWindow' - 'true'; 'WindowEmbedStyle' - 'window'; 'WindowModalityType' - 'modeless' and set width and height).
    Are any workarounds for this? Is there currently a available patch to fix this problem?

    Hi,
    Are any workarounds for this? Is there currently a available patch to fix this problem?
    if nobody dares reproducing this and filing it as a bug then a fix can take a while. I'll put it on a list of my follow ups, but this is not a high priority list. So if you can I appreciate if you can file the bug and provide a testcase. Note that 11.1.2 (11g R2) is not yet optimized for tablet PCs. So JDeveloper 11g R1 (11.1.1.6) is the build that should be used as a reference for filing the bug
    Frank

  • ADF Security, Task Flow as a region in a page resource grant

    JDeveloper 12c (12.1.2); Application uses ADF form based security, external LDAP provider (Active Directory)
    After sign-in page (upon successful authentication/authorization) user is forwarded to a page that executes VO method prior to render. I am new to task flow concept and am told to achieve this like:
    - create bounded task flow, with method call activity (execute exposed AM method that calls VO method, runs custom SQL) and view activity as page fragment.
    - then drop the above task flow into a page as a region
    In ADF security setup, I gave resource grant task-flow to certain application role. Started the application, login and got 403 error. Then went back and gave resource grant 'view' to the actual page that contains task flow. It worked fine.
    So the question is, when protecting application (implemented with task flows) with ADF security, I thought it is enough to grant those task flows to whatever application roles (groups) and inherently any page that uses that task flow(s) (as a region) will be protected?
    From this test, it seems that I have to assign each page (that has task flow as a region) to application roles individually?

    Hi,
    any page that is contained in a bounded task flow is protected  by the task flow permission grant, this is correct. If this is not what you see, please file a bug with support or send me a simple reproducible test case please. My mail address (replace all < name > with the described symbol.
    frank <dot> nimphius <at> oracle <dot> com
    The test case will need to be in a ZIP file nemaed to "unzip" and should be able for me to run stand alone (please no database scripts to run prior to try the test case)
    Frank

  • [BUG] Page composer does not pass task flow input paramters correctly

    Hello,
    When using the page composer to add a task flow requiring parameter to an editable region, the pageDef is correctly created within the MDS store. In my test case, the generated pageDef looks like the following, which seems to be correct:
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <mds:customization version="11.0.0.49.49" xmlns:mds="http://xmlns.oracle.com/mds">
       <mds:insert parent="pages_test_testWebCenterComposer2PageDef(xmlns(mds_ns1=http://xmlns.oracle.com/adfm/uimodel))/mds_ns1:executables">
          <taskFlow id="regionBinding1" taskFlowId="/taskflows/texte-riche-task-flow#texte-riche-task-flow" xmlns="http://xmlns.oracle.com/adf/controller/binding" Refresh="ifNeeded"/>
       </mds:insert>
       <mds:insert parent="pages_test_testWebCenterComposer2PageDef(xmlns(mds_ns2=http://xmlns.oracle.com/adf/controller/binding)xmlns(mds_ns1=http://xmlns.oracle.com/adfm/uimodel))/mds_ns1:executables/mds_ns2:taskFlow[2]">
          <parameters xmlns="http://xmlns.oracle.com/adf/controller/binding"/>
       </mds:insert>
       <mds:insert parent="pages_test_testWebCenterComposer2PageDef(xmlns(mds_ns2=http://xmlns.oracle.com/adf/controller/binding)xmlns(mds_ns1=http://xmlns.oracle.com/adfm/uimodel))/mds_ns1:executables/mds_ns2:taskFlow[2]/mds_ns2:parameters">
          <parameter id="idStellent" xmlns="http://xmlns.oracle.com/adfm/uimodel"/>
       </mds:insert>
       <mds:insert after="pages_test_testWebCenterComposer2PageDef(xmlns(mds_ns2=http://xmlns.oracle.com/adf/controller/binding)xmlns(mds_ns1=http://xmlns.oracle.com/adfm/uimodel))/mds_ns1:executables/mds_ns2:taskFlow[2]/mds_ns2:parameters/mds_ns1:parameter">
          <parameter id="mode" value="edit" xmlns="http://xmlns.oracle.com/adfm/uimodel"/>
       </mds:insert>
    </mds:customization>Since it was not working as I expected, I added a method call printing the parameters values as the first action of my task flow, but I get the following, showing that none of the parameters ever get passed to the task flow. Of course, in its current state idStellent should indeed be null, but the mode should have the static value "edit":
    ------------------------ idStellent = null, mode = null ------------------------Can we get a ticket filled for this issue because it's an extreme blocker for us as it prevent reuse of task flows with the page service.
    Regards,
    ~ Simon

    Hi,
    I forgot to mention that the task flow is extremely simple, here's its definition:
    <?xml version="1.0" encoding="windows-1252" ?>
    <adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
      <task-flow-definition id="texte-riche-task-flow">
        <default-activity>printParams</default-activity>
        <input-parameter-definition>
          <name>idStellent</name>
          <value>#{pageFlowScope.idStellent}</value>
          <class>java.lang.String</class>
        </input-parameter-definition>
        <input-parameter-definition>
          <name>mode</name>
          <value>#{pageFlowScope.mode}</value>
          <class>java.lang.String</class>
        </input-parameter-definition>
        <managed-bean>
          <managed-bean-name>document</managed-bean-name>
          <managed-bean-class>ca.ulaval.ena.faces.bean.HtmlStellentDocumentBean</managed-bean-class>
          <managed-bean-scope>pageFlow</managed-bean-scope>
          <managed-property>
            <property-name>idStellent</property-name>
            <property-class>java.lang.String</property-class>
            <value>#{pageFlowScope.idStellent}</value>
          </managed-property>
        </managed-bean>
        <managed-bean>
          <managed-bean-name>block</managed-bean-name>
          <managed-bean-class>ca.ulaval.ena.webcenter.bean.BlockBean</managed-bean-class>
          <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>
        <view id="texteRiche">
          <page>/fragments/ut412/texteRiche.jsff</page>
        </view>
        <view id="texteRicheEditable">
          <page>/fragments/ut412/texteRicheEditable.jsff</page>
        </view>
        <router id="modeSwitch">
          <case>
            <expression>#{pageFlowScope.mode == 'edit'}</expression>
            <outcome>edit</outcome>
          </case>
          <default-outcome>read-only</default-outcome>
        </router>
        <method-call id="printParams">
          <method>#{block.print}</method>
          <parameter>
            <class>java.lang.String</class>
            <value>#{pageFlowScope.idStellent}</value>
          </parameter>
          <parameter>
            <class>java.lang.String</class>
            <value>#{pageFlowScope.mode}</value>
          </parameter>
          <outcome>
            <fixed-outcome>done</fixed-outcome>
          </outcome>
        </method-call>
        <control-flow-rule>
          <from-activity-id>texteRicheEditable</from-activity-id>
          <control-flow-case>
            <from-outcome>annuler</from-outcome>
            <to-activity-id>texteRiche</to-activity-id>
          </control-flow-case>
          <control-flow-case>
            <from-outcome>ok</from-outcome>
            <to-activity-id>texteRiche</to-activity-id>
          </control-flow-case>
          <control-flow-case>
            <from-outcome>enregistrer</from-outcome>
            <to-activity-id>texteRicheEditable</to-activity-id>
          </control-flow-case>
        </control-flow-rule>
        <control-flow-rule>
          <from-activity-id>modeSwitch</from-activity-id>
          <control-flow-case>
            <from-outcome>read-only</from-outcome>
            <to-activity-id>texteRiche</to-activity-id>
          </control-flow-case>
          <control-flow-case>
            <from-outcome>edit</from-outcome>
            <to-activity-id>texteRicheEditable</to-activity-id>
          </control-flow-case>
        </control-flow-rule>
        <control-flow-rule>
          <from-activity-id>printParams</from-activity-id>
          <control-flow-case>
            <from-outcome>done</from-outcome>
            <to-activity-id>modeSwitch</to-activity-id>
          </control-flow-case>
        </control-flow-rule>
        <use-page-fragments/>
      </task-flow-definition>
    </adfc-config>Note that the method call at the start is totally useless and only used to print the input parameters.
    ~ Simon

  • JDeveloper 11.1.1.5.0 ADF Library task-flow not shown

    fyi
    Please consider the example application created using JDeveloper 11.1.1.5.0
    at http://www.consideringred.com/files/oracle/2011/TestsInADFLibraryApp-v0.01.zip
    (in the context of forum thread "JUnit test classes in ADF Library")
    At some point, working with that application in JDeveloper 11.1.1.5.0, I used the deployment profile "adflibTestsInADFLibraryApp-ViewController-dp" to create the ADF Library "adflibTestsInADFLibraryApp-ViewController.jar" wich seemed to have an issue.
    When in a File System Connection on the Resource Palette, that ADF Library did not show the task-flow(s) it contained.
    But, I can no longer reproduce this. If I now try to do the same, the ADF Library seems to be OK. The only thing I can think of that changed, is that JDeveloper has been restarted (a day later).
    Showing both ADF Libraries in File System Connections on the Resource Palette illustrates this
    at http://www.consideringred.com/files/oracle/img/2011/task-flow-not-shown-jdev111150.png
    When I looked inside the ADF Libraries, the respective "task-flow-registry.xml" files were somewhat different:
    - in the "broken" ADF Library there were lots of XML namespace declarations
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <task-flow-registry xmlns="http://xmlns.oracle.com/adf/controller/rc">
    <task-flow-descriptor xmlns:ns0="http://xmlns.oracle.com/adf/controller/rc" ns0:path="WEB-INF/btf/browse-employees-btf.xml" xmlns:ns1="http://xmlns.oracle.com/adf/controller/rc" ns1:id="browse-employees-btf" xmlns:ns2="http://xmlns.oracle.com/adf/controller/rc" ns2:type="task-flow-definition" xmlns:ns3="http://xmlns.oracle.com/adf/controller/rc" ns3:uses-page-fragments="true" xmlns:ns4="http://xmlns.oracle.com/adf/controller/rc" ns4:library-internal="false" xmlns:ns5="http://xmlns.oracle.com/adf/controller/rc" ns5:train="false"/>
    <task-flow-descriptor xmlns:ns0="http://xmlns.oracle.com/adf/controller/rc" ns0:path="META-INF/adfc-config.xml" xmlns:ns1="http://xmlns.oracle.com/adf/controller/rc" ns1:id="" xmlns:ns2="http://xmlns.oracle.com/adf/controller/rc" ns2:type="" xmlns:ns3="http://xmlns.oracle.com/adf/controller/rc" ns3:uses-page-fragments="false" xmlns:ns4="http://xmlns.oracle.com/adf/controller/rc" ns4:library-internal="false" xmlns:ns5="http://xmlns.oracle.com/adf/controller/rc" ns5:train="false"/>
    </task-flow-registry>- in the "ok" ADF Library there was only one XML namespace declaration
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <task-flow-registry xmlns="http://xmlns.oracle.com/adf/controller/rc">
       <task-flow-descriptor path="WEB-INF/btf/browse-employees-btf.xml" id="browse-employees-btf" type="task-flow-definition" uses-page-fragments="true" library-internal="false" train="false"/>
       <task-flow-descriptor path="META-INF/adfc-config.xml" id="" type="" uses-page-fragments="false" library-internal="false" train="false"/>
    </task-flow-registry>- (q1) How can these not shown task-flows (or its different task-flow-registry.xml file) be explained?
    many thanks
    Jan Vervecken

    Thanks for your reply Chris.
    Chris Muir wrote:
    a) When you say you've "used the deployment profile" I'm guessing you mean within JDeveloper and not via ojdeploy? ...That is correct.
    ... it seems you're doing the ADF Library generation inside JDev, not via ojdeploy via Ant correct? ...That is correct.
    ... (For reference the bug numbers are 10028879, 10028816, 913159). ...On My Oracle Support I have found:
    - bug 10028879, "OJDEPLOY FAILS TO COMPILE/GENERATE TASK-FLOW-REGISTRY.XML WHEN ${USER.DIR} USED" (having "Base Bug 10076058" which does not seem to be published)
    - bug 10028816, "OJDEPLOY FAILS TO GENERATE TASK-FLOW-REGISTRY.XML FOR CASE-INSENSITIVE WIN PATH" (and a patch)
    - for number 913159 I got "No results found" (which might be an unpublished bug, or a wrong number)
    ... by that stage I was sick of logging bugs against ojdeploy. ...Really, where did it hurt. ;-) ... logging bugs should not be a problem ...
    b) Regards the File System Connection in the Resource Palette, are you using an UNC mapping? ...No UNC mapping, just the local file system.
    ... The relating bug numbers are 9340973 and 12940696. ...On My Oracle Support I have found:
    - bug 9340973, "RESOURCE PALETTE FAILURE ON USING NETWORK PATHED FILE CONNECTIONS" (having "Base Bug 12940696" which does not seem to be published)
    - for number 12940696 I got "No results found" (which might be an unpublished bug, or a wrong number)
    So, about "I don't think these are related but let's rule them out", I think those are ruled out.
    regards
    Jan

  • Composite Application with a Task Flow and form created manually

    Hi,
    I'm using Oracle SOA Suite 11G and i'm trying to create a task form for a human task without using the auto generate wizards and i'm having trouble getting the form to show in BPM worklist.
    I have followed instructions in the developers guide to create the form against the human task including the following
    27 Designing Task Forms for Human Tasks
    27.4.3 How To Create a Task Form Using the Complete Task with Payload Drop Handler
    27.8 Deploying a Composite Application with a Task Flow
    After i deploy and test, the task appears and works correctly in BPM worklist, but the form does not show. This is when i have the task form within a composite application or in a separate project. When i generate the form automatically using the wizards, this all works fine.
    Updated: Noticed that when i create the task form manually and deploy it does not create entries as per instructions
    20.3 Managing the URI of the Human Task Service Component Task Details Application
    I have the details in hwtaskflow.xml, but for some reason, they are not automatically created... It is annoying to have this created each time...
    Am i missing something? I don't see any errors in BPM worklist or on the server. Any advice would be appreciated.
    Thanks
    Edited by: user5535771 on Mar 12, 2010 5:01 PM

    Hi Duncan,
    Thanks for your reply.
    The later option of not using Query_Only would involve massive custmizations, as there are so many forms apart from the absence forms.
    There is just one taskflow that contains the person, assignment, Absence and SIT screen, how can we do like an standalone absence screen does not have tehe query only as Yes.
    Please let me know in case you dint get me i will mention my development steps in points.
    Many Thanks,
    Vineet

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

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

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

  • Task-flow exception only cought first time

    We're working on a larger scale application, that relies heavily on PL/SQL. Therefor we throw a lot of jboexceptions in our applciations. FK, UK and other validations throw an exception in the base, and are thrown as jboexceptions from the java level.
    The problem is, that the exception is only shown for the user, once per in each running task flow. It looks alot like this issue: http://java.net/jira/browse/ADFEMG-18
    The exception is vissibe in the log file.
    I'm running JDeveloper 11.1.1.5.0
    Is there a fix?

    Hi,
    the fix starts with you providing us more information about your error handling process.
    Have you verified the problem to reproduce e.g in 11.1.1.6?
    Does the problem reproduce in a test case ?
    The EMG bug you reference says that the problem doesn't reproduce in 11.1.1.6, so the fix would be to upgrade to 11.1.1.6 if it is the same issue, or work through customer support to get a backport patch in case you cannot migrate
    Frank

Maybe you are looking for

  • SO_OBJECT_SEND Function Module

    Hello All, I am using this function module to send mails to the users. When i run the program that uses the function module its working fine and when i run the program in bacground its giving me a short dump saying The termination occurred in the ABA

  • Any help from apple with linking text blocks in pages?

    I finally caved and updated to Yosemite.  Pages has been my go-to page layout forever.  But now I cannot link text blocks???  Is there a work around?

  • XI Message flow

    I am trying to integrate a r/3 system with XI, can someone point me to possible data flow diagrams. What can be a possible scenario here...? Can someone also point me to the message flow within IR and ID for the above scenario.. Regards Ravi

  • Mutlilevel Controlling in xRPM 4.0 and using ECC 5.0

    Hi Guys, Is there any way that i can have the Multilevel Controlling functionality with xRPM 4.0 and ECC 5.0. Please let me know your thoughts. Thanks & Regards, Gopi Message was edited by:         GBS-SO Accenture Message was edited by:         GBS-

  • Pagecontrol from plist??

    Hi all, I'm new to programming, tried using apples sample code on pagecontrol and it's pretty good. But how do I get my app to count the number of images i have in my plist automatically?? any help would be greatly appreciated! thanks in advance!