View link accessor passes a ViewRowSetImpl

9.0.5.1
If I add a View link between a SQL only view object (A) and a View object (B) based on an entity object (cardinality 1 to 1) and request accessor methods are added to the view object (B) and the corresponding entity
I get an accessor in view object (B)
oracle.jbo.Row getXXXX - which seems okay
I get in the entity object
ViewRowImpl getXXXX - which also seems okay
However when getXXXX is called in the entity object a ViewRowSetImpl object is being passed back and so the cast fails.
I've checked the data and there is definitely only a one to one relationship between the data.
Anyone have any ideas what could be wrong?

I have the same problem with cardinality * to 0..1.
The created view link accessor return a ViewRowImpl but at runtime it returns a ViewRowsetImpl and I get a ClassCastException
I used following workaround:
Define an association and read from the association accessor instead of the View Link accessor.
ADF 10.1.2
Thanks
Frederic

Similar Messages

  • How to get the view link definition from the view link accessor

    Hi,
    I am using Jdev 10.1.3 and ADF BC. I am trying to do deep copy in a master/details view, after the new child record is created, I want to update the foreign key attribute. I know I can get the list of attribute definitions from the row in the view object, which include the view link accessors, I am wondering if I can get the view link definition from the view link accessors, so that I can get the source and destination attribute names.
    Thanks!

    Hi,
    you should get this through
    ViewObject vo = this.findViewObject("LocationsView1");
    int indx = vo.getAttributeIndexOf("DepartmentsView");
    ViewAttributeDefImpl vAttrDefImpl = (ViewAttributeDefImpl) vo.getAttributeDef(indx);
    ViewLinkDefImpl vdefImpl = (ViewLinkDefImpl) vAttrDefImpl.findViewLinkDefImpl();
    Note that this code starts from the ApplicationModuleImpl class, which is why I used this.findViewObject().
    Frank

  • ADF: use of view link Accessor in Entity Object = always null?

    Hi,
    JClient 9.0.5.2, adf model.
    I would like to use the view link accessor method in the master EO to retrieve detail EO values and the view link accessor method in the detail EO to retrieve master EO values.
    Detail Rule:
    In the detail EO an attribute is derived from an attribute of the master EO: detail attribute = master attribute.
    Master Rule:
    In the master EO an attribute is derived from the detail EO: master atribute set to 0 if detail EO exist else set to 0.
    Tables:
    Table Master => MasterEO => MasterVO
    - masterPK (not updateable)
    - masterField (not updateable)
    - hasDetailsFlag
    Table Detail => DetailEO => DetailVO
    - detailPK (not updateable)
    - masterPK => foreign key (not updateable)
    - masterField (query only)
    MasterDetailLink based on foreign key.
    In link wizard I asked for the generation of following accessors in the source & destination Entity Objects:
    In DetailEO accessor name: RetrieveFromMaster
    In MasterEO accessor name: RetrieveFromDetail
    In the DetailEO, I asked for the generation of the DetailEOImpl file, accessors and create method.
    As wriiten in the file, before the create method:
    ** Add attribute defaulting logic in this method. **
    I tought this is the place to retrieve the master attribute:
    The code:
    MasterVORowImpl masterVO = getRetrieveFromMaster();
    if (masterVO == null)
    System.out.println("MasterVORowImpl masterVO create NNNNNNNNNNNUUUUUUUULLLLLLLLLL");
    The masterVO is always null?
    I suppose I didn't understand something, my guest is that ViewObjects may not be used for default logic?
    I know how to implement those rules in the database with triggers.
    I think that the data I need for implementing those rules exist somewhere at the ADF level so retrieving the data from the db is not necessary?
    Could somebody give some clues?
    I didn't find a similar example in the Business Rules in BC4J document.
    Your help will be appreciated
    Frederic

    Hi,
    Detail Rule, copy attribute value form master.
    In DetailEOImpl:
    protected void create(AttributeList attributeList)
    setAttribute(MASTERFIELD,this.getMaster().getMasterField());
    super.create(attributeList);
    Master rule, set flag to 0 if no details else set to 1.
    In the MasterEOImpl added method to check if detail row exists based on Row Iterator => no db retrieval?
    This method also sets the flag accordingly:
    protected void checkHasOtherDetails()
    oracle.jbo.RowIterator ri = this.getRetrieveFromdetail();
    ri.last();
    // last() must be called else hasNext() returns true even on last delete ???
    Number hasDetails = Constants.NUMBER_NO; // = 1
    if (ri.hasNext() || ri.hasPrevious())
    hasDetails = Constants.NUMBER_YES; // = 0
    if (!getHasDetailsFlag().equals(hasDetails)) {
    this.setHasDetailsFlag(hasDetails);
    I call this method in the remove method of the detailEOImpl:
    public void remove()
    this.getRetrieeFromMaster().checkHasOtherDetails();
    super.remove();
    To set the flag I added follwoing code in the create method of the DetailEOImpl:
    protected void create(AttributeList attributeList)
    setAttribute(MASTERFIELD,this.getMaster().getMasterField());
    **** ADDED ***
    Number masterHasDetailsFlag = getRetrieveFromMaster().getHasDetailsFlag();
    if (!masterHasDetailsFlag.equals(Constants.NUMBER_YES)) {
    getRetrieveFromMaster().setHasDetailsFlag(Constants.NUMBER_YES));
    super.create(attributeList);
    One more question:
    Is there a danger of calling last() on row iterators in create/update/remove methods of *Impl files?
    => current row changed => any effect on display in JPanel
    Thanks
    Frederic
    PS All variable/method/class names have been manually renamed in this code so some small syntax problems may exist.

  • View link accessor for master view object with bind variables

    Is there a way to set bind variables for a view object to which a view link accessor is used to retrieve a view row from a detail view row in a master-detail relationship ?
    I understand that RowSet (or Row) returned by a view link accessor originates from an "internally created" view object instance.
    I am using 10.1.3.0.4 JDeveloper.

    Thanks! that's right the bind variables when i use it on where clause must be required, so i change my sql to:
    Select /*+ use_nl(p p2) */
    'F' tipo_persona,
    p.ID_PERSONA, p.TDOC, p.NDOC, p.DENO
    From SINT_PERSONA p,
    ( Select /*+ index(a SINT_PERSONA_IX2) */
    a.ID_PERSONA
    From SINT_PERSONA_DOCUMENTO a
    where ( NDOC = :p_cuit
    and :p_cuit <> 0 )
    ) p2
    Where p.id_persona = p2.id_persona
    AND (deno = decode(:p_deno,'null',null,upper(:p_deno)) or
    :p_deno = 'null')
    AND (NDOC = decode(:p_ndoc,0,null,:p_ndoc) or
    :p_ndoc = 0)
    and grado_confiab > 0
    and my bind variables:
    p_ndoc required default value 0
    p_cuit required default value 0
    p_deno required default value null
    and works ok!
    thanks a lot !!!!

  • Problem trying to access Detail VO via View Link  - Req/Distributions

    Hi,
    I'm attempting to access a detail VO using a View Link accessor. I'm not sure if I'm approaching this the right way, but here is what I am doing:
    oaAcctVORowImpl = (PoRequisitionLinesVORowImpl)aaAcctVO.getRowAtRangeIndex(q);
    RowIterator distRS = oaAcctVORowImpl.getPoReqDistributionsVO();
    No rows are returned although I am expecting rows.
    The getPoReqDistributionsVO is the accessor method of the Destination on the View Link (i.e. the detail VO).
    under oracle\apps\icx\por\req\server
    Any ideas would be greatly appreciated!
    Thanks,
    Teri

    The VO's and VL's are part of the OA framework - i.e. they were pre-generated.
    Here's the VL xml contents:
    <?xml version="1.0" encoding='windows-1252'?>
    <!DOCTYPE ViewLink SYSTEM "jbo_03_01.dtd">
    <!-- $Header: ReqLineToDistributionsVL.xml 115.0 2003/08/26 23:04:58 rileung noship $ -->
    <ViewLink
    Name="ReqLineToDistributionsVL"
    EntityAssociation="oracle.apps.icx.por.schema.server.ReqLineToDistributionsAO" >
    <DesignTime>
    <Attr Name="_isCodegen" Value="true" />
    <Attr Name="_version" Value="9.0.3.11.3" />
    </DesignTime>
    <ViewLinkDefEnd
    Name="PoRequisitionLinesVO"
    Cardinality="1"
    Owner="oracle.apps.icx.por.req.server.PoRequisitionLinesVO"
    Source="true" >
    <AttrArray Name="Attributes">
    <Item Value="oracle.apps.icx.por.req.server.PoRequisitionLinesVO.RequisitionLineId" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_minCardinality" Value="1" />
    <Attr Name="_isUpdateable" Value="true" />
    <Attr Name="_finderName" Value="PoRequisitionLinesVO" />
    <Attr Name="_accessor" Value="false" />
    </DesignTime>
    </ViewLinkDefEnd>
    <ViewLinkDefEnd
    Name="PoReqDistributionsVO"
    Cardinality="-1"
    Owner="oracle.apps.icx.por.req.server.PoReqDistributionsVO" >
    <AttrArray Name="Attributes">
    <Item Value="oracle.apps.icx.por.req.server.PoReqDistributionsVO.RequisitionLineId" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_isUpdateable" Value="true" />
    <Attr Name="_finderName" Value="PoReqDistributionsVO" />
    <Attr Name="_accessor" Value="true" />
    </DesignTime>
    </ViewLinkDefEnd>
    </ViewLink>

  • To find the view link in the attribute definition

    Hi, I am using Jdev 10.1.3.2 and ADFBC. I have two master/detail view objects which have view link defined between them. Now I am trying to do deep copy, but I don't want to hard code the view link accessor name in the code. Here is the part of the code to get the list of attributes:
    ParentVORow newRow = (ParentVORow)parentVO.createRow();
    StructureDef def = newRow.getStructureDef();
    AttributeDef[] attrs = def.getAttributeDefs();
    Now view link accessor is in attrs, but how can I tell which attribute in attrs is a view link accessor without comparing to the attribute name?
    Thanks!

    Please see section "25.3.4.1 Determining the Attribute Kind at Runtime" of the ADF Developer's Guide for Forms/4GL Developers on the ADF Learning Center at http://www.oracle.com/technology/products/adf/learnadf.html for more information on this.

  • Bug in bc4j?, view links at runtime, multi table relationships, accessor name

    The following seems like a bug in the business components framework
    to me:
    To make things simple, I will use view objects aV, bV, cV,
    corresponding rows aR, bR, cR and row iterators aI (not used though),
    bI, cI.
    I create two view links from aV to bV and from bV to cV at runtime,
    with the accessor names "Bs" and "Cs".
    ViewLink a2b = createViewLinkBetweenViewObjects(..., "Bs", ...);
    ViewLink b2c = createViewLinkBetweenViewObjects(..., "Cs", ...);
    First of all this code works perfectly fine:
    ViewObject aV = a2b.getSource();
    ViewObject bV = a2b.getDestination();
    ViewObject cV = b2c.getDestination();
    while(aV.hasNext())
    Row aR = aV.next();
    System.err.println("aR");
    while(bV.hasNext())
    Row bR=bI.next();
    System.err.println(" bR");
    while(cV.hasNext())
    Row cR=cI.next();
    System.err.println(" cR");
    Using the accessor name "Bs" at the first level is ok, too:
    ViewObject aV = a2b.getSource();
    while(aV.hasNext())
    Row aR = aV.next();
    System.err.println("aR");
    RowIterator bI=(RowIterator)aR.getAttribute("Bs");
    while(bI.hasNext())
    Row bR=bI.next();
    System.err.println(" bR");
    HOWEVER, USING THE ACCESSOR "Cs" AT THE SECOND LEVEL OF THE MULTITABLE
    RELATIONSHIP IN THE FOLLOWING CODE, GIVES ME AN EXCEPTION
    oracle.jbo.NoDefException: JBO-25002: Definition Cs of type Attribute
    not found. THE SEEMS LEGAL USAGE OF THE ACCESSOR "Cs" TOO ME THOUGH,
    THEREFORE MY SUSPICION OF A BUG.
    ViewObject aV = a2b.getSource();
    while(aV.hasNext())
    Row aR = aV.next();
    System.err.println("aR");
    RowIterator bI=(RowIterator)aR.getAttribute("Bs");
    while(bI.hasNext())
    Row bR=bI.next();
    System.err.println(" bR");
    RowIterator cI=(RowIterator)bR.getAttribute("Cs");
    while(cI.hasNext())
    Row cR=cI.next();
    System.err.println(" cR");
    (By the way, could make your window for filling in the message a little bit wider,
    making it easier to cope with the line breaks).
    Feedback is appreciated.
    Andreas Reuleaux
    Klopotek & Partner
    [email protected]
    null

    Your results are as expected per the imlementation. Basically you've established (two) ViewLinks between two sets of two instances of VOs.
    Now you try and get an accessor to return a set of details. You need to establish a link between that detail set and it's details to use the accessor on the second detail to get the desired results. Basically you've to establish the chaining between appropriate instances of VOs and not just the outer VOs or VO members of your AM.

  • How to pass parameter when create view link

    Hi,
    I used R12 to implement OAF. I create a VO with paramenter such as SELECT item_code,parent_item_code,month_budget_id
    FROM cux_ce_month_budget_lines_t
    where month_budget_id=:1
    But when I create VL for this VO. It seems the parameter :1 can not be passed.
    Could some one to help lookinto this?
    Best Regards,
    Eileen

    You donot need to pass parameter while creating the View Link. Once the view link is created then you assign the bind parameter to the master VO and execute the View link. The Child VO would automatically be executed.

  • EJB Finder View Links and CMR

    Hi,
    Can someone please give me some input on the following warning in the JDeveloper online help!
    "Warning: You cannot create an EJB finder view link that expresses the same relationship as a CMR."
    I'm new to EJB, BC4J and JDeveloper. I created container managed entity beans with local interfaces only to represent my data and relationships. No problems with the mapping so far.
    To test the beans I used Session Facades with remote interfaces and build a sample test client.
    Now I thought I could create EJB Entity Facades, EJB Finder View Objects, EJB Finder View Links and EJB Application Modules to make use of the BC4J framework in order to speed up programming clients (JSP and JClient).
    So I've started studying the JDeveloper online help (which seems to be very useful) and found the above mentioned warning.
    Well, better a warning than nothing at all, but some more explanations would have been even better.
    Is there no need to use view links with CMR?
    How to achieve the same functionality (synchronizing two view objects in a master-detail-relationship) with CMR?
    Do you know any examples? I couldn't find any examples using EJB entity facades in the "sample code" area on OTN.
    Any comments about other (better) architectures are also welcome. Would it be better to use BMP entity beans in conjunction with BC4J?
    Many thanks for your help!
    Regards,
    Eric

    Steven,
    thank you for your reply and suggestions - I'll count on that. If I find time I'll read this book. It seems to be very interesting.
    For educational purposes I'd like to look at both persistence implementation strategies. I agree that it looks definitly easier to use entity objects. Certainly it's also performancewise a better choice.
    Anyhow, could you give me some useful tips for cmp entity beans and finder view objects?
    Is there something which works completely different if I use BC4J on top of it?
    How to implement a master-detail relationship in JClient (Swing) for example?
    What about writing an ejbfinder which doesn't return all, but all data where the foreign key is equal to a parameter passed to the finder method and use this as the source for a detail view object. This could be the primary key of the selected master. Well, I don't know whether this is doable. But that's what comes to my mind spontaneously.
    Would this be a solution? I'm still thinking about the aforementioned warning in the online help regarding view links.
    I guess the problem is that the foreign key is not part of the entity bean as it's not a cmp-field. Instead you have accessor methods to retrieve a related object or a collection of objects.
    I'm sure my questions are not too complicated to answer. It's only hard for a beginner to get an overview.
    I'm quite confident that I'll manage this if I give my best and get some help from knowledgeable people like you Steven.
    Regards,
    Eric

  • Oracle ADF with view Links

    Hello i use Oracle adf framwork to develop my Business logic through Business component and oracle as Database
    i have an error with my View link
    i got this error msg:
    oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: SELECT Meldung.MELDUNG_ID, Meldung.MELDUNG_MESSAGE, Meldung.SACHBEARBEITER_ID, Meldung.MELDUNG_DATUM FROM MELDUNG Meldung WHERE Meldung.SACHBEARBEITER_ID = :Bind_SachbearbeiterId
         at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:1239)
         at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:913)
         at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:7282)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1227)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1078)
         at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2800)
         at oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:3058)
         at oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:2797)
         at oracle.jbo.server.ViewRowSetImpl.refreshRowSet(ViewRowSetImpl.java:7208)
         at oracle.jbo.server.ViewRowSetIteratorImpl.notifyDetailRowSets(ViewRowSetIteratorImpl.java:3555)
         at oracle.jbo.server.ViewRowSetIteratorImpl.notifyNavigationToRow(ViewRowSetIteratorImpl.java:3697)
         at oracle.jbo.server.ViewRowSetIteratorImpl.notifyNavigation(ViewRowSetIteratorImpl.java:3657)
         at oracle.jbo.server.ViewRowSetIteratorImpl.internalSetCurrentRow(ViewRowSetIteratorImpl.java:3440)
         at oracle.jbo.server.ViewRowSetIteratorImpl.previous(ViewRowSetIteratorImpl.java:1895)
         at oracle.jbo.server.ViewRowSetImpl.previous(ViewRowSetImpl.java:3609)
         at oracle.jbo.server.ViewObjectImpl.previous(ViewObjectImpl.java:10248)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1080)
         at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2169)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:731)
         at oracle.jbo.uicli.jui.JUActionBinding.actionPerformed(JUActionBinding.java:193)
         at oracle.jbo.uicli.controls.JUNavigationBar.doAction(JUNavigationBar.java:412)
         at oracle.jbo.jbotester.NavigationBar.doAction(NavigationBar.java:112)
         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.sql.SQLException: Invalid column type
         at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:11256)
         at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:10605)
         at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:11665)
         at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:11631)
         at oracle.jdbc.driver.OraclePreparedStatement.setObjectAtName(OraclePreparedStatement.java:15891)
         at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObjectAtName(OraclePreparedStatementWrapper.java:911)
         at oracle.jbo.server.OracleSQLBuilderImpl.bindParamValue(OracleSQLBuilderImpl.java:4665)
         at oracle.jbo.server.BaseSQLBuilderImpl.bindParametersForStmt(BaseSQLBuilderImpl.java:3673)
         at oracle.jbo.server.ViewObjectImpl.bindParametersForCollection(ViewObjectImpl.java:21459)
         at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:1197)
         ... 59 more
    ## Detail 0 ##
    java.sql.SQLException: Invalid column type
         at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:11256)
         at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:10605)
         at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:11665)
         at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:11631)
         at oracle.jdbc.driver.OraclePreparedStatement.setObjectAtName(OraclePreparedStatement.java:15891)
         at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObjectAtName(OraclePreparedStatementWrapper.java:911)
         at oracle.jbo.server.OracleSQLBuilderImpl.bindParamValue(OracleSQLBuilderImpl.java:4665)
         at oracle.jbo.server.BaseSQLBuilderImpl.bindParametersForStmt(BaseSQLBuilderImpl.java:3673)
         at oracle.jbo.server.ViewObjectImpl.bindParametersForCollection(ViewObjectImpl.java:21459)
         at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:1197)
         at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:913)
         at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:7282)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1227)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1078)
         at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2800)
         at oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:3058)
         at oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:2797)
         at oracle.jbo.server.ViewRowSetImpl.refreshRowSet(ViewRowSetImpl.java:7208)
         at oracle.jbo.server.ViewRowSetIteratorImpl.notifyDetailRowSets(ViewRowSetIteratorImpl.java:3555)
         at oracle.jbo.server.ViewRowSetIteratorImpl.notifyNavigationToRow(ViewRowSetIteratorImpl.java:3697)
         at oracle.jbo.server.ViewRowSetIteratorImpl.notifyNavigation(ViewRowSetIteratorImpl.java:3657)
         at oracle.jbo.server.ViewRowSetIteratorImpl.internalSetCurrentRow(ViewRowSetIteratorImpl.java:3440)
         at oracle.jbo.server.ViewRowSetIteratorImpl.previous(ViewRowSetIteratorImpl.java:1895)
         at oracle.jbo.server.ViewRowSetImpl.previous(ViewRowSetImpl.java:3609)
         at oracle.jbo.server.ViewObjectImpl.previous(ViewObjectImpl.java:10248)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1080)
         at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2169)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:731)
         at oracle.jbo.uicli.jui.JUActionBinding.actionPerformed(JUActionBinding.java:193)
         at oracle.jbo.uicli.controls.JUNavigationBar.doAction(JUNavigationBar.java:412)
         at oracle.jbo.jbotester.NavigationBar.doAction(NavigationBar.java:112)
         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)
    (oracle.jbo.SQLStmtException) JBO-27122: SQL error during statement preparation. Statement: SELECT Termin.TERMIN_ID, Termin.TERMIN_BEGIN_DATUM, Termin.SACHBEARBEITER_ID, Termin.TERMIN_MESSAGE, Termin.TERMIN_END_DATUN FROM TERMIN Termin WHERE Termin.SACHBEARBEITER_ID = :Bind_SachbearbeiterId

    Hello John,
    Thanks for the reply. I can't find any material so that I can aware with JSF introduction (with demos) and ADF Faces. So will you please suggest me some tutorial or demos related to JSF and ADF faces. I passed through the video demos of Oracle ADF homepage but still I can't understand the use of those tags.
    regards,
    Kush
    Edited by: kush on Feb 22, 2012 12:07 AM

  • ADF BC: both ID and view link object as getter/setter in row impl

    I notice something when generating the row implementation of VO that have links to other VO. I can't seem to find the logic behind it...
    Following model:
    users( id, address_id,name,firstname,...)
    address(id, street,number,...)
    their is an assosiation between the UsersEO and the addressEO. Their is also a view link between the UsersVO and the AddressVO based upon the assosiation of the EO's.
    When we create the row implementation of the UsersVO we find a getter and setter for both the address_id as well as the address row object.
    Why is this?
    We have this issue because i added the UsersVO and the addressVO to the app module but i haven't added the link to the appModule but when i create the SDO from the appModule, the Users has both the address_id as the address row object.
    THis does not seem to make sense. How do you use it correctly? Do you just need to set the address_id and can leave the row object null or do they both need to have the same? What if you set the address_id to 1 but the id in the address row object is set to 5...
    How do the databindings handle these things?
    To me it seems more logical that the VO only has a getter and setter for the address object and handles the address_id in the background according to the values in the address object.
    Can someone explain me why this is implemented this way and how to handle it correctly?
    Edited by: Yannick Ongena on Sep 27, 2010 5:29 PM

    Yannick Ongena wrote:
    When we create the row implementation of the UsersVO we find a getter and setter for both the address_id as well as the address row object.
    Why is this? The definition of the VL allows you to optionally generate accessors for the underliying VOs, i.e. getAddressVO() in the UsersVO and getUsersVO() in the addressVO.
    We have this issue because i added the UsersVO and the addressVO to the app module but i haven't added the link to the appModule but when i create the SDO from the appModule, the Users has both the address_id as the address row object. You should add the addressVO to the AM using the VL instead and not by itself.
    THis does not seem to make sense. How do you use it correctly? Do you just need to set the address_id and can leave the row object null or do they both need to have the same? What if you set the address_id to 1 but the id in the address row object is set to 5...
    As mentioned above, once you add the addressVO to AM using the VL, the framework will take care setting the value of the row objects accordingly.

  • View Link on two programmatic view objects

    Hello,
    I use Build JDEVADF_11.1.1.1.0_GENERIC_090615.0017.5407
    I have two programmatic View Objects with data from other sources (an ArrayList in my example).
    Now I would like to create a View Link on it. How can I do this?
    I'm quite new on Java and ADF...
    I know it is possible because I already found Steve's example 132 here [http://blogs.oracle.com/smuenchadf/examples/|http://blogs.oracle.com/smuenchadf/examples/]
    But could somebody create a simple example based on my example classes below (which is understandable for a newbie like me ;-) ?
    Has been asked already here, but I did not found a solution as yet.
    Error with view link and ADF table Tree
    This is my example code for the view objects:
    Employee.java:
    private Number empno;
    private String ename;
    private Number dept;
    with getters and setters...
    Department.java
    private Number deptno;
    private String dname;
    with getters and setters...
    public class StaticDataDepartmentsImpl extends ViewObjectImpl {
    int rows = -1;
    private List<Department> departments = new ArrayList<Department>();
    protected void executeQueryForCollection(Object rowset, Object[] params,
    int noUserParams) {
    // Initialize our fetch position for the query collection
    setFetchPos(rowset, 0);
    super.executeQueryForCollection(rowset, params, noUserParams);
    // Help the hasNext() method know if there are more rows to fetch or not
    protected boolean hasNextForCollection(Object rowset) {
    return getFetchPos(rowset) < rows;
    // Create and populate the "next" row in the rowset when needed
    protected ViewRowImpl createRowFromResultSet(Object rowset,ResultSet rs) {
    ViewRowImpl r = createNewRowForCollection(rowset);
    int pos = getFetchPos(rowset);
    populateAttributeForRow(r, 0, departments.get(pos).getDeptno());
    populateAttributeForRow(r, 1, departments.get(pos).getDname());
    setFetchPos(rowset, pos + 1);
    return r;
    // When created, initialize static data and remove trace of any SQL query
    protected void create() {
    super.create();
    // Setup string arrays of codes and values from VO custom properties
    initializeStaticData();
    rows = (departments != null) ? departments.size() : 0;
    // Wipe out all traces of a query for this VO
    getViewDef().setQuery(null);
    getViewDef().setSelectClause(null);
    setQuery(null);
    // Return the estimatedRowCount of the collection
    public long getQueryHitCount(ViewRowSetImpl viewRowSet) {
    return rows;
    // Subclasses override this to initialize their static data
    protected void initializeStaticData() {
    Department d1 = new Department();
    d1.setDeptno(new Number(10));
    d1.setDname("IT");
    Department d2 = new Department();
    d2.setDeptno(new Number(20));
    d2.setDname("HR");
    departments.add(d1);
    departments.add(d2);
    // Store the current fetch position in the user data context
    private void setFetchPos(Object rowset, int pos) {
    if (pos == rows) {
    setFetchCompleteForCollection(rowset, true);
    setUserDataForCollection(rowset, new Integer(pos));
    // Get the current fetch position from the user data context
    private int getFetchPos(Object rowset) {
    return ((Integer)getUserDataForCollection(rowset)).intValue();
    public class StaticDataEmployeesImpl extends ViewObjectImpl {
    int rows = -1;
    private List<Employee> employees = new ArrayList<Employee>();
    protected void executeQueryForCollection(Object rowset, Object[] params,
    int noUserParams) {
    // Initialize our fetch position for the query collection
    setFetchPos(rowset, 0);
    System.out.println("in executeQueryForCollection");
    super.executeQueryForCollection(rowset, params, noUserParams);
    // Help the hasNext() method know if there are more rows to fetch or not
    protected boolean hasNextForCollection(Object rowset) {
    System.out.println("in hasNextForCollection. Rows:" + rows);
    return getFetchPos(rowset) < rows;
    // Create and populate the "next" row in the rowset when needed
    protected ViewRowImpl createRowFromResultSet(Object rowset,ResultSet rs) {
    ViewRowImpl r = createNewRowForCollection(rowset);
    int pos = getFetchPos(rowset);
    System.out.println("in createRowFromResultSet. Pos=" + pos);
    populateAttributeForRow(r, 0, employees.get(pos).getEmpno());
    populateAttributeForRow(r, 1, employees.get(pos).getEname());
    populateAttributeForRow(r, 2, employees.get(pos).getDept());
    setFetchPos(rowset, pos + 1);
    return r;
    // When created, initialize static data and remove trace of any SQL query
    protected void create() {
    super.create();
    // Setup string arrays of codes and values from VO custom properties
    initializeStaticData();
    rows = (employees != null) ? employees.size() : 0;
    System.out.println("in create(). Rows=" + rows);
    // Wipe out all traces of a query for this VO
    getViewDef().setQuery(null);
    getViewDef().setSelectClause(null);
    setQuery(null);
    // Return the estimatedRowCount of the collection
    public long getQueryHitCount(ViewRowSetImpl viewRowSet) {
    return rows;
    // Subclasses override this to initialize their static data
    protected void initializeStaticData() {
    Employee e1 = new Employee();
    e1.setEmpno(new Number(2333));
    e1.setEname("Emp1");
    e1.setDept(new Number(10));
    Employee e2 = new Employee();
    e2.setEmpno(new Number(1199));
    e2.setEname("Emp2");
    e2.setDept(new Number(20));
    Employee e3 = new Employee();
    e3.setEmpno(new Number(3433));
    e3.setEname("Emp3");
    e3.setDept(new Number(10));
    Employee e4 = new Employee();
    e4.setEmpno(new Number(5599));
    e4.setEname("Emp4");
    e4.setDept(new Number(20));
    Employee e5 = new Employee();
    e5.setEmpno(new Number(5676));
    e5.setEname("Emp5");
    e5.setDept(new Number(10));
    Employee e6 = new Employee();
    e6.setEmpno(new Number(7867));
    e6.setEname("Emp6");
    e6.setDept(new Number(20));
    employees.add(e1);
    employees.add(e2);
    employees.add(e3);
    employees.add(e4);
    employees.add(e5);
    employees.add(e6);
    // Store the current fetch position in the user data context
    private void setFetchPos(Object rowset, int pos) {
    if (pos == rows) {
    setFetchCompleteForCollection(rowset, true);
    setUserDataForCollection(rowset, new Integer(pos));
    // Get the current fetch position from the user data context
    private int getFetchPos(Object rowset) {
    return ((Integer)getUserDataForCollection(rowset)).intValue();
    Who can help?
    Thnx in advance!
    Rolf

    Rolf,
    I guess when we try to do it for you, we end up with almost the sample code provided by Steve Muench.
    So there from my point of view it doesn't make sense to do it all over.
    Take some time and study the sample code, run it without changes and after that try some changes which suits your use case better.
    If you don't understand what's going on in the sample post the question here and we try to help you.
    Timo

  • Add/remove view links at runtime !?

    Hi,
    how can i add/remove a view link to an already published RowSet and make the RowSet adapt to the new condition ??? (without loosing it's own linked Details)
    The scenario: I have lot's of details which are linked to the same master. I remove the details from the session (sessionInfo.removeRowSet) when I don't need them to keep the active number of views in the session as small as possible ! When removing the Details from the Session I also have to remove their links to the master (to avoid exceptions). Further I want to establish the links again when the detail is added to the session again !?
    I add links before publishing:
    ViewLinkInfo view_12aLink = new ViewLinkInfo(master, "package1.LinkDef");
    view_12a.addMasterLink(view_12aLink);
    I can remove links after publishing with:
    view_12aLink.removeViewLink(sessionInfo1.getApplicationModule());
    but how to establish the link again ?:
    ApplicationModule appMod = ....;
    ViewObject vo = appMod.findViewObject(view_12a.getQueryInfo().getName());
    view_12aLink.createViewLink(appMod,vo);
    doesn't work !
    if (view_12a.isOpen())
    view_12a.close();
    view_12a.addMasterLink(view_12aLink);
    works !, but all the links where view_12a is master are broken !!!!
    So what to Do ????
    Thanks for every answer !
    null

    Your results are as expected per the imlementation. Basically you've established (two) ViewLinks between two sets of two instances of VOs.
    Now you try and get an accessor to return a set of details. You need to establish a link between that detail set and it's details to use the accessor on the second detail to get the desired results. Basically you've to establish the chaining between appropriate instances of VOs and not just the outer VOs or VO members of your AM.

  • Bug in View Link editor

    When creating a many-to-many view link based on a many-to-many association, the view object on the left must be based on the entity that was on the left when creating the association. Why is this? Surely it shouldn't matter.

    Just to add to this:
    If the view object on the left of the link is not based on the entity that was on the left when creating the underlying association then the accessors for the association will not be visible under the view in the link editor.

  • Bug in view link creation

    Here's an interesting bug in JDev 9.0.3.1, Win2k:
    I'm working with a view link using the Edit View Link dialog. It links two view objects, ViewA and ViewB, in a 1:* relationship. Entities EntityA and EntityB are the respective underliers of ViewA and ViewB. Under the View Link Properties node in the dialog, the only accessor generated is for the Destination view object.
    When I click OK, the column constants at the top of EntityA.java become messed up!!
    To be specific, all of the accessor column constants defined on the entity object are removed and then re-defined one line above the beginning of the column constants declaration section. They also are renumbered starting with zero, which causes them to have the same value as the first n column constant definitions. Naturally, this causes a "duplicate case label" compile error for the EntityA.java file.
    Even worse is if the column constant definitions start on the same line as the opening brace for the class, like so:
    public class EntityAImpl extends EntityImpl
    { protected static final int COLUMN_1 = 0;
    protected static final int COLUMN_2 = 1;
    // etc.
    The effect of clicking OK in the Edit View Link dialog is then to produce a ParseException error as the dialog is dismissed. Looking at the EntityA.java file, it's clear why:
    public class EntityAImpl extends EntityImpl
    protected static final int ACCESSOR_1 = 0;
    protected static final int ACCESSOR_2 = 1;
    // etc.
    { protected static final int COLUMN_1 = 0;
    protected static final int COLUMN_2 = 1;
    // etc.
    What puzzles me is:
    * Why is the entity object being affected at all, since the accessor was only supposed to be generated in ViewA?
    * Why are all the accessors being removed and re-added, even those that have nothing to do with the view link being edited?
    * Why, when the accessors are re-added, are the constant values duplicated?

    Please send a test case. I'm unable to reproduce this in a simple project in 9.0.3.1 or 9.0.3.2.
    Is there entity inheritance involved?
    Do your entity XML files mention _superAttr anywhere in them? If so, you might be hitting a known issue with 9.0.3 relating to entity inheritance at design time and the accessor attributes.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Maybe you are looking for

  • Moving average price variance in Invoice verification

    Hello, I set in sys that the moving average of price variance will be check in tolerance of x% (lower & upper limit) BUT the system ignore it , when I save an Invoice (MIRO) with price that change the moving average price for more than X% the invoice

  • IPad export to PDF font problems

    Hi guys, would really appreciate any help you can provide on the following: So I can happily create wonderful documents on pages or keynote. The issue is when I export then to PDF which is by far, what I think is the best option as it seems to retain

  • How to set the default value to the lov item

    Dear alll i have creation page in that two items are there those are lov's i am calling that creation page from another page i like this code to set the lov's OAMessageLovInputBean comp = (OAMessageLovInputBean)webBean.findChildRecursive("Company");

  • MobileMe Galleries

    I have a question regarding the use of MobileMe galleries. I recently went on a trip and took many photos. I uploaded them to my MobileMe gallery (first time ever). I came home and "merged" the two libraries together (laptop into the desktop). I see

  • Multiple R3 information displayed in portal

    I would like to know the technical details and the best way to display SAP information on the Portal. Our requirement includes 2 SAP system one domestic and one global....same version. And I want to have two options by calling R3 systems: 1. display