Any way to force order of changes applied?

After more testing on my install program, I'm running into an issue where I get an exception due to a duplicate named report in a CMS folder.  This is because in the InfoObjects collection that I am trying to commit in a batch, I am deleting a prior archived version of the report, "then" moving the current version into the archive folder (before creating the new version of the report in the original folder).  If there is no prior version of the report in the archive folder, I do not get this exception.  (I am already changing the name of the archived version to include a date, and I don't really want to just keep making new archived versions ad infinitum.)
I tried to create three InfoObjects collections, one for objects to add, one for objects to change, and one for objects to delete.  I then merged all three into one InfoObjects collection to do my CommitBatch().  I tried merging in the order deleteObjects, changeObjects, addObjects, and the reverse (in case the merged collection ends up "on top of the stack"), and I get the exception either way.
I really, really, really want to do this in all one commit transaction.  Is there any way to tell the SDK what order to attempt to apply the changes in?
I am using the XI R1 version of the SDK.  Will upgrading to XI R2 help (which I need to do anyway; just need to get the CD from my sysadmin)?
Thanks for the help,
Carl

It tuns out that I wasn't deleting the prior archived version the way I thought I was.  (The deleteObjects collection was empty.)  I had thought (based on the reply to a prior thread) that the InfoObjects.Delete() would "mark" the report for deletion upon a commit.  However, it just removed the object from the collection. 
I see the InfoObject.DeleteNow() method, but that sounds like it immediately goes out and removes the object from CMS, outside the scope of a CommitBatch() (which was also stated in that same thread).
Is there a way to delete an object from the CMS as part of the CommitBatch() call?
This might be just an issue with my approach to accomplishing the task.  Since I am potentially doing this specific task any number of times, I am creating a InfoObjects collection by querying the CMS for the objects I am looking to delete.  I then call Delete() for each InfoObject in the collection, and then Merge the collection into deleteObjects.  This Merge() apparently does not move the deleted InfoObjects into the deleteObjects collection.  How would I go about doing this?  Should I collect all of the objects in deleteObjects than, right before committing, delete each object in the collection?  Is there another approach that I have to take?  Here is my code, which is in a method that can be called multiple times:
// delete prior archive version (one per date; keep other-dates history until cleanup)
InfoObjects pa = infostore.Query("select * from CI_INFOOBJECTS where SI_NAME = '"
    + archiveName + "' and SI_KIND = 'CrystalReport' and SI_PARENTID = " + pid.ToString());
