InvokeAction

Dear All:
In my page has an lineTable with one master table and two detail talbes,and it runs well. but after i added
( <invokeAction id="forceTableRefresh" Binds="findAllInfoByStatus"
RefreshCondition="${!adfFacesContext.postback}"/>
"findAllInfoByStatus" is the id of the methodAction.)
in this page's pageDefinition, When first time load this page, this page display errors:
1.JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=null
2.java.lang.NullPointerException
and after first time it runs well.
This page just display the lineTable, what does the possible reasons cause the errors occur?
Alex

My pageDef is as follow:(an inLine table with just one detail table)
<executables>
<invokeAction id="forceTableRefresh" Binds="findAllInfoTest"
RefreshCondition="${!adfFacesContext.postback}"/>
<methodIterator id="findAllInfoTestIter"
Binds="findAllInfoTest.result"
DataControl="FacadeBeanLocal" RangeSize="10"
BeanClass="com.view.test.model.VscInfo"/>
</executables>
<bindings>
<methodAction id="findAllInfoTest"
InstanceName="FacadeBeanLocal.dataProvider"
DataControl="FacadeBeanLocal"
MethodName="findAllInfoTest"
RequiresUpdateModel="true" Action="999"
IsViewObjectMethod="false"
ReturnName="FacadeBeanLocal.methodResults.FacadeBeanLocal_dataProvider_findAllInfoTest_result"/>
<tree id="findAllInfoTest1"
IterBinding="findAllInfoTestIter">
<AttrNames>
<Item Value="approver"/>
<Item Value="attribute1"/>
<Item Value="attribute2"/>
<Item Value="attribute3"/>
<Item Value="attribute4"/>
<Item Value="attribute5"/>
<Item Value="attribute6"/>
<Item Value="attribute7"/>
<Item Value="attribute8"/>
<Item Value="attribute9"/>
<Item Value="createdBy"/>
<Item Value="creationDate"/>
<Item Value="description"/>
<Item Value="endDate"/>
<Item Value="lastUpdateDate"/>
<Item Value="progId"/>
<Item Value="progNumber"/>
<Item Value="startDate"/>
<Item Value="status"/>
<Item Value="approverName"/>
<Item Value="createdByName"/>
</AttrNames>
<nodeDefinition DefName="com.view.test.model.VscInfo"
id="VscInfoNode">
<AttrNames>
<Item Value="approver"/>
<Item Value="createdBy"/>
<Item Value="creationDate"/>
<Item Value="description"/>
<Item Value="endDate"/>
<Item Value="lastUpdateDate"/>
<Item Value="progId"/>
<Item Value="progNumber"/>
<Item Value="startDate"/>
<Item Value="status"/>
<Item Value="approverName"/>
<Item Value="createdByName"/>
</AttrNames>
<Accessors>
<Item Value="vscLineCollection"/>
</Accessors>
</nodeDefinition>
<nodeDefinition DefName="com.view.test.model.VscLine"
id="VscLineNode">
<AttrNames>
<Item Value="approver"/>
<Item Value="lastPrice"/>
<Item Value="lineId"/>
<Item Value="lineStatus"/>
<Item Value="newPrice"/>
<Item Value="viewsonicSku"/>
<Item Value="approverName"/>
</AttrNames>
<Accessors>
<Item Value="vscLineCompanyCollection"/>
</Accessors>
</nodeDefinition>
</tree>
</bindings>
Thanks.

