Incorrect query generation in AggregateCollectionMapping

Hello!
We have replaced some of OneToMany mappings with AggregateCollection. Despite of our expectations, some of these mappings are not working.
When inserting some objects using AggregateCollection mapping, we get the following exception:
INTERNAL EXCEPTION STACK:
java.lang.NullPointerException
at java.lang.reflect.Field.get(Native Method)
at oracle.toplink.internal.descriptors.InstanceVariableAttributeAccessor.getAttributeValueFromObject(Unknown Sou
rce)
at oracle.toplink.mappings.DatabaseMapping.getAttributeValueFromObject(Unknown Source)
at oracle.toplink.mappings.AggregateMapping.getAttributeValueFromBackupClone(Unknown Source)
at oracle.toplink.mappings.AggregateMapping.buildAggregateModifyQuery(Unknown Source)
at oracle.toplink.mappings.AggregateMapping.buildAggregateWriteQuery(Unknown Source)
at oracle.toplink.mappings.AggregateMapping.preInsertAttributeValue(Unknown Source)
at oracle.toplink.mappings.AggregateMapping.preInsert(Unknown Source)
at oracle.toplink.publicinterface.DescriptorQueryManager.preInsert(Unknown Source)
at oracle.toplink.mappings.AggregateCollectionMapping.preInsert(Unknown Source)
at oracle.toplink.publicinterface.DescriptorQueryManager.preInsert(Unknown Source)
at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.insertObjectForWrite(Unknown Source)
at oracle.toplink.queryframework.InsertObjectQuery.executeCommit(Unknown Source)
at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.performUserDefinedWrite(Unknown Source)
at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.performUserDefinedInsert(Unknown Source)
at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.insertObjectForWrite(Unknown Source)
at oracle.toplink.queryframework.WriteObjectQuery.executeCommit(Unknown Source)
at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.executeWrite(Unknown Source)
at oracle.toplink.queryframework.WriteObjectQuery.execute(Unknown Source)
at oracle.toplink.queryframework.DatabaseQuery.execute(Unknown Source)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Unknown Source)
at oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(Unknown Source)
at oracle.toplink.publicinterface.Session.executeQuery(Unknown Source)
at oracle.toplink.publicinterface.Session.executeQuery(Unknown Source)
at oracle.toplink.internal.sessions.CommitManager.commitAllObjects(Unknown Source)
at oracle.toplink.publicinterface.Session.writeAllObjects(Unknown Source)
at oracle.toplink.publicinterface.UnitOfWork.commitToDatabase(Unknown Source)
at oracle.toplink.publicinterface.UnitOfWork.commitRootUnitOfWork(Unknown Source)
at oracle.toplink.publicinterface.UnitOfWork.commit(Unknown Source)
From the stack trace we may assume that there are some problems created by AggregateCollection mapping for AggregateObject mapping, taking into account that under the same conditions OneToMany is working.
After some source code analysis, it was found that the problem is because there is no any backup clone instance specified within InsertObjectQuery which is passed by AggregateCollectionMapping then to AggregateObject mapping (this may be in AggregateCollectionMapping.prepareModifyQuery, for example). Then AggregateObject mapping fails, because of trying to extract aggregate field value from backup instance which is 'null' (AggregateMapping.buildAggregateModifyQuery, code 'getAttributeValueFromBackupClone(sourceQuery.getBackupClone())').
It looks like defect in AggregateCollectionMapping implementatation.
By the way, if we insert something like:
if (modifyQuery.getSession().isUnitOfWork()) {
Object backupClone = getReferenceDescriptor().getObjectBuilder().buildNewInstance();
modifyQuery.setBackupClone(backupClone);
at the end of AggregateCollectionMapping.prepareModifyQuery, everything works fine.
Could somebody from TopLink team comment this?
Thanks in advance,
Sergey

You are correct, the backupClone was incorrectly not being set in this case.
I have logged this issue internally, you may want to follow it up with technical support.
Thanks for reporting the problem and debugging the cause.

Similar Messages

  • Oracle.apps.xdo.XDOException: Group G_EMP has incorrect  Query Source : Q1

    All,
    I am trying to create some reports using XML data Template in BI publisher. But when I just create a simple data template, I keep getting the error message as mentioned below.
    [111907_101025922][][STATEMENT] Template parsing completed...
    [111907_101026625][][STATEMENT] Start process Data
    [111907_101026625][][STATEMENT] Process Data ...
    [111907_101026625][][STATEMENT] Writing Data ...
    [111907_101026625][][EVENT] Data Generation Completed...
    [111907_101026625][][EVENT] Total Data Generation Time 1.0 seconds
    [111907_102628031][][STATEMENT] Setting data definition:Sample_Data_Template type:oracle.apps.xdo.servlet.data.bind.AdvancedQueryBoundValue11
    [111907_102629516][][STATEMENT] Logger.init(): *** DEBUG MODE IS ON. ***
    [111907_102629516][][STATEMENT] Logger.init(): LogDir=C:\Program Files\Java\jdk1.5.0_13\xmldebug
    [111907_102629516][][STATEMENT] Template parsing started...
    [111907_102629516][][STATEMENT] Data Template ......
    [111907_102629516][][STATEMENT] oracle.xml.parser.v2.XMLDocument@1ab4586
    [111907_102629516][][STATEMENT] Inside dataQueryParser...
    [111907_102629516][][STATEMENT] Inside dataStructureParser...
    [111907_102629516][][STATEMENT] Group ...report
    [111907_102629516][][EXCEPTION] oracle.apps.xdo.XDOException: Group G_EMP has incorrect Query Source : Q1
         at oracle.apps.xdo.dataengine.DataTemplateParser.groupParser(Unknown Source)
         at oracle.apps.xdo.dataengine.DataTemplateParser.groupParser(Unknown Source)
         at oracle.apps.xdo.dataengine.DataTemplateParser.dataStructureParser(Unknown Source)
         at oracle.apps.xdo.dataengine.DataTemplateParser.templateParser(Unknown Source)
         at oracle.apps.xdo.dataengine.XMLPGEN.setDataTemplate(Unknown Source)
         at oracle.apps.xdo.dataengine.DataProcessor.setDataTemplate(Unknown Source)
         at oracle.apps.xdo.servlet.data.bind.AdvancedQueryBoundValue11.callDataProcessor(AdvancedQueryBoundValue11.java:117)
         at oracle.apps.xdo.servlet.data.bind.AdvancedQueryBoundValue11.getValue(AdvancedQueryBoundValue11.java:101)
         at oracle.apps.xdo.servlet.ReportContextImplV11.getReportXMLData(ReportContextImplV11.java:389)
         at oracle.apps.xdo.servlet.CoreProcessor.process(CoreProcessor.java:132)
         at oracle.apps.xdo.servlet.CoreProcessor.generateDocument(CoreProcessor.java:62)
         at oracle.apps.xdo.servlet.ReportImpl.renderBodyHTTP(ReportImpl.java:638)
         at oracle.apps.xdo.servlet.ReportImpl.renderReportBodyHTTP(ReportImpl.java:237)
         at oracle.apps.xdo.servlet.XDOServlet.writeReport(XDOServlet.java:279)
         at oracle.apps.xdo.servlet.XDOServlet.writeReport(XDOServlet.java:266)
         at oracle.apps.xdo.servlet.XDOServlet.doGet(XDOServlet.java:199)
         at oracle.apps.xdo.servlet.XDOServlet.doPost(XDOServlet.java:222)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
         at oracle.apps.xdo.servlet.security.SecurityFilter.doFilter(SecurityFilter.java:65)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
         at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
         at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    Could any one of you please help me out :)
    Thanks,

    Hi King,
    Find below the data template I am using. I have defined a Q1 in my data template. Let me know where I am going wrong.
    Thanks,
    Ram
    <dataTemplate name="Emp" dataSourceRef="EBS">
         <dataQuery>
              <sqlstatment name="Q1" dataSourceRef="EBS">
                   <![CDATA[ SELECT empno, empname FROM APPS.EMP ]]>
              </sqlstatment>
         </dataQuery>
         <dataStructure>
              <group name="G_EMP" source="Q1">
                   <element name="empno" value="empno"/>
                   <element name="empname" value="empname"/>
              </group>
         </dataStructure>
    </dataTemplate>

  • Ad-hoc query generation question

    I have a LTS which has 5 tables -
    Item,
    Purchase_Categories,
    Order_Management_Categories,
    Inventory_Categories,
    Costing_Categories
    Now each %_categories table is joined to Item table in physical layer. In the LTS however, each %_Categories table has an outer join with the Item table so that if a category does not exist, the item is still displayed.
    When I run a query where I select a column from Item and a column from Purchase_Categories, OBIEE still generates a query
    SELECT ITEM.COLUMN1,
    PURCHASE_CATEGORIES.COLUMN2
    FROM ITEM left outer join purchase_categories ON ...
    left outer join order_management_categories ON ...
    left outer join inventory_categories ON...
    left outer join costing_categories ON ....
    I was expecting that OBIEE would generate a query select only the tables which were need i.e. the expected query was -
    SELECT ITEM.COLUMN1,
    PURCHASE_CATEGORIES.COLUMN2
    FROM ITEM left outer join purchase_categories ON ...
    I have seen that in some cases, OBIEE selects only the table that is required to generate the join based on the column selected, even though there are multiple tables in the joined in the LTS i.e. if the query is selecting columns from only 1 table and there are 2 tables in the LTS, OBIEE generates a query with only one table which has the column being selected.
    Why this difference in behavior during query generation ? Why does OBIEE intelligently select a specific table from the LTS definition some case and in other cases does not ?

    In case of outer join oracle applied all the join conditions defined among LTes. In normal joins it is able to figure out the correct source for column and does the trimming.
    Edited by: user596996 on Mar 20, 2009 6:33 AM

  • Query Generation for no apparent reason??

    When looking at the statistics in 0TCT_C02, we have noted that our queries regenerate or optimize multiple times each day.  I have tested this with a single query and I was sure to go into RSRT and turn off the optimization option.  Exceedingly longs times in 0TCT_C02 for event 3010 (OLAP: Query Generation).  We are talking times on the order of 45 seconds. I know that each query is supposed to be regenerated once every 31 days by default.  What else could be triggering this behavior?
    Examples:
    Date Time (HH:MM)   OLAP Gen Time (3010) from view RSDDSTAT_OLAP
    11/10/08  00:00     0.207153
    11/10/08  01:06     46.295823
    11/10/08  02:17     0.382898
    11/10/08  02:22     0.047491
    11/10/08  03:00     0.527515
    11/10/08  03:00     0.037425
    11/10/08  03:00     0.031306
    11/10/08  03:00     0.031065
    11/10/08  03:00     0.030289
    11/10/08  12:26     27.802359
    11/10/08  12:56     0.148548
    11/10/08  13:04     0.255053
    11/10/08  13:08     0.345807
    11/10/08  13:08     0.033123
    11/10/08  13:08     0.032887
    11/10/08  13:14     0.448533
    11/10/08  13:14     0.074349
    11/10/08  13:14     0.043456
    11/10/08  13:14     0.040294
    Why would it regenerate multiple times a day?  How do we get this to stop or at least control it better?
    (The query itself has not been changed since August of this year).
    Thanks for any info:
    Mitchell

    Hi there.
    The reasons why a query is regenerated :
       - Template changed                                     
       - Does generated report exist                          
       - Infoprovider changed                                 
       - Key figure / chararacteristic changed or deleted     
       - Report definition changed                
    If you are loading data regularly during the day, this may cause the regeneration to occur. SAP Note 1137994 should be helpful for this. SAP Note 1056259 talks about query generation and has further Notes for optimization. See section 4.
    Hope this helps,
    Karen

  • Report for query generation

    Hi,
    Is there any report available in BI for Query generation based on particular cube/multiprovider/ods.
    One way to do so is to go to RSRT & type in query name and generate it.
    But we have a large number of query's defined on a particular cube so we want a report that can help is to achieve the same for mass query generation.
    I have seen the report but i am missing the report name, can anyone help me to achieve the same.
    thanks
    dipika

    HI Sreekanth S :
    Thank for your giving , If  the operation  When i excute u201CRSR_GEN_DIRECT_ALL_QUERIESu201Dand input the name of my query equal to the function which i  generate reports in "RSRT"?
    Hope for your help.
    Thanks.

  • Re: query generation

    Hi there. Just something really quick. I am currently in the process of implementing automatic query generation. Oracle Spatial provides the Spatial Index Advisor as a relatively simple mechanism for viewing spatial data. When you make a spatial query you can view the structure of the query you just made in an SQL syntax. Is the sample code for generating these different queries in SQL made available anywhere on the Oracle site. Thanks Joe

    Hi
    In R/3 first you need to create the query in any of the below as you wanted it.
    Tcodes:
    quick query creation:  sqvi
    sq01--user group creation
    sq02--info set
    sq03--query creation
    Then after creating the query now create an generic data source, while creating
    give the option as SAPquery and now your data source is ready
    Hope this would be help ful
    Many thanks
    kiran
    Edited by: Kirun k on Jul 8, 2009 12:20 PM

  • Automation of Query generation and Conversion to Flat File CSV

    I have a requirement for Generating / Executing the refresh for the existing Query IN BEX automatically on 3 rd Business day of Every Quarter in BEX Analyzer AND also to convert it to flat file after generation. Please give me some documents or exact steps on how to go about this
    automation. Please reply me in detail and soon
    Thanks
    Soniya

    Hi Sir, I will be very grateful if u can clarify
    1. User want the flat  file on the Company Server, which means there are folder on my company BMW server , and he wants to see the flat file there so that he can review it
    2. I saw some AL11 and directories how can I create my directory or Create the file in DIR_HOME and see the file in flat file format it shows like a screen which my user do not want, he just want a flat file.
    3.Please suggest me if this method rscrm_bapi will work or should u suggest download scheduler or report agent and how.
    4. Sorry for the question but my problem and requirement of user is not solved
    please reply soon
    thanks
    soniya

  • Incorrect query result with Top N condition and two structures

    Hi,
    I have created a query on a FI-GL infocube with the characteristic 0BUS_AREA in rows and two structures in columns. The first structure has two items / selections (each item is a selection of several GL accounts). The second structure has two items (the first one contains the key figure 0BALANCE for the current period and the second item is a formula that calculates the absolute value of the first item. The first item is hidden). The (simplified) result looks like this (sorry, not very pretty!):
    Business Area Clients Clients fae
    Business Area1 10 15
    Business Area2 20 7
    Business Area 3 15 8
    Overall result 45 30
    I then added one condition using the Top N operator. The condition is defined for all the elements of the structures. When I execute the query, I sometimes obtained an incorrect number of Top N records selected. The problem seems to occur when N is greater than the number of available Business Areas for an element of the structure.
    For example, if N = 8 and data only exists for 5 Business Areas for the structure element Clients, I may end up with 10 Business Areas for the second structure element Clients fae when I only expect 9 (i.e. the top 8 Clients fae + 1 of the Top 8 Clients for which there is no data under Clients fae).
    Has anybody encoutered that kind of problem ?
    Many thanks.
    François.

    Pascal,this is a known behavior with conditions.When you apply condition it just hide the extra rows and it does not impact the result row.So your result row actually shows the value irrespective of the condition you apply.
    Now with the help of local functions like calculate result as summation you can show the correct sum after applying the condition but when you try to use that result in some calculation then it takes the original value thereby discarding the calculated value.
    Same is happening in your case as well.Its taking the original value i.e 350 and not the calculated sum after condition i.e 270.
    Hope this helps.
    Regards,
    AL

  • Incorrect query forms in parent child relation

    Hello
    I am using jdev of RUP3 (Release 4) which is 11.1.1.6.2 and have following scenario
    I have a ParentVO (ProfileVO) and a child VO(CreditReceiversVO) (child VO is basically extended from another VO not in this application and included as a jar library).
    There a VL between ParentVO and ChildVO 1:* with two attributes ord_id and rule_id
    On UI these two VO instances are dropped as parent child and I get exception on running page in logs saying RuleAssignementEO.ORG_ID invalid identifier.
    Looking into the query formed by BC4J I see it as below which is clearly wrong as the alias RuleAssignmentEO is not visible for the outermost where clause. Please advise
    "SELECT count(1) FROM (SELECT * FROM (SELECT /*+ FIRST_ROWS(10) */
    RuleAssignmentsEO.RULE_ASSIGNMENT_ID,
    RuleAssignmentsEO.OBJECT_VERSION_NUMBER,
    RuleAssignmentsEO.RULE_ID,
    RuleAssignmentsEO.ASSIGNED_OBJECT_ID,
    RuleAssignmentsEO.ASSIGNED_OBJECT_TYPE,
    RuleAssignmentsEO.ORG_ID,
    RuleAssignmentsEO.ROLE_ID,
    RuleAssignmentsEO.START_DATE,
    RuleAssignmentsEO.END_DATE,
    RuleAssignmentsEO.SPLIT_PCT,
    RuleAssignmentsEO.REVENUE_TYPE,
    RuleAssignmentsEO.ROLLUP_FLAG,
    RuleAssignmentsEO.CREATED_BY,
    RuleAssignmentsEO.CREATION_DATE,
    RuleAssignmentsEO.LAST_UPDATED_BY,
    RuleAssignmentsEO.LAST_UPDATE_DATE,
    RuleAssignmentsEO.LAST_UPDATE_LOGIN,
    RuleAssignmentsEO.ATTRIBUTE_CATEGORY,
    RuleAssignmentsEO.ATTRIBUTE1,
    RuleAssignmentsEO.ATTRIBUTE2,
    RuleAssignmentsEO.ATTRIBUTE3,
    RuleAssignmentsEO.ATTRIBUTE4,
    RuleAssignmentsEO.ATTRIBUTE5,
    RuleAssignmentsEO.ATTRIBUTE6,
    RuleAssignmentsEO.ATTRIBUTE7,
    RuleAssignmentsEO.ATTRIBUTE8,
    RuleAssignmentsEO.ATTRIBUTE9,
    RuleAssignmentsEO.ATTRIBUTE10,
    RuleAssignmentsEO.ATTRIBUTE11,
    RuleAssignmentsEO.ATTRIBUTE12,
    RuleAssignmentsEO.ATTRIBUTE13,
    RuleAssignmentsEO.ATTRIBUTE14,
    RuleAssignmentsEO.ATTRIBUTE15,
    RuleAssignmentsEO.GROUP_MEMBER_CREDIT_FLAG,
    RuleAssignmentsEO.SUMMARY_FLAG,
    ParticipantEO.PARTICIPANT_NAME,
    ParticipantEO.PARTICIPANT_ID
    FROM CN_RS_RULE_ASSIGNMENTS_ALL RuleAssignmentsEO, CN_SRP_PARTICIPANT_HDR_RO_V ParticipantEO
    WHERE RuleAssignmentsEO.ASSIGNED_OBJECT_ID = ParticipantEO.PARTICIPANT_ID(+)) QRSLT WHERE RuleAssignmentsEO.RULE_ID = :Bind_RuleId AND RuleAssignmentsEO.ORG_ID = :Bind_OrgId) "
    Edited by: Vik2 on Oct 23, 2012 11:30 AM

    invalid identifier means ,it representating that field currently not available in db-table.
    so please refer db-table. whether field avialable or not?.
    edited lately:
    djbo.debugoutput=console did you use this :) it will say the query is send to server.
    Edited by: user707 on Oct 22, 2012 11:58 PM

  • Physical query generation: unneeded dimension tables get joined to the fact

    Hi there!
    The setup is the following:
    There is a logical fact table which is joined to 7 logical dimensions, it has 4 table sources which correspond to different time dimension levels (all other dimensions are mapped to Detail level).
    Time dimension logical table also has 4 different table sources (for days, months, quarters, and years).
    The data source is an Oracle Database 11gR2.
    The problem is:
    No matter what the logical query is, in the physical query all 7 joins are performed, even if the resulting data is then simply discarded. This results in very bad query performance.
    I feel that it is somehow related to the level-based fragmentation (since, for instance, inclusion of time dimension columns in SELECT list (not in WHERE) seems to affect physical queries), but lack sufficient knowledge to solve this problem or put up with it.
    My questions are the following:
    1) Have you ever encountered such a situation?
    2) Can unneeded joins be eliminated?
    2.1) If yes, how?
    2.2) If not, then why are they needed?
    Thanks in advance!

    Physical level:
    D01-D06 - ordinary physical tables.
    D_DATES - all time levels from dates to years, D_MONTHS - time levels from months to years, also D_QUARTERS and D_YEARS.
    F_DAILY - fact table joined to all of the D01-D06 and to D_DATES, F_MONTHLY - joined to D01-D06 and D_MONTHS, also F_QUARTERLY and F_YEARLY. All measure columns are the same.
    Logical level:
    D01-D06 correspond to ordinary logical tables with a single table source. Logical dimensions are created.
    D_TIME is a logical time dimension with four levels (dates, months, quarters, and years) and four table sources ( D_DATES, D_MONTHS, D_QUARTERS, and D_YEARS ).
    F is a fact table with four logical table sources ( F_DAILY, F_MONTHLY, F_QUARTERLY, and F_YEARLY ) with aggregation content levels set correspondingly.
    OBIEE correctly picks physical table sources for different time levels, but generates extremely inefficient SQL (joining all dimension sources in a WITH-subquery, doing ROW_NUMBER over a result set, and then discarding half the columns, which were not needed to start with).

  • Query Generation error

    Hi,
    I am getting following error when running query on browser
    "Error in generating dataprovider"
    This happened after I created a Bex request to edit query in Bex Designer. I edited query in designer and saved it. Then when i clicked on execute query I am getting the above error.
    Thanks in advance.

    hi raj..
    chk these links..
    these are same as that of urs.. hope this will help you to get a clue...
    Error when generating dataProvider
    Error generating Dataprovider
    all the best..

  • Rso2 infoset query  generation procedure

    How to generate data source in rso2 using infoset query to get distinct record

    Hi,
       Generating Datasource from Infoset is not different from Generating DataSource from View or Function Module.
    Create infoset in the source system from SQ02.
    go to RSO2. Provide the Datasource Name. go wiht create.
    Select the Infoset Push Button, provide description.
    provide the infoset Name. Let me know if you have any Issue.
    Save the DataSource. check RSA3 for Data.
    Regards,
    Nagesh Ganisetti.

  • Oracle BI Vs Sievel Analytics 7.8.x in Query Generation.

    Hi All,
    In Siebel Analytics 7.8.x if you have 10 columns in the Criteria and if you are using only two columns in the Pivot table view, the query is generated to using only columns used in Pivot view. Where as in Oracle BI it uses all 10 columns in the criteria.
    Is this a bug? Or any instanceconfig.xml parameter exists to control this behavior?
    Our Aim have different view (each view uses 2 or 3 columns) and use View Selector
    This is causing major issue in our project. Please let me know if any one faced this issue and how to resolve this.
    Thank you.

    Yes, you can you can keep your apps at 7.8 but use OBI EE 10g. For OBI EE the DWH created through the BI Apps is just a data source.
    One thing though: in order to be able to make full use of the 10g funtionalities regarding time series funcitons (todate and ago), you will need to fit your W_DAY_D dimension to the 7.9 standard. For that, please open anew post in the Apps forum since this discussion doesn't belong here. Business Intelligence Applications
    I'll post my documentation on the upgrade steps there then.
    As for upgrading Infa, this is a bit more tricky. You need to make suzre that DAC 7.8 can still fire all its commands at a 8.1.1. instance of Infa. (Haven't tried that one yet).
    Cheers,
    C.

  • Incorrect query results with conformResultsInUnitOfWork

    Hi,
    has anybody experienced this:
    Take two classes User and Group
    Group has a 1:n Mapping to User (attribute users)
    User has a 1:1 Mapping to User (attribute partner).
    Following query returns too many objects
    User user1 = someUserObject;
    ReadAllQuery readAllQuery = new ReadAllQuery(Group.class);
    Expression e = builder.anyOf("users").get("partner").equal(user1);
    readAllQuery.setSelectionCriteria(e);
    readAllQuery.conformResultsInUnitOfWork();
    Vector vector = (Vector) unitOfWork.executeQuery(readAllQuery);
    It returns
    - the correct Group object as determined from the sql query +
    - any other objects of the same class that are fully instantiated (users is instantiated and for each user, partner is instantiated), even if they don't conform to the expression.
    The same query works properly ;
    - without conformResults
    - or if the other objects are not fully instantiated

    Hi,
    we need an workaround badly and the support is moving at exactly the rate I feared it would.
    So I thought, since we only hit this bug with existing objects and we use conformResultsInUnitOfWork because we want to find the newly created objects, is there a way to get
    - the SQL Query results
    + any new objects that conform to the query
    We still might get new objects that don't conform to the query (this is the bug) but I'll worry about that later if it happens.
    My first attempt at a solution looks like this:
    1. turn off conformResults
    2. manually add all new objects that conform to the query
    I had to guess a little for 2, since I don't know what exactly toplink does to select the "conform" objects.
    private static List findConformNewObjects(UnitOfWork unitOfWork, ReadAllQuery query) {
    List result = new ArrayList();
    Class resultClass = query.getReferenceClass();
    Expression selectionCriteria = query.getSelectionCriteria();
    Enumeration enumeration;
    IdentityHashtable newObjectsCloneToOriginal = unitOfWork.getNewObjectsCloneToOriginal();
    if (newObjectsCloneToOriginal != null && newObjectsCloneToOriginal.size() > 0)
    enumeration = newObjectsCloneToOriginal.keys();
    while (enumeration.hasMoreElements())
    Object o = enumeration.nextElement();
    if (resultClass.isInstance(o))
    if (selectionCriteria != null && selectionCriteria.doesConform(o, unitOfWork, null, query.getInMemoryQueryIndirectionPolicy()))
    result.add(o);
    return result;
    Does this look OK to you? Is there a better way to do it?
    Ana

  • Multiple Query Generation from Discoverer?

    Is there anyway we can generate multiple query reports in discoverer plus? I have a daily dashboard which we send out on daily basis which has multiple queries to generate certain numbers. And I have a stored procedure for this. Is it possible to have multiple queries in 1 workbook to generate the report? If yes, then how? If not then, can we have this stored procedure in disco admin tool in a specific business area which basically kicks the SQL and stores the data in a table within that business area and in disco plus tool we can then simply select all the data from that table to generate the report? I would really appreciate if anyone could answer this.
    Thanks,
    K

    Another interesting way you can prepare a table is a method I've just seen using Disco 4.x.
    We've made such a big deal on using triggers recently, that this was so simple, I must admit I never thought of it.
    What the user did was have a function that called a pl/sql routine that did all the work and created the table.
    Then in the Disco workbook, they specified workbook 1 - the first workbook that took in parameters from the users, and passed the parameters into the function (ie: a from date and to date).
    The workbook didn't return any column from any folders, etc. but just presented the calculation that called the function.
    So, in a nutshell, the user runs the first worksheet where 2 parameters are asked for. Then when finished, it means the table is now ready for the real action so they go to the 2nd. worksheet and it just runs without any parameters but refers to the table set up by the first worksheet.
    No parameter passing to the EUL, nothing fancy, but all done in the function that called the pl/sql routine. Very easy.
    So, for you, you should be able to use the same concept, but in batch, run the first worksheet (ie: putting in the 2 parameters), and then just run the 2nd. worksheet once the first is finished and the table setup.
    Hope it helps.
    Russ

Maybe you are looking for

  • Purchase Analysis Excluding Freight Charges

    Dear Expert, Our purchase analysis report by ap invoice is exclusive freight charges, is it the norm?  Is there anyway to include freight in the purchase analysis so that we can reconcile it against our purchase report? Regards, Ng

  • Getting slideshow photos in imovie to fit audio

    I have spent too many hours tonight trying to get all my pictures (with the Ken Burns effect on) to fit perfectly to a song that is 6 minutes and 18 seconds long. Now all the pictures stay on the screen for different lengths of time. Is there any way

  • Macbook Air general question

    Ok, guys i have a question which sounds really ridiculous but as a new mac user, i cant stop thinking about it. Recently, i just bought my macbook air 13 inch. Yesterday, my wife was using it and she constantly used her fingers to drum around the are

  • 1.1.1 Publish Error - not my network, computer, connection, just iWeb...

    After a week of falling in love with iWeb, my latest posting stopped being able to publish... I tried reinstalling iWeb, changing computers, everything but no go. I have put too much into my site to have this not work. Apple must know their is an iss

  • Creating new business object key.

    Hi experts, i created a new z business object and created its keys but when i am trying to release the business object key 'personnelnumber' it's showing following error: "Function 'Change status' is not supported by the selected object 'PersonnelNum