JBO-27008 in transient attributes

I have in my VO a transient attribute defined with a sub-query.
I had displayed this attribute as a checkbox in my UIX.
When trying to commit changes in the page, I have the JBO-27008 message that this attribute is read-only (or course it is). What have I configured wrong to have this message? My VO attribute is set as Updateable = Never, and Passivate is on...

Idevaldo,
You could set Updateable to Always, and just don't do anything on the set method of your transient attribute.
Kind regards,
Peter Ebell
JHeadstart Team

Similar Messages

  • ReadOnlyAttrException: JBO-27008 occurs when it shouldn't

    Hi,
    I am receiving the ReadOnlyAttrException: JBO-27008 error on attributes that are always updateable. The situation occurs in the following circumstances:
    * I have a view object that works fine - no errors
    * I add a String transient attribute to the VO, with "Always" selected under updateable
    * When trying to set the attribute, I get the JBO error mentioned above
    In looking at the RowImpl class for my VO, I notice that when I add the transient attribute, it is inserted directly before the last attribute at the top of the class, like so:
    protected static final int RENEW_LEVEL_TEXT = 18;
    protected static final int USERVIEW = 19;
    where RENEW_LEVEL_TEXT is the new transient attribute and USERVIEW was the old attribute that had value 18 before the change. USERVIEW is a view link accessor. The VO I am working on is on the destination end of the link.
    Anyway, the method I call is setRENEW_LEVEL_TEXT(), but the error I receive tells me that the USERVIEW is read only, leading me to believe that somehow, internally in a place I cannot find, USERVIEW is still associated with value 18.
    any ideas?

    I believe you're running into bug
    2632675 -- TRANSIENT VO ATTRIBUTE INCORRECTLY BINDS AS NULL IN VIEW LINK
    which should be fixed in 9.0.3.3.
    Thanks.
    Sung

  • Oracle.jbo.ReadOnlyAttrException, msg=JBO-27008 Attribute set fail

    Hello,
    I keep getting this error saying that my view attribute fails in my view object. The view attribute that is failing is CtType1 which is a transient attribute. Does anyone have any ideas?
    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.jbo.ReadOnlyAttrException, msg=JBO-27008: Attribute set for CtType1 in view object CtBwdaLevel1View1 failed
    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.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:406)
    at oracle.adf.model.bc4j.DCJboDataControl.rebuildApplicationModule(DCJboDataControl.java:1336)
    at oracle.adf.model.bc4j.DCJboDataControl.beginRequest(DCJboDataControl.java:1234)
    at oracle.adf.model.servlet.ADFBindingFilter.invokeBeginRequest(ADFBindingFilter.java:276)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:234)
    at com.evermind[Oracle Application Server Containers for J2EE 10g (                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Make sure the updateable property of the attribute is set to "Always" even if its a trasient attribute.
    Inside the ViewObject in the ADF Wizard, choose your transient attribute and set the Updatable radio buttons to "Always."

  • Oracle.jbo.ReadOnlyAttrException) JBO-27008: Attribute in view object cannot be set.

    Hi all,
    I have three table:
    Member : MemberID(pk), Email, Adress, ProvinceID (fk)
    Province : ProvinceID(pk), ProvinceName, CountryID(fk)
    Country : CountryID(pk), CountryName.
    After created three entities and object view for all of them.
    In ProvinceView : i add a parameter for CountryID using Bind Variables + View Criteria to select Province from Country
    In MemberView : i add more two entity: Province and Country then Add more attributes: CountryID (from Province table), CountryName(from Country table).
    Create LOVs for CountryID and ProvinceID....that's i want: selected Country ----> Province auto show but when i selected Country, an error show like this :
    (oracle.jbo.ReadOnlyAttrException) JBO-27008: Attribute Countryid in view object PhaiMemberacbView1 cannot be set.
    What's solutions to fix this. Thanks

    Hi,
    Please verify if the Attribute Countryid has been marked as "Updatable" in the view object.
    Best Regards,
    Ankit Gupta

  • Oracle.jbo.ReadOnlyAttrException: JBO-27008

    Hello, friends!
    I use uix for my application (generated with JHeadstart).
    Now I have one problem, and this problem is very strange. Some of VOs throws exception after commit changes:
    (oracle.jbo.ReadOnlyAttrException) JBO-27008: for one atribute, which is readonly and i did not try to update it.
    at oracle.jbo.AttrValException.<init>(AttrValException.java:112)
    at oracle.jbo.ReadOnlyAttrException.<init>(ReadOnlyAttrException.java:40)
    at oracle.jbo.server.ViewRowImpl.setAttribute(ViewRowImpl.java:815)
    at oracle.jbo.jbotester.JboTesterUtil.setData(JboTesterUtil.java:173)
    I don't know why, but all worked fine before.
    I think that this is not view project problem. Because the same problem appear on the other pages (oracle.jbo.ReadOnlyAttrException: JBO-27008:)
    and when i test model project with bc4j tester now. But sometimes this problem appears on the uix page testing and does not appear when i test this
    VO with bc4j tester. For example, one my VO hane primary key: Id, updeteable=always, display=false and when i try to update another
    VO in this page i recieve same error. This error appears for attributes which are always updatable and for attributes which
    are readonly and when i do not update it.
    Maybe you can tell me how to solve this problem, please.
    Thank you.

    Erik, thank you.
    But I have not custom logic in the isAttributeUpdateable() method.
    This attribute is transient (java.util.List). And the get attribute method is:
    public List getMyList()
    {        if (MovesListAdapter!=null)
    return MovesListAdapter;
    ViewObject vo = this.getApplicationModule().findViewObject("MyVO");
    System.out.println(rowSetName);
    RowSet rowSet = vo.findRowSet(rowSetName);
    if (rowSet==null)
    rowSet = vo.createRowSet(rowSetName);
    rowSet.setWhereClauseParam(0,this.getIdOsnovanie());
    rowSet.executeQuery();
    rowSet.setRangeSize(-1);
    String rowSetName = "MovesRowSet"+this.getIdOsnovanie();
    System.out.println("MovesRowSet row count="+rowSet.getRowCount());
    MovesListAdapter = new RowIteratorListAdapter(rowSet, true);
    MovesListAdapter.setEmptyRowsAtTop(1);
    List t=MovesListAdapter;
    return MovesListAdapter;
    }

  • Migration issue on default value for transient attribute in 11.1.2

    Experts,
    I migrated my JDev 11.1.1.5 project to JDev 11.1.2. After successful migration i began to run the project and it ran without issue. In the application however when i clicked on any link or button i get the following exception
    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=Cannot get property 'saleType' on null object
    Caused by: java.lang.NullPointerException: Cannot get property 'saleType' on null object
         at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:56)
         at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:154)
         at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:29)
         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:237)
         at bc4j_com_xxx_portal_model_uiView_SaleVO_SaleTypeTransient_null_gs.run(bc4j_com_xxx_portal_model_uiView_SaleVO_SaleTypeTransient_null_gs.groovy:1)
         at oracle.jbo.ExprEval.internalEvaluateGroovyScript(ExprEval.java:1200)
    In my SaleVO i have a transient attribute whos value is set as
    adf.userSession.userData.saleType == 'ORGANIZATION' ?
                               'LOV_PartyTypeOrg' : 'LOV_PartyType'When i print the value from user session i am getting a value there, so a bit confused about the NPE here.
    Please advice
    Jdev 11.1.2

    Hi,
    this is something you should report to customer support to have them looking at this and helping you out
    Frank

  • Null Pointer Exception after adding Transient attribute in View Object

    Hello Experts
    I am using Jdev 11.1.2.3. I have added a transient attribute in view object and set default value to another view object attribute via view accessor of view link between view objects. the value of expression is ItemMasterRO.Description, where ItemMasterRO is the name of view accessor define in the view link and Description is the name of attribute which is in other view object.
    Data is retrieving as per my requirements, but when i click on add record button in application module, it is throwing a  null pointer exception. Here is stack trace
    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=null
        at oracle.jbo.ExprEval.internalEvaluateGroovyScript(ExprEval.java:1218)
        at oracle.jbo.ExprEval.doEvaluate(ExprEval.java:1253)
        at oracle.jbo.ExprEval.evaluateForRow(ExprEval.java:1075)
        at oracle.jbo.server.AttributeDefImpl.evaluateTransientExpression(AttributeDefImpl.java:2132)
        at oracle.jbo.server.ViewRowStorage.getAttributeInternal(ViewRowStorage.java:1856)
        at oracle.jbo.server.ViewRowImpl.getAttributeValue(ViewRowImpl.java:1967)
        at oracle.jbo.server.ViewRowImpl.getAttributeInternal(ViewRowImpl.java:829)
        at oracle.jbo.server.ViewRowImpl.getAttrInvokeAccessor(ViewRowImpl.java:911)
        at oracle.jbo.server.ViewRowImpl.getAttribute(ViewRowImpl.java:859)
        at oracle.jbo.uicli.binding.JUCtrlValueBinding.internalGetAttributeValueFromRow(JUCtrlValueBinding.java:1213)
        at oracle.jbo.uicli.binding.JUCtrlValueBinding.getAttributeFromRow(JUCtrlValueBinding.java:764)
        at oracle.jbo.uicli.binding.JUCtrlValueBinding.getAttributeFromRow(JUCtrlValueBinding.java:792)
        at oracle.jbo.uicli.binding.JUCtrlAttrsBinding.updateValuesFromRow(JUCtrlAttrsBinding.java:145)
        at oracle.jbo.uicli.jui.JULabelBinding.updateValuesFromRow(JULabelBinding.java:114)
        at oracle.jbo.uicli.binding.JUIteratorBinding.updateValuesFromRows(JUIteratorBinding.java:349)
        at oracle.adf.model.binding.DCIteratorBinding.setupRSIstate(DCIteratorBinding.java:867)
        at oracle.adf.model.binding.DCIteratorBinding.refreshControlAndNotifyDCE(DCIteratorBinding.java:707)
        at oracle.adf.model.binding.DCIteratorBinding.refreshControl(DCIteratorBinding.java:676)
        at oracle.jbo.uicli.binding.JUIteratorBinding.refreshControl(JUIteratorBinding.java:485)
        at oracle.adf.model.binding.DCIteratorBinding.refresh(DCIteratorBinding.java:4555)
        at oracle.adf.model.binding.DCBindingContainer.refreshExecutables(DCBindingContainer.java:3542)
        at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:3375)
        at oracle.adf.model.binding.DCBindingContainer.refreshControl(DCBindingContainer.java:2938)
        at oracle.jbo.jbotester.NavigationBar.doInsertAction(NavigationBar.java:143)
        at oracle.jbo.jbotester.NavigationBar.doAction(NavigationBar.java:110)
        at oracle.jbo.uicli.controls.JUNavigationBar$NavButton.actionPerformed(JUNavigationBar.java:118)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
        at java.awt.Component.processMouseEvent(Component.java:6289)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6054)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4652)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4482)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4482)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
        at java.awt.EventQueue.access$000(EventQueue.java:85)
        at java.awt.EventQueue$1.run(EventQueue.java:603)
        at java.awt.EventQueue$1.run(EventQueue.java:601)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
        at java.awt.EventQueue$2.run(EventQueue.java:617)
        at java.awt.EventQueue$2.run(EventQueue.java:615)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Caused by: java.lang.NullPointerException
        at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.acceptGetProperty(PogoGetPropertySite.java:32)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:237)
        at bc4j_com_syncreon_model_queries_SequenceItemContainerXrefVO_ItemDescription_null_gs.run(bc4j_com_syncreon_model_queries_SequenceItemContainerXrefVO_ItemDescription_null_gs.groovy:1)
        at oracle.jbo.ExprEval.internalEvaluateGroovyScript(ExprEval.java:1200)
        ... 62 more
    ## Detail 0 ##
    java.lang.NullPointerException
        at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.acceptGetProperty(PogoGetPropertySite.java:32)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:237)
        at bc4j_com_syncreon_model_queries_SequenceItemContainerXrefVO_ItemDescription_null_gs.run(bc4j_com_syncreon_model_queries_SequenceItemContainerXrefVO_ItemDescription_null_gs.groovy:1)
        at oracle.jbo.ExprEval.internalEvaluateGroovyScript(ExprEval.java:1200)
        at oracle.jbo.ExprEval.doEvaluate(ExprEval.java:1253)
        at oracle.jbo.ExprEval.evaluateForRow(ExprEval.java:1075)
        at oracle.jbo.server.AttributeDefImpl.evaluateTransientExpression(AttributeDefImpl.java:2132)
        at oracle.jbo.server.ViewRowStorage.getAttributeInternal(ViewRowStorage.java:1856)
        at oracle.jbo.server.ViewRowImpl.getAttributeValue(ViewRowImpl.java:1967)
        at oracle.jbo.server.ViewRowImpl.getAttributeInternal(ViewRowImpl.java:829)
        at oracle.jbo.server.ViewRowImpl.getAttrInvokeAccessor(ViewRowImpl.java:911)
        at oracle.jbo.server.ViewRowImpl.getAttribute(ViewRowImpl.java:859)
        at oracle.jbo.uicli.binding.JUCtrlValueBinding.internalGetAttributeValueFromRow(JUCtrlValueBinding.java:1213)
        at oracle.jbo.uicli.binding.JUCtrlValueBinding.getAttributeFromRow(JUCtrlValueBinding.java:764)
        at oracle.jbo.uicli.binding.JUCtrlValueBinding.getAttributeFromRow(JUCtrlValueBinding.java:792)
        at oracle.jbo.uicli.binding.JUCtrlAttrsBinding.updateValuesFromRow(JUCtrlAttrsBinding.java:145)
        at oracle.jbo.uicli.jui.JULabelBinding.updateValuesFromRow(JULabelBinding.java:114)
        at oracle.jbo.uicli.binding.JUIteratorBinding.updateValuesFromRows(JUIteratorBinding.java:349)
        at oracle.adf.model.binding.DCIteratorBinding.setupRSIstate(DCIteratorBinding.java:867)
        at oracle.adf.model.binding.DCIteratorBinding.refreshControlAndNotifyDCE(DCIteratorBinding.java:707)
        at oracle.adf.model.binding.DCIteratorBinding.refreshControl(DCIteratorBinding.java:676)
        at oracle.jbo.uicli.binding.JUIteratorBinding.refreshControl(JUIteratorBinding.java:485)
        at oracle.adf.model.binding.DCIteratorBinding.refresh(DCIteratorBinding.java:4555)
        at oracle.adf.model.binding.DCBindingContainer.refreshExecutables(DCBindingContainer.java:3542)
        at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:3375)
        at oracle.adf.model.binding.DCBindingContainer.refreshControl(DCBindingContainer.java:2938)
        at oracle.jbo.jbotester.NavigationBar.doInsertAction(NavigationBar.java:143)
        at oracle.jbo.jbotester.NavigationBar.doAction(NavigationBar.java:110)
        at oracle.jbo.uicli.controls.JUNavigationBar$NavButton.actionPerformed(JUNavigationBar.java:118)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
        at java.awt.Component.processMouseEvent(Component.java:6289)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6054)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4652)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4482)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4482)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
        at java.awt.EventQueue.access$000(EventQueue.java:85)
        at java.awt.EventQueue$1.run(EventQueue.java:603)
        at java.awt.EventQueue$1.run(EventQueue.java:601)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
        at java.awt.EventQueue$2.run(EventQueue.java:617)
        at java.awt.EventQueue$2.run(EventQueue.java:615)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Please advice....
    Thanks

    Hi,
    Just the exception stack without any information like what JDev version, what expression you've used for the default value of the transient attribute etc., is not enough for us to help you.
    -Arun

  • Creating Transient Attributes when query is in Expert Mode

    I wanted to share a recent challenge I encountered. I had created a transient attribute in my View Object and placed it on my .jspx page. When I would navigate to the page I would receive an error telling me, "oracle.jbo.AttributeLoadException: JBO-27022: Failed to load value at index 42 with java object of type java.lang.String due to java.sql.SQLException.".
    After switching my run configuration to include the java option -Djbo.debugoutput = console, I noticed my sql statement was getting modified. I inspected the view object sql and realized the calculation for my transient object was not present. After adding the calculation for the column in my sql, I was able to run the page with no errors.
    My problem was that I had my query in expert mode so I could utilize an outer join. When I added the transient attribute after putting the query in expert mode, JDEV would not automatically make the changes to my SQL.
    It would really help if JDEV threw an alert to the user letting them know that their query is in expert mode and changes cannot be made to the SQL or it would also help if I remembered what I read in the Dev Guide. Such as when a file is read only.
    (JDEV 10.1.3.4)

    When I added the transient attribute after putting the query in expert mode, JDEV would not automatically make the changes to my SQL.Really depends on what you meant by ' transient '.
    Did you really want a 'calculated' attribute - i.e. one that is backed by a query clause - for this you needed to check the 'mapped to column or sql' in the attribute properties and also provide an SQL expression..
    Otherwise, it's just a java 'transient' attribute and doesn't have to be part of the query...

  • Strange error oracle.jbo.ReadOnlyAttrException: JBO-27008:

    Hello, friends!
    I use uix for my application (generated with JHeadstart).
    Now I have one problem, and this problem is very strange. One of VOs throws exception after commit changes. First time it was error
    (oracle.jbo.ReadOnlyAttrException) JBO-27008: for atribute mgrList
    at oracle.jbo.AttrValException.<init>(AttrValException.java:112)
    at oracle.jbo.ReadOnlyAttrException.<init>(ReadOnlyAttrException.java:40)
    at oracle.jbo.server.ViewRowImpl.setAttribute(ViewRowImpl.java:815)
    at oracle.jbo.jbotester.JboTesterUtil.setData(JboTesterUtil.java:173)
    Then I setted updateable property of MgrList attribute to always and now i have this error:
    oracle.jbo.domain.DataCreationException: JBO-25009: Cannot create an object of type:java.util.List with value:[{}]
    I don't know why, but all worked fine yestarday.
    I think that this is not view project problem. Because the same problem appear on the other pages (oracle.jbo.ReadOnlyAttrException: JBO-27008:) and when i test model project with bc4j tester today. But all this pages and data model worked correctly before and i did not edit this.
    And this problem look like the bug. Because this error must appear for attributes which are always updatable and when i do not update it.
    Maybe you can tell me how to solve this problem, please.
    Thank you.

    We havent written any custom code in the extended EO.
    Case 1 : Without any extension (basic oracle behaviour)
    When the Page is first Rendered, the Org Name (LOV) Field is populated on the screen,and OrgId (form value) is also populated with it.
    (this is a create screen and Org is populated with the Default Org name and ID)
    Case 2 : With we have Extended EO
    (we havent generated the EOImpl of extended EO so we cannot possible write any custom code to insert/ update any of the attrubutes.
    This Case gives an error as mentiond in my previous mails.

  • Passivate Transient Attributes

    I have a transient attribute in a View Object that reflects the results of a costly calculation. Passivate to PS_TXN seems to me the best way to keep the result from one request to another.
    1. Has the calculated value to be cached by setAttributeInternal in the view row internal buffer, or has it to be cached as a member of the view row impl ?
    Passivation calls the getter, so it makes no difference. But how are members of view row objects cleared in the case they are "recycled" ?
    2. It seems to me that activating a transient attribute is somewhat buggy: the getter is always called before the restored value appears in the mInner-mCalcs member of a view row, which calculates the value unnecessarily. If the value was not cached with setAttributeInternal, it never appears in mCals.

    If your transient attributes are updateable, but you use them only within the scope of a single request (e.g. you set the value within a particular request and use it only until the end of this request but not later), then you do not have to passivate them. However, if they are updateable and you need their values to survive across multiple requests, then you must ensure that these attributes are passivated. In order to configure them to passivate you should do the following:
    1. Check the checkbox "Passivate State (e.g. Current Row, Bind Variables, etc.)" in the section "General/Tunning" in VO's definition dialog box;
    2. Either check the checkbox "Including All Transient Values" in the same section or leave it unchecked but check the checkbox "Passivate" in the definition of the corresponding VO attributes.
    N.B. The setting "Include All Transient Values" affects not only the transient VO attributes but the SQL-derived VO attributes (that are not entity-based) too.
    The configuration parameter "jbo.txn.disconnect_level" has nothing to do with passivation/activation. The correct way to test if your VOs behave correctly under passivation/activation is to disable AM pooling (e.g. to uncheck the checkbox "Enable Application Module Pooling" in the corresponding AM Configuration dialog box). When AM Pooling is disabled ADF passivates the corresponding AM state at the end of each HTTP request and activates it at the beginning of next request and so on. In this way you can check if your VOs are passivation/activation-safe.
    Please, have a look at the article [url http://docs.oracle.com/cd/E23943_01/web.1111/b31974/bcstatemgmt.htm#sm0318]Application State Management in the documentation for more information and detailed explanation.
    Dimitar

  • Sorting transient attributes

    Does anyone know how to take advantage of adf/uix built in sorting for view objects that contain only transient fields? For example, when I build a view object that references an entity object, sorting (via a uix table tag) works great. However, when using a view object with only transient attributes, sorting does not work through a uix table. Any ideas would really be appreciated...

    FYI,
    I've figured this out for anyone that sees this post in the future. Here's how to do it.
    1 Open the transient view object in the view object editor (by double-clicking on the view object).
    2 Select Java.
    3 Press the Class extends button.
    4 For Object, browse to the following class: SortableTransientViewObject (see below for implementation)
    5 Press OK.
    6 Select Attributes.
    7 For each attributes:
    1. Select the "Selected in Query" property.
    2. Copy the exact name of the attribute to the query column alias field.
    8 Press OK.
    SortableTransientViewObject implementation:
    =============================================================
    import java.util.Collections;
    import java.util.Iterator;
    import java.util.LinkedList;
    import java.util.List;
    import oracle.jbo.Row;
    import oracle.jbo.RowSetIterator;
    import oracle.jbo.server.ViewObjectImpl;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import oracle.jbo.NoDefException;
    public class SortableTransientViewObject extends ViewObjectImpl
    //flag for determining an invalid column index
    public static final int INVALID_COLUMN_INDEX_FLAG = -1;
    //default sort to INVALID_COLUMN_INDEX_FLAG
    private int sortColumnIndex = INVALID_COLUMN_INDEX_FLAG;
    private boolean sortAscending = true;
    * Sole constructor. Do not remove.
    public SortableTransientViewObject()
    * Sets the default sort order. If the order has not been pre-defined, then the
    * sort will not be executed when the view object is first created.
    * @param sortField the sort field index. Each view object row implementation
    * defines these attributes indices as constants. Those values are the values
    * that should be used for this method.
    * @param sortAscending sort ascending if true; descending otherwise.
    public void setDefaultSortOrder( int sortField, boolean sortAscending )
    this.setSortColumnIndex( sortField );
    this.setSortAscending( sortAscending );
    * ADF Framework extension.
    * <br>
    * This method is called by ADF when a view object is to be refreshed. In
    * the case of sorting, this signals that the view object should be sorted.
    * The ADF framework will have already called the setOrderByClause() method
    * which tells this view object what to sort by.
    public void executeQuery()
    sort( getSortColumnIndex(), isSortAscending() );
    * Over-riding to implement sort for transient view object.
    * <br>
    * This method will be called by the adf framework whenever a request
    * is made to sort the view object through a ui component; most
    * likely a table. The orderByClause parameter will always contain
    * the sort column and will optionally contain the sort direction.
    * <br>
    * This method parses the orderByClass parameter and sets the
    * corresponding sort index and direction. This method does not perform
    * the actual sort; the sort will not take place until the executeQuery()
    * method has been invoked.
    * @param orderByClause a string representing the sort column and sort
    * direction.
    public void setOrderByClause( String orderByClause )
    if( isNullOrEmpty( orderByClause ) ||
    isNullOrEmpty( orderByClause.trim() ))
    this.setSortColumnIndex( INVALID_COLUMN_INDEX_FLAG );
    this.setSortAscending( true );
    return;
    else
    orderByClause = orderByClause.trim();
    boolean sortAscending = true;
    String sortColumn = null;
    int spaceCharacterIndex = orderByClause.indexOf( ' ' );
    if( spaceCharacterIndex == -1 )
    sortColumn = orderByClause;
    sortAscending = true;
    else
    sortColumn = orderByClause.substring( 0, spaceCharacterIndex );
    String sortDirectionStringValue = orderByClause.substring( spaceCharacterIndex, orderByClause.length() );
    if( isNullOrEmpty( sortDirectionStringValue ) ||
    isNullOrEmpty( sortDirectionStringValue.trim() ) )
    sortAscending = true;
    else
    sortDirectionStringValue = sortDirectionStringValue.trim();
    if( "desc".equals( sortDirectionStringValue.toLowerCase() ) )
    sortAscending = false;
    try
    this.setSortColumnIndex( this.getAttributeIndexOf( sortColumn ) );
    catch( NoDefException e )
    this.setSortColumnIndex( INVALID_COLUMN_INDEX_FLAG );
    this.setSortAscending( sortAscending );
    * Sort helper method.
    * <br>
    * Sorts the view object. Because adf's built in sorting only works for
    * non-transient attributes (ie attributes from an entity object), this
    * method was created as a framework extension to support sorting.
    * <br>
    * This method accomplishes sorting by using Java's built in api for
    * sorting: the Collections framework. First, all view object rows are
    * copied into List object. Second, the list is sorted using Java's built
    * in Collections.sort method. Third, all rows are removed from the view
    * object and lastly, the view object is re-populated by iterating through
    * the list.
    * @param sortField the field to sort by.
    * @param sortAscending sort ascending if true; descending otherwise.
    private void sort( int sortFieldParameter, boolean sortAscendingParameter )
    //don't sort if the column index is invalid
    if( sortFieldParameter < 0 || sortFieldParameter >= this.getAttributeCount() )
    return;
    //step 1 - copy all rows to a List object and remove all rows from view object
    List list = new LinkedList();
    RowSetIterator rowIterator = this.getRowSet().createRowSetIterator( null );
    while( rowIterator.hasNext() )
    Row rowToAdd = (Row) rowIterator.next();
    list.add( rowToAdd );
    rowIterator.closeRowSetIterator();
    //step 2 - sort the List object.
    Collections.sort( list, new ViewObjectRowComparator( sortFieldParameter, sortAscendingParameter ) );
    //step 3 - remove all rows from view object
    rowIterator = this.getRowSet().createRowSetIterator( null );
    while( rowIterator.hasNext() )
    rowIterator.next();
    rowIterator.removeCurrentRowAndRetain();
    rowIterator.closeRowSetIterator();
    //step 4 - re-populate the view object with the sorted list.
    Iterator sortedValuesIterator = list.iterator();
    while( sortedValuesIterator.hasNext() )
    Row row = (Row) sortedValuesIterator.next();
    this.insertRow( row );
    public boolean isSortAscending()
    return sortAscending;
    private void setSortAscending(boolean sortAscending)
    this.sortAscending = sortAscending;
    public int getSortColumnIndex()
    return sortColumnIndex;
    private void setSortColumnIndex(int sortColumnIndex)
    this.sortColumnIndex = sortColumnIndex;
    =============================================================

  • Validation error :JBO-27008 vanishes by pressing submit two times???

    Hi All
    I am developing a web application using ADF BC,struts and jsp with JDEV 10.1.3.
    In my JSP page whenever I create a new record, after submit the desired record is submitted into the read-only table below, but I receive the validation error:
    JBO-27008: Attribute set for MaterialName in view object viewJoinPurchaseComplexUnit1 failed.
    Wondering that when I press the submit button again the error vanishes and my data is inserted into the database.
    I'm wondering why I have to press submit two times and then everything goes right? What is wrong among here? what should I do?

    Frank,
    The view in my BC Tester runs very well. Consider I have a viewJoin which is created by joining 4 view objects and I try to insert in one of them and the other views are reference,updateable. in my jsp page(input form) I have to fill in some reference fields in order to display the user what he has selected from the other page(handeled with javascript). Does this have something to do with the problem? when I do not fill the MaterialName field I do not encounter this problem. I have other fields like MaterialName filled from outside and are reference but they are working fine. Also, I do not have this error when Update, delete, Find/execute, and by create when I change the field materialname to null everything goes fine, but all the other transactions(Update, delete, Find/execute) cripple by that.

  • Transient attribute  in viewobject and entity object

    i added a transient attribute to an entity object . Then, for the view object based on that entity object, i added this transient attribute. The attribute name is Department Description. When i display the record(s) from this view object, everything is cool. But, when i try to create/insert a new record, i get error:
    JBO-27019: Get method for attribute "DepartmentDescription" could not be resolved. What is going on here and what do i need to change to create/insert a new entity row which has a transient attribute?
    As well as i added trasient attribute in view object also ....same erroe is comming ..................
    Thanks inadvance

    Hello Siva,
    have you already solved your problem?
    I have a very similar error.
    Thanks.
    Peter

  • Passivate option in VO transient attributes & AM connection type

    Hi
    My English isn't very good.
    I use Jdeveloper 11.1.1.3.0
    I have 2 questions:
    1. I defined some View Obj and in each View Obj I made transient attributes. I don't know if the Passivate option of these transient attributes should be enable or not?
    2. for AM connection type I use JDBC DataSource : "jdbc/ConnectionName". If I change JDBC DataSource to "java:comp/env/jdbc/ConnectionName", does it exist any difference?
    Habib

    If your transient attributes are updateable, but you use them only within the scope of a single request (e.g. you set the value within a particular request and use it only until the end of this request but not later), then you do not have to passivate them. However, if they are updateable and you need their values to survive across multiple requests, then you must ensure that these attributes are passivated. In order to configure them to passivate you should do the following:
    1. Check the checkbox "Passivate State (e.g. Current Row, Bind Variables, etc.)" in the section "General/Tunning" in VO's definition dialog box;
    2. Either check the checkbox "Including All Transient Values" in the same section or leave it unchecked but check the checkbox "Passivate" in the definition of the corresponding VO attributes.
    N.B. The setting "Include All Transient Values" affects not only the transient VO attributes but the SQL-derived VO attributes (that are not entity-based) too.
    The configuration parameter "jbo.txn.disconnect_level" has nothing to do with passivation/activation. The correct way to test if your VOs behave correctly under passivation/activation is to disable AM pooling (e.g. to uncheck the checkbox "Enable Application Module Pooling" in the corresponding AM Configuration dialog box). When AM Pooling is disabled ADF passivates the corresponding AM state at the end of each HTTP request and activates it at the beginning of next request and so on. In this way you can check if your VOs are passivation/activation-safe.
    Please, have a look at the article [url http://docs.oracle.com/cd/E23943_01/web.1111/b31974/bcstatemgmt.htm#sm0318]Application State Management in the documentation for more information and detailed explanation.
    Dimitar

  • How to reference a custom property in a vo transient attribute expr + bug

    Hi all
    I have created a transient attribute with an expression that evaluate null content to replace it by a appropriate text.
    <ViewAttribute
        Name="DescriptionUI"
        IsUpdateable="false"
        IsSelected="false"
        IsPersistent="false"
        PrecisionRule="true"
        Type="java.lang.String"
        ColumnType="VARCHAR2"
        AliasName="VIEW_ATTR"
        SQLType="VARCHAR">
        <TransientExpression><![CDATA[((Description == null) ? 'Pas de description' : Description)]]></TransientExpression>
      </ViewAttribute>I have defined a custom property for that attribute that contains the message text. I was surprised to see that the custom property was not associate with the attribute in the source file. Don't understand where the association is done
        <Properties>
          <CustomProperties>
            <Property
              Name="flex.tree.noLabel"
              ResId="flex.noDescription"/>
          </CustomProperties>
        </Properties>I had some difficulties to use the custom property editor. When creating a new related one by using an existing resource the property column value is not changed and the content 'Property' is generated. Because no relationships exists between attribute and the property, the entry is lost in the table referring custom property list for the attribute when your come back into the view object or if you save an another entry in an another attribute.
    So my first question ? Is the attribute editing part the right part to define custom property pairs if they are not related to attributes ? is it a bug ?
    My second question is : is it possible to evaluate the bundle in the expression (replacing the literal 'Pas de description' by an expression) ? What is the expression to use ? Where it is described to do such things in the help or in the documentation ?
    Thank you

    This is wrong
    ((Label == null) ? {FlexParameterModelBundle['flex.tree.noLabel']} : Label)
    What is the correct syntax to refer to the project model standard bundle in the groovy expression ?
    Thank for the help !

Maybe you are looking for

  • Sub vi front panel opens when main vi opens

    When I open my main vi I have one of my sub vi front panels that opens.  I looked in the properties for the sub vi and Show front panel when loaded is NOT checked. Is there something else I need to look at? Solved! Go to Solution.

  • Web Dynpro Metadata

    Hi, i'am computer science student and i'am interested in model-driven-architecture. thats why i'am interested in the web dynpro metadata. is it possible to extract/view the metadata of a web dynpro comp.? are there any technical documents about the m

  • AQ B2B-EDI fails

    I have faced a typical problem while reading data from an Oracle AQ adapter and sending it to a B2B adapter.I am using a simple BPEL process for this co-ordination.I am using B2B EDI. The problem is there is a headertype element both in AQ Adapter in

  • IPad 3 safari crashing since 7.1.2 update

    I Updated all 3 of my is devices last week - iPhone 5c, iPad 3 and iPad 4, but only the iPad 3 is having problems with crashing Safari. Specifically, when trying to fill out forms on a number of different websites, it's crashing every time. So far I'

  • Login prompt appears for web app when sql db is not on same server as WebAp

    Hi, I am deploying a VS2005 web application on a server (which has crytalReportsviewer); lets call that server A. The database the crystal reports access are on a different server, server B. In this scenario, when I run the web application, and try t