Master Detail - Iterator Bindings

Hi,
I'm creating a Master Detail table (drag and drop from Data Controls) based on a View Link.
In Pagedef, the refresh for both Master table iterator and Detail table iterator are set to default.
On running the above, I get intended results. Clicking on any master row shows the detail row.
But when I change the Master table iterator binding refresh value to "renderModel" and run, clicking on any other master row doesn't work. Internal error page is shown and the log messages say that rowIterator is null.
WARNING: ADFv: rowIterator is null.
Any idea why this is happening?
I'm changing the refresh value to "renderModel" because I want the iterator to refresh after actionListener executes in the particular Application that I'm coding. But when I do that I get the same error as above that I get for a simple Master-Detail table.
Thanks,
Kalyan.

These will help you,
http://download.oracle.com/docs/cd/E16162_01/web.1112/e16182/adf_lifecycle.htm#ADFFD521
http://download.oracle.com/docs/cd/E16162_01/web.1112/e16182/adf_lifecycle.htm#ADFFD521-Prasad

Similar Messages

  • Master detail using using java

    Hi ,
    I am using jdev 11.1.1 5
    My requirement to create master detail using java code.My view don't have view link.How to achive through code

    Why cant u use view link..
    btw you can see this
    http://www.techartifact.com/blogs/2013/08/master-detail-iterations-using-tree-component-by-managed-bean.html

  • Master iterator passes RangeSize to detail iterator

    Hi,
    I am using two nested af:iterators to display production orders with their positions.
    The master af:iterator displays panelBoxes (production orders) from left to right and the detail af:iterator displays buttons (positions) inside these panelBoxes top down.
    our view names are very long so I replaced them with MASTERVIEW and DETAILVIEW
    <af:iterator id="iter1" var="MASTER" varStatus="i"
                           rows="#{bindings.MASTERVIEW.rangeSize}"
                           value="#{bindings.MASTERVIEW.collectionModel}"
                           binding="#{pageFlowScope.DrmaNavi.drmaIterator}">
                <af:panelBox text="#{MASTER.BmCode}" id="pb1" type="default"
                        <af:iterator id="iter2" var="DETAIL" varStatus="n"
                                     value="#{MASTER.DETAILVIEW}"
                                        rows="#{bindings.DETAILVIEW.rangeSize}">
                          <af:commandButton id="cbWaPos" blocking="true"
                          </af:commandButton>
                        </af:iterator>
                </af:panelBox>
              </af:iterator>
    this works fine until we have a production order with more than 7 positions (10 positions is maximum).
    In the PageDef.xml the RangeSize of the Master iterator is limited to 7 as we use this application on a mobile device with a small touchscreen.
    The RangeSize of the detail iterator is limited to 10
       <!-- Maximum of 7 orders can be displayed on tablet screen 1024 x 600 -->
        <iterator Binds="drmaMASTERVIEW"
                  RangeSize="7" DataControl="ProductionDataCollectionAMDataControl"
                  id="drmaMASTERVIEWIterator"
                  ChangeEventPolicy="ppr"/>
        <iterator Binds="drmaDETAILVIEW" RangeSize="10"
                  DataControl="ProductionDataCollectionAMDataControl"
                  id="drmaDETAILVIEWIterator"
                  ChangeEventPolicy="ppr" RowCountThreshold="0">
    my problem is:
    although we have a RangeSize of 10 in the detail iterator i get only 7 Buttons even if the DETAILVIEW returns 10 rows. when I set the master RangeSize to 8 I get 8 buttons in the detail iterator but my panelBoxes are leaving the display on the right side.
    has anybody an idea to solve this problem? I'm using JDeveloper 11.1.1.6.
    thanks,
    Christoph

    Hi,
    I would suggest leaving your iterator bindings RangeSize = 25 for example and adding the logic in the af:Iterator rows property directly.
    e.g <af:Iterator .... rows = "10"/>
    Try that and let us know the outcome.
    Regards

  • Displaying a Master Detail Relationship in a Panel Accordion or Tabs

    Hi,
    Is it possible to display a Master-Detail relationship in a Panel Accordion or Panel Tab or other component that visually divides the display?
    Say I have a Department - > Employees master detail relationship and I want each tab in my accordion to represent each
    departments and when I clicked the tab, the list of employees associated with that department is displayed.
    I am exploring this idea but I cant get to find a resource on how to move forward. I am using JDev 11.1.1.4. Thanks

    Hello,
    I recently faced the same problem and did not find a clean solution either. So I implemented it a bit more "dirty". :-)
    Instead of using the Department > Employee view link, I just created a new view object (say EmployeesFromDept), that has a bind parameter called p_DeptId:
         SELECT ...
         FROM   EMPLOYEES e
         WHERE  e.DEPARTMENT_ID = :p_DeptIdThe Data Control of this VO will have an ExecuteWithParams operation that takes the department id as input. Create an action binding in your page definition that binds to this operation, called "RefreshEmployeesForDept":
         <action IterBinding="EmployeesFromDeptIterator" id="RefreshEmployeesForDept"
                InstanceName="MyAMDataControl.EmployeesFromDept"
                DataControl="MyAMDataControl" RequiresUpdateModel="true"
                Action="executeWithParams">
          <NamedData NDName="p_DeptId" NDValue="" NDType="java.lang.String"/>
        </action>In your page, add the current DepartmentId to each showDetailItem using an attribute and add a disclosureListener:
         <af:iterator id="i1" value="#{bindings.Departments.collectionModel}" var="row">
                <af:showDetailItem text="#{row.DepartmentName}" disclosureListener="#{pageFlowScope.myBean.toggleDisclosed}">
                   <f:attribute name="currentDepartmentId" value="#{row.DepartmentId}"/>
                              <af:table value="#{bindings.EmployeesFromDept.collectionModel}" var="row"
                          rows="#{bindings.EmployeesFromDept.rangeSize}"
                          emptyText="#{bindings.EmployeesFromDept.viewable ? 'No data to display.' : 'Access Denied.'}"
                          fetchSize="#{bindings.EmployeesFromDept.rangeSize}"
                          rowBandingInterval="0" id="t1">
                   //Lots of mapping column here
                        </af:table>
                </af:showDetailItem>
         </af:iterator>Now each showDetailItem that is generated knows the DepartmentId it "belongs to". In the toggleDisclosed(DisclosureEvent disclosureEvent) method, first fetch this attribute, so that you know the dept id of the showDetailItem that was clicked. Next, programmatically call the RefreshEmployeesForDept action binding if the current event is "disclosing the showDetailItem":
         public void toggleDisclosed(DisclosureEvent disclosureEvent) {
              String currentDepartmentId = disclosureEvent.getComponent().getAttributes().get("currentDepartmentId").toString();
              if(disclosureEvent.isExpanded()){
                   DCBindingContainer bindings = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
                   OperationBinding operBinding = bindings.getOperationBinding("RefreshEmployeesForDept");
                   if(operBinding != null){
                        operBinding.getParamsMap().put("p_DeptId", currentDepartmentId);
                        operBinding.execute();
        }Now, each time a showDetailItem is opened, the bind variable of the iterator belonging to your list of Employees will be refreshed with the correct DepartmentId. Ie the department that the showDetailItem represents.
    Hope this helps! If you find a cleaner solution, please let me know. :-)
    Regards,
    Chris

  • [Master-Detail] JBO-35007: Row currency has changed since...

    Hi,
    I have a very annoying problem in ADF Faces with row currency:
    I have a "Master table - Detail table" relationship on a very simple test page based on the SRDemo's PRODUCTS and SERVICE_REQUESTS tables. Everything was done automatically: create Entities from Tables, create the SLSB facade, and create the tables on the page via dragging the accessor.
    Then I added a "Refresh" button on the page whose action handler is:
        public String btnRefresh_action() {
            DCIteratorBinding iterMaster = (DCIteratorBinding)bindings.get("findAllProductsIter");
            String rowKeyStrMaster = iterMaster.getCurrentRowKeyString();
            DCIteratorBinding iterDetail = (DCIteratorBinding)bindings.get("serviceRequestListIterator");
            String rowKeyStrDetail = iterDetail.getCurrentRowKeyString();
            iterMaster.executeQuery();
            iterMaster.setCurrentRowWithKey(rowKeyStrMaster);
            iterDetail.setCurrentRowWithKey(rowKeyStrDetail);
            return null;
        }And here's where the problem kicks in:
    1. I select the product with ID=100 (because it has multiple details).
    2. I select some detail. Say, the second one.
    3. I click on the "Refresh" button.
    4. The button's handler re-executes the iterator and restores the current rows on the tables. The page loads okay and the rows that were selected prior to clicking on the button continue to be selected appropriately.
    5. Now I click on the "Refresh" button again. And I get the error: "JBO-35007: Row currency has changed since the user interface was rendered. The expected row key was oracle.jbo.Key[1 ]".
    Please, help. What should I do to prevent this error from happening? It it a bug in my code or a bug in the framework? When I only have one table (and not a Master-Detail relationship), everything works. The problem comes from the Detail table.
    We use EJB3 + JPA + ADF Faces. I tested the problem on JDev 10.1.3.3.0.4157 and JDev 10.1.3.2.0.4066.
    Best regards
    Bisser

    no post......
    Edited by: BaiG on Nov 2, 2010 2:21 PM

  • Master & detail table in one transaction

    Experts,
    I am useing 11g 11.1.1.4 and ADF BC, I have thought about this question quite for a while.
    I have a master & detail constructure in one page, master as af:form and detail as af: table.
    The master is 'booking' table (booking_id, create_date, create_user, user_contact) ,
    and detail is 'booking_line' table ( booking_id, booking_det_id, booking_weight, booking_volume, booking_type)
    According to my customer, user have to enter the master and detail data in one transaction and once user clicked the 'Submit booking' (actually is 'commit' operation),
    the system need to check at least one detail line have been entered by user, otherwise the error message issued and return back to the current page. how this one can be done? Thanks!

    Thanks a lot M.Jabr!
    I have used your suggestion as follwoing:
    public String cb3_action() {
    BindingContext bindingctx = BindingContext.getCurrent();
    BindingContainer bindings = null;
    bindings = bindingctx.getCurrentBindingsEntry();
    DCBindingContainer bindingsImpl = (DCBindingContainer) bindings;
    DCIteratorBinding dciter = null;
    //access the iterator by its ID value in the PageDef file.
    dciter = bindingsImpl.findIteratorBinding("BookingDetOlVO1Iterator");
    ViewObject vo= dciter.getViewObject();
    long rowsCount= vo.getEstimatedRowCount();
    if (rowsCount > 0) {
    OperationBinding operationBinding = (OperationBinding)bindings.getOperationBinding("Commit");
    Object result = operationBinding.execute();
    if (!operationBinding.getErrors().isEmpty())
    return null;
    return "BookingDone";
    } else {
    FacesContext context = FacesContext.getCurrentInstance();
    FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, null, "Please enter at least one Booking Detail line");
    context.addMessage(null, msg);
    return null;
    but there is another propblem after testing, I found if user just click the 'createInsert' operation in detail table. but without enter any values for some required fields, then can still - return "BookingDone"; that's means the required validation are skipped. any suggestion?

  • ADF Master Detail Forms

    Hi,
    We have a master detail views and the master detail relationship is working fine between the views. We have a requirement to display one master form and 2 detail forms (user has to see two detail forms) to the user. The default master detail relationships in ADF are displaying one master form and one detail form with the navigation controls. Can you please suggest ideal approach for displaying multiple detail forms.
    We tried with the af:iterator for displaying details collection model as multiple forms. But the problem with the current approach, we are unable to get the reference to the detail record when a value is changed in the detail form.
    <af:iterator id="i1" varStatus="vs" value="#{bindings.BillDetailVO11.collectionModel}" var="row">
    <af:inputDate id="serviceDate"
    label="Service Date"
    value="#{row.ServiceDate}" *valueChangeListener="#{backingbean.myvaluechangelistener}"*
    columns="9"/>
    <af:inputText id="it1122" label="POS"
    value="#{row.PlaceServiceCode}"
    columns="4"/>
    </af:iterator>
    I am comfortable with the iterator approach if I can get the value of PlaceServiceCode for the same row in the detail form when the ServiceDate value changes. I am ready to try for alternative approaches for displaying multiple detail forms.
    Thanks and Regards,
    Prasad

    Hi Shay,
    Thank you for responding to my query. I followed the steps in the blog and created two detail forms. But both the detail forms are representing the same detail record. Our requirement is little different.
    We have to create a master detail form (Bill Summary with Bill Lines) to edit the bill summary with lines and display two Bill lines along with summary to the user.If hte number of bill lines are more than 2 then we have to display navigation controls to the user to navigate across the bill lines.
    As an example the form data comes from Bill_summary(Master) and Bill_Lines (detail) tables. If the number of Bill Lines are 5 then we have to display the form as follows. if the user selects next the form should display 2,3 lines, 3,4 lines etc.
    BILL_SUMMARY
    BILL_LINE 1
    BILL_LINE 2
    <Navigation control for the details>
    Thanks and Regards,
    S R Prasad

  • Af:tree with master-detail doesnt work

    Hi,
    I created master-detail(used updateable VO's) and test it from the application module and everything worked as expected.
    Now I try to show all master and detail data in af:tree component.
    At the runtime I can see only master data, but there's no detail data at all. I tried all of this before and everything worked fine, and now I cant get this work.
    <!-- jsf page page1.jspx-->
    <af:tree value="#{bindings.Master1.treeModel}"
    var="node">
    <f:facet name="nodeStamp">
    <af:outputText value="#{node}"/>
    </f:facet>
    </af:tree>
    <?xml version="1.0" encoding="UTF-8" ?>
    <pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel"
    version="10.1.3.39.84" id="app_page1PageDef"
    Package="main.userinterface.pageDefs">
    <parameters/>
    <executables>
    <iterator id="Master1Iterator" RangeSize="10"
    Binds="Master1" DataControl="AppModuleServiceDataControl"/>
    </executables>
    <bindings>
    <tree id="Master1" IterBinding="Master1Iterator">
    <AttrNames>
    <Item Value="IdMaster1"/>
    <Item Value="Name"/>
    <Item Value="MasterValue1"/>
    <Item Value="MasterValue2"/>
    <Item Value="MasterValue3"/>
    </AttrNames>
    <nodeDefinition DefName="main.datamodel.queries.Master1"
    id="Master1Node">
    <AttrNames>
    <Item Value="MasterValue1"/>
    </AttrNames>
    <Accessors>
    <Item Value="Detail1"/>
    </Accessors>
    </nodeDefinition>
    <nodeDefinition DefName="main.datamodel.queries.Detail1"
    id="Detail1Node">
    <AttrNames>
    <Item Value="DetailValue1"/>
    </AttrNames>
    </nodeDefinition>
    </tree>
    </bindings>
    </pageDefinition>
    Thank you in advance.
    Alex

    Note, that PanelCollection is a naming container. So if you have wrapped your table in a PanelCollection you will have to add PanelCollection's ID to master table's ID when refering the master table as a partial trigger for the detail one. For example, if the value of detail table's partialTriggers attribute has been <tt>partialTriggers="::masterTable"</tt> now it should become <tt>partialTriggers="::pnlColl:materTable"</tt> (supposing that PanelCollection's ID is <tt>pnlColl</tt>).

  • JBO-33035 when usuing LOV in master-detail

    i have created a simple employee form with LOV on the department id and it's worked fine.
    but when i tried to attach the lov to an employee form which is in master-detail form (department-employee) i got jbo-33035 error
    i have tried to use the master View object , or a new View object (for departments) with the same result.
    btw , usually i want to see the department-name and not the department-id ....

    For master/detail form, to fill in the FK, you may use LOV such that the source of the LOV is not the same collection which is also the master collection in the form.
    From what you suggest, you seem to have a separate collection (than the master) for the LOV form. Also make sure you 'removed' any unused LOV binding from the uimodel for the page (which may be there from earlier declarations).
    If it still does not work, please add more details on your LOV definition (either steps to recreate your scenario or atleast the xml fragment from the UI Model along with XML fragments for the iterator bindings used in the LOV with descriptions on their relationships.), so that we can provide further inputs.

  • "Failed to validate all rows" when inserting in master detail scenario

    Hi,
    I have problem writing data in a master detail scenario..
    i use the following bean method to write data.
    Data is inserted in the master table successfully but when i try to commit in the details table i get the error "Failed to validate all rows in a transaction."
    public void save(ActionEvent actionEvent)
    //writing into master table
    DCBindingContainer bindings =
    (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
    DCIteratorBinding iterBind =
    (DCIteratorBinding)bindings.get("Master1Iterator");
    MasterVOImpl vo_pr = (MasterVOImpl ) iterBind.getViewObject();
    Row r=vo_pr.createRow();
    r.setAttribute("Name", name);
    Number num =(new oracle.jbo.server.SequenceImpl("new_seq",vo_pr.getDBTransaction())).getSequenceNumber();
    r.setAttribute("Id",num);
    vo_pr.insertRow(r);
    vo_pr.getDBTransaction().commit();
    //writing into details table
    DCIteratorBinding scopeiterBind =
    (DCIteratorBinding)bindings.get("Detail2Iterator");
    DetailVOImpl vo_sc = (DetailVOImpl) scopeiterBind.getViewObject();
    Row rs=vo_sc.createRow();
    rs.setAttribute("iddetail",iddetail);
    rs.setAttribute("Name", Name);
    rs.setAttribute("id",num);
    vo_sc.insertRow(rs);
    vo_sc.getDBTransaction().commit();
    Note: the Detail iterator used here is the one under the master in the AM

    In case your model defined a view link from master to detail should try to get the detail iterator from the master and use this to create the new row.
    Row r=vo_pr.createRow();
    r.setAttribute("Name", name);
    Number num =(new oracle.jbo.server.SequenceImpl("new_seq",vo_pr.getDBTransaction())).getSequenceNumber();
    r.setAttribute("Id",num);
    vo_pr.insertRow(r);
    // this method gets the detail iterator for the master row you just created.
    // The name of the method depends on the view link in your model you expose to the master view
    Row rs=vo_pr.getDetail().createRow();
    rs.setAttribute("iddetail",iddetail);
    rs.setAttribute("Name", Name);
    // this value should be added by the framework
    //rs.setAttribute("id",num);
    vo_sc.insertRow(rs);
    vo_pr.getDBTransaction().commit();Timo

  • Master-Detail prevent inserting detail row if master doesn't exist

    Hello,
    I have a complex page that has several master-detail table pairs on it. I have what should be a simple problem to work around that I can't seem to figure out. On each table (either master or detail) I have a create button in the header and a delete button in each row. I have a couple issues I just can't seem to get past.
    1. How to disable the detail create button if no master row exists or one hasn't been selected by the user? (Right now you can create detail rows without a valid master row)
    2. How to disable the master row delete button if there are any (commited or not) detail rows present?
    I think I have figured out 2 by having a transient attribute on the master row that uses groovy and the view link accessor to count the detail rows. This appears to be working but if there's a better, cleaner solution I'm all ears. I just can't seem to get 1 working no matter what I try.
    Thanks for any help you can provide.

    hi,
    you can use estimatedRowCount of iterator to disable the button like
    disabled="#{!(bindings.mastervoIterator.estimatedRowCount ge 0)}"and use currentRow property to determint whether current row is selected like
    disabled="#{!(bindings.mastervoIterator.currentRow ne null)}"so the combination will be as follows
    disabled="#{!(bindings.mastervoIterator.estimatedRowCount ge 0 and bindings.mastervoIterator.currentRow ne null)}"hope this helps...
    Regards.

  • Master-Detail Detail does not refresh after it's been empty

    I have a master detail page (both are tables) that works just fine, until I click a master record that has no details.
    After that the panelHeader of teh detail is refreshed with the PPT but the table underneath it is not, I keep seeing "no rows yet", no matter which master record I click.
    When I go to a different page and return it's fine again.
    Only one of my pages has this behavior, I tested this on another and it was fine. Has anyone seen this behavior before?
    My console has this message:
    May 11, 2007 10:52:38 AM oracle.adfinternal.view.faces.model.binding.FacesCtrlRangeBinding$FacesModel getSelectedRow
    WARNING: rowIterator is null
    Message was edited by:
    Wendy Tromp

    Ok I found it,
    My details iterator had the following properties:
    <iterator id="AfdelingMedewerkersIterator" RangeSize="-1"
    Binds="AfdelingMedewerkers"
    DataControl="PRBAppModuleDataControl"
    Refresh="IfNeeded" RefreshCondition="#{!adfFacesContext.postback}" />
    I have no idea why I set it like that, but removing the Refresh properties fixed my problem.
    I am still clueless as of why this led to the behavior as described above. I could have understood it if my iterator was not refreshed at all, but I have no idea why it stopped working only after the details were empty and not a second before...
    Anyway, problem solved!

  • What is the proper way to record line numbers in Master/Detail records?

    Guys and Gals,
    Been thinking about this for awhile, but thought it best to ask the people who really know what they are doing.
    What is the proper way to record & show line numbers in a Master / Detail record set?
    For example, take Master/Detail relationship Orders and OrderItems. Orders has a column Document_Number and OrderItems has Document_Number, Line_Number. Line_Number should contain the row number 1,2,3,4 ... etc. for each row in a document.
    Should I ...
    <ol><li>Add a sequence and a trigger in the database? The FusionOrderDemo does this, but then the sequence never "resets" and I've got row numbers that keep incrementing. So one document has rows 4,5,6 and the next document has 7,8,9 when they should both have 1,2,3.</li>
    <li>Programmatically take care of the row numbers? This seems like I'm asking for trouble. Anytime an insert or delete operation gets done, I'll have to iterate through rows and re-assign row numbers.</li>
    <li>Is there a way to assign row numbers in a table iterator (or data collection?) to an entity?</li></ol>
    Any suggestions would be appreciated. It's looking like #2 is my only option, but if anyone knows different I'd love the input.
    Will

    Thank you both guys.
    As John said, I believe I'm looking for a gap-free sequence per master record.
    The line number of the OrderItems table is the second half of the primary key. The first half of the primary key (DocumentNumber) is the foreign key to the Orders table.
    Think of it like line items on an order or invoice. For example, if you were talking to someone on the phone concerning an invoice, you might say, "The pricing for line item #3 is incorrect." In this case, it's good to have a common reference. Or imagine a Microsoft Excel spreadsheet with no row numbers displayed! You'd never get anywhere if you had to explain something over the phone.
    If this is tricky to perform, I take it using a sequence and trigger such as the Fusion Order Demo is the best way to approach the challenge for simplicity's sake?
    Will

  • Filter on Master-Detail

    Build JDEVADF_11.1.2.0.0_GENERIC_110531.1615.6017
    Hello,
    I have a Master Detail View. I show the objects of the views in a single table. I can filter the objects by Master View, but not of the detail view.
    What should I do to the elements of detailed view can also filter?
    <af:table value="#{bindings.MyView1.collectionModel}" var="row"
                                          rows="#{bindings.MyView1.rangeSize}"
                                          emptyText="#{bindings.MyView1.viewable ? 'No data to display.' : 'Access Denied.'}"
                                          fetchSize="#{bindings.MyView1.rangeSize}" rowBandingInterval="0"
                                          filterModel="#{bindings.MyView1Query.queryDescriptor}"
                                          queryListener="#{bindings.MyView1Query.processQuery}" filterVisible="true"
                                          varStatus="vs" selectedRowKeys="#{bindings.MyView1.collectionModel.selectedRow}"
                                          selectionListener="#{bindings.MyView1.collectionModel.makeCurrent}"
                                          rowSelection="single" id="t1">
                                    <af:column sortProperty="#{bindings.MyView1.hints.Ref.name}" filterable="true"
                                               sortable="true" headerText="#{bindings.MyView1.hints.Ref.label}" id="c1">
                                        <af:inputText value="#{row.bindings.Ref.inputValue}"
                                                      label="#{bindings.MyView1.hints.Ref.label}"
                                                      required="#{bindings.MyView1.hints.Ref.mandatory}"
                                                      columns="#{bindings.MyView1.hints.Ref.displayWidth}"
                                                      maximumLength="#{bindings.MyView1.hints.Ref.precision}"
                                                      shortDesc="#{bindings.MyView1.hints.Ref.tooltip}" id="it1">
                                            <f:validator binding="#{row.bindings.Ref.validator}"/>
                                            <af:convertNumber groupingUsed="false"
                                                              pattern="#{bindings.MyView1.hints.Ref.format}"/>
                                        </af:inputText>
                                    </af:column>
                                    <af:column sortProperty="#{bindings.MyView1.hints.Description.name}" filterable="true"
                                               sortable="true" headerText="#{bindings.MyView1.hints.Description.label}"
                                               id="c2">
                                        <af:inputText value="#{row.bindings.Description.inputValue}"
                                                      label="#{bindings.MyView1.hints.Description.label}"
                                                      required="#{bindings.MyView1.hints.Description.mandatory}"
                                                      columns="#{bindings.MyView1.hints.Description.displayWidth}"
                                                      maximumLength="#{bindings.MyView1.hints.Description.precision}"
                                                      shortDesc="#{bindings.MyView1.hints.Description.tooltip}" id="it2">
                                            <f:validator binding="#{row.bindings.Description.validator}"/>
                                        </af:inputText>
                                    </af:column>
                                    <af:column sortProperty="#{bindings.MyView1.hints.MYAddrView.FkProperty.name}"
                                               filterable="true" sortable="true"
                                               headerText="#{bindings.MyView1.hints.MYAddrView.FkProperty.label}"
                                               id="c15">
                                        <af:inputText value="#{row.MYAddrView.bindings.FkProperty.inputValue}"
                                                      label="#{bindings.MyView1.hints.MYAddrView.FkProperty.label}"
                                                      required="#{bindings.MyView1.hints.MYAddrView.FkProperty.mandatory}"
                                                      columns="#{bindings.MyView1.hints.MYAddrView.FkProperty.displayWidth}"
                                                      maximumLength="#{bindings.MyView1.hints.MYAddrView.FkProperty.precision}"
                                                      shortDesc="#{bindings.MyView1.hints.MYAddrView.FkProperty.tooltip}"
                                                      id="it15">
                                            <f:validator binding="#{row.MYAddrView.bindings.FkProperty.validator}"/>
                                            <af:convertNumber groupingUsed="false"
                                                              pattern="#{bindings.MyView1.hints.MYAddrView.FkProperty.format}"/>
                                        </af:inputText>
                                    </af:column>
                                    <af:column sortProperty="#{bindings.MyView1.hints.MYAddrView.AddrCity.name}"
                                               filterable="true" sortable="true"
                                               headerText="#{bindings.MyView1.hints.MYAddrView.AddrCity.label}" id="c16">
                                        <af:inputText value="#{row.MYAddrView.bindings.AddrCity.inputValue}"
                                                      label="#{bindings.MyView1.hints.MYAddrView.AddrCity.label}"
                                                      required="#{bindings.MyView1.hints.MYAddrView.AddrCity.mandatory}"
                                                      columns="#{bindings.MyView1.hints.MYAddrView.AddrCity.displayWidth}"
                                                      maximumLength="#{bindings.MyView1.hints.MYAddrView.AddrCity.precision}"
                                                      shortDesc="#{bindings.MyView1.hints.MYAddrView.AddrCity.tooltip}"
                                                      id="it16">
                                            <f:validator binding="#{row.MYAddrView.bindings.AddrCity.validator}"/>
                                        </af:inputText>
                                    </af:column>
                                    <af:column sortProperty="#{bindings.MyView1.hints.MYAddrView.AddrZip.name}"
                                               filterable="true" sortable="true"
                                               headerText="#{bindings.MyView1.hints.MYAddrView.AddrZip.label}" id="c17">
                                        <af:inputText value="#{row.MYAddrView.bindings.AddrZip.inputValue}"
                                                      label="#{bindings.MyView1.hints.MYAddrView.AddrZip.label}"
                                                      required="#{bindings.MyView1.hints.MYAddrView.AddrZip.mandatory}"
                                                      columns="#{bindings.MyView1.hints.MYAddrView.AddrZip.displayWidth}"
                                                      maximumLength="#{bindings.MyView1.hints.MYAddrView.AddrZip.precision}"
                                                      shortDesc="#{bindings.MyView1.hints.MYAddrView.AddrZip.tooltip}"
                                                      id="it17">
                                            <f:validator binding="#{row.MYAddrView.bindings.AddrZip.validator}"/>
                                        </af:inputText>
                                    </af:column>
    </af:table>thank you
    regards

    Hi Shay,
    thank you for your reply.
    I have two view objects based on two DB-tables. They are in relation with a View Link. So I have under my DataControls:
    MyView1
    -> MYADDRView.
    I push my MyView1(Master) on the jsp and I select ADFTable. and I click to "Enable Sorting" and "Enable Filtering".
    For the fields belonging to MyView1, I can filter the data, but when I want to filter a field belongs MYADDR, i have the error message:
    ADF_FACES-60098:Faces-Gültigkeitsdauer empfängt nicht behandelte Exceptions in Phase INVOKE_APPLICATION 5
    javax.el.ELException: java.lang.NullPointerException
         at com.sun.el.parser.AstValue.invoke(Unknown Source)
         at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1579)
         at oracle.adf.view.rich.component.UIXTable.broadcast(UIXTable.java:158)
         at oracle.adf.view.rich.component.rich.data.RichTable.broadcast(RichTable.java:483)
         at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:157)
         at org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:279)
         at oracle.adf.view.rich.component.UIXTable.broadcast(UIXTable.java:145)
         at oracle.adf.view.rich.component.rich.data.RichTable.broadcast(RichTable.java:479)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:1129)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:353)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:204)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
         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:121)
         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.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:180)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         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:136)
         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)
    Caused by: java.lang.NullPointerException
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._parseViewCriteriaItem(FacesCtrlSearchBinding.java:5268)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._parseViewCriteriaItems(FacesCtrlSearchBinding.java:5028)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._addFilterCriteria(FacesCtrlSearchBinding.java:4894)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding.processQuery(FacesCtrlSearchBinding.java:443)
         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:597)
         ... 51 more
    <RegistrationConfigurator> <handleError> ADF_FACES-60096:Server-Exception während PPR, #1
    javax.el.ELException: java.lang.NullPointerException
         at com.sun.el.parser.AstValue.invoke(Unknown Source)
         at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1579)
         at oracle.adf.view.rich.component.UIXTable.broadcast(UIXTable.java:158)
         at oracle.adf.view.rich.component.rich.data.RichTable.broadcast(RichTable.java:483)
         at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:157)
         at org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:279)
         at oracle.adf.view.rich.component.UIXTable.broadcast(UIXTable.java:145)
         at oracle.adf.view.rich.component.rich.data.RichTable.broadcast(RichTable.java:479)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:1129)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:353)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:204)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
         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:121)
         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.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:180)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         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:136)
         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)
    Caused by: java.lang.NullPointerException
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._parseViewCriteriaItem(FacesCtrlSearchBinding.java:5268)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._parseViewCriteriaItems(FacesCtrlSearchBinding.java:5028)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._addFilterCriteria(FacesCtrlSearchBinding.java:4894)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding.processQuery(FacesCtrlSearchBinding.java:443)
         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:597)
         ... 51 moreregards

  • Filter on Master Detail tables

    Hi,
    I've just created a simple Master Detail view (both tables) on my jsf page.
    I would like to add a filter above all the master table columns but I can't.
    I have set all the properties linked to Filtering I've seen to "true" (for the table and the columns) but I don't see the header with the filter field.
    I'm just wondering what value I should set in the FilterModel property. When I create a simple table, it's linked to a queryDescriptor, but this doesn't exist for my master table.
    Could anyone help ?
    Thank you.

    Hi,
    here's what happens when you create a filterable table using the table dialog. If you want to apply this manually, then the same steps need to be performed
    - A search binding is added to the executables section in the ADF page definition file of the containing page. The binding is configured by the <searchRegion> metadata element.
    - The queryListener attribute is set to reference the processQuery method that is exposed by the <searchRegion> implementation class
    - The filterModel attribute is set to point to the query descriptor exposed on the ADF hierarchical binding that exists for the table.
    - The filterVisible attribute is set to true to display the filter input components above the table header, as shown in figure 09-4. The filterVisible attribute value can be set using Expression Language, allowing the application developer to dynamically control when a user is allowed to filter the table and when he or she isn’t.
    - The filterable attribute is set to true on the contained columns. To exclude a column from query-by-example, set this property to false.
    I suggest you drop a second instance of the master table to get the bindings created. Copy the settings of the table to the first one. Change the references to the second table binding to point to the first and then delete the second master table. Sounds easier to me
    Frank

