Data copy in a BSO application ( Ex: copy data from one version to
another ) is straight forward. You can write a calculation script, and use
DATACOPY command. Easy, Peasy, Japaneesy!!!
But, ASO is a different story.
We usually export the required data from ASO application and
import it back using rule file by changing the member names in rule file.
This approach is not faster and needs extra automation scripts.
But, things have changed after Oracle introduced calculation
scripts in ASO application. We can do things like simple math, minor allocations and datacopy using ASO calculation scripts.
Even though it is not a straight forward calculation script in BSO, you
can achieve it with little MDX scripting knowledge and patience (Patience because, it will take some time to write MDX expression to make sure you are not
"fixing" on derived, parent or dynamic cells in POV section).
Let’s see how we can do it.
Take ASOsamp:sample as an example.
If we want to copy all data from "Prev Year" to "Curr
Year", We have to create a MAXL script like below,
execute calculation on database ASOSamp.Sample with local
script_file "/hyperion/Test_ASO_Calc.csc"
POV "
Crossjoin(Descendants([MTD],Time.Levels(0)),
Crossjoin({[Original Price],[Price Paid],[Returns],[Units],[Transactions]},
Crossjoin(Descendants([Transaction Type],[Transaction
type].Levels(0)),
Crossjoin(Descendants([Payment Type], [Payment
Type].Levels(0)),
Crossjoin(Descendants(Promotions, promotions.Levels(0)),
Crossjoin(Descendants(Age, Age.Levels(0)),
Crossjoin(Descendants([income Level],[Income
Level].Levels(0)),
Crossjoin(Descendants(Geography, Geography.Levels(0)),
Crossjoin(Descendants(Stores,Stores.Levels(0)),
Descendants(Products,Products.Levels(0)))))))))))"
SourceRegion "{[Prev Year],[Curr Year]}";
My custom calculation script, Test_ASO_Calc.csc look like
[Curr Year] := [Prev Year];
This process runs faster like DATACOPY in BSO.