Cascading LOV in a Query panel (af:query)

Hi
I have a requirement to implement few Cascading LOV's in a Query panel. I have created the VO's for the LOV's with bind variable and view criteria and linked them. It works for the BC viewer. But to enable in the ADF UI, the partial trigger needs to be enabled on individual field. And the af:query encapsulates the fields and they are not exposed. Can someone help me with a solution or a pointer
Many thanks

Thanks for the pointer
Well I followed the the steps, and implemented the same for two LOV's. I'm getting "Server Exception during PPR, #1". Would be able to identify where I'm going wrong please.
FYI: I'm using a UI template that is stripped won from Oracles Dynamic tab template
1. parent LOV
<?xml version="1.0" encoding="windows-1252" ?>
<!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
<!---->
<ViewObject
xmlns="http://xmlns.oracle.com/bc4j"
Name="QcChiptypeVViewRO"
Version="11.1.1.56.60"
BindingStyle="OracleName"
CustomQuery="true"
RowClass="com.qualcomm.qdt.fwk.model.QdtViewRowImpl"
ComponentClass="com.qualcomm.qdt.fwk.model.QdtViewObjectImpl"
DefClass="com.qualcomm.qdt.fwk.model.QdtViewDefImpl"
PageIterMode="Full"
UseGlueCode="false">
<DesignTime>
<Attr Name="_codeGenFlag2" Value="Access|VarAccess"/>
<Attr Name="_isExpertMode" Value="true"/>
</DesignTime>
<SQLQuery>
<![CDATA[SELECT QcChiptypeV.CHIPTYPE
FROM QC_CHIPTYPE_V QcChiptypeV]]>
</SQLQuery>
<ViewAttribute
Name="Chiptype"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="42"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="CHIPTYPE"
Expression="CHIPTYPE"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="42"/>
</DesignTime>
</ViewAttribute>
</ViewObject>
2. Child LOV
<?xml version="1.0" encoding="windows-1252" ?>
<!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
<!---->
<ViewObject
xmlns="http://xmlns.oracle.com/bc4j"
Name="QcMcnVViewRO"
Version="11.1.1.56.60"
BindingStyle="OracleName"
CustomQuery="true"
RowClass="com.qualcomm.qdt.fwk.model.QdtViewRowImpl"
ComponentClass="com.qualcomm.qdt.fwk.model.QdtViewObjectImpl"
DefClass="com.qualcomm.qdt.fwk.model.QdtViewDefImpl"
PageIterMode="Full"
UseGlueCode="false">
<DesignTime>
<Attr Name="_codeGenFlag2" Value="Access|VarAccess"/>
<Attr Name="_isExpertMode" Value="true"/>
</DesignTime>
<Variable
Name="chiptype"
Kind="viewcriteria"
Type="java.lang.String"/>
<ViewAccessor
Name="QcChiptypeVViewRO1"
ViewObjectName="com.qualcomm.qdt.model.lov.QcChiptypeVViewRO"
RowLevelBinds="true"/>
<SQLQuery>
<![CDATA[SELECT QcMcnV.MCN,
QcMcnV.CHIPTYPE
FROM QC_MCN_V QcMcnV]]>
</SQLQuery>
<ViewAttribute
Name="Mcn"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="20"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="MCN"
Expression="MCN"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="20"/>
</DesignTime>
<Dependencies>
<Item
Value="Chiptype"/>
</Dependencies>
</ViewAttribute>
<ViewAttribute
Name="Chiptype"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="42"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="CHIPTYPE"
Expression="CHIPTYPE"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="42"/>
</DesignTime>
</ViewAttribute>
<ViewCriteria
Name="QcMcnVViewROCriteriaChiptype"
ViewObjectName="com.qualcomm.qdt.model.lov.QcMcnVViewRO"
Conjunction="AND">
<Properties>
<CustomProperties>
<Property
Name="displayOperators"
Value="InAdvancedMode"/>
<Property
Name="autoExecute"
Value="true"/>
<Property
Name="allowConjunctionOverride"
Value="true"/>
<Property
Name="showInList"
Value="true"/>
<Property
Name="mode"
Value="Basic"/>
</CustomProperties>
</Properties>
<ViewCriteriaRow
Name="vcrow5"
UpperColumns="1">
<ViewCriteriaItem
Name="QcMcnVViewROCriteria_vcrow5_Chiptype"
ViewAttribute="Chiptype"
Operator="="
Conjunction="AND"
Value=":chiptype"
IsBindVarValue="true"
Required="Optional"/>
</ViewCriteriaRow>
</ViewCriteria>
</ViewObject>
3. JSF page
<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<f:view>
<af:document id="d1">
<af:messages id="m1"/>
<af:form id="f1">
<af:pageTemplate viewId="/oracle/ui/pattern/dynamicShell/dynamicTabShell.jspx"
value="#{bindings.pageTemplateBinding}" id="pt1">
<f:facet name="copyright">
<af:outputText value="2010 Qualcomm Inc. All Rights Reserved."
id="ot10"/>
</f:facet>
<f:facet name="about">
<af:navigationPane id="np3" hint="buttons">
<af:commandNavigationItem text="About" id="cni5"/>
<af:commandNavigationItem text="Privacy" id="cni6"/>
</af:navigationPane>
</f:facet>
<f:facet name="navigation">
<af:panelAccordion id="pa1">
<af:showDetailItem text=" Asset Details" id="sdi1">
<af:panelGroupLayout layout="vertical" id="pgl1">
<af:panelHeader text=" " id="ph1">
<af:query id="qryId1"
headerText="Search Criteria (Use % as wildcard)" disclosed="true"
value="#{bindings.ImplicitViewCriteriaQuery.queryDescriptor}"
model="#{bindings.ImplicitViewCriteriaQuery.queryModel}"
queryListener="#{bindings.ImplicitViewCriteriaQuery.processQuery}"
queryOperationListener="#{bindings.ImplicitViewCriteriaQuery.processQueryOperation}"
saveQueryMode="hidden"/>
</af:panelHeader>
</af:panelGroupLayout>
</af:showDetailItem>
<af:showDetailItem text="More Info" id="sdi2"/>
</af:panelAccordion>
</f:facet>
<f:facet name="globalLinks">
<af:navigationPane id="np2" hint="buttons"
inlineStyle="text-align:right;">
<af:commandNavigationItem text="Help" id="cni4" action="noop"/>
<af:commandNavigationItem text="Sign out"
id="commandNavigationItem1"
action="noop"/>
</af:navigationPane>
</f:facet>
<f:facet name="status"/>
<f:facet name="globalToolbar"/>
<f:facet name="globalSearch"/>
<f:facet name="globalTabs">
<af:navigationPane id="np1">
<af:commandNavigationItem text="Device Query/Update" id="cni1"
selected="true" partialSubmit="false"/>
<af:commandNavigationItem text="Asset Return" id="cni3"
action="dummy" rendered="false"/>
</af:navigationPane>
</f:facet>
<f:facet name="welcome">
<af:panelSplitter id="ps1" orientation="vertical">
<f:facet name="first">
<af:panelCollection id="pc1" defaultToolbarItemDisplay="icon">
<f:facet name="menus">
<af:menu text="Options" id="m2" rendered="false">
<af:commandMenuItem text="Printable Page" id="cmi2">
<af:showPrintablePageBehavior/>
</af:commandMenuItem>
<af:commandMenuItem text="Download" id="commandMenuItem1">
<af:exportCollectionActionListener exportedId="t2"
type="excelHTML"
title="Asset Details"/>
</af:commandMenuItem>
</af:menu>
</f:facet>
<f:facet name="toolbar">
<af:toolbar id="t1">
<af:commandToolbarButton id="ctb1"
hoverIcon="/images/view_image.gif"
text="Export to Excel">
<af:exportCollectionActionListener exportedId="t2"
type="excelHTML"
title="Asset Details"/>
</af:commandToolbarButton>
</af:toolbar>
</f:facet>
<f:facet name="statusbar"/>
<af:table value="#{bindings.QcDeviceTrackingVO1.collectionModel}"
var="row"
rows="#{bindings.QcDeviceTrackingVO1.rangeSize}"
emptyText="#{bindings.QcDeviceTrackingVO1.viewable ? 'No data to display.' : 'Access Denied.'}"
fetchSize="#{bindings.QcDeviceTrackingVO1.rangeSize}"
rowBandingInterval="0"
filterModel="#{bindings.ImplicitViewCriteriaQuery.queryDescriptor}"
queryListener="#{bindings.ImplicitViewCriteriaQuery.processQuery}"
filterVisible="true" varStatus="vs"
selectedRowKeys="#{bindings.QcDeviceTrackingVO1.collectionModel.selectedRow}"
selectionListener="#{bindings.QcDeviceTrackingVO1.collectionModel.makeCurrent}"
rowSelection="single" id="t2"
columnSelection="single"
partialTriggers=":::ph1 :::qryId1">
<af:column sortProperty="Serialnum" filterable="true"
sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Serialnum.label}"
id="c28" width="103">
<af:outputText value="#{row.Serialnum}" id="ot17"/>
</af:column>
<af:column sortProperty="Assettag" filterable="true"
sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Assettag.label}"
id="c7" width="107">
<af:outputText value="#{row.Assettag}" id="ot24"/>
</af:column>
<af:column sortProperty="Chiptype" filterable="true"
sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Chiptype.label}"
id="c18" width="26">
<af:outputText value="#{row.Chiptype}" id="ot27"/>
</af:column>
<af:column sortProperty="Mcn" filterable="true"
sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Mcn.label}"
id="c11">
<af:outputText value="#{row.Mcn}" id="ot13"/>
</af:column>
<af:column sortProperty="Mcnrev" filterable="true"
sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Mcnrev.label}"
id="c8">
<af:outputText value="#{row.Mcnrev}" id="ot3"/>
</af:column>
<af:column sortProperty="Assignedto" filterable="true"
sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Assignedto.label}"
id="c15">
<af:outputText value="#{row.Assignedto}" id="ot32"/>
</af:column>
<af:column sortProperty="Location" filterable="true"
sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Location.label}"
id="c24">
<af:outputText value="#{row.Location}" id="ot19"/>
</af:column>
<af:column sortProperty="Locationfullname" filterable="true"
sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Locationfullname.label}"
id="c14">
<af:outputText value="#{row.Locationfullname}" id="ot26"/>
</af:column>
<af:column sortProperty="Locationtype" filterable="true"
sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Locationtype.label}"
id="c13">
<af:outputText value="#{row.Locationtype}" id="ot28"/>
</af:column>
<af:column sortProperty="Description" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Description.label}"
id="c21">
<af:outputText value="#{row.Description}" id="ot22"/>
</af:column>
<af:column sortProperty="Assignment" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Assignment.label}"
id="c30">
<af:outputText value="#{row.Assignment}" id="ot34">
<af:convertNumber groupingUsed="false"
pattern="#{bindings.QcDeviceTrackingVO1.hints.Assignment.format}"/>
</af:outputText>
</af:column>
<af:column sortProperty="Createddate" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Createddate.label}"
id="c1">
<af:outputText value="#{row.Createddate}" id="ot15">
<af:convertDateTime pattern="#{bindings.QcDeviceTrackingVO1.hints.Createddate.format}"/>
</af:outputText>
</af:column>
<af:column sortProperty="Lastid" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Lastid.label}"
id="c33">
<af:outputText value="#{row.Lastid}" id="ot9">
<af:convertNumber groupingUsed="false"
pattern="#{bindings.QcDeviceTrackingVO1.hints.Lastid.format}"/>
</af:outputText>
</af:column>
<af:column sortProperty="Lportfolioitemid" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Lportfolioitemid.label}"
id="c23">
<af:outputText value="#{row.Lportfolioitemid}" id="ot23">
<af:convertNumber groupingUsed="false"
pattern="#{bindings.QcDeviceTrackingVO1.hints.Lportfolioitemid.format}"/>
</af:outputText>
</af:column>
<af:column sortProperty="Lkeycontactid" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Lkeycontactid.label}"
id="c4">
<af:outputText value="#{row.Lkeycontactid}" id="ot11">
<af:convertNumber groupingUsed="false"
pattern="#{bindings.QcDeviceTrackingVO1.hints.Lkeycontactid.format}"/>
</af:outputText>
</af:column>
<af:column sortProperty="Fullname" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Fullname.label}"
id="c22">
<af:outputText value="#{row.Fullname}" id="ot6"/>
</af:column>
<af:column sortProperty="Status" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Status.label}"
id="c16">
<af:outputText value="#{row.Status}" id="ot21"/>
</af:column>
<af:column sortProperty="Qcemployeenumber" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Qcemployeenumber.label}"
id="c6">
<af:outputText value="#{row.Qcemployeenumber}" id="ot33">
<af:convertNumber groupingUsed="false"
pattern="#{bindings.QcDeviceTrackingVO1.hints.Qcemployeenumber.format}"/>
</af:outputText>
</af:column>
<af:column sortProperty="Field3" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Field3.label}"
id="c12">
<af:outputText value="#{row.Field3}" id="ot18"/>
</af:column>
<af:column sortProperty="Empdeptfullname" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Empdeptfullname.label}"
id="c27">
<af:outputText value="#{row.Empdeptfullname}" id="ot4"/>
</af:column>
<af:column sortProperty="Comments" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Comments.label}"
id="c10">
<af:outputText value="#{row.Comments}" id="ot16"/>
</af:column>
<af:column sortProperty="Builtby" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Builtby.label}"
id="c19">
<af:outputText value="#{row.Builtby}" id="ot20"/>
</af:column>
<af:column sortProperty="Mesbuild" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Mesbuild.label}"
id="c31">
<af:outputText value="#{row.Mesbuild}" id="ot2"/>
</af:column>
<af:column sortProperty="Esn" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Esn.label}"
id="c26">
<af:outputText value="#{row.Esn}" id="ot31"/>
</af:column>
<af:column sortProperty="Imei" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Imei.label}"
id="c17">
<af:outputText value="#{row.Imei}" id="ot29"/>
</af:column>
<af:column sortProperty="Macaddress" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Macaddress.label}"
id="c32">
<af:outputText value="#{row.Macaddress}" id="ot1"/>
</af:column>
<af:column sortProperty="Brf" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Brf.label}"
id="c25">
<af:outputText value="#{row.Brf}" id="ot8"/>
</af:column>
<af:column sortProperty="Brfrev" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Brfrev.label}"
id="c3">
<af:outputText value="#{row.Brfrev}" id="ot25"/>
</af:column>
<af:column sortProperty="Dacquisition" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Dacquisition.label}"
id="c29">
<af:outputText value="#{row.Dacquisition}" id="ot7">
<af:convertDateTime pattern="#{bindings.QcDeviceTrackingVO1.hints.Dacquisition.format}"/>
</af:outputText>
</af:column>
<af:column sortProperty="Datqcmainttermdate" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Datqcmainttermdate.label}"
id="c2">
<af:outputText value="#{row.Datqcmainttermdate}"
id="ot30">
<af:convertDateTime pattern="#{bindings.QcDeviceTrackingVO1.hints.Datqcmainttermdate.format}"/>
</af:outputText>
</af:column>
<af:column sortProperty="Datqcissueddate" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Datqcissueddate.label}"
id="c5">
<af:outputText value="#{row.Datqcissueddate}" id="ot5">
<af:convertDateTime pattern="#{bindings.QcDeviceTrackingVO1.hints.Datqcissueddate.format}"/>
</af:outputText>
</af:column>
<af:column sortProperty="Itlqciteclass" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.Itlqciteclass.label}"
id="c20">
<af:outputText value="#{row.Itlqciteclass}" id="ot14"/>
</af:column>
<af:column sortProperty="RowID" sortable="true"
headerText="#{bindings.QcDeviceTrackingVO1.hints.RowID.label}"
id="c9">
<af:outputText value="#{row.RowID}" id="ot12"/>
</af:column>
</af:table>
</af:panelCollection>
</f:facet>
<f:facet name="second">
<af:panelTabbed id="pt2">
<af:showDetailItem text="Update Attributes" id="sdi3"
stretchChildren="first"/>
</af:panelTabbed>
</f:facet>
</af:panelSplitter>
</f:facet>
<f:facet name="innerToolbar"/>
<f:attribute name="brandingTitle" value="ITE Device Tracking System"/>
<f:attribute name="navSplitterPosition" value="450"/>
</af:pageTemplate>
</af:form>
</af:document>
</f:view>
</jsp:root>

