ADF query panel with table, adding new search fields dynamically

I am a beginner very new to ADF world. I have a ADF query panel with table which has its source from a ViewCriteria. I need to add a new search field on the form dynamically based on the user's need. Assume I am using a Employee table and I have search "employee ID" as one field in the form, upon clicking a add button in the form I need to have a another "employee ID" field appears along with the already existing one.
I tried to add the condition in ViewCriteria but do not know how to add it ?
Could some one pls address how it can be approached ?

User, please always tell us your jdev version.
Well, this use case need some thinking to be done. What do you want to archive with adding a new query field to the panel? As you said you already have one field for employeeId and now, on a click on a button, you add another one. How would the resulting query work with the new field? Should it use 'and' to concatenate the query or should it use 'or'?
I suggest that you use the ADF Riche Client Demo (http://jdevadf.oracle.com/adf-richclient-demo/faces/index.jspx) select the Query node and then select 'af:query'. This shows you what is possible otu of hte box using the af:query component. You can add fields to existing queries in advanced mode (e.g. use system query 5, which starts with an empty panel and allows you to add fields).
Once you understand how this works you may come back with a more detailed use case description or you have found the solution already. Read the documentation on af:query along with trying otu the component.
Timo

Similar Messages

  • 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

  • BPM Payload bind to adf query panel with table

    hi guys,
    i have a requirement to process all result row in the table to my bpm process.
    i have a bpm taskflow and already defined the payload xml.
    in the taskflow UI, i hv a adf query panel with table from a criteria View object.
    how can i bind the search result to the bpm payload ?
    i tried to bind it directly, but it turns out error.
    or do you hv a better approach to this requirement, so i can add/remove row in table dynamically ?
    i use bpm 11.1.1.6
    thanks before.

    Could you give some more details ?
    Do you require that all the rows in the ADF based results table are passed on to the BPM payload ?

  • "ADF Query panel with table" on a mobile device?

    In an app made for a mobile device, I would like to make a simple screen or set of screens that has a similar features as the "ADF Query panel with table" you get when dropping the All Queriable Attributes on a normal form.
    Can anyone point me to a tutorial or help file that can get me started? Or is this something needing to be built from scratch?

    Thanks, but I've already gone through that tutorial and while it does cover the basics it doesn't go into any detail nor provide a 'next step' reference. It also is missing a couple of steps in the middle to make it work right (unless I missed something.)
    It covers making a quick edit screen and a browse records screen but no search type functionality.
    All of the tutorials I've gone through from Oracle so far seem to be at that same level. They provide a high level overview of what you can accomplish but there is no followup, next step or references.
    I'm starting to feel like the whole process for learning ADF with JDeveloper is
    1. Look at the shiny things you can make with the step by steps.
    2. ....
    3. Now your an expert (Profit)
    Or, of course, pay thousands of dollars to take a class from Oracle.
    I'm not against taking some training when needed, but since our team is still in the process of choosing a framework and IDE, I am looking for a bit more on the front end before I commit us.
    Back on topic... I'm sure I can bang out a couple screens to make this work, but I'm not sure its worth the effort at this point. If I have to go that route I may as well knock out an Android app in Eclipse.

  • Capturing data from query panel built used "ADF Query panel with table ?

    Hi All,
    I have a Search page built with a view Criteria.
    I enter the user_name in the query panel and hit Search and the result panel shows the results.
    Now If I gave a user_name which does not have any record in the VO, no data is displayed.
    At this point I want to capture the user_name from the query panel and on the click of a button ("Add" button I have created for Adding Records if not present) want to navigate to a different Add page .
    So how to capture the user_name from the query panel.
    Any pointers ??
    I am using Jdev 11.1.1.4.0
    Thanks
    Sumit Yadav

    Hi , I tried using the impll java file and i was able to get the handle to the bind params ..
    The sampl code is ..
    ViewObjectImpl userRespVO=this.getSystemAdministrationUserResponsibilitySearch1();
    SystemAdministrationUserResponsibilitySearchImpl provide =(SystemAdministrationUserResponsibilitySearchImpl)userRespVO;
    String userName1=provide.getbind_UserName();
    Thnanks
    Sumit Yadav
    Edited by: Sumit Yadav on Jul 7, 2011 9:17 AM

  • Query panel with table not working in taskflow region

    I've created an adf query panel with table(using all queriable attributes criteria) in a page fragment and at design time it's showing properly. But when inside a region in a jspx page, the search, save and reset buttons of the query panel are not rendering when i'm running the page. Please help.

    Its hard to give any solution without any information like your JDev version, what happens if you drop the query directly in the jspx page, what exception you get in console etc.
    -Arun

  • ADF Query Panel with Tree Table -- Add Fields

    I created ADF Query Panel with Tree Table using JDeveloper 11G. Under Advance Search, Add Fields pull down only list the fields in the master table. My questions are,
    1) Can I search fields in detail table? If yes, how can I do it?
    2) How can I customized this pull down list? Currently it just show the entire view of master table with unnecessary id type data.
    Thanks in advance.
    Edited by: kxc on Nov 9, 2009 9:21 AM

    1) Can I search fields in detail table? If yes, how can I do it?
    Are there anyway to search the second level node?You can. But you need to evaluate if the arrangement works for you.
    I assume you have a view link from the master to detail VO.
    To do so, in your master view criteria (the one which you use in the query panel), shuttle the attributes of your detail VO (in master attributes list, you'l see the detail view link accessor - on selecting this, the detail atteributes are available to you)
    In the Add Fields, it shows as student_id AND student_name. I was unable to delete the student_id field in the view since it is PKYou can set its 'display' UI hint to 'hide' in your VO.

  • Get search criteria from query panel with table

    hi guys,
    i have a query panel with table that i created from a VO.
    i use the all queryable attribute in the generated DataControl.
    i hv a requirement to update the database value with the same search criteria with the query panel.
    but i want the submitted search criteria, not only written in the query panel criteria.
    i'm using JDEV & BPM 11.1.1.6
    i've already tried to get the criteria using
    QueryModel queryModel = getQueryPanel().getModel(); 
    QueryDescriptor queryDescriptor = queryModel.getSystemQueries().get(0);             
    ConjunctionCriterion cc = queryDescriptor.getConjunctionCriterion();
    for(int i=0;i<cc.getCriterionList().size();i++){
         AttributeCriterion ac = (AttributeCriterion)cc.getCriterionList().get(i);
         System.out.println("DEBUG LABEL : " + ac.getAttribute().getLabel());
         System.out.println("DEBUG VALUE : " + ac.getValues().get(0));    
    }        but it only get the value that filled in the search criteria input text, not the criteria that already been searched and viewed in the table
    my other question is, can i override the search button function ? so i can add a custom method to save the search criteria to my temporary variable.
    thanks
    Edited by: Juw on May 29, 2013 2:05 AM

    Is this https://blogs.oracle.com/jdevotnharvest/entry/how-to_tell_the_viewcriteria_a_user_chose_in_an_afquery_component or http://www.learnoracleadf.com/2013/05/programatic-handle-to-adf-query.html what you are looking for?
    Timo

  • ADF Query Panel with Tree Table

    I am using JDev 11g to create ADF Query Panel withTree Table. Basically it's working on data part.
    But on presentation part it looks awkward. The tree table's master row and child row share first row for column name
    ColumnMaster1   ColumnMaster2   ColumnMaster3    ColumnChild1   ColumnChild2   ColumnChild3
    So when tree closed, the master side filled. Child side empty. When tree opened, master side empty and child side filled.
    Are there any way, to make it inline looking with it's own column name for child?
    Thanks in advance.
    Edited by: kxc on Oct 30, 2009 9:19 AM

    Hi,
    the bug got closed already as not a bug. Instead this is filed as a documentation bug now, saying that tree tables don't support wrapped columns. So the bottom line is that three tables can only have a single leading column. If you need to show multiple information in there then I guess you will concatenate this
    Frank

  • 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

  • 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

  • Adding new search field in IC web client

    Hi experts,
    I need to add two search fields search term1 and search term2 in IC web client for the view 'search for Employees'  as that is present in GUI with transaction BP.Please send me step by step details how to do that.
    Thanks in advance
    Koustav

    Hi Koustav,
    If you have added an append to the BuilEmpSearch BOL object, than the parameters are added to the query_service automaticaly.
    Here is an example of the eh_OnSearch method for the search on business partners. (B2C scenario). The principle is the same. You can add you pre-search checks here. Don't fire the query before all required data is in the query_search object. (standard all parameters from the BuilEmpSearch object are in there).
    METHOD eh_onsearch .
    * 2. Business Partner Search
        lv_wrapper = typed_context->SearchCustomer->get_collection_wrapper( ).
        query_service ?= lv_wrapper->get_current( ).
        lv_country =
              query_service->IF_BOL_BO_PROPERTY_ACCESS~GET_PROPERTY_AS_STRING( 'COUNTRY' ).
        IF NOT lv_country IS INITIAL.
          CALL METHOD query_service->if_bol_bo_property_access~set_property
            EXPORTING
              iv_attr_name = 'COUNTRY_FOR_TEL'
              iv_value     = lv_country.
        ENDIF.
    * MVNI(EX00885)21022006: Begin of Insert
        lv_firstname =
              query_service->IF_BOL_BO_PROPERTY_ACCESS~GET_PROPERTY_AS_STRING( 'MC_NAME2' ).
        lv_lastname =
              query_service->IF_BOL_BO_PROPERTY_ACCESS~GET_PROPERTY_AS_STRING( 'MC_NAME1' ).
        lv_insz =
              query_service->IF_BOL_BO_PROPERTY_ACCESS~GET_PROPERTY_AS_STRING( 'ZZINSZ' ).
        lv_birthdate =
              query_service->IF_BOL_BO_PROPERTY_ACCESS~GET_PROPERTY_AS_STRING( 'ZBIRTHDATE' ).
        replace all occurrences of '.' in lv_insz with ''.
        replace all occurrences of '-' in lv_insz with ''.
        condense lv_insz no-gaps.
    * MVNI(EX00885)21022006: End of Insert
    *     check customizing for role
          IF NOT ls_profile-customer_role IS INITIAL.
            CALL METHOD query_service->if_bol_bo_property_access~set_property
              EXPORTING
                iv_attr_name = 'ROLE'
                iv_value     = ls_profile-customer_role.
          ENDIF.
    *     limit search to maximum number of hits.
          CALL METHOD query_service->if_bol_bo_property_access~set_property
            EXPORTING
              iv_attr_name = 'MAX_HIT'
              iv_value     = lv_bupacontroller->max_hits.
    *     fire query
            TRY.
                bo_col        ?= query_service->get_query_result( ).
              CATCH cx_sy_ref_is_initial.
            ENDTRY.
            entity_col ?= bo_col.
    * set result into context
      typed_context->customers->set_collection( entity_col ).
    * navigate
      IF entity_col->if_bol_bo_col~size( )  EQ 1.
        op_showbupa( ).
      ELSEIF entity_col->if_bol_bo_col~size( ) GT 1.
        op_listcustomers( ).
        if entity_col->if_bol_bo_col~size( ) eq lv_bupacontroller->max_hits.
          lv_msgsrv = cl_bsp_wd_message_service=>get_instance( ).
          lv_max_hit = lv_bupacontroller->MAX_HITS .
          lv_msgsrv->add_message( iv_msg_type   = 'I'
                                iv_msg_id     = 'CRM_IC_APPL_UI_BPID'
                                iv_msg_number = '009'
                                IV_MSG_V1      = lv_max_hit  ).
        endif.
      ELSE.
        lv_msgsrv = cl_bsp_wd_message_service=>get_instance( ).
        lv_msgsrv->add_message( iv_msg_type   = 'I'
                              iv_msg_id     = 'CRM_IC_APPL_UI_BPID'
                              iv_msg_number = '011' ).
    *   clear result list
        view_manager->navigate(
                   SOURCE_REP_VIEW = rep_view
                   OUTBOUND_PLUG   = 'showEmpty' ).
      ENDIF.
    ENDMETHOD.
    In the class CL_BUIL_EMP (which has the superclass CL_BUIL_HEADER) you need to do a repair (changing of a standard SAP class) of method get_result_table.
    What I have done is I've read the parameters that were added (automatically) to the query_service and added them to my FM to do the search.
    You also need to take a copy of the BUPA_SEARCH_2 FM and add the parameters as importing parameters. Now you can add your search logic to the FM.
    Here is the coding of the GET_RESULTS_TABLE:
    METHOD get_result_table.
    *    CHANGES BY MVNI ON 03/07/2007.
    *    MARKER: MVNI(EX00885)03072007
    *    REASON: SPAU Upgrade 5.0.
    *    CHANGES BY MVNI ON 12/02/2008.
    *    MARKER: MVNI(EX00885)12022008
    *    REASON: CLM
      DATA:   ls_header_search TYPE crmst_header_search_buil,
              lv_mc_name1      TYPE bu_mcname1,
              lv_mc_name2      TYPE bu_mcname2,
              ls_address       TYPE bupa_addr_search,
              ls_fax_data      TYPE bapibus1006_fax_data,
              lt_return        TYPE TABLE OF bapiret2,
              lv_xaddrversion  TYPE abap_bool,
              lv_no_hits       TYPE i.
      DATA:   lt_but100        TYPE TABLE OF but100.
      DATA:   lv_role_category TYPE          bu_role.
      FIELD-SYMBOLS: <fs_result> LIKE LINE OF et_bupa_search_result.
    * MVNI(EX00885)03072007: Begin of Insert
      DATA: iv_birthdate               TYPE bu_birthdt,
            iv_insz                    TYPE ZBU_00000000,
            lv_insz(15)                TYPE c,
            lv_bednr(15)               TYPE c,
            lv_vestnr(15)              TYPE c,
            ls_parameters TYPE crmt_name_value_pair.
    * MVNI(EX00885)03072007: End of Insert
    * MVNI(EX00885)03072007: Begin of Insert
      CONSTANTS: C_IDENTIFICATIONTYPE TYPE BU_ID_TYPE VALUE 'ZINSZ'.
    * MVNI(EX00885)03072007: End of Insert
    * define structure we use for input parameters
      MOVE-CORRESPONDING is_parameters TO ls_header_search.
      MOVE-CORRESPONDING is_parameters TO ls_address.
      MOVE-CORRESPONDING is_parameters TO ls_fax_data.
      IF ls_header_search-fax IS NOT INITIAL.
        IF ls_fax_data-country_for_fax IS NOT INITIAL.
          ls_fax_data-fax_no = ls_header_search-fax.
        ELSE.
          ls_fax_data-fax_no = ls_header_search-fax.
          ls_fax_data-country_for_fax = ls_header_search-country.
        ENDIF.
      ENDIF.
      lv_mc_name1 = ls_header_search-mc_name1.
      lv_mc_name2 = ls_header_search-mc_name2.
    ** MVNI(EX00885)03072007: Begin of Replace
    *  LOOP AT is_parameters INTO ls_parameters.
    *  ENDLOOP.
    *        ls_parameters-name = 'BIRTHDATE'.
    *          MOVE   ls_parameters-value TO iv_birthdate.
    *        ELSEIF ls_parameters-name = 'ZZINSZ'.
    *          MOVE   ls_parameters-value TO iv_insz.
    *        endif.
    * Remove all allowed non-digits
            lv_insz = ls_header_search-zzinsz.
            replace all occurrences of '.' in lv_insz with space.
            replace all occurrences of '-' in lv_insz with space.
            condense lv_insz no-gaps.
            ls_header_search-zzinsz = lv_insz.
    * MVNI(EX00885)03072007: End of Replace
    * MVNI(EX00885)12022008: Begin of insert
            lv_bednr = ls_header_search-zzbednr.
            replace all occurrences of '.' in lv_bednr with space.
            replace all occurrences of '-' in lv_bednr with space.
            condense lv_bednr no-gaps.
            ls_header_search-zzbednr = lv_bednr.
            lv_vestnr = ls_header_search-zzvestnr.
            replace all occurrences of '.' in lv_vestnr with space.
            replace all occurrences of '-' in lv_vestnr with space.
            condense lv_vestnr no-gaps.
            ls_header_search-zzvestnr = lv_vestnr.
    * MVNI(EX00885)12022008: End of insert
    * check if international address versions are active:
      IF address_version_id IS INITIAL.
        CALL METHOD check_for_int_add_versions( ).
      ENDIF.
    * check for customizing in IC WebClient
      IF ls_header_search-no_trex IS INITIAL.
        ls_header_search-no_trex = cl_crm_buil_services=>check_for_trex( ).
      ENDIF.
      CLASS crm_saf_get_settings DEFINITION LOAD.
      IF NOT address_version_id IS INITIAL.
        lv_xaddrversion = abap_true.
      ENDIF.
    * Optimization for combined search, Refer note 962864
      IF ls_address-country IS NOT INITIAL
         AND ls_address-city1 IS INITIAL
         AND ls_address-post_code1 IS INITIAL
         AND ls_address-region IS INITIAL
         AND ls_address-street IS INITIAL
         AND ls_address-house_num1 IS INITIAL.
        IF ls_header_search-telephone IS NOT INITIAL OR
           ls_header_search-email IS NOT INITIAL.
          CLEAR ls_address-country.
        ENDIF.
        IF ls_header_search-email IS NOT INITIAL.
          CLEAR ls_header_search-country_for_tel.
        ENDIF.
        IF ls_fax_data-fax_no IS INITIAL.
          CLEAR ls_fax_data-country_for_fax.
        ENDIF.
      ENDIF.
    * MVNI(EX00885)03072007: Begin of Replace
    *  CALL FUNCTION 'TREX_BUPA_SEARCH'
    *    EXPORTING
    *      iv_application     = crm_saf_get_settings=>gc_app_name_bp
    *      iv_telephone       = ls_header_search-telephone
    *      iv_email           = ls_header_search-email
    *      iv_url             = ls_header_search-url
    *      is_address         = ls_address
    *      iv_mc_name1        = lv_mc_name1
    *      iv_mc_name2        = lv_mc_name2
    *      iv_fax_data        = ls_fax_data
    *      iv_partner         = ls_header_search-partner
    *      iv_partnerrole     = ls_header_search-role
    *      iv_country_for_tel = ls_header_search-country_for_tel
    *      iv_category        = ls_header_search-category
    *      iv_max_partners    = ls_header_search-max_hit
    *      iv_xaddrversion    = lv_xaddrversion
    *      iv_not_trex        = ls_header_search-no_trex
    *    TABLES
    *      et_search_result   = et_bupa_search_result
    *      et_return          = lt_return.
    * MVNI(EX00885)12022008: Begin of insert
       CALL FUNCTION 'ZBUPA_SEARCH_2'
         EXPORTING
           IV_TELEPHONE                 = ls_header_search-telephone
           IV_EMAIL                     = ls_header_search-email
           IV_URL                       = ls_header_search-url
           IS_ADDRESS                   = ls_address
           IV_MC_NAME1                  = lv_mc_name1
           IV_MC_NAME2                  = lv_mc_name2
           IV_PARTNER                   = ls_header_search-partner
           IV_PARTNERROLE               = ls_header_search-role
    *   IV_X_ALL_PARTNERROLES        =
    *   IV_PARTNERROLE               =
    *   IV_SORT1                     =
    *   IV_SORT2                     =
    *   IV_COUNTRY_FOR_TEL           =
    *   IV_CATEGORY                  =
           IV_FAX_DATA                  = ls_fax_data
           IV_XADDRVERSION              = lv_xaddrversion
           IV_MAX_PARTNERS              = ls_header_search-max_hit
    *   IV_NATION_VERS               =
    *   IV_OLD_ROLE_PROCESS          =
    *   IV_NO_SEARCH_FOR_CONTP       =
    *   IV_VALID_DATE                = SY-DATLO
    *   IV_TIME_INDEPENDENT          =
           IV_RRNR                      = ls_header_search-zzinsz
           IV_BIRTHDATE                 = ls_header_search-zbirthdate
           IV_BEDNR                     = ls_header_search-zzbednr
           IV_VESTNR                    = ls_header_search-zzvestnr
         TABLES
           ET_SEARCH_RESULT             = et_bupa_search_result
           ET_RETURN                    = lt_return.
    * MVNI(EX00885)12022008: End of insert
    * MVNI(EX00885)12022008: Begin of delete
    *    CALL FUNCTION 'ZBUPA_SEARCH'
    *     EXPORTING
    *       IV_TELEPHONE                 = ls_header_search-telephone
    *       IV_EMAIL                     = ls_header_search-email
    *       IV_URL                       = ls_header_search-url
    *       IS_ADDRESS                   = ls_address
    *       IV_MC_NAME1                  = lv_mc_name1
    *       IV_MC_NAME2                  = lv_mc_name2
    *       IV_PARTNER                   = ls_header_search-partner
    *       IV_PARTNERROLE               = ls_header_search-role
    *       IV_SORT1                     =
    *       IV_SORT2                     =
    *       IV_COUNTRY_FOR_TEL           =
    *       IV_CATEGORY                  =
    *       IV_FAX_DATA                  = ls_fax_data
    *       IV_XADDRVERSION              = 'X'
    *       IV_MAX_PARTNERS              = '50'
    *       IV_NATION_VERS               =
    *       IV_NO_SEARCH_FOR_CONTP       =
    *       IV_BIRTHDATE                 = ls_header_search-zbirthdate
    *       IV_INSZ                      = ls_header_search-zzinsz
    *     TABLES
    *       ET_SEARCH_RESULT             = et_bupa_search_result
    *       ET_RETURN                    = lt_return.
    * MVNI(EX00885)03072007: End of Replace
    * MVNI(EX00885)12022008: End of delete
      IF lt_return IS NOT INITIAL.
    * no error handling
      ENDIF.
    * filter out real employees if role is not 'Employee'
    * (and if category is not specified)
      IF NOT et_bupa_search_result[] IS INITIAL
         AND ls_header_search-category IS INITIAL
         AND NOT ls_header_search-role IS INITIAL.
    * function module has a buffer
        CALL FUNCTION 'BUCP_EMPLOYEE_ROLE_GET'
          IMPORTING
            e_employee_role = lv_role_category.
        IF NOT ls_header_search-role EQ lv_role_category.
          SELECT * FROM but100 INTO TABLE lt_but100
                               FOR ALL ENTRIES IN et_bupa_search_result
                               WHERE partner = et_bupa_search_result-partner
                               ORDER BY PRIMARY KEY.
          LOOP AT et_bupa_search_result ASSIGNING <fs_result>.
            READ TABLE lt_but100 WITH KEY partner = <fs_result>-partner
                                 TRANSPORTING NO FIELDS
                                 BINARY SEARCH.
            IF sy-subrc NE 0.
              CONTINUE.
            ENDIF.
            DELETE lt_but100 WHERE partner = <fs_result>-partner
                             AND   rltyp   = lv_role_category.
            READ TABLE lt_but100 WITH KEY partner = <fs_result>-partner
                                 TRANSPORTING NO FIELDS
                                 BINARY SEARCH.
            IF sy-subrc NE 0.
              DELETE et_bupa_search_result.
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
    * if TREX is disabled and addressversions are active -> MAX_HIT does not work
    * workaround:
      DESCRIBE TABLE et_bupa_search_result LINES lv_no_hits.
      IF lv_no_hits GT ls_header_search-max_hit.
        ev_max_hits = ls_header_search-max_hit.
      ENDIF.
    ENDMETHOD.
    Hope this helps!
    Kind regards,
    Micha

  • Adding new search fields in identifying accont in CIC Web client

    Hi All,
    How do I do to add a new field (not in BOL) to search for in the identiyng account in CRM 4.0 Interaction Center Web client.
    We have extended the BOL with the new field and add it to the BSP for BupaSearchB2B, But what and where do I add functionality to also actually use the field content when searching for business partners.

    Hi jan
    I am facing the same problem we are adding one field to identify account in CRM 4.0 IC WEBCLIENT , field name is CIF NUMBER (bu_sort1 or bpext)  , I identified that it is not an standard BOL field , can you please update me how you added the new  field to bol structure and what is the follow up process to provide complete functionality like the existing fields , Please extend your help regarding this field addition , it is very urgent
    this is my mail id [email protected]
    Warm regards
    bms

  • Adding new search fields in BP search of IC webclient

    Hi ,
    I am new in BSP and IC Webclient. Can anyone give me suggetion about how to add new fields in BP search in IC webclient and incorporate the new fields in the search process ?
    Thanks in advance.
    Pratip

    Use the transaction EEWB for modifying the search structure.

  • Unable to view adf query panel in jsf page

    hi i cannot view the Query > ADF Query Panel when i click the query button to load the page but i can see the page in design. i can only see the search with drop down arrow but cannot see other part of ADF Query Panel . i did this by 9.Expand the EmpDetails1 data control and expand the Named Criteria node below it. Select All Queriable Attributes and drag it into the new query.jsf page. Create it as a Query > ADF Query Panel.
    Edited by: user603350 on 2011/12/08 12:04 PM

    the query button am talking about is the button i click to navigate to the other page(jsf) the page does not display the Query > ADF Query Panel.
    am doing this tutorial http://docs.oracle.com/cd/E18941_01/tutorials/jdtut_11r2_55/jdtut_11r2_55_3.html am having problem in step 9 .Expand the EmpDetails1 data control and expand the Named Criteria node below it. Select All Queriable Attributes and drag it into the new query.jsf page. Create it as a Query > ADF Query Panel. i can view the ADF Query Panel in design but when i run the application and click the navigation button the page does not show the full ADF Query Panel it only show the search with drop down arrow
    Edited by: user603350 on 2011/12/08 8:39 PM

Maybe you are looking for