DialogListener vs Attribute Binding - Which fires first?

Hi All,
I'm using Jdeveloper 11.1.1.2.0. I'm about 3 weeks into learning this program, and could definitely be considered new to database work on this level. This is my first post. This particular problem has got me befuddled even moreso than usual. Yes, google has finally failed me.
I am attempting to create a recursive tree table based off of this helpful article: [Recursive Editable Tree|http://jobinesh.blogspot.com/2010/05/crud-operations-on-tree-table.html]
However, instead of making the fields editable on the main page, I would like to update the fields (or create new rows) through an af:popup. I accomplish this by having a button call the popup, which has the following structure:
<af:popup id="p1"
popupFetchListener="#{DialogListenerCollection.editPopupFetchListener}"
popupCanceledListener="#{DialogListenerCollection.editPopupCancelListener}">
<af:dialog id="d2"
dialogListener="#{DialogListenerCollection.editDialogListener}" title="BOM Edit">
<af:panelFormLayout id="pfl1" maxColumns="2">
<f:facet name="footer"/>
<af:panelLabelAndMessage label="Parent" id="plam1" for="ot6">
<af:outputText value="Parent Binding" id="ot6"/>
</af:panelLabelAndMessage>
<af:inputText label="Child" id="it1"
binding="#{BomCRUD.bomEditChild}"/>
<af:inputText label="Qty" id="inputText1"
binding="#{BomCRUD.bomEditQty}">
<af:convertNumber type="number" integerOnly="true"/>
</af:inputText>
</af:panelFormLayout>
</af:dialog>
</af:popup>
As you can see, the last inputText has a binding of BomCRUD.bomEditQty and is set to convert to a number of type integer. The binding has code as follows (abbreviated for space):
public class BomCRUD
private RichInputText bomEditQty;
public void setBomEditQty(RichInputText bomEditQty)
this.bomEditQty = bomEditQty;
public RichInputText getBomEditQty()
return bomEditQty;
When I enter in the values for the Child and Qty af:inputText items and press the "OK" button on the dialog, I receive the following conversion error:
Cannot create an object of type:java.lang.Number from type:oracle.adf.view.rich.component.rich.input.RichInputText with value:RichInputText[UIXEditableFacesBeanImpl, id=inputText1]
The RichInputText is not converting to a number. Why? That's a puzzle I just can't figure out. I thought logically: the next thing I should do is change BomEditQty from RichInputText to a Number type in my BomCrud class. The browser simply goes blank when I attempt that and I receive the following error:
java.lang.IllegalArgumentException: Cannot convert RichInputText[UIXEditableFacesBeanImpl, id=null] of type class oracle.adf.view.rich.component.rich.input.RichInputText to class java.lang.Number
So the next thing I thought was that my editDialogListener is firing BEFORE my BomCRUD.bomEditQty inputText binding has a chance to update, so I should modify my editDialogListener to update the binding before the "createChildren" operation call, but I do not know how to grab what was in the Qty (inputText1) field and put it in the editBomQty field.
At any rate, here is the editDialogListener:
public void editDialogListener(DialogEvent dialogEvent)
if (dialogEvent.getOutcome().name().equals("ok"))
// Put update BomCrud.setEditQty( inputText1's value ) here? How?
BindingContainer bindings = getBindings();
OperationBinding operationBinding =
bindings.getOperationBinding("createChildren");
operationBinding.execute();
The "createChildren" operation binding is located in the AppModuleImpl class, accepting a Number type for the Qty. This method creates a row and inserts the values into the recursive TreeTable at the appropriate row iterator and key.
public void createChildren(RowIterator ri, Key selectedNodeKey, String Child, Number Qty)
That about sums it up. I'm not sure if it's a conversion error, or a problem of DialogListener vs Binding priority. Any help would be appreciated. Thanks in advance guys.

Dimitar, thank you for your response.
If I am trying to insert a new row (not update an existing one), I believe I need to create a Managed Property bomEditChild under the Managed Bean bomCRUD, and then set the binding of the af:InputText to +#{bomCRUD.bomEditChild}+ as seen below:
<af:popup id="p1" ... >
<af:dialog id="d2" dialogListener="#{DialogListenerCollection.editDialogListener}" title="BOM Edit">
<af:inputText label="Child" id="it1" binding="#{BomCRUD.bomEditChild}"/>
</af:popup>
From adfc-config.xml
<managed-bean id="__11">
<managed-bean-name id="__9">BomCRUD</managed-bean-name>
<managed-bean-class id="__12">erp.view.framework.BomCRUD</managed-bean-class>
<managed-bean-scope id="__10">request</managed-bean-scope>
<managed-property id="__2">
<property-name id="__3">bomEditChild</property-name>
<property-class>oracle.adf.view.rich.component.rich.input.RichInputText</property-class>
<value id="__1"></value>
</managed-property>
</managed-bean>
However, when I print the value of the String Child variable of the createChildren class, I get the following:
System.out.println("Child: " + Child); // output command gets me the text below
+Child: RichInputText[UIXEditableFacesBeanImpl, id=it1]+
The createChildren method is detailed below in the pages definition file and implemented in the AppModuleImpl class.
<methodAction id="createChildren" ...>
<NamedData NDName="Child" NDValue="#{BomCRUD.bomEditChild}" NDType="java.lang.String"/>
</methodAction>
It appears the value being passed into my createChildren class is the container ID, not the value entered into the container by the customer. The output is the same whether I declare bomEditChild as a Managed Property under the Managed Bean bomCRUD or not. I am still unsure how to grab the value of the inputted text and/or if the managed property is updating before the createChildren method is being called via the editDialogListener.
Any further ideas?

Similar Messages

  • Attribute binding value not refreshed after transaction rollback

    Hi,
    Using ADF Faces/Trinidad + ADF Data Bindings + ADF Business Components.
    I was experimenting with task flows vs transaction control vs form validation and met the following problem.
    First, here's a little intro to my application design. A page template defines the layout. There's only one page in the application using a dynamic region to show a dynamic task flow. The template defines a menu containing navigation items; each item action changes the current dynamic task flow id.
    One of the flow starts with a data bound table listing users. Each row has an edit button to navigate to an edit form. The edit form is in a separate task flow as I want the automatic rollback triggered when a flow is abandoned.
    The problem occurs when I quit the form clicking a menu item AFTER a validation error occurred. Transaction is rollbacked as expected, however when I go back to the form (whatever row I choose), the invalid value that failed the previous validation is shown.
    It seems the attribute binding is not refreshed. To validate this hypothesis, I added a button that explicitly calls refreshControl on the attribute binding as shown below. When the button is clicked, the form shows the correct value.
        // In a managed bean
        public void refreshFirstName(ActionEvent evt)
            getBindingContainer().findCtrlBinding("FirstName").refreshControl();
        }I working on a possible workaround, but I've not succeeded yet. I'm looking into using the finalizer of the task flow (or possibly the initializer) to force a refresh of the control bindings.
    Any ideas?
    Thanx!
    Olivier

    Hi,
    I am experiencing similar strange behaviour, it sounds like it could be related, i am not using task flows though.
    I have a read only table, and when a user double-clicks on a row an af:popup is displayed which displays an edit form (contentDelivery is set to "lazyUncached" in the popup). Pressing the cancel button on the edit form executes a rollback and hides the popup. However, after this has occurred, whenever another row (or the same row) is selected in the read only table, the edit form will display data from the old record that was rolled back. I've noticed that the old data is only displayed in editable fields, while the correct data is displayed in read-only fields. I'm pretty sure the rollback works properly, and the iterator is on the correct row, just it is displaying incorrect data in the editable text fields. I've tried implementing cancel functionality with both a rollback action and refreshing the row using REFRESH_WITH_DB_FORGET_CHANGES, but the same issue exists regardless of which method is used. I've also noticed that the application starts behaving correctly again if the commit button is pressed.
    Has anyone come up with a workaround for this issue?
    By the way, is there any way we can keep track of the bug numbers that are mentioned in this forum?
    Thanks,
    Michael.

  • Attribute Binding Editor

    Dear All;
    I am working Using Jdev 10.1.3.3, and up till recently all was well, until i got an exception in a view once, and jdev restarted,
    and ever since the Attribute Binding Editor is not displaying the bindings, it shows the left column data collection, but nothing in the right
    and while the iterator drop down is filled with data it never comes selected, although the page definition file is pointing out to the data,
    i thought this was a jdev error, but when i moved the project to another computer, on another jdev the Attribute Binding Editor was stil not displaying
    data.
    Is there a place or an option in jdev, that handles these stuff that might have been un-selected or a feature has been turned off
    Thank you in advance for your replies
    regards
    Halim

    Hi Halim,
    you should first check if this problem happens in other projects (workspaces) as well. For me it looks like there's something wrong in the one workspace.
    If you don't see the same problem in other applications you should try to go back to an older version of the application and see if things are working there.
    My guess is that one of the files jdev handles automatically got corrupt and is causing the problem. The bad news is, that it's not sticking out which one.
    Therefore it's best to get back to a working project and go on from there (may be by comparing changed files)
    Timo

  • Error: Attribute binding invalid for tag ganttChart according to TLD

    Hi,
    I am experimenting with writing my first custom tag and getting the stack trace:
    org.apache.jasper.JasperException: /GanttFaces.jsp(18,3) Attribute binding invalid for tag ganttChart according to TLD
         org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
         org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
         org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:234)
         org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:989)
         org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:710)
         org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441)
    when using a binding with my custom tag:
    <jg:ganttChart binding="#{ganttFaces.ganttChart}" id="gantt1" .... >
    The error message reads as if I have to make special considerations in the TLD file to enable binding, but I can't find anything about that. Thats how my tld file looks:
    <taglib>
    <tlibversion>1.0</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname>JGantt</shortname>
    <uri>http://netronic.de/jgantt/taglibJSF</uri>
    <info>My tag library </info>
    <tag>
    <name>ganttChart</name>
    <tagclass>de.netronic.jgantt.server.jsf.JGanttChartTag</tagclass>
    <info>The chart</info>
    <attribute>
         <name>id</name>
         <required>true</required>
         <rtexprvalue>false</rtexprvalue>
    </attribute>
    </tag>
    </taglib>
    Any idea what I am missing?
    Udo

    In your TLD, I do not see any binding attribute! you ahe to define it
    <attribute>
    <name>binding</name>
    <required>false</required>
    <rtexprvalue>false</rtexprvalue>
    </attribute>
    Afterwards, you should create the setter method in your tag class: setBinding(String binding)

  • Declarative component attribute binding

    Hi,
    I'm sure this is an easy one, but I can't find the answer on the forum.
    using JDev 11.1.1.3
    I have created a declarative component with text fields bound to attributes as described in the ADF Code Corner, created the ADF Component lib etc. When I use this component in a task flow in another project, I set the properties to fields in my managed bean which is declared in the task flow, however on submission I find that my text input fields (RichInputText objects) are null i.e. the binding didn't work. I'm not sure if I should be creating 'attribute bindings' in the page definition, or if teh managed bean should be declared in the ADF component library, or if this should just work and I have done something silly.
    The examples usually bind the exposed attribute properties to a data control field, I'm not sure how it works for a managed bean, can anyone point me in the right direction?
    thanks in advance
    steve

    Hi,
    it should work for managed beans as well. If your managed bean exposes a setter/getter pair, then this can be bound to the declarative component attribute binding. However, keep in mind that if the managed bean is in request scope, the bean is refreshed and this re-setted for each request. So the bean should have a scope of at least viewScope
    Frank

  • How to create a report region which the first colomn is row selector column

    I want to create a report region and its first column is a row selector column. I have used select sentence to select some columns. But I do not know how set the first column to row selector column. I mean I want to do as follow. When a radio which is first column is chosen, it will return it's value of the column in the chosen row. Please help me! Thanks

    Hi unnamed,
    Suppose you have an id that identifies your record.
    Go to Report definiton, tab report attirbutes.
    Select the id of your record.
    Create a link to the page you want to go to.
    Hope this helps.
    If not, I suggest you to create a from with report, and analyze the way the wizard has generated it.
    Leo

  • Attribute Binding dynamically created fails validation

    Hello.
    In my taskflow I need to create both an Attribute Binding and a UIComponent (RichInputText), this is the code:
    DCBindingContainer dcBindings = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
    DCIteratorBinding it = ADFUtils.findIterator("MyViewIterator");
    JUCtrlAttrsBinding nb = JUCtrlAttrsBinding.createAttributeBinding((JUFormBinding)dcBindings,null, "MyView", null, "MyViewIterator", "MyNewField");
    dcBindings.addControlBinding("MyNewField", nb);
    Then I create the RichInputText in a PanelFormLayout with his validator:
    *ValidatorTag.BindingValidator vb = new ValidatorTag.BindingValidator(null,JSFUtils.getValueExpression("#{bindings.MyNewField.validator}"));*
    *((UIXEditableValue)newRichInputText).addValidator(vb);*
    The problem is on the validator.
    I see the new InputText in my page and the value is right, but when I submit the field I see this error:
    "Unable to resolve a Validator instance using either validatorId '' or binding '#{bindings.MyNewField.validator}'."
    If I create the Attribute Binding at design time (in my PageDef) and I create dynamically the UIComponent with the validator, there is no problem!!!
    Why with the dynamic creation of the Attribute Binding, the validator doesn't works (the others bindings properties work perfectly) ?

    Use
    Checkbox.bindChecked("<<ValueAttributeName>>);
    or
    Checkbox.bindChecked("<<.ValueNode.ValueAttributeName>>);
    if the the attribute is inside a valuenode.
    Regards, Anilkumar

  • List of triggers which fire in enter query mode?

    hello experts , please tell me list of forms trigger which fire in enter query mode?
    thanks
    yash

    I don't believe there is a published list, but if you check the Forms help system the description of each trigger will tell you if it fires in "Enter Query" mode. Unfortunately, you will need to check each trigger in the help system and build your own list.
    Craig...

  • Want to open 2nd tab and have it load the home page which the first tab opens.

    Want to open 2nd tab and have it load the home page which the first tab opens. The first tab opens Google's advance search, the second tab opens a blank window. I always want Google to be in a new page.
    == This happened ==
    Every time Firefox opened
    == always

    You can look at one of these extensions:
    NewTabURL : https://addons.mozilla.org/firefox/addon/2221
    New Tab Homepage : https://addons.mozilla.org/firefox/addon/777

  • Iterator Binding + Attribute binding problem

    I have created a SelectOneListbox and an associated attirute binding in my pagedef. When I try to access the changed value in my managed bean event handler method - I get a null object. However the index for the changed value is passed fine.
    tempIter.getRowAtRangeIndex( index ) returns a null object.
    I tried using attribute binding - that does not work either.
    Managed bean:
    public void productChange(ValueChangeEvent valueChangeEvent) {
    // Add event code here...
    BindingContainer bc = this.getBindings();
    // get the selected department
    DCIteratorBinding tempIter = (DCIteratorBinding) bc.get("TempIterator");
    if ( tempIter != null ){
    Object newVal= (Object)valueChangeEvent.getNewValue();
    System.out.println("New Product value:"+newVal);
    String ss = (String)newVal.toString();
    Row rw = tempIter.getRowAtRangeIndex(Integer.parseInt(ss));
    if ( rw!=null ) {
    String[] attrs = rw.getAttributeNames();
    //Object prodName = (Object) rw.getAttribute("ProdId");
    System.out.println(" Attribute value:"+ attrs);
    } else System.out.println(" Null row ");
    //trying to get value from attribute binding
    AttributeBinding prodIdBinding =
    (AttributeBinding)getBindings().getControlBinding("TempId");
    if ( prodIdBinding != null){
    Object deptId = (Object)prodIdBinding.getInputValue();
    if ( deptId != null)
    System.out.println("Finally value:"+deptId.toString());
    else
    System.out.println("Cant access value for department id");
    } else System.out.println("**********Product id binding is null");
    Pagedef:
    <?xml version="1.0" encoding="UTF-8" ?>
    <pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel"
    version="10.1.3.41.57" id="lov6PageDef" Package="view.pageDefs">
    <parameters/>
    <executables>
    <iterator id="ProductViewIterator" RangeSize="-1" Binds="ProductView"
    DataControl="SRTest1DataControl"/>
    <iterator id="TempIterator" RangeSize="10" Binds="Temp"
    DataControl="SRTest1DataControl"/>
    </executables>
    <bindings>
    <table id="ProductView" IterBinding="ProductViewIterator">
    <AttrNames>
    <Item Value="ProdId"/>
    <Item Value="Name"/>
    <Item Value="Image"/>
    <Item Value="Description"/>
    </AttrNames>
    </table>
    <list id="TempTempId" IterBinding="TempIterator" StaticList="false"
    ListOperMode="0" ListIter="ProductViewIterator">
    <AttrNames>
    <Item Value="TempId"/>
    </AttrNames>
    <ListAttrNames>
    <Item Value="ProdId"/>
    </ListAttrNames>
    <ListDisplayAttrNames>
    <Item Value="Name"/>
    </ListDisplayAttrNames>
    </list>
    <attributeValues IterBinding="TempIterator" id="TempName">
    <AttrNames>
    <Item Value="TempName"/>
    </AttrNames>
    </attributeValues>
    <methodAction id="displayProductValue"
    InstanceName="SRTest1DataControl.dataProvider"
    DataControl="SRTest1DataControl"
    MethodName="displayProductValue" RequiresUpdateModel="true"
    Action="999" IsViewObjectMethod="false"/>
    <attributeValues IterBinding="TempIterator" id="TempId">
    <AttrNames>
    <Item Value="TempId"/>
    </AttrNames>
    </attributeValues>
    </bindings>
    </pageDefinition>

    Frank,
    When I try to obtain the row directly using the code below I get a class cast exception.
    Row rw = prodIter.getRowAtRangeIndex(( (Integer)valueChangeEvent.getNewValue()).intValue());
    javax.faces.el.EvaluationException: java.lang.ClassCastException: oracle.jbo.domain.Number
         at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:150)
         at oracle.adf.view.faces.component.UIXComponentBase.__broadcast(UIXComponentBase.java:1087)
         at oracle.adf.view.faces.component.UIXEditableValue.broadcast(UIXEditableValue.java:247)
         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:269)
         at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:363)
         at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:98)
         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         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.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)
         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 oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
         at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
         at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: java.lang.ClassCastException: oracle.jbo.domain.Number
         at Lov6.productChange(Lov6.java:49)
         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 com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146)
         ... 28 more

  • ISE - Which is first, profiling or posturing?

    Hi,
    I am wondering, if both profiling and posturing is enabled on ISE, which happens first? My guess is profiling, but I could not find any Cisco document that says how this works?
    Also, one more question, during client provisioning, the ISE must know the OS of the client, so that I can download the appropriate agents. So, how does ISE learn about the OS of the client? I don't think RADIUS passes this info.
    Any clarification on this would be appreciated and must be pretty basic. But I am unable to find any document to prove this.
    Appreciate any help.
    REgards,
    Mohan         

    Mohan,
    Profiling can be done based on multipe factors, easiest way is to read user agent when user connects to a portal :-)
    There are also configurable actions on ISE:
    What kind of scenario are you thinking about to evaluate which is done before?
    Although from logic point of view, it might make sense to evaluate what you're dealing with (profiling) before you decide whether's it's fit to access your network (posture assessment). :-)
    M.

  • Autoconfig Run on which node first

    Hi Guru's,
    I had little confusion,
    1. Where to run auto config first DB node or Apps node,
    and Why (which ever is the first node),
    2. if multiple Application nodes then on which node first,
    3. both cases like noshared application file system and shared application system
    can i run auto config on second node while applications services running on first (application) node
    4. Can i have shared appl_top (not shared application file system) like in 11i in R12
    thanks in advance.

    1. Where to run auto config first DB node or Apps node,
    and Why (which ever is the first node),It does not matter, but the common practice is to do on the database tier node then on the application tier node.
    2. if multiple Application nodes then on which node first,See above.
    3. both cases like noshared application file system and shared application system
    can i run auto config on second node while applications services running on first (application) node Yes.
    4. Can i have shared appl_top (not shared application file system) like in 11i in R12Yes -- Shared APPL_TOP FAQ [ID 243880.1]
    Thanks,
    Hussein

  • Which column first filter by  oracle optimizer

    Can somebody help in understand which column first filter by oracle optimizer in below example and why?
    select * from emp where ENAME ='FORD'
    AND SAL=3000 ;

    Hi,
    Look at the EXPLAIN PLAN.
    Other things being equal, if there are more distinct values of ename than of sal, then it's probably checking for 'FORD' first.
    For example, say the table has 100,000 rows, and there are 10,000 distinct enames, and 100 distinct sals, both ename and sal are indexed, but there is no combined index.
    If you search by sal first, that means you'll expect around 1,000 rows from the index search, and then you'll have to test each of those 1,000 rows for the right ename.
    If you search by ename, first, that means you'll expect around 10 rows from the index search, and you'll only have to test each of those 10 rows for the right sal.
    The order in which the conditions were written will matter.
    Edited by: Frank Kulash on Apr 2, 2012 7:54 AM

  • [Error]List attribute binding not properly updating Iterator value

    Hi,
    I created an ADF Form page with ADF navigation buttons. Along with that I added Create, Commit and Rollback buttons in the form. One of my attributeValue binding i changed it to dynamic list binding with another iterator (LOV style). I removed all field required properties to false and put showRequried property with corresponding binding attribute mandatory option in order to avoid alert messages. I also removed disabled option of commit and rollback to false option so that every time it will be enabled. There are fields in the form which are set as mandatory from entity. List is also a mandatory attribute.
    When I press next, pervious buttons List points to corresponding LOV value perfectly. Now I press create and press submit without filling mandatory fields, JBO error is thrown. e.g. "JBO-27014: Attribute RociType in RociView is required". Now i press Rollback button, it comes back to first record. but List is showing empty. Again if i press Next button also, list value shows empty. When I printed the value of List attribute in an outputText #{bindings.RociType.inputValue} shows blank and #{bindings.RociType.attributeValue} shows orginal record value. #{bindings.RociType.inputValue} should show the corresponding index of iterator. Somehow after rollback this index is not properly updating.
    Please help to solve this problem.
    Details:
    JDeveloper version 10.1.3
    Project is JSF with ADF BC
    Regards,
    Santhosh

    Hi,
    After doing debug I understood that Rollback is not clearning Error list inside IteratorBinding. Due to that it is not getting proper input value. Please find the code for getInputValue() inside JUCtrlListBinding class.
        * Primarily for spel support. Could be removed prior to 905Prod and merged into a get()
        * method for spel-access.
        * <p>
        * Returns the last input value for the first attribute on this binding if this value
        * raised an exception. Otherwise returns the value from the model object calling
        * getAttribute(0);
        * @javabean.property
       public Object getInputValue()
          getError();
          if (mErrExc != null)
             return mInputVal;
          int sel = getSelectedIndex();
          if (mInputVal != null && (sel == -1 || sel == mNullValueIndex))
             return mInputVal;
          return new Integer(sel);
       }Is there a way to clear Errors inside Iteratorbinding when I press Rollback ???
    Regards,
    Santhosh
    null

  • Transient vo attribute binding returning null

    i have a editable form with multiple input text components which i created by dropping a collection on page.
    now i want to add more fields which are transient and read only.
    i added two transient attributes in VO with Updatable to Never and queryable to true, i dont have the logic yet so the expression is blank. i created a label using control hint.
    now i created two attribute value bindings for these new fields.
    i created two input text fields and used these bindings for their label , value properties. i set readonly and disabled both true for these input text fields.
    if i hard code the label and value properties of input text it works, if i use binding expressions for them, it throws some error saying could not find binding for transient fileds or thery returned null.
    what stpes should i use to add a transient field to a editable form.
    jdev 11.1.1.5.0

    Put the transient attributes into the underlying eo, refresh the vo and add the attributes from the eo to the vo. Now they should work just as any other attribute.
    Timo

