D53155 hfm 9.3.1_rules_student_guide

13,647 views
13,519 views

Published on

This is the nice book for HFM rules

Published in: Education, Technology
3 Comments
16 Likes
Statistics
Notes
  • Oracle HFM Hyperion Financial Management Videos and Books Online Sharing $14 9GB http://www.dbmanagement.info/Tutorials/HFM.htm
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • http://www.dbmanagement.info/Tutorials/HFM.htm
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • http://www.dbmanagement.info/Tutorials/HFM.htm
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
13,647
On SlideShare
0
From Embeds
0
Number of Embeds
55
Actions
Shares
0
Downloads
1,292
Comments
3
Likes
16
Embeds 0
No embeds

No notes for slide

D53155 hfm 9.3.1_rules_student_guide

  1. 1. Hyperion Financial Management 9.3.1 Create Rules m y de Student Guide ca A le r ac O ly l & On na seD52786GC10 er UEdition 1.0January 2008D53155 I nt c le ®O ra
  2. 2. Author Copyright © 2008, Oracle. All rights reserved. Mark Mitsock Disclaimer This document contains proprietary information and is protected by copyright and Technical Contributors other intellectual property laws. You may copy and print this document solely for your and Reviewers own use in an Oracle training course. The document may not be modified or altered in any way. Except where your use constitutes "fair use" under copyright law, you may Keith Glide not use, share, download, upload, copy, print, display, perform, reproduce, publish, license, post, transmit, or distribute this document in whole or in part without the Jennifer Hough express authorization of Oracle. Daniel Tijerina The information contained in this document is subject to change without notice. If you find any problems in the document, please report them in writing to: Oracle University, Editor 500 Oracle Parkway, Redwood Shores, California 94065 USA. This document is not warranted to be error-free. Susan Moxley Restricted Rights Notice Graphic Designer If this documentation is delivered to the United States Government or anyone using the documentation on behalf of the United States Government, the following notice is Carisa Cannan applicable: U.S. GOVERNMENT RIGHTS Publisher The U.S. Government’s rights to use, modify, reproduce, release, perform, display, or Judy Gaitan disclose these training materials are restricted by the terms of the applicable Oracle license agreement and/or the applicable U.S. Government contract. Trademark Notice Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. m y a de A c le r ac O ly l & On na se nt er U I c leO ra
  3. 3. Table of Contents 0 Preface Course Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Course Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Course Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Student Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Activity Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Module 1: Financial Management Rules Basics Lesson 1: Reviewing Rules Syntax About Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Describing Objects and Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Creating Rules Expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8 m y de HS.Exp Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8 Account Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10 c a Destination Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-11 A Source Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-11 Adding Operators and Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12 le Period and Year Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13 r ac Placing Other Functions Within Exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13 Identifying Rule Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14 O ly Identifying Sub Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-16 l & On Adding Comments to Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18 Inserting Line Continuations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-19 na se Creating Conditional Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-21 er U Applying If...Then...Else Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-22 nt Making Decisions with Select Case Statements . . . . . . . . . . . . . . . . . . . . . . . . . 1-24 Comparing Strings in Financial Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-25 I UCase Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-26 c le LCase Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-26 Left Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-26O ra Right Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-27
  4. 4. Table of Contents Lesson 2: Reducing Maintenance with Variables About VB Script Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Creating Variables and Assigning Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 Variables and Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 Variables and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 Creating Header Sections for Variables and Constants. . . . . . . . . . . . . . . . . . . . . . . . 2-9 Point of View Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10 Top and None Members for Custom and ICP Dimensions . . . . . . . . . . . . . . . . . 2-10 Global Accounts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-11 Conditional Statement Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-11 Lesson 3: Managing the Scope of Rules Subcubes and Data Retrieval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Financial Management Subcubes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 Subcube Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Subcubes and Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 Subcubes and Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 The Left Side of HS.Exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 Page Dimensions and HS.Exp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 m y de Managing the Scope of Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-11 c a Omitting Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12 Specifying the Destination Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13 A Specifying Source Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14 le Mismatched Custom Dimensions (Example 1) . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15 ac Mismatched Custom Dimensions (Example 2) . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17 Executing Rules with the Value Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-19 r Sub Calculate and the Value Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-21 O ly Working with Total Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23 l & On Lesson 4: Creating Rules for Dynamic Accounts na se er U Dynamic Account Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 Sub Dynamic Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 I nt Creating Rules for Dynamic Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Functions Valid with HS.Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 4-6 c leO ra iv Hyperion Financial Management 9.3.1: Create Rules
  5. 5. Table of Contents Module 2: Creating Procedures, Loops, and Arrays Lesson 5: Creating Custom Procedures Creating Custom Sub Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Calling Custom Sub Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4 Creating Custom Function Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-6 Calling Custom Function Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 Troubleshooting with Logging Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 Writing to Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 Calling Write to File Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14 Managing Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16 DeleteFile Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17 FileExists Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17 GetFile Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17 MoveFile Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 Size Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 Lesson 6: Creating Arrays and Loops m y de Arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 c a Arrays and Loops in Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 A Creating Array Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6 Filling Arrays Using Member Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 le Creating Loops. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8 r ac For...Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8 For Each...Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9 O ly Do...Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-10 l & On Assigning Values with Arrays and Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12 Attributes in Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14 na se Loops and Data Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15 er U Opening Data Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16 nt Creating Loops With Data Units. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18 I le Module 3: Working with Data and Hierarchies c Lesson 7: Managing Financial Management DataO ra Retrieving and Writing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 Hyperion Financial Management 9.3.1: Create Rules v
  6. 6. Table of Contents Testing for No Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4 Setting Accounts to No Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-6 Setting Parent Entities to Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8 Rounding and Scaling Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10 Rounding and Scaling with HS.Round. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-12 Lesson 8: Working with Dimension Hierarchies Working with the Calendar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 Preventing Prior and Next from Crossing into Invalid Years . . . . . . . . . . . . . . . . . 8-3 Populating Days in Period Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5 Managing Calculation Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6 Managing Movement Accounts and Data Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 Avoiding Circular Calculations in Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10 Creating Allocations Using Sub Allocate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12 Running the Sub Allocate Procedure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13 Using the Alloc Function to Create Allocation Rules . . . . . . . . . . . . . . . . . . . . . . 8-15 Module 4: Creating Custom Translations and Consolidations m y Lesson 9: Creating Currency Translation Rules a de A c About Translating Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2 Currency and Exchange Rate Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3 le Translation Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5 ac Default Translation Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7 Creating Custom Translation Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-9 r Translation Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-11 O ly Calculating Exchange Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-13 l & On Working with Currency Overrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15 na se Lesson 10: Creating Consolidation and Elimination Rules nt er U Default Consolidation Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2 Creating Consolidation Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-4 I Consolidation Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5 c le Consolidation Procedure Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-9 Testing for Eliminations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-11O ra vi Hyperion Financial Management 9.3.1: Create Rules
  7. 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 leO ra
  8. 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 SolutionsO ra The exercise solutions present the detailed steps to successfully complete the exercises. viii Hyperion Financial Management 9.3.1: Create Rules
  9. 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 leO ra Hyperion Financial Management 9.3.1: Create Rules ix
  10. 10. Preface m y a de A c le r ac O ly l & On na se nt er U I c leO ra x Hyperion Financial Management 9.3.1: Create Rules
  11. 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 leO ra
  12. 12. m y a de A c le r ac O ly l & On na se nt er U I c leO ra
  13. 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 leO ra
  14. 14. Module 1 Financial Management Rules Basics Lesson 1 Reviewing Rules Syntax About Rules Hyperion Financial Management rules provide powerful, customized calculations that you can use to perform the following tasks: Calculate data that cannot be calculated through a hierarchical aggregation, such as ratios or variance analyses Perform complex currency conversions and calculate exchange rate differences or other calculations necessary for consolidation Prevent data entry for a specific cell Perform allocations from a parent entity to a list of base entities Enable data entry to a parent entity Perform custom consolidations for statutory reporting requirements m y a de Copyright © 2008, Oracle. All rights reserved. A c About Rules le r ac You use rules to perform calculations that you cannot define through parent-child relationships in the dimension hierarchy. For example, you can create a rule to calculate O ly the value of the Salaries member by multiplying the Headcount member by the l & On SalaryRate member. na se nt er U I c leO ra 1-2 Hyperion Financial Management 9.3.1: Create Rules
  15. 15. Module 1 Financial Management Rules Basics Lesson 1 Reviewing Rules Syntax Describing Objects and Functions Objects represent elements of a Financial Management application, such as dimensions. Functions represent actions that a rule can perform, such as retrieving a value. You write rules statement by applying functions to objects. Not all functions are valid for all objects. Object Function HS.Entity.DefCurrency This statement uses the DefCurrency function to retrieve the default currency of an entity. HS.Scenario.DefCurrency The DefCurrency function is invalid here because scenarios do not have currencies. m y a de Copyright © 2008, Oracle. All rights reserved. A c Describing Objects and Functions le r ac A programming language consists of its own vocabulary and grammar. Objects are equivalent to nouns in programming languages. For example, in Financial Management, O ly the Entity object represents the Entity dimension, the Account object represents the l & On Account dimension, and so on. Functions are the verbs that express the actions of a programming language. na se To create rules, you should be familiar with these basic principles about objects: nt er U • Objects contain their own sets of functions. For example, you can use certain functions only with the Period object. I • Objects can be children of other objects. c le For example, the top-level object in Financial Management is named HS. The HS object contains some functions and several other objects.O ra • When you write rules, you use dot notation (dot) to separate objects from other objects and functions. Hyperion Financial Management 9.3.1: Create Rules 1-3
  16. 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 XBRLTagsO ra 1-4 Hyperion Financial Management 9.3.1: Create Rules
  17. 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 cO ra Hyperion Financial Management 9.3.1: Create Rules 1-5
  18. 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...3O ra 1-6 Hyperion Financial Management 9.3.1: Create Rules
  19. 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 leO ra Hyperion Financial Management 9.3.1: Create Rules 1-7
  20. 20. Module 1 Financial Management Rules Basics Lesson 1 Reviewing Rules Syntax Creating Rules Expressions You can create rules expressions to assign values to accounts: You use the HS.Exp function with an account expression to assign values to accounts. HS.Exp expects a destination value on the left side and a source value on the right side of the equal sign. HS.Exp "Destination=Source" You can use account expressions within Exp to specify the source and destination values. m y a de Copyright © 2008, Oracle. All rights reserved. A c Creating Rules Expressions le perform these types of tasks: r ac You create rules expressions by using Financial Management objects and functions to • Calculating data O ly • Consolidating data l & On na se • Setting accounts to read-only HS.Exp Function nt er U I The most frequent use of a rule expression is assigning values to accounts. Use the le HS.Exp function to assign values to accounts. cO ra 1-8 Hyperion Financial Management 9.3.1: Create Rules
  21. 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 leO ra Hyperion Financial Management 9.3.1: Create Rules 1-9
  22. 22. Module 1 Financial Management Rules Basics Lesson 1 Reviewing Rules Syntax Account Expressions An account expression uses a dimension keyword to specify a value or a set of values. A dimension keyword is separated from its values by a pound sign (#). A#NetIncome Dimensions are separated by periods. A#Cash.P#January.E#USA.C1#OpeningBalance m y a de Copyright © 2008, Oracle. All rights reserved. A c Account Expressions le r ac Account expressions identify cells in the database by specifying one or more dimension members. The Exp function requires an account expression on the left (destination) side O ly of the equal sign. The right (source) side of the equal sign can be an account expression, l & On a constant value, or any function that returns a numeric value. Dimension Keywords na se er U An account expression uses a dimension keyword to specify a value or a set of values. A nt dimension keyword is separated from its values by a pound or hash sign (#), and dimensions are separated by dots. For example: I le A#Cash.P#January.E#USA.C1#OpeningBalance cO ra 1-10 Hyperion Financial Management 9.3.1: Create Rules
  23. 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 leO ra Hyperion Financial Management 9.3.1: Create Rules 1-11
  24. 24. Module 1 Financial Management Rules Basics Lesson 1 Reviewing Rules Syntax Adding Operators and Functions You can use standard math operators on the right side of the equal sign. HS.Exp "A#Sales = A#Units * A#Price" You can use Period and Year keywords for dynamic time calculations. HS.Exp "A#MiscPast = A#Misc.Y#Cur-2" You can embed other HS functions within Exp. HS.Exp "A#AvgSales = A#Sales/HS.Entity.NumBase(USA)" m y a de Copyright © 2008, Oracle. All rights reserved. A c Adding Operators and Functions le r ac You can add, subtract, multiply, and divide on the right side of the equal sign. You must use the following standard VBScript characters: + - * / O ly If you multiply or divide with an account that has a NoData status, the data in the account l & On on the left side of the equal sign is not changed. Zero is considered data. An account that na se contains 0.00 as data does not have a NoData status. er U The following example sets the amount in the StateTax account. This example calculates nt the StateTax amount by multiplying the amount in the Sales account for 2005 by the rate in the StateRate account for 2005: I le HS.Exp "A#StateTax = A#Sales.Y#2005 * A#StateRate.Y#2005" cO ra 1-12 Hyperion Financial Management 9.3.1: Create Rules
  25. 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 leO ra Hyperion Financial Management 9.3.1: Create Rules 1-13
  26. 26. Module 1 Financial Management Rules Basics Lesson 1 Reviewing Rules Syntax Identifying Rule Types There are eight types of rules in Financial Management: — Calculate — Dynamic Sub Calculate() — Translate HS.Exp "A#TargAcct=A#SourceAcct“ — Allocation End Sub — Input Sub NoInput() — No Input HS.NoInput"A#Sales.S#Budget“ — Consolidate End Sub — Transactions You place the rules for each type in a separate sub procedure in the rules file. m y a de Copyright © 2008, Oracle. All rights reserved. A c Identifying Rule Types le Rules fall into eight types: r ac O ly • Calculate rules are executed when you perform calculations and consolidations. You use calculate rules for these tasks: - l & On Set and clear values from accounts - na se Perform ad hoc calculations - nt er U Conform to statutory requirements I • Dynamic rules enable you to create ratios that accurately calculate parent values for le the Period, VIew, and custom dimensions. Parent values for percentages for these dimensions are not accurately calculated by the aggregation of base member values. cO ra • Translate rules execute when you perform translations. These rules can override default translation calculations. 1-14 Hyperion Financial Management 9.3.1: Create Rules
  27. 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 leO ra Hyperion Financial Management 9.3.1: Create Rules 1-15
  28. 28. Module 1 Financial Management Rules Basics Lesson 1 Reviewing Rules Syntax Identifying Sub Procedures A Sub procedure is a series of VBScript statements (enclosed by Sub and End Sub statements) that performs actions but does not return a value. Sub Calculate() HS.Exp "A#TargAcct=A#SourceAcct“ End Sub Sub NoInput() HS.NoInput "A#Sales.S#Budget“ End Sub m y a de Copyright © 2008, Oracle. All rights reserved. A c Identifying Sub Procedures le r ac A Sub procedure can take arguments (constants, variables, or expressions passed by a calling procedure). If a Sub procedure has no arguments, its Sub statement must include O ly an empty set of parentheses (). l & On Rules of each type are grouped into Sub procedures in the rules file. Rules statements na se are grouped into the following procedures: Routine nt er U Calculate() and Dynamic() Executed When you calculate or consolidate data Translate() I When you translate data Allocate() c le When you use the Allocate option in a data grid ra Input() When the application is opened.O 1-16 Hyperion Financial Management 9.3.1: Create Rules
  29. 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 leO ra Hyperion Financial Management 9.3.1: Create Rules 1-17
  30. 30. Module 1 Financial Management Rules Basics Lesson 1 Reviewing Rules Syntax Adding Comments to Rules You can insert comments in rules files to: Document the purpose and results of procedures Provide detail information for other administrators who may inherit rules files you created Act as a reminder of what you may need to modify in future releases of Financial Management ‘Routine is executed when user Comment ‘calculates or consolidates data. Sub Calculate() HS.Exp "A#TargAcct=A#SourceAcct“ End Sub Sub NoInput() HS.NoInput"A#Sales.S#Budget“ m y de End Sub Copyright © 2008, Oracle. All rights reserved. ca A Adding Comments to Rules le r ac Documentation in Financial Management rules files is considered almost as important as the code itself. Without documentation, administrators have a difficult time interpreting O ly and troubleshooting another administrator’s procedures. Even if you are the only one maintaining the rules files, without proper documentation you can easily forget the intent of the procedure. l & On na se Text preceded with an single quote(‘) is interpreted as a comment. Although you can er U start comments anywhere within a line, it is recommended that you place a comment on nt its own line. This ensures that the line is properly validated. I This is an example of inserting comments in your rules files: c le * Copy Actual Q1 rates to Q_Forecast If HS.Scenario.Member = "Q_Forecast" and HS.Period.IsFirst ThenO raHS.Clear "A#ALL" HS.Exp "A#ALL = S#Actual" End If HS.Scenario.Member = "Q_Forecast" and HS.Period.IsFirst 1-18 Hyperion Financial Management 9.3.1: Create Rules
  31. 31. Module 1 Financial Management Rules Basics Lesson 1 Reviewing Rules Syntax Inserting Line Continuations Line Continuation: Uses an ampersand (&) for concatenation Uses an underscore (_) for line continuation Note: You must have a space between the ampersand and the underscore. Concatenation Line Continuation Syntax m y a de Copyright © 2008, Oracle. All rights reserved. A c Inserting Line Continuations le r ac You can use line continuation so that the entire string can be viewed without having to scroll to the right of the code window. O ly If you must break a line into multiple strings, place the line continuation character l & On between the strings, and then concatenate them using the ampersand (&). It is critical to preserve all spaces in the string when it is concatenated. na se er U NOTE You cannot use the line continuation character in comments, you must repeat the nt comment character apostrophe (‘) at the beginning of each comment string line. I c leO ra Hyperion Financial Management 9.3.1: Create Rules 1-19
  32. 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 leO ra 1-20 Hyperion Financial Management 9.3.1: Create Rules
  33. 33. Module 1 Financial Management Rules Basics Lesson 1 Reviewing Rules Syntax Creating Conditional Statements The following condition statements are used in rules files: If…Then…Else Select Case…Else m y a de Copyright © 2008, Oracle. All rights reserved. A c Creating Conditional Statements le r ac You can control the flow of your script with conditional statements. You can write VBScript that makes decisions and repeats actions. O ly l & On na se nt er U I c leO ra Hyperion Financial Management 9.3.1: Create Rules 1-21
  34. 34. Module 1 Financial Management Rules Basics Lesson 1 Reviewing Rules Syntax Applying the If…Then…Else Statement The most common form of the If...Then...Else statement is the block form which allows for several lines of code to be executed or several comparisons to be made, within the one statement. If HS.Scenario.Member = "Budget" Then Is executed only if HS.EXP "A#Sales = A#UnitsSold * A#Price" the current member End If is Budget If HS.Scenario.Member = "Budget" Then Uses ElseIf to test HS.EXP "A#Sales = A#UnitsSold * A#Price" for more than one ElseIf HS.Scenario.Member = "Actual" Then condition HS.EXP "A#Price = A#Sales / A#UnitsSold" Else HS.EXP "A#Sales = A#Sales.P#Prior * 1.1" End If m y a de Copyright © 2008, Oracle. All rights reserved. A c le Applying If...Then...Else Statements r ac The If...Then...Else statement allows several lines of code to be executed or several comparisons to be made within the one statement. O ly You use the If...Then...Else statement to evaluate whether a condition is true or false and, l & On depending on the result, to specify one or more statements to run. The condition is na se typically an expression that uses a comparison operator to compare one value or variable with another. You can nest If...Then...Else statements to as many levels as needed. er U • Use and ElseIf...Then statement to add conditions. nt I • For If...Then...Else statements that have multiple conditions, the first statement that evaluates to true is executed. Any conditions that follow are not evaluated or le executed. cO ra • If you include an Else statement, the lines of script after the Else statement execute if none of the condition are met. 1-22 Hyperion Financial Management 9.3.1: Create Rules
  35. 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 leO ra Hyperion Financial Management 9.3.1: Create Rules 1-23
  36. 36. Module 1 Financial Management Rules Basics Lesson 1 Reviewing Rules Syntax Making Decisions with Select Case Statements A Select Case structure works with a single test expression that is evaluated once, at the top of the structure. The result of the expression is then compared with the values for each Case in the structure. If there is a match, the block of statements associated with that Case is executed, as in the following example. m y a de Copyright © 2008, Oracle. All rights reserved. A c le Making Decisions with Select Case Statements r ac The Select Case structure provides an alternative to If...Then...ElseIf for selectively executing one block of statements from among multiple blocks of statements. A Select O ly Case statement provides capability similar to the If...Then...Else statement, but makes l & On code more efficient and readable when there are a large number of conditions to evaluate. The first Case statement that evaluates to true is executed. Any Case na se statements that follow are not evaluated or executed. nt er U I c leO ra 1-24 Hyperion Financial Management 9.3.1: Create Rules
  37. 37. Module 1 Financial Management Rules Basics Lesson 1 Reviewing Rules Syntax Comparing Strings in Financial Management The following are four frequently used string functions: UCase If UCase(HS.Entity.Member)="NONE" Then… LCase If LCase(HS.Scenario.Member)= "budget" Then... Left Function Dim Product1, RtnString Product1 = "Financial Management" Define string. RtnString = Left(Product1, 9) Returns "Financial" Right Function Dim Product1, RtnString Product1 = "Financial Management" Define string. m y de RtnString = Right(Product1, 10) Returns “Management" Copyright © 2008, Oracle. All rights reserved. ca A le Comparing Strings in Financial Management ac String comparisons are important in Financial Management for these reasons: r O ly 1. To avoid simple errors in uppercase or lowercase strings when conditional statements are used. l & On For example, the string Budget is used as the dimension member, but you enter na se budget for the comparison (one uses an upper case ‘B’ and the second one uses a lower case ‘b’). With string comparison, if you always type lowercase and then nt er U convert variables and function results to lowercase you will not have mismatches. 2. You can use string comparisons to check for one or more characters that use a prefix I or suffix in member names. This is useful for chart of accounts or entity structures c le that use coding in labels. For example, You use a product dimension and all hardware product member labelsO rastart with H100. You can create a string comparison to check the first 4 characters of the member label and if it equals H100 then do the calculation. Hyperion Financial Management 9.3.1: Create Rules 1-25
  38. 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) cO ra 1-26 Hyperion Financial Management 9.3.1: Create Rules
  39. 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 leO ra Hyperion Financial Management 9.3.1: Create Rules 1-27
  40. 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 leO ra 1-28 Hyperion Financial Management 9.3.1: Create Rules
  41. 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 leO ra
  42. 42. Module 1 Financial Management Rules Basics Lesson 2 Reducing Maintenance with Variables About VB Script Variables Variables temporarily store values when your script is running. Variables simplify rules scripts. Variables improve rules performance. Dim vCurPeriod, vCurYear vCurPeriod=HS.Period.Number vCurYear=HS.Year.Member m y a de Copyright © 2008, Oracle. All rights reserved. A c About VB Script Variables le r ac Variables are placeholders that temporarily store values when the rules script is being executed. You can change the value of variables as many times as needed during execution. O ly l & On Variables simplify your script by letting you give short, descriptive names to data used in na se your rules. For example, pov_entity instead of HS.Entity.Member er U Variables improve performance because you can retrieve application data once and then nt reuse the data throughout a procedure. For example, you could retrieve the year total for the Sales account from your Financial Management application and store it in a variable. I You can then use the variable in a series of calculations in your procedure, instead of le retrieving the value from the application each time. cO ra 2-2 Hyperion Financial Management 9.3.1: Create Rules
  43. 43. Module 1 Financial Management Rules Basics Lesson 2 Reducing Maintenance with Variables Creating Variables and Assigning Values Declare variables explicitly using Dim statements Create variables on the fly Enclose values in quotation marks to enter a literal text string vAcc1=”A#NetSales” vSalaryRate=300 pov_entity=HS.Entity.Member You can concatenate variables with literal text strings HS.EXP "A#RetainedIncome=A#Profit" &vCustomTops& ".I#[ICP None]" HS.EXP "A#SalaryExpense=A#Headcount *" &vSalaryRate m y a de Copyright © 2008, Oracle. All rights reserved. A c le Creating Variables and Assigning Values r ac You can create variables explicitly using one or more Dim statements at the start of a subroutine. This method, called declaring the variables, enables you to look in a single O ly place in a procedure when you want to reuse variables and need to remember their l & On names. na se You can also create variables on the fly. However, they are scattered throughout the procedure. This method makes it difficult to check variable names when you want to reuse them. nt Dim Statement Syntax: er U I le Dim VariableName c For example,O ra Dim vAcc1 Hyperion Financial Management 9.3.1: Create Rules 2-3
  44. 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 leO ra 2-4 Hyperion Financial Management 9.3.1: Create Rules
  45. 45. Module 1 Financial Management Rules Basics Lesson 2 Reducing Maintenance with Variables Variables and Data Types VBScript assigns data types automatically. You can use conversion functions to force a data type. — Cbool — CDate — CDbl — CInt — CLng — CSng — CStr m y a de Copyright © 2008, Oracle. All rights reserved. A cVariables and Data Types le r acIn VBScript, you cannot specify in advance that a variable holds only a particular datatype. Instead, you must use a variable known as a variant to store any data type. O lyWhen you assign a value to the variable, VBScript automatically assigns the data type. l & OnSometimes you may need to override the default data type. For example, you may need na seto store all values as integers. er UYou can use conversion functions to explicitly set the data type: Function CBool I nt Description Converts nonzero values to TRUE and zero values to FALSE. CDate c le Converts an expression to a Date value.O ra CDbl Converts an expression to a Double value (a 64-bit floating point number).Hyperion Financial Management 9.3.1: Create Rules 2-5
  46. 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 leO ra 2-6 Hyperion Financial Management 9.3.1: Create Rules
  47. 47. Module 1 Financial Management Rules Basics Lesson 2 Reducing Maintenance with Variables Variables and Constants You declare constants at the beginning of rules files. They are available to all procedures at all times. After you assign a value to a constant, you cannot change it. You can use constants anywhere in your code in place of actual values, just as you use variables. const ALL_NONE = ".I#[ICP None].C1#[None].C2#[None].C3#[None]" const ALL_TOPS = ".I#[ICP Top].C1#TopC1.C2#TopC2.C3#TopC3" m y a de Copyright © 2008, Oracle. All rights reserved. A c Variables and Constants le r ac Variables can be used only in the Sub procedure in which they are created. Constants are similar to variables, but with these differences: O ly • You can use constants in all Sub procedures within the script. l & On • After you define a constant (that is, after it has been assigned a value), you cannot change it. na se nt er U You can declare constants anywhere in the script file. If constants are declared at the beginning of the file, outside of any procedure, they are available to all procedures at all I times. If constants are declared within a procedure, they are available only for that le procedure. cO ra Hyperion Financial Management 9.3.1: Create Rules 2-7
  48. 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 leO ra 2-8 Hyperion Financial Management 9.3.1: Create Rules
  49. 49. Module 1 Financial Management Rules Basics Lesson 2 Reducing Maintenance with Variables Creating Header Sections for Variables and Constants These are some typical types of information stored in header section variables: The current POV members for the POV dimensions pov_entity = HS.Entity.Member pov_scenario = HS.Scenario.Member pov_value = HS.Value.Member Top and [None] members for custom and ICP dimensions; global accounts ALL_NONE = ".I#[ICP None].C1#[None].C2#[None].C3#[None].C4#[None]" ALL_TOPS = ".I#[ICP Top].C1#TopC1.C2#TopC2.C3#TopC3.C4#TopC4" Triggers for conditional statements vIs_Trans = HS.Value.IsTransCur This yields a True or False m y de vIs_base = HS.Entity.IsBase("","") This yields a True or False Copyright © 2008, Oracle. All rights reserved. ca A le Creating Header Sections for Variables and Constants r ac It is a useful practice to create a standard header section in your Sub procedures with variables for frequently used information for your application. For application information O ly that does not changed based on the Point of View, you can create a constants header l & On section at the beginning of the rules file. na se These are some common types of information to include in a header section: er U • Current Point of View members for page dimensions nt • Top and None members for custom and ICP dimensions I • Global account members c le • Conditional statement triggersO ra Hyperion Financial Management 9.3.1: Create Rules 2-9
  50. 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 leO ra 2-10 Hyperion Financial Management 9.3.1: Create Rules

×