Planning Analytics

Planning Analytics

Get AI-infused integrated business planning

 View Only
  • 1.  TI function: CubeCreate

    Posted 6 hours ago

    Hey all,

    Lately, I've been trying a few things that require a temporary cube cloned/copied from an existing cube.

    So, exactly the same cube, just with a different name.

    Since I'm not a fan of creating things manually, I used the CubeCreate function (like 100 times before) in a TI process.

    The cube is created as expected (at least visually), but when "working" with it, I realized two things:

    1. When I tried to load files into that cube (test data from the original cube) using RunProcess (loading each month in parallel), 11 threads were in WAIT status, and parallel loading did not work as expected.

    2. The new cloned cube does not exist in the }PerfCubes dimension-only in }Cubes.

    I tried running SaveDataAll after creating the cube - same outcome: no parallel loading possible.

    However, if I restart the server after creating the cube via TI, parallel loading works.

    When I create the cube manually in PAW, I can load the files in parallel and the cube is also present in the }PerfCubes dimension.

    Looking at these observations, it seems that the CubeCreate function does something different than creating it manually.

    Is this a bug, or does someone know a better workaround than restarting the server?

    Or do I miss something else?

    My environment is running on v11.



    ------------------------------
    Thilo Thurner
    ------------------------------


  • 2.  RE: TI function: CubeCreate

    Posted 4 hours ago

    Hi Thilo,

    It is likely that the cube has not been created yet if your RunProcess is in Prolog.

    Can you move the RunProcess to Epilog and test?

    I know some have used a trick using CubeSaveData to force a commit but not sure this may work in this case but you could try.

    Another alternative may be to create via a child process called using RunProcess which will create and commit the new cube. The trick is to pause long enough or use a semaphore to ensure the child process has completed and the cube created.

    Hope one of these helps…



    ------------------------------
    George Tonkin
    Business Partner
    MCI Consultants
    Johannesburg
    ------------------------------