ADF Mobile _back without iterator refresh (11.1.2.3.0)

Hi Forum Group,
In ADF Mobile, does anyone know how to prevent the iterator from refreshing if using the back built-in? Let me try to explain the scenario. I have an amx page with that has two results from two separate rest web services. Both of these rest web services are called with a URLDataControl via pageFlowScope variables assigned within the pageDef. The second result depends upon the result of the first for it to be called. All of this is not a problem as I'm navigating with taskflows and methods and can, therefore, properly populate the parameters (pageFlowScope variables) and call the web services. If, however, I want to iterate with previous and next (moving the rows from the default 0 row index while properly re-querying the second dependency) and then further navigate to a detail page, using the back causes the iterators to refresh (which would be out-of-sync if I did not use a taskflow method to reset everything). I would like, however, the state to remain the same on the "header" page, rather than requerying everything and having to have the user move to the appropriate row that they were wanting again. All I simply need to do is tell the iterator (or URLDataControl) to not requery if _back is used.
Any ideas?

Hi Frank,
Thank you for your response. Is there a way then to execute a piece of code right before the rendering of the page, so that this "current row" can be set? Like in web adf development, the binding to the backing bean can be added to any component and the set serves as an initializer (where code can be added to process things like this).

Similar Messages

  • Programatically retrieve data using iterator in oracle ADF Mobile

    I want to read programatically data using iterator in ADF mobile. My code is :
    try
    ValueExpression vex = AdfmfJavaUtilities.getValueExpression("#{bindings.WeatherDescriptionIterator}", Object.class);
    AmxIteratorBinding iter = (AmxIteratorBinding)vex.getValue(AdfmfJavaUtilities.getAdfELContext());
    GenericType row = null;
    BasicIterator bIter = iter.getIterator();
    iter.getIterator().first();
    ArrayList employees = new ArrayList();
    for(int i = 0; i < iter.getIterator().getTotalRowCount(); i++)
    row = (GenericType)iter.getCurrentRow();
    String phone = "";
    String email = "";
    if(row.getAttribute("Description") != null)
    phone = row.getAttribute("Description").toString();
    if(row.getAttribute("WeatherID") != null)
    email = row.getAttribute("WeatherID").toString();
    setTempValue(phone + " " + email);
    iter.getIterator().next();
    catch(Exception e1)
    AdfException ex = new AdfException(""+e1.getLocalizedMessage(), AdfException.ERROR );
    throw ex;
    I get error :-> cant not find property bindings
    Edited by: user12190920 on May 7, 2013 5:48 AM

    Hi,
    You can try the below code. Make sure the WeatherDescription should be of type Tree binding
    ValueExpression ve1 =
    AdfmfJavaUtilities.getValueExpression("#{bindings.departments.collectionModel}", AmxCollectionModel.class);
    AmxCollectionModel model = (AmxCollectionModel)ve1.getValue(AdfmfJavaUtilities.getAdfELContext());
    Object[] myArr = model.getKeys();
    for (int x = 0; x < myArr.length; x++) {
    Object myObj = myArr[x];
    Map provider = (Map)model.getProviders().get(myObj);
    String deptName = provider.get("deptName").toString();
    Hope this article may help you - http://deepakcs.blogspot.in/2013/02/adf-mobile-iterate-through-all-rows-in.html
    - Deepak

  • Is it possible to call wcf webservice on adf mobile?

    Hi all,
    I tried to consume a wcf webservice method on adf mobile by using java api as seen as below code snippet.
    I tried to run on classical adf generic application by creating webservice proxy. Then i could get response properly. But when i consume webservice method on adfmobile i get http 501 error response. I have tried using drag and drop into amx page and execute binding action, result is same.
    What might be the reason?
    brgds
        private boolean validateClient()
            List pnames = new ArrayList();
            List pvals = new ArrayList();
            List ptypes = new ArrayList();
            pnames.add("UserName");
            pvals.add("test");
            ptypes.add(String.class);
            pnames.add("Password");
            pvals.add("123");
            ptypes.add(String.class);
            pnames.add("DeviceID");
            pvals.add("123456");
            ptypes.add(String.class);
            GenericType result = null;
            try
                ClientDetail clientDetail = null;
                result = (GenericType)AdfmfJavaUtilities.invokeDataControlMethod("mlService", null, "ValidateClient", pnames, pvals, ptypes);
                for (int i = 0; i < result.getAttributeCount(); i++)
                    // Get each individual GenericType instance that holds the attribute key-value pairs
                    GenericType entityGenericType = (GenericType)result.getAttribute(i);
                    clientDetail = (ClientDetail)GenericTypeBeanSerializationHelper.fromGenericType(ClientDetail.class, entityGenericType);
                if (clientDetail != null)
                    if (clientDetail.getIsValidate().booleanValue())
                        return true;
                    else
                        AdfmfContainerUtilities.invokeContainerJavaScriptFunction("com.accmee.menu", "navigator.notification.alert",
                                                                                  new Object[] { "No access",
                                                                                                 "No access: ", "Ok" });
                } else
                        AdfmfContainerUtilities.invokeContainerJavaScriptFunction("com.accmee.menu", "navigator.notification.alert",
                                                                                  new Object[] { "No access",
                                                                                                 "No access: ", "Ok" });
                    return false;
            catch (AdfInvocationException aie)
                if (AdfInvocationException.CATEGORY_WEBSERVICE.compareTo(aie.getErrorCategory()) == 0)
                    throw new AdfException("Error with the server. Please try later.", AdfException.ERROR);
                aie.printStackTrace();
                throw new AdfException("Uzak veri sağlayısı çağrılırken hata oluştu", AdfException.ERROR);
            return false;

    No, as far as i know they are not secured service. What if they are secured, do i need to authenticate during consuming method in webservice proxy, dont i. But as i said before, i could consume and get response on webservice proxy in regular adf project.
    I can consume methods of another webservice (i.e. http://www.html2xml.nl/Services/Calculator/Version1/Calculator.asmx?WSDL) also in all methods that presented.
    No, i can not obtain access on another way to server, it is remote and out of my control.
    Ok, i tried as you say.
    Problem exists here too. May be an interopability problem on between adf platform and wcf service? What do you think Mr Shmeltzer?
    http://i42.tinypic.com/ny8jtd.png
    <WebServiceConnectionMessages> <debugExecuteFailure> Failed to execute a SAAJ interaction.
    oracle.j2ee.ws.client.jaxws.JRFSOAPFaultException: Client received SOAP Fault from server : The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://tempuri.org/IAuthenticationService/ValidateClient'.
      at oracle.j2ee.ws.client.jaxws.DispatchImpl.throwJAXWSSoapFaultException(DispatchImpl.java:1040)
      at oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:826)
      at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.synchronousInvocationWithRetry(OracleDispatchImpl.java:235)
      at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.invoke(OracleDispatchImpl.java:106)
      at oracle.adf.model.connection.webservice.impl.SaajInteractionImpl.execute(SaajInteractionImpl.java:80)
      at oracle.adfinternal.model.adapter.webservice.provider.soap.SOAPProvider.execute(SOAPProvider.java:324)
      at oracle.adfinternal.model.adapter.webservice.WSDataControl.invokeOperation(WSDataControl.java:277)
      at oracle.adf.model.bean.DCBeanDataControl.invokeMethod(DCBeanDataControl.java:444)
      at oracle.adf.model.binding.DCInvokeMethod.callMethod(DCInvokeMethod.java:266)
      at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1626)
      at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2169)
      at oracle.adf.model.bean.DCBeanDataControl.invokeOperation(DCBeanDataControl.java:507)
      at oracle.adf.model.adapter.AdapterDCService.invokeOperation(AdapterDCService.java:307)
      at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:731)
      at oracle.jbo.uicli.binding.JUMethodIteratorDef$JUMethodIteratorBinding.invokeMethodAction(JUMethodIteratorDef.java:173)
      at oracle.jbo.uicli.binding.JUMethodIteratorDef$JUMethodIteratorBinding.initSourceRSI(JUMethodIteratorDef.java:656)
      at oracle.adf.model.binding.DCIteratorBinding.callInitSourceRSI(DCIteratorBinding.java:1700)
      at oracle.adf.model.binding.DCIteratorBinding.internalGetRowSetIterator(DCIteratorBinding.java:1674)
      at oracle.adf.model.binding.DCIteratorBinding.refresh(DCIteratorBinding.java:4476)
      at oracle.adf.model.binding.DCExecutableBinding.refreshIfNeeded(DCExecutableBinding.java:341)
      at oracle.adf.model.binding.DCIteratorBinding.getRowSetIterator(DCIteratorBinding.java:1634)
      at oracle.jbo.uicli.binding.MyIteratorBinding.initSourceRSI(JUAccessorIteratorDef.java:768)
      at oracle.adf.model.binding.DCIteratorBinding.callInitSourceRSI(DCIteratorBinding.java:1700)
      at oracle.adf.model.binding.DCIteratorBinding.internalGetRowSetIterator(DCIteratorBinding.java:1674)
      at oracle.adf.model.binding.DCIteratorBinding.refresh(DCIteratorBinding.java:4476)
      at oracle.adf.model.binding.DCExecutableBinding.refreshIfNeeded(DCExecutableBinding.java:341)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.isAttributeUpdateable(JUCtrlValueBinding.java:1707)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.isAttributeUpdateable(JUCtrlValueBinding.java:1826)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.isUpdateable(JUCtrlValueBinding.java:2722)
      at oracle.adfinternal.view.faces.model.AdfELResolver._isReadOnly(AdfELResolver.java:130)
      at oracle.adfinternal.view.faces.model.AdfELResolver.isReadOnly(AdfELResolver.java:147)
      at oracle.adfinternal.view.faces.model.AdfELResolverProxy.isReadOnly(AdfELResolverProxy.java:78)
      at com.sun.faces.el.DemuxCompositeELResolver._isReadOnly(DemuxCompositeELResolver.java:293)
      at com.sun.faces.el.DemuxCompositeELResolver.isReadOnly(DemuxCompositeELResolver.java:322)
      at com.sun.el.parser.AstValue.isReadOnly(Unknown Source)
      at com.sun.el.ValueExpressionImpl.isReadOnly(Unknown Source)
      at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer._getUncachedReadOnly(EditableValueRenderer.java:476)
      at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.cacheReadOnly(EditableValueRenderer.java:406)
      at oracle.adfinternal.view.faces.renderkit.rich.LabeledInputRenderer.beforeEncode(LabeledInputRenderer.java:128)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:510)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer._encodeFormItem(PanelFormLayoutRenderer.java:1088)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer.access$100(PanelFormLayoutRenderer.java:50)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer$FormColumnEncoder.processComponent(PanelFormLayoutRenderer.java:1604)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer$FormColumnEncoder.processComponent(PanelFormLayoutRenderer.java:1523)
      at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:187)
      at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:318)
      at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:283)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer._encodeChildren(PanelFormLayoutRenderer.java:420)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer.encodeAll(PanelFormLayoutRenderer.java:208)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer._encodeFormItem(PanelFormLayoutRenderer.java:1127)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer.access$100(PanelFormLayoutRenderer.java:50)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer$FormColumnEncoder.processComponent(PanelFormLayoutRenderer.java:1604)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer$FormColumnEncoder.processComponent(PanelFormLayoutRenderer.java:1523)
      at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:187)
      at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:318)
      at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:283)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer._encodeChildren(PanelFormLayoutRenderer.java:420)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer.encodeAll(PanelFormLayoutRenderer.java:208)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeCenterFacet(PanelStretchLayoutRenderer.java:878)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeCenterPane(PanelStretchLayoutRenderer.java:1299)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeMiddlePanes(PanelStretchLayoutRenderer.java:350)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeAll(PanelStretchLayoutRenderer.java:315)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
      at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
      at oracle.adfinternal.view.faces.renderkit.rich.FormRenderer.encodeAll(FormRenderer.java:274)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
      at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
      at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1275)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
      at oracle.adfinternal.view.faces.component.AdfViewRoot.encodeAll(AdfViewRoot.java:91)
      at com.sun.faces.application.view.JspViewHandlingStrategy.doRenderView(JspViewHandlingStrategy.java:431)
      at com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:233)
      at org.apache.myfaces.trinidadinternal.application.ViewDeclarationLanguageFactoryImpl$ChangeApplyingVDLWrapper.renderView(ViewDeclarationLanguageFactoryImpl.java:350)
      at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
      at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
      at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:165)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:1035)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:342)
      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)
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://tempuri.org/"><env:Header/><env:Body><ns1:ValidateClient/></env:Body></env:Envelope><SOAPProvider> <handleFault> The Web Service call generated a SOAP Fault : [s:Sender] The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://tempuri.org/IAuthenticationService/ValidateClient'.
    <SOAPProvider> <handleFault> Verify if all the necessary parameter values are provided correctly and confirm to the schema constraints as defined in the WSDL
    <SOAPProvider> <handleFault> If the service requires any SOAP headers, Verify that they have been correctly defined in the request
    <SOAPProvider> <handleFault> The Web Service may have generated an exception in an attempt to handle the request, and has returned a SOAP fault to indicate that exception.
    brgds

  • Using database views in ADF mobile client application

    Hi,
    I am using Jdeveloper 11.1.1.4 and WLS 10.3.4.
    I have developed a POC in ADF mobile client application both with and without synchronization. However, both work with entity objects based on tables.
    I need to use database views instead of tables. When I try to include entity object (based on views) in the view object, it shows an error saying "Only the entity objects based on tables can be selected"
    Please guide me if there is a work around for this.
    Also, please let me know if there is way to develop an ADF mobile client application skipping the use of entity objects at all and using view objects directly to specify the database query and fetch data from the database.
    Thanks in advance.
    Ansh
    Edited by: ansh on Mar 28, 2011 5:40 AM

    Hi, Ansh:
    Currently, out of box, ADF Mobile Client does not support synchronization against Database Views. This is because Mobile Server imposes some schema restrictions to ensure synchronization with multi-table views would work correctly. This schema restriction requires, for example, the view must have a primary parent table with key defined, and also all base table must be included in the data publication. These dependencies requires manual resolution and advanced planning, and is managed outside of the ADF Mobile Client/JDeveloper project.
    To continue development, you would need to create server Entity Objects directly against the base tables. You can then create the mobile ADF Business Component (EOs, VOs, etc). You can then create View Objects in your ADF Mobile Client application based on the database views, in order to retrieve the data you need exactly. In other words, instead of basing EO on the database view, create View Objects in the mobile applicaiton to mimic what you had in the View Object.
    Is there any other reason why you would need to access data via database views, instead of directly against base tables?
    Thanks,
    Joe Huang

  • While consuming Fusion CRM web service in ADF mobile throwing an error

    Hi,
    I am developing ADF Mobile using JDeveloper
    11.1.2.3 and consuming Fusion CRM ADF Web Services.
    While executing CRUD operations with these web services
    in ADF mobile app, I am getting SOAP response as *Error in getting response
    and got result nothing *.
    And also noticed as using JDeveloper ADF mobile App, unable to create URL service
    Data Control - REST based for FUsion CRM web services. Where as I am able to
    create SOAP based web services data control. It' strange or surprise.
    Did anyone face the above problems. Kindly let me know any suggestions or
    samples to the below contacts
    Regards
    Bhaskara Reddy S
    00919008466722
    bhaskara.sannapureddy at Crmit.com

    Dear Frank,
    Based on below links, Fusion CRM also supports REST also apart from regular SOAP Web Services.
    http://niallcblogs.blogspot.in/2012/10/204-calling-rest-service-from-fusion-crm.html AND
    http://docs.oracle.com/cd/E15586_01/fusionapps.1111/e20388/F412758AN17B21.htm
    (For e.g one of linked in profile :http://www.linkedin.com/in/minalkhodani , many teams are developing using SOAP & REST)
    Designed and developed integration services using SOAP and REST web services for Oracle Fusion CRM Marketing Modules.)
    When creating URL based data control, getting an Error as "Forbidden" , (Does it mean NOT SUPPORTED??) . Kindly advice.
    I am calling WEB SERVICE thru SOAP in AMX PAGE code as below after creating Web Services Data Control from ADF Mobile UI thru JDeveloper IDE.
    == CODE SNIPPET OF AMX PAGE CALLING SOAP FUSION CRM WEB SERVICE =======
    <?xml version="1.0" encoding="UTF-8" ?>
    <amx:view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amx="http://xmlns.oracle.com/adf/mf/amx"
    xmlns:dvtm="http://xmlns.oracle.com/adf/mf/amx/dvt">
    <amx:panelPage id="pp1">
    <amx:panelFormLayout id="pfl2">
    <amx:inputText value="#{bindings.name.inputValue}" label="Person First Name" id="it1"/>
    <amx:inputText value="300000001210220" label="Person Object Id" id="it2"/>
    </amx:panelFormLayout>
    <amx:facet name="header">
    <amx:outputText value="Create Person in Fusion CRM" id="ot1"/>
    </amx:facet>
    <amx:facet name="primary">
    <amx:commandButton id="cb1" text="Back" action="__back"/>
    </amx:facet>
    <amx:facet name="secondary">
    <amx:commandButton id="cb2"/>
    </amx:facet>
    <amx:panelFormLayout id="pfl1">
    </amx:panelFormLayout>
    <amx:outputText value="#{bindings.message.inputValue}" id="ot2"/>
    <amx:outputText value="#{bindings.code.inputValue}" id="ot3"/>
    *<amx:commandButton actionListener="#{bindings.createPerson.execute}" text="createPerson"*
    *disabled="#{!bindings.createPerson.enabled}" id="cb3"/>*
    <amx:iterator var="row" value="#{bindings.personParty1.collectionModel}" id="i1">
    <amx:panelLabelAndMessage label=" 300000001210220" id="plam2">
    <amx:outputText value="#{row.PartyId}" id="ot5">
    <amx:convertNumber groupingUsed="false"/>
    </amx:outputText>
    </amx:panelLabelAndMessage>
    <amx:panelLabelAndMessage label="#{bindings.name.inputValue}" id="plam1">
    <amx:outputText value="#{row.PersonFirstName}" id="ot4"/>
    </amx:panelLabelAndMessage>
    </amx:iterator>
    </amx:panelPage>
    </amx:view>
    Regards
    Bhaskara Reddy

  • ADF Mobile Error handling and redirect

    I'm stuck on how to handle errors within my ADF Mobile application. My application consumes a number of web services and we have found we often get error messages when phone connections switch from wifi to 3g or lose connection altogether. These are errors such as SSL handshake failure, HTTP500 errors, and also errors where it can't display the binding eh "Unable to get value for the property due to invalid binding iterator" because a WS call has failed. From the little information I can find - and none of it specific to ADF Mobile, I think I need to write an error handler class which I set against ErrorHandlerClass in databinding.cpx - if that correct? Am I able to catch these errors using that method and if so has anyone got any examples at all. Ideally what I'd like to do when I've caught those errors is redirect to another page (showing something like facebooks app does when it loses a connection and says tap to try again), does anyone have any suggestions or examples?
    thanks
    lynsey

    A sample for ADF Mobile Error Handling.
    SDA013
    Error Handling in ADF Mobile
    https://java.net/projects/smuenchadf/pages/ADFMobile#SDA013

  • PropertyChangeSupport in ADF Mobile

    I'm working with ADF Mobile - altogether easier and more powerful than I thought - much faster development than with the Android SDK, and multiple device support thown in.
    I'm seeing in the bean samples that PropertyChangeSupport is used for every bean variable on setting (via the firePropertyChange method, but also with the fireProviderRefresh and fireProviderCreate methods).
    The ADF API has scant documentation:
    "This is a utility class that can be used by beans that support bound properties. You can use an instance of this class as a member field of your bean and delegate various work to it."
    Is this a new way to work with bean values? It appears to be mobile only (in the adfmf package), so it is a different way to handle this?
    When do I use this? Which methods do I call?
    Is there more documentation?
    Thanks,
    Ed.

    Hi,
    this is normal JavaBean development in which properties notify listeners about change (thus bound properties). In the ADF Mobile case the framework listens and you can use this to refresh a component. See http://www.oracle.com/technetwork/developer-tools/adf/learnmore/m02-dynamicallyshowhidecomponents-1915399.pdf where I used this to dynamically show/hide components. So to answer your question: yes its spcific to ADF mobile and not required in Web ADF. But then its not specific because you would use the same in Java desktop UI development too.
    Frank

  • Issues in ADF mobile application using Trinidad components

    I am facing the following issues when developing a mobile application using trinidad components :
    Jdev version : 11.1.1.6
    1) I dont see a date component using trinidad components? The dev guide http://docs.oracle.com/cd/E23943_01/web.1111/e10140/sup_comp.htm says that tr:inputDate is supported but when i try to drag a data field to jsf page i don't see an option for Trinidad date component. so i went ahead and created an af:inputDate in the page. But the date selection dialog doesnt open up.
    2) i tried using 'Rendered' for conditional rendering of a component but it does not work or refresh immediately, the same problem is solved in my adf application using visible property but looks like there is no 'Visible' property for Trinidad components. any work around?
    3) i wanted to have a 'create insert' call in my task flow before launching the page. Since Task flows are not supported in ADF mobile application, i have added 'ADF Faces' also into my project and created task flow and jsff page as i do for a adf web application the only diff being the usage of trinidad components in my jsff page. is this fine? Also can we mix trinidad components and adf components into the same page?
    4) I have a tr:inputText on a clob input text field which i am updating in ADF page using a clob converter class. Same thing i cannot do for trinidad text as it is resulting in null pointer exception. any solution to update clob fields into database which uses tr:inputText compents.
    Help to solve any one of the above issues (by quoting serial no) would be highly appreciated. Thanks.

    >
    4) I have a tr:inputText on a clob input text field which i am updating in ADF page using a clob converter class. Same thing i cannot do for trinidad text as it is resulting in null pointer exception. any solution to update clob fields into database which uses tr:inputText compents.
    wht is the stack trace.. when is it giving null pointer exception.. explain
    >
    Below is the code for an inputText component based on a CLOB Field.
    <tr:inputText value="#{bindings.ObsComments.inputValue}"
                        label="#{bindings.ObsComments.hints.label}"
                        required="#{bindings.ObsComments.hints.mandatory}"
                        columns="#{bindings.ObsComments.hints.displayWidth}"
                        maximumLength="#{bindings.ObsComments.hints.precision}"
                        id="it4" rows="4" binding="#{ObsMobileBean.obsComments}"
                        showRequired="#{bindings.WoNeeded.attributeValue eq 'Y'}"
                        partialTriggers="sbc1" converter="ClobConverter">
            <f:validator binding="#{bindings.ObsComments.validator}"/>
          </tr:inputText>When i try to render the page it self i face this error initially.
    >
    java.lang.NullPointerException
         at sfi.apps.sso.mobileUi.util.ClobConverter.getAsString(ClobConverter.java:41)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.ValueRenderer.getConvertedString(ValueRenderer.java:63)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.EditableValueRenderer.getConvertedString(EditableValueRenderer.java:163)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SimpleInputTextRenderer.renderContent(SimpleInputTextRenderer.java:364)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SimpleInputTextRenderer.encodeAllAsElement(SimpleInputTextRenderer.java:121)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.FormElementRenderer.encodeAll(FormElementRenderer.java:109)
         at org.apache.myfaces.trinidad.render.CoreRenderer.delegateRenderer(CoreRenderer.java:435)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.InputLabelAndMessageRenderer.renderFieldCellContents(InputLabelAndMessageRenderer.java:146)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.LabelAndMessageRenderer._renderFieldCell(LabelAndMessageRenderer.java:492)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.LabelAndMessageRenderer.encodeAll(LabelAndMessageRenderer.java:359)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.InputLabelAndMessageRenderer.encodeAll(InputLabelAndMessageRenderer.java:124)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:341)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:405)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelFormLayoutRenderer._encodeFormItem(PanelFormLayoutRenderer.java:911)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelFormLayoutRenderer.access$100(PanelFormLayoutRenderer.java:48)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelFormLayoutRenderer$FormColumnEncoder.processComponent(PanelFormLayoutRenderer.java:1419)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelFormLayoutRenderer$FormColumnEncoder.processComponent(PanelFormLayoutRenderer.java:1338)
         at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
         at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
         at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelFormLayoutRenderer._encodeChildren(PanelFormLayoutRenderer.java:312)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelFormLayoutRenderer.encodeAll(PanelFormLayoutRenderer.java:137)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:341)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:405)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:421)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelHeaderRenderer.encodeAll(PanelHeaderRenderer.java:133)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:341)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:405)
         at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2633)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:421)
         at oracle.adfinternal.view.faces.renderkit.rich.RegionRenderer._encodeChildren(RegionRenderer.java:278)
         at oracle.adfinternal.view.faces.renderkit.rich.RegionRenderer.encodeAll(RegionRenderer.java:201)
         at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:341)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at oracle.adf.view.rich.component.fragment.UIXRegion.encodeEnd(UIXRegion.java:300)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:405)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:421)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.renderContent(PanelPartialRootRenderer.java:69)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyRenderer.renderContent(BodyRenderer.java:142)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:151)
         at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyRenderer.encodeAll(BodyRenderer.java:78)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:341)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
         at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266)
         at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197)
         at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:189)
         at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:911)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:367)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:222)
         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:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
         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)
    >
    Now if i remove the tag converter="ClobConverter" then the page renders fine but when i try to submit the values back into the database, then i got the error
    >
    Cannot convert <entered text> of type class java.lang.String to class oracle.jbo.domain.ClobDomain
    >
    My clob converter class is registered in faces-config.xml file and the code for it is also pasted below for reference:
    import javax.faces.component.UIComponent;
    import javax.faces.context.FacesContext;
    import javax.faces.convert.Converter;
    import javax.faces.convert.ConverterException;
    import oracle.jbo.domain.ClobDomain;
    public class ClobConverter implements Converter {
        public ClobConverter() {
        public Object getAsObject(FacesContext context, UIComponent component,
                                  String value) {
            if (context == null || component == null) {
                throw new NullPointerException("FacesContext and UIComponent can not be null");
            if (value == null) {
                return null;
            try {
                return new ClobDomain(value);
            } catch (Exception ex) {
                final String message =
                    String.format("Unable to convert boolean value \"%s\" into a oracle.jbo.domain.Number",
                                  value);
                throw new ConverterException(message, ex);
        public String getAsString(FacesContext context, UIComponent component,
                                  Object value) {
            if (context == null || component == null) {
                throw new NullPointerException("FacesContext and UIComponent can not be null");
            return value.toString();
    }

  • Lov iterator refresh issue

    HI friends!
    I'm using JDeveloper 11g
    I've got a problem with a lov attribute in my application.
    I need to implement the following scenario:
    I have an adf table Licence in my jsf page. One of the table columns includes a lov attribute which values must be selected from a list box (a list data source is LicenceProducer lov view object).
    If there is no required licence producer in the drop down list we can trigger a pop up dilaog (kind of lov dialog) and create a new one row in the data source iterator.
    Then the required attribute value of the newly created row must be passed to the list in the source jsf page and become a currently selected value for the lov attribute of the Licence VO.
    SO i've have implemented almost the whole scenario:
    1. created an appropriate lov attribute in Licence VO with LicenceProducer VO as a list data source
    2. created a bounded adf task flow which is resonsible for displaying the pop up lov dialog with all insert/commit/return new value functionallity.
    Everything works just greate except that the lov iterator is never refreshed after returning from the pop up dialog.
    The updated content of the list box is only seen after reloading the source jsf page. Setting partial page rendering (for the Licence adf table) on returning from the pop up dialog does't work.
    I saw a number of posts on this issue but never found any good solutions.
    I think that i must somehow get an access to the lov iterator (data source vo) wich is not the same as the base LicenceProducer view object and refresh it programmatically.
    PS. if i brought my issue in a not sufficiently clear way. please answer the quite simplier question. Is it possible somehow to add a lov functionallity with the possibility to add new rows into lov iterator?
    Thanks in advance. Alex.

    Thanks friends.
    It is so greate to see somebody notice your question and even have the similar problem.
    First to Paul
    1. Yes I have a model driven LOV, i.e. i defined the lov functionalty for the attribute in a VO.
    2. I'm using JDeveloper 11g as you might be using.
    3. Actually i'm afraid i have not fully understood your approach with a row impl class. AS i could notice there were no worthy changes added into the row impl class after i had redefined VO's attribute to use a lov view object.
    it would be greatly appreciated if you let me know more detail about your solution.
    By the way i have noticed one interesting thing as I was experimenting with my issue. It turned out that the lov iterator refreshes just excellent on returning from a pop up "manually created lov dialog" after i click a rollback button of the data control
    where the VO iterator containing the attribute with the lov functionalty exists. Give it a try and you'll see, no other standard operation button gives the same effect!!!!! I realized it accidentially myself.
    To Hasim
    if i understand you right your assumption is to refresh a row iterator which is the basis for the lov attribute and then refresh a page element where the lov attribute has been dropped?
    If so than i've tried it because this is the first thing comes into mind. But it doesn't work, i think that this basis iterator we select for the list of values of the required attribute in VO is not the same as a real list Datasource iterator...
    If i understood you wrong please give me know and explain please your approach. Your opinion is interesting for me.
    I address our experts ones again with a rather simplier question. Is it possible to create a model driven lov attribute where it would be possible to insert new rows into the list of values during the ongoing user session?
    Alex.

  • ADF Mobile - Phone Performance Issues

    Hello,
    I've been using ADF Mobile for a while now. All's going well - I'm able to access web-based data services etc and everything seems to work. I do have a couple of couple of questions regarding performance on the phone though and I was wondering if anyone could offer some help/advice etc.
    I've followed all the steps here: https://blogs.oracle.com/mobile/entry/configuration_tips_for_better_performance
    ...but with no visibile improvements. My issues are:
    <1> Once the app is deployed, starting it for the first time takes around 2 minutes. All subsequent start-ups of the app after this take a couple of seconds, even after a shutdown of the phone. I'm not sure how to determine what exactly is happening during this phase, and why this takes so long just the first time? The duration for this also seems to have increased as I've added pages to my app, and as it only has 4 at the moment I'm concerned that adding much more to it will make the problem worse.
    <2> I use "listItems" on most pages in a "panelGroupLayout", and the scrolling performance is very poor. All other apps I have on my phone scroll very smoothly. With my ADF app, you drag your finger to scroll up or down and there's a noticeable delay before all the rows move in one go with no visible scrolling actually taking place. This happens even when all the rows to be displayed are loaded on to the page and there's no more calling of the web service necessary. I've deployed the sample "DeviceDemo" to my phone and the "Properties" page has the same problem. The scrolling is very poor.
    I've done a fair bit of Googling on this without much success, Any help or suggested reading on any of this would be very much appreciated.
    Cheers, Rich.
    Edited by: user10788009 on 15-Feb-2013 05:44 - Spelling

    Currently there is no 'solution' for this problem.
    A quote from Joe
    Joe Huang wrote:
    Hi
    First you would need to deploy the application in "Release Mode". This requires you to create a Java Keystore and a certificate using the Java keytool, and then you would use it to compile the app. If you have done that, then can you please help explain what these pages are doing, and observed performance?
    Unfortunately Galaxy Tab 2 is a bit old - if you have done everything to optimize the app, this could be due to older Android OS. Android OS (especially version 2.x) does not support HTML5/JS well, and performance is much worse than HTML5/JS running on Android 4.x devices. This is more than just HW differences - this is primarily due to the web engine used by the webview.
    This is also somewhat a general issue with Android - Chrome is a much faster browser on Android, but unfortunately the webview (which ADF Mobile leverages) is not yet based on Chrome. If and when they switch to Chrome, the JavaScript/HTML5 support would start to rival that of the iOS.
    Thanks,
    Joe Huang

  • Oracle ADF Mobile getting array of objects from webservice

    hi,
    i am trying to fetch a certain number of records using a webservice call and then storing in the SQLLite DB in the mobile.
    i understand i can create a data control using the webservice > then?
    my webservice returns an array of objects.
    how can i do that?
    regards,
    ad

    It's fairly easy.
    What I have done is created a WebService Controller (plain java class) which calls the methods (from the WS) programmaticly.
    Example :
    public class WSController {
        private final String WSDataControllerName = "ThisIsTheNameOfMyWebserviceDataControl";
        private List pnames ,ptypes ,params;
        public WSController() {
            super();
        public List getAllActioncodesFromWS()
           //start - WS empty params
            pnames = new ArrayList();
            params = new ArrayList();
            ptypes = new ArrayList();
            pnames.add("findCriteria");
            params.add(null);
            ptypes.add(Object.class);
            pnames.add("findControl");
            params.add(null);
            ptypes.add(Object.class);
            //end - WS empty params
            List actionCodes = new ArrayList();
            try
                GenericType result = (GenericType)AdfmfJavaUtilities.invokeDataControlMethod(WSDataControllerName, null, "findActioncodesView1",pnames, params, ptypes);
                if(result!=null)
                    for (int i = 0; i < result.getAttributeCount(); i++)
                        GenericType row = (GenericType)result.getAttribute(i);
                        Actioncode wd = (Actioncode)GenericTypeBeanSerializationHelper.fromGenericType(Actioncode.class, row);
                        actionCodes.add(wd);
            catch (AdfInvocationException e)
                e.getMessage();
            catch (Exception e)
                e.getMessage();
         return actionCodes;
        }I also defined a Pojo named Actioncode :
    Note that the attribute names are completly the same as the VO from the web service.
    public class Actioncode {
        String Actioncode,Descript1;
        public Actioncode() {
            super();
        public Actioncode(String Actioncode, String Descript1) {
            super();
            this.Actioncode = Actioncode;
            this.Descript1 = Descript1;
        public void setActioncode(String Actioncode) {
            this.Actioncode = Actioncode;
        public String getActioncode() {
            return Actioncode;
        public void setDescript1(String Descript1) {
            this.Descript1 = Descript1;
        public String getDescript1() {
            return Descript1;
    }Since the WS method returns a GenericType, you can 'convert' that object to an POJO.
    Read more about it here :
    http://adf4beginners.blogspot.be/2013/01/adf-mobile-how-to-iterate-over-all-rows.html
    I know the blog post is about iterating over rows in an iterator, but it's just to illustrate how you can work with the GenericType

  • Oracle DB Access ADF Mobile

    I'm learning ADF Mobile and would like to learn if i can connect to existing Oracle database and retrieve information (without creating web services on my own)? If direct access (without web service) is not possible, how may i create web services that automatically wraps my schema so i can use it with Data Control?
    Thanks in advance,

    This is not in the current feature set. We favor web services, either SOAP or REST, for back-end integration. Why exactly would you like to get direct access to your database?
    You would run in all sorts of problems anyway, as firewalls typically block the ports used for JDBC connections. In addition, exposing your database server directly on the Internet would be a big security risk.

  • ADF Mobile: WebService data control method call with array

    JDev 11.1.2.3
    ADF Mobile deployed to Android emulator
    Hello All,
    I am trying to invoke a method in my Web Service data control and get the following exception
    Caused by: ERROR [oracle.adfmf.framework.exception.AdfInvocationRuntimeException] - Cannot serialize: [I@1dbae822
            at oracle.adfmf.dc.ws.soap.SoapTransportLayer.invokeSoapRequest(Lorg/ksoap2/SoapEnvelope;)Ljava/lang/Object;(Unknown Source)
            at oracle.adfmf.dc.ws.soap.SoapWebServiceOperation.invoke(Ljava/lang/String;Loracle/adfmf/dc/ws/soap/SoapGenericType;)Ljava/lang/Object;(Unknown Source)
            at oracle.adfmf.dc.ws.soap.SoapWebServiceOperation.invoke(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/Object;(Unknown Source)
            at oracle.adfmf.dc.JavaBeanOperation.execute(Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;(Unknown Source)
            at oracle.adfmf.dc.ws.WebServiceDataControlAdapter.invokeOperation(Ljava/util/Map;Loracle/adfmf/bindings/OperationBinding;)Z(Unknown Source)
            at oracle.adfmf.bindings.dbf.AmxMethodActionBinding.execute()Ljava/lang/Object;(Unknown Source) This method is an AppModule method exposed as a service interface and the parameter for this method is a List<oracle.jbo.domain.Number>. The schema definition for the input is as follows:
    <element name="acceptTask">
       <complexType>
         <sequence>
                <element maxOccurs="unbounded" minOccurs="0" name="taskID" type="decimal"/>
         </sequence>
       </complexType>
    </element>For the input to my binding, I have tried int[], Integer[] and List<Integer>. All of these result in similar errors.
    I have also tried invoking this through a regular ADF application and that works fine with an int[]. It looks like something specific to the ADF Mobile SOAP layer.
    Is this a bug or a restriction in the framework? Any workarounds that has worked for anyone?

    No luck. A WS DC method call with a simple parameter (java.lang.String or java.lang.Integer) works fine but I can't get it to work when there is an array input.
    I have tried WS methods with int arrays and simple string arrays without any luck. All of them result in a cannot serialize error.
    I can't figure out what I am doing wrong. Are there any working WS Datacontrol samples with array inputs?

  • How to create and configure proxies in ADF mobile using OWSM client agent?

    Hi
    Can anyone please tell me how to create and configure proxies in ADF mobile application using Oracle Web Services Manager (OWSM) Lite Mobile ADF Application Agent. I read it in mobile document that,
    For secured web services, the user credentials are dynamically injected using ADF Mobile uses Oracle Web Services Manager (OWSM) Lite Mobile ADF Application Agent to create and configure proxies, as well as to request services through the proxies. The user credentials are injected into the OWSM enforcement context when proxies are configured.
    I am new with this OWSM, can anyone please give me some hints like how to proceed further for implementing authentication using OWSM lite mobile ADF Application Agent??
    Thanks in advance
    Raj

    Hi Juan
    The demo is very useful, and in that Shay describes about the remote login using a regular ADF webapplication as a secured one and deploying it into the server. But I would like to know how to create a local login using OWSM client agent? .
    Without creating a regular ADF webapplication, how can i call secured webservices(i.e., by using OWSM client agent how to create and configure proxies to call secured webservice, where the user credentials are injected into webservice request by OWSM client as mentioned in ADF mobile document)??
    Regards
    Raj

  • ADF Mobile: Unfortunately camera has stopped problem in emulator

    Hi,
    I am following this tutorial http://docs.oracle.com/cd/E18941_01/tutorials/BuildingMobileApps/ADFMobileTutorial_3.html but after successful deployment I am getting
    this error when i click on take a picture button "Unfortunately camera has stopped problem". I have also tried to use camera of emulator without application and
    getting the same error. Please help me to resolve this issue.
    Thank You,
    Muhammad Nasir

    User129 wrote:
    Hi,
    I am following this tutorial http://docs.oracle.com/cd/E18941_01/tutorials/BuildingMobileApps/ADFMobileTutorial_3.html but after successful deployment I am getting
    this error when i click on take a picture button "Unfortunately camera has stopped problem". I have also tried to use camera of emulator without application and
    getting the same error. Please help me to resolve this issue.
    Thank You,
    Muhammad NasirSo bassicly you are saying this is a problem of the emulator? Which hasn't anything to do with ADF Mobile or Oracle.
    Googling your problem doesn't seem very hard.
    http://viralpatel.net/blogs/enable-camera-in-android-emulator/

Maybe you are looking for

  • Which query is running in package

    Hi, I created one package and run this package in toad like select reports_package.func_reports('ABC') from dual; I have 10 delete and 10 insert statement on this . How I will check which query is running iin database.

  • Re: Std report with division wise.

    Hi guru's, Is there any standard report to get the data for the same material in different divisions. If it is not there,  is there any process to get the required data with the help of current standard reports. thanks tuljasingh.

  • Please help: Chronic Airtunes Drop-outs/2.4 Ghz Interference

    For several months, I have been battling interference with airtunes/AX, which is now so bad that it's barely usable. The music stops/starts constantly, and sometimes iTunes just stops. The signal strength indicator (normally 4 bars) jumps all over th

  • I-Pod Touch, 3.0 Software, Various Issues

    I have a second generation I-Pod Touch. Got my first 12-7-08 but the battery died so I used my warrenty to get a replacement. That worked out fine. Couple of days ago I paid the $9.95 for the 3.0 Software. Its ok. I don't have any problems with it ex

  • Attaching photos to Contacts

    How do I take a photo and attach it to my contacts?