Slower processing in a cube with a transparent partition?

I have a database that includes some scenarios that are the targets of transparent partitions.<BR><BR>I have found that the database loads data more quickly without the partitions in place. The calc all also seems to go more quickly.<BR><BR>Has anyone ever encountered this?<BR><BR>Jared

Thanks for your answer but, if the same value of the characteristic I want to count comes from both update rules, will the counter value be 2? in my case, value of 2 would be wrong.
Thanks,
Inma

Similar Messages

  • MDX / BSO calculations with transparent partitions - Recursive reference

    Hi Everyone,
    I am using Essbase v11.1.2 and have an empty ASO cube that has transparent partitions to several ASO source cubes. However, I would like to use MDX in the target ASO cube to pull data from one cube, but make it available to all queries from other cubes.
    Eg. Empty Target ASO cube TrgtASO has VOLUMEmetric and versions Ver1, Ver2 and Ver3. I have 3 ASO source cubes for each version.
    SrcASO1 is only cube with volume data
    SrcASO2
    SrcASO3
    I had created a metric called "Vol-All versions" in the TrgtASO cube and tried to use MDX fornula ([Version].[Ver1],[Measures].[VOLUME]) so that no matter what version is selected, the data will always be from SrcASO1.
    It works if I have all data in one cube and load data only into Ver1. However, for performance and query reasons, I need to put each version into it's own cube.
    My question is do transparent partitions allow recursive retrieval of data?
    I.e. If I log into TrgtASO cube and pull metric "Vol-All versions" but have either Ver2 or Ver3 as the version, is there an MDX formula that will pull the volume from Ver1 cube?
    Any assistance would be greatly appreciated.

  • Cube with aggregation more slow that a cube without aggregation

    Hi,
    I have a SSAS 2012 database that I am trying to tune to give more performance.
    I improve several best practices like define attribute relationships between attributes and also create aggregations (with bids helper) to try so tune the speed of the query.
    But every time I compare my Cube with the old without aggregations the times are almost the same.
    I run the Sql profiler and I saw that the aggregations are used but at the end a Query Subcube is always done I increase the duration of the query.
    If my query can get all from the aggregation it's usual to do at the end a Query SubCube ?
    In the Old Cube no aggregations are used and all information is used by the partition and query Subcube.
    Thanks,
    Manuel Gomes

    Hi Gomes,
    If I understanding correctly, you encounter performance issue when using SQL Server Analysis Services. Since not know the structure of you SSAS database, it hard to give your the root reason that cause the performance issue. I'd suggest you enable SQL
    Sever profiler to monitor the queries fired by the process, once you find some queries took a very long time to run, consider creating the smaller cube partition or optimzing the query by adding index or partition to improve the query performance.
    Here are some links about performance tuning, please see:
    http://www.mssqltips.com/sqlservertip/2565/ssas--best-practices-and-performance-optimization--part-1-of-4/
    http://technet.microsoft.com/en-us/library/cc966527.aspx
    Hope this helps.
    Regards,
    Charlie Liao
    TechNet Community Support

  • Process chain for updating a cube with last month's data everyday.

    Hi everybody,
    I need a suggestion on designing the process chain. I have the cube Zxx_xx. I will explain my requirement with an example. Suppose I uploaded the cube with data up to 201103. Each night in May, I want to upload the cube with April's data. So each night the previous request should be deleted. When May finishes, this time, each night I need to upload the cube with May's data. I handled everything except deleting the data from PSA. I need the data loaded in the cube stay at PSA. In this case the request including data till 201103,  the request loaded for April, and finally in June, I need to see the request loaded for May. In the last step of the process chain I added the process for deleting PSA data choosing my infosource, but I have no option for deleting the requests where I have uploaded from same infopackage with same selections. Please help handling this situation.
    thanks in advance.
    Yasemin.

    hi,
    You can achieve this by loading the cube through two different DTP's.
    DTP1 to have in the routine to pick data for month-2 i.e. in june it picks up April data.
    DTP2 to restrict the month in routine to month-1 i.e. in june it picks up May data.
    Now the design of process chain will be as follows:
    process chain to have an step "Decision Between Multiple Alternatives "
    in this decision step you can write formula to check if sy-datum is 01, first of every month.
    if step: formula
    ( RIGHT( 2, Current Date ) = '01' )
    On first of every month load for month-2 as well as month-1 and delete overlapping request for month-1. Variant described below.  DTP1, DTP2 and then Delete overlapping request step
    Else part of Decision Between Multiple Alternatives will be executed for all other days
    load only month-1 and delete overlapping request from cube. DTP2 and then Delete overlapping request step.
    in the pc there is variant "Delete overlapping request"
    in that choose variant type DTP, give the technical name of DTP2 and save it.
    this way the whole data loading will be automated and you need not intervene to delete data manually,
    regards,
    Arvind.

  • Combine 2 cubes with transparent partition but failed in cell count match

    I have 2 cubes:
    Cube A DIMENSIONS(YTD, YEAR, PRODUCT, LOCATION) + MEASURES
    Cube B DIMENSIONS(YTD, YEAR, PRODUCT, LOCATION, BE_TYPE) + MEASURES
    Both cubes have the same YTD AND YEAR.
    It is comparable for A.PRODUCT,GEN2 VS B.PRODUCT,GEN3
    It is comparable for A.PRODUCT,GEN5 VS B.PRODUCT,GEN6
    It is comparable for A.LOCAITON,GEN2 VS B.LOCATION,GEN5
    It is comparable for A.LOCATION,GEN5 VS B.LOCATION,GEN5
    Most measures have the same name between 2 cubes.
    Some are not.
    Now I need to combine 2 cubes into 1 for OBIEE usage.
    Criteria:
    1. Include all YTD and YEAR
    2. Combine A.PRODUCT,GEN2 & B.PRODUCT,GEN3
    3. Combine A.PRODUCT,GEN5 & B.PRODUCT,GEN6
    4. Combine A.LOCATION,GEN2 & B.LOCATION,GEN2
    5. Combine A.LOCATION,GEN5 & B.LOCATION,GEN5
    6. All data from Cube B are selected with B.BE_TYPE = 'TYPE_A'
    7. Combine ALL MEASURES FROM 2 CUBES.
    So, I am working on transparent partition with source = Cube B and target Cube A inside EAS.
    However, I cannot match the cell counts.
    Do you have suggestions? Any hints on my cases?

    thanks, in my case,
    YTD and YEAR contain the same members and names.
    Number of measures of two cubes are the same.
    However,
    1. A.PRODUCT,GEN2 & B.PRODUCT,GEN3
    2. A.PRODUCT,GEN5 & B.PRODUCT,GEN6
    3. A.LOCATION,GEN2 & B.LOCATION,GEN2
    4. A.LOCATION,GEN5 & B.LOCATION,GEN5
    the number of members of 2 cubes are not the same. Since the Product ID contained in A.PRODUCT,GEN5 is the not same in B.PRODUCT,GEN6. Infact I wonder how I can make them matched. It is because my purpose is to combine all these different product into one dimension (just like union them into one column), so their number must not match.
    Am I correct? How can I handle this case?

  • ASO Cube with attributes very slow in retrieval

    Hi,
    I have a ASO Cube with 5 base dimensions and 8-9 attributes on the entity dimension. I have only 5-6 measures, which do the averages and counts based on the 40 day period. Howere, the data is loaded at the 15 minute increment
    Entity
    Date - (date-time, lowest level being date)
    TIme - ( 15 minute time for the full 24 hour period, has a attribute assocuated with oit)
    LocationType
    Measures.
    The sample formula is
    IIF(Islevel([Locations].CurrentMember,0), Avg(CrossJoin({[Measure].[Sale]},{[DateDim].CurrentMember.lag(40):[DateDim].CurrentMember})),Missing)
    Is there a way, i can have this calculated as a part of the script? DO you suggest i create a BSO, to do these calculations and pass on the result.
    In OBIEE, the report is to display the followung based on the date input.
    Entity Gen7, Entity Gen 6..... Entity Gen 2, Attr1, Attr2, Attr3, Attr4, Attr5, Attr6, Attr7, Measures

    2 things I would look at
    1st - I don't know how much performance you would get out of this, but I'm not clear why you are using a crossjoin in your MDX, it seems unnecessary and may cause more overhead. The following should work, you could also try using IsLeaf instead and see if that is any faster
    IIF(Isleaf([Locations].CurrentMember),
    Avg({[DateDim].CurrentMember.lag(40):[DateDim].CurrentMember},
    [Measure].[Sale], INCLUDEEMPTY)
    2nd - your problem mostly revolves around the fact that you are running a 40 member sum/avg for every member you are querying. It also sounds like the average is at the Day level, which is not level 0. So for all forty days, ASO also has to calc the results of each of those days. Remember that aggregations only get you so far, you should really think of everything in ASO as dynamic and that is why you can see what you have set up is not going to work that well, it is too calc intensive.
    I don't know how practical this is, but to get this to work fast you would probably need to break out the 15 minute increments below the day level to another dimension so the day level becomes a stored level zero member. The 15 minute increment dimension should also be stored. If at all possible you would want to have an alternate stored hierarchy with the 40 days you want to base the average on. Enable alternate hierarchies in your aggregations, then change your MDX calc to be based on the parent of the 40 day hierarchy divided by 40. That would be fast.
    I suppose you could opt to not break out the 15 minute increments and just have the shared hierarchy made up of the 15 minute increments that are below the 40 days. That would still give you a good stored subtotal that with some query hints you could get optimized.

  • Flash with wmode="transparent" doesn't work with non-US keyboard (like FF)

    Safari has the same issue as FireFox (which they are finally fixing) :
    https://bugzilla.mozilla.org/show_bug.cgi?id=347185
    If you use Flash with wmode="transparent" then it treats all keyboards as if they are US keyboards.
    For example try G.ho.st http://G.ho.st/vc.html with a non-US keyboard

    I too am having issues. I am using Shockwave Flash 11.4.402.287 on Firefox 16.0.1. I am running on Windows 7 Enterprise. Disabling the plugin allows me to load pages quickly, but I am not able to view videos or play games. Firefox freezes upon loading a page that uses Flash. It remains frozen for an unacceptable length of time, then it will unfreeze on its own accord. The freeze affects the entire computer. I cannot interact with the desktop or the Windows start bar, and can only close Firefox by forcibly ending the "firefox.exe" process via Task Manager.
    This is not the first version of Firefox that has displayed this problem to me. Firefox 15 also froze upon using Flash.
    I had hoped that the latest Firefox update would solve this problem, but apparently not. Until then, I am forced to use Chrome, which is quite inconvenient for me as I am not at all familiar with that browser and am constantly clicking the settings button when I want to to go to my home page.
    These freezes are incredibly frustrating and annoying. If Mozilla wishes to build a better Internet, they should try to make their browser a program that doesn't tempt me towards rage-quitting YouTube.

  • Slow processing and getting opening errors/warnings

    I've modified the PDF Binder sample to get a plugin that would open PDF's and Tif files, and save them as PDF/A-1b (code below).
    It's working. The problem: it's processing too slow (compared with the Actions batch processing)... and I've been getting warnings/and errors about "The imput file is corrupt or of an unknown/unsupported type" type. This is stopping my batch process until I click OK, and the it continues.
    I am trying to process a few thousand of tif files now. I tried first to use the Batch processing capability built in the Acrobat X... an it works, but only with the first 255 documents in the folder... then gives an "insufficient disk space" message for the rest of the files in the directory.
    So, 2 questions: Does anyone knows why it is so slow processing the tiff files and... how I can make my code "silent" so it does not wait for the OK after the message??
    Thanks in advance.
    The code:
    ADOBE SYSTEMS INCORPORATED
    Copyright (C) 1998-2006 Adobe Systems Incorporated
    All rights reserved.
    NOTICE: Adobe permits you to use, modify, and distribute this file
    in accordance with the terms of the Adobe license agreement
    accompanying it. If you have received this file from a source other
    than Adobe, then your use, modification, or distribution of it
    requires the prior written permission of Adobe.
      \file PDFBinder.cpp
    - Implements a method to convert multiple files into PDFs and bind the PDFs
    into one PDF file. The code shows how to use AVConversionToPDFHandler to
    convert files to PDF and how to use PDDocInsertPages() to combind PDF files.
    // Headers.
    #include <stdio.h>
    #include <ctype.h>
    #ifndef MAC_PLATFORM
    #include <direct.h>
    #include "PIHeaders.h"
    #endif
    // Defines ----------
    // Define this flag to show AVConversionToPDFEnumHandler info. in log file.
    #define SHOW_TOPDF_HANDLER_TYPES   
    // define this flag to use file type filter 
    #define USE_FILE_FILTER   
        Constants/Declarations
    // Message display control.  Ture: display
    ASBool bEcho = true;
    // File location. User can change the following filenames.
    #if WIN_PLATFORM
        const char* STRING_PDFBinderFolder = "C:\\Fairfax\\Adobe\\in";
        const char* STRING_PDFOutputFolder = "C:\\Fairfax\\Adobe\\PDFA";
        const char* FOLDERSYMBOL="\\";
    #endif
    #if MAC_PLATFORM
        const char* STRING_PDFBinderFolder = "/PDFBinder";
        const char* FOLDERSYMBOL="/";
    #endif
    char* OutputPdfFileName = "PDFBinderOutput.pdf";
    char* LogFileName = "PDFProcessLog.txt";
    static ASInt32 gNumToPDFExt;
    static ASInt32 gNumFromPDFExt;
    static AVConversionFromPDFHandler RightHandler;
    const int MAX_FILENAME_LENGTH = 256;
    char sLogFileName[MAX_FILENAME_LENGTH];
    // Filter -----------
    // Filter is a list of file types which can be converted to PDF in this program.
    // Use a filter may fit user's specific needs and ensure a smooth automation process.
    // Of course, the user can turn off the filter in two ways:
    //   (1) gPDFBinderFileFilter = "";
    //   (2) comment out //USE_FILE_FILTER 
    // The filter should be consistent with the Acrobat viewer's menu capability:
    //   Create PDF from multiple files ...
    // Here we put the types which have been tested, but user can expand it.
    const char* gPDFBinderFileFilter = "pdf,tif,tiff,PDF,TIF,TIFF";
    const int MAX_STRING_LENGTH = 2048;
    AVConversionToPDFHandler gHandler;
    // functions in this file.
    int    ConvertAndInsertFileToPDF(ASPathName aspItem, char* aFileName, PDDoc  PDFfile);
    void BindingFileToPDF(ASPathName aPathName, char* aFilename, ASFileSysItemPropsRec nFileAttrb, PDDoc targetPDdDoc, ASPathName outputPathName, int *ipTotal, int *ipConverted);
    ASBool PassPDFBinderFileFilter(char* filename);
    int    ConvertAndSavePDFInTargetFolder(ASPathName aPathName, char* aFileName, PDDoc PDFfile, ASPathName outputPathName);
    char* NewFileName(char *& aFileName);
    // callbacks
    ACCB1 ASBool ACCB2 MyAVConversionToPDFEnumProc(AVConversionToPDFHandler handler, AVConversionEnumProcData data);
    ACCB1 ASBool ACCB2 AVConversionToPDFEnumFindHandler(AVConversionToPDFHandler handler, AVConversionEnumProcData data);
    static ACCB1 ASBool ACCB2 myAVConversionFromPDFEnumProc(AVConversionFromPDFHandler handler, AVConversionEnumProcData data);
        Implementation
    /**    This sample implements a method to convert multiple files into PDF
      and bind the PDFs into one PDF file .
        This sample shows developers how to grammatically implement To-PDF file
      converson functionality.  Basically, the code uses AVConversionToPDFHandler
      to convert files to PDF and PDDocInsertPages()to combine PDF files.
      This plug-in is designed to run from a menu item, and by setting bEcho = false
      it may be run without any graphics user interface on the screen. Therefore, it 
      can be executed from other programs such as C IAC, VB IAC, and JavaScript
      to meet enterprise workflow needs.
        How to run it :
        - This sample adds a menu item "PDF Binder" under the Acrobat SDK submenu. Two ways to
        execute it: 1) click the menu item to run the program using a fixed file location
        hard coded; 2) press the shift key and click the menu item to choose a folder where
        files to be converted are located.
        - Without folder selection, this original code is to convert and bind files in a
        directory    C\test\PDFBinder for Win, or a folder   MacHD:test:PDFBinder for Mac.
        You can copy the test files in the project's testfiles folder to the appropriate location 
        for testing. You may locate files to be converted in another directory/folder, and
        specify the location in the string variable PDFBinderFolder in the code.
        - When you have the files to be converted ready in the specified location,
        run Acrobat 6 menu Advanced->AcrobatSDK->PDF Binder to start the operation.  There are
        echo messages informing you of the operation start and end, but you can change and
        rebuild the code to turn off the display on screen.
        - An output file PDFBinderOutput.pdf in the same location is created
        when the program succeeds. A text log file  PDFBinderLog.txt in the same
        location records the process and results.
        -  You can set bEch = false in the code to turn off any display on the screen.
        This is necessary when you  call the menu function from within other programs
        of C IAC, VB IAC, JavaScript. 
        -  An optional file filter is used to pre-process the files. The filter only allows
        the files with predefined types to be processed. You can change the file type list
        as you wish. Using a filter may ensure a smooth automation process, since you can put
        only well-tested file types in the filter. To turn off the filter, you can set
        gPDFBinderFileFilter = "" or not to define USE_FILE_FILTER 
        - Note this is a sample only, developers need to make further improvement for
        their actual use. For example, you can set up a list of files to use the method for
        the conversion and binding. And you can add code to handle special file types.
          @see AVConversionConvertToPDFWithHandler
        @see AVConversionEnumToPDFConverters
        @see ASFileSysDestroyFolderIterator
        @see PDDocOpen
        @see PDDocClose
        @see PDDocInsertPages
        @see PDDocCreatePage
        @see PDDocDeletePages
        @see PDPageRelease
        @see ASFileSysCreatePathName
        @see ASFileSysFirstFolderItem
        @see ASFileSysNextFolderItem
        @see ASFileSysGetNameFromPath
        @see ASFileSysReleasePath
    ACCB1 void ACCB2 PDFBinderCommand(void*)
        // if the menu item clicked with Shift key pressed down, go to interactive mode.
        // let the user to choose a folder and process all the file in the folder.
        ASText dispText = ASTextNew();
        char PDFBinderFolder[MAX_STRING_LENGTH];
        ASBool shiftKeyIsDown = ((AVSysGetModifiers() & AV_SHIFT) != 0);
        if(shiftKeyIsDown) {
            AVOpenSaveDialogParamsRec dialogParams;
            // Configure the dialog box parameters.
            memset (&dialogParams, 0, sizeof (AVOpenSaveDialogParamsRec));
            dialogParams.size = sizeof(AVOpenSaveDialogParamsRec);
            dialogParams.windowTitle = ASTextFromScriptText("Choose folder with files to bind",kASRomanScript);
            dialogParams.flags |= kAVOpenSaveAllowForeignFileSystems;
            dialogParams.initialFileSys = ASGetDefaultUnicodeFileSys();
            ASPathName thePath;
            ASFileSys fileSys;
            AVAppBeginModal(NULL);
            if(ASBoolToBool(AVAppChooseFolderDialog(&dialogParams, &fileSys, &thePath)) != true){
                AVAppEndModal();
                //AVAlertNote("Failed to select the folder");
                return;
            AVAppEndModal();
    #ifdef WIN_PLATFORM       
            ASFileSysDisplayASTextFromPath(ASGetDefaultUnicodeFileSys(), thePath, dispText);
            ASHostEncoding bestEnc = ASTextGetBestEncoding(dispText, (ASHostEncoding)PDGetHostEncoding());
            strncpy(PDFBinderFolder, ASTextGetEncoded(dispText, bestEnc), MAX_STRING_LENGTH - 1);
    #else       
            ASPlatformPath aspPath;
            ASFileSysAcquirePlatformPath(fileSys, thePath, ASAtomFromString("POSIXPath"), &aspPath);
            strncpy(PDFBinderFolder, (char *)ASPlatformPathGetPOSIXPathPtr(aspPath), MAX_STRING_LENGTH - 1);
            ASFileSysReleasePlatformPath(fileSys, aspPath);
            // remove extra path separator
            char e = PDFBinderFolder[strlen(PDFBinderFolder)-1];
            if(e == ':' || e == '/')
                PDFBinderFolder[strlen(PDFBinderFolder)-1]='\0';
            dispText = ASTextFromScriptText(PDFBinderFolder, kASEUnicodeScript);
    #endif
            ASFileSysReleasePath(fileSys, thePath);
        // Otherwise, the hard coded file path will be used.
        else {
            strcpy(PDFBinderFolder, STRING_PDFBinderFolder);
            dispText = ASTextFromScriptText(PDFBinderFolder, kASRomanScript);
        // instruction message
        char strMsg[MAX_STRING_LENGTH] = "";
        sprintf(strMsg, "This function will convert and process Tiff and PDF files in the selected directory. ");
        strcat(strMsg, " You need to copy your files in C:\\Fairfax\\Adobe\\in directory." );
        strcat(strMsg, " Files will be processed into C:\\Fairfax\\Adobe\\PDFA directory." );
        strcat(strMsg, " If you are ready, click OK to continue, or click Cancel to quit. " );
        strcat(strMsg, " \nNote you can press down Shift key and click the menu item to have a folder selection. " );
        strcat(strMsg, " \nNote you can turn off the echo message by setting bEcho = false and rebuild the code. " );
        if(ASBoolToBool(bEcho)==true){
            ASInt32 choice = AVAlert(ALERT_CAUTION, strMsg, "OK", "Cancel", NULL, true);
            if(choice==2) {
                return;
        // create a new target pdf file with one empty page
        PDDoc TargetPDF = PDDocCreate();
        ASFixedRect mediaBox = { fixedZero, ASInt32ToFixed(792), ASInt32ToFixed(612), fixedZero };
        PDPage emptyPage = PDDocCreatePage (TargetPDF, PDBeforeFirstPage, mediaBox);
        PDPageRelease (emptyPage);
        //     get available headlers and set our file filter
        char ValidExt[MAX_STRING_LENGTH];
        memset(ValidExt, 0, MAX_STRING_LENGTH);
    #ifdef SHOW_TOPDF_HANDLER_TYPES   
        // enumerate AVConversioToPDF handlers to get all available file
        // types which can be converted to PDF.
        AVConversionEnumToPDFConverters(MyAVConversionToPDFEnumProc, (AVConversionEnumProcData) ValidExt);
        //AVAlertNote("Converters Defined");
        //AVAlertNote(ValidExt);
        //AVAlertNote(gPDFBinderFileFilter);
    #endif
    #ifdef USE_FILE_FILTER    
        // set File filter
        strcpy(ValidExt, gPDFBinderFileFilter);
        //AVAlertNote(ValidExt);
    #endif
        // process all files in the directory
        int iNumFiles = 0;
        int iNumFilesConverted = 0;
        char* Done = "Converted";
        char* NotDone = " - ";
        char fileName[MAX_FILENAME_LENGTH+1];
        ASFileSysItemPropsRec props;
        ASFolderIterator iter;
        ASPathName aspItem = NULL;
        memset(&props, 0, sizeof(props));
        props.size = sizeof(props);
        //AVAlertNote("Props Defined");
        ASPathName theFolder = NULL;
        ASFileSys fileSys = NULL;
        DURING
    #ifdef WIN_PLATFORM   
        fileSys = ASGetDefaultFileSysForPath(ASAtomFromString("ASTextPath"), dispText);
        theFolder = ASFileSysCreatePathName (fileSys, ASAtomFromString("ASTextPath"), dispText, 0);
        //AVAlertNote("FileSys and Folder Defined");
    #else
        fileSys = ASGetDefaultFileSysForPath(ASAtomFromString("POSIXPath"), PDFBinderFolder);
        theFolder = ASFileSysCreatePathName (fileSys,
                                ASAtomFromString("POSIXPath"), PDFBinderFolder, 0);
    #endif
        if (theFolder==NULL) {
            //AVAlertNote("Fail to create ASPathName for the selected folder.");
            E_RTRN_VOID
        // Find first file in current directory
        if((iter = ASFileSysFirstFolderItem(fileSys, theFolder, &props, &aspItem))==FALSE) {
            //AVAlertNote("This is either an invalid folder or the folder contains no files.");
            E_RTRN_VOID
        ASFileSysReleasePath(fileSys, theFolder);
        //AVAlertNote("Folder Released");
        // get filename only
        if(ASFileSysGetNameFromPath(fileSys, aspItem, fileName, sizeof(fileName))) {
            E_RTRN_VOID
        HANDLER   
            // exception handling
            char errorMsg[256];
            ASGetErrorString (ASGetExceptionErrorCode(), errorMsg, 256);
            if(aspItem!=NULL) ASFileSysReleasePath(fileSys, aspItem);
            if(theFolder!=NULL) ASFileSysReleasePath(fileSys, theFolder);
            // display an error message.
            if(ASBoolToBool(bEcho)==true) {
                AVAlertNote (errorMsg);
            return;
        END_HANDLER
        //AVAlertNote(fileName);
        // go to binding if it's a valid type of file
        if(props.type == kASFileSysFile && PassPDFBinderFileFilter(fileName)) {
            char outFileName[] = "";
            //strcat(outFileName, STRING_PDFOutputFolder);
            //strcat(outFileName, FOLDERSYMBOL);
            //strcat(outFileName, fileName);
            strcat(outFileName, STRING_PDFOutputFolder);
            strcat(outFileName, FOLDERSYMBOL);
            strcat(outFileName, fileName);
            //AVAlertNote(outFileName);
            ASPathName outputFileName = ASFileSysCreatePathName (ASGetDefaultFileSys(), ASAtomFromString("Cstring"), outFileName, 0);
            BindingFileToPDF(aspItem, fileName, props, TargetPDF, outputFileName ,&iNumFiles, &iNumFilesConverted);
            //AVAlertNote("File Processed");
        ASFileSysReleasePath(fileSys, aspItem);
        // process all other files 
        while(ASFileSysNextFolderItem(fileSys, iter, &props, &aspItem)) {
            // get filename only
            if(ASFileSysGetNameFromPath(fileSys, aspItem, fileName, sizeof(fileName))) {
                return;
            // go to binding if it's a valid type of file
            if(props.type == kASFileSysFile && PassPDFBinderFileFilter(fileName))  {
                char outFileName[] = "";
                //strcat(outFileName, STRING_PDFOutputFolder);
                //strcat(outFileName, FOLDERSYMBOL);
                //strcat(outFileName, fileName);
                strcat(outFileName, STRING_PDFOutputFolder);
                strcat(outFileName, FOLDERSYMBOL);
                strcat(outFileName, fileName);
                //AVAlertNote(outFileName);
                ASPathName outputFileName = ASFileSysCreatePathName (ASGetDefaultFileSys(), ASAtomFromString("Cstring"), outFileName, 0);
                BindingFileToPDF(aspItem, fileName, props, TargetPDF, outputFileName, &iNumFiles, &iNumFilesConverted);
                //AVAlertNote("File Processed");
            ASFileSysReleasePath(fileSys, aspItem);
        ASPathName pdfPathName = NULL;
        DURING
        // close the findfile
        ASFileSysDestroyFolderIterator(fileSys, iter);
        // save and close the output pdf file
        // create path
        ASText pathText = ASTextNew();
        ASTextCatMany(
            pathText,
            dispText,
            ASTextFromScriptText(FOLDERSYMBOL, kASRomanScript),
            ASTextFromScriptText(OutputPdfFileName, kASRomanScript),
            NULL);
    #ifdef WIN_PLATFORM
        ASFileSys fileSys = ASGetDefaultFileSysForPath(ASAtomFromString("ASTextPath"), pathText);
        pdfPathName = ASFileSysCreatePathName (fileSys,
                                ASAtomFromString("ASTextPath"), pathText, 0);
    #else
        char path[MAX_STRING_LENGTH];
        strncpy(path, ASTextGetEncoded(pathText,
            ASTextGetBestEncoding(pathText, (ASHostEncoding)PDGetHostEncoding())), MAX_STRING_LENGTH - 1);
        ASFileSys fileSys = ASGetDefaultFileSysForPath(ASAtomFromString("POSIXPath"), path);
        pdfPathName = ASFileSysCreatePathName (fileSys,
                                ASAtomFromString("POSIXPath"), path, 0);   
    #endif
        if(pdfPathName==NULL) {
            E_RTRN_VOID
        // delete the empty page
        if(PDDocGetNumPages(TargetPDF)>1) {
            PDDocDeletePages (TargetPDF, 0,0,NULL, NULL);
        // save
        //PDDocSave (TargetPDF, PDSaveFull | PDSaveCollectGarbage | PDSaveLinearized,
        //            pdfPathName, ASGetDefaultUnicodeFileSys(),    NULL, NULL);
        PDDocClose (TargetPDF);
        //ASFileSysReleasePath(fileSys, pdfPathName);
        HANDLER   
            // exception handling
            char errorMsg[256];
            ASGetErrorString (ASGetExceptionErrorCode(), errorMsg, 256);
            if(pdfPathName!=NULL) ASFileSysReleasePath(fileSys, pdfPathName);
            // display an error message.
            if(ASBoolToBool(bEcho)==true) {
                AVAlertNote (errorMsg);
            return;
        END_HANDLER
        // use this line to show the massage on screen if you need
        //if(ASBoolToBool(bEcho)==true) {
        AVAlertNote ("Folder Completed. PDF/A Output files generated.");
        return;
    /* ConvertAndInsertFileToPDF
    /** Internal function \n
    ** Convert a file to PDF, then insert it to target PDF file.
    ** @param aFileName IN  char string, filename.
    ** @param PDFfile IN/OUT PDDoc of the target PDF file.
    ** @return 0 if OK, 1 if failed.
    int    ConvertAndInsertFileToPDF(ASPathName aPathName, char* aFileName, PDDoc PDFfile)
        PDDoc tempPDF;
        char* Ext;
        DURING
            // get file extention
            Ext = strrchr(aFileName,'.');
            if(Ext) {
                Ext++;
            else {
                E_RETURN (1);
            // if the file is PDF, open PDDoc
            if(strcmp(Ext,"PDF")==0 || strcmp(Ext,"pdf")==0) {
                tempPDF = PDDocOpen (aPathName, ASGetDefaultFileSys(), NULL, true);
                if(tempPDF==NULL) {
                    PDDocClose(tempPDF);
                    E_RETURN (1);
            // else convert it to PDF
            else
                // let it automatically find right handler for the file and do the job.
                AVConversionStatus stat = AVConversionConvertToPDF
                    (kAVConversionAsyncOkay, //kAVConversionNoFlags
                      aPathName, ASGetDefaultFileSys(), &tempPDF, NULL);
                // check if successful
                if(stat != kAVConversionSuccess) {
                    //AVAlertNote("Cannot convert the file.");
                    E_RETURN (1);
        HANDLER   
            // exception handling
            char errorMsg[256];
            ASGetErrorString (ASGetExceptionErrorCode(), errorMsg, 256);
            // display an error message.
            if(ASBoolToBool(bEcho) == true) {
                AVAlertNote (errorMsg);
            return 1;
        END_HANDLER
        // insert new PDF into target PDF
        DURING
            // insert all pages of new pdfc to TargetPDFfile.
            PDDocInsertPages(PDFfile, PDLastPage, tempPDF, 0,
                            PDAllPages, PDInsertAll, NULL, NULL, NULL, NULL);
            PDDocClose(tempPDF);
        HANDLER
             char errorMsg[256];
            ASGetErrorString (ASGetExceptionErrorCode(), errorMsg, 256);
            if(ASBoolToBool(bEcho)==true) {
                AVAlertNote(errorMsg);
        END_HANDLER
            if(strcmp(Ext,"doc")==0) {
                char fname[40];
                sprintf(fname,"%s.pdf",aFileName);
                remove(fname);
            return 0;
    /* MyAVConversionToPDFEnumProc
    /** Internal callback function \n
    ** called for every AVConversionToPDFHandler.
    ** get the valid type (file extention) for the conversion. 
    ** @return true.
    ACCB1 ASBool ACCB2 MyAVConversionToPDFEnumProc(AVConversionToPDFHandler handler,
                                                 AVConversionEnumProcData data)
        ASUns16 numFileExt = handler->convFilter.numFileDescs;
        for (int i = 0; i < numFileExt; i++) {
            char* ext = handler->convFilter.fileDescs[i].extension;
            if(strlen(ext)>0) {
                strcat((char*) data, ext);
                strcat((char*) data, ",");
        return true;
    /* this is alternative code to get right conversion handler for a specific file
       to be converted. It works with function AVConversionConvertToPDFWithHandler.
       It's not used now, but kept for user's reference.
    ACCB1 ASBool ACCB2 AVConversionToPDFEnumFindHandler(AVConversionToPDFHandler handler,
                                                 AVConversionEnumProcData data)
        ASUns16 numFileExt = handler->convFilter.numFileDescs;
        for ( int i = 0; i < numFileExt; i++)
            char* ext = handler->convFilter.fileDescs[i].extension;
            if(strlen(ext)) {
                if(!strcmp((char*) data, ext)) {
                    gHandler = handler;
                    return false;
        return true;
    /* BindingFileToPDF
    /** Internal callback function for binding process \n
    ** IN: char* aFilename, ASFileSysItemPropsRec nFileAttrb \n
    **     PDDoc targetPDdDoc, int *ipTotal, \n
    **     int *ipConverted, FILE *logfile \n
    ** OUT: int *ipTotal, int *ipConverted. \n
    void BindingFileToPDF(ASPathName aPathName, char* aFilename, ASFileSysItemPropsRec nFileAttrb, PDDoc targetPDdDoc, ASPathName outputPathName, int *ipTotal, int *ipConverted)
        // ignore system, hidden files, and our target PDF and log file.
        if( nFileAttrb.isHidden 
            || (strcmp(aFilename,".")==0) || (strcmp(aFilename,".." )==0)
            || (strcmp(aFilename,OutputPdfFileName)==0) || (strcmp(aFilename,LogFileName)==0)) {
                return;
        (*ipTotal)++;
        char msg[MAX_STRING_LENGTH] = "";
        char* Done = "Converted";
        char* NotDone = " - ";
        // try to convert and insert it to target PDF file.
        // rc would be 0 for success, otherwise 1.
        int rc = ConvertAndSavePDFInTargetFolder(aPathName, aFilename, targetPDdDoc, outputPathName);
        // if converted
        if(rc==0) {
            (*ipConverted)++;
    /* PassPDFBinderFileFilter
    /** Internal callback function for binding process
    ** @return true if the IN aFilename is a valid file for PDF conversion,
    ** otherwise false.
    ASBool PassPDFBinderFileFilter(char* aFilename)
    #ifdef USE_FILE_FILTER
        // if the filter is empty, any file will pass.
        if(strlen(gPDFBinderFileFilter)==0)
            return true;
        char* Ext = strrchr(aFilename,'.');
        if(Ext!=NULL) {
            Ext++;
            if(strstr(gPDFBinderFileFilter, Ext)) {
                return true;
        return false;
    #else
            // not use filter, any file will pass.
            return true;
    #endif
    /* ConvertAndInsertFileToPDF
    /** Internal function \n
    ** Convert a file to PDF, then insert it to target PDF file.
    ** @param aFileName IN  char string, filename.
    ** @param PDFfile IN/OUT PDDoc of the target PDF file.
    ** @return 0 if OK, 1 if failed.
    int    ConvertAndSavePDFInTargetFolder(ASPathName aPathName, char* aFileName, PDDoc PDFfile, ASPathName outputPathName)
        PDDoc tempPDF;
        char* Ext;
        DURING
            // get file extention
            Ext = strrchr(aFileName,'.');
            if(Ext) {
                Ext++;
            else {
                E_RETURN (1);
            // if the file is PDF, open PDDoc
            if(strcmp(Ext,"PDF")==0 || strcmp(Ext,"pdf")==0) {
                tempPDF = PDDocOpen (aPathName, ASGetDefaultFileSys(), NULL, true);
                if(tempPDF==NULL) {
                    PDDocClose(tempPDF);
                    E_RETURN (1);
            // else convert it to PDF
            else
                // let it automatically find right handler for the file and do the job.
                AVConversionStatus stat = AVConversionConvertToPDF
                    (kAVConversionAsyncOkay, //kAVConversionNoFlags
                      aPathName, ASGetDefaultFileSys(), &tempPDF, NULL);
                // check if successful
                if(stat != kAVConversionSuccess) {
                    //AVAlertNote("Cannot convert the file.");
                    E_RETURN (1);
                else {
                    //change Extension
                    ASText asTmp = ASTextNew();
                    ASFileSysDisplayASTextFromPath(ASGetDefaultUnicodeFileSys(), outputPathName, asTmp);
                    //AVAlertNote(ASTextGetScriptText(asTmp, kASRomanScript));
                    if(strcmp(Ext,"TIF")==0 || strcmp(Ext,"tif")==0){
                        ASTextReplace(asTmp, ASTextFromScriptText(".tif", kASRomanScript), ASTextFromScriptText(".pdf", kASRomanScript));
                    } else {
                        ASTextReplace(asTmp, ASTextFromScriptText(".tiff", kASRomanScript), ASTextFromScriptText(".pdf", kASRomanScript));
                    //AVAlertNote(ASTextGetScriptText(asTmp, kASRomanScript));
                    outputPathName = ASFileSysCreatePathName (ASGetDefaultUnicodeFileSys(), ASAtomFromString("ASTextPath"), asTmp, 0);
        HANDLER   
            // exception handling
            char errorMsg[256];
            ASGetErrorString (ASGetExceptionErrorCode(), errorMsg, 256);
            // display an error message.
            if(ASBoolToBool(bEcho) == true) {
                AVAlertNote (errorMsg);
            return 1;
        END_HANDLER
        // Run OCR and Save new PDF into target PDF
        DURING
            //    OCR
            ASAtom cmdName;
            AVCommand cmd;
            cmdName=ASAtomFromString("PaperCapture");
            cmd=AVCommandNew(cmdName);
            ASCab config = ASCabNew();
            ASCabPutInt (config, "UIPolicy", kAVCommandUISilent);       //hide the interface
            if (kAVCommandReady ==     AVCommandSetConfig (cmd, config)) {
                //AVAlertNote("Config Ready");
            ASCab inputs = ASCabNew();
            ASCabPutPointer (inputs, kAVCommandKeyPDDoc, PDDoc, tempPDF, NULL);
            if (kAVCommandReady == AVCommandSetInputs (cmd, inputs)) {
                //AVAlertNote("Input Ready");
            ASCabDestroy (inputs);
            AVCommandStatus status = AVCommandExecute(cmd);
                        //switch (status) {
                        //    case kAVCommandReady :
                        //        AVAlertNote("Not working, but ready to work.");
                        //        break;
                        //    case kAVCommandWorking :
                        //        AVAlertNote("Still working");
                        //        break;   
                        //    case kAVCommandDone :
                        //        AVAlertNote("Done working");
                        //        break;   
                        //    case kAVCommandInError :
                        //        AVAlertNote("In Error");
                        //        break;       
                        //    case kAVCommandNotExecuted :
                        //        AVAlertNote("Command not executed due to lack of objects on which the command to be executed");
                        //        break;
            AVCommandDestroy(cmd);
            //Save
            //PDDocSave (tempPDF, PDSaveFull | PDSaveCollectGarbage | PDSaveLinearized, outputPathName, ASGetDefaultUnicodeFileSys(),    NULL, NULL);
            //ClosePDF
            //PDDocClose(tempPDF);
            //Convert to PDF/A Compliance
            //Select the right handler
            AVConversionEnumFromPDFConverters(myAVConversionFromPDFEnumProc, NULL);
            // do conversion
            AVConversionStatus stat = AVConversionConvertFromPDFWithHandler(RightHandler, NULL, kAVConversionAsyncOkay, tempPDF, outputPathName,  ASGetDefaultFileSys(), NULL);
            // check the returned status and show message
            //if (stat == kAVConversionSuccess)
            //                AVAlertNote( "The PDF/A file was saved in output folder." );
            //else if (stat == kAVConversionFailed)
            //                AVAlertNote( "The PDF/A conversion failed." );
            //else if (stat == kAVConversionSuccessAsync)
            //                AVAlertNote( "The conversion will continue asynchronously." );
            //else if (stat == kAVConversionCancelled)
            //                AVAlertNote( "The conversion was cancelled." );
            //Save
            //PDDocSave (tempPDF, PDSaveFull | PDSaveCollectGarbage | PDSaveLinearized, outputPathName, ASGetDefaultUnicodeFileSys(), NULL, NULL);
            //ClosePDF
            PDDocClose(tempPDF);
            ASFileSysReleasePath(ASGetDefaultFileSys(), outputPathName);
        HANDLER
             char errorMsg[256];
            ASGetErrorString (ASGetExceptionErrorCode(), errorMsg, 256);
            if(ASBoolToBool(bEcho)==true) {
                AVAlertNote(errorMsg);
        END_HANDLER
            if(strcmp(Ext,"doc")==0) {
                char fname[40];
                sprintf(fname,"%s.pdf",aFileName);
                remove(fname);
            return 0;
    //Select the appropiate handler for the PDF/A conversion
    static ACCB1 ASBool ACCB2 myAVConversionFromPDFEnumProc(AVConversionFromPDFHandler handler, AVConversionEnumProcData data)
        AVFileFilterRec filter = handler->convFilter;
        ASUns16 numFileExt = filter.numFileDescs;
        char *kUniqueID = handler->uniqueID;
        // go through the conversion handlers to find a handler for PDF extension files and the unique key matches the PDF/A one.
        for  (ASInt32  i = 0; i < numFileExt; i++)
            if  (strlen(handler->convFilter.fileDescs[i].extension)>0)
                // found it, fill in the handler and return false to stop going on.
                if (!strcmp(handler->convFilter.fileDescs[i].extension, "pdf") && !strcmp(kUniqueID,"com.callas.preflight.pdfa")) {
                    RightHandler = handler;
                    return  false ;
        return true;

    There are some options for various APIs to run "kinda silent" - but again, Acrobat is designed for INTERACTIVE use…so "completely silent" isn't really an option.
    As for speed – you'd need to be MUCH MORE specific about where your slow downs are.  Have you profiled?
    From: Adobe Forums <[email protected]<mailto:[email protected]>>
    Reply-To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>>
    Date: Mon, 12 Dec 2011 07:39:08 -0800
    To: Leonard Rosenthol <[email protected]<mailto:[email protected]>>
    Subject: Slow processing and getting opening errors/warnings
    Re: Slow processing and getting opening errors/warnings
    created by FFX-ER<http://forums.adobe.com/people/FFX-ER> in Acrobat SDK - View the full discussion<http://forums.adobe.com/message/4079175#4079175

  • Slow processing in full screen mode

    Hi All
    I recently upgraded my camera to an EOS 5d mk 2. I take photos in full RAW, so resulting images are around 26 MB.I then import these as managed reference files into Aperture.
    No issue with import to Aperture or image quality.
    However, when viewing the photos in full screen mode (to rank / edit etc), they take a long time to properly open / load (about 20 seconds each.) Each time I re-open Aperture, each image needs to be re-loaded in full screen size - which can become very time consuming. Edits are equally very slow to process.
    I was wondering if anyone had any suggestions how to manage this and avoid the time lag (other than downgrading to smaller image sizes). For example...
    - I currently have 2GB of memory and a 128 mb graphics card. Do I need to upgrade to handle such large images?
    - Can I reset a preference to avoid having to reload the full size image every time I open Aperture?
    - How can I speed up editing speed (nothing too fancy done here - I note from other posts the "7 deadly edits" that can cause processing to slow up)
    Any ideas gratefully received!!!
    Many thanks
    Paul

    Pabloelchico wrote:
    ...I then import these as managed reference files into Aperture.
    I don't understand whether you have a Referenced-Masters Library or a Managed-Masters Library. Drives slow as they fill and with a Managed-Masters Library sooner or later the internal drive will become overfilled. I recommend a Referenced-Masters Library with Masters on an external drive and the Aperture Library on the internal drive.
    iMacs, laptops and Minis are by definition limiting to heavy Aperture usage, so work carefully to optimize setup and workflow.
    First is to max the RAM and make sure the hard drive stays less than 70% full. Restart the iMac prior to a major Aperture session and only have Aperture open. You should also investigate to see if a substantially more powerful video card is available at reasonable price.
    Set Preview size to be exactly screen size and build Previews manually when the box is otherwise not being aggressively used.
    HTH
    -Allen Wicks

  • Using AGG/CALC DIM function in the BSO target cube of Transparent Partition

    Hi,
    Is it possible to use AGG("dimension") on a dimnesion in the BSO cube that is a target cube for a BSO-BSO Transparent Partition/
    I have created the partition area with 3 dimensions, one being 'Source'. 90% of the source members are being refrenced from source to target via that transparent partition. But I still have the 10% Source members in the target cube that need to roll up to the 'Source"(along with the 90%) for correct aggregation.
    When I try to use AGG("Source") in a FIX statement that's within the partition area, I get the following error:
    Error: 1042013 Network error [10054]: Cannot Receive Data
    Error: 1042012 Network error [10054]: Cannot Send Data
    Can I not aggregate the dimension in the Target cube?
    Thanks

    Hi,
    We have the same problem.
    I try to create transparent pertition between BSO (as a source) and ASO (target) and have the same warning message.
    Just to eliminate possible effect of outline complexity I created very simple DBs with the following outlines:
    __For ASO:__
    mes1
    mes2
    Measures
    prd1
    prd2
    Products
    Actual
    Adjustment
    Scenarios
    __For BSO:__
    mes1
    mes2
    Measures
    prd1
    prd2
    Products
    Adjustment
    Scenarios
    In addition to the message I have the following behavior - ASO has data in "Actual" scenario, BSO has data in "Adjustment" scenario. Before partition definition I can see the data in the right places, but when the partition created, Actual data disapeared from report of ASO. It is still in the database, and when the partition removed - appears again.
    Any ideas?
    Thank you in advance,
    Alexey

  • The 'Cube' with 'ID' = 'Capex' doen't exist in the Collection

    Dear All,
    When I am processing all the dimension at that time system is showing me the following error;
    The 'Cube' with 'ID' = 'Capex' doen't exist in the Collection
    Please help me to come our from this issue and Thanks
    Regards,
    SANJY

    Dear All,
    Thanks for your support,
    One thing I need to tell you is that, I have resore the current appset in another server. As informed by you I have run the Modify Applicaion . When I have run the same, System has generated another error named;
    "Object reference not set to an instance of an Object"
    Regards
    SANJAY

  • Extremely slow processing of edited photos?

    After a year's time of slow "Aperture2" processing on my "old" Macbook Pro, I recently took the step of investing in a new powerful Macbook Pro - the recent one launched a month's time ago....i.e. a MacBookPro 6,2 with Intel Core i7, 2,66 GHz, 8 GB RAM, and a NVIDIA GeForce GT 330M Graphics Card. However, my experience with the processing of my photos is indeed very frustrating (SLOW).
    Any comments from users with similar specs would be most appreciated. I have heard of rumors to the extend that Aperture3 may not have been fully adjusted to the new i7-processors, however, could it rather be the interaction with the graphics board?

    I upgraded from a Gen 2 Macbook Pro 15" (2.33ghz) to the brand new 17" i7 with 8GB of RAM, and this new machine is a beast. It is quite a bit faster than my Mac Pro 2.66 quad with ATI 1900 and 8GB of RAM.
    By "slow processing", do you mean exporting versions? Importing? Adjustments? Aperture 3 is considerably faster than Aperture 2 at many operations, but slower in a few. If you're using certain brushes and adjustments, for example, the program can experience some serious slowdowns.
    You may want to check on some things like Faces and Places. Turning off face recognition can sometimes make the program more responsive. And as with 2.x, turning off Preview generation can also help quite a bit, especially importing.

  • Linked Dimension is P-C (Account type) and it won't process in consuming cube

    Hi I have an SSAS 2008R2 cube with a Finance Account dimension (p-c with custom rollup). I want to create a linked measure and dimension structure in another General Use cube, but when I add the link and try to process the General Use cube I get an unknown
    error.
    Internal error: An unexpected exception occurred.
    I have tried changing the Account type, I have tried creating a referenced dimension inside the Finance cube and exposed the Referenced dim in the General Use cube (which had no linkage to the facts on the dimension usage grid). Not quite sure - can I use
    an Account type dimension in a linked dimension structure?
    Thanks for any insight!

    OK, so I have now found that this is apparently normal for iTunes, to only accept mpeg 4 movie files, all the searching I did before I must have worded it wrong because I couldn't find anything about this, incredibly. Had been looking for why iTunes won't take all the files it previously did, like if it had been changed, and it hasn't, it's allegedly always taken only mpeg 4 files. Also I had been searching for why iTunes crashes every time I try and add/import anything but mpeg 4 files, and even sometimes with mpeg 4 files. That isn't normal, it's supposed to just do nothing apparently as I've just found out. So for these reasons I didn't find the answer despite my searching all over the web.
    So I guess that answers my own question now, but I'm still perplexed as to why I absolutely, definitely, without any doubt, had several hundred movies of a few different video file types loaded, accessible and playable in my iTunes library that everything here claims iTunes never accepted. It apparently shouldn't have been possible for me to have done this, but for probably 10 years it's been this way.
    Perhaps since I don't remember adding these files to iTunes anymore recently than maybe 6 or 7 years ago, the iTunes back then did accept all kinds of file types? Or could I have somehow had some video codecs or software that expanded the capability of my movie players like Quicktime Player that unwittingly also allowed iTunes to take those files as well? All I know is somehow it worked! So now my question is how did I have it working before, so that maybe I can make it work again.

  • Do We still need Secondary Indexes on the cubes with BWA being Primary

    Hi Guru's
    Could you please suggest us, do you think we still need secondary Indexes on the cubes with BWA being Primary
    Regards
    Kumar

    Compression: DB statistics and DB indexes for the InfoCubes are less relevant once you use the BI Accelerator. In the standard case, you could even completely forgo these processes. However, note the following aspects:
    Compression is still necessary for inventory InfoCubes, for InfoCubes with a significant number of cancellation requests,
    and for InfoCubes with a high number of partitions in the F-table. Note that compression requires DB statistics and DB
    indexes (P-index).
    DB statistics are necessary in particular for real-time InfoCubes and reading the most current data.
    DB Indexes (index on the time dimension) are necessary in particular if the E fact table is not partitioned. Note also that you
    need compressed and indexed InfoCubes with up-to-date statistics whenever you switch off the BI Accelerator index.
    DB Indexes (index on the time dimension) are necessary in particular if the E fact table is not partitioned.
    Note also that you need compressed and indexed InfoCubes with up-to-date statistics whenever you switch off the BI
    Accelerator index.
    Please refer to the below link for useful information on BIA.
    http://www.sdn.sap.com/irj/sdn/bi?rid=/library/uuid/11c4b71d-0a01-0010-5ca0-aadc2415b137#q-3-2
    Hope this helps.

  • Modify data in a cube with bi beans (ROLAP)

    Hi,
    I have put a setCellEditingAllowed(true) on my matrix
    but nothing happend when i change a value.
    Can i modify data of my database (ROLAP cube) with BI Beans?
    Thanks
    Yann

    Here is some information that may help you:
    If your want to use the Crosstab or Table Bean on a Java client, there are a few things to keep in mind. There is a GridView boolean property, CellEditingAllowed, that controls whether the Crosstab or Table Beans provide cell-level editing GUI in the Databody. For example, if you have a Crosstab instance m_crosstab, you can run the following code to turn on editing:
    m_crosstab.setCellEditingAllowed(true);
    When the Java client Crosstab or Table goes to write back the value, it calls the setValue method on the underlying DataAccess instance. If you are implementing your own data source, you can hook your custom code into your implementation of setValue. You can also consider implementing the setAutoSubmit, isAutoSubmit, submitChanges, and dropChanges methods in the oracle.dss.util.DataAccess interface if your application needs to provide bulk updates.
    If you are working with our OLAP implementation, then you can retrieve the Crosstab's DataSource property (of type oracle.dss.util.dataSource), cast it to an oracle.dss.dataSource.common.Query instance (i.e., our OLAP implementation), and then add yourself as a QueryListener. The QueryListener will get a CellsSubmittingEvent with the list of updates to be processed. You'll find the various classes and interfaces in the JavaDoc for the oracle.dss.dataSource.common package.
    In our current release, the OLAP implementation does not fire a CellsSubmittedEvent because the OLAP Data Source does not support writeback to the underlying data store. We are looking at providing native writeback support for Analytic Workspaces in a later release.

Maybe you are looking for