JDev 10.1.2 / ADF UIX: Approach to render data in levels/groups

Hi guys, I'm looking for ideas on how to use ADF (UIX and BO) to render (and let the user work with) a structure of 3 tables which have a parent->child->child-of-the-child relationship.
The need is to show a table with the parent in one row and below of it all its children and below of each children its own children. Also, the lowest level rows have numeric data which have to be summarized by the parent and so on upwards; and the lowest level rows should be selectable for edition in another page, and after edition return to the table.
Is the recommended approach to use the hGrid to do this?
Or should I use plain JSP and customized tags to achieve this (for easiness)?
Are there any other options?

Solved it!! :-)
In the UIX page I check for the proxy in the event result, if it is there I take it, otherwise I take it from bindingcontext. Is this the right way to do it? Here is the UIX code:
                        <hGrid id="pptoHGrid" alternateText="No items were found"
                               treeData="${bindings.bindingContext['tree']}">
                          <boundAttribute name="proxy">
                            <if>
                              <comparison type="equals">
                                <null/>
                                <dataObject default="${uix.eventResult.hGridProxy}"/>
                              </comparison>
                              <dataObject default="${bindings.bindingContext['hGridProxy']}"/>
                              <dataObject default="${uix.eventResult.hGridProxy}"/>
                            </if>
                          </boundAttribute>Greets,
Fernando

