This document provides a student guide for the Hyperion Financial Management 9.3.1: Create Rules course, outlining the course objectives, structure, and materials. It covers topics such as reviewing rules syntax, creating variables and procedures, managing rule scope, and creating rules for dynamic accounts. The guide includes lessons and examples to teach students how to effectively write and manage rules in the Hyperion Financial Management application.
1. Hyperion
Financial Management 9.3.1
Create Rules
m y
de
Student Guide
ca
A
le
r ac
O ly
l & On
na se
D52786GC10
er U
Edition 1.0
January 2008
D53155
I nt
c le ®
O ra
7. Preface 0
Welcome to Hyperion Financial Management 9.3.1: Create Rules!
Before you begin, please take a moment to review this section. The
preface presents an overview of:
• The course objectives
• The course structure
• The course materials
• Writing conventions used in this manual
• Additional resources to enhance your learning
m y
de
• Relevant follow-up courses you might want to attend in the future
Course Objectives
c a
A
After completing this course, you should be able to:
le
• Reduce database size and calculation time by proper use of the
r ac
custom and value dimensions in rules
• Calculate percentages and ratios using rules for dynamic accounts
O ly
• Create custom procedures, functions, loops, and arrays in rules
l & On
• Create rules with proper data handling techniques
na se
• Create allocation rules
er U
• Create custom currency translation rules
nt
I• Create custom consolidation and elimination rules
c le
O ra
8. Preface
Course Structure
Hyperion Financial Management 9.3.1: Create Rules is a 3-day, instructor-led training
course consisting of lectures, demonstrations, and hands-on exercises. In this course,
the instructor presents a topic conceptually by explaining its purpose, demonstrating how
it works, and then guiding the students through the exercises. Demonstrations and
hands-on exercises reinforce the concepts and skills introduced during lectures.
Course Materials
You use two books in class—the student guide and the student workbook. The instructor
may also give you handouts.
Student Guide
The student guide is designed to be used by students and the instructor during lecture
time. It has four modules:
• Module 1 describes the basics of Financial Managment rules.
• Module 2 describes how to create custom Sub and Function procedures. You learn to
create rules using arrays and loops.
m y
• Module 4 describes how to customize the default currency translation and
a de
• Module 3 describes how to work with Financial Management data and hierarchies.
consolidation calculations.
A c
le
Each module contains lessons. Each lesson begins with a list of objectives followed by
the presentation of slides and accompanying text. The lesson ends with a summary of
the topics covered in the lesson.
r ac
A glossary provides definitions of terms used during the course.
O ly
Activity Guide
l & On
na se
The activity guide has two sections—exercises and exercise solutions.
Exercises
nt er U
A critical part of the learning process is the challenge of completing real tasks associated
I
with each lesson. Each exercise is an opportunity to apply your new knowledge.
c le
Exercise Solutions
O ra
The exercise solutions present the detailed steps to successfully complete the exercises.
viii Hyperion Financial Management 9.3.1: Create Rules
9. Preface
Conventions
The following text conventions are used in this course book:
• Text to be typed, options to be selected, names of files and modules, and menu
selections are displayed in bold type. Examples:
- Select Clear Profile.
- To clear the profile, click Yes.
• Keyboard shortcuts are displayed as follows:
Ctrl+Enter
For the example, you would press the Ctrl key and the Enter key at the same time.
Tips and Notes are used to direct your attention to different types of information.
NOTE
A note provides related information, common mistakes, and cautions about the
current topic.
m y
a de
A c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
Hyperion Financial Management 9.3.1: Create Rules ix
10. Preface
m y
a de
A c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
x Hyperion Financial Management 9.3.1: Create Rules
11. M O D U L E 1
Financial Management Rules Basics 0
Overview
In this module you learn the basics for creating Financial Management
rules.
Lessons in this module include:
• Reviewing Rules Syntax
• Reducing Maintenance with Variables
• Managing the Scope of Rules
• Creating Rules for Dynamic Accounts
m y
a de
A c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
12. m y
a de
A c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
13. L E S S O N 1
Reviewing Rules Syntax 1
Objectives
At the end of this lesson, you should be able to:
• Explain the purpose of rules in Financial Management
• Describe objects and functions in expressions
• Create rules expressions
• Identify Financial Management rule types
• Distinguish between Sub procedures
• Add comments and line breaks
m y
• Create conditional statements and compare strings
a de
A c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
16. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
The following table lists the functions by object for Financial Management rules:
Object Function
HS ABSExp
Alloc
CalcStatus
Clear
Con
Exp
Dynamic
GetCell
GetCellNoData
GetCellRealData
GetCellType
GetRate
ImpactStatus
Input
NoInput
NoRound
OpenDataUnit
ReviewStatus
Round
m y
de
SetData
SetDataWithPOV
Trans
TransPeriodic
c a
Account AccountType
A
C1...4 Top
le
ac
IsBase
IsChild
r
IsConsolidated
O ly
IsDescendant
IsICP
l & On
List
NumBase
na se
NumChild
er U
NumDescendant
PlugAccount
nt
SecurityClass
I UD1...3
ValidationAccount
c le XBRLTags
O ra
1-4 Hyperion Financial Management 9.3.1: Create Rules
17. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
Object Function
AppSettings Currency
ICPWeight
PVAForBalance
PVAForFlow
RateForBalance
RateForFlow
Currency Scale
Custom1, IsBase
Custom2, IsDescendant
Custom3, and List
Custom4
NumBase
NumChild
NumDescendant
SecurityClass
SwitchSign
SwitchType
UD1...3
DataUnit GetItem
GetItemIds2
m y
de
GetNumItems
Entity AllowAdjs
AllowAdjsFromChildren
DefCurrency c a
Holding
A
IsBase
le
ac
IsChild
IsDescendant
IsICP
List
r
O ly
l & On
Member
NumBase
na se
NumChild
NumDescendant
nt er U
SecurityAsPartner
SecurityClass
I UD1...3
le
ICP List
c
O ra
Hyperion Financial Management 9.3.1: Create Rules 1-5
18. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
Object Function
Node Consol1...3
DOwn
IsBase
IsChild
IsDescendant
List
Method
NumBase
NumChild
NumDescendant
PCon
POwn
Parent DefCurrency
Holding
IsBase
IsChild
IsDescendant
IsICP
List
Member
m y
NumBase
NumChild
a de
NumDescendant
UD1...3
A c
le
Period IsFirst
IsLast
List
Member
r ac
NumBase
Number O ly
Scenario
l & On
ConsolidateYTD
na se
DefaultFreq
DefaultView
List
nt er U
Member
INumPeriods
SecurityClass
c le UD1...3
O ra
1-6 Hyperion Financial Management 9.3.1: Create Rules
19. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
Object Function
Value Currency
IsTransCur
IsTransCurAdj
Member
Year IsFirst
IsLast
Member
m y
a de
A c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
Hyperion Financial Management 9.3.1: Create Rules 1-7
21. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
Use this syntax:
HS.Exp “DestinationValue = SourceValue”
The following example sets the Cash account to 50,000:
HS.Exp "A#Cash = 50000”
m y
a de
A c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
Hyperion Financial Management 9.3.1: Create Rules 1-9
23. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
The table lists the dimension keywords that you can use to specify dimension members:
Keyword Description
S# Scenario
Y# Year
P# Period
V# Value
E# Entity
W# View
A# Account
I# Intercompany Partner
C1# Custom1
C2# Custom2
C3# Custom3
C4# Custom4
m y
Destination Expressions
a de
The destination for the Exp function is specified by the Account, Custom, and ICP
A c
members specified on the left side of the equal sign. The destination Entity, Period, Year,
Value, members are determined by the current point of view (POV) members or by the
le
cells selected on the data grid or form. The members for the currently selected cells on
ac
the grid override the current POV members. The destination View member is the current
r
scenario default view, regardless of the currently select POV members.
O ly
Source Expressions
l & On
When you use an account expression on the right side of the equal sign with Exp, you
na se
can specify any dimension member. If you do not specify a Entity, Period, Year, or Value
er U
dimension member, the current POV member or the current cells selected on the grid or
data form are used. If you do not specify a View member, the source is the current
nt
scenario default view, regardless of the currently select POV member.
I
c le
O ra
Hyperion Financial Management 9.3.1: Create Rules 1-11
25. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
Period and Year Keywords
To create dynamic rules, you can use the following keywords, instead of member names,
to represent members of the destination Year or Period dimension:
Keyword Description
Cur Current period or year
First First period or year that is valid for the application
Last Last period or year that is valid for the application
Next Period or year that follows the current period or year
Prior Period or year that precedes the current period or year
You can use plus (+) and minus (-) with the Period and Year keywords. The following
example sets the MiscPast account to the amount in the Misc account two periods before
the current period:
HS.Exp "A#MiscPast = A#Misc.P#Cur-2"
Placing Other Functions Within Exp
m y
de
If an HS function returns a single numeric value, you can nest the function in the Exp
function. However, if you nest a function that contains a string argument, you cannot
ca
enclose the string in quotation marks. In the following example, the NumBase function is
A
nested in the Exp function to retrieve the number of base entities for the Regional
member:
le
ac
HS.Exp "A#SalesAlloc = A#Sales/HS.Entity.NumBase(Regional)"
r
Notice that the Regional string is not enclosed in quotation marks.
O ly
l & On
na se
nt er U
I
c le
O ra
Hyperion Financial Management 9.3.1: Create Rules 1-13
27. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
• Allocation rules execute when you allocate data from a single source to multiple
destinations.
• Input rules enable input at the parent entity level.
• No input rules prevent input at the base entity, account, and custom level.
• Consolidate rules perform nonstandard consolidations. These rules are most
commonly found in statutory applications.
• Transactions rules enable posting to accounts and scenarios from the Intercompany
Transactions module.
m y
a de
A c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
Hyperion Financial Management 9.3.1: Create Rules 1-15
29. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
Routine Executed
NoInput() When the application is opened. Automatically
prevent you from entering data in specific cells
Transactions() When the application is opened.
Consolidate() When you run a consolidation.
The routines are created in any order. Use the following syntax to define each routine:
Sub Calculate()
<All calculate rules are displayed here.>
End Sub
Sub Dynamic()
<All dynamic rules are displayed here.>
End Sub
Sub Translate()
<All translate rules are displayed here.>
End Sub
Sub Allocate()
<All allocation rules are displayed here.>
End Sub
Sub NoInput()
m y
<All no input rules are displayed here.>
End Sub
a de
Sub Consolidate()
<All consolidate rules are displayed here.>
End Sub A c
Sub Input
le
ac
<All input rules are displayed here.>
End Sub
Sub Transactions() r
O ly
<All transactions rules are displayed here.>
l & On
End Sub
na se
nt er U
I
c le
O ra
Hyperion Financial Management 9.3.1: Create Rules 1-17
32. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
Line Continuation Tips
• Break complex formulas at a point where a line performs an action.
• If you include long dimension names in the code line, break the line to show one
account per line.
• Insert the mathematical operators at the beginning of the line so that you can identify
what type of action is being applied to the account in the formula. When the line
break is applied, the operators and account are split in a logical manner.
m y
a de
A c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
1-20 Hyperion Financial Management 9.3.1: Create Rules
35. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
The examples shown on the slide illustrate If...Then...Else statements:
• The first example verifies whether the scenario member is equal to Budget. If equal
(true), a calculation multiplies Units Sold by Price, and the result is applied to the
Sales account. If the condition evaluates to false, no calculation is performed.
• The second example applies the ElseIf statement if the scenario member is equal to
Actual instead of Budget. If equal (true), a calculation divides Sales by UnitsSold and
applies the result to Price. If the scenario is any member other than actual or budget,
the calculation following the Else statement is performed.
m y
a de
A c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
Hyperion Financial Management 9.3.1: Create Rules 1-23
38. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
UCase Function
Returns a string that was converted to uppercase.
Syntax
UCase(String)
Arguments
String: A text string or a function that returns a text string.
Example
If UCase(HS.Scenario.Member)=”ACTUAL” Then
Only lowercase letters are converted to uppercase; all uppercase letters and nonletter
characters remain unchanged.
LCase Function
Returns a string that was converted to lowercase.
Syntax
m y
de
LCase(String)
Example
If LCase(HS.Scenario.Member)=”actual” Then
c a
A
le
Only uppercase letters are converted to lowercase; all lowercase letters and nonletter
characters remain unchanged.
Left Function r ac
O ly
Returns a string containing a specified number of characters from the left side of a string.
l & On
A left function contains two required parts:
na se
• Use String to return the requested values.
er U
• Use Length (numeric value) to determine the number of characters to return.
nt
Syntax
I
le
Left(String,Length)
c
O ra
1-26 Hyperion Financial Management 9.3.1: Create Rules
39. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
Example
Dim Product1, RtnString
Product1 = "Financial Management" ' Define string
RtnString = Left(Product1, 1) ' Returns "F"
RtnString = Left(Product1, 9) ' Returns "Financial"
RtnString = Left(Product1, 20) ' Returns "Financial Management"
Right Function
Returns a string containing a specified number of characters from the right side of a
string.
A Right function contains two required parts:
• Use String to return the requested values.
• Use Length (numeric value) to determine the number of characters to return.
Syntax
Right(String,Length)
Example
m y
Dim Product1, RtnString
Product1 = "Financial Management" ' Define string.
a de
RtnString = Right(Product1, 1)
RtnString = Right(Product1, 10)
RtnString = Right(Product1, 20)
' Returns "t".
' Returns "Management".
A
' Returns "Financial Management".
c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
Hyperion Financial Management 9.3.1: Create Rules 1-27
40. Module 1 Financial Management Rules Basics
Lesson 1 Reviewing Rules Syntax
Summary
In this lesson, you should have learned to:
• Explain the purpose of rules in Financial Management
• Describe objects and functions in expressions
• Create rules expressions
• Identify Financial Management rule types
• Distinguish between Sub procedures
• Add comments and line breaks
• Create conditional statements and compare strings
m y
a de
A c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
1-28 Hyperion Financial Management 9.3.1: Create Rules
41. L E S S O N 2
Reducing Maintenance with Variables 2
Objectives
At the end of this lesson, you should be able to:
• Create variables and constants
• Set up variables header sections for the Point of View
• Set up variables header sections for custom dimensions, intercompany
partner (ICP) dimensions, and global accounts
• Set up a variables header section for conditional triggers
m y
a de
A c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
44. Module 1 Financial Management Rules Basics
Lesson 2 Reducing Maintenance with Variables
Variable name guidelines:
• Must begin with an alphabetic character
• Cannot contain an embedded period
• Must not exceed 255 characters
• Must be unique in the scope in which it is declared
You can create multiple variables with a single Dim statement by separating the variable
names with commas.
Example
Dim vAcc1, vAcc2, vAcc3
You assign values to variables using an equal sign (=), with the variable name on the left
and the value you want to assign the variable on the right. You can assign literal text
strings, numeric values, return values of functions, or return values of expressions. If the
variable does not exist, it is created on the fly. To assign a literal string value, you enclose
the string in quotation marks. You do not need quotation marks to assign numeric values,
function results, or expression results.
m y
de
vCustomTops=”.C1#TopC1.C2#TopC3.C3#TopC3.C4#TopC4”
vSalaryRate=300
pov_entity=HS.Entity.Member
c a
You can concatenate variables with literal text strings:
A
le
HS.EXP “A#RetainedIncome=A#Profit"&vCustomTops&“.I#[ICP None]”
ac
HS.EXP “A#SalaryExpense=A#Headcount *"&vSalaryRate
r
O ly
Notice that when the variable is at the end of the HS.Exp statement, it does not require a
closing quotation mark.
l & On
na se
nt er U
I
c le
O ra
2-4 Hyperion Financial Management 9.3.1: Create Rules
46. Module 1 Financial Management Rules Basics
Lesson 2 Reducing Maintenance with Variables
Function Description
CInt Converts an expression to an Integer value. If the fractional part of the
expression is .5, CInt rounds the value to the nearest even number. For
example, 3.5 is rounded to 4, and 6.5 to 6. The value of integer data can
range from -32,768 to 32,767.
CLng Converts an expression to a Long value (an integer that can store a value
from -2,147,483,648 to 2,147,483,647).
CSng Converts an expression to a Single value (a 32-bit floating point number).
CStr Converts an expression to a String value.
This example converts the result of the calculation to an integer and stores it in the
variable vGM_Pct:
vGM_Pct=CInt(vMargin/vNetSales*100)
m y
a de
A c
le
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
2-6 Hyperion Financial Management 9.3.1: Create Rules
48. Module 1 Financial Management Rules Basics
Lesson 2 Reducing Maintenance with Variables
You can use constants to store application information that you use frequently but that
does not change. For example, you can create constants to store member names that
are used frequently within account expressions. By using a short constant name in place
of a long string of member names, you reduce the likelihood of errors. In Financial
Management rules, you typically use constants to store information that does not vary
with the Point of View settings for which the rules are run.
Unlike variables, you must explicitly declare constants. They cannot be created on the
fly.
Syntax
const Name=Value
where Name is the name of the constant and Value is the value of the constant. The
rules for naming constants are the same as for variables. This example creates a
constant named AVE and assigns it a string as a value:
Example
const AVE=”.A#AverageRate”
A naming convention for constants is to use uppercase for names and underscores as
m y
de
separators, as in this example:
const PRIOR_YEAR_RATE=75
c a
You cannot use functions to assign values to constants. This statement returns an error:
A
le
const CURRENT_ENTITY=HS.Entity.Member
r ac
O ly
l & On
na se
nt er U
I
c le
O ra
2-8 Hyperion Financial Management 9.3.1: Create Rules
50. Module 1 Financial Management Rules Basics
Lesson 2 Reducing Maintenance with Variables
Point of View Variables
Information about the current Point of View members for the Entity, Scenario, Year, and
Value dimensions is typically used throughout a Sub procedure. Instead of repeatedly
retrieving this information from the application, you can retrieve it once at the beginning
of the procedure and store it in a variable. You can then use the value stored in the
variable when a rule requires Point of View information.
You retrieve the Point of View using the Member function. For example,
HS.Entity.Member retrieves the current Entity POV member. Because the values change
based on the current Point of View, you should use variables rather than constants.
TIP
For the variable for the current period, you can use HS.Period.Number instead of
HS.Period.Member. Because the fiscal year can start on different months in
different applications, if you use period numbers rather than member names, it is
easier to reuse your rules in more than one application.
Top and None Members for Custom and ICP Dimensions
Custom and ICP dimensions in account expressions often need to be set to the top
m y
de
member or the [None] member. This can result in a long expression that is difficult both
to type and to read.
Example
c a
HS.EXP “A#RetainedIncome=A#Profit".I#[ICP Top].C1#TopC1.C2#TopC2&” _A
“.C3#TopC3.C4#TopC4"
le
r ac
To simplify your code, you can store the text string for custom and ICP members in a
variable or constant, as in this example:
O ly
const All_TOPS=”.I#[ICP Top].C1#TopC1.C2#TopC2.C3#TopC3.C4#TopC4"
l & On
You can then use the constant or variable in the account expression in place of the
string:
na se
er U
HS.EXP “A#RetainedIncome=A#Profit" &All_TOPS
nt
I
Because the custom and top member names do not change when the Point of View
changes, you can use constants instead of variables.
c le
O ra
2-10 Hyperion Financial Management 9.3.1: Create Rules
51. Module 1 Financial Management Rules Basics
Lesson 2 Reducing Maintenance with Variables
Global Accounts
You frequently need to refer to global accounts in your rules, such as the accounts used
to store exchange rates or head count. You can create variables or constants for these
accounts and then use them throughout your file. For example:
vHead=”.A#HeadCount”
vEfx=”.A#EndingRate”
Because the global member names do not change when the Point of View changes, you
can use constants instead of variables.
Conditional Statement Triggers
Financial Management provides a number of functions that return a value of true or false.
You can use these functions as tests in conditional statements. For example, before
executing a rule, you might test whether it is true or false that the current year is the first
year in the application or that the current entity is a base entity.
To make your rules file more efficient, you can perform the test once and store the result
in a variable in your header section. For example:
vIsBase = HS.Entity.IsBase("","")
m y
Boolean values, a value of True is assumed as the test.
a de
You can then use the variable as needed in conditional statements. Because they are
If vIsBase Then
A c
le
HS.EXP “A#Sales=A#UnitsSold * A#Price”
ac
End If
r
You can use the Not keyword to test for a false condition. This statement executes only if
O ly
the entity is not a base member:
l & On
If Not vIsBase Then
HS.EXP “A#Sales=A#UnitsSold * A#Price”
na se
End If
er U
For clarity in your code, you can specify True or False as the condition:
If vIsBase=True Then
I nt
HS.EXP “A#Sales=A#UnitsSold * A#Price”
End If
c le
O ra
Hyperion Financial Management 9.3.1: Create Rules 2-11