Similar Messages

  • LOV view criteria missing in af:query field when AM pooling is disabled

    Hi all,
    Again, another strange behaviour with fields in af:query when AM pooling is disabled.
    I have a field with a LOV in the af:query area. This LOV has a view criteria that involves a bind variable. In the VO, the view accessor for this LOV applies the view criteria and sets the bind variable. When AM pooling is disabled, double clicking a row or clicking the OK button in the LOV window removes the where clause defined by the view criteria. When activation occurs, the bind variable still exists but the framework doesn't know where to apply it...
    Any help will be very appreciated,
    Thanks
    JDeveloper 11.1.1.3.0 with ADF BC
    We've just realised that this behaviour occurs even when pooling is enabled. So this is becoming now a serious problem.
    The scenario is as following: We have two LOVs in the search area (af:query). One of them is dependent on the other. Then, this second LOV has a view criteria and a bind variable representing the value selected for the first LOV. The query for the second LOV is filtered properly, but once a value has been selected and the LOV window dismissed, nothing is returned to the field.
    We have observed that SecondLovViewImpl.executeQueryForCollection() method executes twice:
    1. When LOV is opened: here, the bind variable is correctly setted.
    2. When a row in the LOV table is selected: here, the bind variable is reset to null.
    The log says (in Spanish):
    <OracleSQLBuilderImpl><bindParamValue> [46062] Binding null of type 12 for "bindProgram"
    <FacesCtrlLOVBinding$ListOfValuesModelImpl><_getRowFromSelectedRowKey> ADFv: No se ha encontrado ninguna fila para rowKey: [oracle.jbo.Key[P1 SP11 ]].
    I would be very grateful if somebody asked me... even for saying "this is nonsense", "this is a known bug", "cascading LOVs are not supported by af:query", or anything else... If a code snippet is required, I'll put it as well.
    Thanks in advance
    Edited by: Marge on 02-sep-2010 5:41

    Hi,
    there are two bugs associated with bind variables in successors that I am aware of. One of them is supposed to be fixed in the next patch set, another one is still open. However, both problems were found with AM pooling enabled as well, so I don't know this is the same problem (though it sounds like). If you can, I suggest to create a reproducible testcase on one of the Oracle database schema, like HR or OE, and file a bug. If you don't have a time for or access to support, send the test case in a zip file (rename ".zip" to ".unzip") to the mail Id you find in my OTN profile. However, be aware that when I file the bug then it wont be visible for you, nor can it be escalated on your behalf. Anyway, at least it would get filed
    Frank

  • LOV with custom popup in af:query

    Hi,
    We have a use case where we need to display an LOV field in Search Panel (af:query). But, the LOV in Search Panel should be displayed with a custom popup.
    Is it possible display a field in Search Panel as input LOV with custom popup ?

    Hi,
    Is it possible display a field in Search Panel as input LOV with custom popup ?
    Yes. You assign a LOV definition to the attribute that then you display in the af:query component. You can also have dependnet LOV implemented this way. However, you cannot have a custom (your own) list of value popup dialog used
    See page 8 and following in http://www.oracle.com/technetwork/developer-tools/adf/learnmore/jan2011-otn-harvest-300940.pdf
    Frank
    Edited by: Frank Nimphius on Jun 29, 2011 11:36 AM

  • How can I use a single query panel with two view criteria?

    Hi all,
    I have a requirement to allow users to change the "display mode" on a search results tree table for an advanced search page. What this will do is change the structure of how the data is laid out. In one case the tree table is 3 levels deep, in the other case it's only 2 with different data being at the root node.
    What I've done so far:
    1) I exposed the data relationship for these two ways of viewing the data in the application module's data model.
    2)  I created a view criteria in the two view objects that are at the root of the relationships, where (for simplicity sake) I'm only comparing a single field.
    This is in one view object:
    <ViewCriteria
        Name="PartsVOCriteria"
        ViewObjectName="gov.nasa.jpl.ocio.qars.model.views.PartsVO"
        Conjunction="AND">
        <Properties>... </Properties>
        <ViewCriteriaRow
          Name="vcrow23"
          UpperColumns="1">
          <ViewCriteriaItem
            Name="PartDiscrepantItemsWithIRVO"
            ViewAttribute="PartDiscrepantItemsWithIRVO"
            Operator="EXISTS"
            Conjunction="AND"
            IsNestedCriteria="true"
            Required="Optional">
            <ViewCriteria
              Name="PartDiscrepantItemsWithIRVONestedCriteria"
              ViewObjectName="gov.nasa.jpl.ocio.qars.model.views.PartDiscrepantItemsWithIRVO"
              Conjunction="AND">
              <ViewCriteriaRow
                Name="vcrow26"
                UpperColumns="1">
                <ViewCriteriaItem
                  Name="InspectionRecordNumber"
                  ViewAttribute="InspectionRecordNumber"
                  Operator="="
                  Conjunction="AND"
                  Value=""
                  Required="Optional"/>
              </ViewCriteriaRow>
            </ViewCriteria>
          </ViewCriteriaItem>
        </ViewCriteriaRow>
      </ViewCriteria>
    and this is in the other view object:
    <ViewCriteria
          Name="IRSearchCriteria"
          ViewObjectName="gov.nasa.jpl.ocio.qars.model.views.InspectionRecordVO"
          Conjunction="AND">
          <Properties>... </Properties>
          <ViewCriteriaRow
             Name="vcrow7"
             UpperColumns="1">
             <ViewCriteriaItem
                Name="InspectionRecordNumber"
                ViewAttribute="InspectionRecordNumber"
                Operator="="
                Conjunction="AND"
                Required="Optional"/>
          </ViewCriteriaRow>
       </ViewCriteria>
    3) I had a query panel and tree table auto-generated by dragging the data control for ONE of the view object data relationship that's exposed in the app module. Then I created a second query panel and tree table the same way but using the data control for the other. I'm hiding one of the query panels permanently and toggling the visibility of the tree tables based on the display mode the user chooses. Both tables have separate bindings and iterators.
    This is a portion of the page definition:
    <executables>
        <variableIterator id="variables"/>
        <searchRegion Criteria="IRSearchCriteria"
                      Customizer="oracle.jbo.uicli.binding.JUSearchBindingCustomizer"
                      Binds="InspectionRecordVOIterator"
                      id="IRSearchCriteriaQuery"/>
        <iterator Binds="InspectionRecordVO" RangeSize="25"
                  DataControl="QARS_AppModuleDataControl"
                  id="InspectionRecordVOIterator" ChangeEventPolicy="ppr"/>
        <iterator Binds="Root.QARS_AppModule.PartsVO1"
                  DataControl="QarsMasterAppModuleDataControl" RangeSize="25"
                  id="PartsVO1Iterator"/>
        <searchRegion Criteria="PartsVOCriteria"
                      Customizer="oracle.jbo.uicli.binding.JUSearchBindingCustomizer"
                      Binds="PartsVO1Iterator" id="PartsVOCriteriaQuery"/>
      </executables>
    4) I've created a custom queryListener to delegate the query event.
    This is in my advanced search jsp page:
    <af:query id="qryId1" headerText="Search" disclosed="true"
                      value="#{bindings.IRSearchCriteriaQuery.queryDescriptor}"
                      model="#{bindings.IRSearchCriteriaQuery.queryModel}"
                      queryListener="#{pageFlowScope.SearchBean.doSearch}"
                      queryOperationListener="#{bindings.IRSearchCriteriaQuery.processQueryOperation}"
                      resultComponentId="::resId2" maxColumns="1"
                      displayMode="compact" type="stretch"/>
    This is in my backing bean:
    public void doSearch(QueryEvent queryEvent) {
          String bindingName = flag
             ? "#{bindings.IRSearchCriteriaQuery.processQuery}"
             : "#{bindings.PartsVOCriteriaQuery.processQuery}";
          invokeMethodExpression(bindingName, queryEvent);
       private void invokeMethodExpression(String expr, QueryEvent queryEvent) {
          FacesContext fctx = FacesContext.getCurrentInstance();
          ELContext elContext = fctx.getELContext();
          ExpressionFactory eFactory = fctx.getApplication().getExpressionFactory();
          MethodExpression mexpr =
             eFactory.createMethodExpression(elContext, expr, Object.class, new Class[] { QueryEvent.class });
          mexpr.invoke(elContext, new Object[] { queryEvent });
    When no inspection record number (the only search field so far)  is supplied in the query panel, then it behaves correctly. Namely, the tree tables shows all search results. However, when an inspection record number is supplied the tree table that was created with the query panel in use (remember there are two query panels, one of them is hidden) shows a single result (this is correct) while the other tree table (the one with the hidden query panel that isn't in use) shows all results (this is NOT correct).
    Is what I'm trying to accomplish even doable? If so, what am I missing?
    I'm using JDeveloper 11.1.1.7
    Thanks,
    Bill

    I ended up keeping one query panel permanently visible and the other permanently hidden. When performing a search using the table that has the hidden query panel, I seed the query descriptor for the hidden query panel using the visible query panel's query descriptor and then delegate the request:
       public void doSearch(QueryEvent queryEvent) {
          String bindingName = null;
          if(isIrTableRendered()) {
             bindingName = "#{bindings.IRSearchCriteriaQuery.processQuery}";
          } else {
             seedPartsQueryDescriptor();
             bindingName = "#{bindings.PartsVOCriteriaQuery.processQuery}";
             queryEvent = new QueryEvent(partsQuery, partsQuery.getValue());
          invokeMethodExpression(bindingName, queryEvent);
       private void seedPartsQueryDescriptor() {
          ConjunctionCriterion criterion = irQuery.getValue().getConjunctionCriterion(); 
          for(Criterion criteria : criterion.getCriterionList()) {
             AttributeCriterion attributeCriteria = (AttributeCriterion)criteria;
             List values = attributeCriteria.getValues();
             String qualifiedName = attributeCriteria.getAttribute().getName();
             int indexOfDot = qualifiedName.lastIndexOf(".");
             String name = indexOfDot < 0
                ? qualifiedName
                : qualifiedName.substring(indexOfDot + 1);
             ConjunctionCriterion partsCriterion =
                partsQuery.getValue().getConjunctionCriterion();
             for (Criterion partsCriteria : partsCriterion.getCriterionList()) {
                AttributeCriterion partsAttributeCriteria =
                   (AttributeCriterion) partsCriteria;
                String partsQualifiedName =
                   partsAttributeCriteria.getAttribute().getName();
                if (partsQualifiedName.endsWith(name)) {
                   partsAttributeCriteria.setOperator(attributeCriteria.getOperator());
                   List partsValues = partsAttributeCriteria.getValues();
                   partsValues.clear();
                   for (int i = 0, count = values.size(); i < count; i++) {
                      partsValues.set(i, values.get(i));
       private void invokeMethodExpression(String expr, QueryEvent queryEvent) {
          FacesContext facesContext = FacesContext.getCurrentInstance();
          ELContext elContext = facesContext.getELContext();
          ExpressionFactory expressionFactory =
             facesContext.getApplication().getExpressionFactory();
          MethodExpression methodExpression =
             expressionFactory.createMethodExpression(elContext, expr, Object.class, new Class[] { QueryEvent.class });
          methodExpression.invoke(elContext, new Object[] { queryEvent });
    Then when the advanced/basic button is pressed for the visible query panel, I programmatically set the same mode for the hidden query panel:
       public void handleQueryModeChange(QueryOperationEvent queryOperationEvent) {
          if(queryOperationEvent.getOperation() == QueryOperationEvent.Operation.MODE_CHANGE) {
             QueryMode queryMode = (QueryMode) irQuery.getValue().getUIHints().get(QueryDescriptor.UIHINT_MODE);
             QueryDescriptor queryDescriptor = partsQuery.getValue();
             queryDescriptor.changeMode(queryMode);
             AdfFacesContext.getCurrentInstance().addPartialTarget(partsQuery);

  • View Criteria in ADF Query Panel with Table-Class Cast Exception

    Hi,
    I am getting Class Cast Exception when using view criteria for ADF Query Panel with Table. The version I am using is 11g Release 1(11.1.1.2.0)
    Here is what I did:
    1. created a view criteria on a view object
    2. all are optional
    3. all are Strings
    3. Dragged the view criteria as a query component (ADF Query panel with Query table) on to the design layout
    and the error when I clicked the Search button is:
    javax.el.ELException: java.lang.ClassCastException: oracle.jbo.common.ViewCriteriaImpl cannot be cast to oracle.jbo.ViewCriteriaRow
    at com.sun.el.parser.AstValue.invoke(AstValue.java:161)
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1289)
    at oracle.adf.view.rich.component.UIXQuery.broadcast(UIXQuery.java:115)
    at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
    at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:812)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:292)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    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:292)
    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:191)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at sni.foundation.facesextensions.filters.FoundationFilter.doFilter(FoundationFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:94)
    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.doFilter(JpsAbsFilter.java:138)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:326)
    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.run(WebAppServletContext.java:3592)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.ClassCastException: oracle.jbo.common.ViewCriteriaImpl cannot be cast to oracle.jbo.ViewCriteriaRow
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._clearFilterCriteriaRows(FacesCtrlSearchBinding.java:4549)
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._addFilterCriteria(FacesCtrlSearchBinding.java:4603)
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding.processQuery(FacesCtrlSearchBinding.java:423)
    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)
    at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
    Thanks
    Venkatesh

    Hi Frank.
    I'm using JDev 11.1.1.3.0 as you suggest the error is no longer present in the latest version.
    I can pick my query from the "Saved Search" pick list on the QueryPanel list of queries just fine, and it sets up the filter properly, but when I press the "Search" button, I get the same reported error...
    <RegistrationConfigurator><handleError> Server Exception during PPR, #1
    javax.el.ELException: java.lang.ClassCastException: oracle.jbo.common.ViewCriteriaImpl cannot be cast to oracle.jbo.ViewCriteriaRow
         at com.sun.el.parser.AstValue.invoke(AstValue.java:161)
         at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1303)
         at oracle.adf.view.rich.component.UIXQuery.broadcast(UIXQuery.java:115)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:812)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:292)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         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:191)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:94)
         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:414)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:138)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
         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.doIt(WebAppServletContext.java:3684)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.ClassCastException: oracle.jbo.common.ViewCriteriaImpl cannot be cast to oracle.jbo.ViewCriteriaRow
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._clearFilterCriteriaRows(FacesCtrlSearchBinding.java:4588)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._addFilterCriteria(FacesCtrlSearchBinding.java:4642)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding.processQuery(FacesCtrlSearchBinding.java:424)
         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)
         at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
         ... 42 more

  • Problems with Query Panel with Table

    Hi. I'm having a problems with this component in runtime. I'm using JDev 11.1.1.1 with ADFBC.
    The query uses three optional parameters. When i put a value for the first and leave other blank and execute query, following error is produced:
    03/11/2009 04:02:28 AM oracle.adfinternal.view.faces.config.rich.RegistrationConfigurator handleError
    GRAVE: Server Exception during PPR, #6
    javax.el.ELException: java.lang.ClassCastException: oracle.jbo.common.ViewCriteriaImpl cannot be cast to oracle.jbo.ViewCriteriaRow
         at com.sun.el.parser.AstValue.invoke(AstValue.java:161)
         at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1282)
         at oracle.adf.view.rich.component.UIXQuery.broadcast(UIXQuery.java:115)
    I couldn't find any reference about this. Please help....
    Thanks

    Frank,
    I am also getting the same error. The version I am using is 11g Release 1(11.1.1.2.0)
    Here is what I did:
    1. created a view criteria on a view object
    2. all are optional
    3. Dragged the view criteria as a query component (query panel with query table) on to the design layout
    and the error when I clicked the Search button is:
    javax.el.ELException: java.lang.ClassCastException: oracle.jbo.common.ViewCriteriaImpl cannot be cast to oracle.jbo.ViewCriteriaRow
         at com.sun.el.parser.AstValue.invoke(AstValue.java:161)
         at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1289)
         at oracle.adf.view.rich.component.UIXQuery.broadcast(UIXQuery.java:115)
         at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
         at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:812)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:292)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         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:292)
         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:191)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at sni.foundation.facesextensions.filters.FoundationFilter.doFilter(FoundationFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:94)
         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.doFilter(JpsAbsFilter.java:138)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:326)
         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.run(WebAppServletContext.java:3592)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.ClassCastException: oracle.jbo.common.ViewCriteriaImpl cannot be cast to oracle.jbo.ViewCriteriaRow
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._clearFilterCriteriaRows(FacesCtrlSearchBinding.java:4549)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding._addFilterCriteria(FacesCtrlSearchBinding.java:4603)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding.processQuery(FacesCtrlSearchBinding.java:423)
         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)
         at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
    Thanks
    Venkatesh

  • Failing to refresh LOV fields added in the query panel with table

    Hi.. Iam using Jdev 11.1.1.2.0
    I have a scenario like ..i need to add 2 cascaded lovs in search panel and clicking on search button, the result should be displayed in table form.
    For example..
    I have cascaded LOV fields departmentId and Firstname ,
    first name dropdown values depends on the selection of value in DepartmentIddropdown. I need to add only these 2 fields in search panel and clciking on search buton , the result should be displayed in emp table.
    I have achieved the same creating View criteria with 2 fields and dragging and dropping that as query panel with table. But my problem is First name lov is not populating based on department id. It is showing static dropdown list.
    Please help me how to achieve this ? thanks in advance.
    Regards
    Alekhya.

    Thanks for the reply.. actually if iam using those cascaded lovs in a form then we can set properties as u mentioned to refresh and display values correctly in the dropdown.
    My scenario is like i need to use those fields in query panel header
    code snippet
    <af:panelHeader text="Employees" id="ph1">
    <af:query id="qryId1" headerText="Search" disclosed="true"
    value="#{bindings.EmployeesViewCriteria1Query1.queryDescriptor}"
    model="#{bindings.EmployeesViewCriteria1Query1.queryModel}"
    queryListener="#{bindings.EmployeesViewCriteria1Query1.processQuery}"
    queryOperationListener="#{bindings.EmployeesViewCriteria1Query1.processQueryOperation}"
    resultComponentId="::resId1"/>
    </af:panelHeader>
    Iam not having any field names to add properties.
    Regards
    Alekhya

  • Cascading List of Values & Query Panel

    Hello all! ADF BC JDev 11
    I should use Cascading List of Values in Search Query Panel. I build CLOV like in this sample http://www.oracle.com/technology/obe/obe11jdev/11/adfbc_new_features/adfbc.html .
    But when i use it in Search Query Panel it does not work. :(((
    I thik that i need to set partial triger on detail LOV field. How can i do that?
    Help!
    Edited by: Victor_V_S on 23.11.2009 7:45

    Hello,
    Thanks for a nice solution.
    I have a similar situation.
    I have a query panel with auto make name list of values returning make as name and make id into the hidden view attribute.
    Based on this, i have another list of values namely auto model which is also a name field returning a name and id(hidden).
    I tried choosing the auto model name field and editing dependencies as auto make id and later auto make name as well.
    But i get this error in the Weblogic Log every time i selected the auto make LOV or auto model LOV and auto model does not filter based on auto name .
    <SimpleSelectOneRenderer><_getSelectedIndex> Could not find selected item matching value "SomeNameViewCriteria" in QueryRenderer$2[UIXEditableFacesBeanImpl, id=null]
    I have no clue how to handle this.
    Any help is greatly appreciated.
    Thanks.

  • Cascading List of values in Query Panel

    Hello,
    This is related to the thread
    Re: Cascading List of Values & Query Panel
    Hello,
    Thanks for a nice solution.
    I have a similar situation.
    I have a query panel with auto make name list of values returning make as name and make id into the hidden view attribute.
    Based on this, i have another list of values namely auto model which is also a name field returning a name and id(hidden).
    I tried choosing the auto model name field and editing dependencies as auto make id and later auto make name as well.
    But i get this error in the Weblogic Log every time i selected the auto make LOV or auto model LOV and auto model does not filter based on auto name .
    <SimpleSelectOneRenderer><_getSelectedIndex> Could not find selected item matching value "SomeNameViewCriteria" in QueryRenderer$2UIXEditableFacesBeanImpl, id=null
    I have no clue how to handle this.
    Any help is greatly appreciated.
    Thanks.

    Hi,
    I have de same problem.
    I think that it could be a bug, cause if i check "show in list" option in the View criteria the messages are no prompted, and are prompted with that option unchecked.
    Although there's no problem during execution.
    Regards!

  • Issue in query panel LOV order by

    Hi All,
    I am using Jdev 11.1.1.6 version and Weblogic 10.3.6 version. I am facing an issue which is explained below. I have a screen with query panel and results table.
    For Ex. Say i have Name in the results table and search paramater as well. Created Name with the help of a view object with search parameter as view criteria with Order by Name. Name search paramater is created as SelectOneChoice(LOV) . Also from my first page Add button can be clicked. On clicking the button new Name value can be added. On successfully saving the New value it is getting refreshed in the table results and displaying in the correct order. But in LOV the latest value is getting added at the Last. Rest of the values are Ordered by Name.
    Is it possible to display the values in the correct order in LOV after new values are getting added?
    I have tried the following.
         1. Refreshing the View Object with Search Criteria.
         2. Refreshing the LOV View Object.
         3. Refreshing the Whole Page.
    4. Order by in View Accessor.
    5. Refreshing the View Accessor.
    Note: When i totally reload the page again then it is getting refelected correctly.
    Thanks.
    Regards,
    Deena.

    Maybe you can try to reset QueryModel, something like this:
    QueryModel queryModel = queryComponent.getModel(); 
    QueryDescriptor queryDescriptor = queryComponent.getValue(); 
    queryModel.reset(queryDescriptor); 
    queryComponent.refresh(FacesContext.getCurrentInstance());
    AdfFacesContext.getCurrentInstance().addPartialTarget(queryComponent);Sorry, I don't have any more ideas :(
    Dario

  • Query Panel LOV Selecting first value

    Hi all,
    I created a LOV to use for one of my VOs. I created it as an Input Text with List of Values. I updated the AF Table using this view to use the new list of values and it works correctly. However in the query panel for the table when you try and select a value from the LOV it always chooses the first record in the LOV no matter which one you select. The query panel is implemented as a separate pop-up/dialog for the AF table.
    I'm not sure why it is working fine on the actual table but not working correctly in the query panel.
    Any help is appreciated.
    Thanks
    Jdev 11.1.2.2.0

    Found the solution to this one.. I did not specified which were the key columns in the VOs that I created to reference in the LOV.
    Once I specified the key column in the VO, the LOV returned the correct value in the Query Panel too.

  • Use Of LOV In Query Panel

    Hi All,
    I would like to have LOV in query panel one which is created using view critiria.
    Kindly let me know the best way to implement this one...............
    Regards
    Anandkumar S.M.

    Check this:
    http://blogs.oracle.com/shay/2009/12/adf_query_with_parameters_and_1.html
    Thanks,
    Navaneeth

  • LOV in the Query Panel is not Working

    Hi Everyone,
    I dont see the LOV working in the Query Panel but it works in the table region, I am able to open the LOV and search some value and when i say ok it wont return any value... Do anyone have idea on that?
    Thanks

    Can anyone help me on this? Am really confused....
    Thanks..

  • Af:query component with cascading Lov's

    Hi All,
    I have Cascading LOV's model setup in Business Components and they work fine in a form or table
    but they are not working inside af:query component as there is no autoSubmit attribute on the query component itself
    can someone help me to resolve this
    Thanks in Advance

    I have found a way
    using bindings attribute of the query component it was able to go to backing bean on any LOV change in there we need to manually refresh the bindings then it works

  • Cascading LOV always returns first row in af:query

    HI
    JDEV 11.1.1.3.0
    A strange thing is happening with my cascading LOV which is input text with LOV.
    I have a read only table with a query section. I then also bring up any of the tables rows in a popup with single record view where the row is then in an af:form for inserting and updating.
    Both the af:query and af:form have the cascaing LOV in them.
    When testing the cascading LOV in the BC Browser it works fine. When I use it in the popup in the af:form record it works fine. But in the af:query section, no matter which row I choose in the LOV, it always returns the 1st row of the LOV back to my input text component.
    Has anyone experienced this...any ideas?
    Thanks,
    Mario

    Aha...and the above log message lead me to the solution!! :-)
    The VO is based on an Oracle data dictionary view, DBA_TAB_COLUMNS. When you create the read only VO, by default it does not create any of the attributes as "key" attributes, because the oracle view has no primary key.
    Setting owner, tableName and columnName as key attributes solved this issue, now my cascading LOV works in the BC Tester, af:query component and my af:form component.
    Regards,
    Mario

Maybe you are looking for