Similar Messages

  • JDev 10.1.2 ADF UIX - Help required in wrinting java code

    Ok here is wher iam stuck.
    I have used a method which is used to run search form.
    That is the field name to be searched and the value is sent into this method.
    The uix page is a master detail page.
    So from the UIX page the user selects the field and the value, which is then sent to the customised method of mine.
    The method code is as given below.
    public final void setCourseRegistrationSearch(String p_field, String p_value)
    ViewObject REGDETAILVO=findViewObject("RegistrationDetailView4");
    ViewObject REGMASTERVO=findViewObject("RegistrationMasterView1");
    if (p_value.equalsIgnoreCase(""))
    String whereclause="1=1";
    REGDETAILVO.setWhereClause(whereclause);
    REGDETAILVO.executeQuery();
    else
    if( (p_field.equalsIgnoreCase("mod_name")))
    String whereclause="reg_master_id in
    (select reg_master_id from registration_detail where "
    p_field"LIKE '%"+p_value+"%')";
    REGMASTERVO.setWhereClause(whereclause);
    REGMASTERVO.executeQuery();
    if((p_field.equalsIgnoreCase("bt_description")))
    String whereclause= "reg_master_id in
    (select reg_master_id from registration_detail where bt_id in
    (select bt_id from batch_timing where"
    p_field" LIKE '%"+p_value+"%'))";
    REGMASTERVO.setWhereClause(whereclause);;
    REGMASTERVO.executeQuery();
    Now when I use the first if statement where mod_name is filtered it works fine.
    When I use the second option for bt_description its doesn't work.
    The error i get is an oracle error which says missing right parenthesis.
    So I checked through the debugger for the whereclause String.
    There I found that the string gets trimmed to...
    (select reg_master_id from registration_detail where bt_id in
    (select bt_id from b
    hence the error.
    Could someone tell me why this is happening? Is there a workaround method for this?
    Would be of great help.
    Regards,
    Vineet

    Solved it!! :-)
    In the UIX page I check for the proxy in the event result, if it is there I take it, otherwise I take it from bindingcontext. Is this the right way to do it? Here is the UIX code:
                            <hGrid id="pptoHGrid" alternateText="No items were found"
                                   treeData="${bindings.bindingContext['tree']}">
                              <boundAttribute name="proxy">
                                <if>
                                  <comparison type="equals">
                                    <null/>
                                    <dataObject default="${uix.eventResult.hGridProxy}"/>
                                  </comparison>
                                  <dataObject default="${bindings.bindingContext['hGridProxy']}"/>
                                  <dataObject default="${uix.eventResult.hGridProxy}"/>
                                </if>
                              </boundAttribute>Greets,
    Fernando

  • Display CLOB value in multiple rows in ADF UIX

    Hi,
    I have an ADF UIX application that uses data that are stored in a CLOB column in an Oracle Database.
    The table data is presented in a simple table in page1.uix, I use BC4J for accessing the Database and Oracle JDeveloper 9.0.5.2.
    The problem is that the CLOB data appear properly (meaning the rows appear OK) only in a frame (messageTextInput element) of a predefined size and if I change the element into a styledText or a formattedText the frame will not appear, but all the CLOB characters appear in a single row.
    Does anyone know how I can present the CLOB text data in a UIX page, without having a frame around the text, and at the same time keep the CLOB text in multiple rows?

    There's no completely trivial way. You'd have to do a bit of extra processing of your CLOB data. The most straightforward work to do is to convert "\n" into "<br>", and then pass that into a <formattedText>.

  • ADF UIX deployment error

    I created a very simple application in ADF UIX which just displays data from a database table. It runs perfectly when i run it locally. I then deployed it on to Application Server OC4J_Portal. I have updated ADF Libraries manually...and still getting the below mentioned errors..
    500 Internal Server Error
    oracle.jbo.common.ampool.ApplicationPoolException: JBO-30003: The application pool
    (app.model.AppModuleLocal) failed to checkout an application module due to the following
    exception:
    JBO-30003: The application pool (app.model.AppModuleLocal) failed to checkout an application module
    due to the following exception:
    at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:1772)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule
    (ApplicationPoolImpl.java:2611)
    at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:441)
    at oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule(HttpSessionCookieImpl.java:230)
    at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:411)
    at oracle.jbo.common.ws.WSApplicationModuleImpl.createWorkerApplicationModule
    (WSApplicationModuleImpl.java:2457)
    at oracle.jbo.common.ws.WSApplicationModuleImpl.getCustomApplicationModule
    (WSApplicationModuleImpl.java:2416)
    at oracle.adf.model.bc4j.DCJboDataControl.setDataProvider(DCJboDataControl.java:1429)
    at oracle.adf.model.bc4j.DCJboDataControl.setApplicationModule(DCJboDataControl.java:200)
    at oracle.adf.model.bc4j.DCJboDataControl.(DCJboDataControl.java:171)
    at oracle.jbo.uicli.binding.JUApplication.(JUApplication.java:90)
    at oracle.jbo.uicli.binding.JUApplication.(JUApplication.java:81)
    at oracle.adf.model.bc4j.DataControlFactoryImpl.createSession(DataControlFactoryImpl.java:256)
    at oracle.adf.model.binding.DCDataControlReference.getDataControl(DCDataControlReference.java:63)
    at oracle.adf.model.BindingContext.get(BindingContext.java:411)
    at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:228)
    at oracle.adf.model.binding.DCUtil.findContextObject(DCUtil.java:308)
    at oracle.adf.model.binding.DCIteratorBinding.(DCIteratorBinding.java:127)
    at oracle.jbo.uicli.binding.JUIteratorBinding.(JUIteratorBinding.java:59)
    at oracle.jbo.uicli.binding.JUIteratorDef.createIterBinding(JUIteratorDef.java:58)
    at oracle.jbo.uicli.binding.JUIteratorDef.createIterBinding(JUIteratorDef.java:47)
    at oracle.adf.model.binding.DCBindingContainerDef.createIterBindings
    (DCBindingContainerDef.java:197)
    at oracle.adf.model.binding.DCBindingContainerDef.createBindingContainer
    (DCBindingContainerDef.java:273)
    at oracle.adf.model.binding.DCBindingContainerReference.getBindingContainer
    (DCBindingContainerReference.java:40)
    at oracle.adf.model.BindingContext.get(BindingContext.java:427)
    at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:228)
    at oracle.adf.model.binding.DCUtil.findContextObject(DCUtil.java:308)
    at oracle.adf.model.binding.DCUtil.findBindingContainer(DCUtil.java:536)
    at oracle.adf.model.binding.DCUtil.initializeBindingContainer(DCUtil.java:505)
    at oracle.cabo.adf.rt.InitModelListener.getBindingContainer(InitModelListener.java:566)
    at oracle.cabo.adf.rt.InitModelListener._initBindingContainer(InitModelListener.java:535)
    at oracle.cabo.adf.rt.InitModelListener._doModelUpdate(InitModelListener.java:96)
    at oracle.cabo.adf.rt.InitModelListener.eventStarted(InitModelListener.java:55)
    at oracle.cabo.servlet.AbstractPageBroker._fireUIXRequestEvent(Unknown Source)
    at oracle.cabo.servlet.AbstractPageBroker.handleRequest(Unknown Source)
    at oracle.cabo.servlet.ui.BaseUIPageBroker.handleRequest(Unknown Source)
    at oracle.cabo.servlet.PageBrokerHandler.handleRequest(Unknown Source)
    at oracle.cabo.servlet.UIXServlet.doGet(Unknown Source)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
    Page 500 Internal Server Error e 1 of 2
    http://glorfindel.jsi.com:7777/invapp/dataPage1.uix 3/9/2005
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:239)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:604)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal
    (ServletRequestDispatcher.java:317)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:208)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:125)
    at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run
    (ReleasableResourcePooledExecutor.java:192)
    at java.lang.Thread.run(Thread.java:534)
    ## Detail 0 ##
    at oracle.jbo.pool.ResourcePool.useResource(ResourcePool.java:337)
    at oracle.jbo.server.ConnectionPool.getConnectionInternal(ConnectionPool.java:87)
    at oracle.jbo.server.ConnectionPool.getConnection(ConnectionPool.java:66)
    at oracle.jbo.server.ConnectionPoolManagerImpl.getConnection(ConnectionPoolManagerImpl.java:56)
    at oracle.jbo.server.DBTransactionImpl.establishNewConnection(DBTransactionImpl.java:868)
    at oracle.jbo.server.DBTransactionImpl.initTransaction(DBTransactionImpl.java:1107)
    at oracle.jbo.server.DBTransactionImpl.initTxn(DBTransactionImpl.java:5823)
    at oracle.jbo.server.DBTransactionImpl2.connect(DBTransactionImpl2.java:117)
    at oracle.jbo.server.ApplicationModuleImpl.doPoolConnect(ApplicationModuleImpl.java:8005)
    at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:7766)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:3923)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.prepareApplicationModule
    (ApplicationPoolImpl.java:1915)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:1739)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule
    (ApplicationPoolImpl.java:2611)
    at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:441)
    at oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule(HttpSessionCookieImpl.java:230)
    at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:411)
    at oracle.jbo.common.ws.WSApplicationModuleImpl.createWorkerApplicationModule
    (WSApplicationModuleImpl.java:2457)
    at oracle.jbo.common.ws.WSApplicationModuleImpl.getCustomApplicationModule
    (WSApplicationModuleImpl.java:2416)
    at oracle.adf.model.bc4j.DCJboDataControl.setDataProvider(DCJboDataControl.java:1429)
    at oracle.adf.model.bc4j.DCJboDataControl.setApplicationModule(DCJboDataControl.java:200)
    at oracle.adf.model.bc4j.DCJboDataControl.(DCJboDataControl.java:171)
    at oracle.jbo.uicli.binding.JUApplication.(JUApplication.java:90)
    at oracle.jbo.uicli.binding.JUApplication.(JUApplication.java:81)
    at oracle.adf.model.bc4j.DataControlFactoryImpl.createSession(DataControlFactoryImpl.java:256)
    at oracle.adf.model.binding.DCDataControlReference.getDataControl(DCDataControlReference.java:63)
    at oracle.adf.model.BindingContext.get(BindingContext.java:411)
    at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:228)
    Can anyone please help me out with this...This is really urgent...
    Thanks a lot....

    Hi Anubha,
    This error is reported from the model layer and not from UIX layer. If you would like to see more repsonse on this, it would be better if you can change the subject and post a new message with subject like - "Exception encountered from ADFm layer with deployed application." You may get more reponse.
    Thanks,
    Vijay Venkataraman

  • ADF UIX cancel/rollback button?

    Hi
    We're having a fair amount of trouble implementing a "cancel" button in our ADF UIX application (JDev 10.1.2). Apologies to those who read this same post on the ODTUG mailing list..... I'm hunting for even a hint of an answer before I approach Oracle Support.
    To set the scene, we have a parent VO "Departments" with child VOs "Dispatch" and "Agency". Dispatch also has a FK to Agency.
    We have a UIX view-screen that displays in a master-detail relationship Departments and Dispatch. From this screen the user can select the edit button, which navigates to an input-form screen to edit the currently selected Dispatch record.
    The Dispatch record has effective_from and effective_to dates. The underlying EO has a MethodValidator that ensures the from date <= the to date.
    On the edit screen we currently provide 2 buttons, Ok and Cancel. The Ok submitButton is bound to the commit binding, and navigates back to the view page via a struts link on completion.
    If the user selects the ok button and MethodValidator returns an error, the edit page's MessageBox displays the error and the user remains at the edit page until they resolve the issue.
    Our problems start with the cancel button.
    Originally we implemented the Cancel button as a simply "button" that navigated back to the view page. This worked well as the changes are never submitted, and on returning to the view page the record is presented in it's original state before being edited, thus the user's changes have been "cancelled".
    However if the user was editing an existing record, entered invalid dates that violated the MethodValidator, clicked ok and saw the MethodValidator error, then clicked cancel, on returning to the view page, any changes to the underlying record are visible including the invalid dates. I believe this occurs because the record has been submitted to the mid-tier by the ok button, and as such the changes now lies in the mid-tier.
    Given that a cancel "button" which simply navigates back to the view page is not a viable solution, we decided to investigate using a rollback button on our edit page, which then navigated back to the view page.
    There is a nasty side affect in using the rollback functionality, and has been a continuous frustration mentioned on OTN. When rollback is issued, it appears all iterators in the running application have their current row reset to the first element.
    This is a pain as in our example this results in not only the Dispatch iterator being reset to the first element, but also the parent Departments iterator, and presumably all other iterators in the application too. This would be an extreme annoyance to the user in every time they selected cancel, they would then need to navigate back to the correct Departments and Dispatch record if they wanted to make a different change.
    As such it is necessary to write some code to store the iterator positions before issuing the rollback, rolling-back, then restoring the iterator positions from the saved states.
    Luckily we found some code on OTN to do this:
    ADF - cancel button not working in input form(add new row)?
    This mechanism appeared to work, but, then, we did find one problem.
    I described at the beginning that our Dispatch VO is not only related to Departments but also Agency. To cater for this in our edit screen by including a LOV bound <messageList>, which displayed the relating Agencies for the user to select from.
    In using the pinched OTN rollback code, in the same scenario as previously, when the user edits a record, invalidates the MethodValidator after clicking ok, then clicks cancel, on returning to the view page, the field in Dispatch that represents the Agency is incorrectly showing a numeric result such as 0, 1, 2 etc. We realised that the value being shown is the previous edit screen's <messageList> internal index number representing the value selected in the list, and not the actual value itself.
    We're note sure why the OTN rollback code is causing this to occur. Though it restores the Agency iterator's position, it shouldn't result in the <messageList> index being written to the underlying Dispatch agency field, but rather the value the <messageList> index represents.
    It appears to me we're caught between a "rock and a hard-place" here. The simple solution of using a cancel "button" doesn't work when errors are raised. The complex case of using a "rollback" button doesn't work due to the problem with the <messageLists>.
    My research on OTN shows the "cancel vs rollback" button is a common frustration. Can somebody help me in providing a satisfactory "cancel" button that I can use throughout my app please?
    Many thanks in advance.
    Chris Muir

    The stack:
    Class                     Method
    UsrEcvAmpdsViewRowImpl    setAgency
    UsrEcvAmpdsViewRowImpl    setAttrInvokeAccessor
    ViewRowImpl               setAttribute
    DCDataControl             setAttributeInRow
    DCJboDataControl          setAttributeInRow
    JUCtrlValueBinding        setAttributeInRow
    JUCtrlValueBinding        setInputValue
    JUCtrlValueBinding        setInputValue
    InitModelListener         _setInputValue
    InitModelListener         _doModelUpdate
    InitModelListener         eventStarted
    AbstractPageBroker        _fireUIXRequestEvent
    AbstractPageBroker        handleRequest
    BaseUIPageBroker          handleRequest
    PageBrokerHandler         handleRequest
    UIXServlet                doGet
    HttpServlet               service
    HttpServlet               service
    ResourceFilterChain       doFilter
    JAZNFilter                doFilter
    ServletRequestDispatcher  invoke
    ServletRequestDispatcher  forwardInternal
    ServletRequestDispatcher  forward
    RequestProcessor          doForward
    RequestProcessor          processForwardConfig
    RequestProcessor          process
    ActionServlet             process
    ActionServlet             doGet
    HttpServlet               service
    HttpServlet               service
    ResourceFilterChain       doFilter
    JAZNFilter                doFilter
    ServletRequestDispatcher  invoke
    ServletRequestDispatcher  forwardInternal
    ServletRequestDispatcher  forward
    RequestProcessor          doForward
    RequestProcessor          processForwardConfig
    RequestProcessor          process
    ActionServlet             process
    ActionServlet             doGet
    HttpServlet               service
    HttpServlet               service
    ResourceFilterChain       doFilter
    JAZNFilter                doFilter
    EvermindFilterChain       doFilter
    ADFBindingFilter          doFilter
    ServletRequestDispatcher  invoke
    ServletRequestDispatcher  forwardInternal
    HttpRequestHandler        processRequest
    HttpRequestHandler        run
    HttpRequestHandler        run
    ReleasableResourcePooledExecutor$MyWorker run
    Thread  runAt a wild guess, InitModelListener is causing the issue, because it's the first place where we can see a setInputValue occuring?
    To make this official I've raised a TAR (4613003.992) with Oracle Support with a cut down version of our app to work through the issue.

  • ADF UIX Role Based Access Control Implementation

    Hi,
    Can anybody suggest a detailed example or tutorials of how to implement a role based access control for my ADF UIX application.
    The application users can be dymanically added to specific roles (admin, Secretary, Guest). Based on the roles, they should be allowed to access only certain links or ADF entity/view operations. Can this be implemented in a centralized way.
    Can this be done using JAZN or JAAS. If so, Please provide me references to simple tutorial on how to do this.
    Thanks a lot.
    Sathya

    Brenden,
    I think you are following a valid approach. The default security in J2EE and JAAS (JAZN) is to configure roles and users in either static files (jazn-data.xml) or the Oracle Internet Directory and then use either jazn admin APIs or the OID APIs to programmatically access users, groups and Permissions (your role_functions are Permissions in a JAAS context).
    If you modelled your security infrastructure in OID than the database, an administrator would be able to use the Delegated Administration Service (DAS), as web based console in Oracle Application Server. To configure security this way, you would have two options:
    1. Use J2EE declarative security and configure all you .do access points in web.xml and constrain it by a role name (which is a user group name in OID). The benefit of this approach is that you can get Struts actions working dirctly with it because Struts actions have a roles attribute.
    The disadvantage is that you can't dynamically create new roles because they have to be mapped in web.xml
    2. Use JAAS and check Permissions on individual URLs. This allows you to perform finer grained and flexible access control, but also requires changes to Struts. Unlike the approach of subclassing the DataActionForward class, I would subclass the Struts RequestProcessor and change the processRoles method to evaluate JAAS permissions.
    The disadvantage of this approach is that it requires coding that should be done carefully not to lock you in to your own implementation of Struts so that you couldn't easily upgrade to newer versions.
    1 - 2 have the benefit of that the policies can be used by all applications in an enterprise that use Oracle Application Server and e.g. SSO.
    Your approach - as said - is valid and I think many customers will look for the database first when looking at implementing security (so would I).
    Two links that you might be interested in to read are:
    http://sourceforge.net/projects/jguard/ --> an open source JAAS based security framework that stores the user, roles and permissions in database tables similar to your approach
    http://www.oracle.com/technology/products/jdev/collateral/papers/10g/adfstrutsj2eesec.pdf --> a whitepaper I've written about J2EE security for Web applications written with Struts and JavaServer pages. You may not be able to use all of it, but its a good source of information.
    Frank

  • Demo: From ADF UIX to JSF

    Hello,
    I am new to most of this. I am running jdev 10.1.3 preview with EA12.
    While trying to run the demo described in the article "From ADF UIX to JSF"
    found at http://www.oracle.com/technology/oramag/oracle/04-nov/o64jsf.html I got the following errors.
    Project: C:\data\sample_home\MyADFFaces\ADFFacesView\ADFFacesView.jpr
    C:\data\sample_home\MyADFFaces\ADFFacesView\public_html\empTable.jspx
    Error: Internal error, ClassNotFound creating tag parser for afh:head, class: oracle.adfimpl.view.faces.taglib.html.HtmlHeadTag
    Error: Unable to find class for bean: null defined by tag with class: oracle.adfimpl.view.faces.taglib.html.HtmlHeadTag
    Error: head must be terminated with /> or %> not >
    Error: Internal error, ClassNotFound creating tag parser for af:form, class: oracle.adfimpl.view.faces.taglib.core.CoreFormTag
    Error: Unable to find class for bean: null defined by tag with class: oracle.adfimpl.view.faces.taglib.core.CoreFormTag
    Error: Internal error, ClassNotFound creating tag parser for af:table, class: oracle.adfimpl.view.faces.taglib.core.data.CoreTableTag
    Error: Unable to find class for bean: null defined by tag with class: oracle.adfimpl.view.faces.taglib.core.data.CoreTableTag
    Error: Internal error, ClassNotFound creating tag parser for af:tableSelectOne, class: oracle.adfimpl.view.faces.taglib.core.data.CoreTableSelectOneTag
    Error: Unable to find class for bean: null defined by tag with class: oracle.adfimpl.view.faces.taglib.core.data.CoreTableSelectOneTag
    Error: Internal error, ClassNotFound creating tag parser for af:commandButton, class: oracle.adfimpl.view.faces.taglib.core.nav.CoreCommandButtonTag
    Error: Unable to find class for bean: null defined by tag with class: oracle.adfimpl.view.faces.taglib.core.nav.CoreCommandButtonTag
    Here is a copy of the JSP page source that I created as I was following the text in the article
    Source starts
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:afh="http://xmlns.oracle.com/adf/faces/EA6/html"
    xmlns:af="http://xmlns.oracle.com/adf/faces/EA6">
    <jsp:text>
    <![CDATA[ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> ]]>
    </jsp:text>
    <jsp:directive.page contentType="text/html;charset=windows-1252"/>
    <f:view>
    <html>
    <afh:head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1252"/>
    <title>
    empTable
    </title>
    </afh:head>
    <body>
    <af:form>
    <af:table value="#{myEmployees.employees}" var="row" rows="10">
    <f:facet name="selection">
    <af:tableSelectOne text="Select Employee and click ...">
    <af:commandButton text="Show" action="showDetails"/>
    </af:tableSelectOne>
    </f:facet>
    <af:column>
    <af:outputText value="#{row.first_name}"/>
    <f:facet name="header">
    <af:outputText value="Firstname"/>
    </f:facet>
    </af:column>
    <af:column>
    <af:outputText value="#{row.last_name}"/>
    <f:facet name="header">
    <af:outputText value="Lastname"/>
    </f:facet>
    </af:column>
    <af:column>
    <af:outputText value="#{row.email}"/>
    <f:facet name="header">
    <af:outputText value="Email"/>
    </f:facet>
    </af:column>
    </af:table>
    </af:form>
    </body>
    </html>
    </f:view>
    </jsp:root>
    ---source ends ---
    Can anyone tell me how to get past this? Thank you.
    -- Jack Condon

    One immediate thing: "EA6" is in the tag library namespaces, but you're using EA12.
    In general, there've been a lot of changes between EA6 and EA12, but the changed namespace is one simple thing.

  • ADF UIX doSelect override with PL/SQL fails to allow insert

    I've been trying to create an ADF-UIX web app for simple insert/update/delete of records to a table.
    The schema simply has 2 tables - master and detail where the detail pk is made up of the master id and a start date:
    CREATE TABLE master (
    id NUMBER NOT NULL,
    name VARCHAR2 (10) NOT NULL,
    CONSTRAINT pk_master
    PRIMARY KEY ( id ));
    CREATE TABLE detail (
    id NUMBER NOT NULL,
    start_date DATE NOT NULL,
    name VARCHAR2 (10) NOT NULL,
    description VARCHAR2 (100),
    CONSTRAINT pk_detail
    PRIMARY KEY ( id, start_date ));
    ALTER TABLE detail ADD CONSTRAINT d_m_fk FOREIGN KEY (id) REFERENCES master(id)
    This works fine when I create it in a similar manner to that described in the "Complete ADF UIX Application ..." tutorial doc.
    http://www.oracle.com/technology/products/jdev/collateral/tutorials/9050/adfuix_tut.html
    I then tried to override the ADF doSelect and doDML methods as outlined in ADF_BC_StoredProcedures.zip example app allowing me to use PL/SQL stored pkg for dml.
    http://www.oracle.com/technology/sample_code/products/jdev/10g/ADF_BC_StoredProcedures.zip
    On trying to insert a new row my web app now fails with a null pointer exception when I press the Submit button. The app calls doSelect->handleStoredProcSelect which fails to get the value of a column.
    void handleStoredProcSelect() {
    CallableStatement st = null;
    try {
    String stmt = "BEGIN test_api.do_select(?,?,?,?,?); END;";
    DBTransaction tr = getDBTransaction();
    st = tr.createCallableStatement(stmt,1);
    ## This line works, I'm guessing because the value is populated from the master record I've selected in the form ...
    st.setLong(1,getTestId().longValue());
    ##FAILS HERE st.setDate(2,getStartDate().dateValue());
    Update,delete still work ok. And if I run the test app (right click on AppModule and select Test) all works ok.
    I'm not sure why doSelect is called on an insert so I commented out:
    doSelect
    handleStoredProcSelect
    handleStoredProcLock
    compareOldAttrTo
    Web App now lets me insert as expected.
    So finally ....my question is:
    Whilst the app now works does commenting out the doSelect leave me open to problems I haven't thought off
    and if not if you did want to use it how can you allow inserts?
    Any thoughts or similar experiences appreciated ...
    Cheers
    Ian

    I've been trying to create an ADF-UIX web app for simple insert/update/delete of records to a table.
    The schema simply has 2 tables - master and detail where the detail pk is made up of the master id and a start date:
    CREATE TABLE master (
    id NUMBER NOT NULL,
    name VARCHAR2 (10) NOT NULL,
    CONSTRAINT pk_master
    PRIMARY KEY ( id ));
    CREATE TABLE detail (
    id NUMBER NOT NULL,
    start_date DATE NOT NULL,
    name VARCHAR2 (10) NOT NULL,
    description VARCHAR2 (100),
    CONSTRAINT pk_detail
    PRIMARY KEY ( id, start_date ));
    ALTER TABLE detail ADD CONSTRAINT d_m_fk FOREIGN KEY (id) REFERENCES master(id)
    This works fine when I create it in a similar manner to that described in the "Complete ADF UIX Application ..." tutorial doc.
    http://www.oracle.com/technology/products/jdev/collateral/tutorials/9050/adfuix_tut.html
    I then tried to override the ADF doSelect and doDML methods as outlined in ADF_BC_StoredProcedures.zip example app allowing me to use PL/SQL stored pkg for dml.
    http://www.oracle.com/technology/sample_code/products/jdev/10g/ADF_BC_StoredProcedures.zip
    On trying to insert a new row my web app now fails with a null pointer exception when I press the Submit button. The app calls doSelect->handleStoredProcSelect which fails to get the value of a column.
    void handleStoredProcSelect() {
    CallableStatement st = null;
    try {
    String stmt = "BEGIN test_api.do_select(?,?,?,?,?); END;";
    DBTransaction tr = getDBTransaction();
    st = tr.createCallableStatement(stmt,1);
    ## This line works, I'm guessing because the value is populated from the master record I've selected in the form ...
    st.setLong(1,getTestId().longValue());
    ##FAILS HERE st.setDate(2,getStartDate().dateValue());
    Update,delete still work ok. And if I run the test app (right click on AppModule and select Test) all works ok.
    I'm not sure why doSelect is called on an insert so I commented out:
    doSelect
    handleStoredProcSelect
    handleStoredProcLock
    compareOldAttrTo
    Web App now lets me insert as expected.
    So finally ....my question is:
    Whilst the app now works does commenting out the doSelect leave me open to problems I haven't thought off
    and if not if you did want to use it how can you allow inserts?
    Any thoughts or similar experiences appreciated ...
    Cheers
    Ian

  • ADF UIX Search Form - Is this a bug?

    I created a JDev 9.0.5.2 ADF UIX Search form from the component palette. I ran the page without making any changes. I chose the Find button which displayed the search criteria. I selected the delete button and then the create button, which created 2 blank records (possible bug?) in the search criteria table at the top. I selected one of the blank records and entered search criteria. I chose the submit button which changed the data in the search criteria table as it is supposed to do. I selected the other blank record, entered search criteria and submitted it. Again the data in the search criteria table was changed appropriately. I selected the delete button and the wrong record was deleted (bug?).
    Are these bugs?

    Hello,
    a similar sort of situation is created if you have a Read-only table on a page which drills down to an edit/create input form page. If you enable a create functionality you need to enable some way for the user to back out of the created record and clean up the newly created row. On the detail page (JobsEdit.do) i created a link to a custom event on the master page action (JobsView.do) like this:
    <button text="Cancel" destination="JobsView.do?event=cancelinput"/> In the Data Action class for the JobsView page i have a method defined as follows:
    public void onCancelinput(DataActionContext ctx)
        Row row = ctx.getBindingContainer().getApplicationModule().findViewObject("JobsView1").getCurrentRow();
        row.refresh(row.REFRESH_REMOVE_NEW_ROWS );
    }as a workaround, it sounds like you may need put some manual controls in place to tightly control any newly created rows which have/will not been used. I don't know if this will resolve the deleting wrong record problem...
    regards,
    Brenden

  • Binding Editors not present in ADF UIX

    Hi
    I have been having some trouble with accessing both the Boolean Binding Editor and the LOV Editor from the structure window, when in design mode of an ADF UIX page.
    My bindings are present, but when I 'Edit' the binding, the only option available to me is to select the Iterator and the attribute.
    The documentation keeps telling me to select different tabs, but there aren't any!
    Anyone had this problem????
    I'm on;
    Oracle IDE     9.0.5.16.27
    Business Components Version     9.0.5.16.0
    UML Modelers Version     9.0.5.14.78
    Versioning Support     9.0.5.14.78
    WebDAV Support Version     9.0.5.14.78
    Struts Modeler Version     9.0.5.4.22
    Designer Generators Framework     9.0.5.5.71
    ADF UIX     2.2.8
    java.version     1.4.2
    java.home     C:\j2sdk1.4.2_04\jre
    java.vm.name     Java HotSpot(TM) Client VM
    java.vm.vendor     Sun Microsystems Inc.
    java.vm.version     1.4.2-b28
    user.language     en
    user.region     <no value assigned>
    user.name     chris.bell
    user.home     C:\Documents and Settings\chris.bell
    user.dir     C:\Software\Oracle\jdev9052\jdev\bin
    os.name     Windows XP
    os.version     5.1
    os.arch     x86
    http.proxyHost     <no value assigned>
    http.proxyPort     <no value assigned>
    http.nonProxyHosts     <no value assigned>
    ide.patches     
    Thanks in advance
    Chris

    the primaryclient action should pass the rowkey of the current row (${uix.current.rowKeyStr}) as a parameter. This way the server can find the corresponding row on the server in an event handler.
    see
    http://www.oracle.com/technology/products/jdev/tips/jacobi/edittable/tip_adfuixtable_edit.html

  • ADF UIX programatic data binding

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

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

  • LOV /ADF UIX pages does not work on the older version od UIX page

    Hi
    I have recently migrated UIX project from the Jdeveoper 9i to Jdev10g version 1.0.1.2, everything work without any issue, however when I try to create a LOV or any component that are ADF-UIX based, but it does not work I don't even get any error, it just does not work based on the ADF-UIX (Expression base component),
    Any help to resolve this issue will be greatly appericated
    Thanks

    I too have problems with LOVs in UIX pages. I have
    some that you have to run twice to get back a value.To solve this problem,
    1) open your UIX page where you create a new row
    2) in the Structure window, click third tab "UI Model"
    3) double-click the control action binding corresponding to Create
    4) select CreateInsert from the list
    The problem is related to the fix we introduced for the "Blank Row Issue" (see http://www.oracle.com/technology/products/jdev/tips/muench/blankrow/index.html).
    If you have access to MetaLink, please refer to Note 299860.1 and Bug 4201020.
    Regards,
    Didier.

  • Data Binding in ADF UIX example trouble

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

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

  • ADF/UIX logon custom screen?

    Hi,
    probably this is a pretty trivial question, but how do I make my custom logon screen for a ADF/UIX JDev 10g app?
    TIA,
    Tamas

    Tamás,
    Check this:
    http://otn.oracle.com/sample_code/products/jdev/bc4jtoystore/index.html
    Gábor

  • ADF UIX Runtime

    I download a sample application from http://technology.amis.nl/blog/765/spring-and-oracle-adf-registering-a-pojo-spring-jdbc-based-business-service-as-data-control
    However, one project' library need ADF UIX Runtime
    How to import this extension?
    ============================================================
    [Running application SpringAndADF on Server Instance IntegratedWebLogicServer...]
    [06:08:04 PM] ---- Deployment started. ----
    [06:08:04 PM] Target platform is (Weblogic 10.3).
    [06:08:04 PM] Retrieving existing application information
    [06:08:04 PM] Running dependency analysis...
    [06:08:04 PM] Deploying 2 profiles...
    [06:08:05 PM] Wrote Web Application Module to C:\Users\Administrator\AppData\Roaming\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\SpringAndADF\HrmWebClientWebApp.war
    [06:08:05 PM] Wrote Enterprise Application Module to C:\Users\Administrator\AppData\Roaming\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\SpringAndADF
    [06:08:05 PM] Deploying Application...
    <Dec 9, 2010 6:08:08 PM PST> <Error> <HTTP> <BEA-101371> <There was a failure when processing annotations for application C:\Users\Administrator\AppData\Roaming\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\SpringAndADF\HrmWebClientWebApp.war. Please make sure that the annotations are valid. The error is oracle.cabo.servlet.UIXServlet>
    <Dec 9, 2010 6:08:08 PM PST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID '1291946886471' for task '24'. Error is: 'weblogic.application.ModuleException: Failed to load webapp: 'SpringAndADF-HrmWebClient-context-root''
    weblogic.application.ModuleException: Failed to load webapp: 'SpringAndADF-HrmWebClient-context-root'
         at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:404)
         at weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:176)
         at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
         at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:507)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
         Truncated. see log file for complete stacktrace
    Caused By: java.lang.ClassNotFoundException: oracle.cabo.servlet.UIXServlet
         at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:280)
         at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:253)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:56)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
         Truncated. see log file for complete stacktrace
    >
    <Dec 9, 2010 6:08:08 PM PST> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating deploy task for application 'SpringAndADF'.>
    <Dec 9, 2010 6:08:08 PM PST> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
    weblogic.application.ModuleException: Failed to load webapp: 'SpringAndADF-HrmWebClient-context-root'
         at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:404)
         at weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:176)
         at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
         at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:507)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
         Truncated. see log file for complete stacktrace
    Caused By: java.lang.ClassNotFoundException: oracle.cabo.servlet.UIXServlet
         at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:280)
         at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:253)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:56)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
         Truncated. see log file for complete stacktrace
    >
    [06:08:08 PM] #### Deployment incomplete. ####
    [06:08:08 PM] Remote deployment failed (oracle.jdevimpl.deploy.common.Jsr88RemoteDeployer)
    #### Cannot run application SpringAndADF due to error deploying to IntegratedWebLogicServer.
    [Application SpringAndADF stopped and undeployed from Server Instance IntegratedWebLogicServer]

    You cannot http://www.oracle.com/technetwork/developer-tools/jdev/desupport11g-087493.html
    John

