UNIT 3 Calculation Script Architecture. Topics When to use calc scripts Calc Script Editor and...

Post on 27-Dec-2015

237 views 3 download

Tags:

transcript

UNIT 3

Calculation Script Architecture

Topics

• When to use calc scripts

• Calc Script Editor and online help

• Database, dimension and member calculations

• Focus calculations

• Generate member lists

• Boolean functions

• Mathematical functions

Introducing Calc Scripts

• Components of calc scripts

• Calc Script Editor and online Help

• Commands and functions

Using Calc Script Editor (Demo)

Using Essbase Documentation (Demo)

• Essbase manuals

• Product online Help

• HTML formatted documentation

• Technical Reference

Exercise 3-1: Explore Calc Script Editor

and Online Help

Exploring Essbase Calc Script Functionality

• Functional command and functions

• Control flow commands (focus)

• Macro functions

• Conditional commands

• Boolean functions

• Operators

• Math functions

Using Functional Commands

• CALC ALL

• CALC DIM

• MEMBER CALC

• Other CALC script commands

(CALC ALL)

Low Level data loaded

Calculating the Database Using CALC ALL

• Entire database is calculated.

• Data is calculated based on outline consolidations and member formulas.

• Syntax:CALC ALL [EXCEPT DIM(dimList)| MBR(mbrList)];

Calculating Dimensions Using CALC DIM

• Calculates a specified dimension or a list of dimensions

• Calculates first dimensions tagged as Accounts and as Time

• Calculates dense dimensions before sparse

• Syntax:CALC DIM(Accounts);

(CALC DIM)

Low Level data loaded

Calculating Members Using Member Calc

• Unary operators and equations

• All database combinations for referenced member

• Syntax:MemberName ;

Exercise 3-2:Use Calc Functions

Focusing Calculations

• FIX…ENDFIX

• IF…ELSE…ELSEIF…ENDIF

• CROSS DIM OPERATOR ->

Focusing Calculations Using Fix…Endfix

• Isolates a portion of the database

• Syntax:FIX(mbrlist)

commands;

ENDFIX

East

South

North

West

Jan

Feb

Mar Jun

Actual

Budget

FIX (East)

Focusing Calculations Using Conditional Statements

• IF…ENDIF

• IF…ELSE…ENDIF

• IF…ELSEIF…ENDIF

• IF…ELSEIF…ELSE…ENDIF

Focusing Calculations Using IF...ENDIF

Performs conditional tests before performing a calculation

Commission (IF(Sales > 200000)

Commission = Sales * .012 ;

ENDIF)

IF condition is TRUE then do statement.IF condition is FALSE, then skip statement.

Focusing Calculations Using ELSEIF…ELSE

Performs conditional test if IF statement is FALSE

Commission

(IF(Sales >= 200000)Commission = Sales * .12;

ELSEIF (Sales >= 100000) Commission = Sales * .098;

ELSE Commission = Sales * .05; ENDIF)

Focusing Calculations Using Cross Dim

A pointer to data values of specific member combinations

Syntax:->

BudgetActual

Sales

COGS

Margin

Margin%

Jan

Feb

Mar Jun

Sales->Jan->Actual

Exercise 3-3:Focus Calculations

Generating Lists Using Macro Functions

• Family

• @CHILDREN

• @DESCENDANTS

• @SIBLING

• @RELATIVE

• Generation and level

• @GENMBRS

• @LEVMBRS

• Others

• @UDA

• @MATCH

Generating Lists Using @ICHILDREN

Includes the specified member and all members in the level immediately below the specified member

Given this outline

FIX(@ICHILDREN(West))…ENDFIXApplies calculations tothe following:West, California, Oregon

Generating Lists Using @IDESCENDANTS

Includes the specified member and either all descendants or only the descendants down to a specified generation or level.

Given the outline

FIX(@IDESCENDANTS(WEST))…ENDFIXreturns the following:West,California,San Diego,SanFrancisco, Los Angeles, Chico,Oregon

Generating Lists Using @UDA

Generates a list of members that have the referenced UDA

Given the outline,

FIX(@UDA(MARKET,”Small Market”))…ENDFIXapplies calculations tothe following:Connecticut, New Hampshire, and South

Generating Lists Using @MATCH

• Allows you to perform a wild-card search for members

100-10

100-20

200-10

200-30

300-20

Given the following membersFIX(@MATCH(PRODUCT,”???-10”))

ENDFIX

Returns the following:

100-10,200-10

Exercise 3-4:Using Macro Functions

Testing for Values Using Boolean Functions

• @ISDESC

• @ISMBR

• @ISLEV

• Logical connectors

Testing for Values Using @ISDESCENDANTS

Tests member during calculation to determine appropriate formula for payroll

Payroll

(If (@ISDESC(East) OR @ISDESC (West))

Payroll = Sales * .15;

ELSEIF (@ISDESC (Central))

Payroll = Sales * .11;

ELSE

Payroll = Sales * .10;

ENDIF)

Testing for Values Using @ISMBR

Tests to see if a member is present for a specific calculation

Fix (East)

Commission

( If (@ISMBR(New York:

New Hampshire))

Commission =

Commission * 1.25 ;

Endif )

Endfix

Testing for Values Using @ISLEV

Tests to see if a member is present for a specific calculation

If the calculation is

positioned on New York:

@ISLEV(“Market”,0)

is TRUE and

@ISLEV(“Market”,1)

is FALSE

Using Logical Connectors with Boolean Functions

• AND

• OR

• NOT

Exercise 3-5:Using Boolean Functions

• @VAR

• @TRUNCATE

• @MIN

• @MOD

Transforming Values with Math Functions

• @VARPER

• @ROUND

• @MAX

• @ABS

Transforming Values with @VAR and @VARPER

• @VAR

• Calculates the variance (difference) between the values of two members

• @VAR(Actual,Budget)

• @VARPER

• Calculates the variance (difference) percent between the values of two members

• VARPER(Actual,Budget)

Transforming Values with @TRUNCATE and @ROUND

• @TRUNCATE

• Removes the fractional part of an expression and returns the integer.

Total_Sales = @TRUNCATE( @SUM(Direct_Sales:

Other_Sales));

• @ROUND

• Rounds an expression to the nearest whole number or to a specifically decimal

Profit = @ROUND("Profit_%”);

Transforming Values with @MIN and @MAX

• @MIN

• Returns the minimum value among the results of an expression

Qtr1 = @MIN(Jan:Mar) ;

• @MAX

• Returns the maximum value among the results of an expression

Qtr1 = @MAX(Jan:Mar) ;

Transforming Values with @MOD

• Calculates the modulus (the remainder) of a division operation

Factor = @MOD("Margin %", "Profit %");

• “Margin %” = Dividend

“Profit %” = Divisor

Transforming Values with @ABS

• @ABS returns the absolute value of an expression.

Variance = @ABS(Actual-Budget) ;

• The absolute value turns negative numbers into positive numbers:

@ABS(-5) = 5

@ABS(+5) = 5

Exercise 3-6:Math Functions

Test Your Understanding