Monday, May 9, 2016

Do away with aggregation in BSO by using ASO plan type in Planning Application



In my Hyperion Planning implementation experience, I have worked more on implementation of customized Workforce Planning for various clients than any other module and it has always been a challenge when it comes to aggregating the data (in BSO application).
But this time with an option of ASO plan type and CDF to copy data from BSO to ASO, it has made things quiet interesting and easy to implement workforce planning.
I have been working on customized workforce planning where we have in total of 10 dimensions within one Hyperion Planning application.
Following are few details on number of members in various dimensions:
Employee – 150K members (based on various regions / Entities)
Entity – 18K
Level / Positions – 48K
Employee Categories - 19
As part of PoC, initially we developed an application without ASO plan type and the aggregation times ranged from 10 mins to 20 mins per region which was bit at higher side than expected. Not to mention that the page file size was in GBs (25 to 30+ GBs).
We then explored the possibility to have ASO plan type with the design such that most of the user input and level zero calculations were performed in BSO and the review / reporting at upper level will be done via ASO cube.
We used following artifacts to extract and move data from BSO to ASO:
1.       Data Export to export data to a file.
2.       Following CDF MaxLFunctions to execute MaxL which loads data in ASO using rule file.
RUNJAVA com.hyperion.calcmgr.common.cdf.MaxLFunctions
The above steps are performed in one Calc Mgr rule and it executes in less than a couple of minutes.
User can execute this rule based on user variables and see the data in FR report or via Smart View immediately at upper level from ASO cube.
Also, index and page file are less than few GBs combined.

Point to note that the "RUNJAVA com.hyperion.calcmgr.common.cdf.MaxLFunctions" may not work in Unix machines.
I was getting the following error:

Error: Cannot run program "essmsh": error=2, No such file or directory 


 and for it to work try the following:
In your OPMN.xml file, add the below line:

<variable append="true" id="PATH" value="$ESSBASEPATH/bin"/>

It should be as below:

<variable id="ESSBASE_CLUSTER_NAME" value="EssbaseCluster1"/>
<variable append="true" id="PATH" value="$ESSBASEPATH/bin"/>
</environment>


Restart Essbase service once for the changes to take effect.