Get Involved. Join the Conversation.


  • Celvin Kattookaran

    Venu, the issue is always with BSO allocation rules. Users will run allocation and expect both cubes to be in sync. There are allocations that run from the top of the hierarchy of 3 or 4 different dimensions. That will generate a lot of data and Smart Push sometimes takes a lot of time or can't execute because of (QueryLimit or Governor Threshold).

    The option available are

    1. schedule a data map to run

    2. If we allow 1 to happen every hour or so, that itself is kind of against the resource argument.

    3. Have an option where data map can be executed in an elevated mode (similar to how groovy can be execute as an admin)

    4. Let consultants/admin come up with custom solutions - allow to clear ASO cube using a parameter.



  • Celvin Kattookaran


    I got the same issue and had to come up with something custom (similar to what data map does). However, as Venu is suggesting, there are resource issues around this. When Datamap sends data to ASO it uses a buffer from the testing I found that we can run 5 data maps at a time (not more) the solution is to add a wait if there are more than 5 data maps running.

    Now the other issue is clearing ASO before moving the data (there is no option available so far. I did create an idea for this and now talking to Venu and the team about it.

    I would love to use Smart Push. However, that data being moved is a bit too much for Smart Push to handle.

    I can share my code/or the solution Venu is going to come up with ;)



  • Tino Tarantino

    See comment from Venu below.  As Venu suggests, executing a DataMap directly is restricted to the Admin role mainly to prevent large data pushes by end-users.   Using CreateSmartViewPush() can be used to circumvent this security restriction.  I think Functional  (non-Admin) roles should be empowered to compete all functional tasks without involve an Admin user.  The fact that a functional task happens to involve moving large data volumes should'nt disrupt or prevent the functional user from completing their tasks.   I'm sure your probably using business rule security to limit access to your groovy rule to the proper Functional role.   Finally, if the impact to ad-hoc queries against the ASO cube is a concern, consider using separate versions (Working .vs. Proposed) .  End-User can query against the static "Proposed" version while "Working" is used to develop the next "Proposed" version and is the version that your groovy rule performs mass calculations against.    As part of your nightly batch process,  "Working" could then replace "Proposed". 

  • Nouria Kehli

    Hi Olga

    As you seem to know a lot about Formulas and Smartview, can you let me know if the following is possible: 

    Do you know if we can introduce, and show (input and output) text comments to display at a specific intersections?

    We are having serious limitations in our PBCS projects each time our customers ask us to add comments to their forms. 
    The only way we can do it right now (via std PBCS) is introducing comments via form, and showing them in a report built as a form, and exported to excel.
    Or introduce them in an adhoc form, and show them the same way.
    But we cannot insert the comment via a formula from and excel sheet, and show them again from another excel sheet, connected via DBGET formulas.
    Using a formula will ensure that the comments is always displayed at the same intersection regardless. 
    Narrative reporting is not an option here, as the customer does  not have the Enterprise suite.
    Let me know if I am making sense.
    Thank you 
  • Mark Rinaldi

    Have you logged an SR?

  • Marta Rauch
  • Scott Williams


    When I ran into this issue, I used createSmartPush() to get around it.

    I created a rule and attached it to an Action Menu

    //Set the Runtime Prompts
    /*RTPS: {Entity} */

    //Format Prompts
    String sRTPEntity

    // Setup the query on the metadata
    Cube cube = operation.application.getCube("XXXXX")
    Dimension entityDim = operation.application.getDimension("Entity", cube)
    // Store the list of companies into a collection
    def Entities = entityDim.getEvaluatedMembers('ILvl0Descendants('+  rtps.Entity.toString()+')', cube) as String[]
            String SOEntity = """\"${Entities.join('","')}\""""

    // Execute a Data Map on each Entities
    for (def i = 0; i < Entities.size(); i++) {
     def sEntityItem = '"' + Entities[i] + '"' 

      operation.application.getDataMap("WFPtoFinancials").createSmartPush().execute(["Entity":Entities[i]], true)

  • Nouria Kehli

    If we can find how to use the Xwrite function for this, we will try and avoid using the above code, however I cannot find the required function.

    Maybe someone knows how here.


  • Andy Tauro


    This has been this way for a while - to import from the 'Inbox', you have to save it as a Job first. I believe the idea is that if this file is going to live in the Inbox, then it might as well set it up as a job that can be executed repeatedly. Not saying that I agree with this 100%, but this has been the behavior ever since I can remember.

    Hope this helps,


  • Andy Tauro

    Thank you!

  • Venu Machiraju

    The code snippet provided by Aracelis gets the datamaps in the application and then invokes the smart push api. This can invoke any type of Data Maps BSO-BSO, BSO-ASO or BSO-Strategic Models or Strategic models to BSO/ASO. Groovy allows the data map definition to be overwritten by passing the specific context  or run time prompts to define the exact region to be pushed. Moving very large slice of data as an end-user is not advised because that'll impact query performance on ASO cubes. Please go through examples in Groovy doc for Smart Push API. We also have videos in Oracle EPM  channel on Youtube.

  • Aracelis Rodriguez

    This is just for clarification purposes:

    This code is what we are using to update our ASO cube (BSO to ASO data transfer) because I could not use @XWRITE to the ASO at the time.

    DataMap map

    if(operation.application.hasDataMap('DM Actual'))
          map = operation.application.getDataMap('DM Actual')


  • Marta Rauch

    Hi Andy, thanks for your post. We have filed this bug for this issue: Bug 30653539 - JOB: EXPORT JOB CONSOLE IS NOT CAPTURING SMART PUSH”.

    We have accepted this as an enhancement and we will deliver it in near future. 

  • Nouria Kehli

    Hi Tino


    I think the response from Aracelis is from BSO to BSO as we need it from BSO to ASO either using the Xwrite or the data map for non Admin.

    We know what Data map for non admin is not acceptable at the moment and the script sent above is from and to BSO as far as I am aware.

    I still need to know if we can use a similar script from BSO to ASO and for Power users.


    Do you know how?

    Thank you ]


  • Tino Tarantino

    Just to add to this thread, there has been a lot of confusion and discussion on this topic.   See Can Data Map be run by non-Admin user     I wasn't aware of Aracelis suggestion above to use the DataMap API.    This would seem to eliminate the for new non-Admin roles as suggested in the prior thread referenced here.