Maybe you are looking for

  • Oracle BPM checkbox

    Hi, I am new to Oracle BPM and I have a requirement to make a check box in BPM form. Like Select Documents: Inter [], Middle[],Master[]. Can anyone please share a simple way to do it? I tried to convert one field into check box but how can I add more

  • JVM crash upon webapp deployment to WebLogic 9.1

    I have been tasked with taking a web application that has been working under WebLogic 6.1 and getting it to compile and run under WebLogic 9.1 (using Sun JDK/JRE 1.5). I resolved a few compile problems in Java sources (and commented out a few lines o

  • Cannot open pdf with IE/ windows 7.

    Dear friends, and those who understand better than I.  I have been working on this situation for over a week.  I cannot open pdf from the browser.  I tried the "patch " as discussed in a different forum, but still only get the link to open in a seper

  • Can Quicken for Windows work on a Mac w/Lion installed using Parallels?

    I've never used Parallels but am panicking with the phaseout of the already anemic Quicken for Mac 2007.  Has anybody used the more powerful Windows version of Quicken on a Mac through Parallels or some other PC emulator?  And will it work with Lion?

  • Bex heirarchy Questions

    Hello, I have a Bex report with heirarchies. Some of the heirarchy nodes are open but some are not. When i press the refresh button sometimes it closes/open the nodes and sometimes it dont. Is there a way to control this? Thank you, David