Missing code ? in example ADF JClient Data Binding in a Multi-Form APP

I was reviewing the documnt for concurrent forms and see the statement -
oracle.jbo.Key masterRowKey ;
but do not see how it becomes initilized ?
and then it is used in the statement -
if (masterRowKey != null && row.getKey().equals(masterRowKey))
can someone help me here?
thanks.

Robert,
thats a good catch. I checked the sample form that we used to develop the howto document and this doesn't contain the masterRowKey initialization either. So my guess is that the masterRowKey is not needed.
I'll forward your question to Ralph Gordon, the author of the document.
thanks
Frank

Similar Messages

  • Stuck at error with How To Example for Data Binding in Multi-Form App

    I have succesfully completed the section "Serial Forms Use Case" by Ralph Gordon's in "Managing ADF JClient Data Binding in a Multi-Fom Application" How To Document. Everything worked as explained.
    Then I tried doing the second section "Concurrent Form Use Case". I got stuck there.
    Im sure it's just something silly, but I would love to complete this section.
    I get the follwing error when I click on the open details button in the master form:
    java.lang.ClassCastException: portaluniverse.debitorder.model.dao.ClientViewRowImpl
         at portaluniverse.debitorder.view.debitorder.debitform.openButton_actionPerformed(debitform.java:545)
         at portaluniverse.debitorder.view.debitorder.debitform.access$6000171(debitform.java:47)
         at portaluniverse.debitorder.view.debitorder.debitform$2.actionPerformed(debitform.java:144)
         at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
         at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
         at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
         at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
         at java.awt.Component.processMouseEvent(Component.java:5100)
         at java.awt.Component.processEvent(Component.java:4897)
         at java.awt.Container.processEvent(Container.java:1569)
         at java.awt.Component.dispatchEventImpl(Component.java:3615)
         at java.awt.Container.dispatchEventImpl(Container.java:1627)
         at java.awt.Component.dispatchEvent(Component.java:3477)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
         at java.awt.Container.dispatchEventImpl(Container.java:1613)
         at java.awt.Window.dispatchEventImpl(Window.java:1606)
         at java.awt.Component.dispatchEvent(Component.java)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:458)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
    The error appears on this line:
    RowSetIterator detailAccessor = (RowSetIterator)row.getAttribute("ClientView");
    The above line of code was taken out of the following method:
    // object used in the following action listener
    oracle.jbo.Key masterRowKey ;
    // specify the action listener
    private void openButton_actionPerformed(ActionEvent e) {
    ClientForm df = new ClientForm();
    // note that the setBindingContainer() method will be defined in DetailForm.java
    df.setBindingContainer(createDetailBinding());
    // get master current row, get detail accessor iterator, then bind detail form iterator binding to
    // detail accessor iterator
    DCIteratorBinding iterBinding = getPanelBinding().findIteratorBinding("DebitOrderViewIterator");
    Row row = iterBinding.getCurrentRow();
    if (masterRowKey != null && row.getKey().equals(masterRowKey)) {
    //create a new RowSet Iterator for the same master to avoid auto-synchronization of currency
    RowSetIterator secondaryRSI = (RowSetIterator)iterBinding.getViewObject().createRowSetIterator(null);
    df.getPanelBinding().findIteratorBinding("ClientViewIterator").bindRowSetIterator(secondaryRSI, false);
    } else {
    RowSetIterator detailAccessor = (RowSetIterator)row.getAttribute("ClientView");
    df.getPanelBinding().findIteratorBinding("ClientViewIterator").bindRowSetIterator(detailAccessor, false);
    df.setVisible(true);
    My Master Form is called "DebitForm.java" and my Details Form is called "ClientForm.java".
    I appreciate any help.
    Thank-you in advance.
    Leana

    Leana,
    I'll point Ralph to this question. I can't see a difference between your code and Ralph's. Which JDeveloper version do you use use?
    Frank

  • ADF JSF data binding: why state maintained between requests?

    Dear All,
    i want to know when and how the state of jsf can be maintain automatically by
    adf model.
    i have 2 pages, pageA.jspx and pageB.jspx. in pageA.jspx show some data in
    datatable (bound to methodIterator), when it go to pageB.jspx from pageA.jspx
    and then back to pageA.jspx, the state of the pageA.jspx seems can be stored
    by adf somewhere else.
    i.e. (pageA.jspx -> pageB.jspx -> pageA.jspx)
    ****all the backing beans are request scope.
    according to the adf dev guide, only the the page binding data for the current page will maintain automatically, then why when pageA.jspx's state is stored ?
    do adf store the state in session?? when can i rely on this nature to avoid reload
    pageA.jspx's data?? or how can i clear the state of pageA.jspx (blank page) (return from pageB.jspx)??
    the adf developer guide seems with little information about the page/binding data
    management..where can i found more information about this??
    thank you
    lsp

    Hi,
    i am using EJB + JSF + adf model.
    in this case its the iterator that survives the page navigationdo you mean that all iterator(method/variable..etc) can survive between page navigation??
    You can decide to refresh the iterator on each page load or re-execute the query if
    you don't want this.i want to 'clear' the iterator's data, but not to re-execute/refresh it to get data
    (as this will cause the underlying methodAction be executed once more)..i just want, say
    to display a 'blank' page, say blank pageA.jspx.
    IS THERE ANY REFENENCE document that describe the detail behavior..
    1. when state maintain?
    e.g. case 1 pageA->pageB->pageA->pageB (pageB's state maintained?)
    e.g. case 2 pageA->pageB->pageC->pageA (pageA's state maintained?)
    2. how do the state maintained??
    the iterators are stored in the session or store in the request (e.g. serialized in
    hidden input..etc)? will it lead to large memory usage in server side (until session
    end)?
    i can't find information about the state managementin
    the adf developer guide (not adf bc)..
    could you please point out where can i found these info??
    thank you.
    lsp
    Message was edited by:
    lsp
    Message was edited by:
    lsp
    Message was edited by:
    lsp

  • Data Binding in ADF UIX example trouble

    Two related questions:
    From the help example 3. Data Binding in ADF UIX example trouble in JDeveloper on UIX. If this worked I was going to run a small java class that captures the login and passes it as a messagebox with a Welcome login name on the first page, but I can't get past the example and path problems.
    From the example..."
    package yourpackage;
    import java.util.Date;
    public class CurrentDateBean
    public CurrentDateBean() { }
    public String getTime()
    return (new Date()).toString();
    Now, we want to change the page so it uses getTime(). We need to do three things: Tell UIX to data bind the text attribute. Add a <dataScope> to the page to provide data to the content. Write a small "data provider" in Java that can access the bean. First, we'll data bind "text": <text xmlns="http://xmlns.oracle.com/uix/ui"
    text="${uix.data.currentDate.time}"/>The example has one small change. The value is changed to ${uix.data.currentDate.time}, which is an expression that defines the data. This is shorthand for "get the time property from currentDate." If you tried running this example, you'd see nothing. That iss because we haven't given currentDate to the page, so the databinding failed, and the "text" is left to null. We do this by adding <dataScope> to the page: <dataScope xmlns="http://xmlns.oracle.com/uix/ui">
    <provider>
    Q#1?? Trying to follow the demo. The method class and method name do not seem to match the names in the above class from the demo. Am I missing a point here, please help.
    <data name="currentDate">
    <method class="yourpackage.DataDemo" method="getCurrentDate"/>
    </data>
    </provider>
    <contents>
    <text text="${uix.data.currentDate.time}"/>
    </contents>
    </dataScope>
    Q#2?? When I try and apply the demo class to my home.uix XML file with
    "<?xml version = '1.0' encoding = 'windows-1252'?>
    <page xmlns="http://xmlns.oracle.com/uix/controller"
    xmlns:ui="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui"
    xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
    xmlns:html="http://www.w3.org/TR/REC-html40" expressionLanguage="el">
    <content>
    <dataScope xmlns="http://xmlns.oracle.com/uix/ui">
    <provider>
    <!-- start Add DataProviders (<data> elements) here -->
    <data name="currentDate">
    <method class="us.mn.state.dot.apptrack.security.CurrentDateBean" method="getTime()"/>
    </data>
    <!-- end Add DataProviders (<data> elements) here -->
    </provider>
    <contents>
    <text text="${uix.data.currentDate.time}"/>
    <document>
    <metaContainer>"
    I get the following, and I don't know how to make the UIX XML accept the correct path, please help:
    �file:/C:/JDeveloper905p/jdev/mywork/ProjTrack/AppTrack/ViewController/public_html/home.uix: Parsing error, line 12, column 97: Could not find class us.mn.state.dot.apptrack.security.CurrentDateBean

    for question 1 the name of the class CurrentDateBean
    actually has nothing to do with the el expression
    uix.data.currentDate.time. The currentDate part of the
    el expression is coming from the method data provider part
    of your page:
    <data name="currentDate">
    <method class="yourpackage.DataDemo"
    method="getCurrentDate"/>
    </data>
    so if you changed the name of the data provider to "foo":
    <data name="foo">
    <method class="yourpackage.DataDemo"
    method="getCurrentDate"/>
    </data>
    your el would look like this:
    uix.data.foo.time
    by the way the uix.data part tells UIX to look for
    a <data> element define in the <provider> section of
    your dataScope.
    For question #2, do you have the java file
    us.mn.state.dot.apptrack.security.CurrentDateBean on
    your classpath and is it compiled? You will get that
    warning if it is not on your classpath.
    Also you are incorrectly interpreting the example. What
    you are doing is trying to reference the actual bean
    object and its getTime() method. What you want to do
    is write a method data provider that returns your
    CurrentDataBean. so uix.data.currentDate would return
    a CurrentDateBean instance object. the .time part of the
    el expression would tell UIX to look for a method named
    getTime() and use that value.
    let me know if you have any more questions.

  • ADF JClient migration (JDev 9.0.5.2 -- JDev 10.1.3.2)

    Hi all,
    is there anybody out there who could share some experiences in migrating a huge ADF/JClient-based application. Does anybody know a migration guide, or at least a description of a supported migration path?
    Would it be more promising to try it stepwise (9.0.5.2 -> 10.1.2 -> 10.1.3.x)?
    About a year ago we spend a few days to try to migrate from 9.0.5.2 to 10.1.2 but we encountered so many issues that we had to stop in order to keep in time with our release schedule.
    Now we plan to change the Java version from 1.4 to 1.5 and upgrade to JDev 10.1.3.2. Keeping the old ADF libraries everythings seems to work. But I would feel better with a more current version and improved Oracle support. We had to apply a few fixes to the ADF libs on our own. I would love to get rid of them. It's hard to get backports for such an old version.
    We currently use the following JDev related libraries in our project:
    adfjclient.jar, adfm.jar, bc4jct.jar, bc4jdomorcl.jar
    Which of the bunch of ADF-libraries in 10.1.3.2 do we have to add to our project? I would like to include as few JARs as possible.What about:
    bc4jui.jar, adfm.jar, bc4jct.jar, bc4jdomorcl.jar?
    Someone told me that the definition/structure of UIModels has changed between 10.1.2 and 10.1.3. He told me that the ADF code is capable to handle both version via if/else-constructs, but it would be better to use the new XML-layout in order to participate in new features. Is this true?
    As far as I could see JDev 10.1.3 only migrates project files and does not touch any of the ADF definition files. Is there any migration tool or script available in order to convert pre-10.1.3 UIModels?
    Thanks for any hints on that topic!
    Regards,
    Eric

    Hi Steve,
    thanks for your answer and sorry for the late response. Meanwhile I made a few tests on my own. In our application we don't use BC4J, only ADF for data binding.
    We have a lot of issues with 9.0.5.2 which weren't addressed in 10.1.2. In order to save resources we would like to load the ADF binding context (cpx-File) for our whole application only once during application startup. JUMetaObjectManager.getJUMom().loadCpx() and from then on only pass the binding context reference to setup the panel bindings (binding containers). When we close our forms we release the datacontrols. If we open a form for the second time (and try to setup the panel binding) we receive an error. If I recall correctly, the data control is (mistakenly?) removed from the context map inside of the binding context while releasing the datacontrol. But to my understanding the datacontrol has to be released in order to setup a fresh binding container while opening a form. If one removes the code to release the datacontrols one will receive an jbo error, that the binding container is alread there, which seems logically to me.
    In order to test the behavior of different ADF versions I extracted some code and build a simple testcase in JDev 9.0.5.2. Ofcourse the test case didn't work. I then migrated to 10.1.2 and the testcase didn't work. I migrated the testcase to 10.1.3.2 and what? The testcase still didn't work. I observed that the UIModels haven't changed during migration. I then copied all my code to a newly created project in 10.1.3.2 and rebuild the testcase. Now most of the XML files look different. I observed some other JDev design time issues as I did use Java 1.4 style code. After I changed the code to use generics these issues were resolved. Finally the testcase worked, without any code changes (besides the usage of generics in the model class).
    So I came to the conlusion that ADF has some kind of compatibility mode if it finds old XML files from previous versions. Ohter (probably old) code paths are chosen and you potentially suffer the same bugs as in previous versions. So it seems to be best to somehow migrate all XML-files to the new layout. Maybe via some XSL-transformations. That's why I asked for some kind of converter. Unfortunately there seems to be no real migration support from Oracle. This looks like a nightmare for huge projects like ours.
    Steve, your test seems to confirm my observations. Did you try to build the same form in 10.1.3 from scratch? What do you observe if you then compare all XML-Files (binding context definitions, page definitions, bean definitions...)?
    Regards,
    Eric

  • ADF UIX programatic data binding

    Oracle ADF UIX Developer's Guide mentions the possibility to use the UIX framework in Java, to create new objects or alter the existing ones.
    E.g. we can create a table using a construct like:
    TableLayoutBean tlb = new TableLayoutBean();
    The same document demonstrates the data binding:
    BoundValue rows = new DataBoundValue(_YOUR_NAMESPACE, YOURNAME, "rows");
    tlb.setIndexedNodeList(new DataObjectListNodeList(rows));
    For "simple" attributes using DataObject DataObjectList, etc. the procedure is clear. But what about creating a data bound table or input text:
    <table model="${bindings.EmpView1}" ... >
    <messageTextInput model="${bindings.DeptCode}"/>
    It’s easy to understand that model="${bindings.EmpView1}" or model="${bindings.DeptCode}" are equivalent to multiple attribute bindings (data, validation, read-only, etc.), but it looks that the classes/methods resolving these equivalences and linking the bean to the corresponding DCControlBinding, are not public (or maybe I was not able to find them).
    How can we obtain programmatically, in Java, the same structure as described above (in XML)? The best would be to use the same classes used when the UIX XML document is parsed to create the page description.
    It would be very nice to be able to use a structure like
    tbl.setModel( new JUCtrlRangeBinding(...) );
    txt.setModel( new JUCtrlValueBinding(...) );
    or maybe
    txt.setAttribute( "model", new TextInputModelBoundValue(...) ) etc.
    In JSF we can do something like:
    ValueBinding vb = application.createValueBinding(value);
    component.setValueBinding(attributeName, vb);
    Can we do something similar in UIX?
    Any help will be appreciated,
    thanks,
    Mircea Ionita

    Since the code is already written, it's a pity that we can't use/extend it. I don't like to say it (sorry) but I find this design choice (implement the "model" only into the XML parsing layer) a little bit strange (or maybe I don't understand... ;-) ). We should (or we are supposed to) be able to do in java everything that we can do in XML.
    I would like to find more support/help for the programmatic approach. I have the feeling that you are too focalised on "use-our-state-of-the-art-tools/wizards-to-write-the-code-for-you" and you forgot that this is not suitable for all projects. E.g. our application creates the user interface according to a layout defined by each user. To generate it, we need to use at maximum the extension mechanism and we can't simply relay on "rendered" attribute etc.
    -When should we expect this new UIX release?
    -What about the UIX controller? The Struts controller will replace it?
    -What about the source code of uixexp2-demo.jar (distributed with ADF_UIX_component_guide)?
    -Why while debugging we can't set a method/class breakpoint on UIX classes (to understand the data flow) - the stack is secret?
    Thanks

  • How to filter data in custom ADF JClient lov panel

    hi
    I'm developing with JDev 10.1.2.
    i have a Panel that use custom ADF JClient lov panel and i want to filter the lov data.
    i used setWhereClause() method to do it in lov panel but didn't work.
    Any help will be greatly appreciated.

    This was a lot more involved than I would have estimated (than I actually did estimate with my boss on our project timeline).
    Anyway, here is the solution for those of you trying to do the same thing;
    http://blogs.oracle.com/michaellee/2009/09/pre_filtering_table_data.html
    My personal request, create a Criteria for a VO, then allow me to just drag that over to a jsp page and give me a table/tree option, not just a query/button/link, and then give me a pop up box allowing me to bind variables.
    Edited by: user10419690 on Sep 14, 2009 9:03 AM

  • How to handle html:multibox in jsp with ADF Data Binding

    Hi,
    I like to use html:multibox feature in my jsp with ADF Data Binding. I am able to retrieve checked values in the DataForwardAction form. However, when the page is refreshed, the checkboxes are not persistent and yet an error showing
    "JBO-25009: unable to create object type ....oracle.jbo.domain.Array" appears.
    Here is my jsp code:
    <c:forEach var="type" items="${bindings.SystemTypeView1.rangeSet}">
    <c:if test="${Row['SystemGroup'] == type['SystemGroup']}">
    <br>
    <html:multibox property="selectedSystemType">
    <c:out value="${type.SystemType}"/>
    </html:multibox>
    <c:out value="${type.TypeDesc}"/>
    </c:if>
    </c:forEach>
    Can anyone tell me how to handle html:multibox with ADF Data Binding and make the checkboxes persistent.

    Generally this can be done.
    I see a problem with your use case, which has nothing to do with jdev or java:
    How do you identify the user when he comes back to finish the form?
    For this you can't use information like session cookie or IP address because they change.
    So you have to save some information about the user which lets you identify him when he comes back. All other requirements can be implemented by ADF.
    Timo

  • LOV Binding issue in ADF JClient Component Demonstration

    hi
    There seems to be a problem with committing the changes made with the "LOV Binding" in the "ADF JClient Component Demonstration".
    see "ADF JClient Component Demonstration" :
    http://www.oracle.com/technology/sample_code/products/jdev/1012/jclient_guide/adf_jclientcomponentdemo.zip
    scenario (using JDeveloper 10.1.2) :
    (1) run componentdemo.StartFrame
    (2) click the first button to get to the "LOV Binding Demo"
    (3) click in the "State" field and press F3
    (4) select a new value from the "List Of Values", click OK
    (5) notice the value in the "State" field has changed, click "File" > "Exit"
    (6) click on "Commit" when asked "How do you want to close the transaction?"
    (7) run componentdemo.StartFrame again and navigate to the "LOV Binding Demo" again
    (8) notice that the "State" field still has its old value
    How can this be explained?
    thanks
    Jan Vervecken

    thanks for your reply Frank
    To verify what the behavior would be in the JDeveloper version it was built for, I tried to open the Workspace in JDeveloper 9.0.5.2 and got this "Unable to Open File" message:
    "File D:\<path>\ADFJClientComponentDemo.jws was saved in version 10120 file format and cannot be opened with an older version of JDeveloper 10g."
    To make sure, I downloaded this again
    http://www.oracle.com/technology/sample_code/products/jdev/1012/jclient_guide/adf_jclientcomponentdemo.zip
    and I got the same error message.
    Could you please hint to a solution for this (in JDeveloper 10.1.2 if possible).
    greetings
    Jan Vervecken

  • "Unable to generate initialization code within Repeater, due to id or data binding on a component that is not a visual child. "

    Error:
    "Unable to generate initialization code within Repeater, due to id or data binding on a component that is not a visual child. "
    Code snippet:
    <mx:Repeater  
    width="100%" height="100%" id="rpp" dataProvider="{loginDataseriesData.series}" >
    <mx:Panel width="100%" title="{rpp.currentItem.@name}">   
    <mx:DataGrid width="100%" dataProvider="{rpp.currentItem.data}" id="loginDataDG" itemClick="loginDataDGClickevent)" sortableColumns="false" draggableColumns="false">   
    <mx:columns>
    <mx:DataGridColumn headerText="Age Group" dataField="@periodValue"/>   
    <mx:DataGridColumn headerText="Year" dataField="@timePeriod"/>   
    <mx:DataGridColumn headerText="Value" dataField="@dataValue"/>   
    <mx:DataGridColumn headerText="User Name" dataField="@userName" editable="false"/>   
    <mx:DataGridColumn headerText="Notes" dataField="@notes"/> 
    </mx:columns>
    </mx:DataGrid>
    Thanks

    <mx:DataGrid
    width="100%" dataProvider="{rpp.currentItem.data}"
    DataGrid indeed not a visual child of your Repeater, since it's visual child is Panel not a Grid

  • Adf Javascript code to complete an input date field

    Hey guys,
    I have an adf input date field
    <af:inputDate value="#{MyBean.date}">
    <af:clientListener method="onEnterDate" type="keyPress"/>
    </af:inputDate>
    I want to implement a javascript function that completes the date field, means: when the user enters 10 in the field and presses the ENTER key on the keyboard, I want to complete the date with the current system time, like this (10/11/2011), so how can I do this...
    Thanks in advance..
    AccadSoft

    You could write a [url http://myfaces.apache.org/trinidad/devguide/clientValidation.html]client-side converter to do this.
    John

  • Problems with Date bind variable

    I'm trying to use a Date as a bind variable in a View Object, and I'm running into difficulties. I've got the bind variable type set to date, and the control hints for Format Type and Format set to "Simple Date" and "yyyy-MM-dd" respectively. When I run the application module test and enter the date in the correct format, the View Object returns the expected results. However, when I try to set a Query Bind Parameters property for a JHeadstart group in my application definition in order to set the bind variable's value from an dateField input control, I get the following exception:
    30-Jan 08:49:56 ERROR (ErrorReportingUtils) -java.lang.IllegalArgumentException
    at java.sql.Date.valueOf(Date.java:104)
    at oracle.jbo.domain.Date.toDate(Date.java:348)
    at oracle.jbo.domain.Date.<init>(Date.java:279)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
    at oracle.jbo.domain.TypeConvMapEntry.convert(TypeConvMapEntry.java:73)
    at oracle.jbo.domain.TypeFactory.get(TypeFactory.java:739)
    at oracle.jbo.domain.TypeFactory.getInstance(TypeFactory.java:90)
    at oracle.jbo.common.VariableImpl.convertToJava(VariableImpl.java:546)
    at oracle.jbo.common.VariableValueManagerImpl.doSetVariableValue(VariableValueManagerImpl.java:182)
    at oracle.jbo.common.VariableValueManagerImpl.setVariableValue(VariableValueManagerImpl.java:223)
    at oracle.jbo.common.VariableValueManagerImpl.setVariableValue(VariableValueManagerImpl.java:229)
    at oracle.jheadstart.model.adfbc.v2.JhsApplicationModuleImpl.applyBindParams(JhsApplicationModuleImpl.java:173)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at oracle.adf.model.binding.DCInvokeMethod.invokeMethod(DCInvokeMethod.java:507)
    at oracle.adf.model.binding.DCDataControl.invokeMethod(DCDataControl.java:1795)
    at oracle.adf.model.bc4j.DCJboDataControl.invokeMethod(DCJboDataControl.java:1989)
    at oracle.adf.model.binding.DCInvokeMethod.callMethod(DCInvokeMethod.java:219)
    at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1289)
    at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:1802)
    at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:627)
    at oracle.adf.model.binding.DCInvokeActionDef$DCInvokeAction.refresh(DCInvokeActionDef.java:140)
    at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:2521)
    at oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2260)
    at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.prepareRender(PageLifecycleImpl.java:534)
    at oracle.adf.controller.faces.lifecycle.FacesPageLifecycle.prepareRender(FacesPageLifecycle.java:98)
    at oracle.jheadstart.controller.jsf.lifecycle.JhsPageLifecycle.prepareRender(JhsPageLifecycle.java:1155)
    at oracle.adf.controller.v2.lifecycle.Lifecycle$1.execute(Lifecycle.java:297)
    at oracle.adf.controller.v2.lifecycle.Lifecycle.executePhase(Lifecycle.java:116)
    at oracle.adf.controller.faces.lifecycle.ADFPhaseListener.mav$executePhase(ADFPhaseListener.java:29)
    at oracle.adf.controller.faces.lifecycle.ADFPhaseListener$1.before(ADFPhaseListener.java:426)
    at oracle.adf.controller.faces.lifecycle.ADFPhaseListener.beforePhase(ADFPhaseListener.java:77)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:228)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214)
    at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)
    at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
    at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:228)
    at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:197)
    at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:123)
    at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:103)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
    at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
    at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
    at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
    at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
    at java.lang.Thread.run(Thread.java:595)
    However, it seems that the value of the bind parameter did in fact change, according to the debug message issued by the JhsApplicationModuleImpl.applyBindParams(...) procedure:
    30-Jan 08:46:23 DEBUG (JhsApplicationModuleImpl) -ViewObject ViewObj: value of bind param move_date has changed: old value=null ,new value=Wed Jan 07 00:00:00 CST 2009
    One thing I have noticed that may be of interest - if I run the debugger into the JhsApplicationModuleImpl.applyBindParams(...) procedure, a default date in my bind variable shows up as an oracle.jbo.domain.Date object when it comes out of the following line:
    Object oldValue = vo.ensureVariableManager().getVariableValue(key);
    as opposed to the new value that gets sent from the input value of the dateField control, which shows up as a java.util.Date in the following line:
    Object value = args.get(key);
    In the string of functions leading up to the following in the stack trace:
                   at java.sql.Date.valueOf(Date.java:104)
    at oracle.jbo.domain.Date.toDate(Date.java:348)
    at oracle.jbo.domain.Date.<init>(Date.java:279)
    it looks like the value of the java.util.Date is converted to a string, then passed to these functions to be turned into a java.sql.Date object. However, according to the java.sql.Date.valueOf(...) function, it's expecting date in "yyyy-mm-dd" format, per the header comments:
    * Converts a string in JDBC date escape format to
    * a <code>Date</code> value.
    * @param s a <code>String</code> object representing a date in
    * in the format "yyyy-mm-dd"
    * @return a <code>java.sql.Date</code> object representing the
    * given date
    * @throws IllegalArgumentException if the date given is not in the
    * JDBC date escape format (yyyy-mm-dd)
    When the input value from the dateField input control is added as a java.util.Date, the toString() is producing the wrong date format, which could be seen in the debug output I included above that said the bind variable has changed.
    Has anyone done this before that can let me know what I am missing and how to fix this? I've search all over the web, and all the articles I've seen relating to bind variables only refer to those of numeric or string types, which aren't giving me any trouble. Even the Developer's Guide (http://database.in2p3.fr/doc/oracle/Oracle_Application_Server_10_Release_3/web.1013/b25947/bcquerying009.htm) article "5.9 Using Named Bind Variables" doesn't reference using a Date type.

    I had the same problem about a year ago (using JHeadstart 10.1.3.2.52):
    15-feb 14:10:31 DEBUG (JhsApplicationModuleImpl) -Search item matches query bind param SubjectenKernPeildatum, value set to 2000-01-01
    15-feb 14:10:33 DEBUG (JhsApplicationModuleImpl) -Executing applyBindParams for BasServiceKern.AdresRollenSubjecten
    15-feb 14:10:33 DEBUG (JhsApplicationModuleImpl) -ViewObject AdresRollenSubjecten: value of bind param peildatum has changed: old value=null ,new value=Sat Jan 01 00:00:00 CET 2000
    15-feb 14:10:33 ERROR (ErrorReportingUtils) -java.lang.IllegalArgumentException
    at java.sql.Date.valueOf(Date.java:104)
    at oracle.jbo.domain.Date.toDate(Date.java:348)
    It appears a java.util.Date gets put on the criteria Map in the searchBean, this can't be used as input for a jbo.Date bindvariable.
    My ugly solution was to override public void applyBindParams(String voUsage,HashMap args)
    in MyProjectApplicationModuleImp (which extends JhsApplicationModuleImpl of course),
    check if value is a java.util.Date, and then
    value = new java.sql.Date(((java.util.Date)value).getTime());
    Greetings, HJ
    Edited by: HJHorst on Feb 6, 2009 12:22 AM

  • Question about code corner Example#33: How-to open a Bounded Task Flow in a new Browser Tab

    Hello All,
    I am implementing example #33 in code corner series Oracle ADF Code Corner&lt;/title&gt;&lt;meta name=&quot;Title&quot; content=&quot;Oracle ADF Code Corner&quot;&gt;&lt;me…
    Every thing is going fine, but there is a comment in the java code that I don't understand.
    public void onLaunchForEdit(ActionEvent actionEvent) {    
          //access the ADF binding layer and access the tree binding that
          //populates the table
            BindingContext bctx = BindingContext.getCurrent();
            BindingContainer bindings =
                                   bctx.getCurrentBindingsEntry();   
            //access the tree binding defined in the ADF binding layer
            JUCtrlHierBinding model =
                   (JUCtrlHierBinding) bindings.get("DepartmentsView1");
            //get the current selected row key from the iterator binding
            //referenced from the table binding (tree binding). Of course,
            //I could have used the iterator name directly in the binding
            //lookup, but looking up the tree binding instead allows to
            //change the tree binding iterator dependency to a later point
            //in time without breaking this functionality. Its all about
            //"weak" dependencies that give you flexibility when coding ADF
            String rwKeyString =
                   model.getDCIteratorBinding().getCurrentRowKeyString();
            launchWindow(rwKeyString);
    What does this comment mean?
             //but looking up the tree binding instead allows to
            //change the tree binding iterator dependency to a later point
            //in time without breaking this functionality. Its all about
            //"weak" dependencies that give you flexibility when coding ADF
    Is this a contrast to this line of code?
    JUCtrlHierBinding model =
                   (JUCtrlHierBinding) bindings.get("DepartmentsView1");
    I mean in this line of code we hard coded the tree binding name from the page Def? why getting the tree binding name is a best practice while getting the iterator name is not?

    What does this comment mean?
             //but looking up the tree binding instead allows to 
            //change the tree binding iterator dependency to a later point 
            //in time without breaking this functionality. Its all about 
            //"weak" dependencies that give you flexibility when coding ADF 
    Is this a contrast to this line of code?
    JUCtrlHierBinding model = 
                   (JUCtrlHierBinding) bindings.get("DepartmentsView1"); 
    Yes, it's exactly this line of code the comment is referring to. If you look at the bindings of a page you see three parts: on the left he bindings, in the middle the executables and on the right side the data control. The statement
    JUCtrlHierBinding model = 
                   (JUCtrlHierBinding) bindings.get("DepartmentsView1");
    access the binding, the tree binding to get the data. if you use the iterator which named 'DepartmentsView1Iterator' you are accessing the executable, the iterator itself. The comment now tell you that if you access the data via the tree binding, that you can change the underlying iterator to point to different data. This you can do without the need to change the code in the been, whihc is good as you (or we all) tend to forget that we have code working on the iterator, so changing things in the bindings will break the application.
    Timo

  • Data Binding for Custom Controls?

    Hello,
    I'm a little bit confused of how to use databinding for custom controls.
    I know i can bind a property, as seen here http://help.sap.com/saphelp_uiaddon10/helpdata/en/91/f0f3cd6f4d1014b6dd926db0e91070/content.htm, but how can I map whole arrays?
    My problem is the following:
    I want to create a custom table control in SAPUI5 (as the default one doesn't provide the neccessary options and properties I need), but I can't seem to find an example how to bind "rows".
    There has to be a way to do this properly. All I can think of now, and implemented, is, passing the name of the variable in the model...
    var x = new my.controls.complex.table({data: "/status"});
    var row1 = new my.controls.complex.columnHeaderRow();
    row1.addColumn(new my.controls.complex.column({text: "", rowspan: "2", colspan: "1", content: "FIRST_COL"}));
    x.addColumnsRow(row1);
    x.placeAt("content");
    ...my JSON/model looks like:
    { "status": [ {"FIRST_COL": "a" , ...}, {"FIRST_COL": "b", ... }, ... ], ... }
    (which should translate into /status/0/FIRST_COL, /status/1/FIRST_COL, ... AFAIK)
    ... and then I use this variable name by getting the application-wide model and use the variable passed as key for the model... (please note, this code is just a snippet)
           var sapCore = sap.ui.getCore();
                if (sapCore !== undefined) {
                 var model = sapCore.getModel().getObject();
                 if (model === undefined || model == [] || model == null){ } else {
                  $.each(model, function(idx, item){
                   $.each(oControl.getColumnsRows(), function(idx, item2) {
                    $.each(item2.getColumns(), function(idx, item3){
                     var content = item3.getContent();
                     if (content !== undefined && content != ""){
                      outpLine = outpLine + "<td>" + model[idx][content] + "</td>";
    ...which still leaves me with the problem of to get an event to react to re-render on changes within the data model, as well as when there would be just an control-specific model, or just a sub-node within a model etc.
    So my question is:
    Is there a way/best practice to define data binding in a custom control and have a way to react on it, and how to react on data changes within a custom control?
    Thanks & KR
    Chris

    I create a entirely new control, from sap.ui.core.Control.
    sap.ui.core.Control.extend("my.controls.complex.table",{... });
    I did define a aggregation...
            aggregations : { columnsRows: {type : "my.controls.complex.columnRow", multiple : true, visibility: "public"}     },
    ...yet I'm still unclear how I work with this aggregation and databinding. I know we can use the bindAggreation functionallity, but since the aggregation is a object (my.control.complex.columnRow) I don't know how my JSON model should be able to bind to that aggregation (as well as how would one be able to cascade a aggregation like this down futher? For example if there is an aggregation in the object of my aggregation?), plus it still doesn't solve my problem of how I can react (for example redraw) on model changes.
    Thanks in advance,
    Chris

  • Performance Issues due to Loading of ADF/JClient View Objects

    Hi,
    I developed a two-tier ADF/JClient application.
    When the ADF/JClient application opens for the first time, there's a big delay
    However opening it subsequently, takes less than half of the time to open the screen.
    I think it might the xml files of different view objects which the framework loads for the first time, and thus takes a lot of time. And after that, the time to open the application reduces.
    We have around 200 view objects in our application. Can this be the reason?
    If yes, then can we load the view objects before ahead, or can we just load them at the very time they are requested ?
    Thanks,
    Makrand Pare

    Hi Makrand,
    Check this out:
    "Limiting Fetching of Business Components Attributes in ADF Swing
    http://www.oracle.com/webapps/online-help/jdeveloper/10.1.3/state/content/navId.4/navSetId._/vtTopicFile.developing_jclient_applications%7Cjui_plimitingfetching%7Ehtml/
    Note: In local mode deployment (the client and Business Components reside in the same VM), the fetching of attribute properties is not supported.
    You can optimize startup time for a Business Components client application and the remotely deployed Business Components by specifying the list of view object attributes that your client uses. If you create a project without the metadata, by coding to the API, you will want to add fetchAttributeProperties() to the bootstrap code of the client forms with a list of only the attributes used by the form. Without this method call, your client form would fetch all control hint properties (including the attributes format and label for example) for all the attributes of the named view objects in the application module, in a single network roundtrip.
    For example, when you do not intend to use all the attributes of the ADF Swing form's bound view object, with the fetchAttributeProperties() method, your ADF Swing form fetches only the information required to layout your forms, while ignoring the attributes you do not require.
    Note: In local mode deployment (the client and Business Components reside in the same VM), the fetching of attribute pro
    Calling fetchAttributeProperties() will prevent property methods such as getFormat() or getLabel() from being called on the Business Components attribute definition whenever the form is created."
    Vlad

Maybe you are looking for

  • [SOLVED] kde 4.6 and Udisks mounting problems with Dolphin

    Hello, I have a problem with Dolphin in KDE 4.6 where it displays my non-Arch partitions (a / and /home used for Opensuse) as well as a CD-Rom or usb if inserted, but registers an error when I click on the device/partition icon. Specifically, I get t

  • AD: Auto Archive Outlook 2010 GPO

    Hello, I am currently testing Auto Archiving in Outlook 2010 via GPO but am having a little trouble with it. I copied the ADMX files to the DC and the workstation I am testing it from. I was able to get the policy applied and everything seems to be w

  • Informix 4GL Code to Oracle PL/SQL

    Is there any tool available to partially convert Informix 4GL Code to Oracle Packages/Procedures/Functions ? Thanks... null

  • Phone not showing in Cisco Emergency Responder

    We are running Cisco emergency responder 8.5 and have a Cisco WS-C3750-48PS-S Running c3750-ipbasek9-mz.122-55.SE6.bin. Emergency responder is seeing all but one phone plugged into Fa1/0/10. The phone is also not showing up in un-located phones eithe

  • Firefox will not let the computer shut down.

    Message comes up that says Firefox did not allow computer to shut down.With the cover shut, the computer keeps running and the battery runs down quicker.