Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
Look up keyword
Like this
0 of .
Results for:
No results containing your search query
P. 1
Calc Script Essbase

Calc Script Essbase

Ratings: (0)|Views: 232|Likes:
Published by sukamal.jana2400

More info:

Categories:Topics, Art & Design
Published by: sukamal.jana2400 on Mar 10, 2011
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less





http://www.obs3.com/ess_tips.shtmlWhen do I use "IF" and "FIX" in calculation scripts?In general, you should try and only use "FIX" statements on SPARSE dimensions.FIX statements allow you to take a slice of the database and only perform an action on that slice. If you fix on aSPARSE dimension, then you are limiting the amount of blocks that you are performing the action upon. If you FIX on a DENSE dimension, you are not limiting the number of blocks, but rather just a portion withineach block.Using the FIX statement on a dense dimension can cause multiple passes through the same blocks which is veryinefficient. On the other hand, the IF statement is well suited to DENSE dimensions because it performs IFlogic while the block is in memory.Example: If JUL then ..., else .... will all be performed in one pass without the need of multiple passes through theblocks. In general, try and use FIX on sparse dimensions and IF on dense dimensions.How do I dynamically update my forecast scenario with Actual?Most companies have a "forecast" scenario which is a combination of actuals and forecast. All prior months containactual data and all future months contain the remaining forecast. An easy way to update the forecastdimension with actuals each month is to use Essbase substitution variables.Set up two substitution variables in Essbase: One called CURR_MONTH and one called NEXT_MONTH. The currentmonth variable should contain the name of the month that has the most current month of actuals. Load thenew Actuals into the "Actuals" dimension.Then run a calc script similar to the one shown below to copy the actual values into the forecast scenario.FIX(JAN:&CURR_MONTH) Cleardata Forecast; DATACOPY "Actuals" to Forecast; ENDFIXThis calculation script will clear the forecast data from JAN through the current month, and then copy the actualsscenario to the forecast scenario for those months.In all of the calculation scripts that pertain to the "Forecast" scenario you can use the NEXT_MONTH variable to onlycalculate the future months. FIX(&NEXT_MONTH:DEC) ................................ ENDFIXHow can I use the @MDSHIFT function?The @MDSHIFT function is a very powerful function that allows you to write Essbase functions without have to "hardcode" the member names into the calculation scripts. Here is a classic example of where the @MDSHIFTfunction can be used:Cube contains the following dimensions: Accounts, Business Units, Scenario, Time, and YearsThere is a balance sheet account called "Inventory" which for the current year, goes back to the previous year forecastscenario for it's beginning balance. You could write the calc script as follows:FIX(@GENMBRS("Time",4),"Plan", &YEAR1)"Inventory"(If(@ISMBR(JAN))"Inventory" = "Inventory"->FY03->DEC->Forecast) + "New Inventory" ;ELSE"Inventory" = @PRIOR("Inventory",1) +"New Inventory";ENDIF)ENDFIX;This works fine, but each year you would have to edit the year within the calculation script. (FY03) Instead of hardcoding the script you can use the @MDSHIFT function to dynamically grab the value.
FIX(@GENMBRS("Time",4),"Plan", &YEAR1)"Inventory"(If(@ISMBR(JAN))"Inventory" = @MDSHIFT("Inventory",-1,Years,,11,"Time",,-1,Scenarios,) + "New Inventory" ;ELSE"Inventory" = @PRIOR("Inventory",1) +"New Inventory";ENDIF)ENDFIX;The @MDSHIFT function goes back one year, goes down 11 members in the Time dimension, and then goes up onemember on the scenario dimension. In the above example the "Plan" member is listed just below the"Forecast" member on the scenario dimension.How can I create a global "Prior Period Chg" calculation?In order to create a 'global' prior period chg calculation, you should first create an additional dimension which can beused for global calculations.If you already have a metrics type dimension, you can use this formula to calculate the prior period chg for anyintersection in the cube. This example displays the formula for a cube which has a separate Time and Yearsdimension.IF(@ISGEN("Time",4))If(@ISMBR(JAN))Amount - @MDSHIFT("Amount",-1,Years,,11,"Time",);ELSEAmount - @PRIOR("Amount",1);ENDIF;ELSEIF (@ISGEN("Time",3))If(@ISMBR(Q1))Amount- @MDSHIFT("Amount",-1,Years,,3,"Time",(Q1,Q2,Q3,Q4));ELSEAmount -@PRIOR("Amount",1,Q1:Q4);ENDIF;ELSEAmount - @MDSHIFT("Amount",-1,Years,);ENDIF;What causes database fragmentation?Essbase database fragmentation occurs when blocks are "re-written" within the database. Not all "re-writes" to a cubewill cause fragmentation. Listed below are some behaviors that can cause Essbase fragmentation.
Sending data to a dense dimension that previously did not have any data- This occurs when you have a writeback cube where users are adding new data to a dense dimension, such as adding data to the current monthor adding data to an account that previously did not have any data. (Assuming that time and accounts aredense)
Loading data into a cube - Load rules can also cause database fragmentation if they are not set up properly.When loading data into Essbase, you always want to sort the data so that sparse dimensions are representedfirst in the data loads. The sorting of data files/sources has a huge impact on Essbase performance andfragmentation. Rule of thumb: make sure that the data source is sorted by the columns that represent thesparse dimensions first.
Adding incremental data to a cube- Adding the "current month's data" to an Essbase cube can causefragmentation if the time dimension is tagged as dense.Fragmentation has a huge impact on cube performance. There are two ways to "un-fragment" an Essbase cube. Oneis to clear and reload the data into the cube. The other is to cause Essbase to perform a dense restructure. How can I easily create global calculations?The power of OLAP cubes and Essbase is truly realized with ease of creating calculations. OLAP cubes were created forin depth analysis and speedy queries. The easiest way to create 'global' calculations in Essbase is to createa new dimension which contains all of the global calculations.

Activity (3)

You've already reviewed this. Edit your review.
1 thousand reads
1 hundred reads
Le Minh liked this

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->