You are on page 1of 659

Essbase® XTD

Analytic Services
Fast Track for
Designers
© 2002 Hyperion Solutions Corporation. All rights reserved. Hyperion,
Essbase, Hyperion Analyst, Hyperion Enterprise, Hyperion Pillar and
Hyperion Reporting are registered trademarks of Hyperion Solutions
Corporation. Hyperion Solutions, the Hyperion “H” logo, what’s going on,
Hyperion Activity Based Management, Hyperion Allocations Manager,
Hyperion Analyzer, Hyperion Application Link, Hyperion Customer
Interaction Center, Hyperion Enterprise Reporting, Hyperion Financial
Management, Hyperion Integration Server, Hyperion Objects, Hyperion
Performance Scorecard, Hyperion Planning, Hyperion Reports, Hyperion
Sessionizer, Hyperion Spreadsheet Add-in, Hyperion Spreadsheet Toolkit and
Hyperion Web Site Analysis are trademarks of Hyperion Solutions
Corporation. All other trademarks and company names mentioned are the
property of their respective owners.

Microsoft is a registered trademark and Windows is a trademark of Microsoft


Corporation. IBM, DB2, Lotus, and 1-2-3 are registered trademarks of
International Business Machines Corporation. All other brand and product
names are trademarks or registered trademarks of their respective holders.

No portion of this manual may be reproduced or transmitted in any form or


by any means, electronic or mechanical, including photocopying, recording,
or information storage and retrieval systems, for any purpose other than the
purchaser’s personal use, without the express written permission of Hyperion
Solutions Corporation.

Notice: The information contained in this document is subject to change


without notice. Hyperion Solutions Corporation shall not be liable for errors
contained herein or consequential damages in connection with the furnishing,
performance, or use of this material.

Hyperion Solutions Corporation


1344 Crossman Avenue
Sunnyvale, CA 94089

Essbase XTD Analytic Services Fast Track for Designers / 6.5.1 / 12.16.02
Table of Contents
Preface ...................................................................................................... xii
Welcome to Essbase® XTD Analytic Services - Fast Track for Designers! ................................xii
Course Structure.................................................................................................................................xii
What is in the Manual .................................................................................................................xii
Conventions .......................................................................................................................................xiii
Future Classes....................................................................................................................................xvi
1 Analytic Services From 500 Feet - An Overview............................... 1-1
Setting the Stage ................................................................................................................................1-2
What is Analytic Services? ...............................................................................................................1-2
Multiple Applications With One Environment......................................................................1-3
Analytic Services Product Components ........................................................................................1-4
Base System Components..........................................................................................................1-4
Optional Components................................................................................................................1-4
Documentation............................................................................................................................1-4
Hyperion Essbase XTD Platform ....................................................................................................1-5
Server Tools .................................................................................................................................1-5
End-user Tools ............................................................................................................................1-6
Development Tools ....................................................................................................................1-6
Platform Requirements.....................................................................................................................1-6
Server Platforms..........................................................................................................................1-7
Client Platforms ..........................................................................................................................1-8
API Client Development Platforms .........................................................................................1-8
Windows Server Requirements ................................................................................................1-9
About Multidimensionality ...........................................................................................................1-10
What Users Really Want..........................................................................................................1-10
Importance of Multidimensionality.......................................................................................1-11
The Production Environment........................................................................................................1-11
Outline Setup and Maintenance .............................................................................................1-11
Load Rules .................................................................................................................................1-12
Calc Scripts ................................................................................................................................1-13
Reporting with the Spreadsheet Add-In ...............................................................................1-14
2 Outline Mechanics ............................................................................... 2-1
Setting the Stage ................................................................................................................................2-2
Application Manager Organization ...............................................................................................2-2
Logging On to the Server...........................................................................................................2-3
Using the Server Desktop ..........................................................................................................2-4
Creating Applications And Databases ...........................................................................................2-5
The Application Umbrella.........................................................................................................2-5
One-To-One Correlation............................................................................................................2-5
Outline Elements ...............................................................................................................................2-6
Dimension Hierarchies ..............................................................................................................2-7
Creating and Moving Members ......................................................................................................2-8

i Hyperion
Fast Track for Designers Table of Contents
T
Language of Members And Hierarchies......................................................................................2-10
Generations................................................................................................................................2-10
Levels..........................................................................................................................................2-11
Genealogy ..................................................................................................................................2-12
Defining Member Settings .............................................................................................................2-13
Using Aliases ...................................................................................................................................2-14
Specifying Consolidation Operators ............................................................................................2-15
Understanding Storage Types.......................................................................................................2-16
Index Driven Types ..................................................................................................................2-16
Shared Members..............................................................................................................................2-17
Formulas with Outline Members..................................................................................................2-18
Formulas in Outlines Versus in Calc Scripts ........................................................................2-19
User Defined Attributes .................................................................................................................2-20
Attribute Dimensions .....................................................................................................................2-21
Attribute Versus Standard Dimensions ................................................................................2-22
Ground Rules ............................................................................................................................2-23
Mechanics ..................................................................................................................................2-24
Setting Global Attribute Properties........................................................................................2-28
Exercise: Creating a Database ..........................................................................................2-32
Exercise: Building a Time Dimension .............................................................................2-33
3 Outline Design Alternatives ................................................................ 3-1
Setting the Stage ................................................................................................................................3-2
Data Descriptor Dimensions............................................................................................................3-2
Design Approaches ....................................................................................................................3-3
Time ..............................................................................................................................................3-4
Scenario ........................................................................................................................................3-6
Accounts.......................................................................................................................................3-9
What Time, Accounts and Scenarios Share ..........................................................................3-11
Crossover Designs ....................................................................................................................3-12
What Business Views Have in Common...............................................................................3-12
Business View Sampler............................................................................................................3-14
Outline Defines Reporting Drill Down .................................................................................3-15
Exercise - Building a Scenario Dimension ......................................................................3-16
Exercise - Creating the Accounts Dimension.................................................................3-17
Exercise - Adding to the Accounts Dimension ..............................................................3-18
4 Developing Load Rules ....................................................................... 4-1
Setting the Stage ................................................................................................................................4-2
Defining Hierarchies.........................................................................................................................4-2
Planning With Label Outlines...................................................................................................4-3
Flushing Out the Issues .............................................................................................................4-4
What Load Rules Do for Outlines...................................................................................................4-5
Loading Complex Hierarchies..................................................................................................4-6
Fixing Problems ..........................................................................................................................4-6
Building A Dimension Build Rule From Scratch..........................................................................4-7

Hyperion ii
Table of Contents Fast Track for Designers
T
Ten Steps For Setting Up Dimension Building Load Rules..................................................4-7
Loading the Outline ........................................................................................................................4-25
Three Methods for Initiating a Dimension Build.................................................................4-26
Error Checking.................................................................................................................................4-29
Tracking Errors with Load Rule Validation .........................................................................4-29
Tracking Errors Not Caught in Validation ...........................................................................4-30
Error Tracking Tips ..................................................................................................................4-30
Exercise - Loading the Family Total Rollup ...................................................................4-33
5 Outline Loading Methods.................................................................... 5-1
Setting the Stage ................................................................................................................................5-2
Setting the Load Method..................................................................................................................5-3
Capturing New Members On-the-fly.............................................................................................5-4
Thinking Generations .......................................................................................................................5-5
Loading Hierarchies by Generation.........................................................................................5-5
Loading Shared Members By Generation ...............................................................................5-7
Thinking Levels .................................................................................................................................5-7
Loading Hierarchies by Level...................................................................................................5-7
Loading Shared Members by Level .........................................................................................5-9
Parent/Child......................................................................................................................................5-9
Loading Hierarchies Using Parent/Child.............................................................................5-10
Structuring Files for Parent/Child Method Loading ..........................................................5-10
Loading Shared Members By Parent/Child.........................................................................5-11
Building Attributes with Load Rules ...........................................................................................5-13
Building the Attribute Dimension..........................................................................................5-13
Associating Base Dimension Members with Specific Attributes.......................................5-20
Exercise - Using the Level Build Method .......................................................................5-29
Exercise - Creating a Parent/Child Load Rule ..............................................................5-30
Exercise - Loading Dimensions Using a Parent/Child Rule .......................................5-31
Exercise - Loading Channel to Customer .......................................................................5-32
Exercise - Building the Capacity Total Attribute...........................................................5-33
Exercise - Creating a Region Total Attribute Dimension .............................................5-34
6 Loading Data ........................................................................................ 6-1
Setting the Stage ................................................................................................................................6-2
Three Ways to Load Data.................................................................................................................6-2
Free Form Loading without Rules ...........................................................................................6-3
Structured Loading with Rules.................................................................................................6-4
Lock and Send with a Spreadsheet ..........................................................................................6-5
What Load Rules Do for Data .........................................................................................................6-6
Setting Up a Data Load Rule.....................................................................................................6-7
Two Methods for Initiating a Load Procedure ...........................................................................6-12
Maximizing Data Load...................................................................................................................6-15
Minimize How Many Times You Touch the Blocks............................................................6-15
Exercise - Working with Difficult Data...........................................................................6-17

iii Hyperion
Fast Track for Designers Table of Contents
T
7 Dealing With Formats And Records................................................... 7-1
Setting the Stage ................................................................................................................................7-2
Defining Global Properties ..............................................................................................................7-3
Fixing Specific Format Problems..............................................................................................7-3
Replace With................................................................................................................................7-5
Handling Data Values On Load......................................................................................................7-6
Aggregate or Not? ......................................................................................................................7-6
Manipulating Column Fields ..........................................................................................................7-7
Move, Split, Join and Create......................................................................................................7-8
Backing Up...................................................................................................................................7-9
Managing Headers............................................................................................................................7-9
Selecting And Rejecting Records ..................................................................................................7-12
Screens on Fields.......................................................................................................................7-12
Booleans on Multiple Fields....................................................................................................7-13
Capturing Unrecognized Members..............................................................................................7-14
Setting Up a Safety Net ............................................................................................................7-15
Exercise - Clorox Minty .....................................................................................................7-18
8 Basic Retrieve Operations .................................................................. 8-1
Setting the Stage ................................................................................................................................8-2
Installing The Spreadsheet Add-in.................................................................................................8-2
Installing the Toolbar .................................................................................................................8-3
Logging In ..........................................................................................................................................8-4
Label Scanning...................................................................................................................................8-5
General Rules ..............................................................................................................................8-6
Header Rules ...............................................................................................................................8-7
Row/Column Rules ...................................................................................................................8-8
Retrieve Mechanics .........................................................................................................................8-10
Activity Status Icons.................................................................................................................8-12
Retrieve Performance ...............................................................................................................8-13
Exercise - Installing the Spreadsheet Add-in and Toolbar ..........................................8-14
Exercise - Basic Retrieve Operations ...............................................................................8-15
9 Managing Options................................................................................ 9-1
Setting the Stage ................................................................................................................................9-2
Global Options...................................................................................................................................9-3
Mouse Actions.............................................................................................................................9-3
Display Messages........................................................................................................................9-4
Mode.............................................................................................................................................9-4
Display Options.................................................................................................................................9-5
Indentation...................................................................................................................................9-5
Replacement ................................................................................................................................9-6
Suppress .......................................................................................................................................9-6
Aliases ..........................................................................................................................................9-6

Hyperion iv
Table of Contents Fast Track for Designers
T
Cell ................................................................................................................................................9-6
Style Options......................................................................................................................................9-7
Zoom Options ....................................................................................................................................9-9
Zoom In ........................................................................................................................................9-9
Zoom Out...................................................................................................................................9-10
Exercise - Using Global Options ......................................................................................9-11
Exercise - Spreadsheet Options - Display.......................................................................9-14
Exercise - Spreadsheet Options - Zoom ..........................................................................9-17
Exercise - Spreadsheet Options- Style.............................................................................9-19
10 More Bells & Whistles ..................................................................... 10-1
Setting the Stage ..............................................................................................................................10-2
Using Pivot .......................................................................................................................................10-2
The Essbase Menu ....................................................................................................................10-3
Pivot Using the Mouse.............................................................................................................10-4
Exercise - Using Pivot........................................................................................................10-5
Exercise - Spreadsheet Reporting Challenge 1: Formats ..............................................10-7
Member Selection ............................................................................................................................10-8
Member Selection Dialog Box.................................................................................................10-8
Selecting by Member Name ..................................................................................................10-10
Select by Generation and Level Name.................................................................................10-11
Exercise - Using Member Selection ...............................................................................10-14
Exercise - Spreadsheet Reporting Challenge 2: Pivot, Zoom and Select..................10-20
Cascade ...........................................................................................................................................10-21
Exercise - Using Cascade.................................................................................................10-23
Managing Spreadsheet Formulas ...............................................................................................10-26
Exercise - Spreadsheet Formulas ...................................................................................10-28
Dynamic Time Series Reporting .................................................................................................10-31
Exercise - Spreadsheet Reporting Challenge 3: Formulas..........................................10-33
Linked Objects ...............................................................................................................................10-34
Exercise - Using Linked Objects.....................................................................................10-37
Drilling with Attribute Dimensions ...........................................................................................10-41
Drilling on Level 0 Attribute Members ...............................................................................10-41
Viewing Attribute Calculations ..................................................................................................10-44
Exercise - Drilling with Attributes.................................................................................10-46
11 Report Development Procedures ................................................... 11-1
Setting the Stage ..............................................................................................................................11-2
Five Steps for Setting Up a Report................................................................................................11-3
Step 1 - Set Interim Options ....................................................................................................11-3
Step 2 - Set Page Header Labels..............................................................................................11-4
Step 3 - Set Row and Column Members................................................................................11-5
Step 4 - Set Spreadsheet Formatting ......................................................................................11-6
Step 5 - Set Final Options.........................................................................................................11-6
Exercise - Reporting Challenge 4: Create an Asymmetrical Report ...........................11-8

v Hyperion
Fast Track for Designers Table of Contents
T
12 The Query Designer......................................................................... 12-1
Setting the Stage ..............................................................................................................................12-2
Introducing the Query Designer...................................................................................................12-3
Four Steps Through the Query Designer.....................................................................................12-5
Step 1 - Getting Started ............................................................................................................12-5
Step 2 - Place Headers, Rows and Columns .........................................................................12-6
Step 3 - Specify Members For Headers, Rows and Columns .............................................12-8
Step 4 - Save and Run the Completed Report ....................................................................12-10
Filtering for Top/Bottom N with Query Designer ............................................................12-11
Filtering Values With Query Designer ................................................................................12-13
Sorting with the Query Designer .........................................................................................12-14
Migrating Reports from Retrieval Wizard to the .....................................................................12-16
Report Scripting.............................................................................................................................12-17
Running Reports from Excel........................................................................................................12-18
Exercise - Using the Query Designer ............................................................................12-19
13 Calculation Basics ........................................................................... 13-1
Setting the Stage ..............................................................................................................................13-2
Calculating in the Outline ..............................................................................................................13-3
Unary Operators .......................................................................................................................13-3
Order of Operations .................................................................................................................13-4
Associating Formulas with Outline Members......................................................................13-5
Formulas in Outlines Versus Formulas in Calc Scripts ......................................................13-7
Calc Scripts .......................................................................................................................................13-8
Basic Calc Script Sections.........................................................................................................13-8
Driven by Process .....................................................................................................................13-9
The Calc Script Interface ........................................................................................................13-10
Calc Script Toolbar .................................................................................................................13-12
Accessing Calc Functions ......................................................................................................13-13
Executing A Calc Script .........................................................................................................13-14
Copious Categories of Calc Script Functions ............................................................................13-15
Functional Commands...........................................................................................................13-16
Control Flow Commands ......................................................................................................13-16
Conditionals ............................................................................................................................13-17
Data Declarations....................................................................................................................13-17
Operators .................................................................................................................................13-18
Math..........................................................................................................................................13-18
Range (Financial) ....................................................................................................................13-19
Boolean .....................................................................................................................................13-19
Member Set ..............................................................................................................................13-20
Relationship Functions ..........................................................................................................13-20
Allocation.................................................................................................................................13-21
Forecasting...............................................................................................................................13-21
Statistical ..................................................................................................................................13-22
Date & Time.............................................................................................................................13-22
Miscellaneous ..........................................................................................................................13-22

Hyperion vi
Table of Contents Fast Track for Designers
T
14 Understanding Data Blocks ............................................................ 14-1
Setting the Stage ..............................................................................................................................14-2
Understanding Dense and Sparse ................................................................................................14-2
Perspective 1 - Think About the Data....................................................................................14-2
Perspective 2 - What are the Analytic Services Settings?....................................................14-4
Data Block Fundamentals ..............................................................................................................14-6
Data Block Fundamentals ..............................................................................................................14-8
Data Blocks are Created for.....................................................................................................14-8
Storage and Calculation Efficiency ........................................................................................14-9
Anatomy of a Roll-up ...................................................................................................................14-10
Example Assumptions ...........................................................................................................14-10
Step 1 - After Data Input........................................................................................................14-11
Step 2 - Calc Dim (Accounts) ................................................................................................14-12
Step 3 - Calc Dim (Year Tot)..................................................................................................14-12
Step 4 - Calc Dim (Customer) ...............................................................................................14-13
Step 5 - Calc Dim (Product)...................................................................................................14-14
Interpreting Block Statistics .........................................................................................................14-15
Blocks Parameter Group........................................................................................................14-15
Exercise - Anatomy of a Roll-up ....................................................................................14-18
15 Calc Script Architecture .................................................................. 15-1
Setting the Stage ..............................................................................................................................15-2
The Prototypical Calc Script ..........................................................................................................15-2
Housekeeping ...........................................................................................................................15-5
Baseline Fix ................................................................................................................................15-7
The Normalization....................................................................................................................15-8
The Main Roll-up ....................................................................................................................15-11
The Back Calc ..........................................................................................................................15-11
16 The Most Important Calc Functions............................................... 16-1
Setting the Stage ..............................................................................................................................16-2
Expected Versus Correct Behavior ...............................................................................................16-2
Understanding Analytic Services .................................................................................................16-2
Expected Behavior ....................................................................................................................16-3
Correct Behavior .......................................................................................................................16-3
Member Formulas ...........................................................................................................................16-4
Special Syntax: Calc Member Blocks .....................................................................................16-6
Top-Down Calculating ...................................................................................................................16-7
Controlling the Top-Down......................................................................................................16-7
Using FIX to Focus....................................................................................................................16-8
Exercise - Using FIX to Focus .........................................................................................16-10
Using IF to Focus ....................................................................................................................16-11
FIX Versus IF Considerations ...............................................................................................16-12
Exercise - Using IF to Focus............................................................................................16-15
The Cross Dim Operator ..............................................................................................................16-16

vii Hyperion
Fast Track for Designers Table of Contents
T
Booleans, Member Sets and Relationship Functions ...............................................................16-17
Using Member Set Commands.............................................................................................16-19
Using Booleans........................................................................................................................16-20
Using Relationship Functions ...............................................................................................16-21
Variables .........................................................................................................................................16-22
Substitution Variables ............................................................................................................16-22
Temporary Variables..............................................................................................................16-27
17 Calc Script Development Procedures............................................ 17-1
Setting the Stage ..............................................................................................................................17-2
Transferring Files from Client to Server ......................................................................................17-2
Moving Outlines .......................................................................................................................17-3
Moving Load Rules and Calc Scripts.....................................................................................17-5
Creating and Testing Calc Scripts.................................................................................................17-6
Developing a Prototype ...........................................................................................................17-7
Testing in a Pilot Environment .............................................................................................17-13
18 Heads Up Issues .............................................................................. 18-1
Setting the Stage ..............................................................................................................................18-2
The Data Block.................................................................................................................................18-2
Block Visualization ...................................................................................................................18-3
Pass Tracking.............................................................................................................................18-4
Block Minimizing......................................................................................................................18-4
Understanding Aggregate Missing Values .................................................................................18-5
Managing the Settings..............................................................................................................18-5
Leaf Node Loading .........................................................................................................................18-6
More Expected Versus Correct Behavior ..............................................................................18-7
Accounts First ................................................................................................................................18-10
An Example Scenario .............................................................................................................18-10
Dense First ...............................................................................................................................18-12
The Back Calc.................................................................................................................................18-14
The Parallel Calculation ...............................................................................................................18-15
When should I use it?.............................................................................................................18-15
Enabling Parallel Calculation................................................................................................18-16
19 Normalization Calculations............................................................. 19-1
Setting the Stage ..............................................................................................................................19-2
Scenario Partitioning.......................................................................................................................19-2
The Normalization Table ...............................................................................................................19-4
Multi-Level Pushing and Allocations ..........................................................................................19-7
Simple Push Down ...................................................................................................................19-7
Single Dimension Ratio Allocation ........................................................................................19-8
Exercise - Developing a Complex Calc Script ................................................................19-9
20 Using Dynamic Calc ........................................................................ 20-1

Hyperion viii
Table of Contents Fast Track for Designers
T
Setting the Stage ..............................................................................................................................20-2
Dynamic Calcs .................................................................................................................................20-2
Calculation Order............................................................................................................................20-5
Batch Versus Dynamic .............................................................................................................20-5
Dynamic Calc (Non-Store) Members.....................................................................................20-7
Dense Dimension Guidelines..................................................................................................20-8
Sparse Dimension Design Features........................................................................................20-9
Dynamic Calc And Store Members......................................................................................20-12
21 Using Intelligent Calc ...................................................................... 21-1
Using Intelligent Calc .....................................................................................................................21-2
Data Block Marking ........................................................................................................................21-2
Setting Intelligent Calc .............................................................................................................21-3
How Blocks are Marked Clean ...............................................................................................21-3
How Blocks are Marked Dirty ................................................................................................21-6
Marked Versus Actual Block Status.......................................................................................21-7
Guidelines for Using Intelligent Calc ....................................................................................21-8
Appendix A - Exercise Solutions...........................................................A-1
Chapter 3 ...........................................................................................................................................A-2
Exercise: Building a Scenario Dimension ........................................................................A-2
Exercise - Building an Accounts Dimension ...................................................................A-5
Chapter 4 .........................................................................................................................................A-11
Exercise - Creating a New Load Rule.............................................................................A-11
Chapter 5 .........................................................................................................................................A-18
Exercise - Using the Level Build Method ......................................................................A-18
Exercise - Creating a Parent/Child Load Rule .............................................................A-21
Exercise - Using a Parent/Child Rule ............................................................................A-24
Exercise - Loading Channel to Customer ......................................................................A-26
Exercise - Building the Capacity Total Attribute..........................................................A-33
Exercise - Creating a Region Total Attribute Dimension ............................................A-41
Chapter 6 .........................................................................................................................................A-48
Exercise - Working with Difficult Data..........................................................................A-48
Chapter 7 .........................................................................................................................................A-57
Exercise - Clorox Minty ....................................................................................................A-57
Chapter 10 .......................................................................................................................................A-62
Exercise - Spreadsheet Reporting Challenge 1: Formats .............................................A-62
Exercise - Spreadsheet Reporting Challenge 2: Pivot, Zoom and Select...................A-67
Exercise - Spreadsheet Reporting Challenge 3: Formulas...........................................A-71
Chapter 11 .......................................................................................................................................A-77
Exercise - Spreadsheet Reporting Challenge 4: Asymmetrical Report .....................A-77
Chapter 12 .......................................................................................................................................A-85
Exercise - The Query Designer........................................................................................A-85
Chapter 16 .......................................................................................................................................A-90
Exercise - Using Fix to Focus ...........................................................................................A-90

ix Hyperion
Fast Track for Designers Table of Contents
T
Exercise - Using If to Focus..............................................................................................A-91
Chapter 19 .......................................................................................................................................A-92
Exercise - Developing a Complex Calc Script ...............................................................A-92
Appendix B - New Features in Version 6.5.1 ........................................B-1
Overview ........................................................................................................................................... B-2
Calculation ........................................................................................................................................ B-2
@XRANGE Function ................................................................................................................. B-2
@MOVSUM Function................................................................................................................ B-4
@MOVSUMX Function ............................................................................................................. B-6
System Administration.................................................................................................................... B-7
Port Statistics .............................................................................................................................. B-7
Enhanced Security File Backup ............................................................................................... B-8
ZLIB Compression Algorithm ............................................................................................... B-10
Query Logging ......................................................................................................................... B-11
Improved #MISSING Handling with DATACOPY............................................................ B-18
Invalid Block Header Identification and Correction .......................................................... B-19
Application Memory Manager .............................................................................................. B-21
MaxL Features ................................................................................................................................ B-24
Glossary.................................................................................................. G-1

Hyperion x
Table of Contents Fast Track for Designers
T

xi Hyperion
P
Preface

Welcome to Essbase® XTD Analytic Services - Fast Track for


Designers!
Before you begin, please take a moment to review this section. The preface
presents an overview of:

How the class is structured


An explanation of the writing conventions used in this manual
Relevant follow-up courses you might want to attend in the future

Course Structure
This is a 5-day, instructor led training class. It has been designed with the
student in mind. In this course, the instructor presents a topic
conceptually by explaining its purpose, demonstrating how it works, then
guiding the students through the exercise. This explain and do procedure
has proved to be a successful method.

What is in the Manual

This manual is your guide to learning Essbase XTD Analytic Services. It


contains:

Information about the key features of the program


Step-by-step procedures
Hands-on exercises

Following is a list of the manual’s components:

A Preface containing:
• An overview of what is in the manual
• A description of the writing conventions
A Table of Contents for easy reference
Preface Fast Track for Designers
P
Chapters containing:
• An introductory Objectives page
• An Overview of topics
• Step-by-step procedures for referencing during and after class,
and
• Exercises which encourage you to practice what was just
presented
• Check Your Understanding to test what you've just learned

Conventions
Certain formatting styles are used in this manual to help the student better
understand the subject matter and the step-by-step procedures. This
section details these conventions.

Chapter Objectives, consisting of a bulleted list of chapter topics,


prefaces each chapter.
If the chapter is lengthy or the subject matter is complex, an
Overview follows the Chapter Objectives.
Individual topics are noted with a helvetica/bold heading, as in this
example:

Setting User Defaults

Step-by-step procedures begin with the graphic and a heading


that defines the procedure, such as:

To set user defaults:

Tables are used to define software components, as in this example:

Generation A consolidation level in a dimension. The root member


(dimension name) is Generation 1. Like a hierarchical
tree structure that begins at the root, moves to the
branches, and ends with the leaf nodes, generations
count up from the root toward the leaf node.
Leaf Members that have no children. Also referred to as
detail members, level zero (0) members, and leaf
nodes. Leaf nodes are the most specific level of detail
in the database.

Screen captures appear frequently and further clarify a topic.


The letter x is used to refer to the drive letter in file names. Your
instructor will provide the appropriate drive letter for x. For
example: the file is located in the directory x:\Program Files.

xiii Hyperion
Fast Track for Designers Preface
P
Exercises appear throughout the chapter to reinforce a new concept
or task. Most exercises contain two separate versions:

A summary without step-by-step instructions.

A detailed version containing all the steps.

The student can select which version is best suited for their
individual learning style. In some cases, an exercise will combine the
versions.

An End of Exercise icon.

Notes, prefaced by a ✍
, provide related information, tips,
common mistakes, and/or cautions about the current topic.

Notes prefaced by a provide vital information. Procedures you


must complete before proceeding, or must not do at all.

Throughout the step-by-step procedures, a different font is used to


accentuate text. The following rules apply:

Text to be typed,
Options to be selected,
Names of files and modules,
Menu selections…appear in Helvetica, Narrow Bold

As in the following examples:

1) Select Clear Profile.

2) To clear the profile, select Yes.

Hyperion xiv
Preface Fast Track for Designers
P
The step-by-step procedures present the action to be performed.
When needed, a result follows. This action/result format confirms
the procedure and reinforces the student of the correct action.
When available, icons are used to help identify an object or task, as
in this example:

1) Select Edit .

Keystrokes that are combined, such as pressing the Ctrl + Enter keys,
appear as follows:

[Ctrl] + [Enter]

In the example above, you would press the Enter key while holding
down the Ctrl key.

xv Hyperion
Fast Track for Designers Preface
P
Future Classes
The following is a flow chart of classes offered in the Hyperion Essbase
XTD curriculum. Essbase XTD Analytic Services Fundamentals is a
recommended (not required) starting point for any student.

Analytic Services
Conceptual Overview

Do you use Hyperion If you have attended the If you have attended the
Analyzer? Analytic Services Conceptual Analytic Services Conceptual
Overview class, and you are Overview class, and you are
responsible for implementing responsible for system or
Analytic Services? database administration?
Hyperion Analyzer You are
Administration and here.
Design
Fast Track for System Administration
Designers or
components:
Calculating A to Z Do you need to learn more
Do you need to query Analytic about calculation scripts?
Services data using Crystal Load Rules A to Z
Reports

Calculating A to Z
Essbase XTD Q&R Advanced Training

Do you need to learn more


about load rules?

Load Rules A to Z

Does your company use


Essbase XTD Integration
Services?

Essbase XTD Integration


Services Fundamentals

Hyperion xvi
Preface Fast Track for Designers
P

xvii Hyperion
1
Analytic Services From
500 Feet - An Overview
Upon completion of this chapter, you will be able to:

• Describe Essbase XTD Analytic Services


• Define multidimensionality
• Identify the portions of the production environment
Hyperion Essbase from 500 Feet - An Overview Fast Track for Designers
1
Setting the Stage
For years business managers and financial analysts have been asking
questions and thinking about their budgets, sales data and nearly every
other piece of business information in multidimensional terms. They
might want to know how a particular product sells in one market as
opposed to another, or which customer actually nets them the highest
profit. With Essbase® XTD Analytic Services (Analytic Services),
multidimensional analysis is easy to do.

Isn’t that
cropduster
height?

What is Analytic Services?


Analytic Services is a multi-dimensional database application tool that lets
you continually analyze aspects of your business in comparison to one
another. An Analytic Services database:

Works with multidimensional data and rollup hierarchies within


dimensions
Gets its information from other systems
Deals with some level of summarized data, not transactions
Can be adapted to many different reporting and analysis
environments

1-2 Hyperion
Fast Track for Designers Hyperion Essbase From 500 Feet - An Overview
1
Multiple Applications With One Environment

Most traditional database products are application specific, and the


proliferation of application specific packages results in multiple support
for training and development.

With Analytic Services as an application development environment, you


can build multiple databases using the same tool. Individual applications
are better integrated with each other. Only one environment needs to be
supported for the development environment, deployment and training.

However, more front-end effort is required in building the individual


applications versus buying off-the-shelf packages.

Performance
Reporting
Excel, 123
Sales Budgeting
Tracking Forecasting

Visual Analytic
Basic, C++ HTML
Services
Product Executive
Analysis Hyperion Analyzer Information
Crystal, Powerbuilder

Actuals
Consolidation

The Analytic Services vision: Use the database


infrastructure for building multiple applications -
saving time and money in application development,
training and technical support.

Hyperion 1-3
Hyperion Essbase from 500 Feet - An Overview Fast Track for Designers
1
Analytic Services Product Components
Analytic Services product components include base system components
and optional, add-on products.

Base System Components

The base system contains the following items:

The Analytic Services software, containing the Essbase OLAP server,


the sample applications and the setup program.
The Analytic Services Application Manager (Application Manager)
software, which is a administration tool.
ESSCMD and MaxL (command line interfaces)
The Analytic Services Spreadsheet Add-in (Spreadsheet Add-in)
software for the Spreadsheet Add-in platform of your choice,
enabling your spreadsheet application to work with the Essbase
OLAP server.
Hybrid Analysis, a tool that lets you integrate data in your source
relation database and analyze it in concert with data from the
Analytic Services database

Optional Components

Analytic Services has several add-on options that are an integral part of
the product line. You license them separately. They include the following:

SQL Interface
Currency Conversion
Spreadsheet Toolkit (including VBA)
Partitioning Option
Application Programming Interface (API)

Documentation

You can access all Analytic Services documentation from a single HTML
file called the Information Map. The Information Map contains links to
following types of documents:

Getting Started documents


• Readme File
• Installation Checklist
• Installation Guide
• Quick Path Card
Spreadsheet Add-in Help and User’s Guide for Microsoft Excel or
Lotus 1-2-3
Basic Design and Reference

1-4 Hyperion
Fast Track for Designers Hyperion Essbase From 500 Feet - An Overview
1
• Database Administrator’s Guide (HTML or PDF)
• Technical Reference
• API Reference
Administration
• MaxL User’s Guide
• SQL Interface Guide (HTML or PDF)
• Error Messages
• Application Manager Help

The path to the Information Map is:

Start\Programs\Hyperion Solutions\Hyperion Essbase 6.5\OLAP Server


Documentation

Hyperion Essbase XTD Platform


In addition to the Analytic Services, the Hyperion Essbase XTD platform
provides a rich set of product offerings to maximize analysis ability. These
options are divided into server, end-user and development tools.

Server Tools

Essbase® XTD Administration Services is a graphical user interface for


managing Analytic Services servers, applications and databases. It
presently mirrors many functions contained in the Analytic Services
Application Manager. However, with the advent of future product
releases, Essbase XTD Administration Services will replace the Analytic
Services Application Manager and become the base platform for
performing administration as well as accessing the ESSCMD and MaxL
command line interfaces.

Essbase® XTD Deployment Services is a full JAVA API for Analytic


Services. It is a middle-tier framework that extends the power of Analytic
Services by creating a Web-enable, distributed platform for Analytic
Services applications.

Essbase® XTD Integration Services is a suite of graphical tools and scalable


data integration services that minimize the time and expense to create,
deploy and maintain analytic applications. It uses centralized, reusable
metadata to automate the process of creating and managing analytic
applications from relational data sources, such as data warehouses, data
marts, transaction-processing applications, and enterprise resource
planning (ERP) systems.

Hyperion 1-5
Hyperion Essbase from 500 Feet - An Overview Fast Track for Designers
1
End-user Tools

Hyperion® Analyzer is an OLAP-centric analysis and presentation tool


that operates in both client/server and Web-based computing
architectures. It delivers intuitive information, access and analysis to
Analytic Services through highly graphical displays, powerful ad hoc
navigation, and robust analytics.

Hyperion® Reports is a production report writer. It is designed to produce


reports with rich formatting capabilities for on-line and batch processing
on Analytic Services databases.

Essbase® XTD Spreadsheet Services leverages Essbase XTD Deployment


Services to provide scalability and reliability in a distributed Internet
environment. Essbase XTD Spreadsheet Services lets you deploy a Web-
based spreadsheet client application across an organization.

Essbase® XTD Q&R is comprised of Hyperion Crystal Reports, Hyperion


Crystal Enterprise, and Hyperion Crystal Smart Reporting. Essbase XTD
Q&R provides a fully customizable report design, content management
and delivery platform built for intranet, extranet and corporate portal
applications. High-performance query and reporting is provided from
virtually any data source, including relational, ERP, CRM and Analytic
Services.

Development Tools

The Analytic Services API is an application programming interface (API)


that lets developers build custom Analytic Services applications using
programs such as Visual Basic®, C and C++.

Hyperion Objects is a full suite of pre-made object linking and embedding


(OLE) compliant objects.

Essbase XTD Deployment Services provides a full Java API for custom
client development.

Hyperion® Application Builder provides an open, secure and manageable


distributed platform s for rapid creation and management of Web-centric,
enterprise scalable, cross-platform business analysis applications.

Platform Requirements
Analytic Services deploys in a client server environment. The specific
client or server configuration varies depending on the amount of network
traffic and third party applications running with Analytic Services. The
following sections provide platform support minimum hardware
guidelines.

1-6 Hyperion
Fast Track for Designers Hyperion Essbase From 500 Feet - An Overview
1
Server Platforms

In a typical setup, data resides on the server and is shared among all users
(clients) who have access. The Essbase OLAP server provides a secure,
client/server work environment. The server also enables you to control
applications. It controls how data is stored physically to disk and handles
client requests. Analytic Services 6 supports the following server and
client platforms. Except where noted, these are minimum requirements.

Windows Version Windows NT 4.0 on Pentium or later machines


Windows 2000 on Pentium or later machines
Windows XP for Personal Essbase
Windows XP for Essbase clients

Merant Version 4.0, except AIX which still uses Merant 3.6

AIX Version 4.3.3 or later on RS 6000 PowerPC machines


AIX 5L for OLAP Server

HP-UX Version 11 and 11i on PA-RISC machines

Solaris Version 2.7and 2.8 on Sun SPARC or ULTRASPARC


machines

RAM 64 MB or greater (128 MB or greater for UNIX


platforms) base recommendation

Disk Space 35-50 MB for the server software and sample


applications
15-20 MB for the SQL interface software and samples

Network Protocol TCP/IP or Named Pipes (TCP/IP only for Windows 95


and Windows 98)

✍ Personal Analytic Services for Windows NT and Windows 2000 on Intel


machines is also available.
The base recommendation for running Analytic Services and its sample
applications is 64 MB. On UNIX platforms, the base requirement is 128 MB
of physical memory (256 MB recommended) and at least twice the MB of
physical memory for swap space (when physical memory is less than .5
GB).

Hyperion 1-7
Hyperion Essbase from 500 Feet - An Overview Fast Track for Designers
1
Client Platforms

Microprocessor Pentium or better or equivalent, for the Spreadsheet


Add-in and Application Manager

Windows Version Windows 98, Windows NT 4.0, Windows 2000,


Windows XP

Excel Version Excel 2000, Excel XP

Lotus 1-2-3 Version Lotus 1-2-3 Millennium Releases 9.1 and 9.5

Display Resolution of at least 640 x 480 (800 x 600 or more


recommended)

RAM 16 MB for the Spreadsheet Add-in and Application


Manager on Windows 95, Windows 98, Windows NT
4.0, or Windows 2000

Disk Space 24 MB for the Application Manager


17.5 MB for the Spreadsheet Add-in for
Lotus 1-2-3
16.7 MB for the Spreadsheet Add-in for MS Excel
9 MB for Analytic Services Runtime Client

Network Protocol TCP/IP or Named Pipes

API Client Development Platforms

Windows Version Windows 95 or 98 on Pentium or better or equivalent


machines
Windows NT 4.0 on Pentium or better or equivalent
machines
Windows 2000 on Pentium or better or equivalent
machines
Windows XP on Pentium or better or equivalent
machines

Merant Version Merant 4.0, except AIX which still uses Merant 3.6

AIX Version 4.3.3 or higher on RS 6000 PowerPC machines


AIX 5L for OLAP Server

HP-UX Version 11 and 11i on PA-RISC machines

Solaris Version 2.7 and 2.8 on Sun SPARC or ULTRASPARC


machines

1-8 Hyperion
Fast Track for Designers Hyperion Essbase From 500 Feet - An Overview
1
RAM Same as for server platforms

Disk Space 15 MB for 32-bit Analytic Services API on Windows


NT, Windows 95, Windows 98 or Windows 2000 on
Pentium
4 MB for Windows NT on DEC Alpha
5 MB for AIX
6 MB for HP-UX
6 MB for Solaris

Windows Server Requirements

The Essbase OLAP server and Personal Essbase OLAP server for
Windows platforms has specific requirements. This table describes these
requirements.

Component Requirements

Microprocessor Pentium or later

RAM 64 MB

Windows version Windows NT 4.0, Windows 2000, Windows XP on


for Essbase OLAP Pentium
server

Windows version Windows 95 B, Windows 98, Windows NT 4.0,


for Personal Windows 2000, Windows XP on Pentium
Essbase OLAP
server

Disk space Approximately 35-50 MB for the server software and


the sample applications

Network protocol Named Pipes or TCP/IP

The base recommendation for running Analytic Services and its sample
applications is 64 MB. Start with this amount, and then allocate additional
memory per the following table to accommodate your Analytic Services
application.

Hyperion 1-9
Hyperion Essbase from 500 Feet - An Overview Fast Track for Designers
1
About Multidimensionality
A multidimensional database is an extended form of a two-dimensional
data array, such as a spreadsheet, generalized to encompass many
dimensions.

What Users Really Want

Users want a database that makes it easy to:

Analyze information from different perspectives


Roll hierarchies any way
Get an answer fast to the two hot questions everyone's always
asking:
• Where did that number come from?
• Why did that number change?

This is how a
multidimensional database is
organized: It has dimensions
and rollup hierarchies with
each dimension.

1-10 Hyperion
Fast Track for Designers Hyperion Essbase From 500 Feet - An Overview
1
Importance of Multidimensionality

You can use multidimensionality to:

Analyze the same business information from different perspectives.


For example, from different dimensional points of view.
Let different users easily analyze the things they want to see in a
large database, knowing that they are all working from the same
source data.
Allow data storage and analysis to occur at different levels of detail.
Set the foundation for drill down.
Conceptualize the way analysts have been thinking for decades.

The four basic components of the Analytic Services outline are as follows:

Outline Interface Facilitates the organization of data in hierarchies and


dimensions that are easy to visualize and design.
Load Rules Facilitates loading and maintaining dimension
members; organizes data from multiple, disparate
information sources.
Calc Scripts Facilitates “top down” calculation capabilities across
dimensions - lots of calculating with only a few lines of
code.
Spreadsheet Add-in Facilitates standard reporting and ad hoc reporting
with a drill down through dimensional hierarchies.

The Production Environment


The Analytic Services production environment is comprised of:

Outlines
Load rules
Calc scripts
Reporting

Outline Setup and Maintenance

Analytic Services makes it easy in a production environment to update


and maintain the database structure as reflected in the outline.
Dimensions may have hundreds or even thousands of members where:

New members may appear unexpectedly in data feeds to Analytic


Services
There is a complex rollup hierarchy where reporting and rollups
always change and need updating
Identification of members is variable between systems

Hyperion 1-11
Hyperion Essbase from 500 Feet - An Overview Fast Track for Designers
1
Using load rules, Analytic Services provides complete facilities for loading
and maintaining outline members where conditions are changing with
automated processes.

The outline is your view


of the database
structure. You
automatically maintain
the outline using load
rules.

Load Rules

Analytic Services uses load rules to make it easy to load data from
multiple and disparate information sources. Data may be loaded from a
variety of sources including the general ledger, order systems and
relational databases. Load rules for data interpret the format of source
data by:

Identifying incoming information by order of columns to the outline


dimensions
Parsing, concatenating, replacing names, or making any other type
of adjustment to make source identifiers conform to outline naming
conventions
Adding or stripping headers, ignoring columns, white space and so
on to deal with format aberrations

1-12 Hyperion
Fast Track for Designers Hyperion Essbase From 500 Feet - An Overview
1
Changing scale, sign and preforming many, many more cleanup jobs

Text or .XLS file with


data to be loaded

Load rule to be applied to


the data files to deal with
format and naming
anomalies

Calc Scripts

Data always needs some kind of calculations ranging from simple rollups
to complex allocations. Calculating is easy to do in the Analytic Services
environment. You can:

Calculate by consolidating values up an outline structure where the


rollup math is specified
Write formulas that compute top down calcs across all dimensions
Compute relationship values between members - for example ratios,
percentages, variances and so on
Compute values that combine information from different
dimensions, for example mo 1 actual + mo 2 actual + mo 3 forecast
Use the most common Boolean, conditional and financial functions

Hyperion 1-13
Hyperion Essbase from 500 Feet - An Overview Fast Track for Designers
1
You can specify calculations to occur during a batch process, or have
specific members calculated on-the-fly when requested by users.

Reporting with the Spreadsheet Add-In

Analytic Services provides a variety of reporting environments including


spreadsheets, Hyperion Analyzer™, Crystal Reports and custom front
ends developed using the Application Programmers Interface (API). The
most common is the spreadsheet where Microsoft Excel and Lotus 1-2-3
are supported. Reporting environment capabilities include:

Setting security access by user down to the cell level


Double-click “drill down” through levels in a hierarchy
Pivoting data sets between row and column format
Integrating spreadsheet formats and formulas with Analytic
Services data
Sending data from the spreadsheet back to Analytic Services
Integrating reporting with linked objects - such as cell notes, links to
other databases and other application files

1-14 Hyperion
Fast Track for Designers Hyperion Essbase From 500 Feet - An Overview
1

Information flows
into Microsoft Excel
from Analytic
Services based on
outline related
labels on the
spreadsheet.

It’s starting to
make sense!

Hyperion 1-15
Hyperion Essbase from 500 Feet - An Overview Fast Track for Designers
1
Check Your Understanding

1) What is OLAP? What is it used for?

2) What is multidimensionality?

3) List two differences between a relational database model and a


multidimensional model.

4) Name three different applications for which you can use Analytic
Services.

1-16 Hyperion
Fast Track for Designers Hyperion Essbase From 500 Feet - An Overview
1

Hyperion 1-17
Hyperion Essbase from 500 Feet - An Overview Fast Track for Designers
1
Check Your Understanding - Solutions

1) What is OLAP? What is it used for?

OLAP stands for Online Analytical Processing. It is used to


consolidate, analyze and report massive amounts of information
from detailed input data. In contrast to OLTP systems where the
focus is on handling transactions, the focus of OLAP systems is on
analyses and is designed to give fast and flexible reporting.

2) What is multidimensionality?

Multidimensionality is the concept of storing data in a cube in which


all attributes of the data are accessible at the same time from the same
cube. In relational terms, the multidimensional concept can be
thought of as data that is always indexed along all of the attribute
tables at once.

3) List two differences between a relational database model and a


multidimensional model.

Relational database models require SQL reporting tools;


multidimensional databases do not.

Relational databases store metadata repeatedly; multidimensional


databases do not.

Relational databases do not allow ad hoc reporting and analysis;


multidimensional databases do.

4) Name three different applications for which you can use Analytic
Services.

Planning, budgeting and forecasting, financial consolidations, and


executive information systems.

1-18 Hyperion
2
Outline Mechanics

Chapter Objectives
Upon completion of this chapter, you will be able to:

• Describe Application Manager organization


• Create applications and databases
• Create and move members
• Understand the language of members and hierarchies
• Define member attributes
• Use aliases
• Specify consolidation operators
• Understand storage types
• Use shared members
• Understand formulas with outline members
• Understand user defined attributes
• Describe attribute dimensions
Outline Mechanics Fast Track for Designers
2
Setting the Stage
You have to walk before you can run. This chapter introduces you to the
basics of outline mechanics. It covers dimensions and hierarchies, creating
and moving members, setting member properties and lots more. The
following illustration shows an example of an outline.

Dive
rightDive
in!
right in!

Application Manager Organization


The Application Manager software is installed on a client computer. The
interface is identical to the Server desktop. A user can create and maintain
Analytic Services objects on the client machine without being connected to
the server.

To open the client desktop:

• Double-click Client.

This is the client


desktop where
you may create
and maintain
Analytic
Services objects
but not test
them.

2-2 Hyperion
Fast Track for Designers Outline Mechanics
2
Analytic Services objects are represented by four object buttons on the
desktop interface:

Outlines A graphical representation of your


database dimensions and hierarchies. The
file type is .OTL.

Calc Scripts A textual language for creating instructions


or code for the Analytic Services calculator.
The file type is .CSC.

Report Scripts A textual language for creating printed


report outputs or electronic file extracts.
The file type is .REP.

Load Rules Interpret outline and data source files for


loading into Analytic Services. The file type
is .RUL.

✍ Objects can be created and modified on the client; however, objects


cannot be tested on the Client if the test involves using data that
must be stored or calculated. Load rules can be created for and
tested for loading members, with no data associated with them, to
the outline.

Logging On to the Server

While Application Manager is installed on a client computer, you


generally connect to a server to create and maintain Analytic Services
objects.

To connect to the server (from the Application Manager


Desktop):

1) Select Server / Connect.

2) Select a Server.

3) Type your Username and Password.

4) Click OK.

Hyperion 2-3
Outline Mechanics Fast Track for Designers
2
Using the Server Desktop

The Server Desktop appears to be identical to the Client Desktop;


however, there are critical differences. For example, you can test objects on
the server using data. You cannot test with data on the client.

This is the server


desktop accessed by
logging on from a client
machine. This is where
the action is for working
with real data.

There is also significant additional server functionality including:

Access to the Application menu for viewing application related


information and changing application level settings
Access to the Database menu for viewing database level information,
changing database settings, and accessing partitioning

The Application Menu:


You control application
level settings plus
maintenance functions
such as log file, copy,
rename and delete for
application.

The Database Menu:


You control database
level settings plus
maintenance functions
such as copy, rename,
delete, load and clear for
the selected database
within an application.

✍ Most of the time as a developer, you should be working connected to


the server.

2-4 Hyperion
Fast Track for Designers Outline Mechanics
2
Creating Applications And Databases
The Application Umbrella

You create an application on the server. Each application can incorporate


one or more databases in it. When creating a database, you should
consider:

A database within an application may have the same or a different


name as the application to which it belongs.
A database has only one outline associated with it:
• The outline has the same name as the database.
• The outline is a pictorial view of your database structure.
Typically, a database has multiple, other objects associated with it,
including calc scripts, reports scripts and load rules.

You create a new


application from the
File / New menu.

Databases and their


corresponding
outline have the
same name.

One-To-One Correlation

The conventional advice is to create only one database per application. For
example, application to database is a one to one relationship.

If you have trouble with one database, then other databases are not
affected because they are in a different application. With only one
database for each application, the application log (which writes out
information about the databases included in it) is easier to read.

Hyperion 2-5
Outline Mechanics Fast Track for Designers
2

To access the application log (from the Application


Manager desktop):

• Select Application / View Event Log.

The event log keeps


track of all database
activity launched by
users, developers and
batch processes.

Outline Elements
An outline has multiple dimensions within it reflecting such database
elements as time frame, scenarios, accounts and products. The first
member under the database member defines a dimension. You may have
as many dimensions as you want; however, as a rule:

Most Analytic Services databases have six to eight dimensions


Four or five dimensions is few
Ten or eleven dimensions is on the high side

This database has five dimensions. Calculation


times generally increase geometrically when you
add more dimensions.

2-6 Hyperion
Fast Track for Designers Outline Mechanics
2
Databases with few dimensions generally calculate quickly. Databases
with many dimensions incorporating many members and complex
hierarchies generally take a long time to calculate and have large storage
requirements.

Dimension Hierarchies

Each dimension has a hierarchy of members within it. The hierarchy


reflects many different elements within the database:

The member names (or labels) that define possible data intersections
The consolidation path or rollup of lower to higher level members
The drill-down path for users to navigate through the data

Hierarchies within
dimensions reflect
both consolidation
levels and drill down
paths for reporting.

Dimensions may have only a few or a lot of members. It is not uncommon


for hierarchies to contain thousands of members with as many as twelve
levels in the principal rollup path. However, the Time and Scenario
dimensions typically do not have many members nor complex hierarchies.
Hierarchies within the Accounts (sometimes called Measures) dimension
often reflect a calculation model that incorporates units, rates and dollars.

Hyperion 2-7
Outline Mechanics Fast Track for Designers
2
Creating and Moving Members
Creating and moving members in the outline is the way you define
Analytic Services database structures and relationships between data
elements.

To create a new member:

1) Select an existing member.

2) Select Edit / Add Sibling or Add Child.

To create a new member,


select Add Child or Add
Sibling from the Edit
menu, or select the Add
tools from the toolbar.

3) Type in the name of the new member.

4) Press [Enter].

5) Click OK.

✍ To edit a member's name, right-click the member to create an


editable field.

2-8 Hyperion
Fast Track for Designers Outline Mechanics
2

To move a member from one position to another:

• Select a member and select Edit / Cut; select another member and
select Edit / Paste Child or Edit / Paste Sibling.

✍ You can also drag a member to a new position. With click and drag,
you can position the moved member as a child or sibling in relation
to the new member location.

Other moving rules:

Moving a member by any method also moves all of the member's


descendants.
Deleting a member also deletes all of the member's descendants.
Moving a member and its descendants prompts a restructure
operation when the file is saved. Restructuring maintains the
integrity of underlying data storage structures.

Click and drag to move a


member and its
descendants.

Sounds easy
enough to me.

Hyperion 2-9
Outline Mechanics Fast Track for Designers
2
Language of Members And Hierarchies
To work with Analytic Services, you need to understand its languages.
There are three: generations, levels and genealogy. Analytic Services lingo
facilitates:

Talking amongst one another when designing the outline (you need
a language to communicate issues and instructions)
Understanding the syntax of other Analytic Services objects and
functionality where special language is used, for example:
• Calc script syntax for writing formulas: @ANCESTVAL
• Load rules methods for maintaining outline members: Parent/
Child
• Report script syntax for writing report scripts: <idescendants
member name

Generations

Generations count top to bottom: Gen 1, Gen 2, Gen 3, and so on.

The database at the top is Generation 0


Each dimension name is Generation 1

Generation counting is important for outline maintenance using the


Generation load rule method and calculations that reference members at
specific generations.

Generation 0

Generation 1

Generation 2

Generation 3

2-10 Hyperion
Fast Track for Designers Outline Mechanics
2
Levels

Levels count bottom to top: Level 0, Level 1, Level 2, and so on.

The lowest point in a hierarchy is level 0. Level 0 members are also


called leaf nodes.
Level 0 is typically, though not necessarily, the level where data is
loaded.
Level counting is important for managing data input, outline
maintenance using the level load rule method and calculations that
reference members at specific levels.

Total Territories, the


dimension name, is
level 2.

ECAM FRANCE is
at level 0, the lowest
level in the
hierarchy.

Hyperion 2-11
Outline Mechanics Fast Track for Designers
2
Genealogy

Genealogy relationships in a hierarchy are defined as follows:

Member A Box at any level in the hierarchy including dimension names

Leaf Node Any member at Level 0 (like leaves on a tree)

Parent A member in the hierarchy immediately above another member

Child A member in the hierarchy immediately below another member

Siblings Members with the same parent

Ancestor All members in the hierarchy directly above another member

Descendants All members in the hierarchy below another member

Europe is a
parent to ECAM
Nordic, Italy, UK,
ECAM Nordic, France and
Italy, UK, France Central Europe.
and Central
Europe are ECAM France is a
Siblings to each Child of the
other. Parent Europe

Parent/Child/Sibling language is important for working with:

Outlines For identifying where members are in the hierarchy

Load Rules For using the Parent/Child load method

Calc Scripts For focusing calculation of specific member relationship

I think he meant all


children, not all
descendants.

2-12 Hyperion
Fast Track for Designers Outline Mechanics
2
Defining Member Settings
You can specify a broad variety of settings for each member which define
the member's storage characteristics and other rollup and reporting
behaviors. The important properties for members that you can define
include:

Aliases Alternate names or descriptions that can be used for


reporting, in calc scripts, and as data load references.

Consolidation Control the math of a member in the rollup process


Operators relative to its parent.

Data Storage Settings that specify if and how a member’s data is to


be stored and/or calculated.

Attribute Dynamic dimension which are associated with some


Dimensions sparse base dimensions. Each member in the base
dimension can be assigned one of the attributes from
the attribute dimension.

User Defined Member tags used for specialized calculating or


Attributes (UDAs) reporting processes.

Time Balance Flags for specifying the behavior of specific accounts


as they are rolled up across the Time dimension.

Expense Reporting Flags used to control the better/worse sign


conventions for variance calculations

To set or change a member's properties:

• Select Edit / Properties or select a member and press [Enter].

The Member
Properties dialog box
with its associated tabs
is where you manage a
range of member
storage, calculating
and other behaviors.

Hyperion 2-13
Outline Mechanics Fast Track for Designers
2
Using Aliases
Aliases are alternate names that can be used in place of the main member
name. You set up or change aliases in the Member Properties dialog box.
Aliases are commonly used for storing descriptions (for example, account
or cost center names), and for providing alternate naming conventions
where organization sectors use different terminology or foreign language.
Aliases can be used, just like the member names, for:

Spreadsheet reporting
Calc script formula references
Data loading references in data source files
Report script references

Use Aliases to set up descriptions or


alternate naming conventions for
reporting on members.

You can create and maintain multiple Alias Tables from the Outline/
Aliases menu and related submenus. As many as ten Alias Tables may be
created and accessed for reporting purposes.

Companies use alias tables to incorporate different naming conventions


between functional departments and to capture foreign language
differences.

Multiple alias tables


may be set up to
capture naming
differences.

Est-ce que
Essbase parle
Francais?

2-14 Hyperion
Fast Track for Designers Outline Mechanics
2
Specifying Consolidation Operators
How a member rolls up in a hierarchy depends on the mathematical
operation called Consolidation Operator that is assigned to the member.
Consolidation operators are also called unary operators in Analytic
Services practice and documentation.

Consolidation Operators are set for members from the Member Properties
dialog. Consolidators include:

Add, subtract, multiply and divide


%- which computes a percentage
~ (tilde)- which causes the member to be ignored during rollup

Add(+) is the default


consolidation
operator for new
members.

Use an ignore tilde (~) in situations where


you want a member to appear in a drill down
path, but you do not want the members
added together with others during a rollup.

You use consolidation operators to specify rollup math in large business


view dimensions such as products and customers. You also use
consolidation operators for building models in the Accounts (also known
as Measures) dimension involving units, rates and dollars and complex
activity driver relationships.

Most competing products with hierarchical


consolidation allow only summing. With consolidation
operators in Analytic Services, you can create
complex modeled relationships within the rollup
structure using +,-,*,

✍ Consolidation operators cannot be set on Attribute Dimensions.

Hyperion 2-15
Outline Mechanics Fast Track for Designers
2
Understanding Storage Types
By default, new members added to an outline automatically store
associated data. Some members are created for purposes other than
storage, however. The following table describes the six storage types, set
in the Member Properties dialog box:

Store Data The default storage setting where associated data is


stored and calculated on a batch basis.

Dynamic Calc And Associated data is stored only when a calculation


Store occurs upon a user's retrieve request.

Dynamic Calc Associated data is not stored; the member is


calculated each time upon a user's retrieve request.

Never Share Used to force storage of data overriding an “implicit


shared” relationship between a parent with a single
child which Analytic Services sets up automatically.
Never share is not commonly used in most databases.

Label Only Used for members that are essentially “labels” where
no data need be stored or calculated upon.

Shared Member Used for members that “share” the data and
calculations of another main member in the outline.

Your choice of storage type for


a member has a major impact
on the size and calculation
performance of your
database.

Index Driven Types

Label Only and Shared Members are index based. Members with these
storage types, when incorporated in a dimension defined as sparse, are
actually index pointers to other members stored in the Analytic Services
page file in the form of data blocks.

Label Only members have an index pointer to the first child with an
Add (+) consolidation operator, or the first child if all children have
an Ignore (~) consolidation operator. There may be some variability
in this defined behavior in actual situations.
Shared Member members have an index pointer to the main member
whose name it bears. Shared Members generally follow the main
member in the outline they point to through the index.

2-16 Hyperion
Fast Track for Designers Outline Mechanics
2
Shared Members
Shared members are a unique design element in Analytic Services that
allow sharing of input data and calculated results between members
within a dimension.

The shared member assumes all attributes of the main member (its value,
aliases, time balance flags and so forth) except the main member's
consolidation operator.

Shared members have their own consolidation operator independent from


the main member's value they share. This facilitates building complex
models with computation dependencies between members.

This is an example
of shared members
used for building
complex models
where the same
member is used on
multiple occasions
for driving the
calculations of other
members.

✍ For shared members sharing values with an input member, the


shared member may display above or below the main member in the
outline.
For shared members sharing values with a member whose value is
computed, the shared member must display below in calculation
order of the main member in the outline. This condition causes a
warning in the outline syntax checker.

Hyperion 2-17
Outline Mechanics Fast Track for Designers
2
Shared members are the principal vehicle in Analytic Services for creating
alternate rollups for viewing source data with different rollup paths.

This is an example of shared


members used for building
alternate rollups where the
shared member is different
aggregation path from the main
members.

Formulas with Outline Members


Formulas do not have to be using a calculation script, they can be
associated with members directly in the outline.

Create a formula associated


with a member in the outline
from the Formula Editor.

2-18 Hyperion
Fast Track for Designers Outline Mechanics
2
Formulas in outlines are executed as follows:

If the data storage type for the member is Store Data, the formula is
executed in order during a CALC ALL execution or a CALC DIM on
the member's dimension.
If the data storage type for the member is Dynamic Calc or Dynamic
Calc And Store, the formulas are executed when a user retrieves
upon the member in a spreadsheet.

To create a formula for an outline member:

1) Select Edit / Formula or select the Formula Tool from the Toolbar to
open the Formula Editor dialog. This dialog is a restricted version of
the calc script interface.

2) Select dimension members and Formula/Paste function to build your


formula for the member.

3) Terminate the formula with a semicolon (;).

Formulas in Outlines Versus in Calc Scripts

The issues for how and when to use a formula in an outline versus a
formula in a calc script are complex. The following are general guidelines
to be qualified by more in depth discussion of the issues in later sections of
the course materials. Use formulas in outlines where:

The Member calculations are straightforward without complex


order of calculation dependencies.
The member requires a Two Pass Calc operation and is flagged as
such, and no other back calculation of other members is required to
be performed in a calc script after the main Calc All or Calc Dim
statement.
The member requires a Two Pass Calc operation and is flagged as
such, and otherwise the conditions are met for accomplishing a Two
For The Price Of One calculation.
The member's data storage type is Dynamic Calc or Dynamic Calc
And Store.

✍ Formulas for Dynamic Calc members cannot be executed from


within a calc script.

Hyperion 2-19
Outline Mechanics Fast Track for Designers
2
User Defined Attributes
User Defined Attributes (UDAs) are special flags for reporting and
calculations. You may assign UDAs to individual members in the outline.
Using UDAs is a way to avoid setting up additional dimensions where the
member identification information is not hierarchical.

UDAs are specific flags set up for a given dimension and can be assigned
to individual members. UDAs are entered from the User Attribute panel
for a member. UDAs may also be associated with specific members using
load rules. When working with UDAs, keep these rules in mind:

Multiple UDAs can be set up within a dimension


A given member within a dimension may be assigned one or more
UDAs, or no UDA at all
UDAs may be loaded to specific members using load rules

Set up UDAs from the User Attribute panel. You


may also load UDAs to members using load
rules.

Use UDAs for special functions in calc scripts and spreadsheet


reporting

✍ In calc scripts, booleans with IF statements and macros with


FIX statements allow focusing calculations to members with
specific UDAs (for example, IF (@ISUDA(Product, Service
Part))

2-20 Hyperion
Fast Track for Designers Outline Mechanics
2
Using Member Selection from the spreadsheet add-in, you may reference
UDAs for selecting members to display on a report.

You can select


UDAs with And/Or
conditions for
inclusion on a
report.

Think of UDAs generally as a way to group members together in a


dimension. Here are some additional examples:

In Security filters, UDAs can be used with the @UDA function to


give access to users based on a specific UDA. This has the effect of
pushing the maintenance to the outline and simplifying filter
definitions.
In Partitioning, UDAs can be used in the Area definition.
In VBA, you can define a selection so that a combo box is filled with
members having a specific UDA.

Attribute Dimensions
Attribute dimensions were introduced in version 6 and are similar to
UDAs in that they help further assign characteristics to given members in
an outline. Examples of characteristics might be product sizes or colors,
customer regions, and product package types. Unlike UDAs, attribute
dimensions appear as dynamic dimensions:

Attribute dimensions add no overhead in terms of database size.


They are dynamic dimensions with no storage requirements.
Calculation of the Attribute dimensions is deferred until they are
requested in a report. Furthermore, there is built-in functionality to
enhance dynamic calculations. By default, you can Sum, Average,
Count members, and request Minimum or Maximum values or any
combination of all of these.
Attribute dimensions are drillable so that a report can show the
specified attribute dimension across all the other dimensions in the
model. By default, attribute dimensions are not shown until
requested explicitly.
Attribute dimensions can be of different types- Text, Numeric,
Boolean, and Date. Each has some built in functionality in terms of
enhanced retrieval filtering and calculations.

Hyperion 2-21
Outline Mechanics Fast Track for Designers
2
A given member within a dimension may be assigned one or more
attributes, or no attributes at all.
Attribute dimensions may be created and loaded to specific
members using load rules.

Attribute Dimensions
look similar to normal
dimensions. Here,
Region Total is an
Attribute dimension
associated with
Customers.

Attribute Versus Standard Dimensions

Attribute dimensions are not like standard dimensions. Standard


dimensions can have multiple relationships across other dimensions; data
can be stored and viewed across every intersection of all dimensions. For
example, a color dimension which relates to a product dimension results
in the ability to store and view data such that any product can have
multiple colors associated with it.

With attribute dimensions, all relationships with its associated base


dimension are one to one. For example, a color attribute dimension can be
tied to a product dimension such that each product can have only one
color associated with it.

Attribute dimensions are dynamically calculated upon retrieval. Retrieval


performance should be tested. Standard dimensions do not affect retrieval
times (unless tagged with a dynamic storage setting).

Attribute dimension are not UDAs. Although there are many similarities,
attribute dimensions are very different. Attribute dimensions provide
much richer reporting capabilities- they can be viewed similar to ordinary
dimensions. UDAs cannot be displayed in sheets but can be filtered
against using Analytic Services Query Designer (Query Designer).

2-22 Hyperion
Fast Track for Designers Outline Mechanics
2
In some cases attributes and UDAs overlap in that both can be used much
more generally to group members from a given dimension together.
Examples of this would be in creating security filters or area definitions
for partitions. However, UDAs are more practical for these purposes
because they can be assigned to multiple levels of any dimension.

✍ Attribute dimensions do not replace shared member alternate


rollups. The use of shared members to create alternate rollups or
views on data provide end users with a different navigation
perspective than attribute dimensions. Alternate rollups do not add
overhead to retrievals.

Ground Rules

Follow these general when creating attribute dimensions.

Base dimensions must be sparse. Base dimensions are the


dimensions associated with the attribute dimension.
Attribute dimensions do not have consolidation symbols or
formulas attached to them. All calculations are done across the base
dimension.
Although attribute dimensions can have a multi-tiered hierarchy,
you must associate the level 0 members (bottom level members) of
attribute dimensions with base members.
Base dimension members associated with attribute dimensions must
be at the same level. This can be any level but it must be the same
across the base dimension.
Shared members in the base dimension should not be tagged with
attribute dimension members. Shared members automatically
inherit their respective stored member attributes.

Hyperion 2-23
Outline Mechanics Fast Track for Designers
2
Mechanics

The following is a step-by-step approach to building attribute dimensions


in the outline editor. This is the manual method; however, it can also be
done in an automated fashion using load rules. Here is a high level
overview of the steps:

1) Create a new dimension.

✍ Creating an attribute dimension is similar to building any


other dimension. You do not need to bother with adding
aliases or consolidation symbols, as these are discarded as soon
as we change the dimension type to an attribute dimension.

2) In the Member Properties window, tag the dimension as an attribute.

Create a dimension
similar to other
dimensions.

Next, go to member properties for the dimension


and select Attribute. In the drop-down box, select
the attribute dimension type.

2-24 Hyperion
Fast Track for Designers Outline Mechanics
2
3) Select an attribute type. There are four types:.

Text The default attribute dimension type. As the name implies,


these are reserved for textual descriptors of base
dimensions. Keep in mind that for reporting and calculation
purposes, the most common filters for text attribute types
are equality comparisons (for example, all products that
equal a certain size). Although you can use > or <operators,
these are compared on an alphabetical basis.

Numeric A very powerful attribute type, reserved for numeric only


member names in the attribute dimension. Numeric
attributes allow for additional reporting and calculation
functionality. You can perform all the comparison operators,
group numeric values into ranges (for example, all products
with a size between 300 and 500), and include the numeric
value in calculations using the @attributeval function.

Boolean Designed to flag base member dimensions as one of two


values. Although the default values for boolean are True or
False, you can change this to any two values. However, only
one set of boolean values is allowed per database so
whatever you set it to applies to all boolean attribute
dimensions in that model. Examples of other common
settings for booleans would be Yes/No or Male/Female.

Date Designed to flag a base member dimension with date


values. All dates must either be in mm-dd-yyyy or dd-mm-
yyyy formats. You can perform equality comparisons in
calculations or reporting. For example, all products with a
release date greater than 05-27-2000

The @attributeval
formula can be used
to extend the
functionality of
numeric attributes.

Hyperion 2-25
Outline Mechanics Fast Track for Designers
2
4) Associate the attribute dimension with an existing sparse dimension,
(called the base dimension). In the Attribute panel of the Member
Properties dialog box, select the attribute dimension from the
Available Attribute Dimensions panel and click Add.

Select the
attribute
dimension and
add it.

Double-click
the desired
attribute.

5) Now that you have defined the base dimension, tag members in the
base dimension with one of the attributes from the newly created
attribute dimension.

✍ Remember the two ground rules: Base members tagged with


attributes must be at the same level and they must be tagged
with level 0 attribute members.

2-26 Hyperion
Fast Track for Designers Outline Mechanics
2

To tag a base dimension with an attribute:

1) Select the base dimension member.

2) Select Edit / Properties.


The Member Properties window displays.

3) Select the Member Attributes tab.

4) In the Available Member Attributes section, double-click the desired


attribute.

Select the
base member
and Edit/
Properties.
Then navigate
to the desired
attribute.

Double-click
the desired
attribute.

5) Click OK.
The attributes display on the outline next to the base members.

Hyperion 2-27
Outline Mechanics Fast Track for Designers
2
After you associate attributes to members in the base dimensions the
outline would look something like the following example:

In our example,
each product is
assigned a size
attribute.

Consider the following when making changes to attributes:

Changes made to attribute names in the attribute dimension are


automatically applied to the base dimension member(s).
To delete an attribute member, select the member and Edit/Cut.
Any base dimension members with the deleted attribute loses that
association.
Changing the attribute type is straight forward but may affect
existing reports or calculations.
Move attribute members as you would any other regular member.
Moving attribute dimension members should have no effect on base
dimension members.
Adding members to attribute dimensions is the same as adding a
regular member. You most often follow this by associating members
with their respective base dimension members.
To change any base dimension member attribute select the
Attributes panel of the member properties for that member and
select the desired attribute from the Available Attribute Dimensions
panel.

Setting Global Attribute Properties

The last step is to set additional attribute properties. These are global
settings and apply to all attribute dimensions in the database. For this
reason, they are set in Settings/Attribute Member Names.

2-28 Hyperion
Fast Track for Designers Outline Mechanics
2
Member Name Format

Serves to change how attribute member names are referenced in reports.


The values can be set to Parent, Grandparent and Parent, Ancestor, and
Dimension. In each case they serve to concatenate the actual attribute
member name with one of the values. The concatenation can be separated
with _, ^ or | characters and can be organized so that the values either are
added as prefixes or suffixes. The following is an example:

This is a report with


attribute names format
set to None. Sizes
appear as they are in the
attribute dimension.

Now, by changing the


attribute name format to
use the Parent, look what
happens to the report.

Hyperion 2-29
Outline Mechanics Fast Track for Designers
2
Attribute Calculations

By default, dynamic attribute calculations are available through the


Attribute Calculations dimension. This dimension behaves like other
attribute dimensions in that it is not automatically displayed in a report
until you explicitly ask for it. Drilling on the Attribute Calculations
dimension results in the display of the following children: Sum, Count,
Min, Max, and Avg in that order. The Attribute Calculations member
behaves like a label only and displays the Sum. In this dialog box, you can
change the calculation names such as changing Avg to Average. To
understand the different calculations, look at the following report:

Sum adds up all the products


with the size attribute. Attribute This is the smallest or
calculations member is Sum minimum product value
because it acts like a Label for products with a size
Only member. 300 attribute.

Count sums up the number of products with Average rolls-up product averages.
a certain attribute that have data values. For This is the average of all products with
example, there are two products with Size=500.
Size=300 attributes that have values.

Boolean and Date

You can change the boolean from the default of True/False to some other
value such as Yes/No. In addition, you can change the date format for
members from the default of mm-dd-yyyy to dd-mm-yyyy. This means
that all attribute members must be in exactly the format chosen.

2-30 Hyperion
Fast Track for Designers Outline Mechanics
2
Numeric Ranges

This applies to numeric attributes only. A numeric attribute can represent


a single value or a range of values. Ranges can be used for report filtering
and calculations. The default setting is Tops of Ranges. In our size
dimension, this would result in values between 1-300 being associated
with attribute member 300, attribute values between 300-500 would fall
under attribute member 500, and values between 500-1000 would be
under the 1000 attribute member. If you change the option selection to
Bottoms of Ranges, values less than 500 would fall under the 300 attribute,
values between 500-1000 would have the 500 attribute, and any values
greater than 1000 would fall under the 1000 attribute member.

Hyperion 2-31
Outline Mechanics Fast Track for Designers
2
Exercise: Creating a Database
In this exercise, you create the Bigcorp application and Sales database.

1) From the Application Manager desktop, select File / New / Application.

2) In the Application Name section, type Bigcorp.

3) Select a Location.

4) Select a Server.

5) Click OK.
The Bigcorp application loads.

6) From the Application Manager desktop, select File / New / Database.

7) In the Database name section, type Sales.

8) Select a Database Type.

9) Click OK.
The database loads.

2-32 Hyperion
Fast Track for Designers Outline Mechanics
2
Exercise: Building a Time Dimension
In this exercise, you build the time dimension and add dimension
members. This exercise assumes that you are working in the Outline
Editor.

Creating outline members:

1) Select Database:Sales.

2) Select Edit / Add Child.

3) In the text entry box, enter Year Tot.

4) Press [Enter].

5) Click Yes.

6) Press [Esc].

7) Select Year Tot.

8) Select Edit / Add Child.

9) Type Quarter 1.

10) Press [Enter].

11) Create additional sibling members to Quarter 1 named Quarter 2,


Quarter 3 and Quarter 4.

12) Create child members to populate the months for each quarter Jan
through Dec.

Hyperion 2-33
Outline Mechanics Fast Track for Designers
2
Changing outline member properties:

1) Select Quarter 1 and select Edit / Properties.

2) Add an alias called Qtr 1.

3) Add similar aliases for the remaining quarters. Add aliases to the
months where Jan's alias is January, Feb's alias is February and so on.

Creating a dynamic time series member:

1) Select Year Tot and press [Enter].


The Dimension Properties window displays.

2) In the Dimension Type section, select Time.

3) Click OK.

2-34 Hyperion
Fast Track for Designers Outline Mechanics
2
4) Select Outline / Dynamic Time Series.

5) From the DTS Member drop-down list, select Y-T-D.

6) Select Enable This DTS Member.

7) Confirm the Generation setting to be 1 (representing the generation


where the Y-T-D accumulation should occur).

8) In the Alias entry box, enter YTD, and click Set.

9) Click OK.

10) Repeat this procedure for Q-T-D, setting the generation at 2 with an
alias of QTD.

Hyperion 2-35
Outline Mechanics Fast Track for Designers
2
Check Your Understanding

1) Match the terms on the left with the definition on the right.

Term Definition

Member _____ A A member in the hierarchy immediately


below another member.

Leaf Node _____ B A member in the hierarchy immediately


above another member.

Parent _____ C Any member at Level 0 (like leaves on a


tree).

Child _____ D Flags for specifying the behavior of


specific accounts as they are rolled up
across the Time dimension.

Siblings _____ E Control the math of a member in the


rollup process relative to its parent.

Ancestor _____ F Settings that specify if and how a


member’s data is to be stored and / or
calculated.

Aliases _____ G The default storage setting where


associated data is stored and calculated
on a batch basis.

Consolidation _____ H Used for members that are essentially


Operators labels where no data need be stored or
calculated upon.

Data Storage _____ I Used to force storage of data overriding


an implicit shared relationship between
a parent with a single child which
Analytic Services sets up automatically.
Never share is not commonly used in
most databases.

Attribute _____ J Dynamic dimension which are


Dimensions associated with some sparse base
dimensions. Each member in the base
dimension can be assigned one of the
attributes from the attribute dimension.

User Defined _____ K Member tags used for specialized


Attributes calculating or reporting processes.
(UDAs)

2-36 Hyperion
Fast Track for Designers Outline Mechanics
2
Term Definition

Time Balance _____ L Alternate names or descriptions that can


be used for reporting, in calc scripts, and
as data load references.

Expense _____ M Members with the same parent.


Reporting

Store Data _____ N Any box at any level in the hierarchy


including dimension names.

Dynamic Calc _____ O Associated data is stored only when a


And Store calculation occurs upon a user's retrieve
request.

Dynamic Calc _____ P Used for members that share the data
and calculations of another main
member in the outline.

Never Share _____ Q Flags used to control the better / worse


sign conventions for variance
calculations.

Label Only _____ R All members in the hierarchy directly


above another member.

Shared Member _____ S Associated data is not stored; the


member is calculated each time upon a
user's retrieve request.

2) List and describe the four Attribute dimension types.

Hyperion 2-37
Outline Mechanics Fast Track for Designers
2
Check Your Understanding - Solutions

1) Match the terms on the left with the definition on the right.

Term Definition

Member N A A member in the hierarchy immediately


below another member.

Leaf Node C B A member in the hierarchy immediately


above another member.

Parent B C Any member at Level 0 (like leaves on a


tree).

Child A D Flags for specifying the behavior of


specific accounts as they are rolled up
across the Time dimension.

Siblings M E Control the math of a member in the


rollup process relative to its parent.

Ancestor R F Settings that specify if and how a


member’s data is to be stored and / or
calculated.

Aliases L G The default storage setting where


associated data is stored and calculated
on a batch basis.

Consolidation E H Used for members that are essentially


Operators labels where no data need be stored or
calculated upon.

Data Storage F I Used to force storage of data overriding


an implicit shared relationship between
a parent with a single child which
Analytic Services sets up automatically.
Never share is not commonly used in
most databases.

Attribute J J Dynamic dimension which are


Dimensions associated with some sparse base
dimensions. Each member in the base
dimension can be assigned one of the
attributes from the attribute dimension.

User Defined K K Member tags used for specialized


Attributes calculating or reporting processes.
(UDAs)

2-38 Hyperion
Fast Track for Designers Outline Mechanics
2
Term Definition

Time Balance D L Alternate names or descriptions that can


be used for reporting, in calc scripts, and
as data load references.

Expense Q M Members with the same parent.


Reporting

Store Data G N Any box at any level in the hierarchy


including dimension names.

Dynamic Calc O O Associated data is stored only when a


And Store calculation occurs upon a user's retrieve
request.

Dynamic Calc S P Used for members that share the data


and calculations of another main
member in the outline.

Never Share I Q Flags used to control the better / worse


sign conventions for variance
calculations

Label Only H R All members in the hierarchy directly


above another member.

Shared Member P S Associated data is not stored; the


member is calculated each time upon a
user's retrieve request.

2) List and describe the four Attribute dimension types.

Text The default attribute dimension type. As the name implies,


these are reserved for textual descriptors of base
dimensions. Keep in mind that for reporting and calculation
purposes, the most common filters for text attribute types
are equality comparisons, (for example, all products that
equal a certain size). Although you can use > or < operators,
these are compared on an alphabetical basis.

Numeric A very powerful attribute type, reserved for numeric only


member names in the attribute dimension. Numeric
attributes allow for additional reporting and calculation
functionality. You can perform all the comparison operators,
group numeric values into ranges (for example, all products
with a size between 300 and 500), and include the numeric
value in calculations using the @attributeval function.

Hyperion 2-39
Outline Mechanics Fast Track for Designers
2
Boolean Designed to flag base member dimensions as one of two
values. Although the default values for boolean are True or
False, you can change this to any two values. However, only
one set of boolean values is allowed per database so
whatever you set it to applies to all boolean attribute
dimensions in that model. Examples of other common
settings for booleans would be Yes/No or Male/Female.

Date Designed to flag a base member dimension with date


values. All dates must either be in mm-dd-yyyy or dd-mm-
yyyy formats. You can perform equality comparisons in
calculations or reporting. For example, all products with a
release date greater than 05-27-2000.

2-40 Hyperion
3
Outline Design Alternatives

Upon completion of this chapter, you will be able to:

• Understand Time, Scenario and Accounts Data Descriptor


dimensions
• Describe Business View dimensions
• Use Drill Down paths and reporting
Outline Design Alternatives Fast Track for Designers
3
Setting the Stage
This section introduces you to two dimension types: data descriptor and
business view dimensions. In detail, the materials explore outline design
alternatives for the three descriptor dimensions-time, scenarios and
accounts-plus materials that return us to the root objective of Analytic
Services -to provide drill down paths and reporting that makes sense for
our users.

Harry contemplates his model.

Data Descriptor Dimensions


With few exceptions, Analytic Services databases contain some kind of
time frame. The time frame can be defined to any level you choose.

Financial applications in Analytic Services tend to track month, quarter


and year total financial impacts. Order and production tracking databases
often define time frames to the daily level (flash order reporting and shop
floor production analysis).

3-2 Hyperion
Fast Track for Designers Outline Design Alternatives
3
Design Approaches

The Time dimension generally does not include many members, nor are
the design choices complex. There are two standard approaches to the
Time design:

Generic model
Fiscal year crossover model

Generic Model

In the Generic model months, quarters and years have no fiscal


identification. Fiscal ID is incorporated as a separate dimension or in the
Scenario dimension.

The Generic Model for a


Time design: months and
quarters do not include a
fiscal year ID.

The generic model is the default design to use if other analysis or


calculation requirements do not force the crossover model.

✍ Cross-tab reporting (where different time elements display as row


and columns on a report) require the generic model.

Hyperion 3-3
Outline Design Alternatives Fast Track for Designers
3
Fiscal Year Crossover Model

In the fiscal year crossover model months, quarters and years have the
fiscal year identification hardwired into the member names. The crossover
model is typically used when analysis or calculation require a continuum
for the timeframe.

The fiscal year


crossover model,
where the fiscal year ID
is hardwired into
member names. Time
is a continuum.

✍ Range-related calculation operations- for example, using @PRIOR,


@NEXT and @AVGRANGE- usually require the fiscal year crossover
model for correct calculations between fiscal years.
History to date accumulations- especially using Dynamic Time
Series (DTS) calculations- require the fiscal year crossover model.

Time

The most common special calculations in the Time dimension are period-
to-date calculations. Earlier versions of Analytic Services introduced
Dynamic Time Series calculations to automatically perform such
calculations without monthly maintenance.

Use built-in Dynamic Time Series calculations for period-to-date


calculations such as history, year, quarter and month-to-date
accumulations:

Dynamic time series calculations are calculations on-the-fly initiated


by a spreadsheet request. Values are not stored.
Dynamic time series calculations require the time related dimension
to be tagged Time.

3-4 Hyperion
Fast Track for Designers Outline Design Alternatives
3

To set up dynamic time series calculations:

• select Outline / Dynamic Time Series to set up time series


calculations. The setup is based on named symmetrical
generations in the Time dimension.

This is the interface for


creating dynamic time series
calculations in Analytic
Services.

Setting the Time Dimension Type

The dimension which incorporates your time frame is usually tagged as


the Time type dimension. Tag the first member in your time dimension in
the Member Specification dialog with the Dimension Type = Time.

Set the dimension type for


Time on the first member
in the dimension from the
Member Specification
dialogue.

Following are the special benefits you receive when you specify where
time is via the Time tag:

Time Balance accounting for identified members in the Accounts


dimension is enabled. Time balance accounting affects the
aggregation sequence of flagged members in the Accounts
dimension (for example, balance sheet accounts- across the Time
dimension).
Range operators used in calc scripts operate by default over the
tagged time dimension periods (for example, months in a series).
Range operators include such functions as @PRIOR, @NEXT, @
AVGRANGE.
When the Time dimension is flagged and meeting certain other
conditions, two pass calculations can be calculated with only one
pass on data blocks.
DTS calculations are enabled.

Hyperion 3-5
Outline Design Alternatives Fast Track for Designers
3
Scenario

Scenario is the sleeper dimension. It usually has few members and a


minimum hierarchy, but its impact on design and calculation issues is
substantial.

For financial applications, scenario is the dimension where you define the
different data sets that underlie the planning and control process. For
example:

Actuals - monthly downloads from the general ledger of actual


financial results.
Budget - data for setting standards derived from the annual
planning process.
Forecast - monthly or quarterly updated estimates of financial
performance.

Scenarios typically track


data sets and may include
versions of such sets.

So many scenarios so little time!

3-6 Hyperion
Fast Track for Designers Outline Design Alternatives
3
Process Driven Scenarios

How scenarios are defined is often driven by underlying processes.

Scenarios are often used as a simple method for tracking sequential


versions of data sets. For example:

Scenario versions Budget V.1, Budget V.2 and Budget V.3 house
successive versions of the budget. Each new version begins with a
copy of the prior one created using the DATACOPY calc script
command.

Scenarios are sometimes used to track steps in the internal buildup of a


data set with contributions from different functional areas of the company.
For example:

Scenario controlled steps in the process might be Field Sales


Forecast, Marketing Adjusted Forecast and Financial Adjusted
Forecast where each successive forecast version incorporates the
inputs of a new functional group building from the prior one.

Examples of scenarios
that track the buildup of a
forecast with input from
different functional areas.

Scenarios are often used as a simple method for tracking what if


alternatives. For example:

Scenario versions High Estimate, Best Estimate and Low Estimate


represent different assumption sets about revenue and/or costs
sharing the same underlying data sources and modeling structures.

Scenarios for Variance Analysis

Scenarios is where you do comparisons and compute the most important


variances between data sets:

With multiple data sets incorporated under one database umbrella, it is


easy to do the variance analysis:

The comparisons are valid ones because each scenario uses the same
account, cost center, product and similar structures incorporated in
other dimensions.
The variance calculations are quick and efficient using the Analytic
Services calculator capabilities.

Hyperion 3-7
Outline Design Alternatives Fast Track for Designers
3
Using the @VAR and @VARPER calculation functions with Expense
Reporting flags on accounts, better/worse sign conventions are
easily controlled.

Compute variances
between scenario
members using the @VAR
calc function to control the
B/(W) sign convention.

Scenarios Drive Modeling and Calc Requirements

Scenarios are a major driver of modeling and calculation requirements in


the Accounts dimension. In financial applications, data from scenario to
scenario typically differs with respect to the form of input and
calculations. For budget and forecast data, inputs are typically units and
rates- such as units shipped and selling prices- and the dollars are forward
calculated (units * rates = dollars). For actual data, the calculations and
analysis are typically the reverse- inputs are dollars from the general
ledger system and units from the order processing or other systems. Rates
are back calculated by the formula rate = dollars/units.

Data from scenario to scenario typically differs with respect to the level of
input and calculations. Budget data often have:

Lots of product detail (for example standard cost by SKU)


Less customer detail (for example, only top ten customers budgeted)
Lots of overhead detail (for example, salaries by person)

Conversely, actual data often have:

Lots of product cost detail (standard cost by SKU)


Lots of revenue detail by customer (ship to from invoices)
Little overhead detail (all salaries are lumped)

✍ Because of the form and level of inputs and calculations between


scenarios, it is often the case that different scenarios require different
data load procedures (for example, different load rules) and
different calc scripts.

3-8 Hyperion
Fast Track for Designers Outline Design Alternatives
3
Accounts

Accounts (often called Measures) is generally the most complex of the


data descriptor dimensions. This is where your business model resides
and where the most complicated and potentially time consuming
calculations occur.

For financial applications, Accounts is where the main calculations occur.


Therefore, you find the following typical structures in this dimension:

Natural class accounts that define the Profit and Loss structure or
subsets of it such as accounts that build up to Gross Margin.
Balance and cash flow accounts and associated metrics such as
average assets employed and return on net assets.
Unit, rate and dollar calculations- especially where such calculations
involved activity driver relationships between members in the
dimension.
Metrics and analysis calculations of all types such as: Profit%,
Margin%, Sales Per Employee, Cost Per Transaction, % Mix, %
Commissions and so on.

Calc script example


where members of
the accounts
dimension are being
calculated.

Maximize with Unary Operators

Maximize as much as possible the use of unary calcs (consolidation


operators) for model building in the Accounts dimension. The underlying
design principal: use unary calcs where possible and minimize the use of
formulas in the outline or in calc scripts.

Unary calculations execute faster than formulas in the outline and


formulas in calc scripts.
Unary calc construction provides drill down visibility in the
accounts hierarchy to see where a number comes from. Formulas
obscure visibility into the calculations.

Hyperion 3-9
Outline Design Alternatives Fast Track for Designers
3
Do use formulas (either in the outline or in a calc script) where you cannot
do the calculation with unary operators (when incorporating an if
condition or where a unary operator drill down path would confuse
users).

Use unary
operators and
shared
members in the
accounts
dimension for
building
complex
models.

Setting the Accounts Dimension Type

If you tag your accounts dimension to be the Accounts type, then good
things happen. Tag the first member in your accounts dimension in the
Dimension Properties dialog with the Dimension Type = Accounts.

Set the dimension type for


Accounts on the first member in
the dimension from the Member
Specification dialog box.

Additional features are enabled when Analytic Services knows where


Accounts is through the Accounts dimension type tag:

With Calc All and Calc Dim functions, Analytic Services


automatically implements a correct accounts first calculation order.
Time Balance accounting for identified members in the Accounts
dimension is enabled. Time balance accounting affects the
aggregation sequence of flagged members in the Accounts
dimension (for example, balance sheet accounts) across the Time
dimension that is defined as the Time dimension type.
Expense Reporting for use with @VAR and @VARPER calc functions
is enabled, thus allowing control over better/worse sign conventions
for variance calculations.

3-10 Hyperion
Fast Track for Designers Outline Design Alternatives
3
When the Accounts dimension is flagged and meeting certain other
conditions, two pass calculations can be calculated with only one
pass on data blocks.

Time balance
accounting is
enabled when you
set the dimension
type to Accounts.

Expense
Reporting for
variance analysis
is enabled when
you set the
dimension type to
Accounts.

What Time, Accounts and Scenarios Share

We call the three dimensions (Time, Scenarios and Accounts) data


descriptor dimensions in contrast to business view dimensions discussed
later in this section.

From a design perspective the data descriptor dimensions (Time,


Scenarios and Accounts) share the following characteristics:

These dimensions define the data in its essentials. Most Analytic


Services databases contain these three dimensions.
Initial development of the outline is often manual. For example,
members are manually created, moved and/or specified to reflect
specialized calculations and model. Maintenance is typically a
manual process as well.

Time, Accounts and


Scenarios are the data
descriptor dimensions. They
describe the data in most
basic elements.

Hyperion 3-11
Outline Design Alternatives Fast Track for Designers
3
These dimensions are where variances (for example, comparison of
members to each other are typically calculated).
These dimensions are calculation intensive (they include models,
formulas, mathematically driven data relationships and so on.
Data are often- though not always- dense thus driving sparse/dense
settings and data block construction.

Crossover Designs

From a design perspective, the data descriptor dimensions sometimes


overlap or cross over between each other in their content. For example:

The scenarios dimension may cross over with the time dimension by
incorporating fiscal year in the scenario name (for example, Actuals
97, Actuals 98, Budget 98 and so on).
The scenarios dimension may cross over with the accounts
dimension- Actual Orders, Actual Shipments, Budget Orders,
Budget Shipments and so on.

In this crossover design, an


element of the definition of
time periods. For example,
fiscal year is incorporated in
the Scenario dimension.

What Business Views Have in Common

All other dimensions (not the data descriptor dimensions Time, Scenarios
and Accounts) we call business view dimensions. Examples of business
view dimensions include products, customers, channels, regions and so
on.

Business view dimensions provide users a specific cut of the data- the
multidimensional richness of analysis that extends beyond the simpler
information incorporated in the data descriptor dimensions.

3-12 Hyperion
Fast Track for Designers Outline Design Alternatives
3
From a design perspective, business view dimensions generally have the
following characteristics:

Which business views are relevant is substantially driven by the


company's industry and business practices. For example, a bank's
business view dimensions are very different from a hardware
manufacturer's business views.
Business view dimensions often have hundreds or even thousands
of members rolled up through many levels in a hierarchy. Because of
the magnitude of the number of members, initial development of the
outline and subsequent maintenance is usually automated using
load rules.
Business view dimensions are not typically calculation intensive.
Calculations are usually simple aggregated rollups of branches in
the dimension hierarchy. There are very few (or no) complex
models, member formulas and/or variances.
Business views often incorporate complex alternate rollups using
shared members. For this reason, using load rules that facilitate the
construction and maintenance of shared members- especially using
the parent/child load rule method- is common.
Data is often- though not always- sparse thus driving Analytic
Services sparse/dense settings and data block construction.

Hyperion 3-13
Outline Design Alternatives Fast Track for Designers
3
Business View Sampler
Channel Biz View:
customers at the
ship to level rolling
up through parent
to distribution
channels.

Org Structure Biz View: cost


centers rolling to departments.

Region Biz View: sales territories


rolling up through world regions.

Product Biz View: products


at SKU rolling up through
families and categories.

Product Biz View:


alternate rollup for
products at SKU as
shared members
rolling up to capacity
levels.

3-14 Hyperion
Fast Track for Designers Outline Design Alternatives
3
Outline Defines Reporting Drill Down

The outline associated with a database should reflect the reporting


requirements and structures for end users. On a spreadsheet report, each
dimension in the outline, with the exception of attribute dimensions, must
display in either summary form or with drill down detail on the report (all
dimensions must be represented).

The order of members in a dimension's hierarchy determines the


drill down sequence for reporting.
Changing a member's place in a dimension's hierarchy updates
where it displays (or where its data is summarized) in the reporting
structure after restructuring the database and recalculating the
rollup.
Using Analytic Services' Shared Member feature, you can design
multiple rollup schemes for the same information in the same
dimension.

Hierarchies in the outline


represent drill down paths for
spreadsheet reporting.

You may create multiple


rollup paths of the same
information within a
dimension using shared
members.

Lightning family
members display in
both the family rollup
and the capacity
rollup.

Hyperion 3-15
Outline Design Alternatives Fast Track for Designers
3
Exercise - Building a Scenario Dimension
Create a Scenario dimension for the Sales database. Add the following
children to Scenario:

Current Year
Prior Year
Forecast
Budget
Scenario Variances

Use this table to create children for the Scenario Variances members:

Member Member Children Notes

Act Vs Bud Current Year Set children as shared members.


Budget Change the consolidation operator of
Current Year to + and Budget to
minus (-).

Act Vs Fcst None Add member formula:


“Current Year” - Forecast;

In addition, set the following dimension parameters:

Set the Consolidation operators for Scenario Variances and all of its
children to ignore.
Set Scenario and Scenario Variances as Label Only.

3-16 Hyperion
Fast Track for Designers Outline Design Alternatives
3
Exercise - Creating the Accounts Dimension
Create an Accounts dimension for the Sales database. Open Corpacct.xls,
and select the Gross Margin Analysis worksheet. Convert from spreadsheet
analysis format into Analytic Services outline structure. Use this
worksheet as a guide for member names and member relationships.

Use this worksheet as a guide for member formulas and consolidation


operators.

Hyperion 3-17
Outline Design Alternatives Fast Track for Designers
3
Exercise - Adding to the Accounts Dimension
In this exercise, you add time balance accounting and expense reporting
features to the Bigcorp:Sales Accounts dimension. This exercise assumes
you are working with the Sales outline.

Setting up time balance accounting:

1) Select Gross Margin %.

2) Select Edit / Add Sibling.

3) In the text box, type Balance Sheet.


The Confirm Add dialog displays.

4) Click Yes.

5) Select Balance Sheet.

6) Select Edit / Properties.


The Member Properties window displays.

7) Select ignore (~) and Label Only.

8) Click OK.
The properties from Balance Sheet change.

9) Under Balance Sheet, add the following children:

Child Unary Member Properties


Operator

Inventory ~ Set as Time Balance


Last (on the Account
Info panel).

Accounts Receivable ~ Set as Time Balance


Last (on the Account
Info panel).

Setting up @Var formulas and Expense Reporting:

1) Under Scenario Variances, select Act Vs Bud.

3-18 Hyperion
Fast Track for Designers Outline Design Alternatives
3
2) Select Edit / Formula.

3) Select Formula / Paste Function.

4) In the Categories section, select Math.

5) In the Templates section, select the math operator @VAR.

6) Click OK.
The function appears in the Formula Editor window.

7) Complete the formula to read: @VAR (“Current Year”, Budget);.

8) Select File / Save.

9) Select File / Close.


The Formula Editor closes.

Hyperion 3-19
Outline Design Alternatives Fast Track for Designers
3
10) Complete the comparable formulas for the members Act Vs Fcst and
Bud Vs Fcst.

11) In the Accounts section, select Cost of Sales.

12) Select Edit / Properties.


The Member Properties window displays.

13) Select the Account Info tab.

14) In the Variance Reporting section, select Expense.

15) Identify and set Expense reporting for all other members in the
Accounts dimension where this flag is required, according to this
model.

3-20 Hyperion
Fast Track for Designers Outline Design Alternatives
3
Check Your Understanding

1) What are the two standard approaches to the Time design? Give a
brief description of each approach.

2) Describe the Accounts data descriptor dimension.

3) What is a business view dimension?

Hyperion 3-21
Outline Design Alternatives Fast Track for Designers
3
Check Your Understanding Solutions

1) What are the two standard approaches to the Time design? Give a
brief description of each approach.

The generic and the fiscal year crossover models are the standard
approaches to time design.
• The generic model-where months, quarters and years have no
fiscal identification. Fiscal ID is incorporated as a separate
dimension or in the Scenario dimension.
• The fiscal year crossover model where months, quarters and
years have the fiscal year identification hardwired into the
member names.

2) Describe the Accounts data descriptor dimension.

Accounts (often called Measures) is generally the most complex of the


data descriptor dimensions. This is where your business model
resides and where the most complicated and potentially time
consuming calculations occur.

3) What is a business view dimension?

A business view dimension is a dimension that does not fall into the
Time, Scenario or Accounts dimension category. Examples of
business view dimensions include products, customers, channels,
regions and so on.

3-22 Hyperion
4
Developing Load Rules

Upon completing this chapter, you will be able to:

• Plan with label outlines


• Understand what load rules do for outlines
• Build a dimension build rule from scratch
• Load the outline
• Understand error checking
Developing Load Rules Fast Track for Designers
4
Setting the Stage
You may need some guidance when first using the load rule interface.
While load rules give you a broad range of tools to handle nasty sourcing
problems, you need to memorize your way through a maze of dialog
boxes where you build up rule elements. In this section, we provide you
with development methodologies for planning how to build rules to load
members to outlines and step-by-step procedures for actually building the
rule which you can refer to as you would a recipe in a cookbook.

Before

Time to
build,
Yahoo!

After

Defining Hierarchies
Some Analytic Services dimensions, such as those related to product codes
and customer numbers, contain hundreds or even thousands of members.
It is more efficient to build, change, or remove these dimensions
dynamically, using a data source and a rules file, than it is to add or
change each member manually in Outline Editor.

4-2 Hyperion
Fast Track for Designers Developing Load Rules
4
Planning With Label Outlines

A product dimension may have thousands of members and many


potential levels in the hierarchy. How do you plan this? The answer is to
develop a label outline for planning purposes before starting to load the
thousands of members into the outline. Label outlines help you build a
vision of the forest before you populate it with the trees.

To create a label outline:

It is preferable to create this outline while using an overhead projection


device so that participants in the planning process can see and comment
on the label outline’s development.

1) Open an empty outline on a client machine.

2) Create an outline member name for the dimension to be analyzed.

3) Starting from the top of the dimension, layer in step-by-step a name


for each level (for example, Product Family).

4) Starting from the top at a generation parallel to the name hierarchy,


layer in a clear-cut example from your business of the named level,
for example, Lightbolt.

5) Continue adding layers of names with parallel examples until you


reach the bottom of the hierarchy.

6) Use a finalized version of the Label Outline as a specification sheet or


sign-off document for decisions that participants reach.

Set up names of levels


in the product
dimension.

Document unambiguous
examples of members
that everyone
understands at
each named generation.

Hyperion 4-3
Developing Load Rules Fast Track for Designers
4
Flushing Out the Issues

Constructing a label outline provides useful tools while flushing out


questions, issues and potential areas of misunderstanding. This table
describes the advantages of having a label outline.

Provide a single Having an abbreviated picture of the dimension’s


visual planning hierarchy in Analytic Services’ own visual outline
model mode helps draw one single picture that participants
can relate to and discuss together.

Expose Working through the structure top-to- bottom (bottom-


nomenclature to-top can also work), flushes out nomenclature
differences differences between functional groups, for example,
Finance calls Product Family what Marketing calls
Product Group.

Disclose conflicting Working through the structure flushes out differences


hierarchy between functional groups in perception of the
perceptions hierarchy needs. For example, a 6 level product
hierarchy suits Finance’s purposes because product
costs are at the lowest SKU level whereas a
shallower, less complex hierarchy of 4 levels meets
Marketing needs for forecasting.

Allow a scenario Working through the structure high-lights process


driven process issues vis-a-vis the Scenarios dimension. Actuals,
budget and forecast may not have congruent
hierarchy requirements, for example, budget inserts
an additional level for grouping services parts which
are planned in the aggregate.

Highlight sizing, Coupled with estimates of how many members are


performance and likely to be required at each level, working through the
partitioning structure precipitates discussion of the size of the
considerations database and performance considerations. These
issues are important to identify early and may call for
partitioning databases into separate cubes.

Analyze alternate You can use the same label outline procedure for
rollup needs analyzing alternate rollups and the levels at which
sharing of members needs to occur. Alternate rollups
have been a method for collapsing potential additional
dimensions into one for managing database size and
performance.

4-4 Hyperion
Fast Track for Designers Developing Load Rules
4
Plan for User Working through a label outline structure also
Defined Attributes precipitates discussion of how and where to use UDAs
(UDAs) or Attribute Dimensions in the outline design. Both
types of attributes can give common references to
groups of members for calculation and/or reporting
and are frequently used in place of adding new
dimensions or alternate rollups where the identifying
information is not hierarchical.

Research data Working through the structure facilitates discussion


location and research assignments about where data exists in
the hierarchy vis-a-vis members in the Accounts
dimension. Defining a hierarchy does not necessarily
mean that data exists at the defined levels.

Use label outlines to


document complex
alternate rollups using
shared members.

What Load Rules Do for Outlines


A data source can contain only dimension names, member names, alias
names or data values; it cannot contain miscellaneous text. Not only must
the data source contain enough information, the information must be in an
order Analytic Services understands. Data sources, therefore, must be
complete and correctly formatted.

Before you load data or build dimensions, you must format your
data source so that it maps to the multidimensional database into
which you are loading. You can format your data source by altering
your data source or, more typically, by transforming the data with a
rules file during loading.
When using a rules file, the original data source is not changed.
Rules files perform operations on the data as the data source is
loaded, such as rejecting invalid records, scaling data values or
dynamically building new dimensions.

Hyperion 4-5
Developing Load Rules Fast Track for Designers
4
You must use data load rules to load SQL data and to build
dimensions and members dynamically.
Data load rules are stored in rules files.

Loading Complex Hierarchies

When you have hundreds or thousands of members in a dimension rolled


up through complex hierarchies, you need tools to automate the loading
and maintenance processes. That is what load rules do for outlines.

You can use load rules for managing messy, complex outline development
processes and maintenance activities in batch processes. For example, you
can:

Load hundreds or thousands of members at one time in a batch


process.
Load complex hierarchies with multiple rollup paths using shared
members.
Sort hierarchy members when loading or maintaining structures.
Automate the reorganization of existing hierarchies and member
relationships.
Maintain hierarchies on-the-fly by adding new members and
deleting old ones.

You view the load rules


associated with a
database on the
Client or Server Click this button to
desktop. see Load Rule
objects.

Fixing Problems

In addition to providing batch maintenance, load rules provide tools for


interpreting source files and resolving ugly problems. For example, you
can do such things as:

Associate source data hierarchies with dimensions.


Define hierarchy levels by generation, level or parent/child.
Set up alternate naming conventions, that is, member names plus
aliases.
Move columns that are in the wrong place in the hierarchy.
Ignore rows and columns with extraneous information.
Duplicate, parse and concatenate information to construct
hierarchies.

4-6 Hyperion
Fast Track for Designers Developing Load Rules
4
Prefix or suffix member names to provide clarity.
Select or reject member names using complex alpha or numeric
criteria.
Replace specific member names or character sequences in a source
with alternate sequences.
Eliminate leading or trailing spaces in source formats.

Load rules can perform many more tasks that can fix problems
encountered in load files.

Building A Dimension Build Rule From Scratch


The load rule interface is named the Data Prep Editor. You may need some
guidance when using the Data Prep Editor initially.

Ten Steps For Setting Up Dimension Building Load Rules

There are 10 steps in setting up a dimension building load rule:

1) Create a new rule

2) Associate with an outline

3) Open a data file

4) Format the data file

5) Select the mode

6) Set Up the new dimension

7) Select the build method

8) Associate fields with dimensions and field type

9) Validate the load rule

10) Save the load rule

The following procedures clarify the steps you need to take to create from
scratch a rule for loading members into an outline.

Hyperion 4-7
Developing Load Rules Fast Track for Designers
4
Step 1 - Create A New Rule

Load rules can be used for loading new members into the outline from
scratch or for maintaining an outline already loaded.

To create a new load rule from scratch:

1) From the Application Manager, select File / New / Data Load Rules.

Or select Load Rule and click New.

Load rules are created


in the Data Prep
Editor. This is what a
new rule looks like when
you start.

Step 2 - Associate with an Outline

The load rule needs to know the outline reference for correct loading of
members and error checking. If you do not associate your rule with an
outline, most dialog boxes are disabled, that is, you cannot do anything.
The association to an outline is not saved; you must reassociate each time
you open the saved load rule.

Rudy fails to successfully associate


with his outline.

4-8 Hyperion
Fast Track for Designers Developing Load Rules
4

To associate the outline:

1) Click Outline .

Check that the


correct
application
and database
name for the
outline are
selected.

2) Make sure the values for Object Name, Server, Application, and Database
are correct.

3) Select the outline to open and click OK.


There is no immediate visual clue of the association but once you
open various dialog boxes, visual clues display, for example,
member lists associated with the application and database are
available.

Step 3 - Open a Data File or SQL Data Source

You need to see a sample source file that contains the outline members to
be loaded into the Analytic Services outline, for example, the file’s
contents, order of columns, and so on. These provide a frame of reference
for building the load rule. The source file you use now to build the rule is
presumably the final source file or in exactly the same format as the final
source file you use when updating members on an ongoing basis.

In the Data Prep Editor, you can open data sources, such as text files,
spreadsheet files, and SQL data sources.

Hyperion 4-9
Developing Load Rules Fast Track for Designers
4

To open a data file:

1) Select File / Open Data File.

✍ The data file association is not saved with the load rule, that is,
you must select File / Open Data File each time you reopen a
load rule.

2) Select the correct file type from the List Objects of Type drop-down list.

✍ You may select a text file or the kind of worksheet you require.
Text files must end in.TXT in the file system. If they do not,
rename them.

3) Server is selected by default. If the file is on the server, select the


source file from Open Objects dialog box.

4-10 Hyperion
Fast Track for Designers Developing Load Rules
4
Or, if the file is on the client, select Client as the location then select the
file through the File System button.

✍ If you leave Server selected, the text file to load must reside in
the database directory under
\ESSBASE\APP\application_name\database_name, where
application_name and database_name represent the name of
your application and database. Type the name of the text file in
the Object Name text box or select it from the Objects list.
If you select Client, the text file may reside in either the
application or database directory under \ESSBASE\CLIENT
or on the drives accessible from the client file system. Click File
System to select a text file from a standard Open Client Data
Files dialog box.

Hyperion 4-11
Developing Load Rules Fast Track for Designers
4
4) Select a file and click OK.

Once a source data file is


open, the first 50 to 200
records in that file show in the
top half of the Data Prep Editor
interface.

The bottom half of the Data


Prep Editor shows what the
source information looks like
loaded into Analytic Services
after applying various rules.

The top and bottom windows populate with information. The


contents of the file display in the top window of the Data Prep
Editor reflecting the original file’s structure. The bottom window
reflects interpretation of the file after applying load rule elements.

The Data Prep Editor can open an SQL data source if you have licensed
the SQL Interface. When you open an SQL data source, the rules fields
default to the SQL data source column names. If these names are the same
as your Analytic Services dimensions, you do not have to perform any
field mapping.

To open a SQL data source:

1) Select File / Open SQL.

✍ If you are connected to a server, the dialog box contains the


values for that server.

4-12 Hyperion
Fast Track for Designers Developing Load Rules
4
2) From the drop-down lists, select an Essbase Server, Essbase Application
an Essbase Database.

✍ This server, application, and database act as the client for SQL
access.

3) Click OK.

4) Select the SQL Data Source.

5) In the Connect section, enter the Database name (for example,


Myexamp).

6) In the From text box, enter the location of the SQL data source (for
example: c:\essbase\app\sample\basic\myexamp.dbf).

7) Enter any additional information that is required to connect to your


SQL data source, such as the server, application, user ID, or
password. To connect to a Sybase SQL Server, for example, you
would enter the user ID, password, database, server, and application.

8) Define any select statements in the Select and Where text boxes.

✍ By default, the select statement is * (which selects all rows in


the table).

9) Click OK/Retrieve to retrieve the SQL data source file or OK/Save to save
your settings.
The contents of the data source display in the top window of the
Data Prep Editor.

Hyperion 4-13
Developing Load Rules Fast Track for Designers
4
Step 4 - Format the Data File

Analytic Services needs to interpret the source in a columnar format in


order to apply rules. Choosing the file delimiter type allows Analytic
Services to interpret the source’s column organization. The delimiter
choices are:

Comma
Tab
All Whitespace
Custom, (a single character in the text box as the custom delimiter)
Column Width, enter the width of the column in the text box. The
column width must be a five digit or smaller number. Use column
width for data sources with fixed-width columns.

To select the data file delimiter type:

1) Select Options / Data File Properties or click Data File Properties .

2) Select the File Delimiter tab.

4-14 Hyperion
Fast Track for Designers Developing Load Rules
4
3) Click OK.

The field delimiter causes


Analytic Services to organize
source data into columns for the
assignment of rules that apply
to each column.

✍ If, after choosing a delimiter type, the data does not display in
columns, you have chosen the wrong delimiter type.

Formatting the Data File: More Pointers

For variable, fixed length fields (which is not a delimiter choice),


parse the single field of tab or comma delimited data into columns
using the Field / Split menu choice.

Any field edits such as joins, splitting, and moving of columns


shows up in the sequential order they were executed on the Field
Edits tab of the Data Files Properties dialog which is accessed by
selecting Options / Properties. To delete an operation you must start
on the last operation and work backwards.

Hyperion 4-15
Developing Load Rules Fast Track for Designers
4
Ignoring lines or other header related activities are handled by
selecting Options / Data File Properties and then selecting the
Header Records tab.

Step 5 - Select the Mode

You can use load rules to:

Automate loading or maintenance of members in the outline using


Dimension Building Fields.
Load actual data, for example, units and dollars, to existing
members in a database using Data Load Fields.

When developing a load rule, you are working in one or the other of these
two modes.

To set the current load rule mode for outline building and
maintenance:

This mode is not for data loading.

• Select View / Dimension Building Fields.


Select Dimension Building Fields
from the View menu when building
a load rule for loading outline
members.

✍ This setting is saved with the load rule.

4-16 Hyperion
Fast Track for Designers Developing Load Rules
4

To set the current load rule mode for data loading:

• Select View / Data Load Fields.

✍ This is the default setting for a new rule. Select this setting
when creating or maintaining a load rule for loading data.

Step 6 - Set Up the New Dimension

When creating a load rule for loading members, Analytic Services must
know the dimension name and its properties. If the new dimension has
not already been set up in the outline, you need to create the dimension
from within the new load rule.

Much of this work is done in the Dimension Build Settings dialog box.
This dialog box contains three tabs, each of which sets up a different part
of the rules file:

Use the Dimension Definition panel to name the dimension and


define its properties.

Hyperion 4-17
Developing Load Rules Fast Track for Designers
4
Use the Dimension Build Settings panel to specify the build method
and indicate how to sort the members.
Use the Global Settings panel to specify which alias table to update,
whether or not Analytic Services should select the dense/sparse
configuration, and how to combine selection and rejection criteria.

To set up a new dimension that does not exist:

1) Select Options / Dimension Build Settings.

2) Select the Dimension Definition tab.

3) Enter the dimension name in the name entry box and click Add.
Add a new
dimension and
specify its
properties from
the Dimensions
panel.

4) With the dimension member name selected, click Properties.

4-18 Hyperion
Fast Track for Designers Developing Load Rules
4
5) Use the various tabs to set the attributes as appropriate for Dimension
Type, Storage, Dense/Sparse Configuration and other attributes.

6) Click OK twice.

Step 7 - Select the Build Method

Analytic Services provides three principal methods for loading outline


members:

Generation method
Level method
Parent/child method

There are also several additional Add as methods for special uses.

To set the load method for dimension building:

1) Select Options / Dimension Build Settings.

Hyperion 4-19
Developing Load Rules Fast Track for Designers
4
2) Select the Dimension Build Settings tab.

3) From the dimension list in the upper left of the dialog box, select the
dimension name being loaded.

4) Select a Build Method, and click OK.

Select the Build


Method from the
Dimension Build
Setting dialog.

4-20 Hyperion
Fast Track for Designers Developing Load Rules
4
Step 8 - Associate Fields with Dimensions and Field Type

This step represents the fundamental processes for building the actual
rules themselves. You must tell Analytic Services what to do with each
column of information. You must specify:

The dimension in the outline to which the field value belongs.


The data type, for example, the member name for a specific level or
generation, alias information, attribute, formula and so on.

To associate column headers with dimension and data


type:

1) Select a column in the lower pane of the Data Prep Editor.

2) Select Field / Properties.

3) Select the Dimension Building Properties tab.

4) From the Dimension list, select the Dimension being loaded.

5) Select the Field Type (for example, generation, level, parent/child,


alias, formula and so on).

Hyperion 4-21
Developing Load Rules Fast Track for Designers
4
6) Enter the generation or level number to which the field type applies
(enter zero (0) for parent/child method).

Enter Field
Definition
information that
tells Analytic
Services what
dimension and
field type the
column of
information
represents.

7) Repeat this procedure for all columns.

8) To ignore fields with extraneous information, select Field / Properties.


The Field Properties window displays.

9) Select the Global Properties tab.

10) Select the Ignore Field During Dimension Build.

4-22 Hyperion
Fast Track for Designers Developing Load Rules
4
Step 9 - Validate the Load Rule

We recommend you validate your load rule before saving it. Although not
all errors are caught during validation, an invalid load rule generally
results in an incorrect build.

To validate a load rule:

• Select Options / Validate.

Possible Errors Returned by Validation Checking:

Neglecting to set the Load rule to View / Dimension Build fields.


Inconsistencies between the build method chosen and the field
properties.
Columns are not in correct order for building dimensions.

Hyperion 4-23
Developing Load Rules Fast Track for Designers
4
Step 10 - Save the Load Rule

You can re-use one rules file with multiple data sources. It is a good idea
to save when you create a load rule or modify an existing one.

To save the load rule:

1) Select File / Save or File / Save As.

2) Enter an appropriate name for the Load Rule and click OK.
You are now ready to load the outline.

Don’t forget to save!

4-24 Hyperion
Fast Track for Designers Developing Load Rules
4
Loading the Outline
Loading new members into an outline or updating an existing outline
occurs by matching the source file with the load rule and outline, then
initiating the load procedure.

The load rule does not modify the source file during the loading
procedure. It interprets the source file content according to the underlying
rules you specify.

Before loading the


outline.

Product.txt +
Loadprod.rul =
Loaded Outline

After loading
the outline.
Yahoo!

Hyperion 4-25
Developing Load Rules Fast Track for Designers
4
Three Methods for Initiating a Dimension Build

You may initiate a load procedure by any one of three methods:

Using the Outline Editor


Using the Data Load dialog box
In batch mode using ESSCMD

To initiate a load procedure using the Outline Editor:

1) From the Outline Editor, select File / Update Outline.

From any outline


on the Client or
Server, update
the outline from
the File/Update
Outline menu
choice.

2) To select the source file and load rule click Find.

3) Select a file and load rule.

4) Click OK.
The Outline Update window displays.

5) Click OK.
Analytic Services adds the dimensions in the data source to the
outline.

4-26 Hyperion
Fast Track for Designers Developing Load Rules
4

To Initiate a load procedure using the Data Load dialog


box:

1) Open the Application Manager Desktop window.

2) Select the application and database to load the data into where you
wish to build dimensions.

3) Select Database / Load Data.

4) Select the Data Files option (if it is not already selected).

5) Click Find to select a text or spreadsheet file to load.

Hyperion 4-27
Developing Load Rules Fast Track for Designers
4
6) Specify the location of the file by allowing the Server choice to remain
or by clicking Client. If Client is selected, Open Client Data File Object
dialog replaces the Open Server Data File Object.

With Client, if necessary, click File System to find the appropriate data
file.

7) Select the data source file(s).

8) Click OK to return to the Data Load dialog.


Or, from the Open Client Data Files dialog, click Open to return to the
Data Load dialog.
The name of the desired data file displays in the Data files area.

9) Select Modify Outline.

10) Select Use Rules.

11) To open the Open Server Rules Object dialog box, click Find.

12) Making sure the appropriate Analytic Services application and


database are selected from the lists, specify the location of the file by
clicking either Server or Client.

13) Click OK.


The name of the appropriate rules file displays in the Rules file
area.

4-28 Hyperion
Fast Track for Designers Developing Load Rules
4
14) Click OK.
Analytic Services adds the dimensions in the data source to the
outline.

To Initiate a load procedure in batch mode using ESSCMD:

• Execute an ESSCMD batch script that includes a Builddim


command specifying the name and location of the source file(s)
and load rule.

✍ You must have at least one dimension defined in the


database. To build dimensions, at least one Builddim
command must be included. In ESSCMD, you can also do
multi-pass dimension builds.

Error Checking
You may catch possible errors through load rule validation, but not all
errors are trapped during the validation process.

Tracking Errors with Load Rule Validation

Select Options/Validate to check for syntax and logic errors in the load
rules themselves.

This is where you see


specific errors in load
rules using the Validate
menu choice under
Options.

Hyperion 4-29
Developing Load Rules Fast Track for Designers
4
Tracking Errors Not Caught in Validation

Not all errors are trapped in the validation process. Sometimes the source
files may themselves generate error conditions, for example, duplicate use
of an alias.

Error Tracking Tips

Open Dimbuild.err in Notepad, spreadsheet or any word processor


to view source file errors. The default location of the “dimbuild.err”
file on the client is Essbase/Client. You may change the location of
this file to any available path and file name.
Consider changing the error file name to match the name of the rule
you are testing and/or using for loading. This procedure facilitates
retaining multiple error files and problem identification.
Consider defining the error file type to be .TXT to make this ASCII
text file easier to access from the Application Manager Open Object
dialogue where the .TXT (but not the .ERR) file type is recognized.
The error file contains a comment describing the error and the
complete record rejected. This file can be directly loaded once the
rule has been revised or the source error corrected. All comments are
ignored during the load process.

Check out the show


stopper errors line by
line on the source file
in the Dimbuild.err file.

4-30 Hyperion
Fast Track for Designers Developing Load Rules
4
HTML Error Files

Many times an error message is accompanied by an error code. Analytic


Services provides an HTML help file that lists error codes encountered
during data loads and calculations. This documentation contains an
explanation of the error message and a possible solution.

Hypertext to
other help
files.

✍ Many of the entries contain hypertext links to other help guides.

To access the data load error messages information:

1) From the Windows desktop, select Start / Programs / Hyperion Solutions


/ Hyperion Essbase / OLAP Server Documentation.

Hyperion 4-31
Developing Load Rules Fast Track for Designers
4
2) Select Error Messages Guide.
The Error Messages window displays.

3) In the Content section, select Data Load (1003000 to 1003040).

4) Select a message number from the table.


The error information displays.

4-32 Hyperion
Fast Track for Designers Developing Load Rules
4
Exercise - Loading the Family Total Rollup
Create a load rule to load the Family Total roll-up. To complete this
exercise, you need to:

Create a new load rule


Associate the load rule with the Sales outline
Use the FamGen.xls data file (located on the client)
Set the dimension build mode
Specify the data file delimiter type
Set the load building method
Associate field headers with dimension and generation references
Ignore any extraneous data
Save the rule
Load the Product dimension
Save the outline

Hyperion 4-33
Developing Load Rules Fast Track for Designers
4
Check Your Understanding

1) What is a label outline?

2) What is the purpose of creating a label outline?

3) How can load rules be useful with outlines?

4) What are the 10 steps for setting up a load rule for dimension
building?

4-34 Hyperion
Fast Track for Designers Developing Load Rules
4

Hyperion 4-35
Developing Load Rules Fast Track for Designers
4
Check Your Understanding Solutions

1) What is a label outline?

Label outlines are developed for planning purposes. Label outlines


help you build a vision of the application you are creating. Step by
step starting from the to of the dimension, you layer in a name for
each level in your application. Then from the top of a generation
parallel to the name hierarchy, you create an example hierarchy that
contains a clear-cut example from your business of the named level.

2) What is the purpose of creating a label outline?

Constructing a label outline allows discussion of questions, issues


and potential areas of misunderstanding. While designing the label
outline, the designers:
• Provide a visual planning model
• Expose nomenclature differences
• Disclose hierarchy perceptions
• Allow a scenario driven processes
• Highlight sizing, performance and partitioning issues
• Analyze the need for alternate rollups
• Plan user defined attributes
• Research where the data exists

3) How can load rules be useful with outlines?

Load rules can automate outline loading and maintenance processes.


Load rules can let you load members with multiple rollup paths and
shared members. It can provide tools for interpreting source files and
solving problems with those files. For example, you can move
columns that are in the wrong place in the hierarchy or ignore rows
or columns that contain extraneous information.

4) What are the 10 steps for setting up a load rule for dimension
building?

• Create a new rule


• Associate the rule with an outline
• Open a data file
• Format the data file
• Select Dimension Building Fields mode
• Set up the new dimension
• Set the build method
• Associate fields with dimension and field type
• Validate the load rule
• Save the Load rule

4-36 Hyperion
5
Outline Loading Methods

Chapter Objectives
Upon completing this chapter, you will be able to:

• Set the load method


• Know the criteria for Generation method loading an outline
• Know the criteria for Levels method loading an outline
• Know the criteria for Parent/Child method loading an outline
• Build attributes using load rules
Outline Loading Methods Fast Track for Designers
5
Setting the Stage
You now understand how to build a load rule. Next, we take you through
the three methods used for loading and maintaining members in an
outline. The loading methods include:

Generation loading
Level loading
Parent/child loading

We then walk you through the methods in greater depth, focusing on the
strengths and weaknesses of each.

The Analytic Services


Generation

5-2 Hyperion
Fast Track for Designers Outline Loading Methods
5
Setting the Load Method
Analytic Services load rules provide several methods for loading and
maintaining outline members. Settings for the various methods are made
in the Dimension Building dialog accessed from the Options menu.

Select among the three standard methods for automatically loading


members based on the format of the source file:

Use Generation Source files are structured or moved within the load
References rule so that columns representing hierarchy pathways
are organized top-down and left to right.

Use Level Source files are structured or moved within the load
References rule so that columns representing hierarchy pathways
are organized bottom-up and left to right.

Use Parent/Child Source files are structured or moved within the load
References rule so that columns are organized by pairs
representing parent/child relationships from left to
right, building up hierarchy elements.

Define your load


methodology (and
other
behaviors related to
loading members) from
the Dimension Build
Settings panel.

Hyperion 5-3
Outline Loading Methods Fast Track for Designers
5
Capturing New Members On-the-fly
Three additional Add As methods are used for capturing new member
exceptions during a dimension build, when all hierarchical references are
not available in a source file or during a data load where the source may
be out of sync with separate dimension build inputs. Without using an
Add As method, members with data not already in the outline cause an
error condition. The Add As options include:

Add as a sibling of a This option compares the new member to existing


member with members in the outline using string matching, for
matching string example, matching to account, or part number
sequences with call outs embedded in the numbering
scheme.

Add as a sibling of This option assigns the new member to the lowest
lowest level level in a hierarchy. This one is useful if you are
loading to a flat dimension list.

Add as a child of This option assigns the new member as a child of


another specific member in the outline, for example,
capturing members to a member called unrecognized
product or unrecognized customer.

Set Add as options for


capturing new
unrecognized
members on the fly
during data load.

5-4 Hyperion
Fast Track for Designers Outline Loading Methods
5
Thinking Generations
Loading and maintaining outlines using the Generation method assumes
source files are naturally organized top-down, left to right or is ordered as
such by applying rules that interpret source file columns into that
organization.

Loading Hierarchies by Generation

Generation numbers refer to consolidation levels within a dimension.

Generation 1 is the highest level in a dimension’s hierarchy already set up


in the outline. Generations below the dimension names are numbered 2, 3,
4, and so on, counting top-down.

To structure files for generation method loading, organize member


columns in the source file or move columns into an order of highest to
lowest, left to right in their hierarchical order.

Each row in the source file represents a distinct pathway of drill down
relationships.

To set up the load rule for generation loading:

You should be in the Data Prep Editor with the file you wish to load
visible.

1) Select Field / Properties.

✍ If no field is highlighted, Field Number 1 is selected by default.

Hyperion 5-5
Outline Loading Methods Fast Track for Designers
5
2) Select the Dimension Building Properties tab.

3) Identify the target dimension for the column of information selected.

4) In the Field Type section, select Generation.

5) Enter the generation Number represented by the column’s members.

Type the generation


number for the
column of
information.

Select the
dimension
name to be
populated by the
source file.

6) Repeat this process for each column in the file.

✍ Columns which contain information other than a member’s


name, such as alias, property, formula, or User Defined
Attribute (UDA) must follow the member name for which that
column’s information applies.
For example, an alias column must follow directly after the
member to which the alias applies. Enter the generation
number is that entered for the main member.

7) When all columns have been assigned values, click OK.


You return to the Data Prep Editor ready to validate and save the
rule.

5-6 Hyperion
Fast Track for Designers Outline Loading Methods
5
Loading Shared Members By Generation

Shared members can be loaded under the generation method using a tag
called duplicate generation in the field type choices. The duplicated
generation method is not commonly used because the outline structure
requires symmetry top-down in generation number between the main
member and the shared member.

Format for shared


member loading
using Generation
method.

Thinking Levels
Loading and maintaining outlines using the Level method assumes source
files are naturally organized bottom-up, left to right or is ordered as such
after applying rules that move source file columns into that organization.

Loading Hierarchies by Level

Levels also refer to the branches within a dimension; however, levels


reverse the numerical ordering that Analytic Services uses for generations.
The levels count up from the leaf member toward the root. The root level
number varies depending on the depth of the branch.

Level 0 is the lowest level on a dimension’s hierarchy already set up in the


outline. Levels above the zero level are numbered 1, 2, 3, 4, and so on,
counting bottom-up.

To structure files for level method loading, organize members in the


source file lowest to highest, left to right in their hierarchical order, or
move columns into this organization within the load rule itself. Each row
in the source file represents a distinct pathway of relationships drilling up
from the bottom.

We need
a better
hierarchy!

Hyperion 5-7
Outline Loading Methods Fast Track for Designers
5

To set up the load rule for level loading:

✍ You should be in the Data Prep Editor with the file you wish to load
visible.

1) Select Field / Properties.


If no field is highlighted, Field Number 1 is selected by default.

2) Select the Dimension Building Properties tab.

3) Click the name of the Dimension that is the target for the column of
information.

4) Select Level for the Field Type in the Field Definition area.

5) Enter the level Number represented by the column’s members.

Select the
dimension name to Type the level
be populated by the number for the
source file. column of
information.

5-8 Hyperion
Fast Track for Designers Outline Loading Methods
5
6) Repeat these steps for other columns in the file.

✍ Columns which contain information other than a member’s


name, such as alias, property, formula, UDA, and so on, must
follow the member name for which that column’s information
applies.

For example, an alias column must follow directly after the


member to which the alias applies. Enter the same level
number that was entered for the main member.

Format for level load:


order fields left to right in
ascending order.

7) When all columns have been assigned values, click OK.


You return to the Data Prep Editor ready to validate and save the
load rule.

Loading Shared Members by Level

Shared members can be loaded under the level method using a tag called
duplicate level in the field type choices.

Like the generation method, loading shared members using levels also
requires symmetry. In this case the shared member must be at the same
level as the main member.

Since many sharing structures share at the zero level, however, the
symmetry requirement is not as onerous as with the generation method.

Parent/Child
Loading and maintaining outlines using the parent/child method
assumes extracts can be made from source files in sorted parent/child
paired relationships.

Hyperion 5-9
Outline Loading Methods Fast Track for Designers
5
Loading Hierarchies Using Parent/Child

Use the parent/child references build method with data sources in which
each record specifies the name of the new member and the name of the
parent to which you want to add it.

Structuring Files for Parent/Child Method Loading

When structuring files for Parent/Child loading, you should:

Organize members in the source file left to right in parent/child


pairs.
All combinations of parent/child relationships you want to set up in
the outline must be represented.
Any given member may display in the parent or the child column.
Make sure the parent/child pairs are sorted in order of precedence.
In some cases, Analytic Services can figure out the precedence order
without sorting, but in other circumstances, unsorted files may
produce an incorrect result.

Parent/child loading
is the easiest method
to use. Analytic
Services figures out
the hierarchy for you
in a freer form
format.

To set up the load rule for parent/child loading:

You should be in the Data Prep Editor with the file you wish to load
visible.

1) Select Field / Properties.


If no field is highlighted Field Number 1 is selected by default.

2) Select the Dimension Building Properties tab.

3) Select the Dimension that is the target for the column of information.

5-10 Hyperion
Fast Track for Designers Outline Loading Methods
5
4) Select either Parent or Child as appropriate for the Field Type in the
Field Definition area.

5) Enter the Number 0.


Zero has no real meaning; it is just a required placeholder.

6) Repeat this process for the next column in the file. Click Next to
advance to the next column.

✍ Columns which contain information other than a member’s


name, such as alias, property, formula, UDA, and so on, must
follow the member name for which that column’s information
applies.

For example, an alias column must follow directly after the


member to which the alias applies. Enter the 0 for the number
field of the alias.

7) When all columns are assigned values, click OK.


You return to the Data Prep Editor ready to validate and save the
load rule.

Loading Shared Members By Parent/Child

Parent/child is the most flexible method for loading and maintaining


shared members.

If you deselect Do Not Share on the Dimension Build Settings dialog,


parent/child loading automatically sets up shared members. The
principal requirement is that a matching main member already exists in
the outline with a different parent than the shared member currently
being loaded.

Hyperion 5-11
Outline Loading Methods Fast Track for Designers
5
Selecting the Do Not Share check box turns off all sharing with Parent/
child loading.

The Do Not Share check box is not available for generation or level
loading methods.

Sharing for parent/


child is enabled or
disabled from the Do
Not Share check
box.

Creating and maintaining shared members solves a variety of sharing


issues that are more difficult or impossible to manage using the generation
or level methods:

If Do Not Share is not selected, sharing with parent/child is


automatic without any special setup requirements.
The Parent/Child method allows sharing at asymmetrical levels and
generations which the other methods do not.
The Parent/Child method enables building in one pass
asymmetrical hierarchies for alternate rollup paths above the shared
members. The other methods do not.
The Parent/Child method enables sharing with members at upper
levels which is difficult with the other methods.

Hmmm.
Handles the
funny stuff too.

5-12 Hyperion
Fast Track for Designers Outline Loading Methods
5
Building Attributes with Load Rules
You can use rules files to build attribute dimensions dynamically, to add
and delete members, and to establish or change attribute associations.

Working with attributes involves the three following operations:

If the base dimension does not exist, you must build it.
You must build the attribute dimension.
You must associate members of the base dimension with members of
the attribute dimension.

Building the Attribute Dimension

There are a variety of ways to build the attribute dimension:

Manually in Outline Because many attribute dimensions are relatively


Editor small, this is not unrealistic. However, given the size of
some of the associated base dimensions, it is
unrealistic to consider attaching each attribute to its
respective base dimension members manually.

Generation, Level, Besides the manual method, this is the only way to
or Parent/Child build a multi-tiered attribute dimension. The load is
references very similar to creating a normal dimension.

Automatically when This can only be done for attributes that are one level
you associate the deep.
base member
dimensions with
specific attributes

Building Attribute Dimensions with Generation, Level, or


Parent/Child References

Besides the manual method, this is the only way to build a multi-tiered
attribute dimension. The load is very similar to creating a normal
dimension.

This is a multi-step process:

Create the attribute dimension


Declare the build method to be used to load the attribute
Assign each field a dimension property
Run the load

Hyperion 5-13
Outline Loading Methods Fast Track for Designers
5

To create an Attribute Dimension:

You should be in the Data Prep Editor with the file you wish to load
visible.

1) Select Options / Dimension Build Settings.

2) Select the Dimension Definition tab.

3) Click the name of the base dimension for which you want to create
the attribute.

5-14 Hyperion
Fast Track for Designers Outline Loading Methods
5
4) Click Properties.

5) Click Attribute Dimensions.

6) Enter the attribute dimension Name and select the attribute dimension
Type.

Hyperion 5-15
Outline Loading Methods Fast Track for Designers
5
7) Click Add.

8) When all attributes have been specified, click Close.


You return to the Dimension Properties dialog box.

9) Click OK.
You return to the Dimension Build Settings dialog.

10) Click OK.


The new attribute dimension is now visible in the dimension
listings of the dialog boxes related to the Data Prep Editor.

Once the attribute dimension has been created, decide which build
method is used:

Generation
Level
Parent/Child

You should be in the Data Prep Editor with the file you wish to load
visible.

5-16 Hyperion
Fast Track for Designers Outline Loading Methods
5

To select the build method for the Attribute Dimension:

1) Select Options / Dimension Build Settings.

2) Select the Dimension Build Settings tab.

3) Select the recently created attribute dimension and select the build
method.

Declare the build


method. In this
example we are
setting Capacity Total
to be a Parent/Child
build.

4) Click OK.
The load method is now selected for the load rule.

Hyperion 5-17
Outline Loading Methods Fast Track for Designers
5

To assign fields dimension properties:

You should be in the Data Prep Editor with the file you wish to load
visible.

1) Select Field / Properties.


If no field is highlighted, Field Number 1 is selected by default.

2) Click the Dimension Building Properties tab.

3) For each field:


• Define the Field Type
• Select the appropriate Dimension
• Enter a Number (relevant only for generation and level builds)

4) To move to the next field in the file and repeat the assignment
process, click Next.

5) When all fields have been assigned and you are ready to return to the
Data Prep Editor, click OK.

5-18 Hyperion
Fast Track for Designers Outline Loading Methods
5
When this process is complete, you are ready to run the load rule to create
the new attribute dimension and attach the attribute to its respective
dimension members. Here is a sample load rule that would finish building
out the Capacity Total attribute dimension.

Note that the


result of this build
is a newly
created attribute
dimension. In
addition, the
Product
dimension has
been marked as
the base
dimension.

Hyperion 5-19
Outline Loading Methods Fast Track for Designers
5
Associating Base Dimension Members with Specific Attributes

The last way to build an attribute dimension is to build it automatically


while you associate the base member dimensions with specific attributes.
This can only be done for attribute dimensions that are one level deep.

This is a multi-step process:

Create the attribute dimension, if necessary


Declare the build method to be used to load the base dimension
Assign each field a dimension property
Run the load

To build an attribute dimension:

✍ If the attribute dimension already exists, skip this first procedure.


You should be in the Data Prep Editor with the file you wish to load
visible.

1) Select Options / Dimension Build Settings.

5-20 Hyperion
Fast Track for Designers Outline Loading Methods
5
2) Select the Dimension Definition tab.

3) Click the name of the base dimension for which you want to create
the attribute.

4) Click Properties.

Hyperion 5-21
Outline Loading Methods Fast Track for Designers
5
5) Click Attribute Dimensions.

6) Enter the attribute dimension name and select the attribute


dimension type.

7) Click Add.

8) When all attributes have been specified, click Close.


You return to the Dimension Properties dialog box.

9) Click OK.
You return to the Dimension Build Settings dialog.

10) Click OK.


The new attribute dimension is visible in the dimension lists
associated with the Data Prep Editor.

5-22 Hyperion
Fast Track for Designers Outline Loading Methods
5

To build an attribute dimension automatically, associating


base member dimensions to specific attributes:

✍ This can only be done for attribute dimensions that are one level
deep. You should still be in the Data Prep Editor with the file you
wish to load visible.

1) Select Options / Dimension Build Settings.

2) Select the Dimension Build Settings tab.

3) Select the base dimension to be associated with this attribute build.

4) In the Attribute Members section, deselect Do Not Create Members.


Deselecting this option
allows the dimension to
be created on the fly.

5) Make sure to select the proper choice in the Build Method area.
This selects the appropriate build method for the base dimension.

6) When all these choices have been made, click OK.


You return to the Data Prep Editor.

Hyperion 5-23
Outline Loading Methods Fast Track for Designers
5

To assign each field a dimension property:

You should still be in the Data Prep Editor with the file you wish to load
visible.

1) Select Field/Properties.

✍ If no field is highlighted, information for Field Number 1


displays by default.

2) Select the Dimension Building Properties tab.

3) Select the Dimension Building Properties and for each field:


• Define the Field Type
• Select the appropriate Dimension
• Enter a Number (relevant only for generation and level builds).

If you are building the attribute dimension on the fly, the setting for the
attribute column is usually:

The attribute dimension name for the Field Type.


The base dimension in the Dimension text box.
The generation or level number corresponding to where attributes
are being assigned in the base dimension.

5-24 Hyperion
Fast Track for Designers Outline Loading Methods
5
You are now ready to run the load that associates the attributes with the
base dimension members. Because we did not explicitly build the attribute
dimension, the result is a flat attribute dimension only one level deep.

We have defined the attribute column as Field


Type=Capacity Total, Dimension as the base
dimension=Product, and Generation 5 because
we are loading the Capacity attributes to Gen 5 of
Products.

This yields a flat Capacity attribute


dimension. Note that the product
dimension is successfully tagged with
the corresponding attributes.

Hyperion 5-25
Outline Loading Methods Fast Track for Designers
5
Using Numeric Ranges

For numeric attributes, you can optionally place attribute members within
ranges.

Consider the last build we did. We did not explicitly build the attribute
dimension, so the result was a flat attribute dimension that was only one
level deep. This next example is the same build as the preceding one, but
we wish to avoid a flat attribute dimension. By using ranges if the
attribute is set as Numeric, we can assign attributes according to where
they fall in the range.

To place attribute members within ranges:

The attribute dimension must be defined as a Numeric Type.

1) Select Field / Properties.

✍ If no field is highlighted, information for Field Number 1


displays by default.

2) Select the Dimension Building Properties tab.

3) Select the Field Type.

4) Select the appropriate Dimension.

5) Enter a Number value (relevant only for generation and level builds).

5-26 Hyperion
Fast Track for Designers Outline Loading Methods
5
6) Click Ranges.

✍ The Ranges button is disabled for non-numeric attributes.

7) Select Place Attributes within a Numeric Range.

8) Set the range size and start value.

✍ The start value is the first member if Tops of Ranges is selected


in the outline under Settings / Attribute Names.
If Bottoms of Ranges is selected the first member is zero. In
either case, additional members is created at every range size
interval.

Hyperion 5-27
Outline Loading Methods Fast Track for Designers
5
9) If you are rebuilding an already existing attribute dimension, select
Delete all Members of this Attribute dimension.

This is the same build as the preceding example.


However, by setting the Capacity Total attribute as
Numeric and using ranges, attributes are assigned
according to where they fall in the range.

I love
numbers!

5-28 Hyperion
Fast Track for Designers Outline Loading Methods
5
Exercise - Using the Level Build Method
Review the level load rule structure:

Open the load rule file: Loadrule/Fam_Lev.rul.


Open the data file: Loadrule/FamLev.xls.
Review the load rule structure and contrast to the Fam_Gen load rule.
Columns are organized bottom-up, left to right.

Redo the Family Total Rollup using the level load rule:

Delete the previously loaded product structures from the Family


Total loading exercise.
Select File / Update Outline. Load the FamLev.xls file using the
Fam_Lev.rul.

Hyperion 5-29
Outline Loading Methods Fast Track for Designers
5
Exercise - Creating a Parent/Child Load Rule
Create a Parent/Child load rule for the Product dimension of the Sales
outline.

Use data file Configpc.xls (located in the B100_5/Loadrule directory)


Associate the columns with field properties
Ignore extraneous data
Save the load rule as Par_Ch

5-30 Hyperion
Fast Track for Designers Outline Loading Methods
5
Exercise - Loading Dimensions Using a Parent/Child Rule
Use the Parent/Child load rule you just constructed to load the
Configuration Total and Line Total roll-ups. To complete this exercise:

Use the Par_Ch load rule


Use the Sales outline
Load Configpc.xls (located in the B100_5/Loadrule directory) to
create the Configuration Total roll-up
Load LinePC.xls (located in the B100_5/Loadrule directory) to create
the Line Total roll-up
Save the outline

Hyperion 5-31
Outline Loading Methods Fast Track for Designers
5
Exercise - Loading Channel to Customer
Create a load rule that adds a Channel information under the Customer
dimension in the Sales database. To complete this exercise:

Create a Customer dimension


Create a new load rule
Open CusChan.xls (located in the B100_5/Loadrule directory)
Organize columns
Specify a build method
Edit data file fields where necessary
Define field properties
Save the load rule
Load CusChan.xls to the Customer dimension

5-32 Hyperion
Fast Track for Designers Outline Loading Methods
5
Exercise - Building the Capacity Total Attribute
Create a new load rule to build a Capacity Total attribute dimension in the
Sales outline. To complete this exercise:

Create a new load rule


• Open AttCap.xls (located in the B100_5/Loadrule directory)
Ignore any extraneous data
Add a new attribute dimension to the Product base dimension
Assign a build method
Edit data file fields where necessary
Define field properties
Save the load rule
Load AttCap.xls to the Capacity Total dimension

Hyperion 5-33
Outline Loading Methods Fast Track for Designers
5
Exercise - Creating a Region Total Attribute Dimension
Create a load rule to define a Region Total attribute dimension.To complete
this exercise:

Create a Region Total attribute dimension


• Use Customer as the base dimension
• Specify type as text
Create the load rule
• Use data file CusReg.xls (located in the B100_5/Loadrule
directory)
Specify a build method
Edit data file fields where necessary
Define field properties
Save the load rule
Load CusReg.xls to the Region Total attribute dimension

5-34 Hyperion
Fast Track for Designers Outline Loading Methods
5
Check Your Understanding

1) What are the three standard methods for loading and maintaining
outline members and when is each used?

2) When are the Add As methods used?

3) What are the three Add As options and how does each work?

4) How are attribute dimensions built?

Hyperion 5-35
Outline Loading Methods Fast Track for Designers
5
Check Your Understanding Solutions

1) What are the three standard methods for loading and maintaining
outline members?

• Generation references - data is organized top down, left to right


• Level references - data is organized bottom up, left to right
• Parent / Child - data organized in pairs representing parent/
child relationships left to right

2) When are the Add As methods used?

Three additional Add As methods are used for capturing new


member exceptions during a dimension build when all hierarchical
references are not available in a source file or during a data load
where the source may be out of sync with separate dimension build
inputs. Without using an Add As method, members with data not
already in the outline cause an error condition.

3) What are the three Add As options and how does each work?

• Add as a sibling of a member with matching string - compares


the new member to existing members using string matching
• Add as a sibling of lowest level - assigns the new member to the
lowest level in a hierarchy. It is useful if you are loading to a flat
dimension list.
• Add as a child - assigns the new member as a child of a specific
member in the outline.

4) How are attribute dimensions built?

You can build attribute dimensions manually, but this is often


unrealistic in large hierarchies.

You can build attribute dimensions with Generation, Level, or


Parent/Child references. This lets you build multi-tiered attribute
dimensions.

You can build at attribute dimensions automatically when you


associate the base member dimensions with specific attributes. This
can only be done for attributes that are one level deep. However,
numeric attributes can be placed within ranges.

5-36 Hyperion
6
Loading Data

Chapter Objectives
Upon completing this chapter, you will be able to:

• Load data using any of three methods


• Explain what load rules can do for data loading
• Create a data load rule
• Maximize data loading
Loading Data Fast Track for Designers
6
Setting the Stage
Until now, the focus has been on loading and maintaining members in the
outline. This section addresses the procedures for loading actual data, for
example, values for units and dollars into member combinations in the
outlines. The concepts for creating a data load rule are the same as for a
dimension building load rule, but many specifics of mechanics and
interfaces differ.

Rob attempts his first data load.

Three Ways to Load Data


There are three ways to load data:

Free form loading without rules


Structured loading with rules
Lock and send with a spreadsheet

6-2 Hyperion
Fast Track for Designers Loading Data
6
Free Form Loading without Rules

Free form loading enables manual or batch process loading using


ESSCMD without the need for load rules. Free form loading has certain
requirements that must be met. Your file structures need to be formatted
with precise organization of headers and row/column information similar
to rules used in spreadsheet reporting.

✍ This methodology is not commonly used in a production


environment.

Free form loading comes in a couple of flavors and is accomplished


through:

Drag and drop interface for multiple data files


Application Manager

To use free form loading through drag and drop:

1) In Application Manager, point to the database to which you want to


load to in the Server window.

2) Drag files to load from Windows Explorer to Application Manager.

3) Click OK to load.

Hyperion 6-3
Loading Data Fast Track for Designers
6

To use free form loading directly through Application


Manager:

1) In Application Manager, point to the database you want to load in the


Server window.

2) Select Database / Load Data.


The Data Load window displays.

3) Next to Data Files, click Find.

4) Select the data files to load.

5) Click OK.
The Data Load window displays.

6) Click OK.
The data loads.

Structured Loading with Rules

Loading data with load rules lets you deal with unstructured formats and
messy source problems. The manual interface for loading with rules is
cumbersome. However, loading with rules in a batch production
environment is easily implemented using ESSCMD, Analytic Services’
batch process language.

6-4 Hyperion
Fast Track for Designers Loading Data
6
Unlike Lock & Send loading from a spreadsheet, there are no fundamental
restrictions on the size of files or number of records that can be loaded
using load rules.

Loading data with load


rules involves matching
the source file with the
load rule.

Lock and Send with a Spreadsheet

Just as users can receive information in a spreadsheet using the


Spreadsheet Add-in, users may send data to an Analytic Services database
from this same interface.

This methodology is commonly used for interactive applications such as


budgeting where individual users develop input information, send it to
Analytic Services, then retrieve a returned result that incorporates an
intermediary calculation process that has used the data sent by the user.

Loading to Analytic Services from a spreadsheet is executed by


sequentially choosing Lock and then Send from the Essbase menu.
Formatting for Lock and Send from the spreadsheet follows spreadsheet
retrieve rules.

When Lock is chosen, all data blocks represented on the spreadsheet are
locked, that is, other users may access the same information on a read-only
basis, but may not change any data.

Hyperion 6-5
Loading Data Fast Track for Designers
6
When Send is chosen, the data on the spreadsheet is written to the data
blocks represented, and then those data blocks are unlocked.

✍ The number of records that can be sent using this method is limited
to spreadsheet row availability. This method is not generally used
for large scale production loading.

Lock and Send is a method for


entering data into Analytic
Services directly from a
spreadsheet without load rules.

What Load Rules Do for Data


Like load rules for loading and maintaining members in an outline, you
use load rules with the same interfaces to load data from text, Excel or
Lotus files.

Different rules can be quickly developed to address the file format issues
of differing sources. Analytic Services databases typically draw
information from multiple sources.

Select, Reject or Punt?

6-6 Hyperion
Fast Track for Designers Loading Data
6
Use Load Rules for managing messy data loading activities such as:

Load hundreds or thousands of records at one time in a single batch


process.
Identify record elements to members in the outline.
Overwrite existing loaded or calculated values and aggregate values
on the fly during data load.
Manage header information, such as ignoring extraneous headers or
setting up special purpose headers for label identification.
Select or reject records on data load, screening on key words or
values by field.
Manipulate date and data formats.
Update unrecognized new members on the fly without creating
error conditions.
Create uniqueness in member names of source data by adding a
prefix or suffix or by replacing member name elements.
Clean up source file leading and trailing white space.
Scale incoming data on the fly.

You view load rules


associated with a
database on the
Server desktop.

Click this object


button to see and
access specific Load
Rules.

Setting Up a Data Load Rule

Do the same four things every time you open up a load rule that loads
data.

1) Associate an outline through the Options menu.


This lets Analytic Services knows what dimension structures or
members it reads from the outline.

2) Open a data source file through the File menu.


This lets Analytic Services know about the source information it
matches with the outline.

3) Set the data file delimiter if the delimiter is other than tab.
This is also the best time to set the number of rows to skip if you
have header lines in the incoming data file.

Hyperion 6-7
Loading Data Fast Track for Designers
6
4) On the View menu, check Data Load Fields.

Once a source data file is


open, the first 50 to 200
records in that file show in
the top half of the Data
Prep Editor interface.

The bottom half of the


Data Prep Editor shows
what the source
information looks like
going into Analytic
Services after applying
various rules.

Associating Fields with Dimension Members

Data load rules, just like rules for dimension building, rely on a column
organization of the source file. To set up a data load rule, you need to tell
Analytic Services what to do with each column. Specifically, at some level
of detail, you need to match each column of information, which contains
either a member label or a data element, to a specific dimension or a
member within a dimension.

6-8 Hyperion
Fast Track for Designers Loading Data
6

To associate fields with dimension members:

1) Select any member or the column header of the data column you
want to associate with the outline.

2) Select Field / Properties.

3) Select the Data Load Attributes tab.

4) Select the Dimension represented by the column’s label information.

For columns that include data, select the specific Member in the
accounts dimension which the data represents.

✍ If necessary double click on the check mark dimension visible


in the Member area in order to drill down to specific members.

5) If the data is formatted such that there is only one column of data that
represents a combination of all the dimensions, you may need to tag
the field as a Data Field. Select Field / Properties.

Hyperion 6-9
Loading Data Fast Track for Designers
6
6) Select the Global Properties tab if necessary.

7) Select Data Field.

8) Click OK.
The member name selected displays in the column header on the
Analytic Services window of columns.

6-10 Hyperion
Fast Track for Designers Loading Data
6

When you
have
multiple data
columns,
use member
names for
the field
definition.

Use the Data field


in loads where
there is only one
column of data and
all the dimensions
are represented.

Hyperion 6-11
Loading Data Fast Track for Designers
6
Two Methods for Initiating a Load Procedure
You may initiate a load procedure in either of two methods:

Manual method
Automated method

To initiate a load procedure manually:

1) From the Application Manager Desktop, select Database / Load Data.

2) Next to Data files, click Find.

3) Select a data file.

4) Click OK.
The Data Load window displays.

6-12 Hyperion
Fast Track for Designers Loading Data
6
5) Select Use Rules.
The second Find button becomes available.

6) Next to Rules file, click Find.


The Open Server Rules Object window displays.

7) Select a rule file.

8) Click OK.
The Data Load window displays.

9) If you are capturing unknown members using any of the Add as


methods on the Dimension Build Setting dialog, select Modify Outline.

10) Select Load Data.

Match up one or more


data files with a single
load rule in the Load
Data dialog box.

✍ This confirms that you are loading data. If this setting is not
selected, your data does not load.

11) Select Interactive.

✍ This option interrupts the data load awaiting your intervention


to deal with unrecognized members.

12) If you want no records to load if an error occurs in the data file, select
Abort On Error During Dataload.

Hyperion 6-13
Loading Data Fast Track for Designers
6
13) When the desired settings are complete, click OK.

To initiate a load procedure using the Automated Method:

• Execute an ESSCMD batch script that includes an import


command.

✍ The Import statement identifies the name and location of the


source files and load rule and other loading parameters such as
behavior on error conditions.

Sure takes a load


off my mind.

6-14 Hyperion
Fast Track for Designers Loading Data
6
Maximizing Data Load
Loading data generally does not take a long time. The following
guidelines ensure that you do not have any performance problems.

Data load time is highly impacted by the organization of the source


file.

✍ The source file should be organized so that Analytic Services


does not have to revisit data blocks, the basic unit of storage,
more than once.
Structure your source file for maximum efficiency and to minimize
passes on data blocks.

Minimize How Many Times You Touch the Blocks

For maximum efficiency and to minimize passes on data blocks, structure


your source file as follows:

For labels identifying the data points, set sparse dimensions to the
left and dense dimensions to the right.
Sort the columns left to right.
Use simple load rules.

Load rules interpret the source files. Highly complex rules that involve
substantial interpretation, for example, those that contain select and reject
screens, complex column moves, splits and joins, and so on, takes longer
to load than simple rules.

Hyperion 6-15
Loading Data Fast Track for Designers
6
Bad Source Organization

Because dense dimensions (Time and Accounts) are on the left, data
blocks after being created is continuously paged in and out of memory
during data load.

Good Source Organization

With dense dimensions (Time and Accounts) on the right, and sparse
dimensions (Customer and Product) sorted by column, data blocks are
visited only one time each.

6-16 Hyperion
Fast Track for Designers Loading Data
6
Exercise - Working with Difficult Data
Create a new load rule to load Harddata.xls into the Sales database.To
complete this exercise:

Examine the Harddata.xls file


Identify any problems or ambiguities within the data
Specify field properties
Ignore any extraneous data
Verify header information
Add any unrecognized customers and products to the outline
Save the load rule
Load Harddata.xls to the Sales database

Hyperion 6-17
Loading Data Fast Track for Designers
6
Check Your Understanding

1) What are three ways to load data?

2) What can Load Rules do for data loading?

3) What is the Four Step Startup Procedure when you open a load rule?

4) What are two methods for initiating a load procedure?

6-18 Hyperion
Fast Track for Designers Loading Data
6

Hyperion 6-19
Loading Data Fast Track for Designers
6
Check Your Understanding Solutions

1) What are three ways to load data?

• Free form loading without rules


• Lock and Send with a spreadsheet
• Using load rules

2) What can Load Rules do for data loading?

• Load hundreds or thousands of records at one time in a single


batch process.
• Identify record elements to members in the outline.
• Overwrite existing loaded or calculated values and aggregate
values on the fly during data load.
• Manage header information, such as ignoring extraneous
headers or setting up special purpose headers for label
identification.
• Select or reject records on data load, screening on key words or
values by field.
• Manipulate date and data formats.
• Update unrecognized new members on the fly without creating
error conditions.
• Create uniqueness in member names of source data by adding a
prefix or suffix or by replacing member name elements.
• Clean up source file leading and trailing white space.
• Scale incoming data on the fly

3) What is the Four Step Startup Procedure when you open a load rule?

• Do the same four things every time you open up a load rule that
loads data.
• Associate an outline through the Options menu.
• Open a data source file through the File menu.
• Set the data file delimiter if the delimiter is other than tab.
• On the View menu, check Data Load Fields.

6-20 Hyperion
Fast Track for Designers Loading Data
6
4) What are two methods for initiating a load procedure?
• Manual method

From the Server Desktop, select Database / Load Data and fill
out the Data Load dialog.

• Automated method

Execute an ESSCMD batch script that includes an import


command.

Hyperion 6-21
Loading Data Fast Track for Designers
6

6-22 Hyperion
7
Dealing With Formats And Records

Chapter Objectives
Upon completing this chapter, you will be able to:

• Define global properties


• Handle data values on load
• Manipulate column fields
• Manage headers
• Select and reject records
• Capture unrecognized members
Dealing With Formats And Records Fast Track for Designers
7
Setting the Stage
You now know how to create load rules to load outline members and data.
What you have not seen are the many bells and whistles in load rules for
resolving messy format and records problems in source files. In this
section, you learn how to resolve a wide range of such problems by
defining attributes, manipulating column fields, substituting and ignoring
headers, selecting and rejecting fields, capturing unrecognized members,
and other features. Most of these features apply to rules for both outline
maintenance and data load.

Move, Dup and Ignore

7-2 Hyperion
Fast Track for Designers Dealing With Formats And Records
7
Defining Global Properties
You can manage a wide range of formatting problems from the Global
Properties panel. This panel is accessed from the Field / Properties menu.

Fixing Specific Format Problems

Areas on the Global Properties panel provides various format


manipulation possibilities. These format manipulations may be used for
load rules for either dimension building (DB), for data loading (DL), or for
both (Both):

Convert Case

Selecting a Convert Case choice, lets you convert all incoming files names
from lower to upper case or vice versa. By default, the choice for Original
case is preselected.

Keep original case of


members, or change to
upper or lower case.

Hyperion 7-3
Dealing With Formats And Records Fast Track for Designers
7
Prefix and Suffix

The Prefix and Suffix area lets you add a specific prefix or suffix to
incoming member names. This feature is typically used where you need to
create uniqueness in member names distinct from other columns.

Add a prefix or suffix to all


members in a column.

Format Controls

In the lower left portion of the Global attributes panel, there are six
controls that let you format your data file columns. This table lists the
selections and defines their specific use.

Apply these check box


controls to specific columns.

Data Field Select when the column is the only data field in the
data source file, that is. other columns and/or headers
have identified the record in its completeness to all
dimensions. (DL)

Ignore Field During Select for columns in data files where the information
Data Load is extraneous to the outline and is not data. (DL)

Ignore Field During Just like the check box above but used only for
Dimension Build dimension building, select for columns in dimension
building files where the information is extraneous.
(DB)

Drop Leading and Leading and trailing whitespace in source files cause
Trailing Whitespace errors that prevent loading. Leave this box selected
unless such whitespace is part of the member
identification which, incidentally, is not a very good
idea. (Both)

7-4 Hyperion
Fast Track for Designers Dealing With Formats And Records
7
Convert Spaces To This feature is not commonly used, a carryover from
Underscores the 2.x version of Analytic Services where member
names could not include blank spaces. (Both)

Scale You may change the scale of incoming data by


selecting and entering a multiplier. For example,
1,234,567 would be converted to 1,234.567 when
multiplied by .001. (DL)

Replace With

You may create complex replace functions on member names. You


typically use this feature to resolve member uniqueness problems, strip
unwanted identifier information or substitute member name
identifications to accommodate naming differences between source
systems and Analytic Services.

To set up a replace function:

1) Enter the Replace and With string parameters.

Replace is how the string displays in the column of label information;


With is the string you want to appear for the replaced string.

2) Check the check boxes as appropriate for:


• Case Sensitive
• Match
• Whole Word
• Replace All Occurrences

Click Add.

3) To edit a replace function, select the replace line on the list, change the
item, then click Change.

Hyperion 7-5
Dealing With Formats And Records Fast Track for Designers
7
4) Multiple parameters can be assigned to a column by adding
additional Replace and With combinations.

You may set up


replace functions
that substitute on
source column
labels.

Handling Data Values On Load


You can clear existing data from the database before loading new values.
By default, Analytic Services overwrites the existing values in the
database with the new values in the data source.

You have choices about how values are aggregated upon data load. For
example, you can add or subtract the values in incoming records to
existing values in an Analytic Services database. For example, if you load
weekly values, you can add them to create monthly values in the database.

✍ Using these add or subtract options make it more difficult to recover


if the database crashes while loading data, although Analytic
Services lists the number of the last row committed in the
application event log file. To solve this problem, as a Database
Transaction setting, set the Commit Row value as 0. This causes
Analytic Services to view the entire load as a single transaction and
commit the data only when the load is complete.

Aggregate or Not?

Select Options / Data Load Settings and click the Data Values panel.

Control aggregation (or not)


of data values upon load.

7-6 Hyperion
Fast Track for Designers Dealing With Formats And Records
7
There are three choices for handling aggregations on load:

Overwrite Existing With Overwrite Existing Values, incoming data steps


Values on data already contained in the database. Use this
when you wish to replace existing records with new
ones that have identical identifiers for each dimension.
Each new record overwrites the values of the previous
one with the same member labels.

Add To Existing With Add to Existing Values, incoming data is


Values aggregated with values already contained in the
database.
If you use this when loading records into a database
with existing records with identical identifiers for each
dimension, each new record is added to the
aggregated values of all previous records with the
same member labels.

Subtract From This behaves much as Add to Existing Values, except


Existing Values values are subtracted. If you use this when loading
records into a database with existing records with
identical identifiers for each dimension, each new
record is subtracted from the aggregated values of all
previous records with the same member labels.This
feature may have limited use for reconstructing
databases that were aborted midway through loading
execution.

Manipulating Column Fields


Your source file may not always have columns in the correct sequential
order, or you may need to do other column manipulations such as
duplicating, parsing or concatenating columns to create uniqueness in
member names.

Source data contains


hierarchy information,
but without unique
member names.

Creating columns that


duplicate, move and
join source data, the
load rule creates
uniqueness in the
product hierarchy.

Hyperion 7-7
Dealing With Formats And Records Fast Track for Designers
7
Move, Split, Join and Create

The Field menu choice provides information about field attributes and
several choices to allow column manipulations that may be required to
ensure a smooth load.

A wide range of field manipulation functions are available to you


including:

Move Use Move for changing the sequential order of columns. For
dimension building, columns must display in a specific order.

Split Use Split for parsing fields. This feature is also used for
segregating columns where the source file has variable field
lengths without field delimiters.

Join Use Join for joining together two or more columns. Often
used for solutions to create uniqueness in member names.

Create Using Create Using Join is like Join, except a whole new column or
Join set of columns is created. Use this item also to duplicate a
single column.

Create Using Create Using text lets you type in any text, including a blank
Text space, and that text displays for all records in the source file.

This is the Move Field


dialog from the
Attributes menu for
moving a column from
one position to another.

7-8 Hyperion
Fast Track for Designers Dealing With Formats And Records
7
Backing Up

To view or revise the step by step interpretive actions that Analytic


Services applies for moves, splits, joins and creates, select Options/Data
File Properties then click Field Edits. This dialog shows the sequential
column edit steps that Analytic Services applies to the incoming source
file.

When you get in trouble


with moves, splits and
joins, you can back up
step-by-step on the Field
Edits panel.

From this dialog you may back up, that is, undo in multiple steps, edits
you have set up. Delete each step one at a time starting at the bottom.

Managing Headers
Sometimes you want special headers that do not appear in a source file.
Other times you may want to exclude headers that do appear in the source
file. Here is how to deal with such header problems.

To eliminate headers:

1) Select Options / Data File Properties and click Header Records.


This choice lets you skip header lines that may appear at the top
or within the source file.

Hyperion 7-9
Dealing With Formats And Records Fast Track for Designers
7
2) Enter a value for the Number of lines to skip that corresponds to the
number of header lines within the data file that you wish to ignore.

Enter number of
lines to skip to
avoid Analytic
Services
reading
extraneous
header

3) Select the Ignore Tokens tab.


Ignore specific tokens choice lets you ignore things like repeating
report names that may appear within a source file. Token is
another word for string.

4) In the Token entry field, enter the token to ignore.

5) To add the token to the list, click Add.

6) Repeat steps 3 and 4 for each token to ignore.

7) To change or delete the tokens to ignore, select the token in the list
and click Change or Delete.

8) Click OK when all desired changes have been made.


You return to the Data Prep Editor.

7-10 Hyperion
Fast Track for Designers Dealing With Formats And Records
7

To set up headers to serve as label identifiers for specific


dimensions:

1) Select Options/Data Load Settings and select the Header Definition tab.

2) Enter phantom headers for dimensions not otherwise included, for


example, Actuals.
Every dimension must be represented in a source file for data
loading. Phantom headers is a way to identify dimensions not
included in the source file.

Hyperion 7-11
Dealing With Formats And Records Fast Track for Designers
7
Selecting And Rejecting Records
Screens on Fields

By default, all records in a source file are accepted by Analytic Services.


You can set up screens, however, to select or reject records using specific
alpha or numeric criteria.

To set up select or reject criteria on records:

1) Select Record / Select or Record / Reject.

2) Enter the select or reject criteria or numeric value in the String/Number


entry box.

3) Select the conditional operator option that applies for the String
entry.

7-12 Hyperion
Fast Track for Designers Dealing With Formats And Records
7
4) Click Add.

Reject on every
record that
equals the
word Apple.

5) Apply Boolean operators for any additional condition criteria by


selecting the appropriate option.

6) Compose the addition criteria by following steps 2 through 4.

7) Click OK when all desired criteria have been entered.

Booleans on Multiple Fields

If you have select or reject criteria on multiple column fields, by default all
conditions must be met before a record is selected or rejected. That is, the
default Boolean operator operating when there are several fields with
select or reject criteria is an And operator.

To select the Boolean operator to apply for multiple field


criterion:

1) Select Options / Data Load Settings.

Hyperion 7-13
Dealing With Formats And Records Fast Track for Designers
7
2) Select the Data Values tab.

3) Select And or Or in the Global Select/Reject Boolean area for the


Boolean operator that should be applied where multiple fields have
select or reject criteria.

Capturing Unrecognized Members


In a normal production mode, new members being added to an outline are
identified and loaded with a dimension build load rule (or rules for
multiple business view dimensions) that is executed just prior to a data
load.

In a normal production mode, new members being added to an outline are


identified and loaded with a dimension build load rule (or rules for
multiple business view dimensions) that is executed just prior to a data
load.

There may be cases, however, where new members may not be captured
by this normal procedure, for example, where extracts for the outline
update are pulled on a schedule prior to preparation of the data file
extract.

✍ During a data load, if a member of a record is not in the outline,


Analytic Services considers the record to be an error in which case
the record is not loaded.

7-14 Hyperion
Fast Track for Designers Dealing With Formats And Records
7
Setting Up a Safety Net

The normal production procedure just described may be supplemented


with a safety net procedure whereby unrecognized members encountered
during a data load are identified and placed into specific locations in the
outline.

To set up a safety net procedure for capturing


unrecognized members:

1) Select View / Dimension Building Field.

2) Select Options / Dimension Build Settings and click the Dimension Build
Settings tab.

3) In the Dimension section select the dimension for which the safety net
is to be constructed.

4) Select an Add As option in the Build Methods area to select the specific
safety net method.

Hyperion 7-15
Dealing With Formats And Records Fast Track for Designers
7
For Add as child of, select the member from the drillable list that is to
be the parent of the unrecognized members.
Using the Add As features, new
members in the source data not in the
outline maybe automatically added as
children of an “Unrecognized”
member.

5) Select Ignore Conflicts.


This prevents error conditions from occurring which result from
Analytic Services attempting to add all members, whether
present or not, using the chosen Add As rule.

6) Click OK.

7) Select the column headers of all columns not otherwise included in


the Add As procedure.

8) Select Field / Properties.

9) Select the Global Properties tab.

7-16 Hyperion
Fast Track for Designers Dealing With Formats And Records
7
10) Select Ignore Field During Dimension Build.

✍ It is not necessary to associate the fields not being ignored with


their dimension names. However, to avoid getting an error
when validating the load rule, you can associate columns not
being ignored with the dimension name using the Field /
Properties to access the Dimension Building Properties dialog.
Use this to associate the Dimension. You do not need to set any
Field Types.

Robert decides to work without a net.

Hyperion 7-17
Dealing With Formats And Records Fast Track for Designers
7
Exercise - Clorox Minty
Based on what you have learned this chapter, create a new load rule to
load Minty.txt to the Mint dimension in Sales database. To complete this
exercise:

Create a new sparse dimension named Mint.


Use Minty.txt (located in the B100_5/loadrule directory)
Reformat the data file
Save the load rule
Load Minty.txt to the Mint dimension

When the data is loaded, the dimension should appear similar to this:

7-18 Hyperion
Fast Track for Designers Dealing With Formats And Records
7
Check Your Understanding

1) What options does the Global Properties panel of the Field Properties
dialog offer for handling data input file problems?

2) How does Analytic Services handle existing values on load?

3) How can you manipulate column fields for loading from the Field
menu?

4) How can you manage unwanted header lines included the data file?

5) What ways can you handle incorrect data values included in a file?

Hyperion 7-19
Dealing With Formats And Records Fast Track for Designers
7
Check Your Understanding Solutions

1) What options does the Global Properties panel of the Field Properties
dialog offer for handling data input file problems?

• You can specify Replace and With to replace a string in the data
file with a desired string.
• You can specify that the case change from upper to lower and
visa-versa.
• You can add a prefix or a suffix to field data.
• You can specify that a field be ignored during data loading or
dimension building.
• You can convert spaces to underscores.
• You can have values scaled.
• You can specify a field as a Data field.

2) How does Analytic Services handle existing values on load?

By default, Analytic Services overwrites the existing values in the


database with the new values in the data source.

You have choices about how values are aggregated upon data load.
For example, you can add or subtract the values in incoming records
to existing values in an Analytic Services database. For example, if
you load weekly values, you can add them to create monthly values
in the database.

3) How can you manipulate column fields for loading from the Field
menu?

• You can move the fields to different positions.


• You can split a field or join fields together.
• You can create a copy of a field through the Create using the Join
choice.
• You can create a new field through the Create using the Text
choice.

4) How can you manage unwanted header lines included the data file?

You can select Options / Data Files Properties to access the Header
Records panel. There you can select to ignore lines at the top of the
data file.

You can also use the Ignore Tokens tab to specify character strings
that should be ignored when encountered, for example, repeating
report names that may appear within a source file.

7-20 Hyperion
Fast Track for Designers Dealing With Formats And Records
7
You can select the Options / Data Load Setting choice to access the
Header Records panel where dimensions not included in the source
file can be identified as phantom headers.

5) What ways can you handle incorrect data values included in a file?

You can specify that a record be selected or rejected based on the


criteria set in the Record / Select or Record Reject dialogs.

You can set up a safety net whereby unrecognized members


encountered during data load are identified and placed into a specific
location in the outline.

Hyperion 7-21
Dealing With Formats And Records Fast Track for Designers
7

7-22 Hyperion
8
Basic Retrieve Operations

Chapter Objectives
On completion of this module, you will be able to:

• Install the Spreadsheet Add-in and toolbar


• Log in to the server
• Understand the rules for placing labels on a worksheet so that
Analytic Services may properly place data during a retrieve
operation
• Describe the basic retrieve operations of Analytic Services
• Understand the conditions that might impact server performance
Basic Retrieve Operations Fast Track for Designers
8
Setting the Stage
Nirvana for spreadsheet users is being able to flow complex data
seamlessly from a robust database into a spreadsheet while preserving the
spreadsheet’s wonderful tools for formatting, graphing and using
formulas. That is what the Spreadsheet Add-in delivers.

Installing The Spreadsheet Add-in


The Spreadsheet Add-in is installed on a user’s personal computer. This
machine is called a client.

Appearance of
the Essbase
menu indicates
that Spreadsheet
Add-In is
installed.

If the Spreadsheet Add-In is installed, but the Essbase menu does not
display, then it needs to be added.

8-2 Hyperion
Fast Track for Designers Basic Retrieve Operations
8

To activate the Spreadsheet Add-in (MS Excel):

1) From MS Excel, select Tools / Add-Ins.

Select Tools / Add-Ins to


toggle on and off the
Spreadsheet Add-in.

2) Select Hyperion Essbase OLAP Server DLL.

3) If the DLL check box does not display, click Browse, and go to
Essbase\Bin\Essexcln.xll to install the add-in to Excel.

Installing the Toolbar

The Spreadsheet Add-in comes with its own custom toolbar which
incorporates most of the commands on the Essbase menu.

To install the Spreadsheet Add-in toolbar:

1) From your spreadsheet reporting program, select File / Open.

2) Browse to the Essbase\Client\Sample directory.

3) Select Esstoolb.xls.

4) If the macros warning dialog box displays, click Enable Macros and
then click OK.

5) If you do not see the toolbar, select View / Toolbars / Essbase.

Place your cursor over a specific tool to


see the tool tip that explains the tool’s
functionality.

Hyperion 8-3
Basic Retrieve Operations Fast Track for Designers
8
Logging In
Users log in from their client machines to the Essbase OLAP server after
starting MS Excel or Lotus 1-2-3.

To connect to the Server:

1) Select Essbase / Connect.

Each worksheet in a
workbook may be linked to
a different database.

2) Select a Server, type your Username and Password.

3) Click Update.
A list of Application/Database combinations that you have been
granted access display under Analytic Services security system.

8-4 Hyperion
Fast Track for Designers Basic Retrieve Operations
8
4) Select the database to which you want to link the currently active
worksheet and click OK.
The sheet is connected to the database chosen.

✍ Retrieval into subsequent sheets automatically links those sheets to


the same database as the last connected sheet.
You can verify a specific sheet’s connection from the Essbase/
Options/Style panel. By choosing Essbase / Disconnect you can
view all connections from the disconnect dialog. All sheets are
automatically disconnected when you exit from Excel or Lotus.

The disconnect dialog lets


you view all current
connections in all
workbooks.

Label Scanning
Upon any retrieve action from the Essbase menu, such as Retrieve, Zoom
In, Keep Only or Pivot, Analytic Services initiates a label scanning process
left-to-right, top-to-bottom.

The scanning looks for labels on the spreadsheet to match with members
in the outline. The header section of the worksheet is scanned first, then
the row / column section.

Once at least one label is matched for each dimension with members in the
outline, then Analytic Services knows where to place data, assuming the
labels follow the rules of the game outlined in the following section.

The header section,


sometimes called the
Page Header, is
scanned first.

Rows and columns


are scanned second.

Hyperion 8-5
Basic Retrieve Operations Fast Track for Designers
8
General Rules

The following list describes general rules for placing labels on a worksheet
so that Analytic Services may properly place data during a retrieve
operation. If the rules are not followed, an error message dialog displays
describing the error condition. When the error message is dismissed, the
requested retrieve action is not performed.

Labels on the worksheet must match outline members or their


aliases exactly. Look out for trailing white space. A space is
interpreted as a valid character.
Worksheet labels are not case sensitive unless case sensitivity is set
by the database designer in the outline by selecting Settings / Case
Sensitive Members.

✍ We do not recommend setting members to be case sensitive.

Any dimension may appear in the header or row/column sections in


any combination with other dimensions.
All dimensions, except attribute dimensions, must be represented in
the header or row/column section before Analytic Services
encounters a data point.
Rows or columns that contain header or row/column labels for
retrieving can be hidden. For example, labels for retrieval need not
display on the visible report format. To hide a row, select the row to
be hidden, then select from the Excel menus, Format/Row/Hide.
Except for a few minor restrictions, labels that do not display in the
outline. For example, your own special labeling may display
anywhere on the sheet. Analytic Services alerts you to such
extraneous members with a warning dialog box upon a retrieve
action. The unknown member message may be toggled on and off
from the Essbase/Options/Global panel.
Labels that look like a numeric or date may be interpreted by Excel
as a number or date convention rather than a member name. For
example, 0198 is read by Excel as the numeric value 198. Precede
such typed values with an apostrophe to cause them to be
interpreted as text and thereby a valid member name from the
outline.

8-6 Hyperion
Fast Track for Designers Basic Retrieve Operations
8
When attribute dimensions are included in a report (they are not by
default), generally they behave like regular dimensions in terms of
navigation. However, when drilling on a level 0 attribute dimension,
a different set of rules apply.

Hey, you didn’t


say anything
about rule x.

Header Rules

The following rules apply to the scanning process for the header section of
the worksheet.

Only one member from a given dimension may display.


Header members define all the data on the page for that dimension.
If a dimension is represented in the header section, then members
from the same dimension cannot display in a row or column.
Any dimension (excluding attribute dimensions) not found on the
worksheet during the label scanning process is placed into the
header section at the dimension name (generation 1) member.
Retrieving into a blank sheet places all non-attribute dimensions at
generation 1 onto the sheet as a header except the first dimension
appearing in the outline which displays as a row.
Header member names may display in any order. They may also be
stacked in multiple rows. Stacking header members results in a new
header placement when you drill across columns.
Zooming on a header member causes it to become a new row.
Zooming on a header member holding the Alt key causes it to
become a new column.

Members in the
header section
define the data for
the entire sheet for
that dimension.

Hyperion 8-7
Basic Retrieve Operations Fast Track for Designers
8
Row/Column Rules

Follow these rules to apply the placement of row and column labels:

Rows and columns must be below the page header section starting
on a separate row.
There must be at least one row and one column on a report. In some
formats, Analytic Services may interpret one of the page headers as a
column header.
Column headings must be on a row of their own prior to the row
headings. All members from a given dimension that is a column
header must display on the same row.

Column headers
are each on a row
of their own.

Row headers are each


on a column of their
own.

Row headings must be in a column of their own, but row headings


may reside in a column that sits between column headers. All
members from a given dimension that is a row header must display
in the same column.

8-8 Hyperion
Fast Track for Designers Basic Retrieve Operations
8
Row and column headings must contain members from only one
dimension.
Rows and columns may be nested:
• There is no limit to the number of levels of nesting in any
combination for rows and columns up to the total number of
dimensions in the database.
• Nesting can be done with asymmetrical headers for columns by
stacking member names. For example, the nesting relationships
are hard wired one on top of another.

With asymmetrical headers,


columns relationships between
dimensions can be hard wired by
stacking members.

Hyperion 8-9
Basic Retrieve Operations Fast Track for Designers
8
Retrieve Mechanics
These are the basic retrieve operations of Analytic Services, all of which
(except Flashback) initiate the label scanning process.

Retrieve To pull data into an existing spreadsheet scanning the labels


that are showing. Retrieve by:
• Selecting Essbase / Retrieve
• Double-clicking a blank cell or number with the left
mouse button

Keep Only/ Keeps or removes the selected member or members.


Remove Only Selections may be discontiguous (picked using Ctrl in Excel).
Discontiguous selections are not possible using Lotus.

Zoom In Drill down from a selected member into the dimension’s


hierarchy as specified in the outline. Zoom In by:
• Selecting a member then selecting Essbase / Zoom In
• Double-clicking a member with the left mouse button

Zoom Out To collapse back one level up from a selected member as


specified in the outline. Zoom Out by:
• Selecting a member then selecting Essbase / Zoom Out
• Double clicking on a member with the right mouse button

Pivot To change the row/column orientation of a dimension, or the


order of nesting of dimensions in columns. Pivot by:
• Selecting a member then selecting Essbase / Pivot
• Selecting and dragging a member using the right mouse
button

Flashback A one step undo from the last retrieve operation. Flashback
is not a retrieve operation that initiates the label scan
process.

8-10 Hyperion
Fast Track for Designers Basic Retrieve Operations
8

How a spreadsheet looks


before and after a zoom in
operation on the
Performance and Lightbolt
members.

The zoom in path


follows the
hierarchical
organization of
members in the
outline.

Hyperion 8-11
Basic Retrieve Operations Fast Track for Designers
8
Activity Status Icons

During retrieve operations, Analytic Services displays a client/server


activity icon which indicates the status of the retrieve request.

Icon With Arrow The label scanning operation has been done and the
Right request for information is being sent to the server.

Icon With No The retrieve request is being processed by the Server.


Arrow Specifically, data blocks which contain the data request
are being pulled from disc into memory on the Server.

Icon With Arrow The Server is returning the information requested.


Left

✍ If caught early in the process, you may cancel a retrieve request by


pressing the Esc.

Oops! What
was that key?

8-12 Hyperion
Fast Track for Designers Basic Retrieve Operations
8
Retrieve Performance

Normally, retrieve operations should be quick, usually taking a second or


two for a more complicated report that requires many data blocks to be
brought into memory.

Retrieve performance may be negatively impacted by server, network or


database design conditions such as:

Poor Design Where data block size is too large with low block density,
causing memory limitations for building complex reports
requiring many blocks.

Dynamic Requesting a report that includes a large number of


Calculations members that are dynamically calculated on-the-fly. This
includes Attribute Dimensions.

Transparent Where data is being requested from one database to


Partitions another, especially over a network.

Heavy Server Where too many users are attempting to access the server at
Traffic one time.

Competing Where memory intensive operations such a calculations are


Operations occupying the server.

Retrieve performance may also be negatively impacted by client or user


generated conditions such as Large Area Retrieve. This happens when a
user performs a retrieve operation while selecting a whole worksheet or
more than one column and Analytic Services attempts to retrieve into any
large selected area. Press the Esc key to interrupt.

Hyperion 8-13
Basic Retrieve Operations Fast Track for Designers
8
Exercise - Installing the Spreadsheet Add-in and Toolbar
In this exercise, you install the Spreadsheet Add-in menu and toolbar. You
must have a worksheet open to complete this exercise.

Installing the spreadsheet add-in:

1) If the Essbase menu is not visible, select Tools / Add-Ins, then check
Hyperion Essbase OLAP Server DLL and click OK.

2) If the Hyperion Essbase OLAP Server DLL is not in the list, click
Browse to the Essbase folder, then to the Bin folder.

3) Select Essexcln.xll and click OK to install the add-in.

Installing the toolbar:

1) Select File / Open.

2) Open the Essbase\Client\Sample directory and select Esstoolb.xls.

3) If the macros warning dialog box displays, select Enable Macros and
then click OK on the next dialog box.

4) If you do not see the toolbar, click View / Toolbars / Essbase.

8-14 Hyperion
Fast Track for Designers Basic Retrieve Operations
8
Exercise - Basic Retrieve Operations
In this exercise, you create a basic spreadsheet report. This exercise
assumes that you are working in your spreadsheet program and you have
the Spreadsheet Add-in installed.

1) Select Essbase / Connect.

2) Select a Server.

✍ If it is not in the list of servers, enter the name or address of the


server in the Server field. Check with your System
Administrator if you do not have this information.

3) Type your Username.

4) Type your Password.

5) Select an Application/Database.

6) Click OK.

Retrieving and navigating:

1) Select Essbase / Retrieve.

2) Select Year Tot.

Hyperion 8-15
Basic Retrieve Operations Fast Track for Designers
8
3) Select Essbase / Zoom In.

4) Double-click Quarter 1.

5) Select Jan.

6) Select Essbase / Zoom Out.

7) Select Quarter 1 through Quarter 4.

8) Select Essbase / Keep Only.

9) Select Quarter 2 and, while holding down the Ctrl key, select Quarter 4.

10) Select Essbase / Remove Only.

11) Select Essbase / Flashback.


Quarter 2 and Quarter 4 reappear on the report.

8-16 Hyperion
Fast Track for Designers Basic Retrieve Operations
8
Check Your Understanding

1) When do you log into the Essbase OLAP server?

2) What is the order in which the worksheet is scanned when retrieving


data?

3) What are three general rules for placing labels on a worksheet?

4) What are three rules that apply to the header section of the
worksheet?

5) Name two of the basic retrieve operations of Analytic Services?

6) What are some conditions that might impact retrieve performance?

Hyperion 8-17
Basic Retrieve Operations Fast Track for Designers
8
Check Your Understanding Solutions

1) When do you login to the Essbase OLAP server?

Users login from their client machines to the Essbase OLAP server
after starting MS Excel or Lotus 1,2,3.

2) What is the order in which the worksheet is scanned when retrieving


data?

The scanning looks for labels on the spreadsheet to match with


members in the outline. The header section of the worksheet is
scanned first, then the row/column section.

3) What are three general rules for placing labels on a worksheet?

Worksheet labels are not case sensitive unless case sensitivity is set by
the database designer in the outline under Setting / Case Sensitive
Members.
• Any dimension may display in the header or row/column
sections in any combination with other dimensions.
• All dimensions, except attribute dimensions, must be
represented in the header or row/column section before
Analytic Services encounters a data point.

4) What are three rules that apply to the header section of the
worksheet?

• Only one member from a given dimension may display in the


section.
• Header members define all the data on the page for that
dimension.
• If a dimension is represented in the header section, then
members from the same dimension cannot display in a row or
column.

5) Name two of the basic retrieve operations of Analytic Services?

• Retrieve, which pulls data into an existing spreadsheet scanning


the labels that are showing.
• Keep Only/Remove Only, which keeps or removes the selected
member or members.

8-18 Hyperion
Fast Track for Designers Basic Retrieve Operations
8
6) What are some conditions that might impact retrieve performance?

• Poor Design, where data block size is too large with low block
density, causing memory limitations for building complex
reports requiring many blocks.
• Dynamic Calculations requesting a report that includes a large
number of members that are dynamically calculated on-the-fly.
This includes Attribute dimensions.

Hyperion 8-19
Basic Retrieve Operations Fast Track for Designers
8

8-20 Hyperion
9
Managing Options

Chapter Objectives
On completion of this chapter, you will be able to:

• Describe the global options that apply to all worksheets a user may
open.
• Change the display, style and zoom options on an individual
worksheet.
Managing Options Fast Track for Designers
9
Setting the Stage
Spreadsheet reporting in Analytic Services looks simplistic double-click
here, zoom in there, pivot away! Underlying the easy-to-use interface,
however, is a broad array of bells and whistles for controlling behaviors of
indentation, zoom, aliases, messaging, styles and other feature sets. You
access these features from the Essbase Options dialog box.

It looks easy
to me!

9-2 Hyperion
Fast Track for Designers Managing Options
9
Global Options
Global Options are specific to the client machine set by the individual
user. The option settings apply to all worksheets and workbooks that a
user may open. Settings are made from Essbase / Options/ Global panel.

Global Options are set by


each user and apply to all
worksheets and
workbooks.

Mouse Actions

These check boxes enable the left and right mouse functionality for zoom
and pivot actions, and accessing linked objects.

✍ Enabling mouse actions for Analytic Services disables some Excel


functionality such as right mouse shortcut menus.

Hyperion 9-3
Managing Options Fast Track for Designers
9
Display Messages

These options set messaging parameters. This table summarizes the


display message selections.

Warnings This setting is the default message level which


displays the most important information a user needs
to know.

Information This setting gives you all detail as recorded to the


application log. Setting at this level is sometimes
useful when debugging calc scripts since each log
entry for the calculation process is displayed.

None This setting turns off all messaging, including retrieve


format errors. Use this setting only if code is written to
capture and report error conditions. Namely when
using Excel VBA with a custom front end for users.

Display Unknown This check box turns on and off the unknown member
Members dialog. Usually this toggle is enabled when developing
fixed format, read only reports, then turned off after
reports are complete and issued to users. Normally,
the toggle would be turned on for ad hoc style
reporting.

You can get rid of


this dialog by
deselecting Display
Unknown Members
on the Global
Options panel.

Mode

Navigate Without Data is the only selection under Mode. It lets you
develop reports using zoom, pivot and keep actions without retrieving
from the Server (no data displays).

This mode is normally set to on when developing reports and turned off
once reports are complete.

✍ Navigate Without Data may also be turned on and off from the
Essbase menu.

9-4 Hyperion
Fast Track for Designers Managing Options
9
Display Options
Display options are specific to individual worksheets. Each sheet may
have settings of its own. Display settings are made from Essbase/
Options/Display panel and are saved with the Excel workbook.

Indentation

Three levels of indentation are provided, indenting by:

Totals
Subitems
None

The user cannot override Analytic Services’ indentation settings on


retrieval sheets.

✍ Where indentation (and potentially other formatting requirements)


are very rigid, use the backsheet method where the formatted sheet
is linked by formulas to an unformatted Analytic Services retrieval
sheet.

Hyperion 9-5
Managing Options Fast Track for Designers
9
Replacement

Replacement lets you enter your own nomenclature for #Missing and
#NoAccess labels. For example, set #Missing to be dash (-) or N/A.

Suppress

Lets you suppress #missing rows, zero rows or underscore (_) characters
in member names.

Suppress #Missing and Zero functionality is defined by row. An entire


row with #Missing or Zero values would not be shown if the feature is
enabled.

✍ Suppress #Missing and Zero functionality have no memory


(previously suppressed rows with no values do not reappear if they
subsequently contain values). Use template retrieve with report
script syntax to overcome this problem.

Aliases

Aliases let you show reports using aliases rather than member names.
There are two alias options.

Use Aliases Aliases are used according to the alias table set.
Members with no aliases default to the member name.

Use Both Member Places both the member name and aliases on a report
Names and for row dimensions. This may be distracting where you
Aliases have multiple nested rows. Member names are
duplicated where there is no alias. This feature is not
functional for columns.

Cell

Cell options let you control the display of certain cell characteristics.

Adjust Columns When enabled it automatically adjusts column width to the


widest number, member name or user entered label
spacing. Turn this feature on when creating reports and off
when fixed format reports are finalized.

Repeat Member Fills in outer nested member names (or aliases) in rows
Labels and columns when more than one dimension is used. This
feature is useful when creating reporting formats for
export to sources that require full row identification of data
labels.

9-6 Hyperion
Fast Track for Designers Managing Options
9
Style Options
Style Options are specific to individual worksheets. Each sheet may have
style settings of its own.

Herbie shows his style.

Hyperion 9-7
Managing Options Fast Track for Designers
9
Style settings are saved with the Excel workbook. The settings are made
from the Essbase / Options / Display panel. Enabling styles requires
selecting Use Style on the Display panel. There are three style categories

Member Styles Lets you set font characteristics (font, size, style, color,
background and so on). For parent, child, shared members,
members with formulas and members with a dynamic calc
storage setting.
• Style settings apply to members of all dimensions.
• Parent style settings apply to all non-zero level
members. Child style settings apply only to zero level
members.

Dimension Lets you set different font characteristics for each


Styles dimension in your database.

Data Cell Lets you set font characteristics on data cells themselves
Styles (not member labels) for distinguishing Linked Objects,
Read Only and Read/Write.
A style setting must be set for Linked Objects if linked
objects are used. Otherwise, users do not know what cell to
select in order to view a linked object.

Click Format for each


style type to set font,
font type, size and
effects such as color.

9-8 Hyperion
Fast Track for Designers Managing Options
9
Zoom Options
Zoom options are also specific to individual worksheets. Each sheet may
have zoom settings of its own, and these settings are saved with the Excel
workbook. The settings are made from the Essbase / Options / Zoom
panel.

Use the Zoom panel for sheet


specific settings that govern
zoom behavior.

Zoom In

Zoom In lets you set the zoom behavior when choosing Zoom from the
Essbase menu or double clicking. There are eight settings that impact
Zoom In.

Next Level The default setting where zoom goes to the next level
in the hierarchy. For example, zooming from a
member goes to the member’s children.

All Levels Sets the zoom to drill down on all descendants of the
member selected. Be careful not to zoom to all levels
on a dimension with thousands of members!

Bottom Level Sets the zoom to drill down to zero level members in
relation to the member selected. This is a useful
feature to use when you want to quickly see the
source data which is usually loaded to the bottom of a
hierarchy.

Sibling Level, Same All three are horizontal types of zooming that cross a
Level and Same dimension’s hierarchy from the selected member
Generation rather than drilling down vertically.

Formula Allows for the drill down based on member formulas in


the outline. The drill results in a list of the members
which make up the formula.

Include Selection The parent member is retained on the report with its
children.

Hyperion 9-9
Managing Options Fast Track for Designers
9
Within Selected If there are duplicate member names on a report,
Group Zoom In only affects members of a specific group. For
example, an asymmetrical report may contain Current
Year and Budget Sales figures for Quarter 1. With this
option enabled, you could drill down to the January
value for Current Year while leaving the Budget value
at the Quarter 1 level.

Remove Unselected This feature works in tandem with Within Selected


Groups Group. When enabled, it removes non-selected
groups from the report. For example, if you are
working on an asymmetrical report that contains both
Current Year and Budget information and you drilled
into Current Year Quarter 1, the Budget values would
be removed from the report.

Zoom Out

The Zoom settings do not impact Zoom Out. In all cases, Zoom Out goes
up to the next level from the member selected.

Zooming Out from a shared member zooms back to the shared member’s
parent.

Use zoom as a tool: the best Analytic Services spreadsheet users


constantly change their zoom setting to facilitate moving around when
creating reports or for ad hoc reporting.

9-10 Hyperion
Fast Track for Designers Managing Options
9
Exercise - Using Global Options
In this exercise, you use the Global options to set up a spreadsheet report.
This exercise assumes that the Spreadsheet Add-in is installed.

1) Open Corprpts.xls (located in the B100_5\SSReport directory).

✍ You may want to save the file with a different name and work
on the new file in order to preserve a clean copy of the file for
future use and practice. If at any time you make an error that
seems unrecoverable, simply close the file without saving it,
then reopen it and repeat the exercise.

2) Connect to the Bigcorp Sales database.

3) Select the Managing Options worksheet.

4) Select Essbase / Options.


The Essbase Options window displays.

5) Select the Global tab.

6) Clear all checkboxes on the left side of the dialog, and click OK.

7) Double-click cell C7.


Notice that no retrieval takes place.

8) Double-click cell A4 (Lightbolt 365 A).


No retrieval takes place.

Hyperion 9-11
Managing Options Fast Track for Designers
9
9) Select Essbase / Options.
The Essbase Options window displays.

10) Select the Global tab.

11) Select Enable Secondary Button and Enable Double-Clicking.

12) Click OK.

13) Double-click C7.

14) Select THUNDERBALL 270 A.

15) Select Essbase / Zoom Out.

16) Select LIGHTBOLT 365 A.

17) Select Essbase / Zoom Out.

✍ If you do not select the Enable checkboxes in Global Options,


this is the only way you can zoom in and out.

18) Select Essbase / Options.


The Essbase Options window displays.

19) Select the Global tab.

20) Select Navigate without Data.

21) Click OK.

9-12 Hyperion
Fast Track for Designers Managing Options
9
22) Double-click Lightbolt.

✍ This feature is very useful for speeding up operations while


you are configuring the worksheet.

23) Select Essbase / Options.

24) Select the Global tab.

25) Deselect Navigate without Data.

26) Select Enable Linked Object Browsing.

27) Click OK.

28) Select Essbase / Retrieve.

29) Double-click on a cell containing data, (not a cell containing a label).

30) Click Close.

✍ The Linked Object Browser only opens when you click a cell
within the retrieval area.

31) Close Corprpts.xls without saving.

Hyperion 9-13
Managing Options Fast Track for Designers
9
Exercise - Spreadsheet Options - Display
In this exercise, you use the Display options to set up a spreadsheet
report.This exercise assumes that the Spreadsheet Add-in is installed.

1) Open Corprpts.xls (located in the B100_5\SSReport directory).

2) Select the Managing Options worksheet.

3) Select Essbase / Options.


The Essbase Options window displays.

4) Select the Display tab.

5) In the Indentation section, select None.

✍ Note the indentation of the product members prior to


retrieving. Retrieve and note the difference. Experiment with
indentation settings at your leisure.

6) Click OK.

9-14 Hyperion
Fast Track for Designers Managing Options
9
7) Select Essbase / Retrieve.

Suppressing #Missing:
Help! Help!
I’m being
suppressed! ✍ Notice the #Missing labels. This tells you that there is no data in
those cells on the Essbase OLAP server.

1) Select Essbase / Options.


The Essbase Options window displays.

2) Select the Display tab.

3) In the Suppress section, select #Missing Rows.

4) Click OK.

5) Select Essbase / Retrieve.

✍ #Missing labels are only suppressed when the entire row is


#Missing. Use this feature with care. Because Analytic Services
is label-driven and you have suppressed those labels, Analytic
Services does not return data to those rows in the future even if
data is present for those members in future months. To return
the label, you have to rename #Missing and Zoom Out.

6) Select Performance.

7) Select Essbase / Zoom Out.

Hyperion 9-15
Managing Options Fast Track for Designers
9
8) Select Essbase / Options.
The Essbase Options window displays.

9) Select the Display tab.

10) In the Suppress section, deselect #Missing Rows.

11) In the Replacement section, enter n/a in the #Missing Label text box.

✍ This lets you use a different label to identify cells that have no
data. You can make the label anything you want.

12) Click OK.

13) Select Family Total.

14) Select Essbase / Zoom In.

Setting aliases and column adjustment:

1) Select Essbase / Options.


The Essbase Options window displays.

2) Select the Display tab.

3) In the Aliases section, select Use Aliases.

4) In the Cells section, select Adjust Columns.

5) Select Essbase / Retrieve.

Aliases replace
member names.

6) Close Corprpts.xls without saving.

9-16 Hyperion
Fast Track for Designers Managing Options
9
Exercise - Spreadsheet Options - Zoom
In this exercise, you use the Zoom options to set up a spreadsheet
report.This exercise assumes that the Spreadsheet Add-in is installed.

1) Open Corprpts.xls (located in the B100_5\SSReport directory).

2) Select the Managing Options worksheet.

3) Select Essbase / Navigate without Data.

4) Select THUNDERBALL.

5) Select Essbase / Zoom Out.


Performance displays alone on the report.

6) Select Essbase / Options.


The Essbase Options window displays.

7) Select the Zoom tab.

8) In the Zoom In section, select Next Level.

9) In the Member Retention section, select Include Selection.

10) Click OK.

11) Select Performance.

12) Select Essbase / Zoom In.

Hyperion 9-17
Managing Options Fast Track for Designers
9
13) Select Essbase / Retrieve.
Lightbolt, Thunderball and Performance are still showing (that is
what Include Selection does).

14) Experiment with different settings and with Include Selection until
you are comfortable with the effects of each. Different settings are
useful in different situations.

15) Select Essbase / Navigate Without Data.

16) Close Corprpts.xls without saving.

9-18 Hyperion
Fast Track for Designers Managing Options
9
Exercise - Spreadsheet Options- Style
In this exercise, you use the Zoom options to set up a spreadsheet
report.This exercise assumes that the Spreadsheet Add-in is installed.

1) Open Corprpts.xls (located in the B100_5\SSReport directory).

2) Select the Managing Options worksheet.

3) Select Essbase / Options.


The Essbase Options window displays.

4) Select the Style tab.

✍ The Style panel is only visible in the Options dialog when you
are connected to a server. If you do not see the panel, select
Essbase/Connect and connect to your server and database.

Setting Parent and Child style options:

1) In the Members section, select Parent.

Hyperion 9-19
Managing Options Fast Track for Designers
9
2) Click Format.

3) Use this table to set the Parent member format:

Font MS Sans Serif

Style Bold

Size 12

4) Click OK.

5) Select Child.

6) Click Format.
The Font window displays.

7) Use this table to set the Child member format:

Font MS Sans Serif

Style Bold

Size 10

8) Click OK.

9) Select the Display tab.

10) In the Cells section, select Use Styles.


The Use Styles option enables your style changes.

11) Click OK.

✍ Notice that there is no change, you must retrieve to see the


styles.

9-20 Hyperion
Fast Track for Designers Managing Options
9
12) Select Essbase / Retrieve.

✍ Styles apply to members only, not to data.

Setting dimension styles:

1) Select Essbase / Options.


The Essbase Options window displays.

2) Select the Style tab.

3) In the Members section, deselect Parent and Child.

✍ This is important because they override styles set lower in the


dialog.

4) In the Dimensions section, select Year Tot.

5) Click Format.
The Font window displays.

6) Use this table to set the Year Tot dimension format:

Font MS Sans Serif

Style Bold

Size 10

7) Click OK.
The Essbase Options window displays.

8) From the Background Color drop-down list, select Yellow.

9) In the Dimensions section, select Product.

Hyperion 9-21
Managing Options Fast Track for Designers
9
10) Click Format.
The Font window displays.

11) Use this table to set the Product dimension format:

Font MS Sans Serif

Style Bold

Size 10

Color Red

12) Click OK.


The Essbase Options window displays.

13) From the Background Color drop-down list, select Lime.

14) Click OK.

15) Select Essbase / Retrieve.

16) Clear all member and dimension styles.

17) Close Corprpts.xls without saving.

9-22 Hyperion
Fast Track for Designers Managing Options
9
Check Your Understanding

1) What does the Navigate Without Data option let you do?

2) What happens when you select the Adjust Columns display option?

3) Describe how the Member Styles option changes the characteristics of


the members in a dimension.

4) Describe three Zoom In options.

Hyperion 9-23
Managing Options Fast Track for Designers
9
Check Your Understanding Solutions

1) What does the Navigate Without Data option let you do?

It lets you develop reports using zoom, pivot and keep actions
without retrieving to the Server. You would normally set this option
on when developing reports and off once the reports are complete.

2) What happens when you select the Adjust Columns display option?

The column width is automatically adjusted to the widest number,


member name or user entered label spacing. Turn this feature on
when creating reports and off when fixed format reports are
finalized.

3) Describe how the Member Styles option changes the characteristics of


the members in a dimension?

The Member Styles option lets you set font characteristics (font, size,
style, color, background, and so on) for parent, child, shared
members, members with formulas, and members with a dynamic calc
storage setting.

4) Describe three Zoom In options.

Next Level The default setting where zoom goes to the next level
in the hierarchy. For example, zooming from a
member goes to the member’s children.

All Levels Sets the zoom to drill down on all descendants of the
member selected. Be careful not to zoom to all levels
on a dimension with thousands of members!

Bottom Level Sets the zoom to drill down to zero level members in
relation to the member selected. This is a useful
feature to use when you want to quickly see the
source data which is usually loaded to the bottom of a
hierarchy.

Sibling Level, All three are horizontal types of zooming that cross a
Same Level dimension’s hierarchy from the selected member
and Same rather than drilling down vertically.
Generation

Formula Allows for the drill down based on member formulas


in the outline. The drill results in a list of the members
which make up the formula.

9-24 Hyperion
10
More Bells & Whistles

Chapter Objectives
Upon completion of this chapter, you will be able to:

• Use the Pivot, Member Selection and Cascade features to create


spreadsheet reports
• Describe how to use spreadsheet formulas with Analytic Services
retrieve functions
• Implement Dynamic Time Series reports
• Set up and use linked objects
• Drill with attribute dimensions
More Bells & Whistles Fast Track for Designers
10
Setting the Stage
With each major release Analytic Services has made major improvements
to the Spreadsheet Add-in. However, the feature set is so prolific and
varied that no reasonable classification or organization scheme makes
sense. Therefore, this final feature section is called simply More Bells And
Whistles.

Using Pivot
Pivot is a powerful spreadsheet reporting feature that lets you
dynamically change row/column orientation of dimensions and change
the order of row or column nesting of stacked dimensions. There are two
methods to execute a pivot:

Pivot using the mouse


Pivoting using the Essbase menu

10-2 Hyperion
Fast Track for Designers More Bells & Whistles
10
The Essbase Menu

To pivot using the Essbase menu, select a row or column member of a


dimension (it does not matter what member is chosen), and select Essbase
/ Pivot. The entire dimension is pivoted to the opposite axis. A row
becomes a column, or a column becomes a new row header.

Use Pivot to
change the
row or column
orientation of a
dimension’s
members.

Hyperion 10-3
More Bells & Whistles Fast Track for Designers
10
Pivot Using the Mouse

Select with the right mouse a row or column member of a dimension, and
then drag the member to the opposite axis.

Use Pivot to change the


order of nesting of
dimensions where there
are multiple row or column
headers.

Placing the cursor to the right of a row member being pivoted from a
column causes the pivoted dimension to display to the right of that
member. Placing the cursor within a row member causes the pivoted
dimension to display to the left.

Placing the cursor underneath a column member being pivoted from a


row causes the pivoted dimension to appear under that member. Placing
the cursor within a column member causes the pivoted dimension to
display on top.

10-4 Hyperion
Fast Track for Designers More Bells & Whistles
10
Exercise - Using Pivot
In this exercise, you use the Pivot feature to format a spreadsheet report.
This exercise assumes that you have the Spreadsheet Add-in installed.

1) Open Corprpts.xls (located in the B100_5\SSReport directory):

2) Select the Pivot Spigot worksheet.

3) Select OEM.

4) Select Essbase / Pivot.

5) Click and hold the right mouse button on Distributor.

✍ It is important to wait for the label, because Essbase thinks you


are attempting to select a range of cells if you move the mouse
before the labels have been retrieved.

6) While continuing to hold the right mouse button, drag the Distributor
label under the first column header.

7) Select Essbase / Flashback.


Distributor switches to its original position.

Hyperion 10-5
More Bells & Whistles Fast Track for Designers
10
8) This time, using the same right mouse technique mentioned
previously, drag Distributor directly below Quarter 1.

9) Select Essbase / Flashback.


Distributor returns to its original position.

10) Practice pivoting until you are comfortable with the pivot technique.

10-6 Hyperion
Fast Track for Designers More Bells & Whistles
10
Exercise - Spreadsheet Reporting Challenge 1: Formats
Use the skills you have learned up to this point to duplicate this report.
Use Corprtps.xls worksheet Challenge1.

In addition to the report layout, format the report as follows:

Use styles to highlight all parent members.


Attach a Linked Reporting Object (LRO) to a cell note, and set up a
style to highlight cells with LROs.

Hyperion 10-7
More Bells & Whistles Fast Track for Designers
10
Member Selection
The Member Selection window provides direct access to your database
outline for pasting member names.

To access Member Selection:

• Select Essbase / Member Selection.

The Member Selection dialog presents powerful


choices for pasting member names onto a spreadsheet
for retrieval.

Member Selection Dialog Box

Member selection provides three principal methods for selecting and


pasting members onto your spreadsheet report. The methods include:

By Member Name
By Generation Name
By Level Name
By Dynamic Time Series

10-8 Hyperion
Fast Track for Designers More Bells & Whistles
10
For any of the four methods, select the dimension to be placed on the
worksheet from the dimension drop-down list. When the Time related
dimension is selected, the By Dynamic Time Series method choice under
the view method is enabled.

Choosing from the dimension


drop-down list determines which
dimension members are passed
to your worksheet.

✍ For any of the four methods, you may select a “subset” rule which
lets you qualify member lists by wild card search criteria and/or
UDAs.

Using the Save and Open buttons you may save and later recall any
complex member selection rule set you define.

Let’s see. Was it


Lightbolt,
Lightball, or just
plain Light.

Torn by too many choices, Willard


finally makes a decision: Go home.

Hyperion 10-9
More Bells & Whistles Fast Track for Designers
10
Selecting by Member Name

The By Member Name method for member selection lets you select and
paste members, taking a vertical slice of a dimension’s hierarchy starting
from an anchor member:

To create a member selection using By Member Name:

1) Select Essbase / Member Selection.


The Member Selection window displays.

2) In the View Method section, select By Member Name.

3) Select a member.

4) Click Add.
The selected member displays under Rules.

5) In the Rules section, right-click the member.

6) From the list, select a rule set of members.

7) To view the list of members selected from the chosen rule, click
Preview.

✍ The preview dialog also tells you how many members the rule
generates.

8) Click OK.
The members selected from the rules display on the worksheet
starting from the position of the cursor.

10-10 Hyperion
Fast Track for Designers More Bells & Whistles
10
When you are creating a member list you can also specify the direction
you want members displayed as well as the appearance of shared
members. Placement is either down or across the worksheet is based upon
whether the Place Down The Sheet check box is selected. Shared members
are pasted on the worksheet or not based upon whether the Suppress
Shared Member is selected.

Using the By Member


Name Method: a rule of
All Descendants And
Member selecting on
Performance places
Performance in the outline
onto the worksheet.

Select by Generation and Level Name

The By Generation Name and By Level Name methods for member


selection lets you select and paste members taking a horizontal slice of a
dimension’s hierarchy defined by the generation or level name or number.

To create a member selection using By Level (or


Generation) Name:

1) Select Essbase / Member Selection.


The Essbase Member Selection window displays.

Hyperion 10-11
More Bells & Whistles Fast Track for Designers
10
2) In the View Method section, select the By Level (or Generation) Name.

3) In the Members section, select a level (or generation) number or name


(if levels were named in the outline).

4) Click Add.
The selection displays under Rules.

5) In the Rules section, right-click on the member.

✍ Only the Subset choice is available.The By Member Name rules


choices are broader because genealogy (namely, vertical)
relationships are possible to define.

6) To view the list of members selected from the chosen rule, click
Preview.

7) Click OK.
The members selected display on the worksheet starting from the
position of the cursor.

8) Placement is either down or across the worksheet is based upon


whether Place Down The Sheet is selected.

10-12 Hyperion
Fast Track for Designers More Bells & Whistles
10
9) Shared members are pasted on the worksheet or not based upon
whether Suppress Shared Member is selected.

Using the By Level Name


Method: Selection on
Level0, Product returns all
members at the zero level
from he Product
dimension.

Hyperion 10-13
More Bells & Whistles Fast Track for Designers
10
Exercise - Using Member Selection
In this exercise, you use the Essbase Member Selection window to format a
spreadsheet report. This exercise assumes that you have Corprpts.xls open
and the Spreadsheet Add-in installed.

1) Select the Member Select worksheet (located at the bottom of the


screen).

2) On the report, select Performance.

3) Select Essbase / Member Selection.

4) In the Members section, expand Family Total.

5) Select Performance and Value.

6) Click Add.
Performance and Value display under Rules.

7) Click OK.

8) Select Performance and Value.

9) Select Edit / Delete.


The selected members disappear.

10-14 Hyperion
Fast Track for Designers More Bells & Whistles
10
Adding members with member selection rules:

1) Select cell A4.

2) Select Essbase / Member Selection.


The Essbase Member Selection window displays.

3) From the Dimension drop-down list, select Product.

4) Double-click Family Total.


Family Total displays under Rules.

5) In the Rules section, right-click Family Total.

6) Select All Descendants.

7) Click Preview.

Hyperion 10-15
More Bells & Whistles Fast Track for Designers
10
8) Click Close.
The Member Preview window closes.

9) Click OK.
The descendants of Family Total display on the report.

10) Select the descendants of Family Total.

11) Select Edit / Delete.


The descendants of Family Total disappear.

Selecting members by level:

1) Select cell A4.

2) Select Essbase / Member Selection.


The Essbase Member Selection window displays.

3) From the Dimension drop-down list, select Product.

4) In the View Method section, select By Level Name.

5) Select Lev2,Product.

6) In the Rules section, right-click Lev2, Product.


The only available choice when using By Level Name is subset as
opposed to the numerous choices available when using By
Member Name.

7) Click Remove All.

8) Add Lev0, Product to the rules window.

9) Click Preview.
A preview of selected members displays.

10) Click Close.

11) In the Output Options section, select Suppress Shared Members.

10-16 Hyperion
Fast Track for Designers More Bells & Whistles
10
12) Click Preview.
Only 27 members are selected, as opposed to 78 on the previous
preview.

13) Click Close.

14) Deselect Suppress Shared Members.

15) Click Remove All.

Using Member Selection by Generation Name:

1) In the View Method section, select By Generation Name, and note the
change in the Members window.

2) Add different generations to the Rule window and preview the


results.

✍ Note that the levels are counted from the lowest level in the
database upward and the generations are counted from the top
of the database downward.

3) Select Gen3, Product.

4) Click Add.
Gen3,Product displays under Rules.

5) Click OK.

6) Select the Gen3,Product members.

Hyperion 10-17
More Bells & Whistles Fast Track for Designers
10
Using Member Selection by Dynamic Time Series

1) Select Quarter 1.

2) Select Essbase / Member Selection.


The Essbase Member Selection window displays.

3) Expand Quarter 1.

4) Select Feb.

5) Click Add.
Feb displays under Rules.

6) In the View Method section, select By Dynamic Time Series.


The Members list changes to Dynamic Time Series labels.

7) Select Q-T-D.

8) Click Add.
Q-T-D displays under Rules

9) In the Rules section, right-click Q-T-D.


Member selection options display.

10) Select Specify Latest.

11) From the drop-down list, select Feb.

12) Click OK.

13) In the Output Options section, deselect Place Down the Sheet.

14) Click OK.

10-18 Hyperion
Fast Track for Designers More Bells & Whistles
10
15) Select Essbase / Retrieve.

Hyperion 10-19
More Bells & Whistles Fast Track for Designers
10
Exercise - Spreadsheet Reporting Challenge 2: Pivot, Zoom and Select
Using only Zoom, Pivot, Keep Only and Member Select, produce this
report. Use Corprtps.xls worksheet Challenge2.

Typing is
cheating!

I love reports

10-20 Hyperion
Fast Track for Designers More Bells & Whistles
10
Cascade
Cascade reporting lets you create one standard report complete with
precise styles, color coding and number formats and replicate this report
format to multiple cost centers, regions, product lines or other business
view elements.

To create a cascaded series of reports:

1) Create the report format you want to replicate in a separate


worksheet.

2) Select a member of the report (typically a member in the page


header).

3) Select Essbase / Cascade.

4) Select the Cascade Information tab.

Cascade replicates a
standard format with
multiple worksheets
based on cascading
from a selected
member in a hierarchy.

Hyperion 10-21
More Bells & Whistles Fast Track for Designers
10
5) Select a cascade level.

6) Select the Destination Options tab.

7) Set the Destination Directory (where files are stored), the Destination
Types, File Information and Naming Information.

With Cascade you


have choices about
where to locate the
created files and how
to name them.

8) Select the Format Options tab.

9) If desired, set Header and Footer information, Copying Formatting,


Suppress Missing Rows and Whether to Include Table of Contents.

Cascade files
generally assume
the format of the
original files. You
can also customize
headers and footers
and toggle
suppress missing
on and off.

10) Click OK.


Cascade creates multiple workbooks and/or sheets within a
workbook that replicate your standard format, retrieves on each
replicated sheet and indexes the sheet references.

10-22 Hyperion
Fast Track for Designers More Bells & Whistles
10
Exercise - Using Cascade
In this exercise, you create reports for distribution using the Cascade
option.This exercise assumes that you have Corprpts.xls open and the
Spreadsheet Add-in installed.

1) On Corprpts.xls, select the Swoosh worksheet.

2) Select OEM.

3) Select Essbase / Cascade.

4) Select the Cascade Information tab.

5) Ensure that it is set to cascade on OEM, Next level.

6) Select the Destination Options tab.

7) Browse to the directory where you would like to store the reports.

8) In the Destination Types box, select One Workbook, Separate Sheets.

Hyperion 10-23
More Bells & Whistles Fast Track for Designers
10
9) In the File Information area, select Open Created Files.

10) For Prefix type Zip.

11) For Suffix type Da.

12) For Workbook Name type OEMRpt.

13) Select the Format Options tab.

14) Select Copy Formatting.

15) Select Include Table of Contents.

16) Click OK.


The OEMRpt.xls file generates.

17) Open OEMRpt.xls and review the worksheets.

10-24 Hyperion
Fast Track for Designers More Bells & Whistles
10
Viewing the Table of Contents:

1) Start Notepad (or any other text editor).

2) Select File / Open.

3) Browse to the directory containing OEMRpt.xls.

4) Select Zip0Da.lst.

✍ You may have to switch File type of to All Files to see this file
in the directory.

5) Click Open.

Hyperion 10-25
More Bells & Whistles Fast Track for Designers
10
Managing Spreadsheet Formulas
One continuing litmus test for Analytic Services spreadsheet reporting has
been how Analytic Services interacts with formulas on a worksheet.
Earlier releases provide major enhancements to the point where near total
compatibility now exists between Analytic Services retrieve functions and
using formulas on a worksheet.

Formula Behavior

You manage formula behavior on the spreadsheet from the Essbase /


Option / Mode panel in the Formula Preservation group.

With Formula Preservation options deselected, Analytic Services steps on


formulas in a spreadsheet. For example, formulas of any type on a sheet
are overwritten by a null. To keep formulas on a sheet during a retrieve
operation, therefore, you must take action to preserve formulas.

The Formula Preservation group


box provides you the option from
maintaining formulas on a
worksheet.

The Formula Preservation check boxes function as follows:

Retain On Retrieval Preserves formulas on a simple retrieve operation, but


formulas are stepped on without warning for any other
retrieve operation such as zoom.

Retain On Keep And Enabling Retain On Retrieval activates other retrieve


Remove Only operations in layers the first layer being the check box
option to preserve formulas when using Keep Only
and Remove Only.

Retain On Zooms Enabling Retain On Retrieval also activates Retain On


Zooms which, in turn, enables the Formula Fill check
box. Retain On Zooms preserves the previous
formulas on row based zoom in and out operations.
Formula Fill fills in the appropriate formula for newly
inserted members.

10-26 Hyperion
Fast Track for Designers More Bells & Whistles
10
When you use formula preservation you need to consider:

Retain On Zooms with Fill Formulas is intended to work correctly


only on row zoom operations. Column zoom operations with these
options selected produce unexpected results.

Retain on Zooms with


Formula Fill fills in the
correct formula for new
members inserted during
the zoom operation.

Hyperion 10-27
More Bells & Whistles Fast Track for Designers
10
Exercise - Spreadsheet Formulas
In this exercise, you use formula protection options on a spreadsheet
report. This exercise assumes that you have Corprpts.xls open and the
Spreadsheet Add-in installed.

1) On Corprpts.xls, select the Formulas worksheet.

2) Select Essbase / Retrieve.

✍ This dialog box appears every time you retrieve or zoom in on


this report. This is not an error. It is an informational message
that informs you that a given piece of metadata does not
appear in the database. For the purposes of this course, always
click Yes to continue.

3) Click Yes.

4) Select cell D5 and type the formula =B5-C5.

5) Copy the formula down to cell D7.

6) Select Essbase / Retrieve.


The formula disappears.

7) Select Essbase / FlashBack.

8) Select Essbase / Options.


The Essbase Options window displays.

10-28 Hyperion
Fast Track for Designers More Bells & Whistles
10
9) Select the Mode tab.

10) In the Formula Preservation section, select Retain on Retrieval.

11) Click OK.

12) Select Essbase / Retrieve.

✍ Do not retrieve by double-clicking. Note that the formula is


preserved.

Setting retain on zooms:

1) Select Performance.

2) Select Essbase / Zoom In.

✍ Note that the formula is not preserved.

3) Select LIGHTBOLT.

4) Select Essbase / Zoom Out.

5) Select Essbase / Options.


The Essbase Options window displays.

6) Select the Mode tab.

7) In the Formula Preservation section, select Retain on Zooms.

8) Click OK.

Hyperion 10-29
More Bells & Whistles Fast Track for Designers
10
9) Select cell D5 and enter the formula =B5-C5.

10) Copy the formula down to cell D7.

11) Select Performance.

12) Select Essbase / Zoom In.

✍ The formula is preserved for Performance, but not for its


children.

13) Select Essbase / Flashback.


The original report displays.

14) Select Essbase / Options.


The Essbase Options window displays.

15) Select the Mode tab.

16) In the Formula Preservation section, select Formula Fill.

17) Click OK.

18) Select Performance.

19) Select Essbase / Zoom In.

✍ Note that the formula retains for both Performance and its
children.

10-30 Hyperion
Fast Track for Designers More Bells & Whistles
10
Dynamic Time Series Reporting
The most common special calculations in the Time dimension are period-
to-date calculations. Earlier versions of Analytic Services introduced
Dynamic Time Series calculations to automatically perform such
calculations without monthly maintenance.

You can use built-in Dynamic Time Series calculations for period-to-date
calculations such as history, year, quarter and month-to-date
accumulations.

Dynamic Time Series calculations are set up in Application Manager on


the database outline referencing reserved words such as H-T-D for history
to date, Q-T-D for quarter to date, and Y-T-D for year to date. Setup is
based on named symmetrical generations in the Time dimension.

✍ Dynamic time series calculations are calculations on-the-fly


performed at the time of the spreadsheet request. Values are not
stored.

It is also common to customize an alternate time rollup with shared


members or calculations. Using dynamic calculation storage attributes can
minimize the impact on database size.

This is the interface in Application Manager


for creating dynamic time series
calculations in Analytic Services.

The spreadsheet implementation of dynamic time series reporting is


simple and elegant.

Sometimes the simplest design is the


most effective.

Hyperion 10-31
More Bells & Whistles Fast Track for Designers
10

To use dynamic time series reporting:

1) Select Essbase / Options.

2) Select the Display tab.

3) In the Dynamic Time Series section, select Latest Time Period.

4) From the drop-down list, select the latest time period.


To enable dynamic time series
reporting, specify the latest time
period.

5) On your worksheet, place the dynamic time series key words, or their
aliases, on a worksheet just as if they were any other member in the
time dimension.

You may see and paste onto your sheet the Dynamic Time members set up
for the database by selecting By Dynamic Time Series in the View Method
option group in the Member Selection dialog. This option is available only
when the Time dimension is selected in the dimension drop list.
You may access dynamic time series
member in Member Selection by clicking
the By Dynamic Time Series method.

10-32 Hyperion
Fast Track for Designers More Bells & Whistles
10
Exercise - Spreadsheet Reporting Challenge 3: Formulas
Use formulas, member select and formatting options to create this report:

When creating this report you should:

Use Corprtps.xls worksheet Challenge3.


Add Deutsch Mark members with formulas
• use 2.2DM/$ as an exchange rate
Set options so that can still drill down or up on any accounts
members and preserve formulas

Hyperion 10-33
More Bells & Whistles Fast Track for Designers
10
Linked Objects
Analytic Services is ideally suited for loading, storing and calculating
numeric data. However, a text capability is provided where notes can be
associated with specific member combination data points, and other files
such a Word document, Powerpoint slides or even another linked
Analytic Services database can be associated with a data point. The feature
set is Linked Objects.

To create a linked object cell note from scratch:

1) Select a data point on a worksheet, then select Essbase / Linked Objects.


The Essbase Linked Objects Browser dialog opens.

2) Click Attach.

3) Select Cell Note.

4) Enter your Cell Note.

5) Click OK.

6) Click OK.

10-34 Hyperion
Fast Track for Designers More Bells & Whistles
10
7) Select Essbase / Options.
The Essbase Options window displays.

8) Select the Style tab.

9) In the Data Cells section set a style for Linked Objects.

✍ If you do not set a distinctive style for linked objects, your


users cannot find them.

To edit a linked object:

1) Select the linked cell and select Essbase / Linked Objects (or double click
the cell).
The Linked Objects browser displays.

2) Select the cell note you wish to access (multiple notes may be
attached) and click Edit.

3) To review the note click View/Launch.

To create a linked object file:

1) Select a data point on a worksheet, then select Essbase / Linked Objects.


The Essbase Linked Objects Browser dialog opens.

Hyperion 10-35
More Bells & Whistles Fast Track for Designers
10
2) Click Attach.
The Attach Liked Object window displays.

3) Select File.

4) Browse to the directory containing the file.

5) Click Open.
The Attach Liked Object window displays.

6) If desired, enter a File Description.

7) Click OK.
The Linked Object Browser displays.

8) Click OK.

10-36 Hyperion
Fast Track for Designers More Bells & Whistles
10
Exercise - Using Linked Objects
In this report you attach linked objects to a spreadsheet report. This
exercise assumes that you have Corprpts.xls open and the Spreadsheet
Add-in installed.

1) On Corprpts.xls, select the Formulas worksheet.

2) Select LIGHTBOLT.

3) Select Essbase / Zoom In.

✍ This dialog box appears every time you retrieve or zoom in on


this report. This is not an error. It is an informational message
that informs you that a given piece of metadata does not
appear in the database. For the purposes of this course, always
click Yes to continue.

4) Click Yes.

5) Select Essbase / Options.


The Essbase Options window displays.

6) Select the Global tab.

Hyperion 10-37
More Bells & Whistles Fast Track for Designers
10
7) In the Mouse Actions section, select Enable Linked Object Browsing.

8) Click OK.

9) Double-click cell C5.

10) Click Attach.

11) In the Cell Note section, type:


This is the Quarter 2 Current Year Number for Gross
Sales.

12) Click OK.

13) Click Close.

✍ Notice that you cannot tell which cell has the attachment.

Displaying linked objects:

1) Select Essbase / Options.


The Essbase Options window displays.

2) Select the Style tab.

3) In the Data Cells section, select Linked Objects.

10-38 Hyperion
Fast Track for Designers More Bells & Whistles
10
4) Click Format.
The Font window displays.

5) Use this table to set the Linked Object Format.

Font MS Sans Serif

Font Style Bold

Size 12

Color Red

6) Click OK.
The Essbase Options window displays.

7) Select the Display tab.

8) In the Cells section, select Use Styles.

9) Click OK.

10) Select Essbase / Retrieve.

Linking files to cells:

1) Double-click cell C7.


The Linked Object Browser displays.

2) Click Attach.

3) In the Attachment Type section, select File.

4) Browse to the Hyperion\Essbase\App\Bigcorp\Bin directory.

5) Select Linknote.txt.

6) Click Open.

7) Click OK.
The Linked Object Browser window displays.

8) Click Close.

Hyperion 10-39
More Bells & Whistles Fast Track for Designers
10
9) Select Essbase / Retrieve.

10) Double-click cell C7.


The Linked Object Browser displays.

11) Click View/Launch.

10-40 Hyperion
Fast Track for Designers More Bells & Whistles
10
Drilling with Attribute Dimensions
Attribute dimensions are dynamic dimensions which add richness to your
reporting. In many ways, attribute dimensions behave like ordinary
dimensions with some key differences:

Attribute dimensions do not show up in a standard retrieve. If you


open a new connection to a database with attribute dimensions and
retrieve into a blank sheet, the attribute dimensions do not display.
In order to see them you must request them explicitly by typing in
the attribute member name or by using the Query Designer.
With attribute dimensions, there is a default Attribute Calculations
dynamic dimension. In terms of navigation, this behaves like other
attribute dimensions. By default it is not displayed on retrieves until
requested explicitly by typing in the calculation attribute name or by
using the Query Designer. The names used for the Attribute
Calculation dimension can be changed in the Outline Editor. If no
Attribute Calculation is displayed, the default is to return
summations across the attribute.
Once attribute dimensions are in a report, they behave very similarly
to normal dimensions. All the navigation actions such as Zoom
operations or Pivots are normal. However, Zoom-In on level 0
attribute members gives you different behavior depending on two
factors:
• Where the attribute member displayed is positioned in the
report: as a page, row, or column dimension.
• Which base dimension members are displayed prior to the zoom.
This gets back to the hierarchy of the base dimension. Each base
dimension member displayed can be above, below, or at the
same level as the members tagged with the drilled on attribute
dimension.

Drilling on Level 0 Attribute Members

When the level 0 attribute member being zoomed in on is placed in a row


or as a page header:

In all cases, it brings the associated base dimension to the right and
adjacent to the attribute member.
If the base dimension members being displayed are at a level higher
than where the attributes have been assigned to, then it expands the
base dimension to show all members below each base dimension
member with that attribute.

Hyperion 10-41
More Bells & Whistles Fast Track for Designers
10
If the base dimension member are at the same or lower than where
the attributes have been assigned to, then the only effect is to move
the base dimension next to the attribute being drilled on.
Since multiple base dimension members may be displayed, the
preceding rules must be applied to each displayed member.

The outline has a Region


attribute dimension
associated with a
Customer base dimension.

Here are some reports to clear things up. Refer to the picture of the outline
on the previous page.

Before: In this report, we drill on Mid West. Notice that the associated base
dimension members for Customer which is above the base members tagged
with the Region attribute.

After: Drilling on the Mid West (Level 0) brings Customer adjacent to it and
results in a list of all Customers with the Mid West attribute.

10-42 Hyperion
Fast Track for Designers More Bells & Whistles
10
Now, take a look at the same example but this time instead of drilling with
Customer displayed, we do it with IBM displayed:

Before: In this report, we drill on Mid West. Notice that the associated base
dimension members for Customer are both above (OEM) and at the same
level (IBM) as the base members tagged with the Region attribute.

After: Drilling on the Mid West brings Customer adjacent to it. However, the displayed
customers this time are OEM and its descendants that have the Mid West attribute
(AST). IBM is also displayed because it is at the same level as customers with the
Region attribute.

When the level 0 attribute member being zoomed on is in a column:

In all cases, it pivots the attribute dimension from the column to the
innermost row.
If only one member from the base dimension is displayed as a page
dimension, then it stays as a page dimension without expanding on
the base dimension member.

Hyperion 10-43
More Bells & Whistles Fast Track for Designers
10
If the base dimension members are at a level higher than where the
attributes have been assigned to, then it expands the base dimension
to show all members below each base dimension member with that
attribute.
If the base dimension members are at the same level or lower than
where the attributes have been assigned to, then the only effect is to
move the base dimension next to the attribute being drilled on.

Before: In this report, we drill on Mid West which is placed as a column.


Notice that the associated base dimension member is Customer and is
played as a Page header.

After: Drilling on the Mid West only pivots it to be the innermost row in the
report. Notice that Customer is left as a Page header.

Viewing Attribute Calculations


The attribute calculations are not displayed by default. However, when
you request an attribute without referring to the Attribute Calculations
Dimension, the default is to provide the Sum.

To see other attribute calculations, type in the attribute calculation names.


The defaults are Sum, Avg, Count, Max, and Min. To see other attribute
calculations, type in the Attribute Calculation name. Then, drill on the
Attribute Calculations dimension.

10-44 Hyperion
Fast Track for Designers More Bells & Whistles
10

By default, the Sum is shown


for all Regions.

Type in the
Attribute
Calculations
dimension and
drill to see all the
available
attribute
calculations.

Hyperion 10-45
More Bells & Whistles Fast Track for Designers
10
Exercise - Drilling with Attributes
In this exercise you drill down into a report using attribute dimensions.
This exercise assumes that Corprpts.xls is open and that the Spreadsheet
Add-in is installed.

1) On Corprpts.xls, select the Attributes worksheet.

2) Select Essbase / Retrieve.

✍ Notice that attribute dimensions do not display by default.

3) In cell A2, type Region Total.

4) Select Essbase / Retrieve.

5) Select Region Total.

6) Select Essbase / Zoom In.


The children of Region Total display.

7) Select Mid West.

8) Select Essbase / Zoom In.


The report displays all customers with the Mid West attribute.

9) Select Region Total.

10) Select Essbase / Zoom Out.

11) In cell B2, type OEM.

12) Select Region Total.

13) Select Essbase / Zoom In.


The children of Region Total display.

14) Select Mid West.

15) Select Essbase / Zoom In.


All OEM customers with the Mid West attribute display.

16) In cell G1, type Attribute Calculations.

17) Select Essbase / Retrieve.

10-46 Hyperion
Fast Track for Designers More Bells & Whistles
10
18) Select Attribute Calculations.

19) Select Essbase / Zoom In.

Hyperion 10-47
More Bells & Whistles Fast Track for Designers
10
Check Your Understanding

1) Describe a method for using the Pivot feature.

2) What are the methods for selecting and pasting members into your
spreadsheet report?

3) Describe the formula preservation options.

4) What is Dynamic Time Series reporting?

5) What can you use the linked objects feature for?

6) What are the differences between attribute dimensions and ordinary


dimensions?

10-48 Hyperion
Fast Track for Designers More Bells & Whistles
10

Hyperion 10-49
More Bells & Whistles Fast Track for Designers
10
Check You Understanding Solutions

1) Describe a method for using the Pivot feature.

Select with the right mouse a row or column member of a dimension,


and then drag the member to the opposite axis.

Placing the cursor to the right of a row member being pivoted from a
column causes the pivoted dimension to display to the right of that
member. Placing the cursor within a row member causes the pivoted
dimension to display to the left.

Placing the cursor underneath a column member being pivoted from


a row causes the pivoted dimension to appear under that member.
Placing the cursor within a column member causes the pivoted
dimension to appear on top.

2) What are the methods for selecting and pasting members into your
spreadsheet report?

• By Member Name
• By Generation Name
• By Level Name
• By Dynamic Time Series

3) Describe the formula preservation options.

Retain On Preserves formulas on a simple retrieve operation, but


Retrieval formulas are stepped on without warning for any other
retrieve operation such as zoom.

Retain On Enabling Retain On Retrieval activates other retrieve


Keep And operations in layers, the first layer being the check box
Remove Only option to preserve formulas when using Keep Only
and Remove Only.

Retain On Enabling Retain On Retrieval also activates Retain On


Zooms Zooms which, in turn, enables the Formula Fill check
box. Retain On Zooms preserves the previous
formulas on row based zoom in and out operations.
Formula Fill fills in the appropriate formula for newly
inserted members.

4) What is Dynamic Time Series reporting?

A process that is used to perform dynamic period-to-date reporting.


Dynamic time series calculations are useful because they are
performed automatically.

10-50 Hyperion
Fast Track for Designers More Bells & Whistles
10
5) What can you use the linked objects feature for?

Use the linked object feature to associate text with specific member
combination data points, and other files such a Word document,
Powerpoint slides or even another linked Analytic Services database
can be associated with a data point.

6) What are the differences between attribute dimensions and ordinary


dimensions?

In many ways attribute dimensions behave like ordinary dimensions


with some key differences:
• Attribute dimensions do not show up in a standard retrieve. If
you open a new connection to a database with attribute
dimensions and retrieve into a blank sheet, the attribute
dimensions do not display. In order to see them you must
request them explicitly by typing in the attribute member name
or by using the Query Designer.
• With attribute dimensions, there is a default Attribute
Calculations dynamic dimension. In terms of navigation, this
behaves like other attribute dimensions. By default it is not
displayed on retrieves until requested explicitly by typing in the
calculation attribute name or by using the Query Designer. The
names used for the Attribute Calculation dimension can be
changed in outline editor. If no Attribute Calculation is
displayed, the default is to return summations across the
attribute.
• Once attribute dimensions are in a report they behave similarly
to normal dimensions. All the navigation actions such as Zoom
operations or Pivots are normal. However, Zoom in on level 0
attribute members gives you different behavior depending on
two factors:
• Where the attribute member displayed is positioned in the
report: as a page, row, or column dimension.
• Which base dimension members are displayed prior to the
zoom. This gets back to the hierarchy of the base dimension.
Each base dimension member displayed can be above,
below, or at the same level as the members tagged with the
drilled on attribute dimension.

Hyperion 10-51
More Bells & Whistles Fast Track for Designers
10

10-52 Hyperion
11
Report Development Procedures

Chapter Objectives
Upon completion of this chapter, you will be able to:

• Build a spreadsheet report from scratch.


11 Report Development Procedures Fast Track for Designers

Setting the Stage


We have buried you in the features and functionality of spreadsheet
reporting. Now it is time to put it all together by building real world
reports.

Before

Easy?

After

11-2 Hyperion
Fast Track for Designers Report Development Procedures
11
Five Steps for Setting Up a Report
You are staring at a blank worksheet. You need to build a complex report
for your users (or yourself) from scratch.

The process can be divided into five steps:

Set interim options


Set page header labels
Set row and column members
Set spreadsheet formatting
Set final options

Step 1 - Set Interim Options

How you set your options when you create a report is different from how
you set options when a report is completed. For example, while
developing a report, you want columns to expand and contract. Namely,
Adjust Columns should probably be turned on, but a completed report
needs to have columns fixed.

The following are recommended option settings for report development:

Deselect Formula Preservation Retain On Retrieval.


Zoom Options set to Next Level and Include Selection.
Indentation set to Totals.
Deselect Suppress #Missing and Zeros.
Set Replacement #Missing and #NoAccess to your labels.
Deselect Cells Use Styles.

Hyperion 11-3
11 Report Development Procedures Fast Track for Designers

Select Global Display Unknown Members.


Select Global Mode Navigate Without Data (Optional).

STEP ONE: Set your options to settings


appropriate to report development.

Step 2 - Set Page Header Labels

Retrieve into your blank worksheet. Analytic Services places the first
dimension as a row header and the balance of dimensions at generation
one as page headers.

At this stage, a useful sorting out procedure is to focus on those


dimensions which are page headers. Identify which dimensions have a
single member that applies to the entire sheet.

STEP TWO: Start by


retrieving into a blank
worksheet.

Then identify and


set the page
headers.

11-4 Hyperion
Fast Track for Designers Report Development Procedures
11
Using Member Selection, or by typing directly, enter all of the page header
names in the header section, and do a test retrieve.

For example, if units is a page header from the Accounts dimension, with
this header set, then all subsequent test retrieves shows unit data, thus
helping you to understand where your data is. If you are using Navigate
Without Data which speeds up the development process, then data do not
display.

Willard contemplates skipping step 2. Big mistake!

Step 3 - Set Row and Column Members

Once you have identified and set the page headers, by default all other
dimensions are either a row or column header. Use the following
parameters to organize these dimensions.

Double click header labels to move them to a row position.


Alt double click header labels to move them to a column.
Select Zoom In/Out to find the right level of detail.
Use Member Selection to focus on specific member subsets.
Get all of the member detail correct for each dimension.
Pivot rows and columns into final position with nesting.

STEP 3: Now focus on


getting the correct level
of detail for rows and
columns.

Hyperion 11-5
11 Report Development Procedures Fast Track for Designers

Step 4 - Set Spreadsheet Formatting

Setting spreadsheet formatting prior to organizing rows and column is


fruitless. Format settings do not travel in Analytic Services with zooming
and pivoting.

Once rows and columns are in place, enable Suppress Missing (if
appropriate) and do a test retrieve. This step should be taken prior to
setting any spreadsheet formats because row organization is adjusted by
the Suppress Missing retrieve.

Implement spreadsheet reporting preferences such as:

Inserting rows between subtotal sections.


Specifying numeric settings. (dollars, %, decimals, and so on)
Specifying font styles, borders, colors, and so on.
Hiding the Analytic Services header row.
Setting up your own report labels.
Entering spreadsheet formulas as required.
And other formatting as appropriate.

STEP 4: With rows and columns in place, you can now


start making the report look pretty using spreadsheet
formatting options.

Step 5 - Set Final Options

With the look and feel of your report complete, you now need to reset
options to settings appropriate to a fixed format report.

11-6 Hyperion
Fast Track for Designers Report Development Procedures
11
The following are our recommended option settings for fixed format
reports:

Select Formula Preservation Retain On Retrieval


Zoom Options set to Next Level and Include Selection
Indentation set to the reporting preference
Select Suppress #Missing and Zeros (if appropriate)
Select Cells Use Styles and implement styles
Deselect Global Display Unknown Members
Deselect Global Mode Navigate Without Data

Is that it?

Hyperion 11-7
11 Report Development Procedures Fast Track for Designers

Exercise - Reporting Challenge 4: Create an Asymmetrical Report


Use all of your spreadsheet reporting skills to duplicate this asymmetrical
report. Use Corprtps.xls worksheet Challenge4.

✍ You may want to explore using the Drill option Within selected
Group.

11-8 Hyperion
Fast Track for Designers Report Development Procedures
11
Check Your Understanding

1) What are the steps to build a spreadsheet from scratch?

Hyperion 11-9
11 Report Development Procedures Fast Track for Designers

Check Your Understanding Solutions

1) What are the steps to build a spreadsheet from scratch?

• Set Interim Options


• Set Page Header Labels
• Set Row and Column Members
• Set Spreadsheet Formatting
• Set Final Options

11-10 Hyperion
12
The Query Designer

Chapter Objectives
At the end of this chapter, you will be able to:

• Describe how to use the Query Designer and Analytic Services


Report Writer (Report Writer)
• Build reports using the Query Designer
The Hyperion Essbase Query Designer Fast Track for Designers
12
Setting the Stage
If you like more structure when building a report, Analytic Services
provides the Query Designer to handle much of the work for you. In
addition to making it easy to construct new reports from scratch, these
wizards include an array of tools for filtering and sorting reports based on
column data values. In this section, we cover the Query Designer. We
finish up by showing you how to create Report Writer reports easily
through the help of the Query Designer Wizard.

Don’t
worry. I can
help.

12-2 Hyperion
Fast Track for Designers The Hyperion Essbase Query Designer
12
Introducing the Query Designer
The Query Designer lets you quickly and easily create spreadsheet reports
using point-and-click and drag-and-drop interfaces.

The Query Designer provides a set of intuitive dialog boxes which help
step you through the process of placing member labels on the spreadsheet.

The Query Designer Wizard can help you learn how to use the Query
Designer for the first time or when you are becoming familiar with a new
outline. The wizards are especially helpful for creating a report which uses
complex nesting of members in rows or columns.

The Query Designer (version


6 and later) has an intuitive
interface that helps build
reusable queries.

The Query Designer wizard is the only part of the spreadsheet client add-
in that lets you create reports based on data values as opposed to members
labels. This is accomplished through filtering and sorting tools embedded
in the interface which let you apply specific, user-defined criteria to the
data. You can use filtering and sorting to:

Create top or bottom lists (for example, top ten customers based on
total sales)
Identify members with variance within specified ranges (for
example, actual versus budget greater than 10%)

Hyperion 12-3
The Hyperion Essbase Query Designer Fast Track for Designers
12
Identify members with values with specific ranges (for example,
units sales between 100,000 and 500,000)
Sort members according to ascending values (for example, ranking
members based on total sales)

Each wizard includes tools


for filtering and sorting data
based on values.

Like other reports you create, reports generated with the Query Designer
wizard are reusable. The wizard defines a query which can itself be saved
for future use. When you run the query, it can generate the final report
two ways.

Excel The Excel Workbook report can then be saved just like any
Workbook other. It is not necessary to run the query again if you want
to use the report in a subsequent time period. Simply
change the member names in the Excel Worksheet,
connect, and retrieve.

Report Script Report scripts can be saved along with the query.
• Report scripts are used by system administrators to
create data extracts for data load files and other system
maintenance tasks.
• Report Scripts are also used to create large reports
unsuitable for spreadsheet production.

12-4 Hyperion
Fast Track for Designers The Hyperion Essbase Query Designer
12
Four Steps Through the Query Designer
Assume you want to create a Gross Margin report for customer IBM. You
are asked to show Quarter 1 and Quarter 2 for Current Year and Prior
Year for all low level products. How would you create such a report using
the Query Designer?

Step 1 - Getting Started

To get started:

1) Open a blank worksheet and connect to the Analytic Services


database you want to be the source of the report.

2) Select Essbase / Options.


The Essbase Options window displays.

3) Set your options to appropriate settings (such as Adjust Columns,


Use Aliases and so forth).

Hyperion 12-5
The Hyperion Essbase Query Designer Fast Track for Designers
12
4) If you have chosen specific options to use, also select Use Sheet Options
with Query Designer (located on the Options / Display panel).
You must specifically check Use
Sheet Options with the Query
Designer if you want your options to
stick.

5) Select Essbase / Query Designer.

In the navigation Panel, right click Here we are selecting to create a


on the sheet and create a new new query. We could have also
query. Opened and existing query.

6) In the Navigation Panel (panel on left), select the


[bookname]sheetname for the sheet where you want to create the
query.

7) Right-click the sheet and select New / Query.

Step 2 - Place Headers, Rows and Columns

The next step in creating a report through the Query Designer, is to layout
the dimensions as Page Headers, Column Headers, and Row Headers.
Each tile in the Layout Panel represents a dimension from the database.

12-6 Hyperion
Fast Track for Designers The Hyperion Essbase Query Designer
12

To lay out page headers, column headers, and row


headers:

1) In the Navigation panel, select Dimensions.


The Layout Panel displays the report format.

2) Drag and drop tiles from their default location to the Page section of
the window.

Place dimension tiles as page headers, rows


or columns. You specify the order of nesting
for the rows and columns.

3) Drag and drop tiles from their default location to the Row section of
the dialog including left to right sequential placement of nested rows.

4) Drag and drop tiles from their default location to the Column section
of the window, including top to bottom sequential placement of
nested columns.

Hyperion 12-7
The Hyperion Essbase Query Designer Fast Track for Designers
12
Step 3 - Specify Members For Headers, Rows and Columns

Once dimensions are placed in their correct Page, Row and Column
sections, you may now select the specific members from each dimension.

To select dimension members:

1) Double-click a Dimension Page tile, or select the Page dimension in


the Navigation Panel.

Because these are page headers


the member selection only allows
one member to be selected.

2) In the members window, right-click a page member and select and


Add to Selection Rule.
The selected member appears in the Selection Rules window.

3) Repeat this procedure for other Page header tiles.

✍ To delete a selection rule, right click the member in the


Selection Rules window and select Delete Selection Rule.

12-8 Hyperion
Fast Track for Designers The Hyperion Essbase Query Designer
12
4) Double-click a Row or Column tile in the Layout Panel or select the
row or column dimension in the Navigation Panel.

Member Selection gives you lots of options: here we


are selecting all children of Scenario.

✍ Here you can select multiple members: you can select them by
double clicking the individual members; right-click the
dimension to change the view from the default Member
Names to Generation or Level.
Once you have made a selection, you can right-click the
Selection Rules for more options such as: selection of children
or descendants of a member.

5) Repeat the above procedure for each Row and Column tile.

✍ To delete member selections, right-click the member in the


Selection Rules window and select Delete Selection Rule(s).

Hyperion 12-9
The Hyperion Essbase Query Designer Fast Track for Designers
12
By right-clicking the Member selection, you can apply a new member
filter. You can then select criteria based on UDA, generation or level, or
pattern matches. You can also have AND or OR selection criteria to get
selections such as all level 0 products with a particular UDA. In summary,
you should be able to do everything that Member Selection is capable of
doing:

Create a New Member


Filter by right clicking a
selection rules criteria.

Add a selection filter


by UCA, Level,
Generation, or Pattern
Matches.

Nest Selection Criteria


based on AND/OR logic.

Step 4 - Save and Run the Completed Report

The report you have created is called a query. Saving the query makes it
available for future use as is or as a template for creating other reports. It is
saved with a .EQD extension.

When you right-click anywhere in the Navigation window, you are


presented with several options:

Save Query If you have already defined the query, this saves updates; if
you have not saved it, then you are prompted to enter a
name and location.

Save Query As Generally used when you are modifying a query and want
to save it as a new query. You are prompted to enter a
name and location.

12-10 Hyperion
Fast Track for Designers The Hyperion Essbase Query Designer
12
Close Query Close out your queries to clear up the Query Designer
navigation window if these no longer need to be used. This
does not save the query.

Apply Query This runs your report. It is a good idea to save the query
before applying it but it is not required

Save it and apply to


run the query.

Filtering for Top/Bottom N with Query Designer

Top/Bottom N is a type of filter analysis that is created from the


Navigation Panel under Data Filtering. Top/Bottom N lets you to filter
row dimension members for a specific top and/or bottom number of row
members based on the values of one column header.

To set up a Top/Bottom N filter:

1) Create a new query including member selections, or open an existing


query.

Hyperion 12-11
The Hyperion Essbase Query Designer Fast Track for Designers
12
2) In the Navigation Panel, click Data Filtering.

Select Data Filtering in the Navigation


Window. This query filters for top 10 products
based on Q1 Current Year values.

3) Next to Rank, select Top and/or Bottom.

4) Specify the number of Rows.

5) Select the Dimension being ranked.

✍ You can only select from row dimensions.

6) Select the Column used for ranking.

When using Top/Bottom N filters, you should consider these issues:

Top N and Bottom N row members may display simultaneously on


the same report.
Column references for setting the top/bottom criteria include
stacked columns where multiple nested dimensions are included in
the member specifications.
Top/bottom analysis should generally be done on row members
that are all at the same generation or level. Otherwise, intermediate
subtotals skew the results.
Top/bottom analysis should generally be done on row members that
are defined by a member selection macro using generation, level,
UDA or similar references where a complete refreshed pool of
members, not a hard wired list, is the basis for the filtering.

12-12 Hyperion
Fast Track for Designers The Hyperion Essbase Query Designer
12
Filtering Values With Query Designer

Screening on specific values is also possible when applying data filters.


Value screening lets you filter row dimension members for one or more
criteria based on the values of one column header.

To set up a value screen:

1) Create a new query including member selections, or open an existing


query.

2) In the Navigation Panel, click the Data Filtering.

Select Data Filtering in the Navigation Window. Then


double click here to add filtering.

3) In the Data Restrictions section, double-click double click to create a new


data restriction.

Value filtering allows you


to set up filters for specific
values, value ranges and
comparisons of values.

Hyperion 12-13
The Hyperion Essbase Query Designer Fast Track for Designers
12
4) Select the Column Used for Filter.

✍ This column contains the values that are the criteria for the
screening of row members.

5) From the drop-down list. Select a Boolean comparison operator


(=,>,<,...).

6) Specify a comparison value: a value of, the data values in column or a


#Missing value.

When using value filters you should consider these issues:

Multiple value filters can be applied using And/Or logic. This


feature lets you specify value ranges for screening in addition to
specific value thresholds.
Column references for setting the top/bottom criteria include
stacked columns where multiple nested dimensions are included in
the member specifications.
Value screening should generally be done on row members that are
all at the same generation or level. Otherwise, intermediate subtotals
skew the results.
Value screening should generally be done on row members that are
defined by a member selection macro using generation, level, UDA
or similar references where a complete refreshed pool of members,
not a hard wired list, is the basis for the filtering.
Beginning with Analytic Services 6.5, the Query Designer lets you
use negative numbers as filtering criteria.

Sorting with the Query Designer

Sorting based on values can be set up from the Navigation Panel under
Data Sorting. Data Sorting lets you sort row dimension members in
ascending or descending order, based on the values of a column header.

We need to
sort those
records better.

12-14 Hyperion
Fast Track for Designers The Hyperion Essbase Query Designer
12

To set up a sort:

1) Create a new query including member selections, or open an existing


query.

2) In the Navigation Panel, double-click Data Sorting.

Select Data Sorting in the Navigation Window.


Set up the sort in the data sort panel.

3) Select Dimension being sorted.

4) Specify Column used for sorting.

✍ This is the column which contains the values that are the
criteria for the sorting of row members.

5) From the drop-down list specify whether you want sorting to be done
in Ascending or Descending order.

Hyperion 12-15
The Hyperion Essbase Query Designer Fast Track for Designers
12
When sorting values, you should consider:

Multiple sorts can be set up for specific row members based on


different column headers.
Column references for setting the sorting criteria include stacked
columns where multiple nested dimensions are included in the
member specifications.
Sorting should generally be done on row members that are all at the
same generation or level. Otherwise, intermediate subtotals skew
the results.
Sorting should generally be done on row members that are defined
by a member selection macro using generation, level, UDA or
similar references where a complete refreshed pool of members, not
a hard wired list, is the basis for the filtering.

Migrating Reports from Retrieval Wizard to the


Prior to version 6.x. the Query Designer style reports were created using
the Analytic Services Retrieval Wizard (Retrieval Wizard). If your
organization still has Retrieval Wizard reports, you can easily convert
these reports to the Query Designer format. The Query Designer is
designed to read Retrieval Wizard reports that were generated in earlier
versions.

To migrate here are the steps:

1) Open the Query Designer.

2) Right-click the desired sheet in the Navigation Panel and select Open
Query.

3) In the Query Type drop-down list, select Wizard.

4) Navigate to the .WIZ file you want to migrate.

5) Click OK.
The file opens in the Query Designer.

6) Make any modifications to the query.

7) Right-click in the Navigation Panel and select Save Query As or Save


Query.

✍ The query is saved as a .EQD extension automatically.

12-16 Hyperion
Fast Track for Designers The Hyperion Essbase Query Designer
12
Report Scripting
The Report Writer is often used as an export tool to extract data. If you
ever need to write a Report Writer script do not start from scratch. Because
the syntax is difficult to remember, you can use the Query Designer to
create the report, then simply make modifications to it:

In the Query Designer, you do not need to specify anything. The


default is to create a report upon saving a Query Designer file.
Upon saving a the Query Designer report, the files created are
Reportname.eqd and Reportname.rep.

✍ Modification to any one of these in the future does not effect


the other. In other words, the link is broken after saving.
This is a great way to create reports without having to
remember detailed report script commands.

For help on Report Writer commands as well as syntax


requirements, open index.htm and navigate to Report
Commands.

Look in Application Manager for the .REP report and open it. The first line
is a comment specifying that the report was created by the Query
Designer.

✍ If you run the report in Application Manager it does not look good
because of the format command put in by the Query Designer. Turn
the format command into a comment (//) or simply delete it, and
the output is much more readable.

Hyperion 12-17
The Hyperion Essbase Query Designer Fast Track for Designers
12
Running Reports from Excel
You can copy and paste reports directly into Excel:

You must switch the mode to Free Form Mode. This puts Excel into
Report Script mode.
Free form mode accepts member names without any regard for the
Rules of the Road for retrieves. It interprets the report and format it
for you.
If you get member name problems or member out of place messages,
then you are most likely in Advanced Interpretation Mode.

Paste it in a blank sheet


and then switch modes
to Free Form.

12-18 Hyperion
Fast Track for Designers The Hyperion Essbase Query Designer
12
Exercise - Using the Query Designer
Create a report with the Query Designer with the following features:

Page Headers Margin, IBM

Column Headers Quarter1, Quarter 2 for Current Year, Prior Year,


Budget and Scenario Variances

Row Headers Lev 0 Products with string starting with Thunder

The resulting report should look like this:

Hyperion 12-19
The Hyperion Essbase Query Designer Fast Track for Designers
12
Check Your Understanding

1) What are some of the filtering and sorting features available in the
Query Designer?

2) Describe the Value Screening feature of the Query Designer and some
of the considerations when using this feature.

3) How do you copy and paste reports directly into Excel?

12-20 Hyperion
Fast Track for Designers The Hyperion Essbase Query Designer
12

Hyperion 12-21
The Hyperion Essbase Query Designer Fast Track for Designers
12
Check Your Understanding Solutions

1) What are some of the filtering and sorting features available in the
Query Designer?

You can use filtering and sorting to:


• Create top or bottom lists. For example, top ten customers based
on total sales.
• Identify members with variance within specified ranges. For
example, actual versus budget greater than 10%.
• Identify members with values with specific ranges. For example,
units sales between 100,000 and 500,000.
• Sort members according to ascending values. For example,
ranking members based on total sales.

2) Describe the Value Screening feature of the Query Designer and some
of the considerations of using this feature.

Value Screening lets you filter row dimension members for one or
more criteria based on the values of one column header.

Value screening should generally be done on row members that are


all at the same generation or level. Otherwise, intermediate subtotals
skew the results.

Value screening should generally be done on row members that are


defined by a member selection macro using generation, level, UDA or
similar references where a complete refreshed pool of members, not
a hard wired list, is the basis for the filtering.

3) How do you copy and paste reports directly into Excel?

You must switch the mode to Free Form Mode. This puts Excel into
Report Script mode.

Free form mode accepts member names without any regard for the
Rules of the Road for retrieves. It interprets the report and format it
for you.

12-22 Hyperion
13
Calculation Basics

Chapter Objectives
Upon completion of this chapter, you will be able to:

• Use unary operators for calculation


• Explain how to use formulas to calculate in an outline
• Identify when it is appropriate to use formulas in an outline as
opposed to a calc script function
• Identify basic calc script functions
• Describe basic calc script process
Calculation Basics Fast Track for Designers
13
Setting the Stage
Based on your experience with Analytic Services, you have created
outlines, performed basic aggregations and looked at spreadsheet and
advanced reporting options. Now, we focus on the Analytic Services
Calculator.

Perhaps the most unique aspect of Analytic Services is its ability to quickly
and dynamically calculate data based on the needs of the user. We are
used to dealing with spreadsheets where we have to hard-code formulas
and calculate each value individually. With Analytic Services, values are
calculated based on their structure in the outline everywhere all at once.
On the surface it is hard to fathom what that means. In a nutshell, with
Analytic Services you can easily reorganize and recalculate data to suit the
ever changing needs of your organization.

To set the stage, we look at how calculation occurs within the outline, then
follow with a quick survey of the calc script interface and the major
categories of calc functionality available in the formula commands.

Huh?

13-2 Hyperion
Fast Track for Designers Calculation Basics
13
Calculating in the Outline
Calculating in the outline takes place in two ways:

Unary or consolidation operators


Member formulas

Unary Operators

The first and most efficient manner of calculating in Analytic Services is in


the outline through the use of unary operators. Unary operators are
addition, subtraction, multiplication and division operators that
determine the many ways in which data values aggregate to a parent
level.

Use unary operators


and shared
members in the
Accounts dimension
for building complex
models.

Where possible, you should maximize the use of unary calcs


(consolidation operators) for model building in the Accounts dimension.

Unary operator calculations are faster than formulas in the outline or


in calc scripts.
Unary calc construction provides drill down visibility in the
accounts hierarchy to see where the number came from. Formulas
can obscure visibility into the calculations.

✍ The underlying design principal: use unary calcs where possible;


minimize the use of formulas in the outline or in calc scripts.

Hyperion 13-3
Calculation Basics Fast Track for Designers
13
There are six unary operators that can be assigned to dimension members:

+ The default operator. When a member has the + operator, Analytic


Services adds that member to the result of previous calculations
performed on other members.

- When a member has the - operator, Analytic Services multiplies the


member by -1 and then adds the product to the result of previous
calculations performed on other members.

* When a member has the * operator, Analytic Services multiplies the


member by the result of previous calculations performed on other
members.

/ When a member has the / operator, Analytic Services divides the


member into the result of previous calculations performed on other
members.

% When a member has the % operator, Analytic Services divides the


member into the sum of previous calculations performed on other
members. The result is multiplied by 100.

~ When a member has the ~ operator, Analytic Services does not use it in
the consolidation to its parent.

Order of Operations

It is important to understand how Analytic Services calculate members


with different operators. When you are using just addition and
subtraction operators the order of members in the outline is irrelevant.
However, when you use any other operator, you need to consider the
member order and its impact on the consolidation.

When siblings have different operators, Analytic Services calculates data


in top-down order. The following example illustrates a top-down
calculation:

Sample Roll-up

Parent1
Member1 (+) 10
Member2 (+) 20
Member3 (-) 25
Member4 (*) 40
Member5 (%) 50
Member6 (/) 60
Member7 (~) 70

13-4 Hyperion
Fast Track for Designers Calculation Basics
13
Analytic Services calculates Member1 through Member4 as follows:

(((Member1 + Member2) + (-1)Member3) * Member4) = X


(((10 + 20) + (-25)) * 40) = 200

If the result from Members 1-4 is X, then Member5 consolidates as follows:

(X/Member5) * 100 = Y
(200/50) * 100 = 400

If the result of Member5 is Y, then Member6 consolidates as follows:

Y/Member6 = Z
400/60 = 66.67

Analytic Services ignores Member7 in the consolidation.

Associating Formulas with Outline Members

The second option for calculating within the outline is through the uses of
member formulas. You should use formulas when you cannot do the
calculation with unary operators (for example, incorporating an if
condition) or where a unary operator drill down path would confuse
users. Formulas can be associated with members directly in the outline.

To create a formula for an outline member:

1) To open the Formula Editor dialog, click Edit Formula .

Hyperion 13-5
Calculation Basics Fast Track for Designers
13
2) Select functions in the Formula Editor to place them onto Formula
Editor interface.

3) Select members from the Dimensions/Members list windows to place


them onto the Formula Editor interface for building formulas.

4) Terminate formulas with a semicolon (;).

Create a formula
associated with a member
in the outline from the
Formula Editor.

Calculating Formulas in the Outline

Formulas on outline members are calculated in one of two methods:

13-6 Hyperion
Fast Track for Designers Calculation Basics
13
If the data storage type for the member is Store Data, the formula is
executed in outline order during a CALC ALL execution, a CALC
DIM on the member's dimension or by invoking the member calc
directly (for example: “Unit Mix”;).
If the data storage type for the member is Dynamic Calc or Dynamic
Calc And Store, the formulas are executed when a user retrieves the
member in a spreadsheet.

An example of a formula intensive outline


design where formulas are used instead of
unary operators.

Formulas in Outlines Versus Formulas in Calc Scripts

The issues for how and when to use a formula in an outline versus a
formula in a calc script are complex. Depending on the exact system
resources and the needs of users your calculation strategy can change.
However, there are a few basic guidelines you should follow.

Use formulas in outlines where:

The member calculations are straightforward without complex order


of calculation dependencies (for example, calculation order within
the outline organization is acceptable for dependencies).
The member requires a Two Pass Calc operation and is flagged as
such, and no other back calculation of other members is required to
be performed in a calc script after the main CALC ALL or CALC
DIM statement.

Hyperion 13-7
Calculation Basics Fast Track for Designers
13
The member requires a Two Pass Calc operation and is flagged as
such, and otherwise the conditions are met for accomplishing a Two
For The Price Of One calculation.
The member's data storage type is Dynamic Calc or Dynamic Calc
And Store. Formulas for Dynamic Calc members cannot be executed
from within a calc script.

Dynamic Calc storage members that have


formulas must have the formula display with the
member in the outline. Dynamic Calc members
cannot be executed from a calc script.

Calc Scripts
Outside of calculating in the outline, the other option for calculating in
Analytic Services is using calc scripts. Every database needs at least one
calc script to roll-up (aggregate) unary operators and execute formulas in
the outline. Input of data does not execute any calculation process.

✍ The default calc script for a new database is a CALC ALL statement.

Basic Calc Script Sections

The three most basic functions of calc scripts include:

Roll-Up A calc script with the CALC ALL or CALC DIM functions on
specific dimensions rolls-up input data in the outline
hierarchy according to the outline's consolidation operators
and formulas on members in the outline. The Default calc
script, unless reset to an alternative script, is equivalent to
the CALC ALL command.

Member Data is created or modified for specific members according


Formulas to formulas associated with the member either in the outline
or in a calc script.

Housekeeping A range of commands are used to copy and clear data or


perform other housekeeping functions on specific sectors of
the database (for example, DATACOPY Bud Version 1 TO
Budget Version 2).

13-8 Hyperion
Fast Track for Designers Calculation Basics
13

HOUSEKEEPING
commands for turning off
intelligent calc and copying the
budget scenario to the forecast
scenario.

ROLL-UP
of dimensions using a Calc Dim
command on all of the
dimensions in the outline.

MEMBER FORMULAS
that compute averages and
percentages for specific
members in the outline.

Driven by Process

Calculation requirements are driven by processes which typically include


multiple interim steps. For this reason, most databases have multiple calc
scripts associated with them. Conversely, one calc script typically does not
meet all calculation requirements for a single database.

The example below demonstrates how specific calc scripts track a typical
month end close process using Analytic Services.

Script 1: Roll-up data for the new month after the first off load from
the general ledger.

Hyperion 13-9
Calculation Basics Fast Track for Designers
13
Script 2: Recalculate the database focusing on calculations that need
updating for new allocation rates and adjusting entries.
Script 3: Calculations that compute variances from budget and
forecast, percentages and analytical metrics.

A given database typically has several


calc scripts associated with it. Each script
is driven by a different step in the
process.

Willard Contemplates Process

The Calc Script Interface

Analytic Services reads a calc script as text, then performs the calculation
operators according to the script instructions.

✍ You can write a calc script in any word processor and save the file as
type .CSC (the Analytic Services calc script file extension). The script
executes as long as there are no syntax errors.

The calc script editor is divided into a text editor section and a picklist area
of dimensions and dimension members. If you have intimate knowledge
of the database outline, you can type the dimension and members names
into the calc script.

However, the advantage of using the pick-lists is that you do not have to
contend with any typing errors. Additionally, by using the Find Members
functionality you can locate a member name you have forgotten.

13-10 Hyperion
Fast Track for Designers Calculation Basics
13
The benefits of writing a calc script through Analytic Services' own calc
script editor are:

You can select and click outline member names from the member list
window onto your script without having to type them.
You can access the calc script formula commands with syntax
parameter guides from the Formula/Paste Function dialog box.
The calc script editor provides robust error checking. All scripts are
also validated on the server prior to execution.

The calc script text


displays in the
upper half of the
Calc Script Editor.
The pick list of
Helps you find
dimensions and
member names
members displays
you have
in the Member List
forgotten.
window.

Lets you specify


an alias table so
you can include
alias names in
your calc script.

Hyperion 13-11
Calculation Basics Fast Track for Designers
13
Calc Script Toolbar

The calc script editor is equipped with a fully functional toolbar that lets
you access much of the editor’s functionality. This table lists and describes
the actions available.

Open (previously saved calc scripts)

Save

Print

Cut

Copy

Paste

Undo (last action only)

Inserts an = sign in the calc script

Open the Functions window so you can select and


paste a function into the calc script

Inserts a + operator into the calc script

Inserts a - operator into the calc script

Inserts a * operator into the calc script

Inserts a / operator into the calc script

Inserts a% operator into the calc script

Check the syntax of your calc script

Associates your calc script with an outline (allows you


to use the member selection areas)

13-12 Hyperion
Fast Track for Designers Calculation Basics
13

To open the Calc Script Editor:

1) From the Application Manager, click Calc Scripts .

2) Click New.

✍ To edit an existing calc script, select that calc script and click Open.

Accessing Calc Functions

The Analytic Services calculator incorporates a broad range of calculating


functions. These functions are accessed in the form of commands available
from the Formula/Paste Function menu in the Function And Macro
Templates dialog box.

To access commands and incorporate them in a calc


script:

1) Select Formula / Paste Function.

2) Select a function category on the left window, then select a specific


command within the category on the right.

3) If applicable, check Insert Arguments.

4) Select OK.
The command you select, along with placeholders for the
command's arguments, displays in the calc script interface where
your cursor was initially positioned.

Paste specific calc script


functions onto your script from
the Function Templates dialog.

Hyperion 13-13
Calculation Basics Fast Track for Designers
13
Executing A Calc Script

There are four methods for executing a calculation script.

To execute a calc script - four methods:

1) Select Database / Calculate. Select a calc script and click OK.

From the Calculate


Database dialog, select
the Calc Script you want
to run. Access to calc
scripts is controlled by
user security setup.

2) Select a calc script from the Application Manager desktop object list
and click Run. Select the database against which you wish to run the
chosen calc script and click OK.

You can run a Calc Script


against different databases
in different applications
even though the script was
originally set up for one
specific database.

13-14 Hyperion
Fast Track for Designers Calculation Basics
13
3) From the Spreadsheet Add-in, select
Essbase / Calculate. Click Run.

✍ You must be connected to a specific database to execute a calc


script in this manner.

4) Execute a calc script using ESSCMD or MaxL during a batch


operation.

Copious Categories of Calc Script Functions


Analytic Services provides a robust selection of calculation commands
organized into ten categories. The following sections describe the
principal capabilities within each category. The order of categories is
presented below in a logical process order rather than the order listed in
the Category list.

Hyperion 13-15
Calculation Basics Fast Track for Designers
13
Functional Commands

Functional Commands (also called Calculation Commands) are divided


into two sub-categories:

Basic roll-up commands such as AGG, CALC ALL and CALC DIM
used to roll up the consolidation paths and execute member
formulas in the outline.
Housekeeping commands such as CLEARBLOCK and
CLEARDATA which perform specific data maintenance activities
and set commands such as SET AGG MISSG and SET
UPDATECALC which specify across-the-board calculation
behaviors or functions.

Control Flow Commands

Control flow commands let you manage the flow of calculations.


Specifically, FIX...ENDFIX is one of three principal methods in Analytic
Services to focus calculations to specific dimensions and/or members
within dimensions where, otherwise, Analytic Services would perform the
calculations on all members. LOOP...ENDLOOP allow looping for solving
simultaneous equations such as interest charge calculations on debt.

13-16 Hyperion
Fast Track for Designers Calculation Basics
13
Conditionals

Using conditionals with traditional IF, ELSE, ELSEIF functionality is the


second principal method, along with FIX, for focusing calculations to
specific dimensions and/or members. IF logic works with traditional
Boolean comparison operators for testing value threshold (for example, =,
> or <).

✍ IF logic is also used with the Analytic Services specific Boolean


functions which are forms of questions referencing outline relations
that return true or false answers to the conditional IF statement.

Data Declarations

Data Declaration commands let you define temporary variables and


arrays set their values. Use these commands to store fixed or intermediate
calculated values for use in other calculations. Data declaration
commands drive calculations but cannot be reported on unless you assign
their results to specific members in the outline.

✍ Using temporary variables improves calc performance and makes


complex calculations with dependencies easier to develop and
debug.

Hyperion 13-17
Calculation Basics Fast Track for Designers
13
Operators

Operators include standard operator signs for adding, subtracting,


multiplying, dividing plus Boolean operators such as > and < for
comparing conditions. Operators also include AND, NOT and OR for
stringing Boolean conditions.

Math

The math function list include capabilities for finding minimum and
maximum values, rounding, averaging, summing, standard deviation and
other functions.

✍ Math functions also include two special purpose operators, @VAR


and @VARPER, which are used for computing variances with
control over better/(worse) sign conditions for expense items
designated Expense Reporting.

13-18 Hyperion
Fast Track for Designers Calculation Basics
13
Range (Financial)

Range (Financial) operators are math functions that reference values


(typically account values) of members across a range of members in
another dimension (for example, across months within the Time
dimension).

✍ Time is the default range dimension, though others may be


specified. Range operators are typically used for lead/lag type
calculations where the value for a member in one month is
calculated referencing the value of a member(s) from another
month(s).

Boolean

Booleans are the first of three categories (the other two are macros and
relationship functions) which reference outline status or relationships in
Analytic Services such as generation or level names and hierarchical
relationships (such as parent, child, ancestor and descendants used with
IF statements). Booleans let you focus calculations with conditional logic
to specific subsets of members defined by outline relationships specified
through the Boolean syntax.

IF I think,
THEN I am.

Hyperion 13-19
Calculation Basics Fast Track for Designers
13
Member Set

Like Booleans and relationship functions, member set commands


reference outline membership using generation and level names and
number and genealogy relationships such as parent, child and sibling.
Where Booleans are used with IF statements for focusing calcs, macros
such as @CHILDREN and @DESCENDANTS are used with FIX
statements generating a specific list of members to be calculated upon.

✍ Macros are also used extensively for setting security filters that
specify what subsets of an outline users have access.

Relationship Functions

Like Booleans and macros, relationship functions reference outline


membership using generation and level names and numbers and
genealogy relationships such as parent, child and sibling. Where the other
two similar functions are used to focus one or a string of calculations to
subset members in an outline, relationship functions such as
@ANCESTVAL and @PARENTVAL reference the actual values of other
members in the outline relative to the current member being calculated.

13-20 Hyperion
Fast Track for Designers Calculation Basics
13
Allocation

Allocation functions are designed to do just that: push data values from
one area of the model to another. Usually, allocations are used when data
is input at a high level and subsequently allocated to lower levels by
spreading, based on percentages or a variety of other methods available in
these functions.

Forecasting

These functions are designed to analyze historical data and look for
trends. They are often used for planning or forecasting purposes although
not exclusively. The functions reference values (typically account values)
of members across a range of members in another dimension (for example,
across months within the Time dimension).

Hyperion 13-21
Calculation Basics Fast Track for Designers
13
Statistical

The statistical functions greatly enhance the mathematical capabilities of


Analytic Services calc scripts. They essentially supplement the Math
category of functions, adding statistical functions to calculate standard
deviations, medians, correlations and more.

Date & Time

Currently @TODATE is the only function is available in this category. This


function converts date strings to numeric values which can be more easily
used in comparison operations.

Miscellaneous

Currently @CALCMODE is the only one function in this category.This


helps determine calculation behavior for certain functions.

13-22 Hyperion
Fast Track for Designers Calculation Basics
13
Check Your Understanding

1) What are the three methods you can use to calculate an Analytic
Services database?

2) When is it appropriate to use a formula in an outline versus a calc


script?

3) List the three basic calc script functions.

4) List the available calc script categories.

5) What are the four ways to execute a calc script?

Hyperion 13-23
Calculation Basics Fast Track for Designers
13
Check Your Understanding Solutions

1) What are the three methods you can use to calculate an Analytic
Services database?

The three methods to calculate an Analytic Services database are:


• Unary operators
• Formulas in the outline
• Calc script

2) When is it appropriate to use a formula in an outline versus a calc


script?

Use formulas in outlines where:


• Member calculations are straightforward without complex order
of calculation dependencies (calculation order within the outline
organization is acceptable for dependencies).
• The member requires a Two Pass Calc operation and is flagged
as such, and no other back calculation of other members is
required to be performed in a calc script after the main CALC
ALL or CALC DIM statement.
• The member requires a Two Pass Calc operation and is flagged
as such, and otherwise the conditions are met for accomplishing
a Two For The Price Of One calculation.
• The member's data storage type is Dynamic Calc or Dynamic
Calc And Store. Formulas for Dynamic Calc members cannot be
executed from within a calc script.

3) List the three basic calc script functions.

• Roll Up
• Member Formulas
• Housekeeping

4) List the available calc script categories.

• Functional Commands
• Control Flow Commands
• Conditionals
• Data Declarations
• Operators
• Math
• Range (Financial)
• Boolean
• Member Set
• Relationship
• Allocation
• Forecasting

13-24 Hyperion
Fast Track for Designers Calculation Basics
13
• Statistical
• Date & Time
• Miscellaneous

5) What are the four ways to execute a calc script?

• Select Database / Calculate from the Server desktop in


Application Manager. Select and run the calc script from the
Calculate Database dialog.
• Select a calc script from the Application Manager desktop object
list and click Run. Select the database against which you wish to
run the chosen calc script in the Select Database dialog.
• Select Essbase / Calculate while in a spreadsheet connected to a
specific database. Select the calc script you want to execute, then
click Run.
• Execute a calc script using ESSCMD, Analytic Services' batching
language, during a batch operation.

Hyperion 13-25
Calculation Basics Fast Track for Designers
13

13-26 Hyperion
14
Understanding Data Blocks

Chapter Objectives
Upon completion of this chapter, you will be able to:

• Define dense and sparse


• Calculate the size of a data block
• Describe a roll-up
• Describe how data blocks are created
• Describe and interpret data block statistics
Understanding Data Blocks Fast Track for Designers
14
Setting the Stage
You can think of the Analytic Services like a fine automobile. Leather
interior, good tires and solid construction add to the aesthestics and
beauty of the machine, but the secret lies under the hood. It is the engine
that makes the car run and is ultimately more important than any other
detail.

The engine that drives Analytic Services is the data block. It is really very
simple: understanding data blocks is absolutely fundamental to being able
to write calc scripts that compute the numbers correctly and complete
within a reasonable period of time. In this section, we look at Analytic
Services under the hood - basic data block construction including detailed
analysis of how blocks are created and calculated upon during a data load
and CALC DIM roll-up process.

I think I’ve
discovered the
secret to life!

Understanding Dense and Sparse


Prior to discussing Analytic Services sparse/dense settings, you need to
think about your data in sparse and dense terms. A methodology for
thinking this through is to compare dimensions to each other in pairs
asking questions about the density or sparsity of data in the members of
one dimension versus the other.

Perspective 1 - Think About the Data

Data is typically dense in a dimension when there is a high percentage of


members that have data out of all possible combinations after the database
has been loaded and rolled up.

14-2 Hyperion
Fast Track for Designers Understanding Data Blocks
14
For example, compare one product at the zero level in the Product
dimension to members in the Accounts dimension:

If the product has unit sales, what is the probability that it also has a
price? Answer: high.
If the product has units and a price, what is the probability that it
also has dollar sales after a roll-up calculation? Answer: high.
If the product has sales, what is the probability that it also a cost of
sales, gross margin and other account measures? Answer: high.

In this example, you can think of data in the Accounts dimension versus
the product as being dense. For example, if you have data in one key
account, such as units, you probably have data in most, or at least many,
of the other accounts.

A similar series of questions about the same product versus the Time
dimension might result in the same conclusion. For example, Time is
dense because if you sell the product in one month, you are likely to sell in
other months, quarters and for the year total.

Data is Probably Sparse When

Data is typically sparse in a dimension when there is a low percentage of


members that have data out of all possible combinations after the database
has been loaded and rolled up.

For example, compare a zero level product in the Product dimension to


members in the Customer dimension. Assuming there are 3,000 products
and 3,000 customers:

What is the probability that any given customer will buy the zero
level product? Answer: low

✍ This is typical for businesses where there is a degree of


specialization in product lines as indicated by a proliferation of
products and customers.
Picture the matrix of 3,000 customers by 3,000 products. What is the
percentage of intersecting cells where there is a data point (for
example, unit sales) out of the total number of cells? Answer: low.

Hyperion 14-3
Understanding Data Blocks Fast Track for Designers
14
In the example, the data for both customer and product are sparse. It is not
uncommon for large product and customer dimensions with many
members to have an occurrence of data intersections of less than 1%.
3,000 Customers

Where the probability of the


occurrence of a data point in
the intersection between
two dimensions is low, then
data is probably sparse for
both dimensions.
3,000
Products

Perspective 2 - What are the Analytic Services Settings?

Each dimension in an Analytic Services database is set to be either dense


or sparse. How such settings are made drive the construction of data
blocks. The data block is the fundamental unit of storage of data in
Analytic Services. Data block construction, as determined by sparse/
dense settings, has a major impact on calculation times, storage
requirements and other variables in Analytic Services performance.

There is normally a correspondence between your analysis of the data


(what dimensions are sparse and dense in their data patterns) and the
Analytic Services settings.

14-4 Hyperion
Fast Track for Designers Understanding Data Blocks
14

To set dense and sparse settings for each dimension,


while in an outline:

• Select Settings / Data Storage to open the Data Storage dialog.

Do not use the Automatic check box setting. Analytic


Services may change settings on-the-fly which could result
in unexpected calculation behaviors. The Recommend
function provides a ranking of setting options, but results
are not reliable since the recommendations do not take into
account the patterns of your actual data or the
requirements of your calc scripts.

Each dimension is
set to either dense
(D) or sparse (S) in
the Data Storage
dialog.

Dense/sparse settings for each dimension are typically hardwired by a


direct setting after benchmarking calculation and storage performances of
alternate setting combinations.

✍ By default, all new dimensions added to an Analytic Services


database are automatically set to sparse.

Hyperion 14-5
Understanding Data Blocks Fast Track for Designers
14
The calc script curricula dense/sparse settings have a major impact on the
calculation performance of a database and the amount of storage required.

✍ What is the final criteria for dense/sparse settings? Answer: that


combination of settings that produces the lowest overall calculation
time with acceptable storage configurations.

Would I rather be
dense or sparse?

What kind of question is that?

Data Block Fundamentals


The discussion begins with how data blocks are constructed. A Data block
(Block) is the basic unit of storage in Analytic Services. Blocks contain the
actual data of your database and are stored in page (.pag file type) files
located on one or more server drives. Data blocks contain cells.

A cell is created for every intersection of stored members of the


dimensions that are set as dense in the Data Storage dialog.
Stored members are those defined in the outline with storage types:
Store Data, Dynamic Calc And Store, and Never Share.
All other storage types (for example, Dynamic Calc, Label Only and
Shared Member) are not stored members and therefore do not take
up space (cells) within a data block.
Each cell, as defined by the stored dense members, takes up 8 bytes
of storage space on disk (before compression) and in memory.
The size of a data block can be calculated: it is the product of the
stored members of the dense dimensions * 8 bytes.

14-6 Hyperion
Fast Track for Designers Understanding Data Blocks
14
Other rules about data blocks:

Data blocks are created in their entirety as long as one cell has a data
value that has been input or calculated. All data blocks are the same
size in bytes (before compression) regardless of the number of cells
that have values versus #Missing.
All data blocks move from disk to memory (for calculation,
restructure or reporting) and back to disk in their entirety.

Data blocks in a database can be big or small depending on what


dimensions are defined as dense in the Data Storage dialog: The more
dimensions that are defined as dense, the larger the data block.
Conversely, changing a dense dimension to sparse reduces the block's
size.

The greater the number of stored members in a dense dimension, the


larger the data block. Conversely, reducing the number of stored members
in a dense dimension reduces the block's size.
In this example, Time is a dense dimension.
Therefore Time members define in part the
number of cells within the data block.

In this example,
Accounts is a
dense dimension.
Therefore Account
members define in
part the number of
cells within the
data block.

Hyperion 14-7
Understanding Data Blocks Fast Track for Designers
14
Data Block Fundamentals
Data blocks are defined by the intersection of the members of the dense
dimension. But how and when is a data block created, and how is the
block identified?

Data Blocks are Created for

A data block is created for each combination of stored members of sparse


dimensions where there is at least one data value in a cell within the block.

The information identifying the data block (for example, what is the
block's name as defined by the sparse members) is stored in index (.ind file
type) files on the Server drives.

Data blocks are created under any one of four conditions:

Data Load Data blocks are created when data is loaded to sparse
member combinations that did not previously exist. The
blocks are created upon input, whether loaded using a
source file and load rule or loaded from a spreadsheet
using lock and send.

Sparse Roll-up Data blocks are created when sparse dimensions are
rolled up as specified in the outline using a CALC ALL,
CALC DIM or other calculation function.

Member Formula Data blocks may be created under certain circumstances


as a result of a member formula (for example, Units =
10). This functionality is enabled when the Create Blocks
On Equations check box is selected in the Calculation
Group of the Database Settings dialog.

Datacopy Data blocks are created when the DATACOPY command


is executed in a calc script.

14-8 Hyperion
Fast Track for Designers Understanding Data Blocks
14
Storage and Calculation Efficiency

Efficiency is based on two principles:

Data blocks are created only for combinations of sparse members


where there is data (data is stored and calculated upon only for
actual combinations).
For combinations of sparse members where there is no data, no data
block is created. Therefore, there is no requirement for disk space for
storage or calculation time for calculations.

The index has the pointers that


identify the data blocks by one
member from each of the Index (.ind)
sparse dimensions.

Page File (.pag)

The page file is where


the data blocks are
stored. A block exists
only for combinations
of sparse members
that have data.

A Year Tot
c
c Each block contains cells
o which are defined by the
u intersection of the stored
n members of the dense
t dimensions
s

Hyperion 14-9
Understanding Data Blocks Fast Track for Designers
14
Anatomy of a Roll-up
Put quite simply, a roll-up is an aggregation. Using the unary operators
the Analytic Services calculator calculates the values for each parent
member. In the materials that follow, you trace the development of a
CALC DIM calc script and how its execution builds data blocks for the
Sales database.

Example Assumptions

Assumptions for this example are as follows:

Months roll up to quarters and quarters roll to Year Tot in the Time
dimension. The Year Tot dimension is dense.
Units multiplied by rates equals dollars is the form of calculations in
the Accounts dimension. The Accounts dimension is dense.
The Customer, Product and Scenarios are sparse dimensions.
Scenarios is not included in the CALC DIM statement because no
members in the Scenario dimension require roll-up.
The completed calc script reads:
CALC DIM (Accounts, Time, Customer, Product);

Accounts and Year Tot are


dense dimensions.
Customer, Product and
Scenario are sparse.

14-10 Hyperion
Fast Track for Designers Understanding Data Blocks
14
Step 1 - After Data Input

Units 10 15 20 #M 15 20 25 #M 15

Rates $1 $1 $2 #M $2 $2 $2 #M $3

Dollars #M #M #M #M #M #M #M #M #M

Jan Feb Mar Q1 Apr May Jun Q2 Jul ...

After input, data blocks are


created for combinations Channel
of customer and product
where there is actual data. OEM

IBM

Light Light Light Thun Thun Thun


365A 520A Total 363A 520A Total
Units and rates are input for each month for product and customer
combinations. All data values are Actuals.
Upon input, a data block is created for each intersection of the
Product, Customer and Actual dimensions (such as IBM for Light
365 A, Actual; IBM for Light 520A, Actual and so on).
Each data block created upon input contains units and rates by
month, but dollars are not calculated because no calc script at this
stage has been executed.

Hyperion 14-11
Understanding Data Blocks Fast Track for Designers
14
Step 2 - Calc Dim (Accounts)

Units 10 15 20 45 15 20 25 60 15

Rates $1 $1 $2 $1.3 $2 $2 $2 $2 $3

Dollars $10 $15 $40 $55 $30 $40 $50 $120 $45

Jan Feb Mar Q1 Apr May Jun Q2 Jul ...

After CALCDIM (Accounts), no


new data blocks are created. The Channel
calculation has only filled out the
existing dollar and other cells in OEM
the blocks that were created upon
input. IBM

Light Light Light Thun Thun Thun


365A 520A Total 363A 520A Total
Dollars are calculated in the outline from units and rates for each
data block.
Quarter and Year Tot data are still #Missing. The Year Tot dimension
has not yet been rolled up.
No new data blocks are created. Cells are being filled out in the
original data blocks that were created upon input.

Step 3 - Calc Dim (Year Tot)

Units 10 15 20 #M 15 20 25 #M 15

Rates $1 $1 $2 #M $2 $2 $2 #M $3

Dollars $10 $15 $40 #M $30 $40 $50 #M $45

Jan Feb Mar Q1 Apr May Jun Q2 Jul ...

After CALCDIM (Accounts), no


new data blocks are created. The Channel
calculation has only filled out the
existing quarter and year tot cells OEM
in the blocks that were created
upon input. IBM

Light Light Light Thun Thun Thun


365A 520A Total 363A 520A Total
Year Tot and Quarters are rolled up from months for all accounts.
The Year Tot dimension cells are now filled in.
No new data blocks are created. Cells are being filled out in the
original data block that were created upon input.

14-12 Hyperion
Fast Track for Designers Understanding Data Blocks
14
Step 4 - Calc Dim (Customer)

Channel

OEM

IBM

Light Light Light Thun Thun Thun


365A 520A Total 363A 520A Total

New upper level blocks


are created from the
customer roll-up.
New upper level data blocks are now created in the Customer
dimension reflecting aggregations at higher levels in the hierarchy.
The additional blocks were created by summing up in the Customer
dimension:
• All account data for units, rates and dollars
• All time data for months, quarters and Year Tot

Hyperion 14-13
Understanding Data Blocks Fast Track for Designers
14
Step 5 - Calc Dim (Product)
New upper level blocks created
from product roll-up

Channel

OEM

IBM

Light Light Light Thun Thun Thun


365A 520A Total 363A 520A Total

SKUs input at the zero Product rolled up at level 1


New upper level data blocks are now created in the Product
dimension reflecting aggregations at higher levels in the hierarchy.
The additional blocks were created by summing up in the Product
dimension:
• All account data for units, rates and dollars
• All time data for months, quarters and Year Tot

14-14 Hyperion
Fast Track for Designers Understanding Data Blocks
14
Interpreting Block Statistics
Analytic Services provides substantial statistical information about your
database and data block specifics. To reach grandmaster status, you need
to understand how block statistics are calculated and their meaning.

Blocks Parameter Group

The Blocks Parameter Group includes a list of block statistics. This table
contains the Block Parameter measures and a description of each in their
order of appearance on the list.

Blocks parameter
information is included
in the Database
Information dialog.

Number of Existing Exactly that, the total number of data blocks in the
Blocks database at its current state of calculation. For any
given calculation without FIX statements, this number
reflects how many blocks are moved from storage to
memory for calculation. Fewer existing blocks for a
given dense/sparse setting generally have a lower
calculation time because fewer blocks are cycled
through memory.

Block Size in Bytes Computed as the product of the stored members of


the dense dimensions multiplied by 8 bytes. This is an
important statistic: block sizes that are too large may
adversely impact calculation, storage and/or retrieval
efficiency.

Potential Number of Computed as the product of the stored members of


Blocks the sparse dimensions. In most databases, this
number is very large and has no real meaning except
as to its order of magnitude.

Existing Zero Level Number of data blocks at the zero level. Zero level is
Blocks not necessarily the same as blocks created upon input
if data is loaded at upper levels.

Existing Upper Number of data blocks at upper levels. Upper level


Level Blocks blocks include all combinations of upper level sparse
members plus upper level combinations from with
zero level sparse members. In most databases the
ratio of upper to lower level blocks is very high.

Hyperion 14-15
Understanding Data Blocks Fast Track for Designers
14
Block Density From a sampling of existing data blocks, the
percentage of cells with blocks that have a value
versus total number of cells in the block. 1 minus this
number is the percent-age of cells with #Missing. This
is an important statistic and a key measure in your
database for storage and calculation efficiency.
Dense/sparse setting combinations should maximize
block density.

Percentage of Number of Existing Blocks divided by Potential


Maximum Blocks Number Of Blocks. This is a measure of the sparsity of
Existing your database. It is not uncommon for this number to
be very small (less than 1%). It is the nature of
multidimensional databases that there are many
combinations without data.

Compression Ratio The compression efficiency you are getting when


blocks are stored on disk, normally from using the Bit
Map Encoding compression technique. #Missing cells
are typically compressed with this method. Therefore,
the compression ratio normally tracks block density.
Compression is set from the Database/Settings/
Storage panel.

Use a modified version of the


Calculating Block Stats worksheet to
verify the computation of statistics for
your own database.

Block Sale Today

14-16 Hyperion
Fast Track for Designers Understanding Data Blocks
14

To view database statistics information from the


Application Manager

1) Select Database / Information.

2) Select the Statistics tab.

The Dimension
Group shows you
information about
number of members
for each dimension.

✍ The Dimensions Group shows you the dimension type dense or


sparse, total members in the dimension and stored members. The
difference between total members and stored members is the sum of
Dynamic Calc, Label Only and Shared Members.

Hyperion 14-17
Understanding Data Blocks Fast Track for Designers
14
Exercise - Anatomy of a Roll-up
In this exercise you create a new calc script that calculates each dimension
in the Sales database.

1) From the Application Manager desktop Databases area, select Sales.

2) Click Calc Scripts .

3) Click New.

4) Select Options / Associate Outline.

5) In the Objects section, select Sales.

6) Click OK.

14-18 Hyperion
Fast Track for Designers Understanding Data Blocks
14
7) Select Formula / Paste Function.

8) In the Categories section, select Functional.

9) In the Templates section, select SETUPDATECALC.

✍ This commands turns off Intelligent Calc functionality for this


calc script.

10) Click OK.

11) In the Calc Script Editor, modify the SET UPDATECALC to OFF followed
by a semicolon.

Hyperion 14-19
Understanding Data Blocks Fast Track for Designers
14
Calculate the Accounts dimension:

1) Select Formula / Paste Function.


The Functional Template window displays.

2) In the Categories section, select Functional.

3) In the Templates section, select CALC DIM.

4) Click OK.
The function displays in the Calc Script Editor.

5) In the Calc Script Editor, highlight dimlist.

6) In the Dimensions area, highlight Accounts.

7) In the Members area, select Accounts.

dimlist is replaced
by the Accounts
member.

8) Select File / Save.

9) Name the calc script Calccorp.

10) Click OK.

11) Open Anatomy.xls (located in the B100_5\Calcit\Anatomy directory).


MS Excel starts.

✍ Your instructor provides the file location.

14-20 Hyperion
Fast Track for Designers Understanding Data Blocks
14
12) Select Essbase / Connect.

13) In the Username field, type trnadmin.

14) In the Password field, type hyperion.

15) In the Application/Database section, select Bigcorp / Sales.

16) Click OK.

17) Select Essbase / Retrieve.


You should see only input data at this point.

18) Select Essbase / Calculation.


The Essbase Calculation dialog box displays.

19) Select Calccorp.

20) Click Calculate.

21) Select Essbase / Retrieve and analyze the result.


The Accounts dimension members are filled out.

Calculate the Year Tot dimension:

1) Open the Calccorp calc script.

Hyperion 14-21
Understanding Data Blocks Fast Track for Designers
14
2) In Calc Dim, insert Year Tot after Accounts.

✍ Make sure to separate Account and Year Tot with a comma.

3) Save the calc script.

4) Open Anatomy.xls.

5) Select Essbase / Calculate.

6) Select Calccorp.

7) Click Calculate.

8) Select Essbase / Retrieve and analyze the result.

14-22 Hyperion
Fast Track for Designers Understanding Data Blocks
14
Calculating the Customer dimension:

1) Open the Calccorp calc script.

2) In Calc Dim, insert Customer after Year Tot.

✍ Make sure to separate Year Tot and Customer with a comma.

3) Save the calc script.

4) Open Anatomy.xls.

5) Select Essbase / Calculate.

6) Select Calccorp.

7) Click Calculate.

8) Change the page header from IBM to OEM.

✍ OEM is an upper level member across the Customer


dimension.

9) Select Essbase / Retrieve and analyze the result.


Data displays for Accounts and Year Tot for upper level blocks
across the Customer dimension. New upper level Customer
blocks are created.

Calculating the Product dimension:

1) Open the Calccorp calc script.

2) In Calc Dim, insert Product after Customer.

3) Save the calc script.

4) Open Anatomy.xls.

5) Select Essbase / Calculate.

6) Select Calccorp.

7) Click Calculate.

8) Change the page header label from Lightbolt 365 A to Lightbolt.

✍ Lightbolt is an upper level member across the Product


dimension.

Hyperion 14-23
Understanding Data Blocks Fast Track for Designers
14
9) Select Essbase / Retrieve and analyze the result
Data displays for Accounts and Year Tot for upper level blocks
across the Product dimension. New upper level Product blocks
have been created.

Data blocks are


the key.

14-24 Hyperion
Fast Track for Designers Understanding Data Blocks
14
Check Your Understanding

1) When is data typically dense? Sparse?

2) Where do you specify dense and sparse settings?

3) What is a data block?

4) When are data blocks created?

5) What two principles determine storage and calculation efficiency?

6) List and describe the available block parameter measures.

Hyperion 14-25
Understanding Data Blocks Fast Track for Designers
14
Check Your Understanding Solutions

1) When is data typically dense? Sparse?

Data is typically dense in a dimension when there is a high


percentage of members that have data out of all possible
combinations after the database has been loaded and rolled up.

Data is typically sparse in a dimension when there is a low percent-


age of members that have data out of all possible combinations after
the database has been loaded and rolled up.

2) Where do you specify dense and sparse settings?

To set dense and sparse settings for each dimension, while in an


outline:
Select Settings/Data Storage to open the Data Storage dialog.

3) What is a data block?

A data block (block) is the basic unit of storage in Analytic Services.


Blocks contain the actual data of your database and are stored in page
(.pag file type) files located on one or more Server drives.

Data blocks contain Cells:


• A cell is created for every intersection of stored members of the
• dimensions that are set as dense in the Data Storage dialog.
• Stored members are those defined in the outline with storage
types: Store Data, Dynamic Calc And Store, and Never Share.
• All other storage types (for example, Dynamic Calc, Label Only
and Shared Member) are not stored members and therefore do
not take up space (cells) within a data block.
• Each cell, as defined by the stored dense members, takes up 8
bytes of storage space on disk (before compression) and in
memory.
• The size of a data block can be calculated: it is the product of the
stored members of the dense dimensions * 8 bytes.

4) When are data blocks created?

Data blocks are defined by the intersection of the members of the


dense dimension. But how and when is a data block created, and how
is the block identified?

A data block is created for each combination of stored members of


sparse dimensions where there is at least one data value in a cell
within the block.

14-26 Hyperion
Fast Track for Designers Understanding Data Blocks
14
The information identifying the data block (for example, what is the
block's name as defined by the sparse members) is stored in index
(.ind file type) files on the server drives.

Data blocks are created under any one of four conditions:

Data Load Data blocks are created when data is loaded to


sparse member combinations that did not
previously exist. The blocks are created upon
input whether loaded using a source file and load
rule or loaded from a spreadsheet using lock and
send.

Sparse Roll-up Data blocks are created when sparse dimensions


are rolled up as specified in the outline using a
CALC ALL, CALC DIM or other calculation
function.

Member Data blocks may be created under certain


Formula circumstances as a result of a member formula
(for example, Units = 10). This functionality is
enabled when the Create Blocks On Equations
check box is selected in the Calculation Group of
the Database Settings dialog.

Datacopy Data blocks are created when the DATACOPY


command is executed in a calc script.

5) What two principles determine storage and calculation efficiency?

Efficiency is based on two principles:


• Data blocks are created only for combinations of sparse members
where there is data (data is stored and calculated upon only for
actual combinations).
• For combinations of sparse members where there is no data, no
data block is created. Therefore, there is no requirement for disk
space for storage or calculation time for calculations.

Hyperion 14-27
Understanding Data Blocks Fast Track for Designers
14
6) List and describe the available block parameter measures.

Number Of Exactly that, the total number of data blocks in the


Existing database at its current state of calculation. For any given
Blocks calculation without FIX statements, this number reflects
how many blocks are moved from storage to memory for
calculation. Fewer existing blocks for a given dense/
sparse setting generally have a lower calculation time
because fewer blocks are cycled through memory.

Block Size in Computed as the product of the stored members of the


Bytes dense dimensions multiplied by 8 bytes. This is an
important statistic: block sizes that are too large may
adversely impact calculation, storage and/or retrieval
efficiency.

Potential Computed as the product of the stored members of the


Number of sparse dimensions. In most databases, this number is
Blocks very large and has no real meaning except as to its
order of magnitude.

Existing Zero Number of data blocks at the zero level. Zero level is not
Level Blocks necessarily the same as blocks created upon input if
data are loaded at upper levels.

Existing Number of data blocks at upper levels. Upper level


Upper Level blocks include all combinations of upper level sparse
Blocks members plus upper level combinations from with zero
level sparse members. In most databases the ratio of
upper to lower level blocks is very high.

Block From a sampling of existing data blocks, the percentage


Density of cells with blocks that have a value versus total
number of cells in the block. 1 minus this number is the
percent-age of cells with #Missing. This is an important
statistic and a key measure in your database for storage
and calculation efficiency. Dense/sparse setting
combinations should maximize block density.

Percentage Number of Existing Blocks divided by Potential Number


of Maximum Of Blocks. This is a measure of the sparsity of your
Blocks database. It is not uncommon for this number to be very
Existing small (less than 1%). It is the nature of multidimensional
databases that there are many combinations without
data.

Compression The compression efficiency you are getting when blocks


Ratio are stored on disk, normally from using the Bit Map
Encoding compression technique. #Missing cells are
typically compressed with this method. Therefore, the
compression ratio normally tracks block density.
Compression is set from the Database/Settings/Storage
panel.

14-28 Hyperion
15
Calc Script Architecture

Chapter Objectives
Upon completion of this chapter, you will be able to:

• Describe the architecture of a typical calc script


• Identify basic housekeeping and manipulation commands
• Create baseline fix and normalization sections of a calc script
• Explain the purpose of a back calc
Calc Script Architecture Fast Track for Designers
15
Setting the Stage
It is easy to get lost in the jungle of information contained in a large calc
script. When you create a calc script, you need to first identify the grand
picture, create the architecture for calculative structure. Essentially, find
the forest among the trees.

In this section, we look at the forest: the grand architecture of calc scripts;
the logical flow of calc script sections; how calculation order and
sequential construction of data blocks drive correct answers with optimal
performance. It may sound complicated, but do not worry. We are dealing
with math, not rocket science.

You call this an


architecture?

The Prototypical Calc Script


The calc script that runs over the next two pages follows a fairly standard
design. This calc script serves as a example for other portions of this
chapter.

15-2 Hyperion
Fast Track for Designers Calc Script Architecture
15

/*Calc Script Purpose: Normalizes actuals for intercompany adjustments,


allocations, push down of rates and other adjustments to set up data for “apples to
HOUSEKEEPING:
procedural and non- apples” melding on “in month” actuals with “out month” forecast information. Back
procedural calc rates.*/
commands at
beginning of the calc SET AGGMISSG OFF;
script. SET UPDATECALC OFF;

THE BASELINE FIX: /*Fix on specific actual/ forecast scenario and “in months” of actuals.*/
defines and focuses FIX (“FY95 DEC FCST”, “01”, “02”, “03”)
calculations on the
specific set of data. /*Allocate costs by volume and gross Sales. First roll up volume and sales and
Most often includes other impacted accounts.*/
scenarios and/or FIX (Volume, “Gross Sales”, “Interco Sales”, “Fixed R & D”, “Fixed Corp X
time frames. Charge”, “Fixed IS X Charge”, “Fixed Mktg Admin”, “Fixed Mfg Admin”)
CALC DIM (Org_Structure);
ENDFIX

/*Sets up intercompany eliminations in Org Structure dimension.*/

FIX (“Interco Sales”)


“Interco Elimination LA” = “Interco Gross LA”;
“Interco Elimination HC” = “Interco Gross HC”;
NORMALIZATION: ENDFIX
takes care of cleanup
business such as
FIX (“Interco Raw Material”)
allocations and
adjustments.
“Interco Elimination LA” = “Interco Gross LA”->”Interco Sales”;
Typically includes “Interco Elimination HC” = “Interco Gross HC”->”Interco Sales”;
focused rollups ENDFIX
followed by the
normalization calcs FIX (“Interco Tax Rebate”)
themselves. “Interco Gross LA” = (“Interco Gross LA”->”Interco Sales”) * 0.0909;
“Interco Gross HC” = (“Interco Gross HC”->”Interco Sales”) * 0.0909;
ENDFIX

/* Push down commissions and adjust allocation accounts for later application of
allocation percents. */
(
Commissions = @ANCESTVAL (Org_Structure, 6, Commissions) *(“Gross Sales”
/ @ANCESTVAL (Org_Structure, 6, “Gross Sales”)); “% of Sales” = (“Gross
Sales” / @ANCESTVAL (Org_Structure, 6, “Gross Sales”));
“Alloc R & D” = “Direct R & D” - “Fixed R & D”;
“Alloc Corp X Charge” = “Corp X Charge” - “Fixed Corp X Charge”;
“Alloc IS X Charge” = “IS X Charge” - “Fixed IS X Charge”;
“Alloc Mktg Admin” = “Div Mktg Admin” - “Fixed Mktg Admin”;
“Alloc Mfg Admin” = “Div Mfg Admin” - “Fixed Mfg Admin”;
)
/*Allocates division level expenses to target level using percent table.*/
(
“Div Gen Mgr Admin” = @ANCESTVAL (Org_Structure, 6, “Div Gen Mgr Admin”)
* “% Div Gen Admin”;

Hyperion 15-3
Calc Script Architecture Fast Track for Designers
15
“Alloc Mktg Admin” = @ANCESTVAL(Org_Structure, 6, “Alloc Mktg Admin”) * “%
Alloc Marketing/Advertising”;
“Alloc Mfg Admin” = @ANCESTVAL(Org_Structure, 6, “Alloc Mfg Admin”) * “%
Alloc Mfg Admin”;
“Div Sales Admin” = @ANCESTVAL (Org_Structure, 6, “Div Sales Admin”) * “%
of Sales”;
“Div F & A Admin” = @ANCESTVAL (Org_Structure, 6, “Div F & A Admin”) * “%
Div Gen Admin”;
More normalization
“Div HR Admin” = @ANCESTVAL (Org_Structure, 6, “Div HR Admin”) * “% Div
calculations.
Gen Admin”;
“Div Other Admin” = @ANCESTVAL (Org_Structure, 6, “Div Other Admin”) * “%
Div Gen Admin”;
“Alloc Corp X Charge” = @ANCESTVAL (Org_Structure, 6, “Alloc Corp X
Charge”) * “% Alloc Corp X Charge”;
“Alloc IS X Charge” = @ANCESTVAL(Org_Structure, 6, “Alloc IS X Charge”) * “%
Alloc IS X Charge”;
“Alloc R & D” = @ANCESTVAL (Org_Structure, 6, “Alloc R & D”) * “% Alloc R &
D”;
)
THE MAIN ROLLUP:
/*Sequence to roll up all data that create most of the upper level blocks. In above
with the data now
normalized, it is OK to calc sequences, all data is now “normalized”*/
roll up all of the CALC DIM (Accounts, Year, Org_Structure, Region, DistiCenter);
dimensions.
/*Back calculate all rates from volume and dollar inputs, specifically for upper
levels.*/
(
“Price Per SC” = “Gross Sales” / Volume;
THE BACK CALC:
“List Price” = “Price Per SC” * “Stat Factor”;
everything is rolled
up, but upper level “Quantity Discount Perc” = “Quantity Discount” / “Gross Sales”;
rates (per unit rates “Quantity Discount Rate” = “Quantity Discount” / Volume;
and percentages) are “Cash Discount Perc” = “Cash Discount” / (“Gross Sales” - “Quantity Discount”);
aggregated across “Cash Discount Rate” = “Cash Discount” / Volume;
dimensions rather “Unsaleables Perc” = Unsaleables / (“Gross Sales” - “Cash Discount”);
than “average calc'd”. “Reduced Revenue Case Rate” = “Reduced Revenue Case Rate Dollars” /
The back calc Volume;
corrects them. “Price Variance Per SC” = “Price Variance” / Volume;
“Raw Material Per SC” = “Raw Material At STD” / Volume;
“WAVG Packer Fee Rate” = “Packer Fees” / Volume;
“Delivery Per SC” = Delivery / Volume;
“Commissions Pct” = Commissions / (“Gross Sales” - “Quantity Discount”);)
)
Closing out the /*Endfix for original Fix which defines the scenario and “in month” actuals.*/
Baseline Fix. ENDFIX

As you can see, a typical calc script is divided into five sections:

Housekeeping
Baseline Fix
Normalization
Main Roll-up
Back Calc

15-4 Hyperion
Fast Track for Designers Calc Script Architecture
15
Housekeeping

SET housekeeping commands set the stage for the next sequence of
calculations to occur. They prepare the Analytic Services calculator to
properly process the commands that follow. This table includes typical
commands.

Command Description

SET AGGMISSG ON | OFF To override the default database setting


for Aggregate missing values.

SET UPDATECALC ON|OFF For intelligent calc block marking to


override the Server .CFG setting for
intelligent calc.

SET CLEARUPDATESTATUS For intelligent calc block marking to


AFTER | ONLY | OFF override the Server .CFG setting for
intelligent calc.

SET CACHE HIGH | DEFAULT | For setting calculator cache levels


LOW | OFF | ALL according to essbase.cfg file setting.

SET MSG ERROR | WARN | For setting levels of calculating message


INFO | SUMMARY | DETAIL | information in the application log.
NONE:

Hyperion 15-5
Calc Script Architecture Fast Track for Designers
15
Manipulation Commands

Several important commands are also used for housekeeping purposes


that involve manipulating data sets. The calculator provides a variety of
handy data manipulation commands:

Command Description

CLEARBLOCK ALL | UPPER | For clearing previous input or upper level


NONINPUT | DYNAMIC data, or stored dynamic calculations.

CLEARDATA mbrName For clearing specific members or member


combinations. The data blocks remain.

DATACOPY mbrName1 TO For copying focused or complete data


mbrName2 sets from one set of members to another.

Set and other housekeeping commands


are found in the functional category of the
Function and Macro Templates dialog.

15-6 Hyperion
Fast Track for Designers Calc Script Architecture
15
Baseline Fix

The Baseline Fix is found near the top of most calc scripts and defines the
script's specific focus (typically defined by subsets of the Time or
Scenarios dimension). In the Baseline Fix, you answer the question: What
are you trying to do?

There are a number of things to consider when creating a baseline fix.


Focus on the type of data you are working with as defined by:

The scenario actual versus budget versus forecast. The baseline fix
often includes a scenario reference because scenarios typically differ
in calculation requirements.
The timeframe- current fiscal year only, future time periods and so
on. The baseline fix often includes a time qualification (especially for
accounting applications where data is calculated on only for the
current timeframe).

Normally the Accounts dimension and business views are not in Baseline
Fix, except organizational units that calculate their subset of a database
separate from other organization elements.

Craft a Fix statement that focuses on the type of data you need:

/*Fix on specific actual/ forecast scenario and “in months” of actuals.*/


FIX (“FY95 DEC FCST”, “01”, “02”, “03”)
/*Commands go here.*/
ENDFIX

Calc scripts are generally broken to reflect specific steps in a process. The
Baseline Fix statement is usually the indicator for script segregation. Break
up calc scripts as might be defined by different Baseline Fixes.

✍ It is typical to have multiple calc scripts associated with a single


database. In most circumstances, there is no inherent efficiency in
combining scripts. Calc scripts can be run automatically in correct
sequence using ESSCMD.

What am I trying
to do? That’s a
good question.

Hyperion 15-7
Calc Script Architecture Fast Track for Designers
15
The Normalization

The Normalization section of the calc script focuses on preparing data for
the Calc Dim or Calc All roll-up. It answers the question: What needs
cleaning up here?

Input data may need to be manipulated or normalized before doing a roll-


up. There are various circumstances that require you to normalize data,
for example:

To allocate upper level inputs to lower levels (to charge user


departments for use of IS facilities)
To make special adjustments to input information (adjusting entries
during month end close)
To construct a consistent complement of unit, rate and dollar
information (to push down prices consistently across all business
views)
To fix other anomalous accounts

You may need to do normalization calculations in two phases before the


main roll-up:

Focused rollups
Normalization calculations themselves

What needs
cleaning up? That’s
a better
question.

15-8 Hyperion
Fast Track for Designers Calc Script Architecture
15
Focused Rollups

The focused roll-up typically include setting bases for later allocations or
adjustments. For example:

To sum up units used later in building an allocation rate


To sum up dollars of data subsets which are to be allocated in later
calcs in the aggregate

Focused rollups are typically wrapped up in FIX statements (which means


a separate pass on data blocks).

✍ Write the FIX statements as tightly as possible to build only the data
blocks needed for the calculation dependency.

FIX (Volume, “Gross Sales”, “Interco Sales”, “Fixed R & D”, “Fixed
Corp X Charge”, “Fixed IS X Charge”, “Fixed Mktg Admin”,
“Fixed Mfg Admin””)
CALC DIM (Org_Structure);
ENDFIX

Normalization Calcs

There are a broad range of normalization calcs. The normalization section


of a calc script typically includes the most lines of code. To minimize
passes on data blocks, organize normalization routines by category (for
example, type of calculation).

Group like type of allocations together.


Group special adjustments together.

Hyperion 15-9
Calc Script Architecture Fast Track for Designers
15
As appropriate, wrap each category of normalization calculation together.
Use FIX statements that further focus calculations only to the data blocks
needed (for example, using the @Lev macro to focus allocations to zero
level members only).

*Sets up intercompany eliminations in Org Structure dimension.*/

Does FIX (“Interco Sales”)


intercompany “Interco Elimination LA” = “Interco Gross LA”;
account cleanups. “Interco Elimination HC” = “Interco Gross HC”;
ENDFIX
/* Push down commissions and adjust allocation accounts for later application of
allocation percents. */
“Pushes down” (
upper level rate Commissions = @ANCESTVAL (Org_Structure, 6, Commissions) *(“Gross Sales”
inputs / @ANCESTVAL (Org_Structure, 6, “Gross Sales”));
“% of Sales” = (“Gross Sales” / @ANCESTVAL (Org_Structure, 6, “Gross
Sales”));
“Alloc R & D” = “Direct R & D” - “Fixed R & D”;
Sums up special
“Alloc Corp X Charge” = “Corp X Charge” - “Fixed Corp X Charge”;
items to be
allocated. “Alloc IS X Charge” = “IS X Charge” - “Fixed IS X Charge”;
“Alloc Mktg Admin” = “Div Mktg Admin” - “Fixed Mktg Admin”;
“Alloc Mfg Admin” = “Div Mfg Admin” - “Fixed Mfg Admin”;
)
*Allocates division level expenses to target level using percent table.*/
(
“Div Gen Mgr Admin” = @ANCESTVAL (Org_Structure, 6, “Div Gen Mgr Admin”)
* “% Div
Gen Admin”;
“Alloc Mktg Admin” = @ANCESTVAL(Org_Structure, 6, “Alloc Mktg Admin”) * “%
Alloc Marketing/Advertising”;
“Alloc Mfg Admin” = @ANCESTVAL(Org_Structure, 6, “Alloc Mfg Admin”) * “%
Does a broad Alloc Mfg Admin”;
range of “Div Sales Admin” = @ANCESTVAL (Org_Structure, 6, “Div Sales Admin”) * “%
allocations using a of Sales”;
fixed input “Div F & A Admin” = @ANCESTVAL (Org_Structure, 6, “Div F & A Admin”) * “%
allocation table. Div Gen Admin”;
“Div HR Admin” = @ANCESTVAL (Org_Structure, 6, “Div HR Admin”) * “% Div
Gen Admin”;
“Div Other Admin” = @ANCESTVAL (Org_Structure, 6, “Div Other Admin”) * “%
Div Gen Admin”;
“Alloc Corp X Charge” = @ANCESTVAL (Org_Structure, 6, “Alloc Corp X
Charge”) * “% Alloc Corp X Charge”;
“Alloc IS X Charge” = @ANCESTVAL(Org_Structure, 6, “Alloc IS X Charge”) * “%
Alloc IS X Charge”;
“Alloc R & D” = @ANCESTVAL (Org_Structure, 6, “Alloc R & D”) * “% Alloc R &
D”;
)

15-10 Hyperion
Fast Track for Designers Calc Script Architecture
15
The Main Roll-up

The Main Roll-up is generally performed with a CALC ALL or CALC DIM
statement on all of the dimensions. This is the time when the major
portion of data blocks are built.

You are ready for roll-up when normalization calculations are complete:

Allocations are calculated


Adjustments are made
Units, rates and dollars are at consistent levels

To do the Main roll-up:

First, sum up the dense dimensions (accounts usually first).


Then Calc Dim across the sparse dimensions.
CALC DIM (Accounts, Year, Org_Structure, Region, DistiCenter);

The Back Calc

Upper level rates, percentages and certain dependency type analysis


calculations may force setting up a back calc section in the calcscript.You
need back calcs in certain circumstances. With units, rates and dollars,
there are two combinations of inputs:

Units and rates


Units and dollars

Regardless of the input, rates must be back calculated for upper levels
after the main man roll-up because:

Rates in the Accounts dimension are aggregated (summed up) at


upper levels.
Units * rates do not equal dollars after roll-up.
Based on the default
Jan (+) Feb (+) Mar (+) Qtr 1 calculation order of
Analytic Services,
Unit (+) 10 10 10 30 these calculations
are incorrect. Total
Price (+) 5 5 5 15 Sales for the quarter
should be 150 not
Total Sales 50 50 50 450 450.

The back calc gets the units * rates = dollars relationships in sync for
upper levels.

Hyperion 15-11
Calc Script Architecture Fast Track for Designers
15
Calculating percentages or any other ratio is similar to calculating upper
level rates:

Percentages are aggregated across the sparse dimensions at upper


levels.
Percentages need to be recalculated after the numerator and
denominator values are summed up:
The formula syntax
for many back “Price Per SC” = “Gross Sales” / Volume;
calculated items is “List Price” = “Price Per SC” * “Stat Factor”;
Rate = Dollars / Units. “Quantity Discount Perc” = “Quantity Discount” / “Gross Sales”;
“Quantity Discount Rate” = “Quantity Discount” / Volume;
“Cash Discount Perc” = “Cash Discount” / (“Gross Sales” - “Quantity
Discount”);
“Cash Discount Rate” = “Cash Discount” / Volume;
“Unsaleables Perc” = Unsaleables / (“Gross Sales” - “Cash Discount”);
“Reduced Revenue Case Rate” = “Reduced Revenue Case Rate Dollars” /
Volume;

Go Calc Go

15-12 Hyperion
Fast Track for Designers Calc Script Architecture
15
Check Your Understanding

1) What are the five sections of the prototypical calc script?

2) In the Baseline Fix section, what factors determine your focus?

3) What is the purpose of the Normalization section?

4) Why would you need a back calc?

Hyperion 15-13
Calc Script Architecture Fast Track for Designers
15
Check Your Understanding Solutions

1) What are the five sections of the prototypical calc script?

A prototypical calc script is divided into the following sections:


• Housekeeping
• Baseline Fix
• Normalization
• Main Roll-up
• Back Calc

2) In the Baseline Fix section, what factors determine your focus?

When creating a baseline fix, focus on the type of data you are
working with as defined by:
• The scenario -actual versus budget versus forecast. The baseline
fix often includes a scenario reference because scenarios typically
differ in calculation requirements.
• The timeframe- current fiscal year only, future time periods and
so forth. The baseline fix often includes a time qualification.

3) What is the purpose of the Normalization section?

The Normalization section of the calc script focuses on preparing data


for the Calc Dim or Calc All roll-up. Input data may need to be
manipulated or normalized before doing a roll-up. there are various
circumstances that require you to normalize data, for example:
• To allocate upper level inputs to lower levels
• To make special adjustments to input information
• To construct a consistent complement of unit, rate and dollar
information
• To fix other anomalous accounts

4) Why would you need a back calc?

Upper level rates, percentages and certain dependency type analysis


calculations may force setting up a back calculation section in the calc
script. You need back calcs in certain circumstances. With units, rates
and dollars, there are two combinations of inputs:
• Units and rates
• Units and dollars

Regardless of the input, rates must be back calculated for upper levels
after the main man roll-up because:
• Rates in the Accounts dimension are aggregated (summed up) at
upper levels.
• Units * rates do not equal dollars after roll-up.
• The back calc gets the units * rates = dollars relationships in sync
for upper levels.

15-14 Hyperion
16
The Most Important
Calc Functions

Chapter Objectives
Upon completion of this chapter, you will be able to:

• Describe expected versus correct calc script behavior


• Use member formulas to calculate a database
• Define top-down calculating
• Explain how to control a top-down calculation
• Describe the difference between Fix and IF statements
• Use the Cross Dim operator
• Identify available Boolean, member set and relationship functions
• Identify variable types
• Create and use variables
The Most Important Calc Scripts Fast Track for Designers
16
Setting the Stage
Once you have the architecture in place, you can start building the walls
and creating the rooms. This section talks about the details of a calculation
script.

I told him not to


request all the data
at the same time.

How Analytic Services calculates data during a CALC DIM roll-up (its
expected behavior) does not necessarily result in correct answers. A
substantial portion of calc script drafting involves writing formulas
designed to convert from Analytic Services' expected behavior to correct
results for specific members. Underlying such member formulas are a
broad array of calc script commands which are reviewed in this section in
substantial detail.

Expected Versus Correct Behavior


A short anecdote about raising children:

I say to Alex, my six-year-old son: “Don't hit your sister. That's not
correct behavior.” Does Alex hit his sister?
Of course, he does. That's expected behavior for a six year old.

As parents, we must learn to distinguish between expected behavior of


our children for their age and correct behavior as laws and society would
dictate. They are usually not the same for a given age group.

Understanding Analytic Services


As with understanding kids, we must understand how the Analytic
Services calculator works (expected behavior) and appreciate the
calculated results in many circumstances do not yield correct answers
(correct behavior).

16-2 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
Expected Behavior

How Analytic Services calculates numbers in a basic roll-up process


(using CALC ALL or CALC DIM) is its most fundamental expected
behavior:

The Accounts dimension with its units, rates and dollars is


calculated first.
The result of each Account calculation is rolled up across all other
dimensions one at a time, account by account.

Correct Behavior

This expected behavior (how Analytic Services does roll-ups) is not correct
behavior for every account. Some of the numbers are wrong:

Units and dollars are correctly summed across the Year Tot,
Customer and Product dimensions.
Rates and percentages are also summed across the other dimensions.
This result is incorrect at all upper levels.
The rates need to be back calculated averages. The percentages
should be two-pass calculations calculated on a second pass through
the data blocks after the numerator and denominator of the
calculation have themselves been summed.

A substantial element of calc scripting is devoted to dealing with expected


versus correct behaviors in Analytic Services (writing member formulas
that deal with aberrations in the numbers).
Expected
Behavior:
Prices are the
sum of all prices
for all customers
and products (not
the average).

Expected Behavior:
Percentages are the
sum of all percentages
for all customers and
products not the
two-pass” correct value.

Hyperion 16-3
The Most Important Calc Scripts Fast Track for Designers
16
Member Formulas
Member formulas are lines in calc scripts referencing specific members in
the outline that perform a mathematical calculation on the referenced
Analytic Services member. Following are examples of member formulas:
wants to be your
friend by (
calculating member Gross Margin %” = “Gross Margin”/ Sales;
formulas when the Units = @PRIOR (Units, 2) * 1.1;
data block is in ISAllocation = TotAccounts->TotISDepts->YearTot *
memory instead of AllocationRate;
the correct
“Unit Mix %”= Units / @ANCESTVAL (Product, 3, Units);
sequence after a
)
Calc Dim.
Parentheses
prevent jump Most of the lines of code in a calc script are member formulas.
ahead behavior.
You generally use member formulas in the outline under these
circumstances:

For calculation constructions that cannot be done with unary


(consolidation) operators in the outline (conditional formulas
requiring an IF statement).
For calculations involving complex dependencies that cannot be
handled through the outline's natural order of calculation
(normalization calculations such as allocations that must be
calculated prior to a CALC DIM statement).
For back calculations on upper level percentages and rates the
cannot be calculated in the outline because of order of calculation
issues.

You often use member formulas in calc scripts when calculation


requirement are more complicated (especially characterized by a more
complex order of calculation or dependency relationships).

Forms of member calculations may include:

Forcing calculation of unary operators in the outline:

Macros, which are a type Revenue;


of Analytic Services calc “Cost of Sales”;
function, can be used to
force unary operator @IDESCENDANTS (Gross Margin);
calculations on a group @CHILDREN (Variances);
of relationship members
in a hierarchy.

16-4 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
Forcing calculation of formulas in the outline:

“Gross Margin %”; (where the outline formula is “Gross Margin”/ Sales)
“Average Unit Cost”; (where the outline formula is “Cost of Sales”/ Units)

This is not common. Usually formulas in outlines are


calculated as part of a CALC DIM statement where formulas
are executed during the roll-up process.

Member formulas require special syntax under certain circumstances.


Enclose member calculations within parentheses (...) to absolutely control
the calculation order of member formulas that follow CALC DIM
statements:

Following a CALC DIM statement, Analytic Services jumps ahead


and execute subsequent member calculations out of order.
To prevent jump ahead where order of calculation matters, enclose
member calculations in parentheses:

CALC DIM (Accounts, “Year Tot”, Customer, Product);


(
“Gross Margin %”= “Gross Margin”/ “Net Sales”;
“List Price”= “Gross Sales”/ Units;
“Discount %”= Discounts / “Gross Sales”;
“Labor/Unit” = “Direct Labor”/ Units;
“Matl/Unit” = Material / Units;
“Overhead Rate” =Overhead / “Direct Labor”;
)

Hyperion 16-5
The Most Important Calc Scripts Fast Track for Designers
16
Special Syntax: Calc Member Blocks

Certain constructions involving member formulas must follow calc


member block syntax rules. Such rules require member formula
constructions to be: 1) enclosed in parentheses; and 2) preceded by a
pointer member name (without a semicolon). The following are examples
of situations requiring calc member block syntax:
This is a pointer. It
is the statement of
For IF statements:
any stored
member in the
dimension being Commissions
calculated upon (
before the IF (Sales > 1000)
member block Commissions = Sales *.07;
calculation that is ELSE
opened with a Commissions = Sales *.04;
parenthesis. ENDIF
)
For VAR definitions (using temporary variables) that reference
member names:

“Material Variances”
(
In addition to the AllocRatioUnits = Units / Units->”Family Total”->”Channel Total”;
pointer, calc “Material Variances”= “Material Variances”->”Family Total”->”Channel
member blocks Total”
require member * AllocRatioUnits;
formulas to be
“Labor Variances” = “Labor Variances” >”Family Total”->”Channel Total”
enclosed in
* AllocRatioUnits;
parentheses.
“Overhead Variances” = “Overhead Variances”->”Family Total”->
”ChannelTotal”;
* AllocRatioUnits;
)

For member formulas where the left side of the equation uses a cross
dimensional operator. This is not a common usage.

Sales
(
Sales->”All Customers” = Sales->”All Products”
)

16-6 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
Top-Down Calculating
In contrast to spreadsheet formulas where every calculated intersection
needs a formula, the Analytic Services calculator has a top-down
approach to calculation.

✍ Unless otherwise restricted by a FIX or IF command, every member


formula in a calc script (every line of code) is executed everywhere
in the database (on each and every data block).

For example, a formula on a member in the Accounts dimension:

“Gross Margin %” = “Gross Margin” / “Net Sales”;

is executed for every possible combination of members in the database


where the underlying data exists. This top-down calculation capability
allows you to accomplish a large amount of computing with few lines of
code to write and debug.

✍ Be careful, most of the time you do not want any given calc script
executing on all parts of your database.

Controlling the Top-Down

A major element of calc script drafting is understanding how to focus your


calculations.

With the Analytic Services calculator, there are three principal methods
for focusing calculations. Each of these three methods can be used to
accomplish the same focused calculation. Knowing how and when to use
each one is a special skill.

1) Using Fix...Endfix, where calculations within the Fix scope are


restricted to the Fix argument parameters. For example:
FIX (Budget)

“Gross Margin %” = “Gross Margin”/ “Net Sales”;


ENDFIX

2) Using IF...Endif, where calculations within the IF scope are restricted


to the IF argument parameters. For example:

Gross Margin %
(
IF(@ISMBR (Budget))
“Gross Margin %”= “Gross Margin”/ “Net Sales”;
ENDIF
)

Hyperion 16-7
The Most Important Calc Scripts Fast Track for Designers
16
3) Using The Cross Dimensional Operator, which allows hard wiring of
member relationships within a formula. For example:
Gross Margin %

(
“Gross Margin %”>Budget = “Gross Margin”->Budget / “Net Sales”>Budget;
)

Controlling the wild and hairy beast.

Using FIX to Focus

FIX is one of three principal methods in Analytic Services for focusing the
scope of calculations. FIX can be used only in calc scripts, not in member
formulas in the outline.

FIX may have one or several arguments that restrict the calculation scope:

Arguments may be member names or macros and may follow in any


order:
FIX (Actuals, @Descendants (“Family Total”))
is the same as:
FIX (@Descendants (“Family Total”), Actuals)

The FIX statement focuses


calculations to members that
are actuals and are
descendants of Family Total.

Arguments separated by commas indicate and logic. More complex


focusing can be done with arguments using AND/OR operators:
FIX((@CHILD(East) AND @UDA(Market, “New Mkt”)) OR
@UDA(Market,”Big Mkt”))

16-8 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
All calculations within the FIX...ENDFIX statements are executed
according to the restrictions in the arguments:

In this example, the CALC DIM statement and formula for list price
are restricted to Actuals for February:

FIX (Actuals, Feb)


CALC DIM (Accounts, Product, Customer);
(“List Price” = “Net Sales” / Units;)
ENDFIX
FIX statements can be nested within FIX statements without
limitation.

FIX (Actuals, Feb)


FIX (“Net Sales”)
CALC DIM (Product, Customer);
ENDFIX
(“List Price” = “Net Sales” / Units;)
ENDFIX
You cannot calculate members within a FIX where the FIX already
restricts the calculation:
The restriction in
the Fix argument FIX (Actual, “Jan”)
to month Jan CALC DIM (Accounts, “Year Tot”, Customer, Product);
contradicts the ENDFIX
Calc Dim on Year
Tot.

Prepocessing functions are supported within FIX statements. For


example, you might want to fix on an upper level member and its
children, but exclude the descendants of one child.

/* Fix on all members that are level 0 Product, but not a Descendant of
LIGHTBOLT*/
Fix (@Remove(@Levmbrs(Product, 0), @Descendants(LIGHTBOLT));

Hyperion 16-9
The Most Important Calc Scripts Fast Track for Designers
16
Exercise - Using FIX to Focus
Modify the following calc script to fix on:

Current Year
January, February and March

/* Housekeeping */
SET UPDATECALC OFF;

/* The Baseline Fix */

/* The Main Roll-up */


CALC DIM (Accounts, "Year Tot", Customer, Product);

16-10 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
Using IF to Focus

IF, ELSE, ELSEIF is the second of three principal methods in Analytic


Services for focusing the scope of calculations. IF statements can be used
in both calc scripts and member formulas in the outline.

IF may have one or several arguments that restrict the calculation scope:

Arguments may be Booleans with member names or Booleans that


reference macros. Arguments may follow in any order and include
AND/OR operators:

IF (@ISMBR (Actual) AND @ISDESC (“Family Total”))


Is the same as
IF (@ISDESC (“Family Total”) AND @ISMBR (Actual))

All calculations within the IF...ENDIF statements are executed according


to the restrictions in the arguments. Additional ELSE or ELSEIF
statements may be included.

In this example, the formula for list price and unit cost are restricted
Remember from to Actuals for descendants of Family Total.
the Member “List Price”
Formula section, (
IF requires a calc
IF (@ISMBR (Actual) AND @ISDESC (“Family Total”))
member block
“List Price” = “Net Sales” / Units;
begins with a
pointer and is “Unit Cost” = “Cost of Sales” / Units;
enclosed in ENDIF
parentheses. In this example, the formula adds additional calculations with a
conditional ELSEIF statement:
“List Price”
(
With If, Else and IF (@ISMBR (Actual) AND @ISDESC (“Family Total”))
ElseIf, it is easy to List Price” = “Net Sales” / Units;
write formulas
“Unit Cost” = “Cost of Sales”/ Units;
with multiple
ELSEIF (@ISMBR (Budget) AND @ISDESC (“Family Total”))
conditions
stringed together. “List Price” = “(Net Sales” ->Actual/ Units->Actual)*1.1;
“Unit Cost” = “(Cost of Sales” ->Actual/Units->Actual)*1.1;
ENDIF
)

✍ IF statements are incorporated into and follow the syntax rules of


calc member blocks.

This isn’t rocket science. Just be patient.

Hyperion 16-11
The Most Important Calc Scripts Fast Track for Designers
16
FIX Versus IF Considerations

With some exceptions, you may execute the same commands with
FIX...ENDFIX and IF...ENDIF statements. The guidelines for when to use
FIX versus IF are principally performance related. Using IF when you
should FIX causes major degradation in calculation performance.

FIX is index driven. That means its arguments are evaluated without
bringing all data blocks into memory. Only those data blocks required by
the FIX statement arguments are touched. For example:

Scenarios is a sparse dimension. Therefore, in the script below, only


the data blocks marked as Actual are brought into memory for
calculation. Blocks for Forecast and Budget are bypassed.

FIX (Actual)
CALC DIM (Accounts, “Year Tot”, Product, Customer);
“List Price” = “Net Sales” / Units;)
ENDFIX

The most important conclusions in the context of understanding passes on


data blocks is:

Each FIX statement triggers a separate pass on data blocks as


specified in its arguments. Every time you see a fix statement, think
through whether your purpose is being served.
FIX is a powerful tool for focusing on when blocks are actually
touched. Given that you need to make a pass, use FIX to pass only
those blocks absolutely essential to your calculation purpose.
Analytic Services does not care. It calculates everything unless you
focus on specific data blocks using FIX.

Do use FIX when


the arguments are
members of
sparse
dimensions.

Don't use IF when


the arguments are
members of
sparse
dimensions. Product is a sparse Dimension

16-12 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
The best opportunities for reducing the number of blocks passed occurs in
the normalization and back calc sections of your calc script. Here are some
simple guidelines:

In the normalization, use FIX precisely for focused rollups. Only


subsets of upper level data blocks across sparse business views need
be built for allocation bases or aggregating totals to allocate.
As an alternative to FIX for creating focused rollups for allocation
aggregations, use macros for computing subset descendancies. For
example:
• @IDESCENDANTS (“Net Sales”); - to compute only a subset of
accounts used in the allocation.
• @IDESCENDANTS (“Family Roll-up”); - to compute only a subset of
products used in the allocation.
With allocations and pushdowns, it is typical that calculations are
required only at the zero level. FIX using such macros as
@GENMBRS (dimName, genNameOrNumber) or @LEVMBRS
(dimName, levNameOrNumber).

Unlike FIX which controls the flow of calculations, IF is not index driven.
IF statements are interpreted formulas.

With IF statements, all blocks are brought into memory when the IF logic
is applied. With such conditional logic, however, blocks are brought into
memory only once even though multiple conditions may be applied.

Year Tot is a dense dimension and Product is sparse. In the script


below, all data blocks are brought into memory only once even
though each month has a different calculation requirement. Because
the time dimension is dense, each month's List Price is a separate cell
all within the data block.

“List Price”
(
IF (@ISMBR (Jan)
“List Price” = 100
ELSEIF (@ISMBR (Feb)
“List Price” = 105
ELSEIF (@ISMBR (Mar)
“List Price” = 110
ENDIF
)

Hyperion 16-13
The Most Important Calc Scripts Fast Track for Designers
16
Two important conclusions about IF statements:

Each IF statement triggers a pass on all data blocks unless otherwise


restricted by a previous FIX statement.
IF is efficient for focusing calculations with conditional logic on
members in dense dimensions.

Do use IF when the


arguments are
members of dense
dimensions.

Don't use FIX when


the arguments are
members of dense
dimensions
involving multiple
conditions. Time is a dense Dimension

There is an important restriction in the use of IF.

IF statements must be executed within a calc member block. Within


a calc member block you may only execute member formulas.
Roll-ups functions such as CALC ALL, CALC DIM and AGG,
therefore, cannot be used with IF.

16-14 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
Exercise - Using IF to Focus
In this exercise you write two calc scripts for the Sales database.

1) Open Anatomy.xls.

2) Using the IF it worksheet as a reference, write calc scripts to:


• Push units from Aug. to Sept.
• Push units into Qtr 4 with a two month lag and a 10%
accelerator.
• Push price into Sept. and Qtr 4 with a one month lag and a 10%
decelerator.

Hyperion 16-15
The Most Important Calc Scripts Fast Track for Designers
16
The Cross Dim Operator
The cross dimensional (crossdim) operator (->) is the third of three
methods for focusing the scope of calculations.

Where FIX and IF are typically used to focus a series of member formulas
(several at one time) the cross dim operator causes the focus to occur
within a single member formula. Following is the syntax of the cross dim
operator:

The cross dim operator is constituted from a minus sign (-) and a
greater than carrot (>) sitting side by side ->.
The cross dim connects members of dimensions together (for
example, Actual->Units->Jan). No spaces are allowed between
member names and ->.
The order of members has no bearing. Actual->Units operates the
same as Units->Actual.
A cross dim statement may have only one member from each
dimension. There may be as many members in the statement as there
are dimensions.
With just a few exceptions, the cross dim statement can be used
anywhere that a regular member name is used. For example:

DATACOPY Units->Actual TO Units->Budget;


@ANCESTVAL (Product, 2, Units->Actual);
IF (@ISMBR(Units->Actual))

Used within formulas, the cross dim operator focuses the calculation to
specific member combinations. Below are examples of different conditions
of how the cross dim operator would work.

Forecast units to equal budget units plus 10%:

FIX (Forecast)
Units= Units->Budget * 1.1;
ENDFIX

16-16 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
The calculation is performed for all forecast products, customers and time
periods. Think through what members are not included in the cross dim
operator as well as what members are included.

Forecast units to equal budget units plus 10% for January, Lightbolt
365 A, IBM.
FIX (Forecast)
Units= Units->Budget->Jan->”Lightbolt 365 A” ->IBM * 1.1;
ENDFIX

Handy little
dude, that
crossdim fella.

Booleans, Member Sets and Relationship Functions


Most database products with hierarchical roll-ups have no intelligence in
the aggregation process. They have no knowledge of where the calculator
is processing or relationships between members in the hierarchy.

The Analytic Services calculator knows where it is operating in the


calculation cycle. Because of this knowledge, you may cause specific
calculations to occur with generation, level or member name references
using special syntax that Analytic Services provides. The syntax falls into
three categories: macros, Booleans and relationship functions.

Hyperion 16-17
The Most Important Calc Scripts Fast Track for Designers
16
The Analytic Services calculator incorporates a broad range of functions
that reference the relationships between members within a hierarchy or
generation/level references:

@ANCESTORS Any member higher in a hierarchy

@CHILDREN Any member directly lower in a hierarchy

@DESCENDENTS Any member anywhere lower in a hierarchy

@SIBLINGS Any member anywhere with the same parent

@PARENT Any member next up in a hierarchy

@GEN Any member at a specific generation

@LEV Any member at a specific level

Analytic Services knows where it


is in the calc cycle. With
Booleans, macros and
relationship functions. Therefore,
you can tell it what you want it to
do with great precision
referencing outline relationships.

16-18 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
This table contains the types of relationship categories which incorporate
the relationship language functionality:

Category Description Functions


Member Sets Return a list of members @ANCESTORS
to be acted upon. These @CHILDREN
macros are most typically @DESCENDANTS
used with FIX @IDESCENDANTS
statements.
Booleans Ask if a condition is true @ISANCEST
or not about a @ISCHILD
relationship. Booleans @ISDESC
are always used with IF @ISIDESC
statements. @ISGEN
Relationship Return a value of the @ANCESTVAL
Functions relationship member @MDANCESTVAL
relative to a member @SANCESTVAL
being calculated. @PARENTVAL
@GEN
@CURGEN

Using Member Set Commands

Member Set commands create a list of members (a set) which is acted


upon by another function which incorporates the member set reference in
its own syntax.

The member set name describes the hierarchical relationship of the


member list. For example:

@DESCENDANTS (“Net Sales”) - returns the descendants of Net Sales


@CHILDREN (“Quarter 1”) - returns Jan, Feb and Mar
@SIBLINGS (Performance) - returns Value and No Product, Performance's
Siblings.

Use member sets in formulas and FIX commands where a subset of


members are to calculated upon, or as stand alone member formulas.

FIX (@CHILDREN (Cash Discount))


CALC DIM (Products, Customers);
ENDFIX
-or-
@IDESCENDANTS (Gross Sales);

Hyperion 16-19
The Most Important Calc Scripts Fast Track for Designers
16
Member set commands are also used in Analytic Services' security system
for setting up filters which specify a user's access to subsets of the
database outline and in partition area definitions.

Use macros to set


up security filters
which control
access of users to
subsets of the
outline.

Using Booleans

Like macros, Booleans create a list which is acted upon. The Boolean
operates only in the context of an IF, ELSE or ELSEIF statement defining
the IF condition and returning true or false for calculations on a data block
or member cells.

If the condition defined by the Boolean is true (Analytic Services is


calculating on a member called out by the Boolean parameter) then the
commands following the IF statement are executed.

If the condition defined by the Boolean is false (Analytic Services is not


calculating on a member called out by the Boolean parameters) the
commands following the IF statement are not executed.

Booleans incorporate a broad range of hierarchy relationships, level and


generations references and other members characteristics such as account
type and UDAs.

@ISCHILD (mbrName)
@ISICHILD (mbrName)
@ISMBR (mbrName | rangeList | mbrList)
@ISACCTYPE (FIRST|LAST|AVERAGE |TWOPASS|EXPENSE)
@ISLEV (dimName, level)
@ISUDA (dimName, Uda)

16-20 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
@ISSAMEGEN (mbrName)

Booleans provide
a broad range of
functionality for
structuring
conditional
calculations that
reference
member
relationships or
attributes.

Using Relationship Functions

Boolean and macros are used in the control of the flow of calculations.
Relationship operators, by contrast, reference values of other members in
the outline in relation to the member currently being calculated. The
referenced value is then used in a member formula on the right side of an
equation.

Relationship functions return values of members used in calculating


formulas. For example:

@Parental (Product, Units) - returns the number of units for the parent
of the member being calculated on in the Product dimension. This
might be used in a product mix calculation such as:

“% Units”= Units / @PARENTVAL (Product, Units);

@ANCESTVAL (Product, 2, “Net Sales”) - returns the number of units


for the ancestor of the member being calculated on in the Product
dimension at generation 2. This might be used in a calculation for
defining an allocation rate based on Net Sales.

AllocRate = “Net Sales”/ @ANCESTVAL (Product, 2, “Net Sales”);

✍ To calculate the allocation rate, divide Net Sales for the


member being calculated upon by the Net Sales of its ancestor
defined to be at generation two across the Product dimension.

Hyperion 16-21
The Most Important Calc Scripts Fast Track for Designers
16
The values returned are relative to the current member being calculated.

The references can be based on single dimension with


@ANCESTVAL or on multiple dimensions with @MDANCESTVAL.
The references can also be based on Shared Member relationships
using SANCESTVAL:

@SANCESTVAL (Product, 3, Units)

Relationship
operators provide
functionality for
calculating
formulas using
values that
reference another
member relative
to the member
being currently
being calculated.

If I use
relationship
functions, will I be
more popular?

Variables
Analytic Services support two categories of variables used in the
calculating process:

Substitution variables, which are set server-wide or specific to


applications and databases for calculating and reporting on values
that reference specific members
Temporary variables, which are used within calc scripts to capture
temporary values used for intermediate calculations

Substitution Variables

Substitution variables are typically used for references where the member
assigned to the variable's value rolls over each month such as the
definition of Current Month for financial reporting.

16-22 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
Substitution variables are commonly used in situations where a value
(current month) references a member name (Feb) across multiple calc
script and spreadsheet reporting references.

The benefit from using the substitution variables is that the variable is
maintained in one place at one time rather than across the multiple calc
scripts and spreadsheets.

To set up a substitution variable:

1) From the Application Manager desktop, select Server / Substitution


Variables.

2) In the Substitution Variables window, select an Application and


Database.

✍ The scope may be set at any level of granularity (server-wide,


application specific or database specific).

3) In the Variable field, type a one word variable name.

Hyperion 16-23
The Most Important Calc Scripts Fast Track for Designers
16
4) In the Value field, type the member name the variable references.

5) Click Set.

6) Set as many variables as you choose for the selected Server,


Application and Database combination, then click OK.

✍ To update substitution variables, select the variable name from the


variable list and edit its name or value reference, then click Set.
Substitution variables can also be set and updated through
ESSCMD, Analytic Services' batching facility.

To use substitution variables within calc scripts:

1) Within a calc script, type a substitution variable name prefaced with


an ampersand (&) in any place where a member formula or reference
using a regular member name would be used.

16-24 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
2) From the same calc script where the specific substitution variables are
being used, select Options / Set Substitution Variables Scope.

3) Match the comparable settings set up in the Substitution Variables


dialog for the substitution variables referenced.

✍ When the calc script is executed, Analytic Services automatically


substitutes the value (a member name reference) for the substitution
variable, and then performs the appropriate calculation. Substitution
variable references may not be used in formulas associated with
members in the outline.

To use substitution variables with spreadsheet reports:

1) Type the substitution variable name on the spreadsheet preceded by


an ampersand (&) in any page header or row/column header where
otherwise a member name would be used.

Hyperion 16-25
The Most Important Calc Scripts Fast Track for Designers
16
2) Retrieving into the worksheet replaces the substitution variable
reference with the member name that has been entered as the
variable's value. Analytic Services then reads the member name for
the retrieve operation.

Retrieval before and after into a


worksheet containing substitution
variable references. The variables for
CurrentMonth and PriorMonth are
replaced by the variables' values
represented by the members Jan and
Feb.

✍ Since retrieving replaces the substitution variable with a member


name, the worksheet is not useful for a subsequent retrieval if the
workbook is saved. This problem can be resolved by saving the
reporting workbook as a template.

16-26 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
Temporary Variables

Temporary variables use the VAR data declaration command. Unlike


substitution variables, temporary variables are calc script specific and
therefore cannot cross over in their use between databases.

Temporary variables within calc scripts are typically used to capture


temporary values that are referenced in member formula calculations but
not stored in an actual member for reporting.

The benefit of using temporary variables is twofold:

Complex formulas (for example, an allocation rate formula) need be


written and debugged only once, then used on multiple occasions
within the calc script.
Complex formulas are calculated only once, rather than multiple
occasions requiring the reference, thereby reducing calculation time.

Setting up and using temporary variables involves three distinct steps:

1) Declare the variable in the Housekeeping section of the script using


the VAR (not @VAR) command using a variable name of your own
construction. For example:
VAR ResultUnits;
VAR StdUnits;
VAR ResultPrice;
VAR StdPrice;
VAR ResultCost;
VAR StdCost;
VAR ResultMargin;
DECLARE IT: The VAR StdMargin;
variable StdAvg VAR ResultUnitsRestated;
MarginUnit is VAR StdAvgMarginUnit;
declared.

Hyperion 16-27
The Most Important Calc Scripts Fast Track for Designers
16
2) Define the variable using a member formula construction. If the
variable references member names in the outline, then the syntax
must follow the rules of calc member blocks. In the example below,
the temporary variables are redefined for each data block being
calculated upon.

ResultUnits = Units->Actual;
StdUnits = Units->Budget;
ResultPrice = “Unit Price”->Actual;
StdPrice = “Unit Price”->Budget;
ResultCost = “Unit Cost”->Actual;
StdCost = “Unit Cost”->Budget;
ResultMargin = Margin->Actual;
StdMargin = Margin->Budget;
DEFINE IT: The ResultUnitsRestated = @ANCESTVAL (Product, 2, Units->Actual) *
variable StdAvg (Units->Budget / @ANCESTVAL (Product, 2, Units->Budget));
MarginUnit is StdAvgMarginUnit = @ANCESTVAL (Product, 2, Margin->Budget) /
defined. @ANCESTVAL (Product, 2, Units->Budget);

3) Use the variable as references in subsequent member formulas. Note


in the example that all member formulas are now calculated from
pure temporary variable references. These calculations are refreshed
with each new data block based on the redefinition of the temporary
variables at step 2.

“Scenario B/W Budget” = ResultMargin - StdMargin;


“Scenario Price Var” = ResultUnits * (ResultPrice - StdPrice);
“Scenario Cost Var” = ResultUnits * (ResultCost - StdCost) * -1;
USE IT: The “Scenario Qty Var” =
variable StdAvg ((ResultUnits - StdUnits)
MarginUnit is now * StdAvgMarginUnit)
used in three +
different places in (ResultUnitsRestated - StdUnits)
the actual * ((StdMargin / StdUnits)
member formula - StdAvgMarginUnit);
calculations. “Scenario Mix Var” = (ResultUnits - ResultUnitsRestated) *
((StdMargin / StdUnits)
- StdAvgMarginUnit);

Calc Script Overload

16-28 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
Check Your Understanding

1) What are member formulas? When do you use them?

2) What is jump ahead behavior, and what syntax can you use to control
it?

3) Describe Top-down calculating.

4) How do you control Top-down calculating?

5) What are the guidelines for using Fix versus IF statements?

Hyperion 16-29
The Most Important Calc Scripts Fast Track for Designers
16
6) List and describe the three relational function categories?

7) What are the two types of variables available in Analytic Services?

16-30 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16

Hyperion 16-31
The Most Important Calc Scripts Fast Track for Designers
16
Check Your Understanding Solutions

1) What are member formulas? When do you use them?

Member formulas are lines in calc scripts referencing specific


members in the outline that perform a mathematical calculation on
the referenced member. Following are examples of member
formulas:

Gross Margin %” = “Gross Margin”/ Sales;


Units = @PRIOR (Units, 2) * 1.1;
ISAllocation = TotAccounts->TotISDepts->YearTot * AllocationRate;
“Unit Mix %”= Units / @ANCESTVAL (Product, 3, Units);

Most of the lines of code in a calc script are member formulas.

When do you use member formulas in an outline? The following are


typical circumstances:
• For calculation constructions that cannot be done with unary
(consolidation) operators in the outline (conditional formulas
requiring an IF statement).
• For calculations involving complex dependencies that cannot be
handled through the outline's natural order of calculation
(normalization calculations such as allocations that must be
calculated prior to a CALC DIM statement).
• For back calculations on upper level percentages and rates the
cannot be calculated in the outline because of order of calculation
issues.

You often use member formulas in calc scripts when calculation


requirement are more complicated (especially characterized by a
more complex order of calculation or dependency relationships).

2) What is jump ahead behavior, and what syntax can you use to control
it?

Member formulas require special syntax under certain


circumstances. Enclose member calculations within parentheses (...)
to absolutely control the calculation order of member formulas that
follow CALC DIM statements:
• Following a CALC DIM statement, Analytic Services jumps
ahead and execute subsequent member calculations out of order.
• To prevent jump ahead where order of calculation matters,
enclose member calculations in parentheses.

16-32 Hyperion
Fast Track for Designers The Most Important Calc Scripts
16
3) Describe Top-down calculating.

In contrast to spreadsheet formulas where every calculated


intersection needs a formula, the Analytic Services calculator has a
top-down approach to calculation.

Unless otherwise restricted by a FIX or IF command, every member


formula in a calc script (every line of code) is executed everywhere in
the database (on each and every data block). For example, a formula
on a member in the Accounts dimension:

“Gross Margin %” = “Gross Margin” / “Net Sales”;

is executed for every possible combination of members in the


database where the underlying data exists. This top-down calculation
capability lets you accomplish a large amount of computing with few
lines of code to write and debug.

4) How do you control Top-down calculating?

A major element of calc script drafting is understanding how to focus


your calculations.

With the Analytic Services calculator, there are three principal


methods for focusing calculations. Each of these three methods can be
used to accomplish the same focused calculation. Knowing how and
when to use each one is a special skill.
• Using Fix...Endfix, where calculations within the Fix scope are
restricted to the Fix argument parameters.
• Using IF...Endif, where calculations within the IF scope are
restricted to the IF argument parameters.
• Using The Cross Dimensional Operator, which allows hard
wiring of member relationships within a formula.

5) What are the guidelines for using Fix versus IF statements?

With some exceptions, you may execute the same commands with
FIX...ENDFIX and IF...ENDIF statements. The guidelines for when to
use FIX versus IF are principally performance related. Using IF when
you should FIX causes major degradation in calculation performance.

FIX is index driven. That means its arguments are evaluated without
bringing all data blocks into memory. Only those data blocks
required by the FIX statement arguments are touched.

Unlike FIX which controls the flow of calculations, IF is not index


driven. IF statements are interpreted formulas.

Hyperion 16-33
The Most Important Calc Scripts Fast Track for Designers
16
With IF statements, all blocks are brought into memory when the IF
logic is applied. With such conditional logic, however, blocks are
brought into memory only once even though multiple conditions
may be applied.

6) List and describe the three relational function categories?

Category Description Functions


Member Sets Return a list of members @ANCESTORS
to be acted upon. These @CHILDREN
macros are most typically @DESCENDANTS
used with FIX @IDESCENDANTS
statements.
Booleans Ask if a condition is true @ISANCEST
or not about a @ISCHILD
relationship. Booleans @ISDESC
are always used with IF @ISIDESC
statements. @ISGEN
Relationship Return a value of the @ANCESTVAL
Functions relationship member @MDANCESTVAL
relative to a member @SANCESTVAL
being calculated. @PARENTVAL
@GEN
@CURGEN

7) What are the two types of variables available in Analytic Services?

• Substitution variables, which are set server-wide or specific to


applications and databases for calculating and reporting on
values that reference specific members.
• Temporary variables, which are used within calc scripts to
capture temporary values used for intermediate calculations.

16-34 Hyperion
17
Calc Script Development Procedures

Chapter Objectives
Upon completion of this chapter, you will be able to:

• Transfer files from client to server


• Create calc scripts
• Test calc scripts
17 Calc Script Development Procedures Fast Track for Designers

Setting the Stage


Writing calc scripts for Analytic Services is like playing 3-D chess
blindfolded. You may play any number of pieces (Analytic Services
functions and macros) across a multidimensional array of squares (data
blocks) that have input data in them that you cannot see (you are
blindfolded, remember). Yes, it is complicated.

Therefore, you need step by step procedures for developing, debugging


and testing calc scripts. This section details a simple procedure for
developing and transferring database objects from client to server.
Develop Load
Rules

Develop Outline

Develop Test Script Test Pilot Script


(Test Data) (Real Data)

Process
and
Procedure

Transferring Files from Client to Server


You can manually create and move outline members or load members
using load rules without being connected to an Essbase OLAP server. As
such, it is common that outlines initially developed on a client need to be
moved to the server.

The process of moving files is divided into three phases:

Create an empty database shell


Save the client based outline to the server
Confirm save as action

17-2 Hyperion
Fast Track for Designers Calc Script Development Procedures
17
Moving Outlines

The basic procedure for moving an outline from client to server involves
overwriting (using save as) a preexisting outline on the server.

To transfer an outline from the client to server:

Creating an empty database shell:

1) From the Application Manager desktop, select File / New / Application.

2) Type an Application Name.

3) In the Location section, select Server.

4) Select a Server.

5) Click OK.

6) From the Application Manager desktop, select File / New / Database.

7) Type a Database Name.

8) Select a Database Type.

9) Click OK.

✍ The new database is empty (it has no members). Leave this


empty outline closed during the subsequent steps.

Hyperion 17-3
17 Calc Script Development Procedures Fast Track for Designers

Saving the client based outline to the server:

10) From the Application Manager desktop, select

Database Outlines .

11) Click Open.


The Outline Editor displays.

12) Select File / Open.

13) Assuming the outline is on the client machine, select Client.


The File System button activates.

14) Click File System.

15) Find and open the source outline.

✍ This is the client-based outline.

16) With the client based outline open, select File / Save As.
The Save Server Object window displays.

17) In the Location section, select Server.

18) Select an application and database.

Confirming save as action:

✍ In other applications, when you perform a Save As action, you type


in the new file name and are then prompted to confirm the
overwrite. With Analytic Services, there is ambiguity because the
database name already exists and is disabled. Despite the ambiguity,
the Save As overwrite occurs automatically when you click OK and
confirm the action.

17-4 Hyperion
Fast Track for Designers Calc Script Development Procedures
17
19) Click Yes.

20) Click Yes.

21) Click Yes.

✍ While no data exists in your newly created outline, the dialogs are
oriented to protecting your data as if it did exist.

Moving Load Rules and Calc Scripts

Saving load rules and calc scripts from the client to the server follows
more conventional Save As rules. Specifically, you do not need to create
an empty shell to overwrite as in the case with transferring outlines.

To move load rules and calc scripts from client to server:

1) Open the load rule or calc script to be moved.

Hyperion 17-5
17 Calc Script Development Procedures Fast Track for Designers

2) Select File / Save As.

3) Select the destination application and database within the Save


Server Object window.

4) Type an Object Name for the load rule or calc script.

5) Click OK.

Database objects moved -


cheap!

Creating and Testing Calc Scripts


The most common mistake developers make in drafting calc scripts is
developing and testing on full blown, real world databases. Because of the
complexities of calculating in a multidimensional environment, scripts
must be incrementally developed and tested. That means writing line by
line with very frequent test cycles.

Developing and testing calc scripts from scratch on full blown databases
has two fundamental problems:

Cycle times (the turnaround time for testing a segment of code) are
substantially increased when testing on full databases. Long calc
times frustrate incremental development and testing which is
necessary in the Analytic Services environment where calculation
dependencies are complex and multidimensional impacts are not
immediately obvious.
Real world data is often more difficult to audit than test data. The
focus of initial development of scripts should be on the technical
accuracy of calculation formulas rather than trying out prescribed
control totals. It is typically easier to trace calculations and
dependencies with contrived test data than real world data.

17-6 Hyperion
Fast Track for Designers Calc Script Development Procedures
17
In the sections that follow, we break down the calc script process into two
phases:

The prototype phase where scripts are developed and tested for
baseline accuracy
The pilot phase where scripts are tested for performance and capture
of exception conditions.

Develop Load
Rules

Develop Outline

Develop Test Script Test Pilot Script


(Test Data) Real Data)

✍ After the outline is completed, you should separate the calc script
development process from the data load and roll-up testing process.

Developing a Prototype

The recommended process of creating a prototype script has three steps:

1) Create test input data.

2) Create audit sheets.

3) Implement a draft and test cycle.

The objective of the prototype phase is to create a calc script which


correctly calculates dependences and values (it gets the numbers right for
baseline calculations). You want the prototyping phase to be; 1) fast and
efficient with low test cycle times; and 2) easy to audit for complex
calculations.

Creating Test Input Data

To check your results, you should create test data that is simple, easy to
load and easy to audit. It is generally not efficient to create prototype calc
scripts using a full or even partial sets of actual data.

Hyperion 17-7
17 Calc Script Development Procedures Fast Track for Designers

To set up a simple data set for prototyping:

1) Create a spreadsheet workbook with one or more input worksheets


representing a focused set of accounts to be tested against a
representative cross section of business view members.

✍ Different input sheets are typically required where the levels


of input vary.

2) Retrieve from an empty outline.

3) Type in your own test data into the blank input sheets.

✍ It is preferable not to use actual data which are more difficult


to audit. Use simple numbers where it is easy to trace a series
of calculation dependencies.

To reduce the testing cycle time, use simple,


easy to audit data when developing prototype
calc scripts.

Creating Audit Sheets

When drafting and testing calc scripts, you must be able to audit results
without a lot of trouble. To accomplish this, set up in your testing
workbook one or more audit sheets separate from input sheets.

17-8 Hyperion
Fast Track for Designers Calc Script Development Procedures
17

To set up audit sheets:

1) Retrieve into a blank worksheet from your empty outline.

2) Create a report which reflects a combination of accounts that show


both input data and resulting calculations.

✍ Do not try to audit too many type of calculations on one sheet. Set up
additional sheets where the levels of input and calculated values
differ.

Audit sheets are


designed to test
whether specific
calculations are
working or not. You
may have several audit
sheets which test
different calculation
sequences (such as
allocations versus
back calcs).

Hyperion 17-9
17 Calc Script Development Procedures Fast Track for Designers

Implement a Draft and Test Cycle

Once input and audit worksheets are set up, you draft and test your
prototype calc script using a cyclical test procedure.

The best advice:


do not try to write a calc
script all at once. Write
a line, then test a line
using the prototyping
procedure.

To test the calc script:

1) Draft a line of calc script code.

2) Save the script.

3) Execute a CLEARBLOCK ALL calc script.

✍ This clears out all previous input data and calculations. It is


important that each round of testing is done on a clean, empty
database with no possibility of values being carried over from
a previous input and calculation cycle.

4) If testing calculations for changes in inputs, manually modify data on


the input sheets. Lock and send input sheets.

✍ Before you execute the calc script, go to the audit sheet and
retrieve. With this retrieval, you verify your inputs which were
just loaded from the input sheet.

17-10 Hyperion
Fast Track for Designers Calc Script Development Procedures
17
5) Execute the calc script.

6) Retrieve into the audit sheet to inspect the calculation results.

✍ Use Flashback to toggle to the before calc condition to inspect


inputs only. Retrieve again to inspect the after calc results.

HTML Error Files

Many times an error message is accompanied by an error code. Analytic


Services provides an HTML help file that lists error codes encountered
during data loads and calculations. This documentation contains an
explanation of the error message and a possible solution.

Hypertext to
other help files.

✍ Many of the entries contain hypertext links to other help guides.

Hyperion 17-11
17 Calc Script Development Procedures Fast Track for Designers

To access the calculation error messages information:

1) From the Windows desktop, select Start / Programs / Hyperion Solutions


/ Hyperion Essbase / OLAP Server Documentation.

2) Select Error Messages.


The Error Messages window displays.

17-12 Hyperion
Fast Track for Designers Calc Script Development Procedures
17
3) In the Content section, select Calculation (1012000 to 1012750).

4) Select a message number from the table.


The error information displays.

Testing in a Pilot Environment

In developing the prototype script, you presumably confirmed that


calculations and dependencies are working correctly on test data. The
orientation of the pilot phase is to now test the prototype script against
real world data and make further necessary changes.

The initial step, of course, is to do a complete load of input data and then
execute the prototype calc script. Be sure to check database statistics
before and after the calculation. You may write off a log file with the
statistics using ESSCMD, Analytic Services’ batching facility.

You typically make two types of adjustments to the prototype script


during pilot testing:

Performance
Exception trapping

Hyperion 17-13
17 Calc Script Development Procedures Fast Track for Designers

Performance

During prototype testing, the database is typically too small for you to
accurately assess performance impacts. During the pilot phase you often
modify the prototypical script to recognize performance issues. For
example:

Focusing calculations on specific data blocks using FIX statements


Revising sparse/dense settings reflective of final calculation
requirements
Revising dynamic calc (versus batch calc) approaches reflective of
final calculation requirements

Exception Trapping

The prototype calc script typically addresses mainstream or baseline


calculation requirements that are known (how to calculate specific
allocations or metrics). Testing this prototypical script against real world
data typically results in errors that represent exception conditions that
require further refinement of the calc script. For example:

Actual data may come in a different levels than was assumed during
the prototype calc script phase, thus requiring adjustment to
allocation algorithms.
Calculated values may require extra IF, ELSEIF logic loops to handle
exception conditions like zero values.
DATACOPY commands may have to be added to create data blocks.

I Eat Bugs

17-14 Hyperion
Fast Track for Designers Calc Script Development Procedures
17
Check Your Understanding

1) What are the three steps to migrate an outline from the client to the
server?

2) What are the two fundamental problems you face when trying to
create and test a calc script on a complete database?

3) What is the recommended process for creating and testing a calc


script?

Hyperion 17-15
17 Calc Script Development Procedures Fast Track for Designers

Check Your Understanding Solutions

1) What are the three steps to migrate an outline from the client to the
server?

You may manually create and move outline members or load


members using load rules without being connected to an Essbase
OLAP server. As such, it is common that outlines initially developed
on a client need to be moved to the server.

The process of moving files is divided into three phases:


• Create an empty database shell
• Save the client based outline to the server
• Confirm save as action

2) What are the two fundamental problems do you face when trying to
create and test a calc script on a complete database?

The most common mistake developers make in drafting calc scripts is


developing and testing on full blown, real world databases. Because
of the complexities of calculating in a multidimensional environment,
scripts must be incrementally developed and tested. That means
writing line by line with very frequent test cycles.

Developing and testing calc scripts from scratch on full blown


databases has two fundamental problems:
• Cycle times (the turnaround time for testing a segment of code)
are substantially increased when testing on full databases. Long
calc times frustrate incremental development and testing which
is necessary in the Analytic Services environment where
calculation dependencies are complex and multidimensional
impacts are not immediately obvious.
• Real world data is often more difficult to audit than test data.
The focus of initial development of scripts should be on the
technical accuracy of calculation formulas rather than trying out
prescribed control totals. It is typically easier to trace calculations
and dependencies with contrived test data than real world data.

17-16 Hyperion
Fast Track for Designers Calc Script Development Procedures
17
3) What is the recommended process for creating and testing a calc
script?

The recommended process of creating a prototype script has three


steps:
• Create test input data
• Create audit sheets
• Implement a draft and test cycle

The objective of the prototype phase is to create a calc script which


correctly calculates dependences and values (it gets the numbers
right for baseline calculations). You want the prototyping phase to be:
1) fast and efficient with low test cycle times; and 2) easy to audit for
complex calculations.

Hyperion 17-17
17 Calc Script Development Procedures Fast Track for Designers

17-18 Hyperion
18
Heads Up Issues

Chapter Objectives
Upon completion of this chapter, you will be able to:

• Describe calculation order dependencies


• Manage calculation settings to optimize performance
• Describe the Aggregate Missing Values setting
• Describe common calculation errors
• Load data correctly to leaf nodes
• Identify situations when you can use the two-for-one calculation
strategy
• Describe parallel calculation and its role in improving performance
Heads Up Issues Fast Track for Designers
18
Setting the Stage
Now that we have discussed the difference between correct and expected
behavior, and how Analytic Services calculates the numbers during an
aggregation process does not necessarily yield correct answers. In this
section, we give you some important advice about how the Analytic
Services calculator works and help you recognize aberrations that may
affect calculated results.

Would you give these numbers to


your boss?

The Data Block


You have questions about the calculation order and dependencies in your
calc script. You wonder why your calc time went down when you
changed scenarios from dense to sparse? Your calc time doubled when
you added a one two pass calc formula, but stayed the same when you
added a second?

The answer to these and nearly every other question about calculation
performance is the same: The Data block!

Nearly all questions about how the Analytic Services calculator works gets
back to data block thinking.

18-2 Hyperion
Fast Track for Designers Heads Up Issues
18
To reinforce such thinking, we want you to use three methodologies when
developing your calc scripts.

Block Visualization
Pass Tracking
Block Minimizing

It’s the Data


block.
Is that some kind
of mantra?

Block Visualization

To understand what is occurring within a calculation use a series of


dependent formulas.

Visualize one data block moving from disk to memory, then analyze
how the calculations would be applied to that single data block.
Then visualize the balance of blocks, qualified by whatever fix
statements you may be using, moving from disk to memory. The
same exact series of calculations that were performed on the first
block are performed on the subsequent blocks.

To understand what is happening


in a complex calc sequence,
visualize how a series of formulas
are applied to one data block
(Product X, Customer Y), then
extrapolate that same sequence to
all the rest of the blocks that are
touched on that pass.

Hyperion 18-3
Heads Up Issues Fast Track for Designers
18
Pass Tracking

Pass Tracking is used when you have completed a calc script, or at key
points during the script development.

Stop and count the number of passes you are making on data blocks.
If necessary, mark the passes on the script. The principal is simple:
two passes on a given set of data blocks take twice as long as one
pass.
Ask the purpose of each pass and think through the performance
implications: Is the pass necessary? Can it be combined with another
member block pass? Can the pass be efficiently eliminated by
converting to a dynamic calc storage type?

Herbie takes another pass on his data blocks.

Block Minimizing

You can use Block Minimizing, assuming you have identified the specific
passes on your data blocks, to analyze what subset of blocks you are
passing on. Ask yourself three questions:

Are calculations being performed on a larger subset than necessary?


Can a FIX statement be used to focus better to the relevant data
blocks?
Did a previous CALC DIM statement create more blocks in a
calculation dependency chain than were necessary?

18-4 Hyperion
Fast Track for Designers Heads Up Issues
18
Understanding Aggregate Missing Values
Aggregate Missing Values is a special calculation function in Analytic
Services that speeds up calculations by eliminating redundant
aggregations in the roll-up process. The default behavior of Aggregate
Missing Values is set at the database level.

Managing the Settings

To manage settings for Aggregate Missing Values:

1) From the Application Manager desktop, select a database.

2) Select Database / Settings.

3) In the Calc Options Group, select or deselect Aggregate Missing Values


to toggle the behavior.

✍ The default behavior you set at the database level in Settings can be
overridden by inserting SET AGGMISSG ON/OFF in a calc script.

With Aggregate Missing Values selected or set on in a calc script,


calculation performance is significantly enhanced during the roll-up
process:

Within a data block, aggregations on cells that can be performed in


two ways are summed only once.

Hyperion 18-5
Heads Up Issues Fast Track for Designers
18
Between data blocks (on sparse dimensions) totals that can be
calculated by two pathways aggregating from other data block
combinations are calculated only once.
The calculator also has an algorithm that attempts to compute via
the shortest path (using the fewest blocks to compute the new total).

Data block #12 can be calculated as the sum of blocks 4+8 or the sum of blocks
9+10+11. With Agg Missing Off, Analytic Services performs the calculation both ways.
With Agg Missing On, Analytic Services does the calc once using the short path.

Upper Level Step Ons

The normal setting is for Aggregate Missing Values to be selected at the


database level, then use SET AGGMISSG OFF in specific calc scripts as
conditions require.

You potentially want to set aggregate missing values off when you need to
protect data loaded at upper levels.

Underlying the performance enhancement of aggregate missing


values, Analytic Services rolls #Missing values of children over
upper level inputs or previously calculated values data during a
CALC DIM process.
To prevent such upper level step ons, set aggregate missing off in a
calc script, or load to leaf node members.

Account values loaded to upper


levels across business views may
be stepped on by lower level
#Missing when aggregate missing
values is turned on.

Leaf Node Loading


Unlike most other hierarchical products, with Analytic Services you can
load and calculate data at upper levels in a hierarchy. In loading and
calculating at upper levels; however, there are additional issues of
expected versus correct calculation behavior.

18-6 Hyperion
Fast Track for Designers Heads Up Issues
18
More Expected Versus Correct Behavior

Examine the Simple database in screen shots below. This is Analytic


Services' most insidious case of incorrect results that is difficult to
understand without stepping through the calculations.

An apparently valid upper level data load followed by a simple Calc


Dim roll-up returns an obviously incorrect answer.

Input unit and rate data at the


zero leaf node level.

But input expense data at


Product Family A which is an
upper level.

Run a calc script: Calc Dim (Accounts, Time).

At the SKU level, units * price


correctly rolls up to Revenue
and Margin.

Exp 1 and 2 at the Product


Family level correctly rolls up
to Tot Exp and Margin.

Hyperion 18-7
Heads Up Issues Fast Track for Designers
18
But finish the calc script: Calc Dim (Product); Price = Revenue /
Units;
And the answer is wrong!

At the product family level,


Revenue - Tot Exp = Margin
is incorrect. Negative value of
$300 for Tot Expense is not
reflected in the Margin
Account.

Here is the explanation of what is happening and why the numbers are
incorrect. Analytic Services calculates absolutely and literally through
each dimension:

In the natural order of calculation, accounts are rolled up first


regardless of the level of input. Sparse dimensions are then rolled up
for each account. For more information see Anatomy Of A Roll-up,
Example Assumptions, Unit 5, Page 32.
Lower level rollups of accounts across the business view dimensions
step on the upper level inputs:
• Unary operators for Gross Margin work only in the Accounts
dimension.
• You cannot aggregate accounts at multiple levels across a
business view dimension.

The situation in this example occurs frequently when working with multi-
level inputs.

18-8 Hyperion
Fast Track for Designers Heads Up Issues
18
Loading to Leaf Nodes

Loading to upper levels that are not leaf nodes across business view
dimension is acceptable when you are loading values in the Accounts
dimension which you plan to allocate or push down to lower level across
another business view dimension.

This method works because you want the value allocated to a lower level
to roll up and step on the input. This is the test of whether the allocation
algorithm is working correctly.

If you need to load to an upper level across a business view dimension


and not have your input stepped on (you choose not to allocate down a
value) then follow the standard Analytic Services practice described
below:

Set up a leaf node member or members called No X (where x is the


dimension name). For example, No Product, No Customer or No
Region.
The requirement is that the member be a leaf node. That can be
accomplished with a Generation 2 member. The leaf node need not
be buried at a high generation level with the mass of lower level
input members.
Load to the leaf node No X member which is now out of harm's way
during the roll-up process.

One leaf node No X member can be


used for all accounts that require
upper level inputs without allocation
down.

Avoid upper level step-ons by setting


up leaf node members for upper level
loads instead of loading to members
that are in a roll-up path.

Hyperion 18-9
Heads Up Issues Fast Track for Designers
18
Accounts First
It may appear that many expected versus correct Analytic Services
calculation issues result from a practice of calculating the Accounts
dimension first followed by other dimensions. The question arises: Are the
issues bypassed if Accounts is not calculated first? No, the problems get
worse.

The Accounts dimension typically includes rates and percentages as well


as units and dollars. Examples of rates include:

Unit prices
Costs
Input percentage factors
• discount rate
• allocation rate
Many calculated metrics
• sales per employee
• cost per transaction

Examples of percentages include:

Gross margin%
Profit%
Similar analytics used especially in financial analysis

✍ If your Accounts dimension includes multiplying and/or dividing


with rates or percentages (and most do), then Accounts must be
calculated first in order to get the numbers correct. It is a
straightforward order of calculation issue.

An Example Scenario

Examine the example starting below and continuing on the next page.

The need to calculate the Accounts dimension first may be problematic if


Accounts is set to sparse. Calculating a sparse dimension before dense
causes an additional pass on data blocks and therefore a higher calculation
time. Also, if Accounts is set as sparse, then by default the CALC DIM or
CALC ALL statements do dense dimensions before Accounts.

18-10 Hyperion
Fast Track for Designers Heads Up Issues
18
Setup

In this simple model, Units * Price = Dollars. Units and Price are inputs for
Jan, Feb, and Mar. Months sum to Qtr 1.

Accounts First, Time Second

Calculating Accounts first, month values for dollars are correctly


computed.

Calculating Time second, quarter values for dollars and units are correct.
Rate is incorrect, but this value is corrected in the back calc.

Time First, Accounts Second

Calculating Time first, units are correctly summed. Prices are incorrectly
summed.

Calculating Accounts second, month values for dollars are correct, but the
quarter value for dollars is incorrect. The backcalc does not correct the
summing of price either.

Hyperion 18-11
Heads Up Issues Fast Track for Designers
18
Dense First

In a CALC ALL statement, Analytic Services naturally calculates the dense


dimensions first, then the sparse dimensions. In a Calc Dim statement,
Analytic Services also calculates the dense dimensions first whatever the
order you state the dimensions. Why such as preoccupation with dense
first?

Calculating dense dimensions first and sparse dimensions second delivers


the shortest path in terms of the number of passes (read/writes to and
from disk) on data blocks. Follow the examples below.

Take case one where dense is calculated first and sparse second (the
normal order).

Assume 1000 blocks are created upon data load.


(Total read/writes = 1,000)
With dense calculated first, the 1000 input blocks are read, then
written back to do the calculation on the dense dimension(s).
(Total read/writes = 2,000)
For the calculations on the sparse dimensions, the same 1,000 blocks
are read again with 10,000 blocks (all the upper level blocks created
across the sparse dimension) written back.
(Total read/writes =11,000)
Dense first calculations are performed only on the input blocks. The
upper level sparse blocks are then built from the “filled out” input
blocks. A pretty economical process on the whole.
(Grand total reads and writes = 14,000)

Take case two where sparse is calculated first, and dense second:

The same 1000 blocks are created upon data load.


(Total read/writes = 1,000)

18-12 Hyperion
Fast Track for Designers Heads Up Issues
18
With sparse calculated first, the 1000 input blocks are read again and
10,000 blocks (all the upper level blocks created across the sparse
dimension) are written back. (Total read/writes = 11,000)

Calculating dense
dimensions first cuts in
half (or more) the
number of passes on
data blocks.

For the calculations on the dense dimension(s), all 10,000 blocks are
read and then written back to disk. (Total read/writes = 20,000).
When sparse is calculated first, upper level blocks are built
prematurely. All have to be revisited to fill out the dense
calculations, thus forcing passes on many additional blocks. A pretty
uneconomical process on the whole (more than twice the time as
Case 1 where dense is calculated first). Grand total reads and
writes = 33,000.

Clearly dense first wins (there are a lot fewer passes on the data blocks).
But there is a potential problem:

The requirement that dense dimensions be calculated first to reduce


passes conflicts with the conclusion that the Accounts dimension for
data integrity issues needs to be calculated first. Therefore, it is very
desirable for the accounts dimension to be set as dense.
The higher the ratio of upper to zero level blocks, the greater the
penalty of calculating sparse before dense.

Hyperion 18-13
Heads Up Issues Fast Track for Designers
18
The Back Calc
The back calc is typically the most expensive section or process within
your calc scripts in terms of calc times (in many cases taking even more
time than the main roll-up). The reason is twofold:

1) The back calc occurs after all data blocks have be built during the
CALC DIM process (you are having to revisit a lot of blocks and that
takes time).

2) Analytic Services takes more time to visit existing blocks than it does
to create new blocks from scratch. The CALC DIM statement is
typically building new blocks, whereas the back calc is touching
again blocks that were created during the CALC DIM.

By following the cookbook below, you can get a two for the price of one on
back calcs (some categories of back calculations can be accomplished
during the original pass on the blocks when they are being created).

✍ While it is sometimes possible to accomplish some back calcs during


the original pass on the data blocks, this technique should be
approached with extreme caution. It is very easy to produce
erroneous data using this method as your roll-up process overwrites
your correctly calculated rates and percentages. Using a back calc is
safer and, in many cases, preferable.

Here are the conditions:

Select Two Pass Calculation in the Database/Setting dialog.


The calc script must include a CALC ALL or CALC DIM statement
incorporating all dimensions.
The calc script being used must be assigned to the Default calc status
using the Database/Set Default Calc dialog.

18-14 Hyperion
Fast Track for Designers Heads Up Issues
18
The formulas for members that require back calculating must be in
the outline (not a calc script) and marked as Two Pass Calc in the
Member Specification dialog. This does not work for back
calculating upper level rates on members that are also input
accounts because of the order of the required CALC DIM calculation
in the outline.
The Accounts and Time Dimensions must be properly configured as
described below.

Two-for-one Works Two-for-one Does Not Work

Accounts dense, no Time tag Accounts sparse, no Time tag

Accounts dense, Time dense Accounts dense, Time sparse, and


there are other dense dimensions

Accounts dense, Time sparse Accounts sparse, Time sparse


and no other dense
dimensions

Accounts sparse, Time dense

The Parallel Calculation


In the last few chapters, the discussion has centered on performing a
calculation where each task is performed sequentially or serially.
Beginning with Analytic Services 6.5, the software supports parallel
calculation. If you enable parallel calculation, Analytic Services analyzes
all the tasks in a calculation pass and breaks them down into subtasks. The
subtasks that can run independently of each other are scheduled to run
simultaneously. Parallel calculation is another method of optimizing your
database’s performance.

When should I use it?

The software evaluates whether using parallel calculation provides


improved performance before each calculation pass for which you have
enabled parallel calculation. Analytic Services analyzes your outline and
the calculation requested for each calculation pass.

If Analytic Services determines that parallel calculation will help optimize


a calculation pass, Analytic Services splits the calculation into smaller
tasks that are independent of one another. During the calculation,
Analytic Services performs these tasks at the same time.

Analytic Services uses serial calculation, even if parallel calculation is


enabled, if either of the following conditions apply:

Hyperion 18-15
Heads Up Issues Fast Track for Designers
18
Parallel calculation will not improve performance.
Because of complex interdependencies between formulas that
participate in the pass, parallel calculation cannot be performed.

Your outline structure and application design help Analytic Services


determine whether enabling parallel calculation can improve calculation
performance. Your system administrator can tell you whether your site
meets the following set of requirements necessary to get the full benefit of
parallel calculation:

Enabling Parallel Calculation

To use parallel calculation per calculation pass, enable it at the server


level, application level, or database level using either of the following
methods:

Add or edit the appropriate configuration settings to the essbase.cfg


file.
Add the appropriate calculation commands to a calculation script.

When you set parallel calculation at the server level, you enable it for
every application and database on the server. You can disable parallel
calculation for individual applications or databases by specifying it at the
server level in the configuration file and adding commands specific to an
application or database in a calculation script.

To check if parallel calculation is already enabled:

1) With a text editor, open the server configuration file essbase.cfg.

2) Search for the parameter CALCPARALLEL and check its specified value.
A value of 0 means parallel calculation is not enabled, and values
1-4 mean that parallel calculation is enabled. The number of
threads that can simultaneously perform tasks to complete a
calculation is specified by the value 1-4.

✍ To check if a calculation script sets parallel calculation, look for the


SET CALCPARALLEL command in the calc script. Review the calc
script carefully as the script may enable or disable parallel
calculation more than once.

18-16 Hyperion
Fast Track for Designers Heads Up Issues
18

To enable parallel calculation:

1) Check the current status if you plan to enable parallel calculation in


the configuration file.

2) Add CALCPARALLEL to the server configuration file or add SET


CALCPARALLEL to a calculation script.

3) If needed, enable Analytic Services to use more than the one sparse
dimension to identify tasks for parallel calculation.

4) Restart the server if you added or modified entries to the


configuration file.

5) Run the calculation.

✍ Set the value of CALCPARALLEL to be one less than the number of


processors available for calculation. This extra processor can then be
used by either the operating system or by the Analytic Services
process responsible for writing out dirty blocks from the cache.

Hyperion 18-17
Heads Up Issues Fast Track for Designers
18
Check Your Understanding

1) List the three methods to reinforce data block thinking.

2) What does the Aggregate Missing Values function do?

3) When do you want to set the Aggregate Missing Values function to


off?

4) When is it OK to load data to upper level members?

5) Why is the Accounts dimension typically calculated first?

6) In a Calc All statement, which type of dimensions (dense or sparse)


does Analytic Services calculate first?

18-18 Hyperion
Fast Track for Designers Heads Up Issues
18

Hyperion 18-19
Heads Up Issues Fast Track for Designers
18
Check Your Understanding Solutions

1) List the three methods to reinforce data block thinking.

Nearly all questions about how the Analytic Services calculator


works get back to data block thinking.

To reinforce such thinking use three methodologies when developing


your calc scripts:
• Block Visualization
• Pass Tracking
• Block Minimizing

2) What does the Aggregate Missing Values function do?

Aggregate Missing Values is a special calculation function in Analytic


Services that speeds up calculations by eliminating redundant
aggregations in the roll-up process. The default behavior of
Aggregate Missing Values is set at the database level.

With Aggregate Missing Values selected or set on in a calc script,


calculation performance is significantly enhanced during the roll-up
process:
• Within a data block, aggregations on cells that can be performed
in two ways are summed only once.
• Between data blocks (on sparse dimensions) totals that can be
calculated by two pathways aggregating from other data block
combinations are calculated only once.
• The calculator also has an algorithm that attempts to compute
via the shortest path (using the fewest blocks to compute the new
total).

3) When do you want to set the Aggregate Missing Values function to


off?

The normal setting is for Aggregate Missing Values to be selected at


the database level, then use SET AGGMISSG OFF in specific calc
scripts as conditions require.

You potentially want to set aggregate missing values off when you
need to protect data loaded at upper levels.

Underlying the performance enhancement of aggregate missing


values, Analytic Services rolls #Missing values of children over upper
level inputs or previously calculated values data during a CALC DIM
process.

To prevent such upper level step ons, set aggregate missing off in a
calc script, or load to leaf node members.

18-20 Hyperion
Fast Track for Designers Heads Up Issues
18
4) When is it preferable to load data to upper level members?

Loading to upper levels that are not leaf nodes across business view
dimension is OK when:
• You are loading values in the Accounts dimension which you
plan to allocate or push down to lower level across another
business view dimension.

This method works because you want the value allocated to a lower
level to roll up and step on the input. This is the test of whether the
allocation algorithm is working correctly.

If you need to load to an upper level across a business view


dimension and not have your input stepped on (you choose not to
allocate down a value) then follow the standard Analytic Services
practice described below:
• Set up a leaf node member or members called No X (where x is
the dimension name). For example, No Product, No Customer or
No Region.
• The requirement is that the member be a leaf node. That can be
accomplished with a Generation 2 member. The leaf node need
not be buried at a high generation level with the mass of lower
level input members.
• Load to the leaf node No X member which is now out of harm's
way during the roll-up process.

5) Why is the Accounts dimension typically calculated first?

The Accounts dimension typically includes rates and percentages as


well as units and dollars. Examples of rates include:
• Unit prices
• Costs
• Input percentage factors

Examples of percentages include:


• Gross margin%
• Profit%
• Similar analytics used especially in financial analysis

If your Accounts dimension includes multiplying and/or dividing


with rates or percentages (and most do), then Accounts must be
calculated first in order to get the numbers correct. It is a
straightforward order of calculation issue.

Hyperion 18-21
Heads Up Issues Fast Track for Designers
18
6) In a Calc All statement, which type of dimensions (dense or sparse)
does Analytic Services calculate first?

In a CALC ALL statement, Analytic Services naturally calculates the


dense dimensions first, then the sparse dimensions. In a Calc Dim
statement, Analytic Services also calculates the dense dimensions
first whatever the order you state the dimensions.

Calculating dense dimensions first and sparse dimensions second


delivers the shortest path in terms of the number of passes (read/
writes to and from disk) on data blocks.

18-22 Hyperion
19
Normalization Calculations

Chapter Objectives
Upon completion of this chapter, you will be able to:

• Define scenario partitioning


• Develop a normalization table
• Describe various allocation strategies
Normalization Calculations Fast Track for Designers
19
Setting the Stage
Until now, the calculating examples you have been exposed to have been
relatively simple: housekeeping, roll-up and back calc. In this section we
look at normalization calculations. The include push-downs, allocations
and intercompany eliminations. The bulk of calc script code is often
dedicated to normalization calculations, where the object is to prepare
specific members, usually in the Accounts dimension, for the main roll-up.

I’ve always
thought of myself
as normal?

Scenario Partitioning
Scenarios are a big driver of modeling and calculation requirements in the
Accounts dimension. In financial applications, data from scenario to
scenario typically differ with respect to the form of input and calculations.
For example:

For budget and forecast data, inputs are typically units and rates,
such as units shipped, selling prices and the dollars are forward
calculated.

19-2 Hyperion
Fast Track for Designers Normalization Calculations
19
For actual data, the calculations and analysis are typically the
reverse. Inputs are dollars from the general ledger system and units
from the order processing or other systems, and rates are back
calculated by the formula rate = dollars/units.

Scenarios (actual, budget,


forecast) tend to be a big driver
of modeling and calculation
requirements across the
Accounts dimension.

Data from scenario to scenario typically differ with respect to the level of
input and calculations. For example:

Budget data often has:


• Lots of product detail (standard cost by SKU)
• Less customer detail (only top ten customers budgeted)
• Lots of overhead detail (salaries by person)
Actual data often has
• Lots of product cost detail (standard cost by SKU)
• Lots of revenue detail by customer (ship to from invoices)
• Lousy overhead detail (all salaries are lumped)
Because of the form and level of inputs and calculations between
scenarios, it is often the case that different scenarios require different
data load procedures (different load rules) and different calc scripts.

Hyperion 19-3
Normalization Calculations Fast Track for Designers
19
The Normalization Table
The most important Analytic Services structures are often driven and
distinguished by scenario members. Such structures include:

Partitioned database architectures


User access and security
Complexity and detail of the Accounts dimension
Type and level of data inputs
Calc script functionality

To understand the impact of scenarios and to document input and


calculation requirements, you should develop a Normalization table.
Elements of a normalization table include:

Accounts are listed on the row axis. List especially accounts that are
input members.
Scenarios are major sections on the column axis. Typical scenarios to
analyze are actual, budget and forecast.

For each account/scenarios intersection, you need to define on a nested


column axis:

Data Type or Is the member created from a direct input, a formula


Sourcing calculation or a CALC DIM roll-up?

Input Level For input accounts, at what generation or level is data


being loaded at?

Push to Level For input accounts, to what generation or level need


input data be copied or allocated to?

Methodology For input accounts that must be pushed or allocated to


another level, what methodology is to be used?

19-4 Hyperion
Fast Track for Designers Normalization Calculations
19
For more complex hierarchies and upper level load and calculation
situations, the normalization table may require:

Version Control Where the table is revised in subsequent rounds as


new information is gained from data loading and
testing of calculation scripts.

Multiple Table Where tables are created for each different business
Formats view dimension. This may be necessary when data is
being input and calculated upon at different levels
across multiple dimensions.

Multiple Staff Where different scenarios are the domain of different


Involvements staff groups cost accounting is best qualified to
develop the normalization table for the Actuals
scenario and Financial Planning handles the Budget
scenario portion of the table.

For each input


Account, identify the
input level, push to
level and method for
each business view
dimension (for
example, by Product
and by Customer).

The main purpose of the Normalization Table is to provide


documentation for writing normalization formulas in the calc script.

Hyperion 19-5
Normalization Calculations Fast Track for Designers
19

19-6 Hyperion
Fast Track for Designers Normalization Calculations
19
Multi-Level Pushing and Allocations
Analytic Services makes allocations easy and economical because you can:

Define ad-hoc outline members to hold allocation values or interim


calculated values (for example, use a temporary variable with the
VAR command).
Manipulate unit, rate and dollar information in the outline and calc
scripts.
Access specialized sums that are typically needed for allocation rate
denominators (for example, set up alternate rollups for allocations
referenced through @ANCESTVAL).
Construct top-down calc relationships that do relative calculating
between members (principally using relationship operators such as
@ANCESTVAL and @PARENTVAL).

FIX (@LEVMBRS (Customer, 0), @LEVMBRS (Product, 0))


Units
(
AllocRatioUnits = Units / Units->”Family Total”->”Channel Total”;
AllocRatioNetSales = “Net Sales” / “Net Sales”->”Family Total”->”Channel
Total”;
An allocation calc “Material Variances” = “Material Variances”->”Family Total”->”Channel
script that makes
Total”
extensive use of
* AllocRatioUnits;
variables, relationship
operators and cross “Labor Variances” = “Labor Variances”->”Family Total”->”Channel Total”
dimensional operators. * AllocRatioUnits;
“Overhead Variances” = “Overhead Variances”->”Family Total”->”Channel
Total”
* AllocRatioUnits;
“Obsolete Charges” = “Obsolete Charges”->”Family Total”->”Channel
Total”
* AllocRatioNetSales;
“Inventory Adjustments” = “Inventory Adjustments”->”Family Total”-
>”Channel Total”
* AllocRatioNetSales;
)
ENDFIX

Simple Push Down

The simplest form of top-down calculation is a push down where an


upper level input, typically a rate, is copied down to the lower or lowest
level from a higher level member.

A push down focuses on per unit rates such a unit prices and unit costs.
The process is as follows:

1) One or many rates are loaded at upper levels.

Hyperion 19-7
Normalization Calculations Fast Track for Designers
19
2) Rates are copied down via a member formula to lower levels for unit,
rate or dollar calculations.

✍ A simple push down uses the cross-dimensional operator if the


values to be copied are loaded to one upper level member. Use
relationship operators (@ANCESTVAL or @PARENTAVAL) if rates
are loaded to multiple upper level members.

Examples of a simple push down include:

One commission rate is loaded to apply to all customers:

“Commission Rate” = “Commission Rate”->Customer;

One product price list applies to all customers, but differs by region:

Price = @MDANCESTVAL (2, Region, 2, Customer, 1, Price);

The product cost at the family level applies to all SKUs at the lowest
level:

“Std Cost” = @ANCESTVAL (Product, 3, “Std Cost”);

Single Dimension Ratio Allocation

Allocations are based on rates that are either fixed rate inputs or calculated
on-the-fly, based on underlying allocation criteria such as units produced
or dollar sales.

Variable allocations require a numerator and denominator to compute the


allocation rate. Fixed or variable allocations require a value to be allocated.
Allocated values are generally loaded at an upper level. Examples include:
Single dimension
allocation: Shipping
cost at the SKU level Allocate an expense to ship to level customers based on % of
equals the ratio of the revenue:
SKU's units to total
units for the product “Exp 1” = (Revenue / @ANCESTVAL (Customer, 2, Revenue)) *
group multiplied by @ANCESTVAL (Customer, 2, “Exp 1”);
total shipping costs for
the product group.
Allocate shipping cost to products based on unit sales:
Shipping = (Units / @ANCESTVAL (Product, 2, Units)) *
@ANCESTVAL (Product, 2, Shipping);

19-8 Hyperion
Fast Track for Designers Normalization Calculations
19
Exercise - Developing a Complex Calc Script
In this exercise, you create a complex calc script for the Bigcorp:Sales
database. Use this normalization table as a reference:

The calc script should have the following characteristics:

1) Turn intelligent calc off because of multiple passes on blocks. Set


aggregate missing on to enhance performance. No upper level inputs
to protect. Declare allocation variables.

2) Focus on the Budget scenario.

3) Push down units and rates loaded at upper levels to level zero.

4) Do a focused roll-up for allocation of Other Expenses: calculate Net


Sales, then sum Units and Net Sales across Product and Customer
dimensions for members used as the allocation base.

5) Allocate other expenses to zero level using a variable allocation


ratios. Focus calculations using Fix to zero level members for
Customers and Products.

6) Perform a dimension roll-up.

7) Recalculate any upper level rates or percentages that contain


erroneous data.

Hyperion 19-9
Normalization Calculations Fast Track for Designers
19
Check Your Understanding

1) What is the purpose of a normalization table?

2) How does Analytic Services make allocations easy?

3) What are the two basic types of allocations?

19-10 Hyperion
Fast Track for Designers Normalization Calculations
19

Hyperion 19-11
Normalization Calculations Fast Track for Designers
19
Check Your Understanding Solutions

1) What is the purpose of a normalization table?

The most important Analytic Services structures are often driven and
distinguished by scenario members. Such structures include:
• Partitioned database architectures
• User access and security
• Complexity and detail of the Accounts dimension
• Type and level of data inputs
• Calc script functionality

To understand the impact of scenarios and to document input and


calculation requirements, you should develop a Normalization table.
Elements of a normalization table include:
• Accounts are listed on the row axis. List especially accounts that
are input members.
• Scenarios are major sections on the column axis. Typical
scenarios to analyze are actual, budget and forecast.

2) How does Analytic Services make allocations easy?

Analytic Services makes allocations easy and economical because


you can:
• Define ad-hoc outline members to hold allocation values or
interim calculated values (for example, use a temporary variable
with the VAR command).
• Manipulate unit, rate and dollar information in the outline and
calc scripts.
• Access specialized sums that are typically needed for allocation
rate denominators (for example, set up alternate rollups for
allocations referenced through @ANCESTVAL).
• Construct top-down calc relationships that do relative
calculating between members (principally using relationship
operators such as @ANCESTVAL and @PARENTVAL).

3) What are the two basic types of allocations?

• Push down - the simplest form where an upper level input,


typically a rate, is copied down to the lower or lowest level from
a higher level member.
• Single Dimension Ratio - allocations based on rates that are
either fixed rate inputs or calculated on-the-fly, based on
underlying allocation criteria such as units produced or dollar
sales.

19-12 Hyperion
20
Using Dynamic Calc

Chapter Objectives
Upon completion of this chapter, you will be able to:

• Apply dynamic calc to outline members


• Explain how Dynamic Calc affects calculation order
• Explain when store Dynamic Calc values
20 Using Dynamic Calc Fast Track for Designers

Setting the Stage


Calculation performance and data block storage continue to be critical
issues for companies that are expanding the scope of Analytic Services
applications.The materials in this section are designed to introduce you to
Analytic Services' powerful Dynamic Calc features. The benefit of
Dynamic Calc is reduction of batch calculation times and reduced hard
drive storage requirements for very large databases.

Dynamic, huh?
Sounds powerful.

Dynamic Calcs
Analytic Services introduced Dynamic Calc features in the 5.0 version of
Analytic Services in response to the continuing demands for more choices
about how and under what circumstances to perform calculations and
store data.

Dynamic Calc options allow members in the outline to be calculated on-


the-fly when requested by users rather than during the batch calculation
process. There are two types of dynamic calc settings:

Dynamic Calc Values are calculated on the fly and discarded, but are
not retained in the database.

Dynamic Calc And Values are calculated on the fly, and retained in the
Store database after calculation. Any subsequent retrieval of
these cells reflect the dynamic calc values.

To set members as a dynamic calc storage type:

1) Select a member in the outline.

20-2 Hyperion
Fast Track for Designers Using Dynamic Calc
20
2) Select Edit / Properties.

3) Select the Member Info tab.

4) In the Data Storage section, select Dynamic Calc.

5) Click OK.

To view a member's Dynamic Calc storage setting:

• On the outline, select View / Attributes.


You can identify
Dynamic Calc
members in the outline
by selecting View/
Attributes.

✍ Analytic Services lets you tag dynamic calcs with special formatting,
so you can differentiate them from surrounding data on spreadsheet
reports. For example, you can specify that all Dynamic Calc figures
display in red.

Hyperion 20-3
20 Using Dynamic Calc Fast Track for Designers

To set style options for dynamic calcs on spreadsheet


reports:

1) In your spreadsheet program, select Essbase / Options.

2) Select the Style tab.

3) In the Members section, select Dynamic Calc.

✍ You may have to scroll down to locate Dynamic Calc.

4) Click Format.

5) Select desired options.

20-4 Hyperion
Fast Track for Designers Using Dynamic Calc
20
6) Click OK.
The Font window closes.

7) Click OK.

Calculation Order
The most important factor to understand in working with dynamic
calculation is the order of calculation of dynamic members.

Batch Versus Dynamic

The rules below apply to calculation for both Store and Non-Store types of
Dynamic Calc members. The normal order of calculation in a batch
process is as follows:

1) The dimension tagged Accounts if it is dense.

2) Dense dimensions in outline or CALC DIM statement order.

3) The dimension tagged Accounts if it is sparse.

4) Sparse dimensions in outline order or CALC DIM statement order.

5) Two-pass calculations on members in the Accounts tagged


dimension.

✍ If the Accounts dimension has no member formulas, Analytic


Services’ default calculation behavior is to do all dense dimensions
in the order they appear in the outline followed by all sparse
dimensions in the order they appear in the outline.

The principal implication of this calculation order for batch processes is


that:

Account members are calculated first only if Accounts is dense. If it


is sparse, you may run into percentage calculation problems.
Passes on data blocks are minimized because dense dimensions are
calculated before sparse dimensions.
Two-pass members are always calculated correctly because their
calculation occurs after all dimensions are rolled-up.

Hyperion 20-5
20 Using Dynamic Calc Fast Track for Designers

Upon retrieval, the calculation order for Dynamic Calc members, Store
and Non-Store, is as follows:

1) Dimension tagged Accounts (if sparse)

2) Dimension tagged Time (if sparse)

3) Sparse dimensions in outline order

4) The dimension tagged Accounts (if dense)

5) The dimension tagged Time (if dense)

6) Dense dimensions in outline order

7) Members tagged as Dynamic and tagged with Two-pass calculation

✍ If there are multiple members tagged as Dynamic and Two-


pass, then the order of calculation is the same as above.

The principal implication of this calculation order for dynamic calc and
other members is that because calculation order differs between batch and
dynamic calculation, you may get different results.

Any time you change the storage attributes, make sure to test if
calculations are still correct.
The reason that the calculation order is basically sparse then dense in
Dynamic Calcs is that blocks must be virtually created before they
are filled up.

Dynamic Calc in combination with the Two-Pass Calc tag gives you extra
control to make sure calculations work correctly.

Use the Two-Pass Calc typically when you want a member to be


calculated last. Typically this is a percentage calculation, because
otherwise it is summed up across other dimensions leading to
incorrect results.
Do not confuse the Two-Pass Calc tag in combination with Dynamic
with a stand alone Two-Pass Calc. Two-Pass Calc on its own is used
in batch calculations only.

20-6 Hyperion
Fast Track for Designers Using Dynamic Calc
20
Dynamic Calc (Non-Store) Members

The performance objective in using Dynamic Calc (Non-Store) is to


substantially reduce batch calculation time while paying a minimum or
acceptably low penalty on retrieval performance. The following are the
baseline characteristics of members with a Dynamic Calc (Non Store)
setting.

To be tagged Dynamic Calc, a member must be at an upper level in a


dimension's hierarchy or have an outline formula associated with it.
Zero level members without outline formulas cannot be tagged
Dynamic Calc.
The value for a Dynamic Calc member is calculated according to the
consolidation operators of its children or its own outline formula.
The value is calculated only when requested by a user from a
spreadsheet retrieval. After retrieval, the value is discarded (not
stored).
During a batch roll-up process (executing a CALC ALL command
from a calc script) Dynamic Calc members are not calculated.
Dynamic Calc members may not display within a calc script on the
left hand side of a member formula.
During a batch roll-up process, Dynamic Calc members are
calculated for deriving stored members values that are dependent.
As such, Dynamic Calc members may display on the right hand side
of a member formula equation.
Since Dynamic Calc members are not stored, members tagged as
such in a dense dimension do not occupy cells within the data block.
In other words, tagging members of a dense dimension as Dynamic
Calc reduces block size thereby potentially improving batch
calculation efficiency.
Since Dynamic Calc members are not stored, members tagged as
such in a sparse dimension do not cause the creation of a data block.
In other words, tagging members of a sparse dimension as Dynamic
Calc reduces both the potential and actual number of blocks stored.
Dynamic Calc members are skipped during data load. No error
message is generated during data load if there is an attempt to load
to a Dynamic Calc member.

Tagging members Dynamic


Calc (Non Store) in a
sparse dimension reduces
the number of data blocks
that need to be calculated in
the batch process and the
number of blocks that need
to be stored.

Hyperion 20-7
20 Using Dynamic Calc Fast Track for Designers

Dense Dimension Guidelines

Dynamic Calc (Non Store) members represent a viable alternative to


traditional batch calculation and storage in Analytic Services. The
following guidelines describe when to use and how to use this feature
when the focus is on members within dense dimensions.

The performance trade-offs when assigning Dynamic Calc to upper level


and formula members in dense dimensions tends to be favorable under
specific conditions for specific reasons.

When a user retrieves information to create a report, an entire data block


with the relevant information is brought into memory. Once in memory,
the calculation of dynamic members is relatively efficient because:

The values of stored members whose cells are used to calculate the
dynamic member are usually all within a single block that is brought
into memory for the dynamic calculation.
No additional read/write time on additional data blocks is necessary
for each incremental dynamic member that needs calculating
because all dynamic members are usually associated with the same
data block and dependent on the same stored members.

Assigning members Dynamic Calc (Non-Store) within a dense dimension


reduces data block size. Smaller block size potentially improves
performance because:

Within a range, smaller blocks move into and out of memory faster
than bigger blocks.
A smaller initial block size may allow defining an additional
dimension to be dense that would otherwise be sparse, thus
potentially reducing the overall number of blocks that need to be
moved in and out of memory for a given batch calculation.

20-8 Hyperion
Fast Track for Designers Using Dynamic Calc
20
Assigning Two Pass members within dense dimensions as Dynamic Calc
may potentially reduce batch calculation time significantly by avoiding an
additional pass on data blocks if otherwise the Two For One criteria
cannot be met. Calculation on upper level rates that are also input
members cannot be accomplished in the outline, and therefore cannot be
assigned Dynamic Calc, Two Pass status.

✍ Do not assign Dynamic Calc status to any dense member whose


children involve multiplying or dividing using a rate. Results are
incorrect because of the calculation order of sparse first, dense
second of dynamic calcs.
Assigning dense
members to Dynamic
Calc (Non Store) reduces
block size. Smaller blocks
move faster from and to
disk.

Sparse Dimension Design Features

The following guidelines describe when and how to use Dynamic Calcs
(Non-Store) when the focus is on members within sparse dimensions.
Basic batch calculation performance is improved by assigning sparse
members to Dynamic Calc for the following reasons:

Batch roll-up calculations create all combinations of sparse member


data blocks where data exists regardless of whether users ever
retrieve on such blocks. The ratio of upper level to lower level blocks
in most databases is very high (the vast majority of blocks calculated
and stored are upper level blocks).
Assigning upper level members in sparse dimensions as Dynamic
Calc eliminates the creation of potentially many data blocks, thus
reducing the initial roll-up calculation time and any subsequent
passes on data blocks.

Hyperion 20-9
20 Using Dynamic Calc Fast Track for Designers

While the batch calculation time is reduced, there is a penalty for


calculating the sparse Dynamic Calc members on-the-fly. Unlike such
calculations on dense members, Dynamic Calculations on sparse members
require bringing multiple blocks into memory. Therefore, the penalty or
wait time for a dynamic calculation upon retrieval on a sparse member
may be much greater than for a dense member. Test retrieval
performance!

✍ Tagging sparse members as Dynamic leads to more calc order issues.


Because dynamic calculation order is basically sparse then dense,
percentages on sparse dimensions can result in difficulties getting
the right values. Although, the Two-Pass calculation tag can help
resolve many of these issues, the complexity of dealing with these
issues is much greater when you include dynamic calcs on sparse
dimensions.

The dynamic calculation penalty on retrieval across sparse dimensions is


impacted by three principals:

Fan Out
Stack Up
Sandwich

Fan Out

Calculation time on dynamic calc members is affected by fan out of the


children of the member. The fewer the children, the fewer the number of
blocks that must to be brought into memory to perform the dynamic calc.
Setting members with a large fan out as dynamic may result in
unacceptable retrieval times.
FAN OUT - retrieve
performance may be
substantially reduced on
dynamic calc members in
sparse dimensions that
have a large fan out of
children members.

20-10 Hyperion
Fast Track for Designers Using Dynamic Calc
20
Stackup within Dimensions

A dynamic member with many descendants that are also dynamic may
result in a stackup of sequential dynamic calculations that could
significantly increase the retrieve/calculation time.
STACKUP - too
many dynamic calc
members stacked on
top of one another
within a hierarchical
path may kill retrieve
performance.

✍ The stackup retrieve/calc penalty is potentially minimized by set


and benchmarking performance on members from the top of a
dimension, starting at generation 1 and then down. This is a safe
methodology for understanding and minimizing retrieval penalties
and avoiding data integrity issues potentially caused by sandwich
situations.

Sandwich

Avoid sandwich situations where members of different storage types sit


between each other in the hierarchy. Stored members sandwiched
between dynamic members may result in incorrect calculations in certain
circumstances. Dynamic members sandwiched between stored members
may also cause data integrity issues. Sandwich situations where stored
members are dependent on dynamic calc members can seriously impact
batch calculation performance.

Avoid sandwich situations.

Hyperion 20-11
20 Using Dynamic Calc Fast Track for Designers

Dynamic Calc And Store Members

Dynamic Calc And Store is the second of two types of dynamic calc
storage settings. The baseline characteristics of members with a Dynamic
Calc And Store setting are as follows:

The value for the member is calculated according to the


consolidation operator or member formula in the outline for the
member. The value is calculated only when requested by a user from
a spreadsheet retrieval. After retrieval, the value is stored within the
data block. During a batch calculation process (such as executing a
CALC ALL command from a calc script). Dynamic Calc And Store
members are bypassed.
Dynamic Calc And Store members in a dense dimension occupy
cells within the data block whether or not the member has been
retrieved. In other words, tagging members of a dense dimension as
Dynamic Calc And Store does not reduce block size and only
marginally reduces batch calculation time. For these reasons,
tagging upper level members in dense dimensions as Dynamic Calc
And Store is not recommended.
Since Dynamic Calc And Store members are stored, members tagged
as such in a sparse dimension cause the creation of a data block
when a retrieve is requested. In other words, tagging members of a
sparse dimension as Dynamic Calc And Store causes the database
size to increase over time as users retrieve on members. The
calculation penalty on retrieval time, however, is paid only upon the
I need to be more first retrieval. Subsequent retrievals are as fast as a regular
dynamic! calculated and stored member.
During a batch calculation, if the calculator discovers that the
children of a Dynamic Calc And Store member are recalculated, it
marks the data block of the parent Dynamic Calc And Store member
as requiring calculation, which occurs upon the next retrieval
request. At that time, the block is marked calculated and the results
are stored.
Two commands may be used in batch calc scripts to cleanse
previously calculated Dynamic Calc And Store members:
• CLEARBLOCK DYNAMIC - Removes data blocks that are
Dynamic Calc And Stored.
• CLEARDATA - Marks Dynamic Calc And Store members as
non-calculated thus forcing recalculation upon the next retrieve.
Dynamic Calc And Store members are skipped during data load
(you cannot load data to a Dynamic Calc And Store member). No
error message generates during data load.

✍ Intermediary blocks that may be required to calculate a


Dynamic Calc And Store members (even though tagged
themselves as Dynamic Calc And Store) are calculated but not
stored.

20-12 Hyperion
Fast Track for Designers Using Dynamic Calc
20
Design Considerations

Dynamic Calc And Store members provide similar benefits to Dynamic


Calc (Non-Store) members in potentially reducing batch calculation time
related to setting sparse members to this storage type.

In most cases, consider using Dynamic Calc (Non Store) before


Dynamic Calc And Store.
Consider Dynamic Calc And Store for members in sparse
dimensions with complex formulas or calculations. Formulas that
include index functions (@ANCESTVAL, @PARENTVAL), range
operators (@AVGRANGE), and certain financial functions (@IRR)
are good candidates, since these operations on sparse dimensions
are fundamentally inefficient. Shifting the calculation load away
from the batch operation, where all members combinations would
be calculated, to retrieval based calculation would probably reduce
the overall calculation load.
Do not use Dynamic Calc And Store for upper level members of
dense dimensions. There are no benefits related to reducing block
size because cells for the members are reserved within the block,
whether or not they are calculated.

Hyperion 20-13
20 Using Dynamic Calc Fast Track for Designers

Check Your Understanding

1) What does Dynamic Calc do?

2) What is the order of calculation for dynamic calc members?

3) Which dynamic calc setting do you normally use for a dense


dimension? Why?

4) Which dynamic calc setting do you normally use for a sparse


dimension? Why?

20-14 Hyperion
Fast Track for Designers Using Dynamic Calc
20

Hyperion 20-15
20 Using Dynamic Calc Fast Track for Designers

Check Your Understanding Solutions

1) What does Dynamic Calc do?

Dynamic Calc options allow members in the outline to be calculated


on-the-fly when requested by users rather than during the batch
calculation process. There are two types of dynamic calc settings:
• Dynamic Calc - Values are calculated on the fly and discarded,
but are not retained in the database.
• Dynamic Calc And Store - Values are calculated on the fly, and
retained in the database after calculation. Any subsequent
retrieval of these cells, reflect the dynamic calc values.

2) What is the order of calculation for dynamic calc members?

Upon retrieval, the calculation order for Dynamic Calc members,


Store and Non-Store, is as follows:
• The dimension tagged Accounts if sparse.
• The dimension tagged Time if sparse.
• Sparse dimensions in outline order.
• The dimension tagged Accounts if dense.
• The dimension tagged Time if dense.
• Dense dimensions in outline order.
• Members tagged as Dynamic and tagged with Two-pass
calculation.

If there are multiple members tagged as Dynamic and Two-pass, then


the order of calculation is the same as above.

3) Which dynamic calc setting do you normally use for a dense


dimension? Why?

Dynamic Calc (Non Store) members represent a viable alternative to


traditional batch calculation and storage in Analytic Services. The
following are guidelines for when to use and how to use this feature
when the focus is on members within dense dimensions.

Assigning members Dynamic Calc (Non-Store) within a dense


dimension reduces data block size. Smaller block size potentially
improves performance because:
• Within a range, smaller blocks move into and out of memory
faster than bigger blocks.
• A smaller initial block size may allow defining an additional
dimension to be dense that would otherwise be sparse, thus
potentially reducing the overall number of blocks that need to be
moved in and out of memory for a given batch calculation.

20-16 Hyperion
Fast Track for Designers Using Dynamic Calc
20
4) Which dynamic calc setting do you normally use for a sparse
dimension? Why?

Dynamic Calc And Store members provide similar benefits to


Dynamic Calc (Non-Store) members in potentially reducing batch
calculation time related to setting sparse members to this storage
type.

In most cases, consider using dynamic calc (non store) before


dynamic calc and store.

Consider Dynamic Calc And Store for members in sparse dimensions


with complex formulas or calculations. Formulas that include index
functions (@ANCESTVAL, @PARENTVAL), range operators
(@AVGRANGE), and certain financial functions (@IRR) are good
candidates, since these operations on sparse dimensions are
fundamentally inefficient. Shifting the calculation load away from
the batch operation, where all members combinations would be
calculated, to retrieval based calculation would probably reduce the
overall calculation load.

Hyperion 20-17
20 Using Dynamic Calc Fast Track for Designers

20-18 Hyperion
21
Using Intelligent Calc

Chapter Objectives
Upon completion of this chapter, you will be able to:

• Describe how Analytic Services marks data blocks


• Enable Intelligent Calc
• Describe the guidelines for using Intelligent Calc
21 Using Intelligent Calc Fast Track for Designers

Using Intelligent Calc


The main focus of calc script optimization is trying to eliminate extraneous
passes through the database index (the blocks). There is one additional
tool you can use to expedite calculation process and minimize the drag on
system resources - Intelligent Calc. Intelligent Calc is a function of the
Analytic Services calculator that only grabs and calculates those blocks
that need to be calculated. In other words, it you add data to a single
block, then only that block any blocks containing aggregate values that are
dependent) are calculated.

Now, you have a choice. You can use FIX and IF to focus Analytic
Services' natural inclination to calculate all data blocks regardless of
whether they need calculating. Or you can use Intelligent Calc thus
significantly reducing calculation times for interactive applications.
However, it is imperative that you understand the implications of
Intelligent calc and test in a wide variety of situations.

Is there going
to be a test?

Data Block Marking


Intelligent calc works based on data block marking. As calculations are
performed, blocks are marked clean or dirty. When active, Intelligent Calc
looks for only dirty data blocks for calculation.Analytic Services has two
schemes, incorporated into the index file, for marking data blocks.

1) What kind of operation created the block:

• Input - Analytic Services marks which blocks were created from


a data load.
• Calculated - Analytic Services marks which blocks were created
from a calculation such as a CALC DIM on a sparse dimension.

21-2 Hyperion
Fast Track for Designers Using Intelligent Calc
21
2) Whether or not a block needs calculating by Analytic Services' own
criteria:

• Clean - Analytic Services marks which blocks are clean and


presumably do not need calculation. If Intelligent Calc is turned
on, clean blocks are not calculated on a subsequent calculation.
• Dirty - Analytic Services marks which blocks are dirty and
presumably do need calculation. If Intelligent Calc is on, dirty
blocks do get calculated on subsequent calculation. When
calculated, dirty blocks are marked clean.

Setting Intelligent Calc

There are many cases when you do not want intelligent calc operating.
Knowing how to toggle the feature on and off, therefore, is important.

By default, intelligent calculation is turned on for all databases at the


Server level:

To set Intelligent Calc on or off at the Server level, set Updatecalc


True or False in essbase.cfg file.
To set Intelligent Calc on or off for overriding the Server setting, set
SET UPDATECALC ON/OFF within a calc script.

You need to distinguish between whether intelligent calc is set on or off


for a given calculation situation, versus whether intelligent calc is
applying intelligence for a given calculation situation.

There are circumstances where Intelligent Calc is turned on, but because
certain conditions are not met, the intelligence of how the algorithms
operate is not being applied.

How Blocks are Marked Clean

The basis for understanding intelligent calc is knowing under what


conditions blocks are marked clean and dirty. There are three definable
circumstances under which Intelligent Calc operates, thereby marking
blocks clean:

Calc Dim on all dimensions


Set Clear Update Status After
Set Clear Update Status Only

Hyperion 21-3
21 Using Intelligent Calc Fast Track for Designers

Calc Dim

When you execute a calc script which contains a CALC ALL statement or
CALC DIM statement whose arguments include all dimensions:

Any existing input data blocks are calculated and marked clean
All newly created data blocks resulting from the Calc Dim roll-up
process are calculated and marked clean
All previously existing blocks marked dirty are now calculated and
marked clean

The following text is an example of a Calc Dim on all dimensions:

CALC ALL;

or

CALC DIM (Accounts, Year, Scenario, Products, Customers);

Even though Intelligent Calc may be turned on, if you execute a calc script
with a CALC DIM statement that does not include all dimensions:

All data blocks, not just the dirty ones, are calculated.
All data blocks are left in their previously marked clean or dirty
status.

The following examples represent calc scripts where intelligence is not


applied:

CALC DIM (Accounts, Year, Scenario, Products);

The Scenario dimension is not included.

Or,

CALC DIM (Accounts, Year);


AGG (Scenario, Products, Customers);

Set Clear Update Status After

Set Clear Update Status After is a calc script command that engages
Intelligent Calc for any calc script, regardless of construction. You
typically use this command where you cannot meet the conditions for a
Calc Dim on all dimensions.

If you execute any calc script which includes Set Clear Update Status
After, data blocks marked clean are not calculated upon. All blocks
previously marked dirty are calculated and then marked clean.

21-4 Hyperion
Fast Track for Designers Using Intelligent Calc
21
The following examples demonstrate Set Clear Update Status After:

Set ClearUpdateStatus After


Fix (@IDescendants Qtr1)
Calc Dim (Accounts)
Endfix

Or

SetClearUpdateStatus After
Gross Margin% = Gross Margin / Sales;
Average Unit Price = Revenues / Units;

Set Clear Update Status Only

Set Clear Update Status Only is a calc script command that does not
calculate. When included in a calc script, this command only marks dirty
blocks clean. That's all.

You typically use this command in a calc script construction immediately


following a script segment (or a completely different script) where
intelligent calc has been turned off.

The first portion of the script assures that all data blocks are correctly
calculated (in a back calc situation). Dirty blocks on this pass, however, are
not marked clean; they are only calculated.

The second portion of the script after the Set Clear Update Status Only
command marks any blocks previously dirty to clean. You are now
assured that all blocks are clean.

The following example represents Set Clear Update Status Only:

SET UPDATECALC OFF;


“Gross Margin%” = “Gross Margin” / “Net Sales”;
“List Price” = “Gross Sales” / Units;
SET CLEARUPDATESTATUS ONLY;
“Gross Margin%” = “Gross Margin” / “Net Sales”;
“List Price” = “Gross Sales” / Units;
Set Clear Update Status Only is index driven. Data blocks affected by this
command are not touched (they are not moved into memory). Only the
index is changed. Under most circumstances, therefore, elements of a calc
script following Set Clear Update Status Only execute very quickly.

Hyperion 21-5
21 Using Intelligent Calc Fast Track for Designers

How Blocks are Marked Dirty

There are four definable circumstances under which data blocks are
marked dirty, thereby making them eligible for calculation on the next
round using intelligent calc.

Input data
Modified data
Ancestors of input or modified data
Restructure of the database

Input Data

Any block created from a data load or lock and send is automatically
marked dirty when created. By definition, input blocks do not have their
cells filled out.

Modified Data

Any block for whom a data cell has been modified is marked dirty and
therefore eligible for calculation using intelligent calc on the next
calculation round.

The typical example here is when a line manager makes a change to a


block. If units are updated, then the block should be marked dirty because
revenues, costs and margin are now incorrect and also need calculating.

Ancestors of Input or Modified Data

This is where the efficiency in calculation is obtained using intelligent calc.


The ancestors of a dirty block (a block that has been modified) need to be
calculated because they are dependent on values of the descendant that
was modified. Therefore, the rule that all ancestors of input and modified
blocks are marked dirty makes sense.
If Lightbolt 365 A is dirty, then its
ancestors (Lightbolt, Performance
and Family Total (are also dirty.
Other segments of the outline are
clean and do not need to be
recalculated.

21-6 Hyperion
Fast Track for Designers Using Intelligent Calc
21
Restructuring the Database

Blocks changes as a result of outline changes potentially become dirty.


Here are the rules:

Outline moves or member adds/deletes on dense dimensions cause


all blocks to be marked dirty.
Outline moves or member adds/deletes on sparse dimensions cause
only the blocks affected and their ancestors to be marked dirty.

Marked Versus Actual Block Status

How data blocks are marked may not be their actual status. Now that you
understand the block marking scheme, you need to understand potential
problems.

There is a matrix of combinations between Actual versus Marked status of


data blocks. Think this matrix through.

Marked Status Actual Status Concern

Clean Clean No Problem

Clean Dirty False Positive: Data Integrity Issue

Dirty Dirty No Problem

Dirty Clean False Negative: Inefficient Calcs

Beware of False Positives

There is a data integrity concern, of course, in the false positive condition.


The following are several examples where false positive conditions can
arise.

Analytic Services marks blocks clean and dirty in their entirety (not
individual cells within a block). A block where a calculation is
performed on a subset of cells could cause a false positive condition.
Just a few cells are calculated, the block is marked clean, but
dependent cells impacted by the dirty condition are not updated.
Intelligent calc is not aware of back calc situations where blocks need
to be calculated twice to correct upper level rates and percentages. A
false positive results because Analytic Services ignores back
calculations that follow the main Calc Dim roll-up. It does not
execute the back calcs because all blocks are marked clean during the
main roll-up.

Hyperion 21-7
21 Using Intelligent Calc Fast Track for Designers

Ancestors of dirty blocks are not marked dirty until the original
descendant dirty block that caused the ancestor block to be dirty is
calculated. A false positive could result if the original dirty block
were calculated within a FIX statement that did not include the dirty
ancestor block. In this case, the descendant block is marked clean
after calculation, but the ancestor block remains marked clean even
though it contains an incorrect value. The fact that the data block
should once have been dirty is lost in the system.
Do not use the Clear Update Status Only command on a stand alone
basis without following commands that have done actual cleansing
calculations. A false positive could occur if Set Clear Update Status
Only touches blocks that are otherwise dirty and have not been just
correctly calculated.

Guidelines for Using Intelligent Calc

Because of the potential false positive issues, you clearly need to be


prudent when using intelligent calc and when you have a calculation
process that is tightly controlled.

The intelligent calc function is most productively used in interactive or


iterative situations where small incremental changes are made to a
database and it is not necessary to redo the entire roll-up calculation. For
example:

During the month end close, allocation rates and/or adjusting


entries are changed several times. Use intelligent calc to the results
of calculations without having to re-roll the entire database.
For budget or forecasting applications, intelligent calc might be used
prudently where managers from different cost centers or product
groups are adjusting unit and rate inputs. Each one needs a short
calc time which intelligent calc delivers to analyze the impact of their
decisions.

Intelligent calc provides no benefit where upper level data blocks are
being created for the first time from input blocks (during an initial main
roll-up).

21-8 Hyperion
Fast Track for Designers Using Intelligent Calc
21
Check Your Understanding

1) What is Intelligent Calc?

2) Describe the two schemes Analytic Services uses for marking data
blocks.

3) What are the three conditions for marking blocks clean?

4) What are the four conditions for marking blocks dirty?

Hyperion 21-9
21 Using Intelligent Calc Fast Track for Designers

Check Your Understanding Solutions

1) What is Intelligent Calc?

Intelligent Calc is a database level setting that tell Analytic Services


not to calculate blocks that are marked as clean when executing a calc
script against the database. This setting lets Analytic Services
minimize calculation time by calculating only those blocks that
require calculating.

2) Describe the two schemes Analytic Services uses for marking data
blocks.

What kind of operation created the block:


• Input - Analytic Services marks which blocks were created from
a data load.
• Calculated - Analytic Services marks which blocks were created
from a calculation such as a CALC DIM on a sparse dimension.
Whether or not a block needs calculating by Analytic Services'
own criteria:
• Clean - Analytic Services marks which blocks are clean and
presumably do not need calculation. If Intelligent Calc is turned
on, clean blocks are not calculated on a subsequent calculation.
• Dirty - Analytic Services marks which blocks are dirty and
presumably do need calculation. If Intelligent Calc is on, dirty
blocks do get calculated on subsequent calculation. When
calculated, dirty blocks are marked clean.

3) What are the three conditions for marking blocks clean?

The basis for understanding intelligent calc is knowing under what


conditions blocks are marked clean and dirty. There are three
definable circumstances under which Intelligent Calc operates,
thereby marking blocks clean:
• Calc Dim on all dimensions
• Set Clear Update Status After
• Set Clear Update Status Only

4) What are the four conditions for marking blocks dirty?

There are four definable circumstances under which data blocks are
marked dirty, thereby making them eligible for calculation on the
next round using intelligent calc:
• Input data
• Modified data
• Ancestors of input or modified data
• Restructure of the database

21-10 Hyperion
A
Appendix - Exercise Solutions

This appendix contains step by step solutions for all Express exercises in
the text. The solutions are listed by chapter and exercise title.
Appendix - Exercise Solutions Fast Track for Designers
A
Chapter 3

Exercise: Building a Scenario Dimension


In this exercise, you build a scenario dimension and setup a variance
computation for the Sales database. This exercise assumes that you have
the Sales outline open.

1) Select Year Tot.

2) Click Add Sibling .

3) Name it Scenario.

4) Type [Enter].

5) Click Yes.

6) Select Scenario.

7) Click Add Child .

8) Add theses children to Scenario:


Current Year, Prior Year, Forecast, Budget and Scenario Variances

9) Select Scenario Variances.

10) Click Add Child .

11) Add these children to Scenario Variances:


Act Vs Bud, Act Vs Fcst and Bud Vs Fcst.

12) Select Act Vs Bud.

13) Click Add Child .

14) Add these children to Act Vs Bud: Current Year and Budget.

15) Open Member Properties dialog for each and set storage type to
Shared Member.

A-2 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
16) Select Budget.

17) Select Edit / Properties.

18) Change Consolidation Operator of Budget to a minus (-).

Creating a formula for Act Vs Fcst:

1) Select Act Vs Fcst.

2) Select Edit / Formula.

3) In the Dimensions section, select Scenario.


Scenario displays under Members.

4) In the Members section, expand Scenario.


The children of Scenario display.

5) Select Current Year.

6) Click Minus .

7) In the Members section, select Forecast.

8) Click Semicolon .

Hyperion A-3
Appendix - Exercise Solutions Fast Track for Designers
A
9) Select File / Save.

Assigning non-consolidated operators:

1) Select Current Year.

2) Select Edit / Properties.


The Member properties window displays.

3) Change the consolidation operator from plus (+) to ignore (~).

4) Click OK.

5) Change the consolidation operator to ignore (~) for: Prior Year, Budget,
Forecast, Scenario Variances, Act Vs Bud, Act Vs Fcst and Bud Vs Fcst.

Setting Label Only data storage:

1) Select Scenario.

2) Select Edit / Properties.


The Member Properties window displays.

3) In the Data Storage section, select Label Only.

✍ Label Only is used for outline members that are a label and
whose value has no meaning. When marked Label Only, the
member is not included in the data block structure of the
database.

A-4 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Exercise - Building an Accounts Dimension
In this exercise, you start the Accounts dimension for the Sales database.
This exercise assumes that you have the Sales outline open.

1) In the Sales outline, add a sibling to Scenarios named Accounts.

2) Add a child to Accounts named Gross Sales.

3) Add children to Gross Sales named Units and List Price.

4) Select List Price.

5) Select Edit / Properties.


The Member Properties window displays.

6) Change the consolidation operator of List Price to multiply (*).

7) Open Corpacct.xls (located in the B100_5\Outline directory).

8) Select the Gross Margin analysis Worksheet.

9) Compare the formulas and entries for computing Gross Sales in Excel
to the Accounts model.

Hyperion A-5
Appendix - Exercise Solutions Fast Track for Designers
A
Create members through Net Sales using unary operators:

1) Create Discounts as a sibling of Gross Sales.

2) Add children to Discounts named Gross Sales and Discount %.

3) Under Discounts, select Gross Sales.

4) Select Edit / Properties.


The Member Properties window displays.

5) Change Data Storage to Shared Member.

6) Click OK.

7) Select Discount %.

8) Select Edit / Properties.


The Member Properties window displays.

9) Change the Consolidation operator of Discount % to multiplication (*).

10) Create Net Sales as a child of Accounts.

✍ Since Gross Sales and Discounts calculate Net Sales, they are
children of Net Sales.

11) Move Gross Sales and Discounts from siblings to children of Net Sales.

12) Change the Consolidation operator of Discounts to subtraction (-).

Creating additional members through Gross Margin %:

1) Analyze parent/child relationships in the Gross Margin Analysis


worksheet (.xls file).

2) On Corpacct.xls, select cells A7:A20.

3) Select Edit / Copy.

4) In the Sales outline, select Accounts.

5) Select Edit / Paste Child.


The members from cells A7:A20 display under Accounts.

A-6 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
6) Move Direct Labor, Material and Overhead to children of Cost Of Sales.

7) Move Material Variances, Labor Variances, Overhead Variances, Obsolete


Charges and Inventory Adjustments to children of Other CGS.

8) Move Net Sales, Cost of Sales and Other CGS to children of Gross Margin.

9) On Corpacct.xls, select Units (cell D3).

10) In the Sales outline, select Direct Labor.

11) Select Edit / Paste Child.


Units displays under Direct Labor.

12) Select Material.

13) Select Edit / Paste Child.


Units displays under Material.

14) On Corpacct.xls, select Labor/Unit (cell D7).

15) In the Sales outline, select Direct Labor.

16) Select Edit / Paste Child.


Labor/Unit displays under Direct Labor.

17) On Corpacct.xls, select Matl/Unit (cell D8).

18) In the Sales outline, select Material.

19) Select Edit / Paste Child.


Matl/Unit displays under Direct Labor.

20) On Corpacct.xls, select Overhead Rate (cell D9).

21) In the Sales outline, select Overhead.

22) Select Edit / Paste Child.


Overhead Rate displays under Overhead.

23) Add a sibling to Overhead Rate named Direct Labor.

Hyperion A-7
Appendix - Exercise Solutions Fast Track for Designers
A
24) Rearrange the Accounts dimension members in this order:

Net Sales

Cost of Sales

Other CGS

Gross Margin

Gross Margin%

Your outline should now look similar to this:

25) Examine all of the members in the Accounts dimension.

✍ Try to find any data storage problems.

26) Compare the relationships in the Corpacct.xls file to the Accounts


dimension in the Sales outline.

✍ Try to determine the correct consolidation operators.

A-8 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
27) Use this table to change the properties for the members in the
Accounts dimension.

Parent Member Property Settings


Accounts

Gross Margin Set the Consolidation operator to


ignore (~).
Gross Margin Set the Consolidation operator to
% ignore (~).
Gross
Margin

Cost Of Sales Set the Consolidation operator to


subtraction (-).
Other CGS Set the Consolidation operator to
subtraction (-).
Direct Labor
Units Set Data Storage to Shared Member.
Labor/Unit Set Consolidation operator to
multiplication (*).
Material
Units Set Data Storage to Shared Member.
Matl/Unit Set Consolidation operator to
multiplication (*).
Overhead
Direct Labor Set Data Storage to Shared Member.
Overhead Rate Set Consolidation operator to
multiplication (*).

28) Select Outline / Verify.

29) Correct any errors that may occur.

Hyperion A-9
Appendix - Exercise Solutions Fast Track for Designers
A
30) Select File / Save
Your Accounts dimension should look similar to this.

A-10 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Chapter 4

Exercise - Creating a New Load Rule


In this exercise you create a new load rule and associate the rule with the
Sales outline. You open the source file to be loaded and make the
appropriate settings to match the characteristics of the file. You then load
the Family Total rollup to the Products dimension in the Sales outline.

1) From the Application Manager, select the Bigcorp application and the
Sales database.

2) Select Data Load Rules and click New.


The Data Prep Editor opens with a new rules file.

Associating the load rule with the Sales outline:

1) Select Options / Associate Outline.

2) Make sure that the outline is set to your application and the Sales
database, then click OK.

Opening the source file to be loaded:

1) Select File / Open Data File.

2) Select Client as the Location and Excel Sheets in the List Objects of
Type list.

Hyperion A-11
Appendix - Exercise Solutions Fast Track for Designers
A
3) Open the file Loadrule\FamGen.xls. Use File System if necessary.

✍ To see the file, you need to set the file type to .XLS or All files.

Setting the dimension building mode:

1) Select View / Dimension Building Fields.

✍ Load Rules can dynamically build dimensions or load data


into a database. The different modes enable the user to define
the settings for each of these activities.

Selecting the data file delimiter type:

1) Select Options / Data File Properties.

2) Select the File Delimiter tab.

3) Confirm that the delimiter setting is the default Tab.

4) Select OK.

A-12 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Creating the Product dimension:

1) Select Options / Dimension Build Settings.

2) Select the Dimension Definition tab.

3) Select Rules File.

4) Next to Name enter Product.

5) Click Add.
Product displays in the Rules File list.

6) Click Properties.

7) Select the Dimension Properties tab.

Hyperion A-13
Appendix - Exercise Solutions Fast Track for Designers
A
8) In the Data Storage section select Label Only.

9) In the Configuration section select Sparse.

10) Click OK.


The Dimension Build Settings window displays.

11) Click OK.

Selecting the load building method:

1) Select Options / Dimension Build Settings.


Dimension Build Settings dialog box displays.

2) Select the Dimension Build Settings tab.

3) From the Dimension list in the upper left corner, select the Product.

4) Select Use Generation References.

✍ Dimensions can be populated by files structured using


Generation References, Level References or Parent/Child
References.

5) Click OK.
You return to the Data Prep Editor.

Associating field headers with dimensions and generations:

1) Select any member or the column header for Field 1, then select Field
/ Properties.
Field Number: 1 displays above the Field Definition area.

2) Select the Dimension Building Properties tab.

3) Select Product.
Product displays in the Dimension area.

4) In the Field type section, select Generation, for the generation Number,
enter 2.

5) Click Next.
Field Number: 2 displays above the Field Definition area.

6) For Field 2, repeat this process, but enter the Field Type as Property
and the Number 2. Leave the Dimension set to Product.
This sets the property for the preceding generation 2 member.

7) Click Next.
Field 3 displays.

A-14 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
8) Continue the process for the subsequent fields using the information
in the chart below:

Field # Field Type Generation Dimension

3 Generation 3 Product

4 Generation 4 Product

5 Generation 5 Product

6 Alias 5 Product

9) Click OK.
You return to the Data Prep Editor.

Ignoring the first header row:

1) Select Options / Data File Properties.


Data File Properties Dialog displays.

2) Select the Header Records tab.

3) Enter 1 for the Number Of Lines To Skip in the Header Lines Group.

4) Click OK.
You return to the Data Prep Editor.

Saving the load rule:

1) Select Options / Validate to validate the load rule.

2) Correct any errors noted.

3) When you receive the message, “The rules file is correct for
dimension building,” click OK.

4) Select File / Save.

Hyperion A-15
Appendix - Exercise Solutions Fast Track for Designers
A
5) Save file as Fam_Gen with the Location on the Server to the Sales
database.

✍ The file type .RUL is automatically set up by Analytic Services.

6) Select File / Close.


The Data Prep Editor closes.

Loading the Family Total rollup to the Products dimension:

1) From the Application Manager, Select Database Outlines .

2) Select the Bigcorp application and the Sales database and then click
Open.
The Sales outline displays.

3) Select File / Update Outline.

4) Find the source file Famgen.xls (located in the B100_5\Loadrule


directory).

5) Find the load rule Fam_Gen (located in the B100_5\Loadrule


directory).

6) Note the location of the Dimbuild.err file directory. Review this file if
errors occur during the dimension build loading.

7) Select OK.
If the load fails open the error file and make corrections, then try
again.

A-16 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
8) If the load is successful, select Product and select Outline / Expand To
Descendants to view the loaded outline.

The outline should appear similar to the one shown above.

Hyperion A-17
Appendix - Exercise Solutions Fast Track for Designers
A
Chapter 5

Exercise - Using the Level Build Method


In this exercise, you review the level rule structure and redo the Family
Total Rollup using the level load rule. This exercise assumes that you have
the Application Manager Server desktop open and the Bigcorp application
and Sales database selected.

Reviewing the level load rule structure:

1) Select Data Load Rules .

2) Select File / Open.

3) Select Client.

4) Click File System.

5) Select Fam_Lev and click Open.


The Data Prep Editor displays.

6) Select File \ Open Data File.


The Open Client Data File Object window displays.

7) For Location, select Client.

8) In the List Objects of Type drop-down list, select Excel Sheets is selected,
highlight Loadrule/FamLev.xls. Use File System if necessary.

9) Click OK.

A-18 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
10) Review the load rule structure and contrast to the Fam_Gen load rule.

✍ Columns are organized bottoms up, left to right.

11) Select File \ Close.


The Data Prep Editor closes and you return to the Server Desktop.

Redoing the Family Total rollup using the level load rule:

1) Highlight the Bigcorp application and the Sales database.

2) Select Database Outlines .

3) Click Open.

4) Expand the Product dimension.

5) Select Family Total and type [Del].


A confirmation message displays.

6) Click Yes.
Family Total and all its children are deleted from the outline.

7) Select File / Update Outline.

8) Select Data File.

9) From the Client, use Find to select Loadrule/FamLev.xls.

10) From the Client, use Find to select the Fam_Lev.rul.

11) Note the location of the error file and click OK.
The Fam_Lev load rule runs.

12) Expand Product.


If no errors occurred, the Family Total member and all its children
are added to the Sales outline.

Hyperion A-19
Appendix - Exercise Solutions Fast Track for Designers
A
13) Select File \ Save to save the new structure.

14) To return to the Server Desktop, select File \ Close.

A-20 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Exercise - Creating a Parent/Child Load Rule
In this exercise, you create a new dimension build load rule and set the
rule to use the Parent/Child method.This exercise assumes that you have
the Application Manager Server desktop open and the Bigcorp application
with the Sales database selected.

Creating a new load rule:

1) Select Data Load Rules and click New.


The Data Prep Editor displays.

2) Click Associate Outline .


The Associate Server Outline Object dialog opens.

3) Associate the load rule with the Sales outline. When you have
selected Sales in the Objects area, click OK.
You return to the Data Prep Editor.

4) Select File / Open Data File.

5) In the Location section, select Client.

6) From the List Objects of Type drop-down list, select Excel Sheets.

7) Click File System.

8) Select Configpc.xls (located in the B100_5\LoadRule directory).

9) Click OK.

10) Select View / Dimension Building Fields.


A check mark appears beside Dimension Building Fields.

11) Select Options / Dimension Build Settings.

12) Select the Dimension Build Settings tab.

13) From the Dimension list, select Product.

14) In the Build Method section, select Use Parent/Child.

✍ When you select the Use Parent/Child, the Do Not Share check
box becomes available in the Existing Members group area.
The Do Not Share check box is cleared when it becomes
available. Leaving this box unchecked allows existing
members with unique parents to be automatically set up as
shared members. Leave this box unchecked.

Hyperion A-21
Appendix - Exercise Solutions Fast Track for Designers
A
15) Click OK.
You return to the Data Prep Editor.

Associating columns with field properties:

1) Select any member in column one and select Field / Properties.

2) Click the Dimension Building Properties tab.

3) From Field Definition, select Parent.

✍ Once Parent is entered, Zero (0) may display for Number. If for
some reason it does not display, be sure to enter Zero (0) for
Number. This is a required placeholder value that has no
significance for Parent/Child loads.

4) From Dimension, select Product.


The name Product displays in the Dimension area.

5) Click OK.
The Field Properties dialog closes and you return to the Data Prep
Editor.

✍ Rather than clicking OK at this point, you could also click


Next to move through the columns of the file while making
the assignments as directed. Then you would select OK
only when all the columns had been assigned values.

6) Select any member in column two and repeat the above procedure
choosing Property from the Field Definition list, entering zero (0) for
Number and selecting Product from the Dimension list.

7) Click OK.
The Field Properties dialog closes and you return to the Data Prep
Editor.

8) Select any member in column three and repeat the above procedure
choosing Child from the Field Definition list, entering zero (0) for
Number and selecting Product from the dimension list.

9) Click OK.

Ignoring the first header row:

1) Select Options / Data File Properties and click the Header Records tab.

2) In Number Of Line To Skip in the Header, enter 1.

3) Click OK.

A-22 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Saving the load rule:

1) Select Options / Validate.

2) Correct any errors noted.

3) When you receive the message: The rules file is correct for dimension
building, click OK.

4) Save the file as Par_Ch on the Server to the Sales database.

5) Select File / Close to close the Data Prep Editor.

Hyperion A-23
Appendix - Exercise Solutions Fast Track for Designers
A
Exercise - Using a Parent/Child Rule
Use the Parent/Child load rule just constructed to load the Configuration
Total rollup to the Products dimension in the Sales outline.This exercise
assumes that you have the Application Manager Server desktop open and
the Bigcorp application and Sales database selected.

1) Open the Sales outline.

2) Select File / Update Outline.

3) Find the source file ConfigPC.xls on the Client (located in the


B100_5\Loadrule directory).

4) Find the load rule Par_Ch on the Server.

5) Note the directory location of the Dimbuild.err file. Review this file if
errors occur during the dimension build loading.

6) Click OK.
The Par_Ch Load Rule runs.

7) Select Product and select Outline / Expand To Descendants.

✍ Shared Members have been automatically created.

8) Select File / Save.

Updating the outline:

1) Select File / Update Outline.


The Update Outline dialog displays.

A-24 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
2) Find the source file LinePC.xls on the Client (located in the
B100_5\Loadrule directory).

3) Find the load rule Par_Ch on the Server.

4) Note the directory location of the Dimbuild.err file. Review this file if
errors occur during the dimension build loading.

5) Click OK.
The Par_Ch Load Rule runs using the new data file.

6) Select Product and select Outline / Expand To Descendants.

✍ Shared Members have been automatically created.

7) Select File / Save.

Hyperion A-25
Appendix - Exercise Solutions Fast Track for Designers
A
Exercise - Loading Channel to Customer
In this exercise, you create a new load rule to build the Customer
dimension and its children using the generation method.This exercise
assumes that you have the Application Manager Server desktop open and
the Bigcorp application and Sales database selected.

Creating a new load rule:

1) Select File / New / Data Load Rules.


The Data Prep Editor displays.

2) Select Options / Associate Outline.

3) Associate the load rule with the Sales database.

4) Select File / Open Data File.

5) For Location, select Client.

6) Open the Excel Worksheet data file Loadrule/CusChan.xls. Use File System
if necessary.

7) To set the mode for load members to the outline, select View /
Dimension Building Fields.
A check mark displays beside Dimension Building Fields on the
View menu.

Creating the Customer dimension:

1) Select Options / Dimension Build Setting.

2) Select the Dimension Definition tab.

3) Select Rules File.

4) For Name enter Customer.

A-26 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
5) Click Add.

6) To set the properties for the Customer dimension, click Properties


button.
The Dimension Properties dialog box displays.

7) Select the Dimension Properties tab.

8) In the Data Storage area, select Label Only.

9) In the Configuration area, select the Sparse.

10) Click OK.


The Dimension Properties dialog closes.

11) Click OK
The Dimension Build Settings dialog closes and you return to the
Data Prep Editor.

12) Select Options / Dimension Build Setting.

13) Select the Dimension Build Settings tab.

14) From the Dimension list, select Customer and confirm the Build Method
is set to Use Generation References.

15) Click OK.


You return to the Data Prep Editor.

Hyperion A-27
Appendix - Exercise Solutions Fast Track for Designers
A
Ignoring the first header row:

1) Select Options / Data File Properties.


Data File Properties Dialog displays.

2) Select the Header Records tab.

3) In Number Of Lines To Skip in the Header, enter 1.

4) Click OK.
You return to the Data Prep Editor.

Organizing columns and associate them with generations:

1) Select a member of field 1 and select Field / Properties.

2) Select the Global Properties tab.

3) Select Ignore Field During Dimension Build.

4) Click OK.
The information in field 1 appears grayed out; if it does not, check
your settings.

5) Select field 3 and select Field / Move.

6) Move the field 3 until it appears between field 1 and 2.

7) Click OK.
The field title Channel now appears as field 2 between the Cust
Class and Customer fields.

8) Select the new field 2 and select Field / Create Using Text.

9) Enter the text Channel Total.

A-28 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
10) Click OK.

11) Select the new field 3 and select Field / Create Using Text.

12) Enter the text ~ (tilde).

13) Click OK.


A new field 3 is inserted.

14) Select field 2 and select Field / Properties.

15) Click the Dimension Building Properties tab.

16) For Dimension, select Customer, for Field Type Generation and for the
Generation Number enter 2.

17) Click Next.


The information displays for field 3.

18) For dimension select Customer, for Field Type select Property.
The Number 2 displays for the number of the Property
generation. If it does not, enter the value 2 for Number.

19) Click Next.


The information for field 4 displays.

20) Click the Global Properties tab.


Field 4 remains selected.

21) In the Replace text box, type Disti and, in the With box, type Distributor.

22) Select Replace All Occurences (A).

Hyperion A-29
Appendix - Exercise Solutions Fast Track for Designers
A
23) Click Add.

24) Click the Dimension Building Properties tab.


Field 4 is still selected.

25) For dimension select Customer, for Field Type select Property.
The Number 2 displays for the number of the Property
generation. If it does not, enter the value 2 for Number.

26) Click Next.


The information for field 4 displays.

27) For Dimension, select Customer, and for Field Type select Generation.
3 displays for the generation Number.

28) Click Next.


The Dimension Building Properties panel now displays
information for Field Number 5.

29) For Dimension, select Customer, and for Field Type select Generation.
4 displays for the generation Number; if it does not, enter it.

30) Click OK.


You return to the Data Prep Editor.

31) Keeping the fifth field (Gen 4, Customer) selected, select Options /
Dimension Build Settings.

32) Select the Dimension Build Settings tab.

33) From the Dimension list, select Customer.

34) Select Allow Property Changes.

A-30 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
35) Click OK.

Saving and loading the Customer dimension:

1) Select Options / Validate.

2) Correct any errors that appear in the validation dialog.

3) When you receive the message: The rules file is correct for dimension
building, click OK.

4) Save the load rule to the server as Channel.

5) Select File / Close.


The Data Prep Editor closes.

6) Open the Sales outline.

7) Select File / Update Outline.

8) Find CusChan.xls on the Client.

9) Find Channel.rul on the Server.

10) Click OK.

Hyperion A-31
Appendix - Exercise Solutions Fast Track for Designers
A
11) From the Sales outline, select Customer and select Outline / Expand To
Descendants.

12) Select File / Save.

A-32 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Exercise - Building the Capacity Total Attribute
In this exercise, you create a new dimension build load rule to build a
Capacity Total Attribute dimension. This exercise assumes that you have
the Application Manager Server desktop open and the Bigcorp application
and Sales database selected.

1) Select Data Load Rules and click New.


The Data Prep Editor displays.

2) Click Associate .
The Associate Server Outline Object dialog displays.

3) Associate the load rule with the Sales outline. When you have
selected Sales in the Objects area, click OK.
You return to the Data Prep Editor.

4) Select File / Open Data File.


The Open Client Data File Object dialog displays.

5) For Location, select Client.

6) From the List Object of Type drop-down list, select Excel Sheets.

7) Select Loadrule/AttCap.xls.

8) Click OK.

9) Click View / Dimension Building Fields.


A check mark appears beside Dimension Building Fields.

Hyperion A-33
Appendix - Exercise Solutions Fast Track for Designers
A
10) To skip first record as header row, select Options / Data File Properties or

click Properties . Select the Header Records tab.

11) Enter 1 for Number of lines to skip and click OK.


You return to the Data Prep Editor.

Defining the Capacity Total dimension:

✍ In order to create the Attribute dimension you need to attach it to a


base dimension. In order to do that, the Attribute dimension is
created as an attribute of the base dimension. You also need to define
which type of attribute: numeric, text, boolean or date.

1) Click Dimension Building Properties .

A-34 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
2) Select the Dimension Definition tab.

3) Select the Product dimension (your base dimension).

4) Click Properties.

5) If necessary, select the Dimension Properties tab.

Hyperion A-35
Appendix - Exercise Solutions Fast Track for Designers
A
6) Click Attribute Dimensions button.

7) In Name, type Capacity Total.

8) From the Type drop-down list, select Numeric.

9) Click Add.

10) Click Close.

11) In the Dimension Properties window, click OK.


You return to the Dimension Build Settings dialog.

12) Select the Dimension Build Settings tab.

13) Select Capacity Total

✍ The is the attribute you just defined.

14) Select Use Parent Child Reference.

15) In the Dimension area, select Product.

A-36 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
16) Select the Use Level References.

17) Select Allow Association Changes and Do Not Create Mbrs in the Attribute
Members area.

✍ Because the hierarchy of the Capacity Total attribute


dimension is being built as a Parent/Child, it does not need to
be created as part of the attribute member association to the
base dimension member.

18) Click OK.


You return to the Data Prep Editor.

Performing field edits to format the file:

1) Select any item in Field 1 and select Move .


The Move Field dialog displays.

2) Highlight Field 1 and click Down until field 1 in the bottom


position in the displayed list.

3) Click OK.
You return to the Data Prep Editor where the field titled Product
now displays at the end of the column listing.

Make a copy of Field 2 (Production):

1) Highlight any item in Field 2 then select Field / Create Using Join.

✍ You are joining Field 2 to itself.

2) Allow Field 2 to remain highlighted and click OK.


The field titled Production now appears in both the Field 2 and
Field 3 positions.

3) Move the new Field 3 so that it is the last column by highlighting any

item in Field 3 then selecting Move .


The Move Field Dialog displays.

Hyperion A-37
Appendix - Exercise Solutions Fast Track for Designers
A
4) Use Down to move Field 3 into the bottom position then click OK.

✍ You want the base member field (Lightbolt 365 A) to precede


the new Production column. Remember, anything that is not a
member in the database is applied to the preceding column of
member information.

Defining the field column properties:

1) Highlight any item in Field 1 and select Field / Properties and select the
Dimension Building Properties tab.

2) Complete the field properties as indicated in this table:

Field # Dimension Field Type Number

Field 1 Capacity Total Parent 0

Field 2 Capacity Total Child 0

Field 3 Product Level 0

Field 4 Product Capacity Total 0

A-38 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
3) When all field properties have been assigned, click OK.

Saving the load rule:

1) Select Options / Validate to validate the load rule.

2) Correct any errors noted.

3) When you receive the message: The rules file is correct for dimension
building, click OK.

4) Save the file on the Server to the Sales database as AttCap.

✍ The file type .RUL is automatically set up by Analytic Services.

5) Select File / Close.


The Data Prep Editor closes.

Using the load rule:

1) Select File / Update Outline.

2) Find the source file AttCap.xls on the Client (located in the


B100_5\Loadrule directory).

3) Find the load rule AttCap on Server.

4) Note the location of the Dimbuild.err file directory. Review this file if
errors occur during the dimension build loading.

5) Click OK.
The AttCap Load Rule runs.

Hyperion A-39
Appendix - Exercise Solutions Fast Track for Designers
A
6) To verify that the dimension build was successful, select Product and
select Outline / Expand To Descendants.

This load rule builds the


Capacity Total Attribute
dimension and assigns them
to respective products.

7) Select File / Save.

A-40 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Exercise - Creating a Region Total Attribute Dimension
In this exercise, you create a new load rule that defines the Region Total
attribute dimension. This exercise assumes that you have the Application
Manager Server desktop open and the Bigcorp application and Sales
database selected.

1) Select File / New / Data Load Rules.

2) Select Options / Associate Outline and associate the load rule with the
Sales database.

3) Select File / Open Data File and from the Client open the file Loadrule/
CusReg.xls.

4) To set the mode for loading members to the outline, select View /
Dimension Building Fields.

Defining the Region Total dimension:

✍ You need to create the Region Total attribute dimension.You also


need to define which type of attribute: numeric, text, boolean, or
date.

Hyperion A-41
Appendix - Exercise Solutions Fast Track for Designers
A
1) Click Dimension Building Properties .

2) Select the Dimension Definition tab.

3) Select the Customer dimension (the base dimension for which you
want to create the attribute).

A-42 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
4) Click Properties.

5) Select the Dimension Properties tab.

6) Click Attribute Dimensions.

7) Name the attribute Region Total.

8) From the Type drop down box, select Text.

Hyperion A-43
Appendix - Exercise Solutions Fast Track for Designers
A
9) Click Add.

10) Click Close to return to the Dimension Properties dialog then click OK
to return to the Dimension Build Settings dialog.

Assigning the build method:

1) Select the Dimension Build Settings tab.

2) Select Customer.

3) Select Use Level References.

4) Select Allow Association Changes.

5) Click OK.
You return to the Data Prep Editor.

Performing field edits:

1) Select field 2 and select Record / Reject.

2) Leave the Type set to String.

3) In the String/Number text box, type Region Total.

4) Leave the condition as the default Equal To

5) Click Add.
The record reject condition moves into the display area.

6) Click OK.
You return to the Data Prep Editor.

A-44 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Defining the field column properties:

✍ You want to assign the Region Total attributes to the fourth


generation of Customers.

1) Highlight any item in field 1.

2) Select Field / Properties.

3) Select the Dimension Building Properties tab.


Information for Field Number 1 displays.

4) In the Field Type section, select Level.

5) In the Number text box, type 0.

6) In the Dimension section, select Customer Dimension.

7) Click Next.

8) In the Field Type section, select Region Total (located under Attribute
Dimensions).

9) In the Number text box, type 0.

10) In the Dimension section, select Customer Dimension.

11) Click OK.

Hyperion A-45
Appendix - Exercise Solutions Fast Track for Designers
A
Saving the load rule:

1) Select Options / Validate.

2) Correct any errors noted.

3) Save file as AttReg on the server to the Sales database.

4) Select File / Close.

Using the load rule:

1) From the Sales outline, select File / Update Outline.

2) Find CusReg.xls on the Client (located in the B100_5\Loadrule


directory).

3) Find the Loadrule AttReg on the Server.

4) Note the location of the Dimbuild.err file directory. Review this file if
errors occur during the dimension build loading.

5) Select OK.
The AttReg load rule runs with the data specified.

6) To verify that region attributes were added for customers, select


Customer and select Outline / Expand To Descendants.

A-46 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
7) Verify that the Region Total attribute dimension was created.

8) Select File / Save.

Hyperion A-47
Appendix - Exercise Solutions Fast Track for Designers
A
Chapter 6

Exercise - Working with Difficult Data


In this exercise you create a new data load rule to clean a data file. In this
data file there a variety of problems to resolve, including:

Incorrect format of some data fields


The need to ignore some fields and rows in the file
Missing dimension information needed for a successful load
Unrecognized values for some dimensions

Try to identify as many specific problems as possible before beginning the


exercise. This exercise assumes that you have the Application Manager
Server desktop open and the Bigcorp application and Sales database
selected.

Creating a new load rule:

1) Select Data Load Rules .

2) Click New.

3) Select Options / Associate Outline and associate the rule with the Sales
database.

4) Select File / Open Data File.

5) Open Loadrule/Harddata.xls (stored on the client).

A-48 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
6) Select View / Data Load Field.

✍ This is the correct mode setting for creating a load rule that
loads data.

Associating the Product field:

1) Select field 1 and select Field / Properties.

2) Select the Data Load Properties tab.

3) For Field Name the field Product.

4) Click OK.
The dialog closes and you return to the Data Prep Editor. Product
replaces field 1 as the column heading.

Ignoring the Agent field:

1) Select field 2 and select Field / Properties.

2) Select the Global Properties tab.

3) Select Ignore field during dataload.

4) Click OK.
The dialog closes and you return to the Data Prep Editor. The
contents of field 2 are disabled.

Adjusting the Year Tot column:

1) Select field 3.

2) Select Field / Split.

3) For Number of characters in column, enter 3.

4) Click OK.
Only three characters of the data appears in the field 3 listing. The
remainder of the data appears in a new field 4.

5) You want to ignore this new field 4 during the data load. Select field 4
and select Field / Properties.

Hyperion A-49
Appendix - Exercise Solutions Fast Track for Designers
A
6) Select the Global Properties tab.

7) Select Ignore field during dataload.

8) Click OK.
The remaining characters of the month names are disabled.

9) Select field 3 again and select Field / Properties.

10) Click the Data Load Properties tab.

11) Enter Year Tot into the Field Name.

12) Click OK.

Adjusting the Customer column:

1) Select field 5 and select Field / Properties.

2) Select the Global Properties tab.

3) In the Replace text box type Cust Id-.

4) Select Replace All Occurences (A).

5) Leave the With entry box blank.

6) Click Add.

7) Click OK.
The dialog box closes and you return to the Data Prep Editor.
Cust Id- is stripped from the Customer field.

8) Select field 5 and select Field / Properties.

9) Select the Data Load Properties tab.

10) In Field Name, enter Customer.

11) Click OK.

Associating data fields with Accounts dimension members:

1) Select field 6 and select Field / Properties.

2) Click the Data Load Properties tab.

3) Select Accounts (the Measures dimension) and drill down several


generations to Units.

4) In Field Name, enter Units.

A-50 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
5) Click Next.

6) Repeat the above drill down process for fields 7 through 11. Enter the
following members for the field specified:

Field Member

7 List Price,

8 Discount %

9 Labor/Unit

10 Matl/Unit

11 Overhead Rate

7) When all assignments are made, click OK.


You return to the Data Prep Editor.

Setting up a scenario header:

✍ Remember that each dimensions must be identified in the data file.


In this file Scenario is not represented. The data applies to the
Current Year. Set up a Scenario header to identify this dimension
with the data.

1) Select Options / Data Load Settings.

2) Select the Header Definition tab.

3) Expand Scenario.

4) In Header Name enter Current Year.

5) Click OK.
You return to the Data Prep Editor.

Ignoring the extraneous header row:

1) Select Options / Data File Properties.

2) Select the Header Records tab.

3) For Number Of Lines To Skip, enter 1.

4) Click OK.
You return to the Data Prep Editor.

Hyperion A-51
Appendix - Exercise Solutions Fast Track for Designers
A
Rejecting on Apple records:

1) Select the Customer field and select Record / Reject.

2) In the String/Number text box, type Apple.

3) Select the Contains condition.

4) Click Add.
The Reject Record condition appears in the display area

5) Click OK.
You return to the Data Prep Editor.

Creating a safety net for new members:

✍ Next you need to create a safety net for new members in the
Product and Customer dimensions, that is, for Lightbolt 810 S
and JC’s Hardware. JC’s Hardware should be added as
children of Unrecognized Customer. Lightbolt 810 S must be
added as a sibling to existing Product members. In order to do
this, you must ignore conflicts with existing members.
Creation of the safety net requires a switch to dimension
building mode.

1) Select View / Dimension Building Fields.

2) Select Options / Dimension Build Settings.

3) Select the Dimension Build Settings tab.

4) From the Dimension list, select Customer.

A-52 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
5) Set the build method to Add as child of.

6) Drill into Customer/Channel Total and select Unrecognized Customer.

7) Select Ignore Conflicts.

8) From the Dimension list, select Product.

9) Set the build method to Add as a sibling of mbr with matching string.

10) Check Ignore Conflicts.

11) Click OK.

12) Select fields 2, 3 and 4; select Field / Properties.

13) Select the Global Properties tab.

14) Select Ignore field during dimension build.

15) Repeat this procedure for fields 6 through 11.

✍ Do not ignore fields 1 and 5 which are the Product and


Customer label columns.
It is not necessary to associate the fields not being ignored with
their dimension names. However, to avoid getting an error
when validating the load rule, you can associate columns not
being ignored with the dimension name using the Field /
Properties to access the Dimension Building Properties panel
on the Field Properties dialog. Use this to associate the
Dimension. You do not need to set any Field Types

Hyperion A-53
Appendix - Exercise Solutions Fast Track for Designers
A
Save the load rule:

1) Verify that View / Data Load Fields is selected.

2) Select Options / Validate.

3) Correct any errors listed.

4) Save the rule as Loadhard associated with the Sales outline.

5) Select File / Close.

6) Open the Sales Outline.

Loading the data:

1) Verify the Sales outline is open.

2) From the Application Manager with the Sales database selected,


select Database / Load Data.

3) Find file Loadrule/Harddata.xls on the Client.

4) Select Use Rules.


The second Find button becomes available.

5) Find the load rule Loadhard located on the Server.

6) Select Modify Outline and Load Data.

7) Click OK.
The load rule executes. You should receive a dialog with the
message that the files loaded with no errors and the location of the
data file.

8) Click Close.
The message dialog and the Data Load dialog both close. You
return to the Application Manager.

Verifying the outline:

1) When the data load is complete, close the Sales outline, then reopen it.

A-54 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
2) Verify the inclusion of Lightbolt 810 S in the Product hierarchy as a
child of the Lightbolt product family.

3) Verify the inclusion of JC’s Hardware as a child of Unrecognized


Customer in the Customer dimension.

Verifying the data:

1) In Excel, open the file Loadrule/AudHard.xls. and connect the Audit Hard
Data worksheet to the Sales database.

Hyperion A-55
Appendix - Exercise Solutions Fast Track for Designers
A
2) Select Essbase / Retrieve.

A-56 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Chapter 7

Exercise - Clorox Minty


In this exercise, you create a new dimension, Mint. Then you create a new
load rule to load the data. This exercise assume that you have the
Application Manager Server desktop open and the Bigcorp application
and Sales database are selected.

1) Open the Sales outline, add a new dimension Mint.

2) Select Settings / Data Storage.

3) Set Mint to Sparse.

4) Select File / Save.

5) If asked if you want to reposition attribute dimensions to the bottom


of the outline, click Yes.

6) Select File / New / Data Load Rule .

7) Click New.

8) Select Options / Associate Outline and associate the rule with the Sales
database.

9) Select File / Open Data File and open Minty.txt (located on the client in the
loadrule directory).

10) Select View / Dimension Building Fields.

Replicating fields needed for creating unique members:

1) Select field 1 and select Field / Create Using Join.

2) Click OK.
Field one duplicates.

Hyperion A-57
Appendix - Exercise Solutions Fast Track for Designers
A
3) Repeat the previous step again.
You now have three fields containing the first record Clorox.

4) Select field 4 and select Field / Create Using Join.

5) Click OK.
Two copies of this field now exist.

Moving members:

1) Select field 4 and select Field / Move.

2) Move the field Up between fields 2 and 3.

3) Click OK.

Inserting space fields:

1) Select field 3 and select Field / Create Using Text.

2) Type a blank space in the input box and click OK.


A field with a single space is inserted as a new field 3.

A-58 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
3) Repeat the procedure above inserting a blank between the current
fields 5 and 6 and between fields 6 and 7.

There are total of nine fields with just a single space in fields 3, 6
and 8.

Concatenating the fields:

1) Select fields 2, 3 and 4 and select Field / Join.

2) Click OK.
The three fields are joined into a singe field 2 with correct spacing
between the words.

3) Select the remaining fields 3 through 7 and select Field / Join.

4) Click OK.

Hyperion A-59
Appendix - Exercise Solutions Fast Track for Designers
A
Associate fields with dimensions:

1) Select field 1 and select Field / Properties.

2) Select the Dimension Building Properties tab.

3) In the Dimension section, select the Mint.

4) In the Field Type section, select Generation.

5) Enter 2 for the generation number.

6) Click Next.

7) Repeat the above procedure for fields 2 and 3. Select the Mint
dimension, Generation Field Type and generation number 3 and 4
respectively.

Loading the Clorox Minty hierarchy to the Mint dimension:

1) Save the load rule as Loadmint associated with the Sales outline.

2) Return to the Sales outline.

3) Select File / Update Outline.

4) Find the source file Minty.txt (located in the Loadrule directory).

5) Find the load rule Loadmint on the Essbase OLAP server.

6) Note the location of the Dimbuild.err file directory. Review this file if
errors occur during the dimension build loading.

7) Click OK.

A-60 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
8) Select Mint and select Outline / Expand To Descendants.

Hyperion A-61
Appendix - Exercise Solutions Fast Track for Designers
A
Chapter 10

Exercise - Spreadsheet Reporting Challenge 1: Formats


This exercise assumes that you are logged into the Bigcorp application and
Sales database and are working in the Spreadsheet Add-in. There are a
variety of ways to produce this challenge report. This is one possible
solution. This exercise assumes that you have the file Corprpts.xls open.

1) Select the Challenge1 worksheet.

2) Select Essbase / Retrieve.

3) Select Product.

4) Select Essbase / Pivot.


Product switches axis.

5) Select Year Tot.

6) Select Essbase / Pivot.


Year Tot switches axis.

7) Select Customer.

8) Select Essbase / Zoom in.

9) Select Customer.

10) Select Essbase / Pivot.


Customer switches axis.

11) Select Channel Total.

12) Select Essbase / Zoom in.


The children of Channel Total display.

13) Select OEM.

A-62 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
14) Select Essbase / Zoom in.

15) Select IBM, Acer and Apple.

16) Select Essbase/ Keep Only.


Other members of the product dimension disappear.

17) Select Product.

18) Select Essbase / Zoom in.


The children of Product display.

19) Select Scenario.

20) Select Essbase / Zoom in.

21) Select Current Year.

22) Select Essbase / Keep Only.


The other members of the Scenario dimension disappear.

Hyperion A-63
Appendix - Exercise Solutions Fast Track for Designers
A
23) Select Current Year.

24) Select Essbase / Pivot.

25) Select a cell containing numerical data.

26) Select Essbase / Linked Objects.

27) Click Attach.

28) Enter a Cell Note.

29) Click OK.


The Linked Objects Browser displays.

30) Click Close.

31) Select Essbase / Options.


The Essbase Options window displays.

A-64 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
32) Select the Style tab.

33) In the Members section, select Parent.

34) Click Format.

35) Specify a font format.

36) Click OK.


The Essbase Options window displays.

37) In the Data Cells section, select Linked Objects.

38) Repeat steps 33 through 35.


The Essbase Options window displays.

39) Click OK.

Hyperion A-65
Appendix - Exercise Solutions Fast Track for Designers
A
40) Select Essbase / Retrieve.

A-66 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Exercise - Spreadsheet Reporting Challenge 2: Pivot, Zoom and Select
This exercise assumes that you are logged into the Bigcorp application and
Sales database and are working in the Spreadsheet Add-in. There are a
variety of ways to produce this challenge report. This is one possible
solution. This exercise assumes that you have the file Corprpts.xls open.

1) Select the Challenge2 worksheet

2) Select Essbase / Retrieve.

3) Select Product.

4) Select Essbase / Pivot.


Product switches axis.

5) Select Customer.

6) Select Essbase / Member Selection.

7) In the Members section, expand Channel and OEM.


The children of OEM display under Members.

8) Select IBM.

9) Click Add.
IBM moves under Rules.

Hyperion A-67
Appendix - Exercise Solutions Fast Track for Designers
A
10) Click OK.
IBM replaces Customer on the report.

11) Select Accounts.

12) Select Essbase / Member Selection.


The Essbase Member Selection window displays.

13) In the Members section, select Gross Margin.

14) Click Add.


Gross Margin moves under Rules.

15) Click OK.

Gross Margin and IBM


display on the report.

16) Select Scenario.

17) Select Essbase / Zoom in.


The children of scenario display.

18) Select Scenario.

19) Select Essbase / Pivot.


Scenario switches axis.

20) Select Year Tot.

21) Select Essbase / Zoom in.


The children of Year Tot display.

22) Select Qtr 1.

23) Select Essbase / Pivot.


Year Tot switches axis.

24) Select Product.

25) Select Essbase / Member Selection.


The Essbase Member Selection window displays.

26) In the Members section, select Product.

27) Click Add.


Product moves under Rules.

A-68 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
28) In the Rules section, right-click Product.

29) Select Subset.

30) From the drop-down lists, select Level Name is Lev0,Product.

31) Click Add as AND Condition.


The rule displays under Conditions.

32) From the drop-down lists, select Pattern is THUND*.

✍ You must type THUND*.

33) Click Add as AND Condition.

Hyperion A-69
Appendix - Exercise Solutions Fast Track for Designers
A
34) Click OK.
The Essbase Member Selection window displays.

35) Click OK.


Names beginning with THUN replace Product.

36) Select Essbase / Retrieve.

A-70 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Exercise - Spreadsheet Reporting Challenge 3: Formulas
This exercise assumes that you are logged into the Bigcorp application and
Sales database and are working in the Spreadsheet Add-in. There are a
variety of ways to produce this challenge report. This is one possible
solution. This exercise assumes that you have the file Corprpts.xls open.

1) Select the Challenge3 worksheet

2) Select Essbase / Retrieve.

3) Select Essbase / Options.


The Essbase Options window displays.

4) Select the Mode tab.

5) Deselect Retain on Retrieval.

✍ If you do not complete this step, you cannot pivot the accounts
dimension. This setting is reapplied later in the procedure.

6) Click OK.

7) Select Accounts.

8) Select Essbase / Pivot.


Accounts switches axis.

Hyperion A-71
Appendix - Exercise Solutions Fast Track for Designers
A
9) Select Year Tot.

10) Select Essbase / Pivot.


Year Tot switches axis.

11) Select Scenario.

12) Select Essbase / Zoom in.


The children of Scenario display.

13) Select Current Year.

14) Select Essbase / Keep Only.


The other members of the Scenario dimension disappear.

15) Select Current Year.

16) Select Essbase / Pivot.

Selecting Product and Customer members:

1) Select Product.

2) Select Essbase / Member Selection.


The Essbase Member Selection window displays.

3) In the Members section, expand Family Total, Performance and Lightbolt.

4) Select LIGHTBOLT 365A.

5) Click Add.
LIGHTBOLT 365A displays under Rules.

6) Click OK.
LIGHTBOLT 365A replaces Product on the report.

7) Select Customer.

8) Select Essbase / Member Selection.


The Essbase Member Selection window displays.

9) In the Members section, expand Channel Total and OEM.

10) Select IBM.

A-72 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
11) Click Add.
IBM displays under Rules.

12) Click OK.


IBM replaces Customer on the report.

Selecting Time members:

1) Select Year Tot.

2) Select Essbase / Zoom in.

3) Select Quarter 1 and Quarter 2.

4) Select Essbase / Keep Only.


The other members of Year Tot disappear.

5) Select Quarter 1.

6) Select Essbase / Pivot.


Quarter 1 and Quarter 2 switch axis.

7) Select cell range A2:C3.

8) Select Edit / Cut.

9) Select cell A6.

10) Select Edit / Paste.


Quarter 1 and Quarter 2 appear in cells C6 and C7. Accounts
appears in cell A7.

Arranging members:

1) Select Current Year.

2) Select Edit / Cut.

3) Select cell A1.

Hyperion A-73
Appendix - Exercise Solutions Fast Track for Designers
A
4) Select Edit / Paste.
Current Year appears in cell A7.

5) Select LIGHTBOLT 365A.

6) Select Edit / Cut.

7) Select cell A2.

8) Select Edit / Paste.


LIGHTBOLT 365A appears in cell A2.

9) Select IBM.

10) Select Edit / Cut.

11) Select cell A3.

12) Select Edit / Paste.


IBM appears in cell A3.

13) Select Essbase / Retrieve.

Selecting Account members:

1) Select Accounts.

2) Select Essbase / Member Selection.


The Essbase Member Selection window displays.

3) In the Members section, expand Gross Margin.


The children of Gross Margin display.

4) Select Gross Margin, Net Sales, Cost of Sales and Other CGS.

5) Click Add.
Gross Margin Nets Sales, Cost of Sales and Other CGS display
under Rules.

6) In the Rules section, right-click Net Sales.

7) Select All Children and Member.

A-74 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
8) Click OK.
The specified members replace Accounts on the report.

Specifying formulas:

9) Select cell E7.

10) Enter the formula:

=B7*2.2

11) Select cells E7 through E12.

12) Select Edit / Fill / Down.

13) Select cells E7 through F12.

14) Select Edit / Fill / Right.

15) Select cell E6.

16) Enter Q1 DM.

17) Select cell F6.

18) Enter Q2 DM.

19) Select cell B4.

20) Enter Dollars.

21) Change the format as desired.

22) Select cell E4.

23) Enter Deutsch Marks.

24) Change the format as desired.

Hyperion A-75
Appendix - Exercise Solutions Fast Track for Designers
A
25) Select Essbase / Options.
The Essbase Options window displays.

26) Select the Mode tab.

27) Select Retain on Retrieval.

28) Click OK.

29) Select Essbase / Retrieve.

30) Select Yes.

✍ The Essbase Message appears for each Unknown Member,


select Yes each time.

A-76 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Chapter 11

Exercise - Spreadsheet Reporting Challenge 4: Asymmetrical Report


This exercise assumes that you are logged into the Bigcorp application and
Sales database and are working in the Spreadsheet Add-in. There are a
variety of ways to produce this challenge report. This is one possible
solution. This exercise assumes that you have the file Corprpts.xls open.

Setting interim options:

1) Select the Challenge4 worksheet.

2) Select Essbase / Options.


The Essbase Options window displays.

3) Select the Display tab.

4) Set Indentation to Totals.

5) In the Suppress section, deselect #Missing and Zero Rows.

6) In the Cells section, deselect Use Styles.

7) In the Cells section, select Repeat Member Labels.

8) In the Replacement section set #Missing Label and #NoAccess Label as


desired.

Hyperion A-77
Appendix - Exercise Solutions Fast Track for Designers
A
9) Select the Zoom tab.

10) In the Zoom In section, select Next Level.

11) In the Member Retention section, deselect Include Selection.

12) In the Member Retention section, select Within Selected Group.

13) Select the Mode tab.

14) In the Formula Preservation section, deselect Retain on Retrieval.

A-78 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
15) Select the Global tab.

16) In the Mode section, select Navigate without Data.

17) In the Display Messages section, select Display Unknown Members.

18) Click OK.

19) Select Essbase / Retrieve.

Setting page headers:

1) Select Customer.

2) Select Essbase / Member Selection.


The Essbase Member Selection window displays.

3) In the Members section, expand Channel Total.

4) Select OEM.

5) Click Add.
OEM appears under Rules.

6) Click OK.
OEM replaces Product on the report.

Hyperion A-79
Appendix - Exercise Solutions Fast Track for Designers
A
7) Select Product.

8) Select Essbase / Member Select.


The Essbase Member Selection window displays.

9) In the Members section, expand Family Total and Performance.

10) Select LIGHTBOLT.

11) Click Add.


LIGHTBOLT appears under Rules.

12) Click OK.


LIGHTBOLT replaces Product on the report.

13) Select Scenario.

14) Select Essbase / Zoom in.


The children of Scenario display.

15) Select Current Year and Forecast.

16) Select Essbase / Keep only.

17) Select Accounts.

18) Select Essbase / Pivot.


Accounts switches axis.

19) Select Current Year.

20) Select Essbase / Pivot.


Current Year and Forecast switch axis.

21) Select Year Tot.

22) Select Essbase / Pivot.


Year Tot switches axis.

Setting row and column members:

1) Under Current Year, select Year Tot.

A-80 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
2) Select Essbase / Zoom in.

3) Select Qtr 3, Qtr 4 and Time Variances.

4) Select Essbase / Remove Only.


Qtr 3, Qtr 4 and Time Variances disappear.

5) Select Qtr 2.

6) Select Essbase / Member Selection.


The Essbase Member Selection window displays.

7) In the Members section, expand Qtr 2.

8) Select April.

9) Click Add.
April displays under Rules.

10) Click OK.


April replaces Qtr 2 on the report.

11) Select Qtr 1.

12) Select Essbase / Zoom in.

13) Next to Forecast, select Year Tot.

14) Select Essbase / Zoom in.


The children of Year Tot display.

15) Select Qtr 1 and Time Variances.

16) Select Essbase / Remove Only.


Qtr 1 and Time Variances disappear.

17) Select Qtr 3 and Qtr 4.

18) Select Essbase / Zoom in.


The children of Qtr 3 and Qtr 4 display.

Hyperion A-81
Appendix - Exercise Solutions Fast Track for Designers
A
19) Select Qtr 2.

20) Select Essbase / Zoom in.


The children of Qtr 2 display.

21) Under Forecast, select April.

22) Select Essbase / Remove Only.

23) Select Accounts.

24) Select Essbase / Member Selection.


The Essbase Member Selection window displays.

25) In the Members section, expand Gross Margin.


The children of Gross Margin display.

26) Select Gross Margin, Net Sales, Cost of Sales and Other CGS.

27) Click Add.


Gross Margin Nets Sales, Cost of Sales and Other CGS display
under Rules.

28) In the Rules section, right-click Net Sales.

29) Select All Children and Member.

30) In the Rules section, select Gross Margin.

31) Click Move Item Down until it is at the bottom of the list.

32) Click OK.

A-82 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Reporting formatting:

1) Select row 1.

2) Select Insert / Row.


A row inserts above row 1.

3) Select LIGHTBOLT.

4) Select Edit / Cut.

5) Select cell E1.

6) Select Edit / Paste.


LIGHTBOLT pastes into row E1.

7) Select OEM.

8) Select Edit / Cut.

9) Select cell E2.

10) Select Edit / Paste.


OEM pastes into row E2.

Setting final options:

1) Select Essbase / Options.


The Essbase Options window displays.

2) Select the Display tab.

3) In the Cells section, select Use Styles.

4) In the Cells section, deselect Repeat Member Labels.

5) Select the Mode tab.

6) In the Formula Preservation section, select Retain on Retrieval and Retain


on Zooms.

7) Select the Global tab.

8) In the Mode section, deselect Navigate without Data.

9) Click OK.

Hyperion A-83
Appendix - Exercise Solutions Fast Track for Designers
A
10) Select Essbase / Retrieve.

A-84 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Chapter 12

Exercise - The Query Designer


In this exercise, you create a report with the Query Designer. This exercise
assumes that you are working in you spreadsheet reporting program and
that you have the Spreadsheet Add-in installed.

1) Open Corprpts.xls.

2) Select Essbase / Query Designer.

3) Right-click Label Driven.

4) Select New / Query.

Setting up the placement of the dimensions:

1) In the Layout panel, select Customer.

2) Drag Customer under Page.

Hyperion A-85
Appendix - Exercise Solutions Fast Track for Designers
A
3) Repeat this process until Page has Accounts and Customer, Column has
Year Tot and Scenario and Row has Products.

Selecting on members:

4) Double-click the Accounts dimension (in either the Layout Panel or


the Navigation Panel).

5) Double-click Gross Margin.


Gross Margin displays under Selection Rules.

6) Repeat this process for Customer selecting IBM.

7) For Year Tot select Quarter 1 and Quarter 2.

A-86 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
8) In the Layout panel, double-click Scenario.

9) Double-click Scenario.
Scenario displays under selection rules.

10) In the Selection Rules section, right-click Scenario.

11) Select Select / Children.

12) In the Navigation panel, select Product.


Product displays under Members in the Selection panel.

13) In the Members section, double-click Product.


Product displays under Selection Rules.

Hyperion A-87
Appendix - Exercise Solutions Fast Track for Designers
A
14) In the Navigation panel, right-click the Product label with the

selection icon .

15) Select New / Member Filter.

16) For Method, select Level Name.

17) For Operator, select is.

18) For Value, select Lev0,Product.


The filter displays in the Navigation panel.

19) In the Navigation panel, right-click the filter you created.

20) Select New / Member Filter (AND).

21) Use this table to complete the filter

Method Pattern Matches

Operator is

Value Thunder*

✍ This selects all products starting with a string of Thunder; the *


is a trailing wildcard search.

Previewing the results of the Product selection:

1) In the Selection Panel (under the Selection Rules window) right-click


Product.

A-88 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
2) Select Preview.

✍ Notice that the preview shows duplicate members for Product.


This is because you have shared members.

3) Go to the Selection panel in the Members window, right-click Product.

4) Select View by Generation.

5) Right-click on any Generation label and select Suppress Shared


Members.
Shared members are suppressed.

Saving and running the query:

1) In the Navigation Panel, right-click on any member in the filter.

2) Select Save Query.

3) In the Query Name text box, type Thunder.

4) Right click again on any member in the filter and select Apply Query.

Hyperion A-89
Appendix - Exercise Solutions Fast Track for Designers
A
Chapter 16

Exercise - Using Fix to Focus


One possible solution to this exercise is a calc script that reads as follows:

/* Housekeeping */
SET UPDATECALC OFF;

/* The Baseline Fix */


FIX ("Current Year", @DESCENDANTS ("Quarter 1"))

/* The Main Rollup */


CALC DIM (Accounts, Customer, Product);

ENDFIX

A-90 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
Exercise - Using If to Focus
One possible solution to this exercise is a calc script that reads as follows:

Pushing Units from Aug to Sept:

/*Housekeeping.*/
SET UPDATECALC OFF;

/*Push the units and price forecast using If.*/

Units
(
IF (@ISMBR (Sep))
Units = @Prior (Units, 1);
ENDIF
)

Pushing Units into QTR 4:

/*Housekeeping.*/
SET UPDATECALC OFF;
CLEARBLOCK NONINPUT;

/*Push the units and price forecast using If.*/

Units
(
IF (@ISMBR (Sep))
Units = @Prior (Units, 1);
"List Price" = @Prior ("List Price", 1) * .9;
ELSEIF (ISDESC ("Quarter 4"))
Units = @Prior (Units, 2) * 1.1;
"List Price" = @Prior ("List Price", 1) * .9;
ENDIF
)

Hyperion A-91
Appendix - Exercise Solutions Fast Track for Designers
A
Chapter 19

Exercise - Developing a Complex Calc Script


There are numerous ways to write this calc script. The following example
represents a possible solution:

/*HOUSEKEEPING.*/

/*Turn intelligent calc off because of multiple passes on blocks.


Set aggregate missing on to enhance performance. No upper level inputs to
protect.
Declare allocation variables.*/

SET UPDATECALC OFF;


SET AGGMISSG ON;
VAR AllocRatioUnits;
VAR AllocRatioNetSales;

/*THE BASELINE FIX.*/

FIX (Budget)

/*THE NORMALIZATION.*/

/*Push down rates loaded at upper levels.*/

"List Price" = @PARENTVAL (Customer, "List Price");


"Discount %" = "Discount %"->"Family Total";
"Labor/Unit" = "Labor/Unit"->"Channel Total";
"Matl/Unit" = "Matl/Unit"->"Channel Total";
"Overhead Rate" = @MDANCESTVAL (2, Product, 3, Customer, 2, "Overhead
Rate");

/*Focused rollup for allocation of Other Expenses: calculate Net Sales, then sum
Units
and Net Sales across Product and Customer dimensions for members used as
the
allocation base.*/

@IDESCENDANTS ("Net Sales");


FIX ("Net Sales", Units)
@IDESCENDANTS ("Family Total");
@IDESCENDANTS ("Channel Total");
ENDFIX

/*Allocate Other Expenses to zero level using a variablized allocation ratios


Focus calculations using Fix to zero level members for Customers and
Products.*/

FIX (@LEVMBRS (Customer, 0), @LEVMBRS (Product, 0))


Units
(

A-92 Hyperion
Fast Track for Designers Appendix - Exercise Solutions
A
AllocRatioUnits = Units / Units->"Family Total"->"Channel Total";
AllocRatioNetSales = "Net Sales" / "Net Sales"->"Family Total"->"Channel Total";
"Material Variances" = "Material Variances"->"Family Total"->"Channel Total"
* AllocRatioUnits;
"Labor Variances" = "Labor Variances"->"Family Total"->"Channel Total"
* AllocRatioUnits;
"Overhead Variances" = "Overhead Variances"->"Family Total"->"Channel Total"
* AllocRatioUnits;
"Obsolete Charges" = "Obsolete Charges"->"Family Total"->"Channel Total"
* AllocRatioNetSales;
"Inventory Adjustments" = "Inventory Adjustments"->"Family Total"->"Channel
Total"
* AllocRatioNetSales;
)
ENDFIX

/*THE MAIN ROLLUP.*/

CALC DIM (Accounts, "Year Tot", Customer, Product);

/*THE BACK CALC.*/

/*Recalculate upper level rates and percentages.*/

(
"List Price" = "Gross Sales" / Units;
"Discount %" = Discounts / "Gross Sales";
"Labor/Unit" = "Direct Labor" / Units;
"Matl/Unit" = Material / Units;
"Overhead Rate" =Overhead / "Direct Labor";
"Gross Margin %" = "Gross Margin" / "Net Sales";
)

/*Close out the budget baseline fix.*/


ENDFIX

Hyperion A-93
Appendix - Exercise Solutions Fast Track for Designers
A

A-94 Hyperion
B
Appendix - New Features in
Version 6.5.1

This appendix describes the new features in the 6.5.1 release Analytic
Services. In addition to a description of the features, this appendix, where
necessary, also contains procedures that describe how to implement each
feature.

The procedures in this appendix use Application Manager as the primary


interface; however, many procedures can also be completed using MaxL
and ESSCMD. When this is the case, it is noted in the documentation.
B New Features in Version 6.5.1 Fast Track for Designers

Overview
The new features in the 6.51 release Analytic Services are divided into
three areas:

Calculation
System Administration
MaxL changes

The following sections provide a summary of all changes within each


category as well as a specific, detailed explanation of each new feature.

Calculation
In respect to calculation the new features are as follows:

@XRANGE
@MOVSUM
@MOVSUMX

@XRANGE Function

@XRANGE is a new calculator function that takes as input two members


(single or cross-dimensional) and returns a member range. @XRANGE is a
member set function.

This function is useful, for example, when you work with the Time and
Scenario dimensions. You can use @XRANGE to return a member set
combination of Time and Scenario instead of creating a dimension that
combines the two (which creates many more individual members than
necessary).

B-2 Hyperion
Fast Track for Designers New Features in Version 6.5.1
B
For example, an outline containing separate Scenario and Year Tot
dimensions might require storage and maintenance for 23 members.
Conversely, an outline with Scenario and Year Tot combined into a single
Time dimension might require storage and maintenance for 85 members.

Using the
@XRANGE function,
you can now use a
separate time and
time dimensions and
still reap the benefits
of a combined Fiscal
Year Cross-Over
design.

Syntax

@XRANGE (mbrName, mbrName)

@XRANGE identifies a range of members using the level of the


arguments, determines the cross product of all members in the range and
then prunes the set to include only the range requested. For example:

@XRANGE(1999->Jun, 2001->March)

This example returns this range:

1999->Jun, 1998->Jul, ... 1999->Dec,

2000->Jan, 2000->Feb, ..., 2000->Dec,

2001->Jan, 2001->Feb, 2001->Mar

Hyperion B-3
B New Features in Version 6.5.1 Fast Track for Designers

Notes

@XRANGE can be used only in these functions:


• @AVGRANGE • @SUMRANGE

• @MINRANGE • @MINSRANGE

• @MAXRANGE • @MAXSRANGE

• @STDDEVRANGE • @MOVSUM

• @MOVAVG • @MOVMIN

• @MOVMAX • @MOVMED

• @SPLINE

@XRANGE can appear anywhere in a formula where a range can


normally appear.
The two arguments to @XRANGE must be either single members or
cross-dimensional members with the same member components.
You cannot mix a single member and cross-dimensional member.
For example, @XRANGE(1999->Jun, 2001) is invalid because a single
member and a cross dimensional member are used together.
The dimension order of members must match for both arguments.
For example, @XRANGE(1999->Jun, March->2001) is invalid
because the two member components are in different orders.
Changing 1999->Jun to Jun->1998 or changing March->2001 to
2001->March results in a valid function.
Although the syntax is correct, a function such as @XRANGE (2001,
1999) is meaningless because it results in an empty set.
The member components of each argument must be from the same
level. For example, @XRANGE(1999->Jun, 2001->Qtr1) is invalid
because Jun and Qtr1 are not from the same level.

@MOVSUM Function

@MOVSUM lets you calculate a moving sum. This function applies a


moving n-term sum to an input data set. Each term of the set is replaced
by a trailing sum of n terms, and the first terms (the n-1 terms) are copies
of the input data. @MOVSUM modifies a data set for smoothing purposes.

B-4 Hyperion
Fast Track for Designers New Features in Version 6.5.1
B
Syntax

@MOVSUM (mbrName [, n [, rangeList]])

mbrName Any valid single member name or member


combination, or a function that returns a single
member or member combination.

n (optional) A positive integer value that represents the number of


values to sum. The default is 3.

rangeList (optional) A valid member name, or a comma-delimited list of


member names from the same dimension, or member
set function or range function that returns a list of
members from the same dimension. If rangeList is not
specified, Analytic Services uses the level 0 members
from the dimension tagged as Time.

Notes

The @MOVSUM function calculates a trailing, rather than a


centered, sum. For example:
Trailing Sum Centered Sum

1 2 3 1 2 3

6 3

While calculating the moving sum, @MOVSUM skips #MISSING


values. For example, if one value out of three is #MISSING, Analytic
Services adds the remaining two values.
If you use a member set function to generate a member list for the
rangeList parameter (for example, @SIBLINGS), to ensure correct
results, consider the order in which Analytic Services sorts the
generated member list.
When you use @MOVSUM in a calculation script, use it within a FIX
statement. Although FIX is not required, using it may improve
calculation performance.

Hyperion B-5
B New Features in Version 6.5.1 Fast Track for Designers

For periods where the value of n cannot be used to compute the


moving sum, the value returned is the same as for the source
member. For example:

Mov Sum = @MOVSUM(Sales,3,Jan:Jun);

produces this result for January and February:


Colas New York Actual

Sales Mov Sum

Jan 678 678

Feb 645 645

For January and February, Analytic Services cannot compute a


moving sum over the last three months (the value of n) because the
three months do not yet exist. Analytic Services simply copies the
values for Jan and Feb for the moving sums.
When you use @MOVSUM across a large range in a sparse
dimension, you may need to increase the size of the calculator cache.

@MOVSUMX Function

The @MOVSUMX function is similar to @MOVSUM in that it applies a


moving n-term sum to an input data set. Unlike @MOVSUM,
@MOVSUMX provides several options that control the value assigned to
trailing members, and how to assign values to members that precede the
n-term parameter. @MOVSUMX modifies a data set for smoothing
purposes.

Syntax

@MOVSUMX(COPYFORWARD | TRAILMISSING | TRAILSUM,


mbrName [,n[,rangelist]] )

COPYFORWARD Copies the member value into the new member until
the n value is reached, then it will begin summing the
value.

TRAILMISSING Sets the member value to #MISSING until the n value


is reached, then it will begin summing the value.

TRAILSUM Sums the trailing values, regardless of whether the n


value is reached or not. When the n value is reached,
Analytic Services begins summing just those values

mbrName Any valid single member name or member


combination, or a function that returns a single
member or member combination.

B-6 Hyperion
Fast Track for Designers New Features in Version 6.5.1
B
n (optional) A positive integer value that represents the number of
values that are used to calculate the moving
maximum. The default is 3.

rangeList (optional) A valid member name, a comma-delimited list of


member names, member set functions, and range
functions from the same dimension. If rangeList is not
specified, Analytic Services uses the level 0 members
from the dimension tagged as Time. @XRANGE is
also supported as a valid macro within rangeList.

System Administration
In respect to system administration, there have been significant additions
to the Essbase kernel and operating processes. The new features are as
follows:

Port statistics
Enhanced security file backup
ZLIB compression algorithm
Query Logging
Improved #MISSING handling with DATACOPY
Invalid block header identification and correction
Improved exception handling
Application memory manager

Port Statistics

You can enable Analytic Services to log, at a specified interval, the number
of ports being used. By analyzing the information in the log, you can
monitor port utilization and identify a need for more ports before end
users are unable to connect.

To check port use statistics and write those statistics to


the server log:

1) Edit the essbase.cfg to include the setting:

PORTUSAGELOGINTERVAL x

✍ The value of x represents the number of minutes between each


check of the number of ports in use. The value of x can be any
whole number from 1 - 60, with 5 the recommended minimum
and default value. Analytic Services ignores any portion of a
non-whole number.

Hyperion B-7
B New Features in Version 6.5.1 Fast Track for Designers

2) Restart the Essbase OLAP server.

3) View the log file.

Log file entries look similar to this:

[Mon Apr 22 00:48:50 2002]Local/ESSBASE0///


Info(1056214)
[3] ports in use, [10] ports allowed

Examples

PORTUSAGELOGINTERVAL 10

Analytic Services writes the port use statistics to the server log every
10 minutes.

PORTUSAGELOGINTERVAL

Analytic Services writes the port use statistics to the server log every
five minutes (the default value).

PORTUSAGELOGINTERVAL 6.75

Analytic Services ignores the non-whole portion of the number, and


writes the port use statistics to the server log every six minutes.

Enhanced Security File Backup

Analytic Services now compares the security backup file essbase.bak to


the security file essbase.sec at specified intervals instead of only when the
Essbase OLAP server starts.

Using Application Manager, you can change the frequency of these


comparisons. You can also use a new MaxL or ESSCMD command to
compare the security backup file essbase.bak to the security file
essbase.sec at any time. Analytic Services always updates the backup file if
it does not match the security file when the two files are compared,
regardless of which tool is used to trigger the comparison.

B-8 Hyperion
Fast Track for Designers New Features in Version 6.5.1
B

To set security file backup preferences:

1) From the Application Manager desktop, select Server / Settings.

The Check every


option controls how
often Analytic
Services compares
the .SEC and .BAK

2) In the Check every text box, enter a value for the time interval.

3) Click OK.

Review these facts before changing the interval value:

The same control manages how often the security backup file is
checked against the security file and how often user inactivity is
checked.
By default, the value is five minutes. Five minutes is the
recommended setting to ensure that the security backup file is
checked frequently enough to capture security changes. Five
minutes is also the recommended value for the inactivity check.
If you set the value to zero, the inactivity check is disabled and the
essbase.bak is compared to essbase.sec every five minutes (and, as
always, updated if necessary).
Enter a larger value if your security file does not need to be updated
frequently. Enter a smaller value if performance is not an issue.

Hyperion B-9
B New Features in Version 6.5.1 Fast Track for Designers

Manually Forcing a Backup

To compare the security backup file to the security file at any time, and
trigger an update if one is needed, use either of these methods:

ESSCMD UpdateBakFile command


MaxL alter system command
Even if you use MaxL or ESSCMD to request an update, the backup file is
updated only if a difference exists between the security file essbase.sec
and the security backup file essbase.bak.

✍ If the Essbase OLAP server stops running unexpectedly for any


reason, such as a freeze or crash, or as the result of terminating a
process, do not restart the Essbase OLAP server until you copy the
backup file essbase.bak to the security file essbase.sec. If you do not
perform the copy first, when the Essbase OLAP server starts,
Analytic Services notes that essbase.sec is corrupt, creates an empty
security file and copies it to essbase.bak, thus destroying the backup
of your security information.

ZLIB Compression Algorithm

In addition to the options provided in previous releases (RLE, bitmap


compression or no compression), Analytic Services now supports ZLIB
compression. This method is used in packages like PNG, Zip and Gzip.

Calculation and data loading is faster with direct I/O and ZLIB
compression than with buffered I/O and ZLIB compression. If data
storage is your greatest limiting factor, use ZLIB, but be aware that, under
some circumstances, data loads may be up to 10% slower than bitmap
compression. On the other hand, the size of the database is significantly
smaller when you use ZLIB as your compression technique.

Bitmap compression uses an algorithm that tracks which values are


missing, and does not interact with any other type of data. ZLIB
compression, in contrast, builds a data dictionary based on the actual data
being compressed. Therefore, ZLIB compression should provide greater
compression ratios over bitmap compression given extremely dense data.
However, because the effectiveness of the ZLIB algorithm is dependent (at
the bit level) on the actual data being compressed, general guidelines
about when ZLIB compression provides greater compression than bitmap
compression based solely on density are not available. Unlike other
compression methods, the storage space saved has little or no relationship
to the number of missing cells or the number of contiguous cells of equal
value. It is best to test with a representative sample of data.

B-10 Hyperion
Fast Track for Designers New Features in Version 6.5.1
B
To estimate the storage savings you may obtain with ZLIB, create a small
database with a small sampling of real data, change the compression
setting, restart the Essbase OLAP server, and note the difference in
storage.

You can also use the small sample database to estimate any changes in
calculation or data loading speed.

To set ZLIB compression:

1) From the Application Manager desktop, select Database / Settings.

2) Select the Storage tab.

3) From the Data Compression drop-down list, select ZLIB Compression.

4) Click OK.

Query Logging

Query logging provides a way for Analytic Services administrators to


track query patterns of an Analytic Services database. The query log file
tracks all queries performed against the database regardless of whether
the query originated from Spreadsheet Add-in or Report Writer. Query
logging can track members, generation or level numbers of members
belonging to specific generations or levels and Hybrid Analysis members.
Query logging also offers the flexibility to exclude logging of certain
dimensions and members belonging to generations or levels. Because the
query log file output is an XML document, you can import the log file to
any XML-enabled tool to view the log.

Hyperion B-11
B New Features in Version 6.5.1 Fast Track for Designers

To enable query logging you create a query configuration file (distinct


from the essbase.cfg file) and add to the file the configuration settings that
control how query logging is performed. You need to create a query log
configuration file for each database that requires query logging. If the
configuration file is missing or the QUERYLOG setting is OFF, query
logging is disabled.

Query Configuration File Syntax

The dbname.cfg file consists of the following syntax:

QUERYLOG [dimension_name]
QUERYLOG NONE GENERATION generation-range
QUERYLOG NONE LEVEL level-range
QUERYLOG GENERATION generation-range
QUERYLOG LEVEL level-range
QUERYLOG LOGHAMBRS ON | OFF
QUERYLOG LOGPATH path-expression
QUERYLOG LOGFORMAT CLUSTER | TUPLE
QUERYLOG LOGFILESIZE n
QUERYLOG TOTALLOGFILESIZE n
QUERYLOG ON | OFF

QUERYLOG Description
Parameter

[dimension_name] Identifies the dimension name to be tracked. The


brackets around the dimension name are required.
QUERYLOG [dimension_name] logs all members of a
dimension. For example, QUERYLOG [Product]
tracks all members of the Product dimension. Each
dimension must be specified in a separate
QUERYLOG [dimension_name] setting.
QUERYLOG [dimension_name] must precede all
settings that track Hybrid Analysis members and
members of generation and level ranges; otherwise,
Hybrid Analysis and generation and level settings are
ignored.

NONE GENERATION Prevents tracking of members from the specified


generation-range generation range. For example, QUERYLOG NONE
GENERATION 2 excludes tracking of all members
from generation 2 of the named dimension.

NONE LEVEL level- Prevents tracking of members from the specified level
range range. For example, QUERYLOG NONE LEVEL 0-2
excludes tracking of all members of levels 0, 1, and 2
of the named dimension.

B-12 Hyperion
Fast Track for Designers New Features in Version 6.5.1
B
GENERATION Tracks members of the specified generation range by
generation-range generation number, rather than by member name. For
example, QUERYLOG GENERATION 5-7 logs
members of generations 5, 6, and 7 of the named
dimension by their generation number in the log file.

LEVEL level-range Tracks members of the specified level range by level


number, rather than by member name. For example,
QUERYLOG LEVEL -3 logs members of levels 0, 1, 2,
and 3 of the named dimension by their level number in
the log file.

LOGHAMBRS ON | Tracks Hybrid Analysis members of the specified


OFF dimension. By default, the setting is OFF. The
QUERYLOG NONE, GENERATION, and LEVEL
parameters do not apply to Hybrid Analysis members
because Hybrid Analysis members are not actually
members in an Analytic Services outline. If
QUERYLOG LOGHAMBRS ON is set, the log output
is always displayed in CLUSTER format, regardless of
whether QUERYLOG LOGFORMAT TUPLE is set. If
QUERYLOG LOGHAMBRS ON is set, but the
database or dimension does not have any Hybrid
Analysis members, the setting is ignored.

LOGPATH path- Specifies the location of the output log file. The log file
expression name is dbname00001.qlg; for example,
basic00001.qlg. Examples of the log path are
QUERYLOG LOGPATH /usr/local/Essbaselogs/ and
QUERYLOG LOGPATH d:\Essbaselogs\querylogs\.
You must include a backslash \ (for Windows
directories) or forward slash / (for UNIX directories) at
the end of the path expression; otherwise, the query
log file is not created.
By default, the location for the log output file is the
ARBORPATH\App\appname\dbname\ directory. If the
LOGPATH path-expression setting is missing, the
default is used. Analytic Services writes log
information to the query log file after an application
stops running.

LOGFORMAT Specifies the format of the log output. CLUSTER and


CLUSTER | TUPLE TUPLE provide the same log information, but display
the information differently. CLUSTER provides
information on how many members of a dimension
were queried and lists queried members within their
respective dimensions. TUPLE lists each queried
member combination. By default, CLUSTER is the log
format. Because the TUPLE format lists each member
combination queried, TUPLE may have a greater
impact on query performance than CLUSTER.

Hyperion B-13
B New Features in Version 6.5.1 Fast Track for Designers

LOGFILESIZE n Specifies the maximum size of an individual query log


file in megabytes (MB). The minimum value is 1 MB.
The maximum value is 2048 MB (2 GB). If the
LOGFILESIZE setting is missing, then, by default, the
query log file size is 1 MB. If an initial query log file
size exceeds the specification, log information is
added to a new query log file. Each time a new file is
created, the filename is incremented by one.

TOTALLOGFILESIZE n Specifies the maximum size of all query log files


combined in megabytes (MB). The minimum value is
512 MB. The maximum value is 4095 MB. If the
TOTALLOGFILESIZE setting is missing, then, by
default, the total query log file size is 1024 MB (1 GB).
Query log files are created until the file size total
exceeds the specified maximum. When the maximum
is exceeded, a message is displayed and query
logging automatically turns off.

ON | OFF Specifies whether the query logging feature is turned


on or off. All query log settings are ignored if this
setting is OFF or missing. By default, the setting is
OFF.

Generation-range and level-range values are represented in one of the


following ways:

Generation-Range Description
or Level-Range
Value

x A specific generation or level number. For example,


QUERYLOG NONE GENERATION 2 excludes
generation 2 from query logging.

x-y All generations or levels inclusive of number x through


number y. For example, QUERYLOG GENERATION
1-3 or QUERYLOG LEVEL 1-3 includes generation or
level numbers 1, 2, and 3.

-x For generation-range, all generations within the range


1 through x. For level-range, all levels within the range
0 through x. For example, QUERYLOG
GENERATION -2 includes generations 1 and 2.
QUERYLOG LEVEL -3 includes levels 0, 1, 2, and 3.

x- For generation-range, all generations within the range


from number x through the highest generation. For
level-range, all levels within the range from number x
through the highest level. For example, QUERYLOG
Level 1- includes levels 1, 2, 3 and so on up to the
highest level.

B-14 Hyperion
Fast Track for Designers New Features in Version 6.5.1
B
Notes

When query logging is enabled, queries to the database may be


slower. Performance depends on how many members are being
tracked and the size of the query.
If the configuration file name does not match the name of the
database or the configuration file is located in a place other than the
ARBORPATH\App\appname\dbname directory, Analytic Services
ignores query logging.
You can place QUERYLOG settings in any order in the configuration
file, but QUERYLOG [dimension_name] must precede any settings
that specify Hybrid Analysis members or any setting that specify
members by generation or level.
If, in the configuration file, QUERYLOG ON is missing or if
QUERYLOG OFF is set, query logging is disabled.
If generation and level settings cause contradictions in the
configuration file, the following precedence rules apply:
• generation numbers (highest priority)
• level numbers
• member names (lowest priority)
• For example, if a member belongs to both level 1 and
generation 2 and the settings QUERYLOG GENERATION 2
and QUERYLOG NONE LEVEL 1 are in the configuration
file, the generation setting takes precedence, and members of
generation 2 are logged by generation number.

To enable query logging:

1) In the ARBORPATH\App\appname\dbname directory, create a


query log configuration file using the naming syntax: dbname.cfg.

✍ For example, the Bigcorp Sales database query log file is


named Sales.cfg. The names are not case sensitive.

2) In the configuration file, specify required and optional elements.

3) Restart the database to accept the configuration settings. Restart after


creating a file or changing any entries in a file.

4) After query logging is enabled, review the log entries in the query log
file, dbname.qlg. For example, you can view the output of the log file
to analyze how many times a certain member has been queried.

Hyperion B-15
B New Features in Version 6.5.1 Fast Track for Designers

Sample Query Log Configuration File

# indicates a comment that describes a line of the configuration file.


Comments are not necessary to include in the actual query log
configuration file.

# Log the Product dimension


QUERYLOG [Product]
# Log Hybrid Analysis members of Product, if applicable
QUERYLOG LOGHAMBRS ON
# Log the Market dimension
QUERYLOG [Market]
# Log members of generation 2 of Market by generation number
QUERYLOG GENERATION 2
# Display log output in cluster format
QUERYLOG LOGFORMAT CLUSTER
# Create log file in C:\QUERYLOG\
QUERYLOG LOGPATH C:\QUERYLOG\
# Start a new log file after an individual log file size
reaches 2 MB
QUERYLOG LOGFILESIZE 2
# Turn off query logging after the total size of all log
files reaches 1024 MB (1 GB)
QUERYLOG TOTALLOGFILESIZE 1024
# Enable query logging
QUERYLOG ON

Sample Query Log Output

The following segment shows an example of how log settings look in a log
file. In the example, the log settings show that all members of Product are
logged and that members of generation 2 of Market are logged by
generation number. The log format is cluster and the log path is
C:\QUERYLOG\.

<?xml version="1.0" encoding="UTF-8" ?>


- <root>
- <session>
<bootuptime>Wed Jul 23 15:27:26 2002</bootuptime>
- <logsettings>
- <dimensions>
- <logdim name="Product">
- <logdim name="Market">
<spec>GENERATION 2</spec>
</logdim>
</dimensions>
- <othersettings>
<logformat>cluster</logformat>
<logpath>C:\QUERYLOG\</logpath>
</othersettings>
</logsettings>

B-16 Hyperion
Fast Track for Designers New Features in Version 6.5.1
B
Subqueries

A query is a unit of retrieval from the user perspective. The way a user
may perceive a query is different than how the server analyzes and
executes a query. Even if a user performs a single retrieval, in order for the
server to efficiently execute the logical query, the server splits the query
into a number of subqueries to execute. Therefore, a single retrieval from
the user perspective may actually consist of several subqueries from the
server perspective. These subqueries are reflected in the query log.

Sample Cluster Output

The following segment shows an example of how queries are logged in


cluster format. The username is listed along with the query execution date
and the start time of the query. Each cluster contains two dimension
entries. The first cluster shows that members 100 and 200 of the Product
dimension were queried. The second cluster shows that member 300 of
Product and Generation 2 of Market were queried. The elapsed time to
perform the query is also provided.

<query>
<user>User1</user>
<time>Tue Aug 13 12:29:49 2002</time>
<subquery>
<cluster size="2">
<dim size="2">
<member>100</member>
<member>200</member>
</dim>
<dim size="1">
<member>Market</member>
</dim>
</cluster>
</subquery>
<subquery>
<cluster size="2">
<dim size="1">
<member>300</member>
</dim>
<dim size="2">
<member>Market</member>
<generation>2</generation>
</dim>
</cluster>
</subquery>
<elapsedtime>0.016 seconds</elapsedtime>
</query>

Hyperion B-17
B New Features in Version 6.5.1 Fast Track for Designers

Sample Tuple Output

The following segment shows an example of how queries are logged in


tuple format. The username is listed along with the query execution date
and the start time of the query. Note that each member of Product is
displayed with Market. Each possible member combination is displayed
for a given query. The elapsed time to perform the query is also provided.

<query>
<user>User1</user>
<time>Tue Aug 13 12:28:14 2002</time>
<subquery>
<tuples>
<tuple>
<member>100</member>
<member>Market</member>
</tuple>
</tuples>
</subquery>
<subquery>
<tuples>
<tuple>
<member>200</member>
<member>Market</member>
</tuple>
</tuples>
</subquery>
<elapsedtime>0.02 seconds</elapsedtime>
</query>

Improved #MISSING Handling with DATACOPY

In previous Analytic Services releases, using DATACOPY on a dense


dimension can create blocks populated with #MISSING. This is done
deliberately in some instances, because most Analytic Services batch
calculations operate only on existing data blocks. Therefore, DATACOPY
is also used to ensure that Analytic Services creates all necessary data
blocks prior to batch calculation.

But if the creation of #MISSING blocks is not required, you may want to
avoid the increase in size of the index and page files, and the possibly
slower performance that results. For example, a default calculation visits
every #MISSING block.

To support that goal, Analytic Services now provides a SET


COPYMISSINGBLOCK command that allows DATACOPY to avoid
creating #MISSING blocks during the copy of data from a dense
dimension.

B-18 Hyperion
Fast Track for Designers New Features in Version 6.5.1
B
Syntax

SET COPYMISSINGBLOCK ON | OFF

DATACOPY...

The default behavior is for the #MISSING blocks to be created (SET


COPYMISSINGBLOCKS ON), to provide backward compatibility.

Notes

The enhanced DATACOPY command prevents new #MISSING


blocks from being created when a DATACOPY (partial block copy)
on a dense dimension is requested. It does not remove existing
#MISSING blocks.
A message is added to the server log to indicate the number of data
blocks being copied from the source data blocks. The number of
#MISSING blocks skipped, if any, is also reported in the server log.

Example

[Fri May 31 10:35:03 2002]Local/Test6/Test6/essexer/


Info(1012574)
Datacopy command copied [1] source data blocks to [0] target
data blocks
[Fri May 31 10:35:03 2002]Local/Test6/Test6/essexer/
Info(1012576)
Datacopy command skipped creating [1] target data blocks
with CopyMissingBlock OFF

Invalid Block Header Identification and Correction

Analytic Services helps you assess the severity of Invalid Block Header
(IBH) errors and provides tools to repair the corruption indicated by the
presence of some IBHs.

There are two types of IBH errors that can be corrected:

Type mismatch, where the Analytic Services version number in a


data block does not match the version number in the index entry.
Type mismatch is often due to a corrupted data block header, a
corrupted index entry or the attempted migration of an unsupported
version.
Block key mismatch, where the block key does not match in
locations where it should. Block key mismatches usually indicates a
corrupted data block header or a corrupted index entry.

Hyperion B-19
B New Features in Version 6.5.1 Fast Track for Designers

Finding IBH Errors

You must set the server configuration setting IBHFIXTHRESHOLD in


essbase.cfg and restart the Essbase OLAP server before you can find and
fix IBH problems. The IBHFIXTHRESHOLD setting controls how many
IBH messages are returned to the client or server log, relative to the
number of level 0 blocks written to disk. After the threshold is reached, no
corrective action can be performed, and a message is sent to the client
suggesting that the database be rebuilt.

Syntax

IBHFIXTHRESHOLD [appName | xxxx] [dbName | xxxx] percentage

appName and dbName These are optional, but be sure to specify an


application name if you specify a database name.
You can substitute xxxx for either appName or
dbName, or both. xxxx is a wildcard for the
application name and database name

percentage The value of the percentage of IBHs reported


relative to the number of level 0 blocks on disk.
Once a database reaches the threshold, Analytic
Services sends a message to the client requesting
that the user rebuild the database, and shuts down.
Valid values are whole numbers 0 through 100.

If messages are written to the client or server log indicating the presence of
IBH errors, but the threshold that requires the database be rebuilt is not
reached, you can either rebuild the database or you can find and fix the
errors.

Fixing IBH Errors

You correct IH errors using the MaxL command alter database. for
example:

alter database [dbName] validate data to [filename]

✍ The file name is the name of the client or server log file.

If Analytic Services runs in uncommitted mode when it receives an IBH


error message, the current transaction may stop without any rollback,
meaning that some data may have changed. Be sure to verify that all
transactions that you expected to finish have finished. If not, you may
need to clean up the data or rebuild the database.

B-20 Hyperion
Fast Track for Designers New Features in Version 6.5.1
B
Operating System Errors

Analytic Services cannot fix IBH issues that result from hardware or disk
controller problems, including physical disk issues, that prevent Analytic
Services from reading any of the persistent files such as the page file,
index file or the transactions file. If your log contains entries similar to
those below, you must rebuild the database to recover.

OK/INFO - 1006016 - Invalid block header: Illegal block type.


OK/INFO - 1006046 - A read from file [D:/
ESSBASE\APP\Migr500\Basic\ess00001.pag], to address
[0x05f71458] with handle [6] from offset [1081683835] for [992] bytes,
failed with error [13] and O/S return code [23] after [-1] bytes.
OK/INFO - 1070121 - Current size of file
[D:/ESSBASE\APP\Migr500\Basic\ess00001.pag] is [2147475435]
bytes.
OK/INFO - 1006050 - For transaction [Basic], the [3088] byte Input
Transfer Buffer is at address [0x05f71458] and the [3088] byte Output
Transfer Buffer is at address [0x026bf2b0].
ERROR - 1006004 - Unable to Read Information From Page File.
ERROR - 1241101 - Unexpected Essbase error 1006004.

In the example log output above, Analytic Services issued a read request
at an offset of 1081683835 which is a valid offset based on the size of the
page file. The request is to read 992 bytes starting from that offset.
However, hardware problems cause the read request to fail, and the OS
return code for failure is returned (13 in this example). In this situation,
Analytic Services is unable to continue reading the page file, and the IBH
diagnosis operation stalls.

Application Memory Manager

Analytic Services enables memory management by providing controls on


the maximum amount of memory an application can use. Analytic
Services also writes messages to an application log as soon as the
application's memory use exceeds 90% of the limit that you set. After the
limit is met 100%, Analytic Services stops the application.

Hyperion B-21
B New Features in Version 6.5.1 Fast Track for Designers

Memory Configuration File

The memory configuration file can control all applications on a server or a


single application:

To control all applications on a server, name the file config.mem.


To control a single application, name the memory configuration file
config.mem.appNam.

Because Analytic Services looks for the relevant application-specific


memory configuration file before it looks for the server-wide file during
application start-up, you can create one generic file (config.mem) to
configure all the applications, and also create individual application
memory configuration files (config.mem.appName) for applications that
need different maximum memory settings.

Make sure the file is located in the ARBORPATH/bin directory. Add the
MEMORYLIMIT configuration setting to the configuration file, using this
syntax:

MEMORYLIMIT n G | M

n is a whole number, the number of gigabytes or megabytes. Use G or M


to indicate gigabytes or megabytes. This table contains recommended
values:

Operating System Recommended memory limit

Windows NT 2G
Windows 2000
without the 4 GB
RAM option

Windows 2000 with 3G


the 4 GB RAM option

Solaris 3G

HPUX 1741 M

AIX 2G

Use these recommended values or, if lower, the amount of physical


memory plus swap space available. For example, if a computer has only 2
GB of combined physical memory and swap space, and other applications
on that computer require 1 GB, then the value of MEMORYLIMIT should
be no more than 1 GB.

B-22 Hyperion
Fast Track for Designers New Features in Version 6.5.1
B

To enable Analytic Services to manage application


memory use:

1) Create a new memory configuration file, or edit an existing memory


configuration file.

2) Save the memory configuration file in the ARBORPATH/bin


directory.

3) Start the application.

✍ You must restart an application after you change its memory


configuration file, because the application reads the memory
configuration file only once, during start up.

4) Monitor the log.

When 90% of the value in the configuration file is reached, Analytic


Services writes this warning message to the application log:

Application is using [n] bytes of memory. It is more than 90


percent of the limit set in the memory config file.

If the application uses 100% of the memory as limited by the Memory


Configuration file, Analytic Services writes this error message to the
application log and stops the application:

Application is using [n] bytes of memory, and is requesting a


new memory block of [n] bytes. The memory has exceeded the
limit.

When the 90% warning messages appear in the log, the database
administrator may wish to take corrective action:

Increase the memory limit in the relevant memory configuration file


and restart the application if more memory is available.
Examine cache sizes and reduce the size if possible.
If neither of these actions is possible or resolves the memory
problem, work loads or applications may require additional
adjustments or tuning.

Hyperion B-23
B New Features in Version 6.5.1 Fast Track for Designers

Notes

You can set MEMORYLIMIT to any whole number value, thus you
can adjust Analytic Services to write a message to the application log
after 90% of any particular memory value has been exceeded. For
example, if you want a message written to the log after 1 GB of
memory is exceeded, set MEMORYLIMIT to 1 G, and warnings are
written once the application exceeds 90% of 1 GB.
Analytic Services builds a cache of 48 MB on startup to handle
allocations up to 64 KB each. If you notice a rise in memory
requirements from releases prior to 6.5.1, this change in cache
allocation may be the cause. The maximum size of this internal cache
is 128 MB.

MaxL Features
Many MaxL commands have been upgraded to support increased
functionality in system administration options. This table summarizes
changes to individual MaxL commands:

Command Keyword Function

alter system sync security_backup Checks whether the security backup


file is the same as the security file,
and if not, synchronize the security
backup file to the current state of
Analytic Services security.

alter system set session_idle_poll Set the time interval for inactivity
checking and security-backup
refreshing. The time interval specified
in the session idle poll tells Analytic
Services both of the following:
• How often to check whether user
sessions have passed the
allowed inactivity interval
indicated by session_idle_limit in
the alter system statement.
• How often to refresh the security
backup file. If session_idle_poll is
set to zero, the security backup
file is still refreshed every five
minutes.

B-24 Hyperion
Fast Track for Designers New Features in Version 6.5.1
B
Command Keyword Function

alter system delete export_directory Delete directories created for linked-


reporting objects exported from a
database to a directory created in
$ARBORPATH\app. Use this
grammar after the exported LROs
have already been migrated into a
database using import LRO, and the
directories containing the exported
LRO information are no longer
needed.

alter set compression zlib Sets the database to use ZLIB


database compression.

alter reset data | all Previous database reset functionality


database cleared all data from the database
(reset all).
Now you can optionally clear the
database of data and metadata
(index files, page files, and outline)
and preserve any partition definitions,
calculation scripts, load rules, and
other associated database objects
that you want to keep (reset data).

alter repair Deletes all blocks that have invalid


database invalid_block_headers headers.

refresh Multiple keywords Synchronize the outlines between


outline partitioned databases. Use this in the
event that one outline has undergone
changes to dimensions, members, or
member properties, and you wish to
propagate those changes to the
partitioned database.

display Multiple keywords You can display partition information


partition in the following ways using display
partition.
• all - Display all partitions defined
on the system.
• on database - Display all
partitions associated with the
specified database.
• advanced - Display full
information including areas and
member mappings for local and
remote pieces of partitions.

Hyperion B-25
B New Features in Version 6.5.1 Fast Track for Designers

B-26 Hyperion
Glossary

! See bang character.

#MISSING See missing data.

accounts dimension A dimension type that makes accounting intelligence available. You can tag
only one dimension as accounts; you do not have to have an accounts
dimension.
administrator An individual who installs and maintains the Analytic Services system
including setting up user accounts and security. See also database
administrator, system administrator.

Advanced An option in the Spreadsheet Add-in that you use to define a layout through
Interpretation mode drill through or the Query Designer or by typing data into the sheet. When
you construct a free-form report in Advanced Interpretation mode, Analytic
Services interprets the member names and creates a default view that is
based on the location of the labels.

agent A process on the server that starts and stops applications and databases,
manages connections from users and handles user-access security.
Referred to as ESSBASE.EXE.

agent log file A record of actions performed by the agent (server).

aggregate See consolidate.

alias An alternative name for a dimension, member or description.

alias table A database table that stores aliases for the dimensions or members.

alternate name See alias.

ancestor A branch member that has members below it. For example, in a dimension
that includes years, quarters and months, the members Qtr2 and 2001 are
ancestors of the member April.
AND/OR A logical expression used in calculations or report scripts to identify a subset
of members.

application A management structure containing one or more Analytic Services


databases and the related files that control many system variables, such as
memory allocation and autoload parameters.

application designer An individual who designs, creates and maintains Analytic Services
applications and databases.

application log file A record of user actions performed on an application.

Application Manager Analytic Services software that you use to create and maintain Essbase
applications.
Glossary Fast Track for Designers
G
Application (API) A library of functions that you can use in a custom C or Visual Basic
Programming program to access the Essbase OLAP server.
Interface

Application Server The main server process (ESSSVR) that runs when an application starts.

ARBORPATH An environment variable that specifies the Analytic Services root directory.
area A predefined set of members and values that makes up a partition.

arithmetic data load A data load that performs operations on values in the database, such as
adding 10 to each value.

asymmetric report A report characterized by groups of members that differ by at least one
member across the groups. There can be a difference in the number of
members or the names of members under each heading in the report. For
example, a report based on Sample Basic can have three members grouped
under “East” and two members grouped under “West.”

attribute reporting A process of defining reports that is based on the attributes of the base
members in the database outline.
bang character (!) A character that terminates a series of report commands and requests
information from the database. A report script must be terminated with a
bang character; several bang characters may be used within a report script.

batch file An operating system file that can call multiple ESSCMD scripts and run
multiple sessions of ESSCMD. Batch files handle batch data loads and
complex calculations and can include commands that run report scripts. You
can run a batch file on the server from the operating system prompt. On
Windows-based systems, batch files have .BAT file extensions. On UNIX, a
batch file is written as a shell script.

batch processing A method of using ESSCMD to write a batch or script file that can be used to
mode automate routine server maintenance and diagnostic tasks. ESSCMD script
files can execute multiple commands and can be run from the operating
system command line or from within operating system batch files. Batch files
can be used to call multiple ESSCMD scripts or run multiple instances of
ESSCMD.
block The primary storage unit within Analytic Services. A data block is a
multidimensional array representing the cells of all dense dimensions.

bottom-up A calculation that is performed from the bottom member of an outline to the
top member of the outline. Also, data that is copied or moved from a
departmental/organizational cube to a consolidated model.

build method A method used to modify database outlines. You select a build method
based on the format of data in data source files.

calc script See calculation script.

calculation The process of aggregating or of running a calc script on a database.

calculation script A text file containing a set of instructions telling Analytic Services how to
calculate a database.
cascade The process of creating multiple reports for a subset of member values.

G-2 Hyperion
Fast Track for Designers Glossary
G
cell A unit of data representing the intersection of dimensions in a
multidimensional database; the intersection of a row and a column in a
worksheet.

cell note A text annotation of up to 599 characters for a cell in an Analytic Services
database. Cell notes are a type of linked reporting object.

change log See outline change log.


child A member that has a parent above it in the database outline. A child may
have peers (siblings) that exist at the same layer of the database outline.

clean block A data block is marked as clean if the database is fully calculated, if a calc
script calculates all dimensions at once or if the SET
CLEARUPDATESTATUS command is used in a calc script.

client A client interface, such as the Spreadsheet Add-in software, a custom API
program or the Application Manager. A client is also a workstation that is
connected to a server through a local area network.

client log file A record of all messages, actions and errors that are generated by a client.
column A vertical list of fields.

column heading A part of a report that lists members across a page. When you define
columns that report on data from more than one dimension, you produce
nested column headings. A member that is listed in a column heading is an
attribute of all data values in its column.

committed access An Essbase kernel Isolation Level setting that affects how Analytic Services
handles transactions. Under committed access, concurrent transactions hold
long-term write locks and yield predictable results.
consolidate The process of gathering data from dependent entities and aggregating the
data up to parent entities. After you enter or load data into dependent child
entities, you perform a consolidation to aggregate the data through the
organization. As data consolidates, intercompany processing, conversion
methods, equity adjustments and minority ownerships perform calculations
on the data. For example, if the dimension Year consists of the members
Qtr1, Qtr2, Qtr3 and Qtr4, its consolidation is Year. The terms aggregate and
roll-up also describe the consolidation process.

currency conversion A factor that converts currency values in an Essbase database from one
country’s currency into another’s, optionally without altering the original data.

currency partition A dimension type that separates local currency members for a base currency
defined in your application. Also identifies currency types such as Actual,
Budget and Forecast.

data block See block.

data cache A buffer in memory that holds uncompressed data blocks.

data cell See cell.

data file A file containing data blocks; Analytic Services generates the data file during
a data load and stores it on disk.

Hyperion G-3
Glossary Fast Track for Designers
G
data load The process of populating an Analytic Services database with data. Loading
data establishes actual values for the cells defined by the structural outline of
the database.

data load rules A set of criteria or rules that Analytic Services uses to determine how to load
data from a text-based file or a relational data set into an Analytic Services
database.

data point See cell.

data source External data, such as a text file, spreadsheet file or SQL database, that is
loaded into an Essbase database.

data value See cell.

database A repository of data within Analytic Services that contains a multidimensional


data storage array. Each database consists of a storage structure definition
(a database outline), data, security definitions and optional calculation
scripts, report scripts and data loading scripts. An application contains one or
more databases.

database An individual who administers database servers, such as Analytic Services,


administrator and who may also design, maintain and create databases.
database designer In Analytic Services, the highest type of access that can be assigned globally
(per database). This type of access allows complete calculate and update
access and the ability to run report and calc scripts.

database filter layer A layer in the Analytic Services security plan that defines specific settings for
database members down to the cell level.

DB Designer See Database Designer.

dense dimension A dimension with a high probability that data exists for every combination of
dimension members.

descendant Any member below a parent in the database outline. For example, in a
dimension that includes years, quarters and months, the members Qtr2 and
April are descendants of the member Year.

detail member See leaf member.


dimension A data category. The Sample Basic database includes such dimensions as
Time, Accounts, Product or Market. In an Essbase database outline, the
dimensions represent the highest consolidation level.

dimension build rules Specifications, similar to data load rules, that Analytic Services uses to
modify an outline. The modification is based on data in an external data
source file.

dimension member See dimension.

dirty block A data block containing cells that have been changed since the last
calculation. Upper level blocks are marked as dirty if their child blocks are
dirty (that is, have been updated).

G-4 Hyperion
Fast Track for Designers Glossary
G
disabled user name A user name that has become inactive, meaning that the user is not able to
log on to the server. Users with supervisor privilege can disable a user name
for any reason. User names are disabled automatically if they exceed server-
specific limitations on login attempts or number of inactive days.Only users
with supervisor privilege can enable disabled user names.

drill down see zoom.

dynamic A method of retrieving metadata and data at the moment of retrieval.

Dynamic Calc And Members that Essbase calculates when you first retrieve the values.
Store members Essbase then stores these values in the database. Subsequent retrievals of
Dynamic Calc And Store members do not require calculating.

Dynamic Calc A member that the Essbase OLAP server calculates only at retrieval time.
members The server discards calculated values after the retrieval request is complete.

Dynamic Calc A member that the Essbase OLAP server calculates only at retrieval time.
members The server discards calculated values after the retrieval request is complete.

dynamic calculation In Analytic Services, a calculation that occurs only when you retrieve data on
a member that has been tagged as Dynamic Calc or Dynamic Calc And
Store. The member’s values are calculated at retrieval time instead of being
precalculated during batch calculation.
dynamic calculation In Analytic Services, a calculation that occurs only when you retrieve data on
a member that has been tagged as Dynamic Calc or Dynamic Calc And
Store. The member’s values are calculated at retrieval time instead of being
precalculated during batch calculation.

dynamic reference A pointer in the rules file to header records in a data source. Header records
define data load or dimension build criteria for the fields in a data source.

Dynamic Time Series A process that is used to perform dynamic period-to-date reporting.
Dynamic Time Series Predefined members that are used to perform Dynamic Time Series
members reporting.

EssCell The Analytic Services cell retrieve function. An EssCell function is entered
into a cell in the Spreadsheet Add-in to retrieve a single database value that
represents an intersection of specific database members.

ESSCMD A command-line interface that is used to perform server operations


interactively or through a batch file.

ESSCMD script file A text file that contains ESSCMD commands, which Analytic Services
executes in order to the end of the file. You can run a script file from the
operating system command line or from within an operating system batch
file. The default extension is .SCR.

extraction command A type of reporting command that handles the selection, orientation,
grouping and ordering of raw data extracted from a database. These
commands begin with the less than (<) character.

field A value or item in a data source file that is loaded into an Analytic Services
database.

Hyperion G-5
Glossary Fast Track for Designers
G
file delimiter One or more characters, such as commas or tabs, that separate fields in a
data source.

filter A method for controlling access to database cells in Essbase. A filter is the
most detailed level of security, allowing you to define varying access levels
different users can have to individual database values.

FlashBack A Spreadsheet Add-in command that restores the previous database view.
This command is similar to a typical Undo command.
formatting command A type of Report Writer command that allows for customizing the report
format and appearance, the creation of new columns and calculation of
columns and rows. These commands are generally contained within curly
brace “{ }” characters, although some begin with the “<” character.

formula A combination of operators and functions as well as dimension names,


member names and numeric constants. Formulas are used to perform
specific calculations on members of a database.

formula preservation See preserve formulas.

free-form data loading A method of loading data into the database. Free-form data loading is used
when the data source contains enough information to load the data source
directly into the database. For example, use free-form data loading when the
data is in the natural order used by Essbase, when the dimension, member
or alias names are required and when the data is read according to the
member names Essbase finds.

Free-Form mode An option in the Spreadsheet Add-in that you use to type report script
commands in the worksheet to create reports.

free-form reporting A method of creating reports in which you type members of dimensions or
report script commands in a worksheet. Free-form reporting is available in
both Advanced Interpretation mode and Free-Form mode.

function A predefined routine that returns a value, a range of values, a Boolean value
or a list of database members. The system provides the following categories
of functions: mathematical, relationship, financial, member set, Boolean,
statistical, forecasting, allocation and date-time.

generation A layer in a hierarchical tree structure that defines member relationships in


an Analytic Services database. Analytic Services orders generations
incrementally from the dimension (generation 1) down to the leaf members.

generation name A unique name that describes a generation.

global access layer A layer in the Analytic Services security system that is used to define
common access settings for applications and databases.

global report A command that is executed when it occurs in the report script file and that
command stays in effect until the end of the report file or until another global command
replaces it.

header record One or more records at the top of a data source that describe the contents.

hierarchy A set of multidimensional relationships in an outline, often created in a tree


formation. For example, parents, children and generations represent a
hierarchy.

G-6 Hyperion
Fast Track for Designers Glossary
G
index A method that Analytic Services uses to retrieve data. The retrieval is based
on the combinations of sparse dimensions. The term index also refers to the
index file.

index cache A buffer in memory that holds index pages.

index entry A pointer to an intersection of sparse dimensions. Each index entry points to
a data block on disk and locates a particular cell within the block by means of
an offset.

index file A file that Analytic Services uses to store data retrieval information. It resides
on disk and contains index pages.

index page A subdivision of an index file containing entries that point to data blocks.

input block A type of data block that has at least one loaded data value.

input data Any data that is loaded from a data source and is not generated by
calculating the database.

intelligent calculation A calculation method that tracks which data blocks have been updated since
the last calculation.

interactive mode A method of using ESSCMD by entering commands in the ESSCMD window
and responding to prompts if necessary. For routine server administration
tasks or for complex tasks that require many commands, consider using
batch processing mode.

interdimensional A situation in which a specific dimension does not intersect with other
irrelevance dimensions. The data is not irrelevant, but because the data in the specific
dimension cannot be accessed from the other dimensions, those other
dimensions are not relevant to the specific dimension.

isolation level An Essbase kernel setting that determines the lock and commit behavior of
database operations. Choices are committed access and uncommitted
access.

jump point The point at which you can drill across from a data value in one database to
a corresponding location in another database.

Keep Only An Essbase Spreadsheet Add-in command that retains only the rows that
are highlighted within a spreadsheet.
latest A key word that is used within the Spreadsheet Add-in or within Report
Writer to extract data values based on the member defined as the latest
period of time.

leaf member A member that has no children.

leaf node See leaf member.


level A branch within a dimension. The levels are numbered incrementally from
the leaf member (level 0) towards the root.

level 0 block A data block that is created for sparse member combinations when all of the
members of the sparse combination are level 0 members.

level 0 member See leaf member.

Hyperion G-7
Glossary Fast Track for Designers
G
level name A unique name that describes a level.

linked A connection or jump point from one cell to a cell in another database, a cell
note, URL or a separate file.

linked object A term that encompasses linked partitions and linked reporting objects.

linked partition A form of shared partition that provides the ability to use a data cell to link
together two different databases. When a user clicks on a linked cell in a
worksheet, for example, Analytic Services opens a new sheet displaying the
dimensions in the second database. The user can then drill down into the
available dimensions in the second database.

linked reporting (LRO) An external file that is linked to a data cell in an Analytic Services
object database. Linked reporting objects (LROs) can be cell notes or files that
contain text, audio, video or pictures.

load data See data load.

lock A method to prevent two people from simultaneously altering the same set of
data. The Essbase Storage Manager handles data block locking. When
creating partitions, you can also place a lock on the partition definition file to
prevent other users from editing its contents while you are working.

log file A system maintained file that records actions and commands. For example,
an application log file records user actions that are performed on that
application; a client log file records client messages, actions and errors.

mathematical See unary operators.


operators

MDDB A multidimensional database.

member A discrete component within a dimension. For example, a time dimension


might include members such as Jan, Feb and Qtr1.

member select A feature within the Spreadsheet Add-in that you use to specify members for
a report.

member selection A type of Report Writer command that selects ranges of members based on
report command database outline relationships, such as sibling, generation and level.

member-specific A type of Report Writer formatting command that is executed as it is


report command encountered in a report script. The command affects only the member to
which it is associated and executes the format command before it processes
the member.

metadata The data that describes the structure and/or data values within a database
(for example, dimensions and member names).

Minimum Database An option group that controls the default security to all of an application’s
Access databases, using access settings (such as Read or None) that are applied
globally to the application. All users connecting to databases within the
application have the access level defined as minimum database access;
however, individual user privileges may be higher.

G-8 Hyperion
Fast Track for Designers Glossary
G
missing data (#MISSING) A marker indicating that data in the labeled location does not
exist, contains no meaningful value or was never entered or loaded. For
example, missing data exists when an account contains data for a previous
or a future period but not for the current period.

multidimensional (MDDB) A method of referencing data through three or more dimensions. An


database individual record is the intersection of a point for a set of dimensions.
Contrast with relational database.

multithreading A client-server process that enables multiple users to work on the same
applications without interfering with each other.
Named Pipes A network protocol stack that enables Analytic Services clients on Windows
95/98 to communicate with Essbase OLAP servers on Windows NT, when
both operating systems use NetBEUI instead of TCP/IP.

Navigate Without Data A Spreadsheet Add-in option that you use to turn off data retrieval. This
feature is most useful when a database has Dynamic Calc and Dynamic
Calc And Store members.

nested column A column heading for a report column that displays data from more than one
headings dimension. For example, in the Sample Basic database, a column heading
that contains both Year and Scenario members is a nested column. This is
scripted as: <COLUMN (Year, Scenario). The nested column heading shows
Q1 (from the Year dimension) in the top line of the heading, qualified by
Actual and Budget (from the Scenario dimension) in the bottom line of the
heading.

object A file that is related to an application or database. Objects can be outlines,


rules files, calc scripts, report scripts or data sources. They are stored within
the application or database subdirectory on the server or client machine.
online analytical (OLAP) A multidimensional, multi-user, client-server computing environment
processing for users who need to analyze consolidated enterprise data in real time.
OLAP systems feature drilling down, data pivoting, complex calculations,
trend analyses and modeling.

operator See unary operator.

outline change log A record of changes made to an Analytic Services database outline.
page file See data file.

page heading A type of report heading that lists members that are represented on the
current page axis of the report. All data values on the page axis have the
members in the page heading as a common attribute.

paging A storage scheme that makes use of spare disk space by increasing the
available memory.

parent A member that has an aggregated branch below it.

Hyperion G-9
Glossary Fast Track for Designers
G
partition area A subcube within a database. A partition is composed of one or more areas.
These areas are composed of cells from a particular portion of the database.
For replicated and transparent partitions, the number of cells within an area
must be the same for both the data source and the data target to ensure that
the two partitions have the same shape. If the data source area contains 18
cells, the data target area must also contain 18 cells to accommodate the
number of values.

Partition Manager An Analytic Services tool that you use to create and maintain a replicated,
linked or transparent database partition. Partition Manager includes Partition
Wizard, a component that contains a series of pages that step you through
the partition creation process.

partitioning The process of defining areas of data that are shared or linked between data
models. Partitioning can affect the performance and scalability of Analytic
Services applications.

Password A group of options in the server settings that you use to limit a user’s allowed
Management number of login attempts, number of days of inactivity and number of days
using the same password.

pattern matching The ability to match a value with any or all characters of an item that is
entered as a criterion. A missing character may be represented by a wild
card value such as a question mark (?) or an asterisk (*). For example, find
all instances of apple returns apple, but find all instances of apple* returns
apple, applesauce, applecranberry and so on.

peers See siblings.

period A specific key term used to define a Dynamic Time Series member that
identifies a special period of time (for example, semi-annual).

pivot The ability to alter the perspective of retrieved data. When Analytic Services
first retrieves a dimension, it expands data into rows. You can then pivot or
rearrange the data to obtain a different viewpoint.

precalculation The process of calculating the database prior to user retrieval.

preserve formulas The process of keeping user-created formulas within a worksheet while
retrieving new data.

record A row of fields that is read as a unit from a data source.

redundant data Duplicate data blocks that Analytic Services retains during transactions until
Analytic Services commits the updated blocks.

Remove Only A Spreadsheet Add-in command that you use to remove only the highlighted
cells within a worksheet.
replicated partition A portion of a database, defined through Partition Manager, that you use to
propagate as update to data that is mastered at one site to a copy of data
that is stored at another site. Users are able to access the data as though it
were part of their local database.

report The formatted summary information that is returned from a database after a
report script is run. One or more reports can be generated from a report
script.

G-10 Hyperion
Fast Track for Designers Glossary
G
Report Editor An ASCII text editor that you use to write report scripts. The Report Editor
features a text editing window and customized menus. Saved report scripts
have the file name extension *.REP.

Report Extractor An Analytic Services component that retrieves report data from the Analytic
Services database when you run a report script.

report script An ASCII file containing the Report Writer commands that generate one or
more production reports. Report scripts can be run in batch mode, through
the ESSCMD command-line interface or through the Application Manager.
The report script is a text file that contains data retrieval, formatting and
output instructions.
Report Viewer An Analytic Services component that displays the complete report after a
report script is run. Saved reports typically have the file extension .RPT.

restore An operation to reload data and/or structural information after a database


has been damaged or destroyed. Typically performed after you shut down
and restart the database.

restructure An operation to regenerate or rebuild the database index and, in some


cases, the data files.

roll-up See consolidate.

root member The highest member in a branch. Contrast with leaf member.

row heading A report heading that lists members down a report page. The members are
listed under their respective row names.

rules Loading data and building outlines

server A multi-user computer that accesses data values based on the intersection
of dimension members.

server application See server.

server interruption Any occurrence that stops the server, including a crash, a power outage or a
user pressing the Ctrl+C keys.

shared member A member that shares storage space with another member of the same
name. The shared member has a property that designates it as shared. The
use of shared members prevents duplicate calculation of members that
appear more than once in an Analytic Services outline.

sibling A child member within a dimension, having the same parent as another child
member. For example, the members East and West are both children of the
Markets dimension and siblings of each other.

SMP See symmetric multiprocessing.


sparse dimension A dimension with a low probability that data exists for every combination of
dimension members.

Spreadsheet Add-in Analytic Services software that works with your spreadsheet. The
Spreadsheet Add-in is an add-in module to your spreadsheet software.

Styles See visual cues.

Hyperion G-11
Glossary Fast Track for Designers
G
subsequent retrievals Additional retrievals of the same member combinations after the first retrieval
is complete.

subset A cross-section of data. Subsetting further defines members that meet


specific conditions.

substitution variable A variable that acts as a global placeholder for information that changes
regularly. You set the variable and a corresponding string value; the value
can then be changed at any time. Substitution variables can be used in calc
scripts, report scripts, the Spreadsheet Add-in and Analytic Services API.
supervisor A defined type of user who has full access to all applications, databases,
related files and security mechanisms for a server.

suppress rows The option to exclude rows that contain missing values and to underscore
characters from spreadsheet reports.

swapping See paging.

symmetric (SMP) A server architecture that enables multiprocessing and


multiprocessing multithreading. Analytic Services supports multiple threads over SMP
servers automatically. Thus, performance is not significantly degraded when
a large number of users connect to an Essbase OLAP server
simultaneously.

symmetric report A symmetric report is characterized by repeating, identical groups of


members.

system administrator A person who maintains the hardware, software, disk space distribution and
configurations for running software applications such as Analytic Services.

TCP/IP See Transmission Control Protocol/Internet Protocol.

template A predefined format that is designed to retrieve particular data on a regular


basis and in a consistent format.

time dimension A dimension type that defines how often data is collected and updated, such
as fiscal or calendar periods. Only one dimension may be tagged as time; a
time dimension is not required.

time series reporting A process of reporting data based on a date calendar (for example, year,
quarter, month or week).
toolbar A bar of icons that represent Essbase commands. Icons are used as
shortcuts to the Essbase menu.

Transmission Control (TCP/IP) A standard set of communications protocols that are adapted by
Protocol/Internet many companies and institutions around the world and that link computers
Protocol with different operating systems and internal architectures. You use TCP/IP
utilities to exchange files, send mail and store data to various computers that
are connected to local and wide area networks.

transparent partition A form of shared partition that provides the ability to access and manipulate
remote data transparently as though it were part of your local database. The
remote data is retrieved from the data source each time you request it. Any
updates made to the data are written back to the data source and become
immediately accessible to both local data target users and transparent data
source users.

G-12 Hyperion
Fast Track for Designers Glossary
G
two-pass calculation An Analytic Services property that is used to recalculate members that are
dependent on the calculated values of other members. Two-pass members
are calculated during a second pass through the database outline.

two-pass calculation An Analytic Services property that is used to recalculate members that are
dependent on the calculated values of other members. Two-pass members
are calculated during a second pass through the database outline.

UDA Formerly called user-defined attribute. A UDA is a term associated with


members of an outline to describe a particular characteristic of the members.
Users can specify UDAs within calc scripts and reports to return lists of
members that have the specified UDA associated with them. UDAs can be
applied to dense as well as sparse dimensions.

unary operator A group of mathematical indicators (+, -, *, /, %) that define how roll-ups take
place on the database outline.

uncommitted access An Essbase kernel setting that affects how Analytic Services handles
transactions. Under uncommitted access, concurrent transactions hold
short-term write locks and can yield unpredictable results.

uniform resource (URL) An address for a resource in the World Wide Web, such as a
locator document, image, downloadable file, service or electronic mailbox. URLs
use a variety of naming schemes and access methods such as HTTP, FTP
and Internet mail. An example of a URL is http://www.hyperion.com. A URL
can also point to a file on a local or network drive, such as
D:essbasedocsindex.htm.

upper-level block A type of data block that is created for sparse member combinations when at
least one of the sparse members is a parent-level member.

URL See uniform resource locator.

user-defined attribute See UDA.

validation A process of checking a rules file, report script or partition definition against
the outline to make sure the object being selected is valid.

Version 2.x mode See Free-Form mode.

visual cue A formatted style such as a font or a color that highlights specific types of
data values. Data values may be dimension members; parent, child or
shared members; dynamic calculations; members containing formula; read
only data cells; read/write data cells; or linked objects.

two-pass calculation An Essbase attribute used for re-calculating an Accounts member, a


Dynamic Calc member or a Dynamic Calc And Store member, after a
consolidation takes place.

Hyperion G-13
Glossary Fast Track for Designers
G

G-14 Hyperion

You might also like