Maybe you are looking for

  • I am not able to assign job_id  in my Assignment api

    Hi Can anybody help me I am created one for create job using hr_job_api What am trying to assign my job_id to assignment api logic is If the job is not it creates job using job api, If job is already exists it assign to assignment api CREATE OR REPLA

  • Upgrade to OS X Lion Server

    I am currently running a Mac Mini server setup in a RAID-1 configuration.  I wanted to upgrade to OS X Lion Server.  I went  to the App Store, and found out that I need to purchase OS X Lion and OS X Lion Server to upgrade.  I made the purchase, and

  • How do I get my HP 7525 scanned photos to show up in my Windows Photo Gallery?

    When I scan photos on my HP 7525, they show up in Documents on my Dell PC. I want them in my Windows Photo Gallery. How can I make make this happen? My PC is connected to the printer with a USB cable. Thanks for any help you can offer.

  • The battery-sucking Nomad from hell

    I have a brand new Nomad Jukebox Zen Xtra MP3 Player (40 GB). The fully charged battery, drains in 6 hours! It doesn't matter if I'm actually using it, or it is just on, or even if it's totally off... It drains in 6 hours no matter what. I understand

  • APPLICANT PERSONNEL NUMBER

    Hi Friends, Applicant's Personnel Number not updated in infotype 4005, same way Applicant Number is not updated in infotype 0139. Applicant data transfer is working fine, able to execute my personnel action through PBA7, but infotypes 4005 and 139 no