Similar Messages

  • Problem with invokeAction

    Hi...
    I am using *"invokeAction"* to refresh a page because i use *"executeWithParams"*
    it works fine and the data filtered as i want.
    but when i click any navigation button ( next, previous) nothing happens so i still at the same record...
    i tried all possible refresh options for the *"invokeAction"* (always, default, deferred, ...) :
    but if i choose "always" this problem occurs
    and if i choose "deferred" the *"invokeAction"* will not fired...
    can any one help me how to solve this problem...
    Thanks...
    Edited by: Yousef_m on Jun 6, 2012 2:05 AM

    Thank you very much for your interest...
    I think my problem is not clear for you
    i will try describe my problem as simple as i can...
    i have a view object and it query include a bind variable like this *( ....where invoice type = :p_invoice type )*
    and i drag this VO in to a page (saleinvocie.jsf) as ADF from.
    and i have a menu with 2 menu item both of them open the same page (saleinvocie.jsf)
    but when i click first menu item the page must view data with invoice type = 1
    and when i click second menu item the page must view data with invoice type = 2
    so i simply need to pass a value to the bind variable of the VO
    then manually i create a "execute with parameter" action from page definition
    and i create "invoke action" that call the "execute with parameter" when the page is open
    and i set the refresh property to "always" for the "invoke action"
    so when i open the (saleinvocie.jsf) page by click first menu item
    the query is executed successfully with ( invoice type = 1 )
    until now every thing is fine...
    but after the page is opened and i click the next button to go to next record
    nothing happens so i still at the same record...
    *last note: if i remove the "invoke action" and run the page again the next button work fine and go to next record
    but the page view all the data invoice type = 1 and = 2*
    i hope my problem is clear now...
    thank you again...
    Edited by: Yousef_m on Jun 7, 2012 11:40 AM
    Edited by: Yousef_m on Jun 7, 2012 12:06 PM

  • IndexOutOfBoundsException and invokeAction

    Hello,
    I have an IndexOutOfBoundsException when trying to rollback and editable table. In my use case, I don't want to see "no data found", so I must createInsert a row if there is no data found. I use an involeAction with a refreshCondition for this.
    The use case is simple to reproduce :
    In HR schema, create an editable table on Jobs. Drag n drop the rollback action as commandButton. In pageDef, add an invokeAction "createInsert" with refresh if needed :
    <invokeAction id="createInsert" Binds="CreateInsert" Refresh="ifNeeded"
                      RefreshCondition="#{bindings.JobsView1Iterator.currentRow==null}"/>When editing a row, if user click on rollback button, the exception is raised :
    java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
         at java.util.ArrayList.RangeCheck(ArrayList.java:547)
         at java.util.ArrayList.get(ArrayList.java:322)
         at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:3055)
         at oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2906)
         at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.prepareRender(PageLifecycleImpl.java:561)
         at oracle.adf.controller.faces.lifecycle.FacesPageLifecycle.prepareRender(FacesPageLifecycle.java:81)
         at oracle.adf.controller.v2.lifecycle.Lifecycle$9.execute(Lifecycle.java:236)
         at oracle.adfinternal.controller.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:197)
         at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.access$1000(ADFPhaseListener.java:23)
         at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$5.before(ADFPhaseListener.java:402)
         at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.beforePhase(ADFPhaseListener.java:64)
         at oracle.adfinternal.controller.faces.lifecycle.ADFLifecyclePhaseListener.beforePhase(ADFLifecyclePhaseListener.java:44)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:327)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:236)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)
         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:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)What could it be?
    Without the invokeAction it works well. I use jdevelopper 11.1.2.3.0.

    Hi,
    hi can you try and remove the refresh condition to verify this comes from the refresh EL? If so then first of all I suggest to use $ instead of # form the EL expression because # is resolved upon rendering of the UI which is too late for the condition you need. Second, if using $ doesn't solve the problem, try RefreshCondition="${bindings.JobsView1Iterator.estimatdRowCount == 0}"/>
    Frank

  • ADF Tree invokeaction problem

    Hello,
    I am trying to use the ADF tree table for the first time. I have a Master VO and a Detail VO, the Master accepts a bind variable. There is a view link between the master and detail.
    When I drag and Drop the executewithparams and create an adf parameter form on my page fragment, the tree table will work as expected when the executewithparams button is clicked. However, I want to use a pageFlowScope variable and invoke the executewithparams, but the Detail VO does not load any data. The Master VO works as expected but there is no rows for the Detail VO when expanded. I am just confused, it works when I execute with an Execute With Params button, but not with an invokeaction. I can see the pageFlowScope values displayed on my page, so I know they actaully have a value.
    Here is what my pagedef looks like.
    <?xml version="1.0" encoding="UTF-8" ?>
    <pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel"
    version="11.1.1.56.60" id="SellerReportPageDef"
    Package="Fragments">
    <parameters/>
    <executables>
    <iterator Binds="SellerReportView2" RangeSize="25"
    DataControl="AppModuleDataControl"
    id="SellerReportView2Iterator"/>
    <invokeAction id="invokeExecuteWithParams" Binds="ExecuteWithParams"
    Refresh="always"/>
    </executables>
    <bindings>
    <tree IterBinding="SellerReportView2Iterator" id="SellerReportView2">
    <nodeDefinition DefName="model.SellerReportView"
    Name="SellerReportView20">
    <AttrNames>
    <Item Value="RecordsCount"/>
    <Item Value="PersonInfo"/>
    </AttrNames>
    <Accessors>
    <Item Value="SellerReportDetail"/>
    </Accessors>
    </nodeDefinition>
    <nodeDefinition DefName="model.SellerReportDetail"
    Name="SellerReportView21">
    <AttrNames>
    <Item Value="AgencyId"/>
    <Item Value="AgencyReportNumber"/>
    <Item Value="ControlNumber"/>
    <Item Value="Dob"/>
    <Item Value="FirstName"/>
    <Item Value="FullAddress"/>
    <Item Value="LastName"/>
    <Item Value="NumOfItems"/>
    <Item Value="ShopName"/>
    <Item Value="TransactionDate"/>
    <Item Value="TransactionType"/>
    </AttrNames>
    </nodeDefinition>
    </tree>
    <action IterBinding="SellerReportView2Iterator" id="ExecuteWithParams"
    RequiresUpdateModel="true" Action="executeWithParams">
    <NamedData NDName="DateStart" NDType="oracle.jbo.domain.Date"
    NDValue="#{pageFlowScope.startDate}"/>
    <NamedData NDName="DateEnd" NDType="oracle.jbo.domain.Date"
    NDValue="#{pageFlowScope.endDate}"/>
    </action>
    </bindings>
    </pageDefinition>
    What am I missing? Any help would be great.
    Thanks,
    Jessica

    I forgot to mention I am using version 11.1.1.3

  • Build error = NullPointerException - RaveWebActionProvider.invokeAction

    Whoa,... can't build my simple project in Studio Creator 2 Update 1 without getting this exception shown below.
    Environment is:
    Studio Creator 2 Update 1 (build 060823)
    IDE Version: IDE/1 spec=5.9.1.3 impl=060823
    Windows XP v5.1
    Java 1.5.0_06
    Could use some advice...
    Thank you, Roger
    *********** Exception occurred ************ at 5:40 PM on Sep 11, 2006
    java.lang.NullPointerException
    at com.sun.rave.jsf.project.ext.RaveWebActionProvider.invokeAction(RaveWebActionProvider.java:212)
    at org.netbeans.modules.project.ui.actions.MainProjectAction.actionPerformed(MainProjectAction.java:90)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
    at java.awt.Component.processMouseEvent(Component.java:5488)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
    at java.awt.Component.processEvent(Component.java:5253)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    [catch] at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

    David,
    I've got it fixed. Here's what happened...
    1) I uninstalled JSC and removed 'C:\Program Files\Sun\..., 'C:\Documents and Settings\<my_login_name>\.creator...', and 'C:\Documents and Settings\<my_login_name>\My documents\Creator\...
    2) Downloaded and installed the Sun Download Manager and used it to download a new copy of the Studio Creator package. This was to make sure i had good JSC code to start with.
    3) Several reinstalls failed after this as well. I was back to the "new project" issue described before. I found that i was clicking through an install error message that was telling me to rename 'C:\windows\system\productregistry'. This was seen as part of a previous install and was causing any subsequent installs to fail.
    4) I cleaned up all the directories again, renamed 'C:\windows\system32\productregistry' and found the next install to be successful. I created a new test project and the build worked without error, which was my original problem.
    Thank you very much for taking the time to help me David.
    Sincerely, Roger

  • Trains Stops and Insert new data using invokeAction!?

    Hi! I am using Train element to insert data in some tables. When I open first Train Step I use invokeAction to call CreateInsert operation and could insert new data in table1. Then I go to Train Step 2 and using invokeAction insert data in table2 and so on.
    I have two questions:
    1. When I go back to previous Train Step using "Back" button then invokeAction again calls CreateInsert operation, but I don't need it. It is possible to call CreateInsert operation using invokeAction ONLY if user goes forward by pressing "Next" button in Train element? If it is possible then What I need to change in my code?
    invokeAction source:
    <invokeAction Binds="CreateInsert" id="insert_mode"
                      RefreshCondition="${!requestContext.postback and empty bindings.exceptionsList}"
                      Refresh="prepareModel"/>2. It is possible to DISABLE some Train Stopas. For example, I want to disable first Train Stop for user when he go to next steps, so that user can't anymore go back to first Train Stop.
    Hope for Your answers, best regards, Debuger!

    Hi, Umesh! My use case is following: I am on first Train Stop and enter some data. Then I go to second Stop and enter some data and so on. When I go to first, second etc. Train stops I use invokeAcrion to call CreateInsert. I need to call only this operation when I press next button. When I press Back button I do not need to call Create Insert action. Hope You understand me.
    So, as I understand, i need to create method which indicates variable value based which button is pressed. But I don't understand how I can say, variable x=nextbuttonpressed or x=backbuttonpressed based on which button I realy press. And do not understand also how to use this variable in invokeAction Refresh Condition?
    Hope You can explain me that with steps to do in my case and can help with code?
    Waiting for response, best regards, Debuger.

  • ADF model : prevent refresh using invokeAction

    hi
    I'm trying to understand the Refresh and RefreshCondition properties of executables like methodIterator and invokeAction.
    These executables come from the app_SRListPageDef.xml pageDefinition for SRList.jspx in the "Oracle ADF SRDemo Application":
      <executables>
        <methodIterator id="findServiceRequestsIter"
                        Binds="findServiceRequests.result"
                        DataControl="SRPublicFacade" RangeSize="10"
                        BeanClass="oracle.srdemo.model.entities.ServiceRequest"/>
        <invokeAction Binds="findServiceRequests" id="tableRefresh"
                      Refresh="ifNeeded"
                      RefreshCondition="${(userState.refresh) and (!adfFacesContext.postback)}"/>     
        <!-- ... -->
      </executables>The same pageDefinition also contains this methodAction binding :
        <methodAction id="findServiceRequests"
                      InstanceName="SRPublicFacade.dataProvider"
                      DataControl="SRPublicFacade"
                      MethodName="findServiceRequests" RequiresUpdateModel="true"
                      Action="999"
                      ReturnName="SRPublicFacade.methodResults.SRPublicFacade_dataProvider_findServiceRequests_result">
          <NamedData NDName="userIdParam" NDValue="#{userInfo.userId}"
                     NDType="java.lang.Integer"/>
          <NamedData NDName="statusParam" NDValue="#{userState.listMode}"
                     NDType="java.lang.String"/>
        </methodAction>I added this navigateToSRList.jspx page to that application:
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:af="http://xmlns.oracle.com/adf/faces"
              xmlns:afh="http://xmlns.oracle.com/adf/faces/html">
      <jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
                  doctype-system="http://www.w3.org/TR/html4/loose.dtd"
                  doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
      <jsp:directive.page contentType="text/html;charset=windows-1252"/>
      <f:view>
        <afh:html>
          <afh:head title="navigateToSRList">
            <meta http-equiv="Content-Type"
                  content="text/html; charset=windows-1252"/>
          </afh:head>
          <afh:body>
            <h:form>
              <af:commandButton text="show Open requests" action="GlobalHome">
                <af:setActionListener from="#{false}" to="#{userState.refresh}"/>
                <af:setActionListener from="#{'Open'}" to="#{userState.listMode}"/>
              </af:commandButton>
              <af:commandButton text="show Pending requests" action="GlobalHome">
                <af:setActionListener from="#{false}" to="#{userState.refresh}"/>
                <af:setActionListener from="#{'Pending'}" to="#{userState.listMode}"/>
              </af:commandButton>
            </h:form>
          </afh:body>
        </afh:html>
      </f:view>
    </jsp:root>This navigateToSRList.jspx page contains two buttons that will bring you to the SRList.jspx page. Both buttons explicitly set the userState properties refresh and listMode.
    If I click the first button, I get to see the Open requests. If I click the second button, I get to see the Pending requests.
    Because the tableRefresh invokeAction configures RefreshCondition="${(userState.refresh) and (!adfFacesContext.postback)}" and the buttons on my navigateToSRList.jspx explicitly set userState.refresh to false, I would expect this invokeAction NOT to be refreshed. (I checked the value -false- of userState.refresh using an expressionResolver.jspx page, see tip : resolve JSF expressions at runtime.)
    (*) questions
    - What causes the SRList.jspx page to show the expected data when using the buttons on navigateToSRList.jspx? I suspect it has something to do with the value of the statusParam NamedData in methodAction findServiceRequests that gets changed. The userState.listMode gets set by a af:setActionListener, this "changed methodAction parameter value" might trigger a refresh of the methodIterator. Can someone confirm this (from experience or with documentation)?
    - Is it possible to prevent "executables to be refreshed" if "methodAction parameters were changed"?
    many thanks
    Jan Vervecken

    Please see section "10.5.5 How to Use Refresh Correctly for InvokeAction and Iterator Bindings" of the ADF Developer's Guide for Forms/4GL Developers on the ADF Learning Center at http://www.oracle.com/technology/products/adf/learnadf.html for more information on this.
    The information it contains is valid for Non-ADFBC data controls as well.

  • ADF Mobile Browser - 12c invokeAction supported?

    We are planning to upgrade our existing platform to Oracle 12C (from 11.1.2.3) , and are in the processing of migrating our applications in the Development environment.
    One of the critical applications is an ADF Mobile Browser application. We use the invokeAction  executable heavily in our pages to execute actions on page load.
    Now although the application run fine in the 12C environment, we get a warning that invokeAction is deprecated.
    Question: whats the alternative to invokeAction in ADF Mobile Browser applications where we do not have taskflows?
    Thank you...

    Thanks Frank. When we first tried building our existing ADF application as a mobile browser app, the task flows did not work and we incorrectly assumed that task flows were not supported in ADF Mobile browser.
    I read the documentation again, and it seems only certain aspects of task flows like regions and page fragments that are not supported.
    We will re-write the logic to use task flows instead and try it out.

  • InvokeAction deprecated: Alternative?

    Hi
    We are using JDeveloper 11.1.2.1
    We want to change the invokeActions that we are using in an application, but only find alternatives to execute actions on page load with method calls. We have invokeActions to execute actions inside of a page to refresh iterators and re-execute queries.
    For example, on select a row in a af:table, to re-execute query and refresh a dependant component.
    Which is the alternative in this case? Override the af:table selectionListener?
    Thanks

    You can either use a task flow and call the method as method activity before navigation to the page, or you call your methods from a bean. 
    Your use car can be done using a generic take selection listener like http://www.oracle.com/technetwork/developer-tools/adf/learnmore/23-generic-table-selection-listener-169162.pdf
    Timo

  • Clicking on jsp page does not open it in visual editor.

    All "open jsp tags in visual editor" checkbox is on for all libraries.
    Jdeveloper version is 10131 build 3914
    Message
    BME-99003: An error occurred, so processing could not continue.
    Cause
    The application has tried to de-reference an invalid pointer. This exception should have been dealt with programmatically. The current activity may fail and the system may have been left in an unstable state. The following is a stack trace.
    java.lang.NullPointerException
         at oracle.jdevimpl.webapp.design.util.InvisibleJspElementsUtil.applyInvisibleJSPElements(InvisibleJspElementsUtil.java:108)
         at oracle.jdevimpl.webapp.design.util.InvisibleJspElementsUtil.applyInvisibleJSPElements(InvisibleJspElementsUtil.java:78)
         at oracle.jdevimpl.webapp.design.util.InvisibleJspElementsUtil.applyInvisibleJSPElements(InvisibleJspElementsUtil.java:47)
         at oracle.jdevimpl.webapp.design.view.DesignTimeFixedViewDocument.rebuildTree(DesignTimeFixedViewDocument.java:162)
         at oracle.jdevimpl.webapp.model.content.dom.view.proxy.ProxyViewDocument.initialize(ProxyViewDocument.java:80)
         at oracle.jdevimpl.webapp.editor.AbstractWebAppEditor.rebuildViewDocument(AbstractWebAppEditor.java:686)
         at oracle.jdevimpl.webapp.editor.html.HtmlEditor.rebuildViewDocument(HtmlEditor.java:621)
         at oracle.jdevimpl.webapp.editor.jsp.JspEditor.rebuildViewDocument(JspEditor.java:209)
         at oracle.jdevimpl.webapp.editor.AbstractWebAppEditor.createDocuments(AbstractWebAppEditor.java:1206)
         at oracle.jdevimpl.webapp.editor.AbstractWebAppEditor.open(AbstractWebAppEditor.java:393)
         at oracle.jdevimpl.webapp.editor.html.HtmlEditor.open(HtmlEditor.java:172)
         at oracle.jdevimpl.webapp.editor.jsp.JspEditor.open(JspEditor.java:113)
         at oracle.ideimpl.editor.EditorState.openEditor(EditorState.java:239)
         at oracle.ideimpl.editor.EditorState.createEditor(EditorState.java:147)
         at oracle.ideimpl.editor.EditorState.getOrCreateEditor(EditorState.java:90)
         at oracle.ideimpl.editor.SplitPaneState.canSetEditorStatePos(SplitPaneState.java:231)
         at oracle.ideimpl.editor.SplitPaneState.setCurrentEditorStatePos(SplitPaneState.java:194)
         at oracle.ideimpl.editor.TabGroupState.createSplitPaneState(TabGroupState.java:103)
         at oracle.ideimpl.editor.TabGroup.addTabGroupState(TabGroup.java:275)
         at oracle.ideimpl.editor.EditorManagerImpl.createEditor(EditorManagerImpl.java:1261)
         at oracle.ideimpl.editor.EditorManagerImpl.createEditor(EditorManagerImpl.java:1196)
         at oracle.ideimpl.editor.EditorManagerImpl.openEditorInFrame(EditorManagerImpl.java:1077)
         at oracle.ideimpl.editor.EditorManagerImpl.openDefaultEditorInFrame(EditorManagerImpl.java:1036)
         at oracle.adfdt.controller.util.CommonUtils.showEditor(CommonUtils.java:575)
         at oracle.adfdt.controller.jsf.diagram.shape.PageNode.gotoPage(PageNode.java:355)
         at oracle.adfdt.controller.jsf.diagram.shape.PageNode.invokeAction(PageNode.java:292)
         at oracle.adfdt.controller.jsf.diagram.registry.RPageNode.editContents(RPageNode.java:210)
         at oracle.bm.diagrammer.track.SelectionTracker.keyPressed(SelectionTracker.java:1338)
         at oracle.bm.diagrammer.track.ModularTracker.processEvent(ModularTracker.java:253)
         at oracle.bm.diagrammer.track.SelectionTracker.processEvent(SelectionTracker.java:148)
         at oracle.bm.diagrammer.track.TrackerStack.processEvent(TrackerStack.java:375)
         at oracle.bm.diagrammer.BaseDiagramView$53.processEvent(BaseDiagramView.java:733)
         at oracle.bm.diagrammer.PageView$PageViewPanel.fireEvent(PageView.java:2933)
         at oracle.bm.diagrammer.PageView$PageViewPanel.processEvent(PageView.java:3111)
         at java.awt.Component.dispatchEventImpl(Component.java:4407)
         at java.awt.Container.dispatchEventImpl(Container.java:2042)
         at java.awt.Component.dispatchEvent(Component.java:4237)
         at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1828)
         at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:693)
         at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:952)
         at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:824)
         at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:657)
         at java.awt.Component.dispatchEventImpl(Component.java:4279)
         at java.awt.Container.dispatchEventImpl(Container.java:2042)
         at java.awt.Window.dispatchEventImpl(Window.java:2405)
         at java.awt.Component.dispatchEvent(Component.java:4237)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:600)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
    Action
    If further errors occur, you should restart the application.
    Also, report the problem on the JDeveloper forum on otn.oracle.com, or contact Oracle support, giving the information from this message.
    ________________________________________________________________________________

    one more thing...the code runs properly on localhost... i tested it on my pc n it was fine..both in firefox and IE...
    i guess there is a specific syntax i need to follow (strict syntax) but i dunno what it is...:(

  • Clear all rows in a Bean Data Control

    I am using JDeveloper 11.1.1.6
    In my use case I have a screen that interacts with a Bean Data Control I have followed the steps in the following URL to create a Bean Data Control
    http://docs.oracle.com/cd/E18941_01/tutorials/jdtut_11r2_36/jdtut_11r2_36.html
    My screen successfully interacts with the Bean Data Control. This screen lives in a Bounded Task Flow (BTF). I can add rows using a Create Insert binding and can delete Rows as well. Once the user gets all rows into the Bean Data Control that they want inserted to a DB table, I can iterate through the Bean Data Control and post those records to the DB. It is possible for the users to add rows to the Bean Data Control and then link to a brand new screen which is in a different BTF which leaves rows in the Bean Data Control. Now the user goes back to the original screen. Upon returning, I want to empty (clear all rows) for the Bean Data Control so that they have a fresh start. Could you please provide guidance on what I might need to do to be able to clear a Bean Data Control when entering a BTF

    Hi,
    You can create a method to clear your Bean Data Control and call it with an invokeAction with property refresh="ifNeeded" and refreshCondition="#{pageFlowScope.isTimeToClearAll}", so pageFlowScope.isTimeToClearAll must be true only when you need to clear the BDC.
    Check this article: http://www.gebs.ro/blog/oracle/oracle-adf-invokeaction/
    AP

  • Iterators, View Objects, and ViewCriteria question

    JDev version 10.1.3.2, ADF BC JSF application, created a web-type search form with search and results on same page, exactly like that in Dev guide chap. 18.3. Would like to have the previous page put parameters in a managed bean, and then have the search page populate the QBE form fields with these parameters and execute the query.
    I was hoping to solve the problem by doing the following:
    1) in (session scoped) managed bean, have created a method that puts the parameter value into the "find mode" iterator's viewCriteria and then returns the JSF page navigation action that represents going to the search form. Here is the code for that method (the parameter is currently hardcoded "courseid = 390"):
    public String toEnableMissingSurvey() {
    // ViewObject postReqVO = getclassesStudentsCourses1();
    FacesContext fctx = FacesContext.getCurrentInstance();
    Application app = fctx.getApplication();
    ValueBinding vb = app.createValueBinding("#{bindings}");
    DCBindingContainer dc = (DCBindingContainer) vb.getValue(fctx);
    DCIteratorBinding dciter = dc.findIteratorBinding("classesStudentsCourses1Iterator");
    ViewCriteria criteria = dciter.getViewCriteria();
    if (criteria.size() > 0) criteria.clear();
    //AdfFacesContext afContext = AdfFacesContext.getCurrentInstance();
    //String courseid = (String)afContext.getProcessScope().get("surveyCourseid");
    // String courseid = getReturnNavigationRule();
    String courseid = "390";
    if (courseid != null && !courseid.equals("")) {
    Row criteriaRow = criteria.createViewCriteriaRow();
    criteria.add(criteriaRow);
    criteriaRow.setAttribute("Courseid",courseid);
    dciter.getViewObject().applyViewCriteria(criteria);
    //dciter.executeQuery(); --I commented this out because it didn't make any difference, and I thought that the query should be executing on page open anyways
    return "enableMissingSurvey";
    2) On the calling page, on the "EnableMissingSurvey" button which is to navigate to the search page, I have set the "Action" property of the button to this method.
    The button successfully navigates to the search page, but I don't see any change in either the parameter form or the search results that are visible at page opening.
    Can someone tell me what I am doing wrong? Am I accessing the wrong iterator? Do I need to set both the "always find" iterator and the "search results" iterator? Do I need some kind of additional invokeActions in my page def? Is this idea not valid?

    I am not sure 100% what you are trying to accomplish, but you can easily have the search form and results on the same page and not lose the search parameters.
    You need an invoke action to set your search iterator to alway find like this:
    <invokeAction id="AlwaysFind" Binds="Find"
    RefreshCondition="${ ! bindings.AllEmployeesIterator.findMode }"/>
    And create another iterator for the search results.
    KurzHome

  • ADF Faces & BC: PPR and refresh condition on pagedef executables.

    Hi all,
    I'm running into some problems on my page when a command button is pressed. It's partialSubmit attribute is set to true, it seems that iterators/invokeActions within my pageDef are re-executed and thus resetting the index iterator cursor to its original position which leads to the following two messages:
    Jun 2, 2008 5:34:57 PM oracle.adfinternal.view.faces.model.binding.FacesCtrlRangeBinding$FacesModel setRowKey
    WARNING: row is null for rowKey:oracle.jbo.Key[TEST_MN 00123456 2008-05-08 98 98 4 ]
    Jun 2, 2008 5:34:57 PM oracle.adfinternal.view.faces.model.binding.FacesCtrlRangeBinding$FacesModel makeCurrent
    My pageDef code:
    <iterator id="MasterVoIterator" RangeSize="10"
    Binds="MasterVo"
    DataControl="AppModule" />
    <iterator id="DetailVoIterator" RangeSize="10"
    Binds="DetailVo"
    DataControl="AppModule" />
    <invokeAction Binds="invokeInitValues" id="initValues"/>
    I would like to know how to setup the refresh property under the following scinero:
    1. when the page shows up for the first time:
    MasterVoIterator - invoke
    DetailVoIterator - invoke
    invokeInitValues - invoke
    2. When a show/hide button is used to display the detail rows is clicked:
    MasterVoIterator - do nothing
    DetailVoIterator - invoke // to refresh the detail records.
    invokeInitValues - do nothing
    Here is a pic of the component I am working with:
    http://i108.photobucket.com/albums/n23/zeoneozero/mrbhelp.jpg
    Any advice is appreciated
    Thanks,
    Wes

    Hi,
    use
    ${!adfFacesContext.postback}
    as the refresh condition property value to avoid a refresh on postback (when a button is clicked)
    Frank

  • ADF Master Table, Inline Detail Table - How to Scroll Range/Disclose Row

    JDev 10.1.3.2 ADF/BC
    I really need some help here. I've tried as many things as I could think of and I still cannot get this to work.
    Scenario: I have query/result page. User clicks a link in the result table to take him to another page. This page has a Master table, Inline detail table component (bound to a tree in the pageDef). Before the page renders, all I want to do is scroll the Master table to the current row (based on the previous query/result via invokeAction in pageDef) and disclose the inline detail. Simple, right? In addition, I'll need to scroll the inline detail to the current row as well.
    I would like to do this prior to the components rendering but would be interested in any coding to scroll and disclose.
    Thanks in advance,
    Tom

    I've come up with a solution to my problem. Unfortunately I'm not able to manipulate the table prior to rendering but this solution is probably the closest I'm going to get. Here is my code:
    I set up a af:poll component to fire once on my jspx.
        public void poll_PollListener(PollEvent pollEvent) {
            if (this.getFromProcess("unitRowKeyValue") != null) {
                int curIndx = this.getIteratorBinding("UnitsIterator").getRowSetIterator().getCurrentRowIndex();
                this.getUnitTree().setFirst(curIndx);
                if (this.getFromProcess("systemRowKeyValue") != null) {
                    this.getUnitTree().setRowIndex(curIndx);
                    DisclosureEvent de = new DisclosureEvent(this.getUnitTree(), true);
                    this.getUnitTree().queueEvent(de);
                this.storeOnProcess("renderPoll", false);
        }The setFirst method scrolls the table to the index specified. If the user, in my case, has selected a detail item (system), I want to disclose the detail. First I need to setRowIndex to the current index and then I fire a disclose event.
        public void unitTreeDisclosureListener(DisclosureEvent disclosureEvent) {
             if (disclosureEvent.isExpanded()) {
                 CoreTable coreTable = (CoreTable)disclosureEvent.getSource();
                 RowKeySet rks = new RowKeySet();
                 Object test = coreTable.getRowKey();
                 rks.getKeySet().add(coreTable.getRowKey());
                 coreTable.setDisclosureState(rks);
          }If I don't set the rowKey via the setRowIndex method above, the getRowKey does not return a valid rowKey. In my case, I only want one master row to be disclosed at a time.
    This all works great except for a bit of flicker to process the PPR request for the component.
    Next step is to see if I can scroll the Inline Detail table to the detail row selected in the Query/Result page.
    Tom

  • How to prevent creation of view object rows when using browser refresh butt

    HI i have the following problem:
    I have a creation form using a partial submition. The problem is that if i have entered some value by using autosubmit , this value will be setted as attribute in the ViewObject . After that if i click refresh button of the browser then the new Row of the view object will be created and i will have a pending row with setted attribute. So if execute commit then the both rows will be tried to commit. How can i prevent this?
    Krasi

    Hi,
    If i've understood you have a invokeAction that create a new row, right? If yes put on condition that it invokeAction won't invoke if is a postback.
    Let me know if i miss understand your doubt.
    Best Regards

Maybe you are looking for

  • Reg: Adding spaces between texts in ALV list header

    Hi All, I was implementing a client requirement for ALV. The list header should contain something of this format. Pgm Id:               ZZZ01 After this list header it is ALV display. I did this using the concatenate statement. ex: Concatenate 'PgmID

  • Problem with showPrintBehaviour

    Hi, I am using jdev 11.1.2.2. I have a page fragment which is divided by a panel splitter. So in the first facet i have a af:query component and in the second i have a panel stretch layout with a table and bar chart as shown in the pict below https:/

  • New OS has locked up my playbook

    I just downloaded the new OS 2.0 and my playbook has locked up on reboot. When it finally starts up I get the home screen but nothing works. When I manage to get into the OS hardware settings I see that I only have only 29.5 mb of memory available of

  • Search advice for good ABAP-connect-Java Book

    Hi, I want to navigate a Java-application in SAP. The Java-application is a routing-software. The SAP-user (the planner/coodinator) should choose a customer and a worker/sales-person in an ABAP-application. So this the SAP-user plans, which sales per

  • Screen Reading optimization not working

    Hi, When I got this laptop two months ago (W520), I discovered this utility Screen Reading Optimization, which automatically rotates your screen, touchpad and keyboard arrows to the laptops orientation. Worked flawlessly. However, it doesn't anymore.