Binding transient attributes

I have a transient attribute in my EntityObject and a corresponding attribute in my ViewObject. It seems that the JUTextFieldBinding created by:
setDocument(JUTextFieldBinding.createAttributeBinding(panelBinding, jTextArea, "ViewName", null, "ViewIter", "AttributeName")));
doesn't call setAttribute() when the JTextArea's text is changed bu the user.
I can listen for focusLost myself and set the attribute and all is fine.
Everything is also fine for persistent attributes.
I'm not sure if I'm creating a transient or Entity-derived ViewObject attribute here. The documentation describes both but fails to say how to create them. Is it dependent on the ViewObject attribute name matching an EntityObject attribute name?
Tony.

Tony,
Transient attributes are not treated differently at the JClient level. I tried (using JDev 9.0.3.1) your scenario and was able to update a TextArea mapped to a entity-derived (transient at entity-level) View Attribute with a name different from the Entity-Attribute name and was able to update it's value, move to another row, come back and the value was there.

Similar Messages

  • Can Shuttles be based non-base  table ViewObjects with transient attributes

    Hello,
    Users have to select records from a data collection and a Shuttle looks most appropriate/nice for this purpose. We can introduce technical intersection tables in order to generate the Shuttles with JHeadstart 10g R3 if necessary, but there is no “functional” need to update any data in the database and therefore it would be practical if the ‘right’ side from a Shuttle can be based non-base table ViewObjects with transient attributes only. So, our interested is to know which records have been selected, i.e. moved to the right side from the Shuttle.
    Hope that my question is clear enough.
    Greetings,
    Michael

    Michael,
    This cannot be generated out-of-the-box.
    It is easiest to add the shuttle post-generation to your page, and then create a custom template to generate your custom shuttle into the page. I suggest you take a look at an example of a generated shuttle in a page, and the JHeadstart IntersectionShuttleBean class. You will see that the value property of <af:selectManyShuttle> points to the selectedKeys method in the JHeadstart Shuttle bean. In your case, you can create your own managed bean and bind the value property to your own method which will provide you access to the selected rows. The value property of the selectItem within the af:selectManyShuttle determines the property that is used to identify the selected row (which is the row key in case of Jhs-generated shuttles).
    Steven Davelaar,
    JHeadstart Team.

  • Problem extending a VO with transient attributes

    I am trying to extend a VO that is based on a query with a Binding Style of Oracle Positional.
    The Attributes that are listed for the original VO are the attributes from the Query Statement plus some transient attributes.
    I extended the VO by modifying the query. Added my two columns at the END of the Select statement.
    Successfully substituted the VO but I am getting a runtime error when saving a record.
    Reviewed the extended VO and noticed that the new columns are listed as attributes AFTER the transient attributes.
    This could be the cause of the runtime error since one of the transient attributes listed after the query attributes is RowChanged.
    How can I force my new attributes to be positioned BEFORE the transient attributes?
    Is this the problem or is it something else?
    Thanks for any suggestions.

    Runtime error:
    java.lang.NullPointerException
         at oracle.apps.pos.supplier.server.ByrSuppAMImpl.validateDffVo(ByrSuppAMImpl.java:3575)
    Yes, I have checked the attributes (Updateable Always, etc.) and the attribute mappings and they all seem fine.
    My two new attributes are at the end of the original attributes. I think my new attributes should NOT be at the end of the original attributes because the original VO.xml has attributes from the query and then transient attributes that are not from the query. My extended VO now has the attributes from the original query, the transient attributes, and then my new attributes from the query.
    The first two transient attributes are RowChanged and RenderFlex and it seems like OAF is confusing it with my new attributes because:
    (1) the runtime error I get when saving (RowChanged attribute)
    (2) the Flex field icon grays out after my VO extension was deployed (RenderFlex attribute)
    To test out my theory, I would like to move my new attributes to be listed BEFORE the transient attributes.
    I tried editing the VO.xml file by moving my new attributes (query-related) to the end of the other query-related attributes and before the transient attributes (that are not query-related). When I try to view my changes inside JDeveloper, the attributes are shown in the new order (on the left) but the query mappings are still listed in the old order.
    Where can I re-order the query mappings? Tried using the up/down arrows on the right but it's grayed out.
    If I re-order the attributes in the VO.xml file and save it, is that all the change I need to do?
    Thanks.

  • 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

  • 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

  • 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

  • VO Transient Attribute referencing the Attribute from another VO

    Hi I have an scenario where I have a VO "A" has a transient Attribute say aPeriod, (at any given point the executed VO"A" has only 12 Rows) , I have another VO "B" which when executed gives me exactly 12 Rows with attribute "bPeriod".
    I want the 12 Rows of VOA with aPeriod attribute to hold the values from VO"B" attribute bPeriod. Is there any groovy expression / or any View accessor usage which can enable me to resolve this scenario. currently I am achieving this programaticaly by iterating every row of VOA and VOB and assigning aPeriod attribute with bPeriod ( which I am not happy with ).
    Please help me if there is any better solution for the same.
    Thanks
    TK

    Thanks for your reply, but there isnt any common attribute between the two VO, I am having VO1.aPeriod attribute has a transient one and VO2 when executed gives me VO2.bPeriod, actually this is a small subset of a bigger scenario.
    both VO1 and VO2 are SQL based read only VO. both have same query but both needs two different bind variable bindPeriodVariable = 12 and 24 respectively which returns VO1.xPeriod and VO2.bPeriod, when executed.
    I Am supposed to show both VO1.xPeriod and VO2.bPeriod in a single ADF ReadOnly table.
    so I thought of having a transient attribute called aPeriod in VO1 and assign it with VO2.bPeriod individually by iterating every row of VO1 and VO2.
    I am not pleased with the way I am doing this stuff.
    Pls help me with this issue.
    Thanks
    TK.

  • Filter and Sort Transient Attribute from Query Panel

    Jdev 11.1.1.3
    Hello,
    i am not able to filter a transient attribute from the standard query panel (with result table).
    I did following things:
    -Call an Initial AppMod Service Method from my Bounded Task Flow, and fill the Transient Attribute with some values (with setter method)
    -Next, call the Page with following characteristics:
    I defined a custom View Criteria with particular Bind Variables, take as query execution mode = In Memory and activate the Auto Query Flag
    Drag and Droped this Criteria from Conroll Panel on the Page as Query Panel with Table
    In Page Data Binding Definition, i set the InitialQueryOverridden Flag to true, otherwise no data will be filled in the transient attribute
    The sort and filter works only for the Database Attributes.
    Has anyone an Idea, how to keep same behavior for the trans attr.?
    Thank You!
    (Note: When i set the Query Mode (after init Call) to vo.setQueryMode(ViewObject.QUERY_MODE_SCAN_VIEW_ROWS), then the sorting of Trans Attr is working fine.
    But the filtering is not working well: Lets say a filtering is done by the Trans Attribute and we get 3 Rows. But when all rows wanted to be retrieved again, only those 3 are available then, no chance to get all rows back)

    Hi,
    assuming that sorting and filtering are similar, have a look here
    sorting on transient attribute
    Frank

  • Transient attribute for a view object coming from a socket

    Hello,
    I'd like to create a readonly table (based on a view object without a backing entity).
    Some columns are coming from a table and some other columns (based on the table key) are coming from a socket.
    The problems is that the additional columns are all returned at once by the socket (to avoid calling it for every field and killing our network) and then stored in a java bean.
    So i'd like to make the call to the socket once for every row of the table.
    Do you know in which method of the View object should i make the call (maybe I should do this at the Row level ?)
    Do you have any idea ?
    thank you
    -regards.

    Hi,
    you can try the follwing
    In the bindings of your jspx page you can see iterators defined under "executables". set the "*CacheResults*" property of the specific view object iterator that contains the transient attribute to false.(The default value is true).
    Example:
    <iterator Binds="EditWorkflowNodesView1" RangeSize="25"
    DataControl="AdministratorAppModuleDataControl"
    id="EditWorkflowNodesView1Iterator" CacheResults="false"/>
    Regards,
    Priya.

  • Transient attribute of a view object is not reset after saving

    I have a jspx page based on view object with transient attribute(This transient attribute has been created in entity object on which view object is based). User enters data in transient attribute,some calculation is done and then data is updated and page navigates back to menu page.
    Now when I reenter page then old data still apears on the page.I want old data to be refreshed on reentering.Kindy help

    Hi,
    you can try the follwing
    In the bindings of your jspx page you can see iterators defined under "executables". set the "*CacheResults*" property of the specific view object iterator that contains the transient attribute to false.(The default value is true).
    Example:
    <iterator Binds="EditWorkflowNodesView1" RangeSize="25"
    DataControl="AdministratorAppModuleDataControl"
    id="EditWorkflowNodesView1Iterator" CacheResults="false"/>
    Regards,
    Priya.

  • Changing value of a transient attribute  programmatically not working.

    Hi ,
    I am using Jdeveloper 11.1.2.2.0
    I have a ViewObject with following transient attribute
    CheckBox       Boolean
    ValidTillDate  Date
    I want to perform following operation
    1. If user selects CheckBox it will give ValidTillDate a future date.and if user uncheck CheckBox then ValidTillDate should become null.
    2. If user changes ValidTillDate to current date then both CheckBox should become false and ValidTillDate should become null.
    I have implemented it through ValueChangeListener my first requirement is working fine , in the second one though when the user gives current date to ValidTillDate then CheckBox gets unselected but the ValidTillDate is not getting null value.
    I have used the following code:
    public void ValidTillDateValueChangeListener(ValueChangeEvent valueChangeEvent){
      BindingContext bctx = BindingContext.getCurrent();
      DCBindingContainer binding = (DCBindingContainer)bctx.getCurrentBindingsEntry();
      DCIteratorBinding loationVO1Iterator = (DCIteratorBinding)binding.get("MyVO");
      if(Date.getCurrentDate().compareTo((DATE) valueChangeEvent.getNewValue())>=0){
      loationVO1Iterator.getCurrentRow().setAttribute("CheckBox", false);
      loationVO1Iterator.getCurrentRow().setAttribute("ValidTillDate", null);
    }I think its because ValueChangeListener is called before the value is changed , so my programmatic changes are getting overwritten by the value userSelects.
    What should I do?
    Thanks,
    Puneet
    Edited by: Puneet on Jul 26, 2012 1:26 PM

    Questionably this sort of business logic could/should be implemented in ADF BC rather than the view layer.
    CM.

  • How to search on a transient attribute in a VO ?

    Hi,
    I want to search on a field, on my page, that's not in the database. So I created a transient attribute, in the view object, that is queriable so it appears on the find page.(with JDeveloper/JHeadstart) But when I use the attribute in the where clause of the View Object I get the following error: "SQL Query Error Message: ORA-00904 "STATUSGROEP": invalid identifier".
    I also tried to use a bind variable (:1) instead of the attribute name in the where clause but then I get the runtime error: "java.sql.SQLException: ORA-01008: not all variables bound".
    What am I doing wrong ?
    Regards,
    Chris van Dijk

    Michiel / Chris
    Based on the find attributes, JHeadstart automatically adds a SQL WHERE CLAUSE to the ViewObject. Since transient attribute do not map to a valid column name, this will not work.
    I built a little testcase with a transient attribute, and it was simply ignored, I did not get the ORA-904. From your description, it looks like you added some bind variables to the ViewObject as well. That is not supported in combination with find pages, unless you overwrite method
    DataObjectSet getDataObjectSet(String queryType, HashMap arguments, Object sessionId, int startRange , int rangeSize)
    on the handler.
    Anyway, if you really want to filter on a transient attribute, you will have to do that in java code, overriding the aforementioned method:
    - remove the transient attribute from the arguments HashMap
    - call super to execute the query without the transient attribute
    - loop over the result set and remove the rows that do not match with the transient attribute value.
    This might be quite slow, depending on the size of the result set returned by the query. Can't you somehow translate the transient attribute value to some SQL column values so all filtering can be done using SQL?
    Steven Davelaar,
    JHeadstart Team.

  • 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

  • Regarding transient attribute

    Hi
    I am using jdev 11.1.2.1.0
    I have a transient attribute in a VO
    I want to perform search by transient attribute.
    Is it possible by any way ?
    Thanks.

                  vo.defineNamedWhereClauseParam("bvar", null, null);
                  vo.setWhereClause("colofTable = :bvar");                        //column - same of table, not of mapped attribute of java in overviwe>Attributes
                  vo.setNamedWhereClauseParam("bvar", getInputText());   //'value' property of inputtext is bind to backingbean private variable exposed by getter/setter.
                  vo.executeQuery();   

  • 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

  • Changing iTunes account's country?

    Hi, If i change my iTunes country account, will all my purchases from the previous country be gone? ( the account is the same one but changed to a different country) Thanks

  • Exporting Sapscripts...

    I have exported a number of Sapscript Russian forms a non-unicode SAP system using program RSTXSCRP. I would expect that when I import this file back into our unicode SAP system that I would be able to see the Russian text, but I can't the text is al

  • Is there any limitation

    Is there any limitation to number of parameters to be passed to a procedure (when submitted using htp post ) Thanks, NPR

  • Lightroom 3.2 and Camera Raw 6.2 Now Available

    Final releases of Lightroom 3.2, DNG Converter 6.2 and Camera Raw 6.2 are now available.  Additional details here: http://blogs.adobe.com/lightroomjournal/2010/08/lightroom-3-2-and-camera-raw-6-2-now-avail able.html Regards, Tom Hogarty Lightroom, Ca

  • Drag 'n Drop GUI maker

    I know that jbuilder offers a free download and it has a drag 'n drop feature to create gui's. i searched the eclipse.org site and could not find any plug-in for that same type of feature. are there any other free programs that offer drag 'n drop cap