Maybe you are looking for

  • Facebook doesn't work with Firefox 28.0 + Flashplayer 12,0,0,77

    Hey everybody, first of all let me tell you the specs of my system: Laptop: Windows 7 Home Premium  64 bit Acer Aspire 7745G Laptop Intel i7 Q720 @1,6 GHz 4,00 GB RAM Browser: Mozilla Firefox 28.0 Flash Player Version: 12,0,0,77 Problem: So the Flash

  • How to use series in business graphic ui element

    Hi All, How to use the series in business graphic ui element? my requirement is i have to display the sales in selected months in graph(these values dont know at design time). Regards Srikanth

  • PDF acceleration F5 BigIP WA and double byte characters

    We have been trying to use the F5 appliance from BigIP to accelerate the delivery of PDF files from SharePoint over the WAN.  However, we encountered problems with the double-byte files many months ago and have been trying to resolve the problem with

  • Update order user status based on a custom check box value in web ui

    Hi Experts, I have a requirement to Update the  user status based on a custom check box value in web ui. This is needed at the followup for a SR, the component is BT116H_SRVO, Details View. I created a value node with 4 checkboxes, based on the check

  • Numc to KF

    Guys,        Is there an easy way to convert a NUMC field into key figure field or i will just have to delete and recreate as KF? Thanks, RG