if (pa.Count > 0)
{ // zap 'em
  foreach (InfoObject oa in pa) { pa.Delete(oa); }
  deleteObjects.Merge(pa);
If I put a breakpoint on deleteObjects.merge(pa), the value of pa.Count is zero, where it is 1 at the point of the IF statement...
[Referenced thread|Clearification of InfoObject.DeleteNow() method, please;
Thanks for the help,
Carl

Similar Messages

  • Is there any way to force Firefox to remember passwords?

    As many have complained about, there is a growing trend for websites to prevent browsers, including Firefox, from remembering passwords. This is absolutely infuriating. Like most people, I have on the order of 100 passwords, and thanks to idiotic, overzealous IT guys who need to justify their own jobs, we are forced to constantly change them to ludicrous, impossible-to-remember combinations of symbols and numbers. (Does anybody really get their accounts stolen because some hacker sits down and tries to guess their password? Somehow I find that very, very hard to believe.)
    First world problems, I know. My question though is simple: is there any way to force Firefox to remember passwords? Perhaps an add-on or external program of some kind? I know there are password manager programs, but the last time I checked, those were all but worthless and didn't work as well as the built-in Firefox support for remembering passwords. Thanks for any help.

    hello andrew, yes you can either [https://addons.mozilla.org/firefox/addon/remember-passwords/ install an addon] or [https://www.squarefree.com/bookmarklets/forms.html#remember_password use a bookmarklet] to circumvent this restriction.
    in an upcoming version of firefox, this functionality will also be built-in directly into the browser: http://www.ghacks.net/2013/12/24/firefox-29-save-fill-autocompleteoff-passwords/

  • IS THERE ANY WAY TO FORCE KEY COMMIT

    Hi:
    Is there any way in forcing when inserting/updating a record in a block to call KEYCOMMIT. For Example, if the user inserted/updated a record and before saving the user may quit the form. I would like to enforce the keycommit trigger to be called when the form is opted to close.

    Hello,
    Try the following in Key-Exit trigger:
    BEGIN
    IF :system.form_status = 'CHANGED' THEN
    DO_KEY('COMMIT_FORM');
    ELSE
    EXIT_FORM(NO_VALIDATE);
    END IF;
    END;
    Regards,
    George
    Hi:
    Is there any way in forcing when inserting/updating a record in a block to call KEYCOMMIT. For Example, if the user inserted/updated a record and before saving the user may quit the form. I would like to enforce the keycommit trigger to be called when the form is opted to close.

  • Is there any way to force the applet to load the file without using cache?

    Hi,
    I have the applet that renders some data from a file specified as the parameter. The problem is that the user can do something, that changes the input file and reloads the page, but the applet renders old data (from browser cache most probably)
    Is there any way to force the applet to load the file without using cache?
    Regards,
    Zdenek

    The initial view (IV) settings within a PDF file are static tags - they can't be made to dynamically-adapt based on the window dimensions,it's the renderer (Acrobat, Reader, or whatever else is opening the file) that decides if and how it will follow the IV requested by the file header.
    It would be possible to use a Page Open action on the first page of the file, which does some nasty math with the various doc.*WindowRect objects to work out how much "wasted" space there is, and then set the doc.layout and doc.zoomType properties - but page actions are a different concept to IV as the zoom will reset itself every time that page is viewed. Users don't like their application apparently fiddling with the zoom level without being told to!

  • Is there any way to force time machine to keep retrying after disk i/o error?

    a little background to my problem:
    i've had a hard drive problem previously, and i managed get all the data off of my mac by trying and retrying to access the same files and also from my working time machine backup. after zeroing out and reformatting my drive and doing a clean install of Mavericks i had everything back up running no problems.
    recently, my macbook pro would be stuck and slow in recently imported iphoto pics so i figured my hard drive is really failing this time around
    i try to get a time machine backup to save what i can, but after a couple of tries time machine would just stop backing up and in console i would see a disk i/o error.
    is there any way to force time machine to keep trying to backup through the disk i/o error so i can save what i can before getting a new drive?
    edit: a little more info, i know i have a harddrive error from looking at the console, but when i do a verify disk in disk utility it comes up clean and even after doing a disk repair it comes up clean i still see disk i/o errors in the console.

    See:
    *http://kb.mozillazine.org/Preferences_not_saved
    Thee can also be a problem with the file(s) that store the extensions registry.
    Delete the files extensions.* (extensions.sqlite, extensions.rdf, extensions.cache, extensions.ini) and compatibility.ini in the Firefox [[Profiles|profile folder]] to reset the extensions registry.<br />
    New files will be created when required.
    See "Corrupt extension files":
    * http://kb.mozillazine.org/Unable_to_install_themes_or_extensions
    If you see disabled, not compatible, extensions in "Tools > Add-ons > Extensions" then click the Tools button at the left side of the Search Bar (or click the "Find Updates" button in older Firefox versions) to do a compatibility check or see if there is an update.

  • Is there any way to force iPhoto to present faces by folder for identification rather than randomly?  Would provide better context for identification especially if a huge number of images is involved.

    Before I commit the time and energy required to load and tag faces in 25,000 images within iPhoto, I need some questions answered;
    Is there any way to force iPhoto to present faces by folder for tagging rather than randomly?  When so many images need tagging, over many years, the context of a folder helps with the identification. The work around is to load the images into iPhoto one folder at a time and do the tagging then.
    How do I get iPhoto to present the tagged faces by last name rather than first name? When so many faces will be identified, it is much easier to find people by surname, particularly when I share the library within the family. The work around is to enter names as last name and first name.  Being able to toggle the sort is much more desireable.
    Is there a way to export a portion of the library including faces?  I want to pass on portions of this huge 125 GB library to my family members.
    Since my family members will need an Apple computer to view the images and faces, they will likely have their own photo library.  So is there any way to combine two libraries and merge the faces?
    About 2/3 of my images have been scanned, so the date of creation is the scanned date rather than the date the photo was taken.  Will this mess up any sequencing or the retrieval of faces?

    If I want to carve off part of a library, I presume the way to do this is to make a copy of the library using PLM then go into iPhoto and delete what I don't want.  The result is the carved off portion.
    You don't need Library Manager to delete the portion you don't want.
    As a general rule: when deleting photos do them in batches of about 100 at a time. iPhoto can baulk at trashing large numbers at one go.
    If I want to merge two libraries, PLM implies that it will do this but will the Faces be merged too?
    I believe so.

  • Is there any way to force purchase an unsupported app?

    I'm currently stuck on OS X 1.7.5 since my MacBook Pro isn't compatible with anything more recent than that.
    However, I'll be upgrading to a new Retina MacBook Pro very soon and I'd like to purchase an OS X app that requires 10.8, since it's currently heavily discounted.
    Is there any way to force purchase it on my 10.7.5 system so that I'll be able to use it when I upgrade to a new Mac?
    Thanks!

    No.
    GB

  • Is there ANY way to keep track of changes or versions in a dynamic form, viewed in Reader

    I need to provide a measure of content control.
    I looked at acrobat.com for help.  There is a rather convoluted method and I don't know if I can get my company to go along with it.
    I have a dynamic form and it has to be dynamic, so I cannot change it to static to give it Comment/Markup ability - out of the question.
    Does anyone know of ANY way to keep track of changes or comments or anything? And if you know, please be as specific as possible.
    Thanks!

    No replies, so I assume that there isn't any way to do this at present. Do people agree that this would be a really useful feature?

  • Is there any way to force Sun C++ Preprocessor preserve whitespace?

    Hello!
    I'm preprocessing simple source file:
    void test()
        int i;
    }with command: CC -E test.cpp
    and CC preprocessor eats all whitespace at the beginning of each line, like this:
    void test()
    int i;
    }Is there any way to force CC preprocessor preserve whitespace?

    You cannot use the C preprocessor on C++ code, for at least two major reasons.
    1. The default -I options in CC are not the same as for cc. Try adding
    #include <iostream>
    #include <cstdlib>
    to your example.
    Even if you add the missing -I options, the conventions for finding the C++ standard headers are not known to the C preprocessor.
    Example:
    % cc -P -I/opt/SUNWspro/prod/include/CC/Cstd -I/opt/SUNWspro/prod/include/CC -I/opt/SUNWspro/prod/include/cc z.c
    "z.c", line 2: cannot find include file: <cstdlib>
    cc: acomp failed for z.c2. The predefined macros (-D options and predefined macros built into the compilers) are different for cc and CC.
    In particular, the C compiler predefines macros saying it is a C compiler. The C++ compiler predefines macros saying it is a C++ compiler. Code that is conditionalized on whether it is compiled by the C or C++ compiler will give different results. If you add -D options for C++ macros, the results will depend on the way the tests are coded. That is, testing for a C compiler or a C++ compiler will not give mutually exclusive answers, as they would if you use the correct compiler. The Solaris headers have conditional code for C and C++.

  • On a large monitor, the bookmarks toolbar is opening outside of the Firefox window itself - is there any way to force it to stay inside?

    Recently I installed Windows 7 on my computer, along with a device called a Triplehead2Go, which spoofs the operating system into thinking that the computer has one monitor attached (when it really has three). When the Firefox window is relatively small on the desktop and with excess space to the right, the bookmarks toolbar opens to the right (and extends outside of the window). This creates a problem for me, as the monitor bezels get in the way of navigation. When the Firefox window is all the way to the right of the desktop, the bookmarks toolbar opens inside of the window (as there is not enough space to the right for it).
    Is there any way to force this menu to stay within its boundaries?

    The screen dimensions are "right," but I don't want it to use up any more space on-screen than is in the window.

  • Af:fileDownloadActionListener - any way to force new browser session?

    Hi all
    I'm using af:fileDownloadActionListener to download a file.
    It works fine except for one thing:
    For some file types it does not open a new browser session but just replaces the existing page content.
    That's really ok by itself, but we have a problem if the users presses the browser Back Button to get back to the application.
    As we're using partial page rendering and af:region this will result in an error:
    Error 403--Forbidden
    From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
    10.4.4 403 Forbidden
    The server understood the request, but is refusing to fulfill it. Authorization will not help and the request SHOULD NOT be repeated. If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled, it SHOULD describe the reason for the refusal in the entity. This status code is commonly used when the server does not wish to reveal exactly why the request has been refused, or when no other response is applicable
    So my question is: is there any way of forcing a new browser session to open when using af:fileDownloadActionListener?
    We're using JDeveloper 11.1.1.1.0.
    Regards,
    Tove

    Hello
    I have the same problem
    Frank, is it possible to know when we'll have the correction available.
    It is just to inform our client about this issue.
    Thx
    Jack
    PS: is there a workaround till the correction is done?

  • Any way to force audio to stay on HDMI?

    Any way to force audio to stay on HDMI and not go back to Internal Speakers once the a/v receiver is off?
    To explain what is happening in more detail I have a mac mini hooked up to my TV and my computer monitor using an HDMI Distribution Amplifier. This way I can use the mac on my tv or at my desk. For some reason when the TV is shut off or if I switch the source of my desktop monitor to something else. The mac will go back to internal speakers. Is there any way to prevent this? I am assuming this is happening becuase the mac is losing the handshake with the monitor when I switch my source. If that is the case is there anything I can get to put before my DA that will make my mac think that something is always there?
    It would be more ideal if I can just permanently set the audio output to hdmi from within the mac itself though.

    The only really effective solution requires buying a Gefen HDMI Detective Plus this 'spoofs' the HDMI signal so the Mac thinks it is still there even if the AV receiver is turned off, or disconnected, or switched away from the Mac.
    See http://www.gefen.com/kvm/dproduct.jsp?prod_id=8005
    I bought a couple on eBay.

  • Disc in drive that Mini will not recognize, will not eject. Is there any way to force eject?  The computer says it's empty, but it's not.

    I have a disc in the super drive but cannot eject it because the Mini does not recognize that it's there. I've tried the eject button on top of the screen and in the dvd player controls. I wish there was an eject button on the machine. Is there any way to force eject?
    Thanks.

    RGA,
    Unfortunately, I do not believe that it is possible for a DAQ board to generate an AI Start Trigger from an analog trigger, but not be triggered itself until it receives a digital trigger.
    Spencer S.

  • Any way to force a complete refresh of contacts from Yahoo Address Book?

    Any way to force a complete refresh of contacts from Yahoo Address Book?
    About once a month I delete all my Yahoo contacts and upload a new file. (That may sound crazy but I do it from a master file (a database) both to Yahoo and Lotus Notes and blackberry via Notes. Only takes a few moments. Works for me.)
    When I do this with my iphone it's duplicating some contacts, not a whole lot, but some - maybe 3%. I have reset the sync history before doing this.
    So, any way to wipe the slate clean on the iphone and force a one way refresh?

    Please check you contact name in the device and verify if the names does not start with none alphabetic characters (e.g. @, &, *, etc).  This characters will actually stop the sync process and will not be able to successfully complete the transfer of data. Do the same thing with the contact data you have online just to be sure..
    If that it still doesn't work, delete your Google account on the device, restart, and then recreate the same account.
    Let me know how it goes... 

  • Any way to force FTS without any query change

    Hi All,
    One of my Oracle 11i apps database got one Cache buffer chain latch issue and it is causing high cpu spikes.
    I found the culprit SQL and its one of the Index (Nested Loop operation) which is causing high CBC latch.
    I am not in a position to put any HINT or modify the SQL. When i tested the sql with FULL hint, query gave results (100k records) in less than 1 min without any latch contention.
    My apps database is running on 10.2.0.4.0 RHEL 5.4 64 bit.
    SQL
    select
    int.rowid  ,  decode(int.SEGMENT1|| int.SEGMENT2|| int.SEGMENT3|| int.SEGMENT4|| int.SEGMENT5|| int.SEGMENT6|| int.SEGMENT7 , '',  
    decode (ccid_cc.code_combination_id, NULL, NULL, replace(ccid_cc.SEGMENT4,'.',' ') || '.' || replace(ccid_cc.SEGMENT1,'.',' ') || '.' || replace(ccid_cc.SEGMENT2,'.',' ') || '.' ||
    replace(ccid_cc.SEGMENT3,'.',' ') || '.' || replace(ccid_cc.SEGMENT5,'.',' ') || '.' || replace(ccid_cc.SEGMENT6,'.',' ') || '.' || replace(ccid_cc.SEGMENT7,'.',' ')  ),
    replace(int.SEGMENT4,'.',' ') || '.' || replace(int.SEGMENT1,'.',' ') || '.' || replace(int.SEGMENT2,'.',' ') || '.' || replace(int.SEGMENT3,'.',' ') || '.' ||
    replace(int.SEGMENT5,'.',' ') || '.' || replace(int.SEGMENT6,'.',' ') || '.' || replace(int.SEGMENT7,'.',' ') ) flexfield , nvl(flex_cc.code_combination_id, nvl(int.code_combination_id, -4))  ,
    decode(int.SEGMENT1|| int.SEGMENT2|| int.SEGMENT3|| int.SEGMENT4|| int.SEGMENT5|| int.SEGMENT6|| int.SEGMENT7 , '', decode(ccid_cc.code_combination_id, null,
    decode(int.code_combination_id, null, -4, -5), decode(sign(nvl(ccid_cc.start_date_active, int.accounting_date-1) - int.accounting_date), 1, -1,
    decode(sign(nvl(ccid_cc.end_date_active, int.accounting_date +1) - int.accounting_date), -1, -1, 0)) +  decode(ccid_cc.enabled_flag, 'N', -10, 0) + 
    decode(ccid_cc.summary_flag, 'Y', -100, decode(int.actual_flag, 'B', decode(ccid_cc.detail_budgeting_allowed_flag, 'N', -100, 0),  decode(ccid_cc.detail_posting_allowed_flag, 'N', -100, 0)))),
    decode(flex_cc.code_combination_id, null, -4, decode(sign(nvl(flex_cc.start_date_active, int.accounting_date-1) - int.accounting_date), 1, -1,
    decode(sign(nvl(flex_cc.end_date_active, int.accounting_date +1) - int.accounting_date), -1, -1, 0)) +  decode(flex_cc.enabled_flag, 'N', -10, 0) +  decode(flex_cc.summary_flag, 'Y', -100, 
    decode(int.actual_flag, 'B', decode(flex_cc.detail_budgeting_allowed_flag, 'N', -100, 0),  decode(flex_cc.detail_posting_allowed_flag, 'N', -100, 0)))))   , int.user_je_category_name ,
    int.user_je_category_name , 'UNKNOWN' period_name , decode(actual_flag, 'B'   , decode(period_name, NULL, '-1' ,period_name), nvl(period_name, '0')) period_name2  , currency_code  ,
    decode(actual_flag   , 'A', actual_flag   , 'B', decode(budget_version_id        , 1244, actual_flag        , 1303, actual_flag        , 1344, actual_flag        , NULL, '1', '6')   , 'E',
    decode(encumbrance_type_id        , 1000, actual_flag        , 1001, actual_flag        , 1020, actual_flag        , NULL, '3', '4'), '5') actual_flag  , '0' exception_rate ,
    decode(currency_code   , 'JPY', 1   , 'STAT', 1   , decode(actual_flag, 'E', -8, 'B', 1      , decode(user_currency_conversion_type          , 'User',
    decode(currency_conversion_rate, NULL, -1, currency_conversion_rate)         ,'Corporate',decode(currency_conversion_date,NULL,-2,-6)          ,'Spot',
    decode(currency_conversion_date,NULL,-2,-6)          ,'Bloomberg Daily Rate',decode(currency_conversion_date,NULL,-2,-6)          , NULL, decode(currency_conversion_rate,NULL,
    decode(decode(nvl(to_char(entered_dr),'X'),'X',1,2),decode(nvl(to_char(accounted_dr),'X'),'X',1,2),                  
    decode(decode(nvl(to_char(entered_cr),'X'),'X',1,2),decode(nvl(to_char(accounted_cr),'X'),'X',1,2),-20,-3),-3),-9),-9))) currency_conversion_rate ,
    to_number(to_char(nvl(int.currency_conversion_date,            int.accounting_date), 'J'))  , decode(int.actual_flag  , 'A',
    decode(int.currency_code    , 'JPY', 'User'   , 'STAT', 'User'    , nvl(int.user_currency_conversion_type, 'User'))  , 'B', 'User', 'E', 'User'   ,
    nvl(int.user_currency_conversion_type, 'User')) user_currency_conversion_type  , ltrim(rtrim(substrb(rtrim(substrb(int.reference1, 1, 50)) || ' ' || int.user_je_source_name || ' 10409378: ' || int.actual_flag || ' ' || int.group_id, 1, 100))) , rtrim(substrb(nvl(rtrim(int.reference2), 'Journal Import ' || int.user_je_source_name || ' 10409378:'), 1, 240)) ,
    ltrim(rtrim(substrb(rtrim(rtrim(rtrim(substrb(int.reference4, 1, 25)) || ' ' || int.user_je_category_name || ' ' || int.currency_code || decode(int.actual_flag, 'E', ' ' || int.encumbrance_type_id,  'B', ' ' || int.budget_version_id,  '') || ' ' || int.user_currency_conversion_type || ' ' || decode(int.user_currency_conversion_type, NULL, '', 'User', to_char(int.currency_conversion_rate))) || ' ' || to_char(int.currency_conversion_date)) || ' ' || substrb(int.reference8, 1, 15) || int.originating_bal_seg_value, 1, 100))) , rtrim(nvl(rtrim(int.reference5), 'Journal Import 10409378:')) , rtrim(substrb(nvl(rtrim(int.reference6), 'Journal Import Created'), 1, 80)) , rtrim(decode(upper(substrb(nvl(rtrim(int.reference7), 'N'), 1, 1)),'Y','Y', 'N')) , decode(upper(substrb(int.reference7, 1, 1)), 'Y', decode(rtrim(reference8), NULL, '-1', rtrim(substrb(reference8, 1, 15))), NULL) , rtrim(upper(substrb(int.reference9, 1, 1))) , rtrim(nvl(rtrim(int.reference10), nvl(to_char(int.subledger_doc_sequence_value), 'Journal Import Created'))) , int.entered_dr , int.entered_cr , to_number(to_char(int.accounting_date,'J')) , to_char(int.accounting_date, 'YYYY/MM/DD')  , int.user_je_source_name , nvl(int.encumbrance_type_id, -1) , nvl(int.budget_version_id, -1) , NULL , int.stat_amount , decode(int.actual_flag   , 'E', decode(int.currency_code, 'STAT', '1', '0'), '0') , decode(int.actual_flag   , 'A', decode(int.budget_version_id     , NULL, decode(int.encumbrance_type_id, NULL, '0', '1')           , decode(int.encumbrance_type_id, NULL, '2', '3'))   ,
    'B', decode(int.encumbrance_type_id     , NULL, '0', '4')   , 'E', decode(int.budget_version_id     , NULL, '0', '5'), '0') , int.accounted_dr ,
    int.accounted_cr , nvl(int.group_id, -1) , nvl(int.average_journal_flag, 'N') , int.originating_bal_seg_value
    from GL.GL_INTERFACE int,  GL.gl_code_combinations flex_cc,  GL.gl_code_combinations ccid_cc
    where int.set_of_books_id = 43
    and int.status != 'PROCESSED'
    and accounting_date between to_date('2010/06/01', 'YYYY/MM/DD')
    and to_date('2010/06/30', 'YYYY/MM/DD')
    and (int.user_je_source_name,group_id) in (('Receivables', 74486))
    and flex_cc.SEGMENT1(+) = int.SEGMENT1
    and flex_cc.SEGMENT2(+) = int.SEGMENT2
    and flex_cc.SEGMENT3(+) = int.SEGMENT3
    and flex_cc.SEGMENT4(+) = int.SEGMENT4
    and flex_cc.SEGMENT5(+) = int.SEGMENT5
    and flex_cc.SEGMENT6(+) = int.SEGMENT6
    and flex_cc.SEGMENT7(+) = int.SEGMENT7
    and flex_cc.chart_of_accounts_id(+) = 101
    and flex_cc.template_id(+) is NULL
    and ccid_cc.code_combination_id(+) = int.code_combination_id
    and ccid_cc.chart_of_accounts_id(+) = 101
    and ccid_cc.template_id(+) is NULL
    order by decode(int.SEGMENT1|| int.SEGMENT2|| int.SEGMENT3|| int.SEGMENT4|| int.SEGMENT5|| int.SEGMENT6|| int.SEGMENT7 , ''  ,rpad(ccid_cc.SEGMENT4,30) || '.' || rpad(ccid_cc.SEGMENT1,30) || '.' || rpad(ccid_cc.SEGMENT2,30) || '.' || rpad(ccid_cc.SEGMENT3,30) || '.' || rpad(ccid_cc.SEGMENT5,30) || '.' || rpad(ccid_cc.SEGMENT6,30) || '.' || rpad(ccid_cc.SEGMENT7,30)  , rpad(int.SEGMENT4,30) || '.' || rpad(int.SEGMENT1,30) || '.' || rpad(int.SEGMENT2,30) || '.' || rpad(int.SEGMENT3,30) || '.' || rpad(int.SEGMENT5,30) || '.' || rpad(int.SEGMENT6,30) || '.' || rpad(int.SEGMENT7,30)   ) , int.entered_dr, int.accounted_dr, int.entered_cr, int.accounted_cr, int.accounting_date
    /Execution plan
    | Id  | Operation                      | Name                    | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT               |                         |       |       |  2027 (100)|          |
    |   1 |  SORT ORDER BY                 |                         |     1 |   374 |  2027   (1)| 00:00:25 |
    |   2 |   NESTED LOOPS OUTER           |                         |     1 |   374 |  2026   (1)| 00:00:25 |
    |   3 |    NESTED LOOPS OUTER          |                         |     1 |   315 |  2024   (1)| 00:00:25 |
    |*  4 |     TABLE ACCESS BY INDEX ROWID| GL_INTERFACE            |     1 |   256 |  2022   (1)| 00:00:25 |
    |*  5 |      INDEX RANGE SCAN          | GL_INTERFACE_N1         | 25375 |       |   132   (0)| 00:00:02 |
    |*  6 |     TABLE ACCESS BY INDEX ROWID| GL_CODE_COMBINATIONS    |     1 |    59 |     2   (0)| 00:00:01 |
    |*  7 |      INDEX RANGE SCAN          | GL_CODE_COMBINATIONS_N7 |  4211 |       |     2   (0)| 00:00:01 |
    |*  8 |    TABLE ACCESS BY INDEX ROWID | GL_CODE_COMBINATIONS    |     1 |    59 |     2   (0)| 00:00:01 |
    |*  9 |     INDEX UNIQUE SCAN          | GL_CODE_COMBINATIONS_U1 |     1 |       |     1   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       4 - filter(("ACCOUNTING_DATE">=TO_DATE(' 2010-06-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
                  "INT"."STATUS"<>'PROCESSED' AND "ACCOUNTING_DATE"<=TO_DATE(' 2010-06-30 00:00:00', 'syyyy-mm-dd
                  hh24:mi:ss')))
       5 - access("INT"."USER_JE_SOURCE_NAME"='Receivables' AND "INT"."SET_OF_BOOKS_ID"=43 AND
                  "GROUP_ID"=74486)
       6 - filter(("FLEX_CC"."CHART_OF_ACCOUNTS_ID"=101 AND "FLEX_CC"."TEMPLATE_ID" IS NULL AND
                  "FLEX_CC"."SEGMENT1"="INT"."SEGMENT1" AND "FLEX_CC"."SEGMENT2"="INT"."SEGMENT2" AND
                  "FLEX_CC"."SEGMENT3"="INT"."SEGMENT3" AND "FLEX_CC"."SEGMENT4"="INT"."SEGMENT4" AND
                  "FLEX_CC"."SEGMENT5"="INT"."SEGMENT5" AND "FLEX_CC"."SEGMENT6"="INT"."SEGMENT6"))
       7 - access("FLEX_CC"."SEGMENT7"="INT"."SEGMENT7")
       8 - filter(("CCID_CC"."CHART_OF_ACCOUNTS_ID"=101 AND "CCID_CC"."TEMPLATE_ID" IS NULL))
       9 - access("CCID_CC"."CODE_COMBINATION_ID"="INT"."CODE_COMBINATION_ID")SQL plan with FULL(flex_cc) hint
    | Id  | Operation                      | Name                    | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT               |                         |     1 |   374 | 15377   (4)| 00:03:05 |
    |   1 |  SORT ORDER BY                 |                         |     1 |   374 | 15377   (4)| 00:03:05 |
    |   2 |   NESTED LOOPS OUTER           |                         |     1 |   374 | 15376   (4)| 00:03:05 |
    |*  3 |    HASH JOIN OUTER             |                         |     1 |   315 | 15374   (4)| 00:03:05 |
    |*  4 |     TABLE ACCESS BY INDEX ROWID| GL_INTERFACE            |     1 |   256 |  2022   (1)| 00:00:25 |
    |*  5 |      INDEX RANGE SCAN          | GL_INTERFACE_N1         | 25375 |       |   132   (0)| 00:00:02 |
    |*  6 |     TABLE ACCESS FULL          | GL_CODE_COMBINATIONS    |  1193K|    67M| 13342   (4)| 00:02:41 |
    |*  7 |    TABLE ACCESS BY INDEX ROWID | GL_CODE_COMBINATIONS    |     1 |    59 |     2   (0)| 00:00:01 |
    |*  8 |     INDEX UNIQUE SCAN          | GL_CODE_COMBINATIONS_U1 |     1 |       |     1   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       3 - access("FLEX_CC"."SEGMENT1"(+)="INT"."SEGMENT1" AND
                  "FLEX_CC"."SEGMENT2"(+)="INT"."SEGMENT2" AND "FLEX_CC"."SEGMENT3"(+)="INT"."SEGMENT3" AND
                  "FLEX_CC"."SEGMENT4"(+)="INT"."SEGMENT4" AND "FLEX_CC"."SEGMENT5"(+)="INT"."SEGMENT5" AND
                  "FLEX_CC"."SEGMENT6"(+)="INT"."SEGMENT6" AND "FLEX_CC"."SEGMENT7"(+)="INT"."SEGMENT7")
       4 - filter("ACCOUNTING_DATE">=TO_DATE(' 2010-06-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
                  "INT"."STATUS"<>'PROCESSED' AND "ACCOUNTING_DATE"<=TO_DATE(' 2010-06-30 00:00:00', 'syyyy-mm-dd
                  hh24:mi:ss'))
       5 - access("INT"."USER_JE_SOURCE_NAME"='Receivables' AND "INT"."SET_OF_BOOKS_ID"=43 AND
                  "GROUP_ID"=74486)
       6 - filter("FLEX_CC"."CHART_OF_ACCOUNTS_ID"(+)=101 AND "FLEX_CC"."TEMPLATE_ID"(+) IS NULL)
       7 - filter("CCID_CC"."CHART_OF_ACCOUNTS_ID"(+)=101 AND "CCID_CC"."TEMPLATE_ID"(+) IS NULL)
       8 - access("CCID_CC"."CODE_COMBINATION_ID"(+)="INT"."CODE_COMBINATION_ID")
    Above execution is very quick without any CBC latch contention.Is there any way, i can force FTS on this flex_cc table. I did try altering 'GL_CODE_COMBINATIONS_N7' index stats but then CBO is using GL_CODE_COMBINATIONS_N6 index and result is same CBC latch contention.
    Index statitics :
    select index_name,NUM_ROWS,SAMPLE_SIZE,LAST_ANALYZED,CLUSTERING_FACTOR,BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS from dba_indexes where
    index_name='GL_CODE_COMBINATIONS_N7';
    INDEX_NAME                  NUM_ROWS SAMPLE_SIZE LAST_ANALYZED        CLUSTERING_FACTOR     BLEVEL LEAF_BLOCKS DISTINCT_KEYS
    GL_CODE_COMBINATIONS_N7      7236665     7236665 2010/06/07 11:00:33             185935          2       20751          2293INDEX DDL
    CREATE INDEX "GL"."GL_CODE_COMBINATIONS_N7" ON "GL"."GL_CODE_COMBINATIONS" ("SEGMENT7")
      PCTFREE 0 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
      STORAGE(INITIAL 131072 NEXT 131072 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
      TABLESPACE "APPS_TS_TX_IDX"

    Have you looked at stored outlines ? They are for plan stability.
    Also you may want to look little deep on where your statistics are going wrong.
    I would recommend using below hint and checking where is difference in estimated(E-Rows) and actual number(A-rows) of rows. This may point out some incorrect stats.
    e.g.
    select /*+ gather_plan_statistics */ * from dual;
    D
    X
    select * from table(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST'));
    Plan hash value: 272002086
    | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers |
    | 1 | TABLE ACCESS FULL| DUAL | 1 | 1 | 1 |00:00:00.01 | 3 |
    ------------------------------------------------------------------------------------

Maybe you are looking for

  • FM for Purchase requisition status

    Hi,   Is there any FM for Purchase requisition status. Do let me know. Regards, SP

  • Help, I deleted some files and then secure empty trashed it.

    I accidently deleted important files, and also secure empty trash, is there any way to recover those files?

  • BW - Invalid procedures

    Hi all, From production to development instances of BW, I remark that all procedures are in invalid status. Those procedures are started as "/BI0/<number> and the owner is sapr3. When recompiled those invalid objects, I got only this kind of error :

  • ISight/Photo Booth/iChat Background?

    Whenever I am in Photo Booth or iChat and I want to take a picture or chat using one of the backgrounds (Paris, etc.) I step out of the frame when prompted to do so, but then when I step back in, my face is covered up in random places by the backgrou

  • Error with Audigy SE and ps2 keybo

    Recently my G5 (usb) keyboard broke and I was forced to use a keyboard that I got from my older computer. However whenever I press a key the sound from the Audigy SE stops completely for about a fourth of a sec. This happens EVERYTIME I press a key,