Forum Stats

  • 3,853,958 Users
  • 2,264,299 Discussions
  • 7,905,517 Comments

Discussions

PBCS - Options to push data from BSO to ASO for Normal User / Planner

VM
VM Member Posts: 50 Blue Ribbon
edited Sep 12, 2019 10:14AM in Planning and Budgeting

Hi All,

We have PBCS plus and have groovy enabled. Also, to move data from BSO to ASO there are following known options:

1. DataMap via exchange data - for admin

2. Smart push - via form (on save) - for normal user / planner (and other roles)

3. Smart Push - via groovy  - for normal user / planner (and other roles)

4. Data Management (also using Rest API) - not yet explored but have read posts online using REST API

5. EPM AUtomate

    a. executing Job of export from BSO and import for ASO

    b. Call DataMap (admin)

6. Schedule DataMap periodically (every half an hour / hourly / etc) - NOT Preferred BUT LAST OPTION

We have a scenario where a normal user / planner performs following tasks:

1. updates certain driver(s) by Scenario, Version, etc - BSO

2. processes the data at higher level of entity - BSO

3. Once the calculation is performed expects data in ASO

We are using a ruleset on save of a form to perfom the calculation and then call datapush via groovy.

The problem is the limitation on Smart Push of 500K cells and 100 MB as you may all know.

When user executed for one entity it work fine and smart push (executed by groovy) completes successfully however when a user selects upper level entity member it fails.

Obviously, we have other filters like scenario, Version, etc coming from RTP.

What have been tried:

1. We have split the smart push (via groovy) into multiple years (especially for forecast), currencies and other dimension members but still it fails.

2. We cant use DataMap via groovy as it can only be executed by an admin

Has anyone faced such issue and what alternative have been used? Or please suggest based on your experience what could help to achieve this.

Also, what issues / challenges have been faced if large number of  users are saving data at same time and that number of smartpush is initiated.

Will really appreciate your views / ideas / experience.

Regards,

VM

Tagged:
VM

Answers

  • user111989
    user111989 Member Posts: 286
    edited Sep 2, 2019 4:31AM

    You can loop through Quarters or account members and check if it works

    alternatively you can call data maps via Groovy business rule using rest api for reference you can check - https://john-goodwin.blogspot.com/2019/07/epm-cloud-recent-web-service-and-groovy.html

    VM
  • JohnGoodwin
    JohnGoodwin Member Posts: 30,471 Blue Diamond
    edited Sep 2, 2019 4:50AM
    user111989 wrote:alternatively you can call data maps via Groovy business rule using rest api for reference you can check - https://john-goodwin.blogspot.com/2019/07/epm-cloud-recent-web-service-and-groovy.html 

    though be careful giving users access to run Data Maps, depends how much data is being moved, how often and by how many users.

    VM
  • VM
    VM Member Posts: 50 Blue Ribbon
    edited Sep 2, 2019 7:36AM

    Thank you and John Goodwin for replies.

    I tried by going each month and currency, well it works but time taken via smartpush is quiet extensive and so it's not feasible to wait. Have open SR with Oracle for performance issue with SmartPush.

    So, basically what I understand from the replies is that I now have only 2 options left:

    1. Try REST API and try calling DataMap

         this option may have an issue as pointed by John Goodwin - as there could be huge number of users running / saving forms simultaneously especially during peak budgeting/forecasting period.

    2. Schedule data push (Job) via datamap periodically.

    This only leaves with option 2 (from above). I am really keen on knowing how others big organisations are using the data push. Are majority using scheduling option?

    Regards,

    VM

  • Pete N
    Pete N Member Posts: 77 Blue Ribbon
    edited Sep 6, 2019 3:23AM

    Hey,

    So a few things to try:

    1) Recently (June?) they added the ability to block suppress the smartpushes - definitely worth a go because it'll greatly speed up the extracts.

    2) Kyle wrote a whole process around 'roll your own' smartpush - basically building a source and target grid and submitting.

    Adventures in Groovy – Part 21: Real Time Data Movement (Getting REALLY Groovy)

    The good thing about his example is that he's effectively iterating the data form for the specific accounts\periods that have been edited. Dependent on how the 'top down entry' logic works (and spreads to the levels below it) you might be able to isolate out some specific intersections that have been updated and do it that way.

    Cheers

    Pete

  • Robert Angel
    Robert Angel Member Posts: 4,535 Bronze Crown
    edited Sep 6, 2019 3:29AM

    Hi,

    Like Pete's suggestion I use targetted forms which aggregate up the hierarchy based on edited data (business rule using POV to aggregate up the ancestors) and smart view using the same POV to push only a subset of the cube.

    For the die hard only ad-hoc / smart view types I also run an hourly full data push for the scenarios / version / year which is currently WIP.

  • VM
    VM Member Posts: 50 Blue Ribbon
    edited Sep 8, 2019 7:30PM

    Hi Pete,

    Thanks for your reply and suggestion.

    I am using suppress feature of smartpush. Also, I have seen the post / blog to push edited cells and I believe that's the best approach to push data via forms. However, the case I am referring is that the user updates drivers which impacts larger set of data (as compared to what we have on form) by the way of calculation executed on save of a form and post this calculation data needs to be pushed to ASO.

    To resolve this issue (not exactly as instant push), I have developed a groovy code to initiate the push process every 15 mins. This process will check for which combinations of upper level of Entity and other key dimension were executed (in last 15 mins) and for that process / combination, it will call DATAMAP as it is faster than smart push. I am also trying to take care of the old process / combination if it is running (say taking 15 mins or more - ideally it should not take that long) then not to pick up when next process starts (overlaps with the old process).

    So far testing results are promising and seems near instant push for a user than hourly or more.

    -VM

  • VM
    VM Member Posts: 50 Blue Ribbon
    edited Sep 8, 2019 7:29PM

    I was also thinking of having hourly as the last option however as mentioned in my previous reply, I have tried the following option which seems to be working as expected.

    To resolve this issue (not exactly as instant push), I have developed a groovy code to initiate the push process every 15 mins. This process will check for which combinations of upper level of Entity and other key dimension were executed (in last 15 mins) and for that process / combination, it will call DATAMAP as it is faster than smart push. I am also trying to take care of the old process / combination if it is running (say taking 15 mins or more - ideally it should not take that long) then not to pick up when next process starts (overlaps with the old process).

    So far testing results are promising and seems near instant push for a user than hourly or more.

    Thanks,

    VM

  • 4027124
    4027124 Member Posts: 3
    edited Sep 12, 2019 10:14AM

    Hi,

    I have thought of another approach but getting stuck with an issue. Please let me know if you have come across this kind of issue.

    The approach is as follows:

    When a user runs a BR for high level entity, it will populate that intersection as 1.

         For example: EntityABC = 1

    Scheduled EPM automate job will do the following:

    1. Export above intersections in a file using a dataexport business rule to Inbox/ Outbox folder.

    2. Download file to batch server.

    3. Extract the list of entities.

    4. Update Entity_List sub var as: ILvl0Descendants("EntityABC")

    5. Run data map which uses above SUB VAR.

    Issue: Data map is using &Entity_List sub var but it is unable to resolve ILvl0Descendants("EntityABC") and throwing error (no specific error). If I populate SUB VAR as "EntityABC", data map works fine.

    Has anybody tried this or if you have any information on above issue? Thanks.

    Sid