ADF mobile: Is deviceScope supported in ADF mobile taskflow?

Hi,
Jdev 11.1.2.3.0 + mobile extension.
In my taskflow I have a router component which should call different amx pages depending on the device platform.
My router code in the taskflow (simplified):
    <router id="checkPlatform">
      <case id="__11">
        <expression>#{deviceScope.device.platform eq 'iPhone'}</expression>
        <outcome>isPhone</outcome>
      </case>
      <default-outcome>isPhone</default-outcome>
    </router>But I get the an error message in the EL expression like "deviceScope is not supported".
Is deviceScope not supported in taskflows EL or is this a bug in XML validation?
regards
Peter

Hi,
Yes deviceScope is supported in the taskflow. This could be a product defect.
However, another way to achieve the same event is to separate these pages into two different task flows, and then in the constraint content tab of the Features, you create two content entries and then set the constraint to point to different taskflows. Since you would have two sets of pages targeting different platforms, it's easier to use constraint to direct pages to different taskflows based on different form factors.
There is an example of this in the HR sample application - HR sample app is shipped with JDevleoper. To see where HR sample app can be found, please google for ADF Mobile and navigate to the OTN ADF Mobile Landing page. Then follow the link to samples for further instructions.
Thanks,
Joe Huang

Similar Messages

  • ADF 11g Taskflows and PageFlow Scope.

    Hi,
    I am working in ADF11g and I have a question on ADF Taskflows and PageFlow Scopes.
    I have 2 bounded taskflows a and b. a is in showdetailitem1 and b in showdetailitem2. I have created a bounded taskflow on a and b and dropped on a page.I have some values set in page flow scope of a and when I try to retrieve those values in b, I get them as null.
    Can anyone tell me what could be wrong.
    Thanks,
    User

    Hi,
    As i understand, each bounded taskflow will have a separate pageFlowScope. I believe, I have read this before in the documentation but now having a hard time finding it. If you need to share the same variable between bounded taskflows, you can look into taskflow parameters or contextual events. Another dirty and easy way is to use session scope (not recommended if can be avoided).
    Regards,
    Pino

  • BPM-  ADF binding files architecture for ADF human taskflow.

    Hi,
    I wast to know what is the architecture behind the hundreds of the file generated for the BPM adf integration for the human taskflow.
    Is there any method of debugging why data coming to BPM human taskflow is not coming properly to ADF.
    I appeciate any debug pointers, although these files are clearly xml files and we have no control over generation of these files but still we want to know how data been populated and how if any error occured of data corruption, how we will resolve.
    REF we are facing major issues with the data corruption issues with the ADF BPM components.
    Thanks
    VIpin

    Hi Vipin
    This post has an interesting discussion related to your question. I am glad BPM is infact generating all these complex xml files behind the screens and taking care of so many things. Thanks to ADF framework. Yes, I totally agree, debugging may be nightmare to begin with. But with divide and rule, you can get over it. End of the Day its just pure Workflow and a complex ADF. ADF can be stripped out carefully and run all the actonis from a normal web application. If we design properly as pure SOA, we create back end services like EJBs that can be consumed from WebServices or ADF Layer. Once we have this we can integrate these Services into any BPM Process.
    Re: Integrating BPM taskflows into an ADF application
    Now, coming back to your questions:
    1. You have a Complex BPM Process with complex BO (business objects), Arrays of BOs. I hope you have XSD for your BOs and using them only you created BusinesObjects and ProcessDataObjects. Now lets assume you have a BPM Process that uses this complex data structure. Lets take a very first Human Task initiaor who may see a Task Details page with your compelx objects. Lets say, in Task Details page, he says a header section with 10 fields. Another section with a Table of Multiple Rows and columns (arrays of Data), etc etc.
    2. NOW the main question is, when this User Saves or Submits the Task, you should be doing something with that Data ? Am I right. Are you Saving it to any Database or everything is in the Payload itself. If so, I hope you have complex. If its payload itself, then I hope you have a complex strucutre to pass arrays of data through out the process.
    3. Assuming all this gets Stored into backend Database. Lets not worry about retrieving it back when task goes to second user. Always Payload will store the key IDs lke dataId like OrderId, CustomerId etc and using that it can pull any data from backend and show on task details page.
    4. This is where the ADF comes into picture. So even before you integrate your complex backend data with Process, first create a simple WebAppilcation. If you have EJB methods to handle this data, you create Data controls, bindings. Bindings will help generate the Screens. So you can first test your application completely here. Once all this is working, thats when you call these Services from your Process.
    And beauty is with new release of BPM Suite (should be in BPM 11.5 + FP (Feature Pack)), they have a concept of Simulation. This should help you to simulate the Process without any real data and JUST focus and test on the Flow of the Process. This comes real handy for testing.
    And for the data used in your process, you have ADF Tools to create stand alone ADF Application.
    We have some applications like yours with very complex data structure, arrays that gets stored like in 25 tables with references going everywhere. First we built a simple data layer using EJBs and JPA layer (JPA Entities). These Entities have annotated methods to take care of most of the things. In the EJB we exposed some generic methods instead of adf generating them, due to complex data structre. Then we created data controls and bindings. Create Custom JSPX Files. This is where we ended up having our own Layout for the Data. I hope you have already seen by default, task details layout page generated is NOT usabe at all. It generates all the data in one Single Long column. We do not use that. Since we know data, we created our own Task details page. The only thing we add is the Actions bar and comments and attachment section. When you auto generate a taskdetails page for any .TASK file, you will see DataBindins created for Payload, Actions, and also separately for coments and attachmetns. Just drag these comments and attachments on to your page and define your own layout.
    Re: deploying a large Oracle BPM Application with multiple UI projects (Single taskdetails for multiple UIs and Tasks)
    Re: What exactly 'PAYLOAD' Means??? (Simple definition for Payload word referred in any Process)
    If you see one of the old posts, there is a way to reuse just one Single TaskDetals page for Multiple different Human .TASK files. All that matters iis the top Actions Menu that are differenet for each human task like someone can Submit, someone can only Approve or Reject etc. We can club all these Actions into single actionsMenu.jsff and put this on TaskDetails page and assing to all the .task files. Menus are automatically disabled/enabled using workflow APIs. You do not need any special coding for them. Look at code snipet for any actions button that has like isAllowedAction and pass the name of the action. Workflow APIs see if that .TASK file has a Action named with that internally.
    In conclusion, there is a decent clear gap between Process and the ADF Generated Task Details page.
    Thanks
    Ravi Jegga

  • Invalid UTF8 encoding when including ADF Lib taskFlow in ADF Project

    Hi,
    Im getting a strange error:
    [ServletContext@115621591[app:Composer2EAR module:Composer2 path:/Composer2 spec-version:2.5], request: weblogic.servlet.internal.ServletRequestImpl@a0bf0c7[ GET /Composer2/faces/publicPage?_afrLoop=84880154689388&_afrWindowMode=0&_adf.ctrl-state=17i184s9c9_4 HTTP/1.1 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 ( .NET CLR 3.5.30729) Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,es-mx;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Referer: http://5.4.0.71:8888/Composer2/faces/publicPage Cookie: JSESSIONID=xn52MtnWLJX2W1hZJl5Wwnw1RHnWGkmfG4rxX0NJBvkyGC735w1G!190853820 ]] Root cause of ServletException.
    java.io.UTFDataFormatException: Invalid UTF8 encoding. at oracle.xml.parser.v2.XMLUTF8Reader.checkUTF8Byte(XMLUTF8Reader.java:174) at oracle.xml.parser.v2.XMLUTF8Reader.readUTF8Char(XMLUTF8Reader.java:213) at oracle.xml.parser.v2.XMLUTF8Reader.fillBuffer(XMLUTF8Reader.java:134) at oracle.xml.parser.v2.XMLByteReader.saveBuffer(XMLByteReader.java:450) at oracle.xml.parser.v2.XMLReader.fillBuffer(XMLReader.java:2585) at oracle.xml.parser.v2.XMLReader.tryRead(XMLReader.java:1121) at oracle.xml.parser.v2.XMLReader.scanXMLDecl(XMLReader.java:3144) at oracle.xml.parser.v2.XMLReader.pushXMLReader(XMLReader.java:539) at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:315) at oracle.jsp.parse.XMLUtil.getDocument(XMLUtil.java:394) at oracle.jsp.parse.OracleJsp2Java.transformImpl(OracleJsp2Java.java:400) at oracle.jsp.parse.OracleJsp2Java.transform(OracleJsp2Java.java:587) at oracle.jsp.runtimev2.JspPageCompiler.attemptCompilePage(JspPageCompiler.java:675) at oracle.jsp.runtimev2.JspPageCompiler.compileBothModes(JspPageCompiler.java:485) at oracle.jsp.runtimev2.JspPageCompiler.parseAndGetTreeNode(JspPageCompiler.java:455) at oracle.jsp.runtimev2.JspPageInfo.compileAndLoad(JspPageInfo.java:624) at oracle.jsp.runtimev2.JspPageTable.compileAndServe(JspPageTable.java:650) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:388) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:729) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:653) at javax.servlet.http.HttpServlet.service(HttpServlet.java:821) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184) at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:526) at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:447) at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:164) at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:185) at oracle.adfinternal.view.faces.taglib.region.IncludeTag.__include(IncludeTag.java:440) at oracle.adfinternal.view.faces.taglib.region.RegionTag$1.call(RegionTag.java:154) at oracle.adfinternal.view.faces.taglib.region.RegionTag$1.call(RegionTag.java:128) at oracle.adf.view.rich.component.fragment.UIXRegion.processRegion(UIXRegion.java:492) at oracle.adfinternal.view.faces.taglib.region.RegionTag.doStartTag(RegionTag.java:127) at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:50) at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:260) at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87) at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58) at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:260) at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87) at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58) at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:260) at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87) at oracle.jsp.runtime.tree.OracleJspIterationTagNode.executeHandler(OracleJspIterationTagNode.java:45) at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:260) at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87) at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58) at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:260) at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87) at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58) at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:260) at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87) at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58) at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:260) at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87) at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58) at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:260) at oracle.jsp.runtime.tree.OracleJspNode.execute(OracleJspNode.java:76) at oracle.jsp.runtimev2.ShortCutServlet._jspService(ShortCutServlet.java:88) at oracle.jsp.runtime.OracleJspBase.service(OracleJspBase.java:30) at oracle.jsp.runtimev2.JspPageTable.compileAndServe(JspPageTable.java:670) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:388) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:729) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:653) at javax.servlet.http.HttpServlet.service(HttpServlet.java:821) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:160) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:527) at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:253) at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410) at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:45) at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:45) at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:45) at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:45) at org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:268) at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:475) at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:141) at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:191) at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:710) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:273) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:205) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:421) at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:421) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:94) at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313) at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:414) at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:138) at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at com.bea.content.manager.servlets.ContentServletFilter.doFilter(ContentServletFilter.java:178) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:160) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Im using :
    - Jdeveloper 11.1.1.3
    - Webcenter 11.1.1.3
    - Weblogic Server 10.3.3
    I made a Webcenter Application with 2 View Controller Projects, one to publish a ADF Library, and another to make a webpage to consume the library.
    The library is a bounded taskflow (with fragment) that shows a simple page.
    The web project is a simple jspx that have a region with the taskflow, the project has the ADF Library jar as a library in the project
    The Application is deployed as a EAR.
    - test 1: simple jspx page with a region : Works OK
    Results: Works OK
    - test 2: jspx with oracle composer tags: Page customizable -> panel customizable ->ShowDetail Frame -> TaskFlow Region
    Results: It works ok the first deploy, it fails with the error above after the second deploy (no need to move or change anything)
    Has anyone seen something similar?
    if i can i would post the entire source in a zip file,but i dont know if i can do it here (im new in this forums)
    Thanks in advance.

    Hi Frank,
    Yes, but here its creating a separate database connection.... ? I figrued out this by creating a vo which gives me a db session id,
    I created a reusasble pf and VO as separate lib, now i used both of them in my consumer app, i dragged the same VO (from reusable lib) to my page, and in same page i used the reusable pf, both gives me different db session id ...... ? really confused ...... is this how it works ... ? is it normal ? or some additional configuration needed .?
    Regards,
    Santosh.
    jdev 11.1.1.5.0

  • How to create a popup in an ADF train taskflow?

    I have a Train taskflow. Then i create a popup window in one of the buttons. When i run the JSF as an independent page, the popup works. But when i run the taskflow, the popup doesn't work.
    Is it a bug or is there some way to create a popup in a train.
    i have created the popup like this:
    1. i have created a control flow between the main JSF and popup page
    as dialog:Add.
    2. And in the button in the parent window, i have made the usewindow to true and action to dialog:Add.
    Any kind of helf would be very helpfull.

    Hey Pavle,
    You always ask the most interesting questions. ;) See my answers inline.
    <p>
    How to include another JSFF/JPSX in Rich dialog (beside inclusion of another region)?
    </p>
    <p>
    <b>Ric:</b> You can include a JSFF/JSPX using the jsp:include tag and a subview. Note that you will not be able to use ADFm within the fragments.
    </p>
    <p>
    If there is no other way than inclusion of region, how to make that new region "transaction-free" (as usually the pop-ups are for read-only operations and overhead of TaskFlow transaction is unnecessary). Generally, how to make Task Flow without transaction (if transaction imposes significant overhead – I'm not sure). (the documentation on Task Flows is unfinished in TP). And, finally, if there is no possibility of including JSFF without creating task-flow, is it possible to propose extension to ADFc allowing single JSFF to be included in region without explicitly defining task-flow for that single fragment.
    </p>
    <p>
    <b>Ric:</b> I think the above suggestion should work for static cases. However, if you
    are using bindings then the regions is the only approach available. This is not as heavy-wieght as it would appear. There is a way for regions or bounded taskflows to share datacontrols with with the parent page, which alleviates the concern of additional transactions. This feature can be found in the next preview. Note, this does not prevent you from defining a single page taskflow--in the one page case. I would like to see the feature extended so that if a region contains a single jsff reference there is no need to define an additional taskflow config file.
    </p>
    Thanks,
    Ric

  • Error testing ADF Mobile application - bootstrap.html _anomFunkMap.f34

    Hi,
    I am testing ADF Mobile with a latest beta build JDEVADF_11.1.2.2.0_GENERIC_120302.0214.6145 and trying to build a simple test using a model based on an Oracle schema, a ADF Mobile Taskflow defined as a feature and deployed to the IOSPhoneSimulator.
    When I launch the application it has an error:
    bootstrap.html
    JavaScript Callback _anomFunkMap.f34 Threw Exception: TypeError: 'undefined' is not an object.
    Can someone provide some tips to try to isolate this issue?
    Has anyone had a similar problem?
    Regards
    Sydney

    Since you are an internal Oracle employee using an internal (non-public) build, you should be using a forum that is internal and non-public.
    John

  • ADF Support for weblogic portal

    Hi
    How we can use adf tags and functionality and develop portlet for weblogic portal . What are the required Jar files needs to be imported for that.

    One possibility, if you still want to use WLP on the consumer side, is to develop the ADF views/taskflows in a WebCenter portlet producer app, then consume them as portlets over WSRP in WLP. http://download.oracle.com/docs/cd/E17904_01/webcenter.1111/e10148/jpsdg_intro_portlets.htm#CIHDEBBJ has information about making portlets in WebCenter, and there's documentation at http://download.oracle.com/docs/cd/E15919_01/wlp.1032/e14235/chap_webcenter_interop.htm#i1006380 about the interop between WebCenter and WLP.
    Greg

  • Embedding ADF UI in BAM pages.

    I have some ADF pages (taskflows). I want to show them in BAM pages. I can expose ADF taskflows as portlet but not sure how to consume it in BAM pages.
    Is there any way we can add portlets in BAM pages?
    Or Is there any way to put an iframe on BAM pages?
    Or is there any other way to show ADF UI on BAM pages?
    Is there any way to edit BAM pages like we do in webcenter?
    If its not possible I am thinking to add a link on BAM pages which can open ADF pages in a new tab. Is it possible? May be I have to create a dataobject with complete html code as a data and then show that data as a report. Not sure if it will appear as a link.
    Any suggestion?

    Hi YJ,
    Yes, we (ATG) are still working on session management between OA Framework and Oracle ADF, as well as other features of the Oracle E-Business Suite SDK for Java. Stay tuned for an announcement on Steven Chan's blog at https://blogs.oracle.com/stevenChan when that becomes available. My Oracle Support Note 974949.1 will be updated with further information at that time.
    Embedding an Oracle ADF region in an OA Framework page requires, at a minimum, that you create an EBS function security function for your ADF page and add a richContainer item to your OA Framework page that calls the function. You may need session management features depending on what you are trying to do with it. We haven't worked out all the nuances yet for more specific guidelines, sorry.
    Thanks,
    Sara
    (PS--I posted this in the OA Framework forum too)

  • How can integrate/call the Oracle Forms in ADF pages or task flow.

    Hi ,
    I Have requirement to integrate the ADF and EBS.
    I have done the ADF pages calling in ESB.
    Right now i am struck up to call the OAF froms in ADF page/taskflow.
    it's high appriciate if any one provide me the any info or how to do this requriment.
    Thanks,
    Madhava.

    Hi,
    Forms integration can happen using af:inlineFrame or by a redirect to a Forms web URL. In the latter case navigation should be from an unbounded task flow ensuring the return address required to resume the ADF application is provided. See: https://blogs.oracle.com/jdevotnharvest/entry/how_to_efficiently_redirect_an for how to construct the return URL
    Frank

  • Performance Issue : Why does ADF Taskflow Portlet (JSF bridge portlet) loading ADF Specific images, css, js everytime from portlet producer with dynamic URL with portlet_id and context parameters?

    Hi All,
    We have used WSRP Portlet in Webcenter Portal Page. The Portlet is created using JSF Bridge out of ADF Bounded Taskflow.
    It is causing Performance issue. Every time static content like js, css and images URLs are downloaded  and the URL contain portlet_id and few other dynamic parameters like resource_id, client_id etc.
    We are not able to cache these static content as these contains dynamic URL. This ADF Specific  images, js and css files  are taking longer time to load.
    Sample URL:
    /<PORTAL_CONTEXT>/resourceproxy/~.clientId~3D-1~26resourceId~3Dresource-url~25253Dhttp~2525253A~2525252F~2525252F<10.*.*.*>~2525253A7020~2525252FportletProdApp~2525252Fafr~2525252Fring_60.gif~26locale~3Den~26checksum~3D3e839bc581d5ce6858c88e7cb3f17d073c0091c7/ring_60.gif
    /<PORTAL_CONTEXT>/resourceproxy/~.clientId~3D-1~26resourceId~3Dresource-url~25253Dhttp~2525253A~2525252F~2525252F<10.*.*.*>~2525253A7020~2525252FportletProdApp~2525252Fafr~2525252Fpartition~2525252Fie~2525252Fn~2525252Fdefault~2525252Fopt~2525252Fimagelink-11.1.1.7.0-4251.js~26locale~3Den~26checksum~3Dd00da30a6bfc40b22f7be6d92d5400d107c41d12/imagelink-11.1.1.7.0-4251.js
    Technologies Used:
    Webcenter Portal PS6
    Jdeveloper 11.1.1.7
    Please suggest , how this performance issue can be resolved?
    Thanks.
    Regards,
    Digesh

    Strange...
    I can't reproduce this because i have issues with creating portlets... If i can solve this issue i will do some testing and see if i can reproduce the issue...
    Can you create a new producer with a single portlet that uses a simple taskflow and see if that works?
    Are you also using business components in the taskflows or something? You can try removing some parts of the taskflow and test if it works so you can identify the component(s) that causes the issues.

  • Default method on ADF Taskflow()

    Hi Friends,
    I am seeing a weird case in my ADF Bounded Taskflow - I see that the default method is called after the finalizer method. I am releasing all my resources in my finalizer method and so when default method is called it is throwing some exceptions.
    Is there any property I can set to stop the call?
    P.S: My Backing Bean is in PageFlow Scope.
    Thanks a lot !
    Edited by: user617801 on Dec 10, 2011 12:20 PM

    Thanks for the reply Timo.
    I am working in JDeveloper 11.3
    A bounded task flow never does running, so chasms are that you see it just restart - Does it mean, I need to run my page again? If so, I have done that.
    Thanks.

  • Confused about licensing

    Hi all,
    I arrived here one month ago by APEX, and started to study a little more Oracle. Before, I only knows about Oracle as a great database, but all his ecosystem was unknown for me.
    One month later studying APEX (I like it), seems like ADF is the bid of Oracle for Businness applications. I downloaded JDevelopr and I will start to study it from tonight.
    But there are some thing I don't understand very well.
    AFAIK, there are like 2 versions. Essentials and "another". If I understood correctly, with Essentials, I can develop, and deploy to my customers for free. With "another" I need licenses and an application Server (WebLogic I suppose).
    My doubts are:
    1.- Could be possible to use Essentials with Oracle XE and deploy cheap applications to little customers without licenses fees? What are the limits of Essentials version?
    2.- What Application Servers are available with the "another" version of ADF? This question is to see licenses fee to estimate how much an application could cost in licenses for my customers if Essentials/XE is not enough.
    Regards.

    Blueberry Coder wrote:
    GiuseppeL wrote:
    My doubts are:
    1.- Could be possible to use Essentials with Oracle XE and deploy cheap applications to little customers without licenses fees? What are the limits of Essentials version?
    2.- What Application Servers are available with the "another" version of ADF? This question is to see licenses fee to estimate how much an application could cost in licenses for my customers if Essentials/XE is not enough.
    Regards.Hi.
    It is indeed possible to use Essentials, GlassFish and Oracle XE to deliver a completely free solution. Essentials offers nearly all ADF features, the exceptions being: Oracle ADF Mobile, Oracle ADF Desktop Integration, Oracle ADF Security, The Oracle ADF Web service data control, Oracle ADF remote taskflows, Oracle ADF Business Component’s Service Interfaces, Oracle ADF Data Controls for BI, Essbase  and BAM, Integration with Oracle Fusion Middleware features such as MDS, OPSS, OWSM, Enterprise Manager and MBeans, High Availability and Clustering. Source: official FAQ, found here.
    Interesting. Most important thing I suppose hehehe.
    Don't forget Oracle XE will only support up to 11 GB of data; in addition, it will use a single CPU core and 1GB of Ram. This means is doesn't scale very well. You could use Oracle MySQL as an alternative. This is supported by ADF, although you loose some optimizations specific to Oracle Database.I know about the limitations of XE. The customers I plan to deploy my apps with XE are 3/4 users max without too much requeriments. A simple invoice & orders management application with a mobile app to query and enter new data.
    For this reason, for this kind of customers, if I add licenses fees, I can't compete against other software
    My intentions, is to develop over Oracle Technology, fitting little customers, but with possibilities to scale if bigger customers comes to me.
    >
    The « full » version of ADF is currently certified on Oracle WebLogic Server and IBM WebSphere Application Server. The ADF licence is bundled with WebLogic and must be bought separately for WebSphere.
    Weblogic is expensive for my current customers, and If licenses are "Oracle TopLink and Application Development Framework", being 10 licenses min. we speak about 950€/customer (if not more than 10), for a "simple" application, with a companion mobile app.
    Seems like I will continue my APEX learning. lol

  • Differentiating HTTP Request through a URL and a value change listener

    Version Details:
    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
    IDE Version: 11.1.1.4.37.59.23
    Product ID: oracle.jdeveloper
    Product Version: 11.1.1.4.37.59.23
    ADF Business Components     11.1.1.59.23
    Java(TM) Platform     1.6.0_21
    Oracle IDE     11.1.1.4.37.59.23
    Versioning Support     11.1.1.4.37.59.23
    Base Details:
    The Product, that a different team is working on (<i><b>which I cannot access, code, touch,...</b></i>), creates reports and essentially generates a URL with a bunch of parameters:
    http://<host>:<port>/myApplication/main.jspx?parameter1=value1&parameter2=value2...When the user clicks on an "Edit" button, a modal popup window is displayed (using jQuery) with an embedded iFrame with its source pointing to the above URL.
    The "myApplication" is an ADF application which brings up an ADF form based on the parameters. Once the user enters the data, validations occur and the data is written into a total of 3 different Tables in the Database. Once the operation is finished, the user closes the popup by clicking on the "X" button of the popup window, which essentially does "popup.*hide()*".
    Limitations:
    <li>Since there are varied combination of parameter values and associated ADF forms, taskflows is not* an option.
    <li>Since the logic of generating the ADF form is not straightforward, ADF BC is not* an option.
    <li>Since validations are based on the value change listeners, the managed bean has to be a session scope_ bean.
    Problem:
    When, for the first time, the user clicks on the Edit button with a particular set of parameter values, the corresponding ADF form is displayed and things work normal. Since the managed bean is under session scope, the form generated for the first popup window stays the same for any subsequent popup windows, even when the URL and its parameters are completely different. As I can not listen to the popup close event, I cannot invalidate my session either.
    I tried using filters in the web.xml to grab the request and apply the business logic. Due to the presence of multiple value change listeners (too many <tt>autosubmit=true</tt>), every value change listener triggers a request and so the business logic gets applied with every value change.
    After some tests, I deduced that the difference between the call from iFrame and the call from value change is the HTTP Request Method - GET for iFrame and POST for value change listener. So in my filter I apply the business logic when there is a GET request and not apply when its a POST request.
    Turns out, that is not a valid enough differentiation between the two requests being made. Sometimes, even the value change listeners are issuing a GET request.
    Question:
    *<font color="red">1</font>*. Is there a way to force the value change listeners to always trigger a POST request?
    *<font color="red">2</font>*. Is there a way to differentiate the requests originating from the other team's Product and those generated by my own value change listeners?
    *<font color="red">3</font>*. Is there a different approach, incorporating the above-mentioned limitations, to clear out the session scope each time when a request is made through iFrame? That is, whenever a request is made through the other team's Product?
    Edited by: user737922 on Apr 13, 2011 10:58 AM

    _(Temporary) Solution_:
    Summary:
    I am using the request parameter <b><tt>_adf.ctrl-state</tt></b> to differentiate between the HTTP requests that my application receives.
    Details:
    When I receive the request from the other team's Product, I receive a <tt>GET</tt> and a <tt>adf.ctrl-state</tt> value which I store into a local variable in my session-scoped managed bean. The <tt>adf.ctrl-state</tt> value stays the same for all requests (<tt>GET</tt> or <tt>POST</tt>) made from within my own application. It changes only when there is a new request from the other team's Product.
    Also, as my application is accessed through an iFrame, there is no possibility of the generated URL being modified by the end-user.
    For now it seems that the solution is appropriate but I am not fully confident if relying on the <tt>_adf.ctrl-state</tt> value is the best approach.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Navigation from One page to another page through hyperlink in webcenter

    Hi All,
    I created ADF unbounded taskflow and want to use it in my webcenter portal application for navigation from one page say Page x to another say Page y by clicking on the hyperlink in the Page x. How to do this in webcenter portal application. When I try to add the taskflow in the navigation model it is taking to the blank page instead of taking to Page x. Many thanks in advance.
    Regards
    Kaushik Gopalakrishnan

    Take a look at this discussion (and referenced resources): http://groups.google.com/group/webcenter-emg/browse_thread/thread/b32d3252228c9e0a

  • Record lock error occurs randomly, when same task opened in 2 browser tabs

    I am having an ADF UI taskflow with two flows(paths):
    Flow1 - Edit DFF
    ProcessParameters ----> router---> IFEDIT---->SetEditedStatusAttribute MethodCall --> editDFFpage
    Flow2 - Manage DFF Accross All Modules
    ProcessParameters ----> router---> IFSEARCH---->SearchQuerypanel editbutton>SetEditedStatusAttribute MethodCall --> editDFFpage
    These two flows can be triggered from links in a task panel. Screenshot [http://act.us.oracle.com/~vmeka/lockerror/lockerror.JPG]
    the method call setEditedStatusAttribute, calls an EOImpl method to set an attribute.
    This in turn triggers lock() for all the associated EOs.
    In following scenario failure occurs:
    ->1. Click Edit DFF task and keep the web browser tab/window open - lock is acquired.
    ->2. Open http://localhost7101/ManageFlex-WebApp_Test-context-root/faces/ManageFlex in another tab/window and open the Edit DFF task. lock is acquired again.
    ->3. In the same tab re-run the page by removing session details suffix.
    Eg. http://dadvml0082.us.oracle.com:7108/ManageFlex-WebApp_Test-context-root/faces/ManageFlex?_afrLoop=19870268404083601&_afrWindowMode=0&_adf.ctrl-state=sbc4nhzgh_116
    Remove the end part that starts with ?_afrLoop= and press enter in the Address bar of browser. lock is acquired third time.
    ->5. This re-runs the page, open Edit task again
    ->6. Without pressing cancel , open Manage DFF task
    ->7. Do not perform any search operation and open Edit FF task again. lock is acquired fourth time.
    ->8. Repeat steps 5-7 a few number of times
    In step 5 or 7 I am hitting an exception with following message
    JBO-26030: Failed to lock the record, another user holds the lock.
    stack: (complete stack at [http://act.us.oracle.com/~vmeka/lockerror/stack1.txt] )
    oracle.jbo.AlreadyLockedException: JBO-26030: Failed to lock the record, another user holds the lock.
    at oracle.jbo.server.OracleSQLBuilderImpl.doEntitySelectForAltKey(OracleSQLBuilderImpl.java:1085)
    at oracle.jbo.server.BaseSQLBuilderImpl.doEntitySelect(BaseSQLBuilderImpl.java:546)
    at oracle.jbo.server.EntityImpl.setAttribute(EntityImpl.java:1485)
    at oracle.apps.fnd.applcore.flex.dff.model.entity.DescriptiveFlexfieldEOImpl.updateDeploymentStatus(DescriptiveFlexfieldEOImpl.java:1804)
    at oracle.apps.fnd.applcore.flex.dff.model.entity.DescriptiveFlexfieldEOImpl.setEditedStatus(DescriptiveFlexfieldEOImpl.java:1753)
    at oracle.apps.fnd.applcore.flex.dff.uiModel.applicationModule.DFFSetupUIAMImpl.editDescriptiveFlexfield(DFFSetupUIAMImpl.java:770)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    Any Idea why the lock error occurs after a few iterations, and not immediately after Edit DFF is opened in a second tab?
    Thanks,
    vikranth
    Edited by: user10124649 on Nov 25, 2009 8:04 AM

    Hi,
    on the ApplicationModule, did you set the locking behavior to optimistic ? For web applications it should be optimistic and not pessimistic, which is the default setting. Select the AM and choose "Configurations" from the context menu. Click edit and select the property tabs. Look for the locking setting, which should be set to "pessimistic if you did not change it before. Just replace the current value with optimistic
    Frank

Maybe you are looking for