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.
<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.