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

Similar Messages

  • 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.

  • 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;
    }

  • 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

  • How to change sql expression of SQL-Calculated Attribute of view object ?

    Hi
    jdev 11.1.1.5
    I have a view object with a SQL-Calculated Attribute (sumAnalytic) how can I change sql expression of this attribute in runtime?
    for example in application module method??

    Hi Mr Timo
    Thanks for your reply but I do not need dynamic vo because I can not change all of my vo
    I only need to change expression of SQL-Calculated Attribute of view object in run time.
    For this I set expression in view object something like this 'select 2 from dual' and in run time in my AM method I get the vo query and replace 'select 2 from dual' with something like 'selet sum(amnt) over (partition by 1)' and set new query.
    But I think the better solution must exist
    Thanks

  • How to put validation between attributes at View Object level in BC4J

    Hi,
    Is it possible in BC4J to put validation between attributes at View Object level?
    I know that I can do it at Entity Object level in validateEntity method, but I have several View Objects connected with one Entity Object and don't want to have the same validation logic for all View Objects.
    Thanks for any help!

    It returns errorWhat error does it return?
    John

  • Dirty check for transient attributes in view object

    Hi,
    I am using JDeveloper 11.1.1.4 and ADF BC in my project.
    In one of my view objects,I have a transient attribute added for some business logic.
    I am doing dirty check in my project as below.
    boolean dirty = false;
    boolean amDirty = false;
    // check application module
    ApplicationModule am =
    getBindingContainer().getDataControl().getApplicationModule();
    amDirty = am.getTransaction().isDirty();
    //Check if datacontrol is dirty
    BindingContext bctx =
    oracle.adf.controller.binding.BindingUtils.getBindingContext();
    dirty =
    bctx.findDataControlFrame(bctx.getCurrentDataControlFrame()).isTransactionDirty();
    return amDirty || dirty;
    My requirement is that,I dont want the dirty check to be applied on the transient attribute in the view object.
    Is there any way to achieve this.Please advice...
    Regards,
    Praveen

    Hi Frank,
    Thanks for the suggestion.
    I followed the link.But if a transient attribute is modified,then also ((ApplicationModule)getDataProvider()).getTransaction().isDirty() is returning true and the transaction is made dirty.
    I am setting a transient attribute like this getNwOperVOIter().getCurrentRow().setAttribute("AcctNoTrans")....when I am editing a row.
    Can I get explicit handle at viewobjectimpl for this transient attribute??
    Regards,
    Praveen

  • How to populate transient attribute from view object dynamically

    I have three 4 tables named as "employee,event,event_progress,and checklist progress". i have created a view object using the first three tables . i ahave also created 5 transient variables in to the same view object.when i dragged the view object in to my page as a table i want to populate those transient attribute.
    i have 5 transient attribute which are present as a column value named as chechlist_name in another table "checklist".those all transient attribute also having two sub rows whose data should be populated from the checklist progress table.

    Hi
    Please post your question on this forum, your question belong to this forum.
    JDeveloper and ADF
    Muhammad Nasir

  • Deleting attributes in view objects...

    I rewrote my query and now the attribute mappings are all wrong. The number of columns doesn't match the number of attributes. Other than laboriously editing the XML for the view object, is there an a way to get rid of all the view attributes and start as if it was a new VO? I tried selecting them in the wizard and structure pane to delete them, but this did not work. The xml file is protected in the XML editor.
    Any help is appreciated.
    UPDATE:
    I figured it out. Never mind.
    Message was edited by:
    user530348

    Best is to Open VO with Wizard . Some times VO can be modify manually using XML files but this method are more error prone.
    Hope your VO files got disturbed thats why you can edit with wizard.
    If you have its backup copy then open with wizard.
    Thanks

  • How to define attributes at view object level ?

    Hi,
    I am defining one attribute at view level and also i am declare a bind variable.
    eg: attribute name:days Bind variable: :Enter_The_Days
    and In the days attribute-->(scheduledshippeddate-requestdate)
    and In the where condition Days>:Enter_The_Days
    But at the time of running the application module,It returns error. Can you please help me on tha.

    It returns errorWhat error does it return?
    John

  • [SOLVED] New attributes in View Object not visible in pageDef

    Hi,
    I'm having a View Object whererin I create new attributes. The problem is that the newly created attributes are not available for selection in a table binding in the page definition.
    It seems like there is still somewhere a reference to the 'old' collection of attributes of the View Object. Is there a way to force an update?
    The .xml file of the View seems to have the correct query containing the new attributes. Altough, when I try to edit the table binding in the pageDefinition, the attributes are not available in the 'Available Attributes' frame.
    Thanks,
    Koen Verhulst
    edit: solved
    Edited by: Koen Verhulst on Mar 5, 2009 8:47 AM

    Hi Chetan,
    I am now able to add a new tab after adding a new entry with the Main View name in "Assign Access levels to Incident Tabs" in transaction SPRO.
    However, I am now facing a new issue when I add a main view in OIF component. There are 12 main views in the Object Instance Schema with ID's MainView<sequencenumber> as shown below.
    But when I add a new main view I am getting the ID with the format MainVIew<sequencenumber_hexadecimalvalues> and also I am able to edit the ID value which is not enabled for other main views as shown below.
    The problem with this hexadecimal value is that every time a change is done and I save the configuration, the number changes and this is causing problem as the configuration in SPRO does not match and the new tab becomes invisible.
    Please could you let me know what could be the reason and how to rectify this?
    Regards,
    Poojith M V

  • Uppercase Attributes in View Object

    Hi
    Any one help me please on BC4J View Object Attributes should display in Uppercase only. currently default is InitCap.
    much appreciate your help.
    Regards
    Srini

    Hi Frank,
    Thanks for the suggestion.
    I followed the link.But if a transient attribute is modified,then also ((ApplicationModule)getDataProvider()).getTransaction().isDirty() is returning true and the transaction is made dirty.
    I am setting a transient attribute like this getNwOperVOIter().getCurrentRow().setAttribute("AcctNoTrans")....when I am editing a row.
    Can I get explicit handle at viewobjectimpl for this transient attribute??
    Regards,
    Praveen

  • Transient attribute in View Object

    I need to create a transient attribute on a VO query based ,I need a transient attr with a string value ,then I used the JDEV wizard and keep Literal value option and put a value string in value box.
    The problem is that when I drag and drop the relative property from DATA CONTROL to create an output text field , running all I don't see on web page the inserted value on VO, why ?
    thanks

    If you don't need to change this value then you can use Expression instead of Literal and put value under " ".
    But, if you need to change this value, then you can:
    - add something like this to your query: (select 'default_value' from dual) OR
    - override createInstanceFromResultSet() in your ViewObjectImpl class and set default value to row OR
    - if value of this transient object can't be null, use modified version of codigoadf approach:
    public String getDummy() {
         //return (String) getAttributeInternal(DUMMY);
        return getAttributeInternal(DUMMY) == null ? "yourValue" : getAttributeInternal(DUMMY);
    }Dario

  • Error: oracle.jbo.NameClashException: JBO-25001:

    Hi,
    I am getting the error "JBO-25001: Name iterator of object type View Row Set Iterator already exist" when a button is clicked.
    The scenario is as follows
    A dialog page by invoking the OADialogPage class when a button (ArCmSubmit) is clicked. The following code in the controller is used for the same.
    String SubmitBtn = oapagecontext.getParameter("ArCmSubmit");
    String SubmitConfirm = oapagecontext.getParameter("OkButton");
    if(SubmitBtn != null)
    String messageText = oapagecontext.getMessage("WFSAPPS", "WFS_CMGT_CLOSE_CASE_FOLDER_MSG", null);
    OAException mainMessage = new OAException(messageText);
    OADialogPage dialogPage = new OADialogPage(OAException.WARNING, mainMessage, null, "", "");
    dialogPage.setOkButtonLabel("Ok");
    dialogPage.setNoButtonLabel("Cancel");
    dialogPage.setOkButtonItemName("OkButton");
    dialogPage.setNoButtonItemName("NoButton");
    dialogPage.setOkButtonToPost(true);
    dialogPage.setNoButtonToPost(true );
    dialogPage.setPostToCallingPage(true);
    dialogPage.setReuseMenu(false);
    oapagecontext.redirectToDialogPage(dialogPage);
    This works fine the first time when the Dialog page opens up as expected. Now after choosing "Ok" or "No" button the control goes back to the calling page. Now when the "ArCmSubmit" button is clicked the following error is received.
    oracle.apps.fnd.framework.OAException: oracle.jbo.NameClashException: JBO-25001: Name iterator of object type View Row Set Iterator already exists
         at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1223)
         at oracle.apps.fnd.framework.webui.OAPageErrorHandler.processErrors(OAPageErrorHandler.java:1408)
         at oracle.apps.fnd.framework.webui.OAPageBean.processFormRequest(OAPageBean.java:2704)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1707)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:511)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:432)
         at OA.jspService(OA.jsp:33)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:534)
    Any idea why this is happening ?

    Hiten,
    I had the same problem but i was able to rectify this by using the following steps:
    Possible Cases for your problem is:
    Can you check whether are you using oracle.jbo.RowSetIterator to Iterate through the View Object Rows: Something like this:
    oracle.jbo.RowSetIterator rowSetIter = vo.createRowSetIterator("pathIter");
    If so after performing all the steps of iterating through the View Object then close the RowSetIterator using, rowSetIter.closeRowSetIterator();
    or Can you check if you are creating two RowSetIterators with the same name ex:
    oracle.jbo.RowSetIterator rowSetIter = vo.createRowSetIterator("pathIter");
    oracle.jbo.RowSetIterator rowSetIter = vo.createRowSetIterator("pathIter");
    Hope this helps
    Regards,
    Hari

  • How to Use Transient View Objects to Store Session-level Global Variables

    hi
    Please consider section "40.8.5 How to Use Transient View Objects to Store Session-level Global Variables"
    at http://download.oracle.com/docs/cd/E14571_01/web.1111/b31974/bcstatemgmt.htm#ADFFD19610
    Based on this documentation I created the example application
    at http://www.consideringred.com/files/oracle/2010/ProgrammaticalViewObjectAndRollbackApp-v0.01.zip
    It behaves as show in the screencast at http://screencast.com/t/qDvSQCgpvYdd
    Its Application Module has a Transient View Object instance "MyEmployeesContextVOVI", as master for the child View Object instance "EmpInCtxJobVI".
    On rollback the Transient View Object instance keeps its row and attribute values.
    Also when passivation and activation is forced (using jbo.ampool.doampooling=false ) the Transient View Object instance seems to keep its row and attribute values.
    questions:
    - (q1) Why does the expression #{bindings.MyEmployeesContextVOVIIterator.dataControl.transactionDirty} evaluate as true when a Transient View Object instance attribute value is changed (as shown in screencast at http://screencast.com/t/qDvSQCgpvYdd )?
    - (q2) What would be a robust approach to make a Transient View Object instance more self-contained, and manage itself to have only one single row (per instance) at all times (and as such removing the dependency on the Application Module prepareSession() as documented in "5. Create an empty row in the view object when a new user begins using the application module.")?
    many thanks
    Jan Vervecken

    Thanks for your reply Frank.
    q1) Does sample 90 help ? http://blogs.oracle.com/smuenchadf/examples/
    Yes, the sample from Steve Muench does help, "90. Avoiding Dirtying the ADF Model Transaction When Transient Attributes are Set [10.1.3] "
    at http://blogs.oracle.com/smuenchadf/examples/#90
    It does point out a difference in marking transactions dirty by different layers of the framework, "... When any attribute's value is changed through an ADFM binding, the ADFM-layer transaction is marked as dirty. ...".
    This can be illustrate with a small change in the example application
    at http://www.consideringred.com/files/oracle/2010/ProgrammaticalViewObjectAndRollbackApp-v0.02.zip
    It now shows the result of both these expressions on the page ...
    #{bindings.MyEmployeesContextVOVIIterator.dataControl.transactionDirty}
    #{bindings.MyEmployeesContextVOVIIterator.dataControl.dataProvider.transaction.dirty}... where one can be true and the other false respectively.
    See also the screencast at http://screencast.com/t/k8vgNqdKgD
    Similar to the sample from Steve Muench, another modification to the example application introduces MyCustomADFBCDataControl
    at http://www.consideringred.com/files/oracle/2010/ProgrammaticalViewObjectAndRollbackApp-v0.03.zip
    public class MyCustomADFBCDataControl
      extends JUApplication
      @Override
      public void setTransactionModified()
        ApplicationModule vApplicationModule = (ApplicationModule)getDataProvider();
        Transaction vTransaction = vApplicationModule.getTransaction();
        if (vTransaction.isDirty())
          super.setTransactionModified();
    }Resulting in what seems to be more consistent/expected transaction (dirty) information,
    see also the screencast at http://screencast.com/t/756yCs1L1
    Any feedback on why the ADF Model layer is so eager to mark a transaction dirty is always welcome.
    Currently, question (q2) remains.
    regards
    Jan

Maybe you are looking for