Sei sulla pagina 1di 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, whats 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 purchasers 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

Hyperion

Fast Track for Designers

Table of Contents

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

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

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

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

Hyperion

Fast Track for Designers

Table of Contents

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

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

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

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

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

Table of Contents

Fast Track for Designers

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 manuals 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 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 that defines the procedure, such as:

graphic and a heading

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. 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.

Leaf

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

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 selectionsappear in Helvetica, Narrow Bold As in the following examples: 1) 2) Select Clear Profile. To clear the profile, select Yes.

Hyperion

xiv

Preface

Fast Track for Designers 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

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 Analyzer?

If you have attended the Analytic Services Conceptual Overview class, and you are responsible for implementing Analytic Services? You are here.

If you have attended the Analytic Services Conceptual Overview class, and you are responsible for system or database administration?

Hyperion Analyzer Administration and Design

Do you need to query Analytic Services data using Crystal Reports

Fast Track for Designers or components: Calculating A to Z Load Rules A to Z

System Administration

Do you need to learn more about calculation scripts?

Essbase XTD Q&R

Advanced Training

Calculating A to Z

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

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

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.
Isnt 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

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 Sales Tracking Visual Basic, C++ Product Analysis Excel, 123 Budgeting Forecasting HTML Executive Information

Analytic Services
Hyperion Analyzer 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

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 Users 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 Database Administrators Guide (HTML or PDF) Technical Reference API Reference Administration MaxL Users 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

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 Webbased 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

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 AIX Version 4.0, except AIX which still uses Merant 3.6 4.3.3 or later on RS 6000 PowerPC machines AIX 5L for OLAP Server HP-UX Version Solaris Version RAM Disk Space 11 and 11i on PA-RISC machines 2.7and 2.8 on Sun SPARC or ULTRASPARC machines 64 MB or greater (128 MB or greater for UNIX platforms) base recommendation 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

Client Platforms
Microprocessor Windows Version Excel Version Lotus 1-2-3 Version Display RAM Pentium or better or equivalent, for the Spreadsheet Add-in and Application Manager Windows 98, Windows NT 4.0, Windows 2000, Windows XP Excel 2000, Excel XP Lotus 1-2-3 Millennium Releases 9.1 and 9.5 Resolution of at least 640 x 480 (800 x 600 or more recommended) 16 MB for the Spreadsheet Add-in and Application Manager on Windows 95, Windows 98, Windows NT 4.0, or Windows 2000 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

Disk Space

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 AIX Version Merant 4.0, except AIX which still uses Merant 3.6 4.3.3 or higher on RS 6000 PowerPC machines AIX 5L for OLAP Server HP-UX Version Solaris Version 11 and 11i on PA-RISC machines 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

RAM Disk Space

Same as for server platforms 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 Microprocessor RAM Windows version for Essbase OLAP server Windows version for Personal Essbase OLAP server Disk space Network protocol Requirements Pentium or later 64 MB Windows NT 4.0, Windows 2000, Windows XP on Pentium Windows 95 B, Windows 98, Windows NT 4.0, Windows 2000, Windows XP on Pentium

Approximately 35-50 MB for the server software and the sample applications 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

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

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 Load Rules Facilitates the organization of data in hierarchies and dimensions that are easy to visualize and design. Facilitates loading and maintaining dimension members; organizes data from multiple, disparate information sources. Facilitates top down calculation capabilities across dimensions - lots of calculating with only a few lines of code. Facilitates standard reporting and ad hoc reporting with a drill down through dimensional hierarchies.

Calc Scripts

Spreadsheet Add-in

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

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

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

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

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

Its starting to make sense!

Hyperion

1-15

Hyperion Essbase from 500 Feet - An Overview

Fast Track for Designers

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

Hyperion

1-17

Hyperion Essbase from 500 Feet - An Overview

Fast Track for Designers

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

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

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. A textual language for creating instructions or code for the Analytic Services calculator. The file type is .CSC. A textual language for creating printed report outputs or electronic file extracts. The file type is .REP. Interpret outline and data source files for loading into Analytic Services. The file type is .RUL.

Calc Scripts

Report Scripts

Load Rules

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) 3) 4)

Select a Server. Type your Username and Password. Click OK.

Hyperion

2-3

Outline Mechanics

Fast Track for Designers

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

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

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

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

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) 2) Select an existing member. 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) 4)

Type in the name of the new member. 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

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

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

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

Genealogy
Genealogy relationships in a hierarchy are defined as follows:
Member Leaf Node Parent Child Siblings Ancestor Descendants A Box at any level in the hierarchy including dimension names Any member at Level 0 (like leaves on a tree) A member in the hierarchy immediately above another member A member in the hierarchy immediately below another member Members with the same parent All members in the hierarchy directly above another member All members in the hierarchy below another member

ECAM Nordic, Italy, UK, France and Central Europe are Siblings to each other.

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

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


Outlines Load Rules Calc Scripts For identifying where members are in the hierarchy For using the Parent/Child load method 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

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 Consolidation Operators Data Storage Attribute Dimensions Alternate names or descriptions that can be used for reporting, in calc scripts, and as data load references. Control the math of a member in the rollup process relative to its parent. Settings that specify if and how a members data is to be stored and/or calculated. Dynamic dimension which are associated with some sparse base dimensions. Each member in the base dimension can be assigned one of the attributes from the attribute dimension. Member tags used for specialized calculating or reporting processes. Flags for specifying the behavior of specific accounts as they are rolled up across the Time dimension. Flags used to control the better/worse sign conventions for variance calculations

User Defined Attributes (UDAs) Time Balance Expense Reporting

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

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

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

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 Dynamic Calc And Store Dynamic Calc Never Share The default storage setting where associated data is stored and calculated on a batch basis. Associated data is stored only when a calculation occurs upon a user's retrieve request. Associated data is not stored; the member is calculated each time upon a user's retrieve request. 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. Used for members that are essentially labels where no data need be stored or calculated upon. 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.

Label Only Shared Member

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

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

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 Formulas in outlines are executed as follows:

Outline Mechanics

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. Select dimension members and Formula/Paste function to build your formula for the member. Terminate the formula with a semicolon (;).

2) 3)

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

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

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 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

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

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.

2)

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.

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 3)

Outline Mechanics 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. 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. 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. Designed to flag a base member dimension with date values. All dates must either be in mm-dd-yyyy or dd-mmyyyy formats. You can perform equality comparisons in calculations or reporting. For example, all products with a release date greater than 05-27-2000

Numeric

Boolean

Date

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

Hyperion

2-25

Outline Mechanics 4)

Fast Track for Designers 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

To tag a base dimension with an attribute:


1) 2) 3) 4) Select the base dimension member. Select Edit / Properties. The Member Properties window displays. Select the Member Attributes tab. 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

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

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

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 calculations member is Sum because it acts like a Label Only member. This is the smallest or minimum product value for products with a size 300 attribute.

Count sums up the number of products with a certain attribute that have data values. For example, there are two products with Size=300 attributes that have values.

Average rolls-up product averages. This is the average of all products with Size=500.

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

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

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) 3) 4) 5) 6)

In the Application Name section, type Bigcorp. Select a Location. Select a Server. Click OK. The Bigcorp application loads. From the Application Manager desktop, select File / New / Database.

7) 8) 9)

In the Database name section, type Sales. Select a Database Type. Click OK. The database loads.

2-32

Hyperion

Fast Track for Designers

Outline Mechanics

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) 2) 3) 4) Select Database:Sales. Select Edit / Add Child. In the text entry box, enter Year Tot. Press [Enter].

5) 6) 7) 8) 9) 10) 11) 12)

Click Yes. Press [Esc]. Select Year Tot. Select Edit / Add Child. Type Quarter 1. Press [Enter]. Create additional sibling members to Quarter 1 named Quarter 2, Quarter 3 and Quarter 4. Create child members to populate the months for each quarter Jan through Dec.

Hyperion

2-33

Outline Mechanics

Fast Track for Designers

Changing outline member properties:


1) Select Quarter 1 and select Edit / Properties.

2) 3)

Add an alias called Qtr 1. 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) 2) 3) Select Year Tot and press [Enter]. The Dimension Properties window displays. In the Dimension Type section, select Time. Click OK.

2-34

Hyperion

Fast Track for Designers 4) Select Outline / Dynamic Time Series.

Outline Mechanics

5) 6) 7) 8)

From the DTS Member drop-down list, select Y-T-D. Select Enable This DTS Member. Confirm the Generation setting to be 1 (representing the generation where the Y-T-D accumulation should occur). In the Alias entry box, enter YTD, and click Set.

9) 10)

Click OK. 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

Check Your Understanding


1) Match the terms on the left with the definition on the right.
Term Member Leaf Node Parent Child _____ _____ _____ _____ A B C D Definition A member in the hierarchy immediately below another member. A member in the hierarchy immediately above another member. Any member at Level 0 (like leaves on a tree). Flags for specifying the behavior of specific accounts as they are rolled up across the Time dimension. Control the math of a member in the rollup process relative to its parent. Settings that specify if and how a members data is to be stored and / or calculated. The default storage setting where associated data is stored and calculated on a batch basis. Used for members that are essentially labels where no data need be stored or calculated upon. 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. Dynamic dimension which are associated with some sparse base dimensions. Each member in the base dimension can be assigned one of the attributes from the attribute dimension. Member tags used for specialized calculating or reporting processes.

Siblings Ancestor

_____ _____

E F

Aliases

_____

Consolidation Operators Data Storage

_____

_____

Attribute Dimensions

_____

User Defined Attributes (UDAs)

_____

2-36

Hyperion

Fast Track for Designers

Outline Mechanics

Term Time Balance _____ L

Definition Alternate names or descriptions that can be used for reporting, in calc scripts, and as data load references. Members with the same parent. Any box at any level in the hierarchy including dimension names. Associated data is stored only when a calculation occurs upon a user's retrieve request. Used for members that share the data and calculations of another main member in the outline. Flags used to control the better / worse sign conventions for variance calculations. All members in the hierarchy directly above another member. Associated data is not stored; the member is calculated each time upon a user's retrieve request.

Expense Reporting Store Data Dynamic Calc And Store Dynamic Calc

_____ _____ _____

M N O

_____

Never Share

_____

Label Only Shared Member

_____ _____

R S

2)

List and describe the four Attribute dimension types.

Hyperion

2-37

Outline Mechanics

Fast Track for Designers

Check Your Understanding - Solutions


1) Match the terms on the left with the definition on the right.
Term Member Leaf Node Parent Child Definition

N C B A

A B C D

A member in the hierarchy immediately below another member. A member in the hierarchy immediately above another member. Any member at Level 0 (like leaves on a tree). Flags for specifying the behavior of specific accounts as they are rolled up across the Time dimension. Control the math of a member in the rollup process relative to its parent. Settings that specify if and how a members data is to be stored and / or calculated. The default storage setting where associated data is stored and calculated on a batch basis. Used for members that are essentially labels where no data need be stored or calculated upon. 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. Dynamic dimension which are associated with some sparse base dimensions. Each member in the base dimension can be assigned one of the attributes from the attribute dimension. Member tags used for specialized calculating or reporting processes.

Siblings Ancestor

M R

E F

Aliases

Consolidation Operators Data Storage

Attribute Dimensions

User Defined Attributes (UDAs)

2-38

Hyperion

Fast Track for Designers

Outline Mechanics

Term Time Balance

Definition

Alternate names or descriptions that can be used for reporting, in calc scripts, and as data load references. Members with the same parent. Any box at any level in the hierarchy including dimension names. Associated data is stored only when a calculation occurs upon a user's retrieve request. Used for members that share the data and calculations of another main member in the outline. Flags used to control the better / worse sign conventions for variance calculations All members in the hierarchy directly above another member. Associated data is not stored; the member is calculated each time upon a user's retrieve request.

Expense Reporting Store Data Dynamic Calc And Store Dynamic Calc

Q G O

M N O

Never Share

Label Only Shared Member

H P

R S

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. 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.

Numeric

Hyperion

2-39

Outline Mechanics

Fast Track for Designers

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. Designed to flag a base member dimension with date values. All dates must either be in mm-dd-yyyy or dd-mmyyyy formats. You can perform equality comparisons in calculations or reporting. For example, all products with a release date greater than 05-27-2000.

Date

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

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

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 Fiscal Year Crossover Model

Fast Track for Designers

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.

Time

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.

The most common special calculations in the Time dimension are periodto-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

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

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

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

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)

3-8

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.

Hyperion

Fast Track for Designers

Outline Design Alternatives

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

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

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

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

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

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

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

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 Act Vs Bud Member Children Current Year Budget Notes Set children as shared members. Change the consolidation operator of Current Year to + and Budget to minus (-). Add member formula: Current Year - Forecast;

Act Vs Fcst

None

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

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

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) 2) 3) 4) 5) 6) 7) 8) 9) Select Gross Margin %. Select Edit / Add Sibling. In the text box, type Balance Sheet. The Confirm Add dialog displays. Click Yes. Select Balance Sheet. Select Edit / Properties. The Member Properties window displays. Select ignore (~) and Label Only. Click OK. The properties from Balance Sheet change. Under Balance Sheet, add the following children:
Child Inventory Unary Operator ~ Member Properties Set as Time Balance Last (on the Account Info panel). Set as Time Balance Last (on the Account Info panel).

Accounts Receivable

Setting up @Var formulas and Expense Reporting:


1) Under Scenario Variances, select Act Vs Bud.

3-18

Hyperion

Fast Track for Designers 2) Select Edit / Formula.

Outline Design Alternatives

3)

Select Formula / Paste Function.

4) 5) 6) 7) 8) 9)

In the Categories section, select Math. In the Templates section, select the math operator @VAR. Click OK. The function appears in the Formula Editor window. Complete the formula to read: @VAR (Current Year, Budget);. Select File / Save. Select File / Close. The Formula Editor closes.

Hyperion

3-19

Outline Design Alternatives 10) 11) 12) 13) 14) 15)

Fast Track for Designers

Complete the comparable formulas for the members Act Vs Fcst and Bud Vs Fcst. In the Accounts section, select Cost of Sales. Select Edit / Properties. The Member Properties window displays. Select the Account Info tab. In the Variance Reporting section, select Expense. 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

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

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

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

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 outlines development. 1) 2) 3) 4) Open an empty outline on a client machine. Create an outline member name for the dimension to be analyzed. Starting from the top of the dimension, layer in step-by-step a name for each level (for example, Product Family). 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. Continue adding layers of names with parallel examples until you reach the bottom of the hierarchy. Use a finalized version of the Label Outline as a specification sheet or sign-off document for decisions that participants reach.

5) 6)

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

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 visual planning model Expose nomenclature differences Having an abbreviated picture of the dimensions hierarchy in Analytic Services own visual outline mode helps draw one single picture that participants can relate to and discuss together. Working through the structure top-to- bottom (bottomto-top can also work), flushes out nomenclature differences between functional groups, for example, Finance calls Product Family what Marketing calls Product Group. Working through the structure flushes out differences between functional groups in perception of the hierarchy needs. For example, a 6 level product hierarchy suits Finances purposes because product costs are at the lowest SKU level whereas a shallower, less complex hierarchy of 4 levels meets Marketing needs for forecasting. Working through the structure high-lights 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. Coupled with estimates of how many members are likely to be required at each level, working through the structure precipitates discussion of the size of the database and performance considerations. These issues are important to identify early and may call for partitioning databases into separate cubes. You can use the same label outline procedure for 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.

Disclose conflicting hierarchy perceptions

Allow a scenario driven process

Highlight sizing, performance and partitioning considerations

Analyze alternate rollup needs

4-4

Hyperion

Fast Track for Designers

Developing Load Rules

Plan for User Defined Attributes (UDAs)

Working through a label outline structure also precipitates discussion of how and where to use 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. Working through the structure facilitates discussion 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.

Research data location

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

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 desktop.

Click this button to 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

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) 2) 3) 4) 5) 6) 7) 8) 9) 10) Create a new rule Associate with an outline Open a data file Format the data file Select the mode Set Up the new dimension Select the build method Associate fields with dimensions and field type Validate the load rule 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

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

To associate the outline:


1) Click Outline .

Check that the correct application and database name for the outline are selected.

2) 3)

Make sure the values for Object Name, Server, Application, and Database are correct. 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 files 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

To open a data file:


1) Select File / Open Data File.

2)

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.

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

3)

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.

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

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 4) Select a file and click OK.

Fast Track for Designers

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 files 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 2)

Developing Load Rules

From the drop-down lists, select an Essbase Server, Essbase Application an Essbase Database.

3)

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

Click OK.

4) 5) 6) 7)

Select the SQL Data Source. In the Connect section, enter the Database name (for example, Myexamp). In the From text box, enter the location of the SQL data source (for example: c:\essbase\app\sample\basic\myexamp.dbf). 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. Define any select statements in the Select and Where text boxes.

8)

9)

By default, the select statement is * (which selects all rows in the table).

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

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 sources 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 3) Click OK.

Developing Load Rules

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

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.

4-16

This setting is saved with the load rule.

Hyperion

Fast Track for Designers

Developing Load Rules

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

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) 2) 3) Select Options / Dimension Build Settings. Select the Dimension Definition tab. 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 5)

Developing Load Rules

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 2) Select the Dimension Build Settings tab.

Fast Track for Designers

3) 4)

From the dimension list in the upper left of the dialog box, select the dimension name being loaded. 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

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) 2) 3) Select a column in the lower pane of the Data Prep Editor. Select Field / Properties. Select the Dimension Building Properties tab.

4) 5)

From the Dimension list, select the Dimension being loaded. Select the Field Type (for example, generation, level, parent/child, alias, formula and so on).

Hyperion

4-21

Developing Load Rules 6)

Fast Track for Designers

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) 8) 9)

Repeat this procedure for all columns. To ignore fields with extraneous information, select Field / Properties. The Field Properties window displays. Select the Global Properties tab.

10)

Select the Ignore Field During Dimension Build.

4-22

Hyperion

Fast Track for Designers

Developing Load Rules

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

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.

Dont forget to save!

4-24

Hyperion

Fast Track for Designers

Developing Load Rules

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

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) 4) 5)

Select a file and load rule. Click OK. The Outline Update window displays. Click OK. Analytic Services adds the dimensions in the data source to the outline.

4-26

Hyperion

Fast Track for Designers

Developing Load Rules

To Initiate a load procedure using the Data Load dialog box:


1) 2) 3) Open the Application Manager Desktop window. Select the application and database to load the data into where you wish to build dimensions. Select Database / Load Data.

4) 5)

Select the Data Files option (if it is not already selected). Click Find to select a text or spreadsheet file to load.

Hyperion

4-27

Developing Load Rules 6)

Fast Track for Designers

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) 8)

Select the data source file(s). 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. Select Modify Outline. Select Use Rules. To open the Open Server Rules Object dialog box, click Find. 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. Click OK. The name of the appropriate rules file displays in the Rules file area.

9) 10) 11) 12)

13)

4-28

Hyperion

Fast Track for Designers 14)

Developing Load Rules

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.

Error Checking

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.

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

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

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.

1)

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

To access the data load error messages information:


From the Windows desktop, select Start / Programs / Hyperion Solutions / Hyperion Essbase / OLAP Server Documentation.

Hyperion

4-31

Developing Load Rules 2) 3) Select Error Messages Guide. The Error Messages window displays.

Fast Track for Designers

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

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

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

Hyperion

4-35

Developing Load Rules

Fast Track for Designers

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

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

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 References Use Level References Use Parent/Child References Source files are structured or moved within the load rule so that columns representing hierarchy pathways are organized top-down and left to right. Source files are structured or moved within the load rule so that columns representing hierarchy pathways are organized bottom-up and left to right. Source files are structured or moved within the load 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

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 member with matching string This option compares the new member to existing members in the outline using string matching, for example, matching to account, or part number sequences with call outs embedded in the numbering scheme. This option assigns the new member to the lowest level in a hierarchy. This one is useful if you are loading to a flat dimension list. 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.

Add as a sibling of lowest level Add as a child of

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

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 dimensions 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 2)

Fast Track for Designers

Select the Dimension Building Properties tab.

3) 4) 5)

Identify the target dimension for the column of information selected. In the Field Type section, select Generation. Enter the generation Number represented by the columns 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 members name, such as alias, property, formula, or User Defined Attribute (UDA) must follow the member name for which that columns 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

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 dimensions 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

To set up the load rule for level loading:

1) 2) 3) 4) 5)

You should be in the Data Prep Editor with the file you wish to load visible. Select Field / Properties. If no field is highlighted, Field Number 1 is selected by default. Select the Dimension Building Properties tab. Click the name of the Dimension that is the target for the column of information. Select Level for the Field Type in the Field Definition area. Enter the level Number represented by the columns members.

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

Type the level number for the column of information.

5-8

Hyperion

Fast Track for Designers 6)

Outline Loading Methods Repeat these steps for other columns in the file.

Columns which contain information other than a members name, such as alias, property, formula, UDA, and so on, must follow the member name for which that columns 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

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) 2) 3) Select Field / Properties. If no field is highlighted Field Number 1 is selected by default. Select the Dimension Building Properties tab. Select the Dimension that is the target for the column of information.

5-10

Hyperion

Fast Track for Designers 4)

Outline Loading Methods

Select either Parent or Child as appropriate for the Field Type in the Field Definition area.

5) 6)

Enter the Number 0. Zero has no real meaning; it is just a required placeholder. 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 members name, such as alias, property, formula, UDA, and so on, must follow the member name for which that columns 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

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

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 Editor Because many attribute dimensions are relatively 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. 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 can only be done for attributes that are one level deep.

Generation, Level, or Parent/Child references Automatically when you associate the 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

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 4) Click Properties.

Outline Loading Methods

5)

Click Attribute Dimensions.

6)

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

Hyperion

5-15

Outline Loading Methods 7) Click Add.

Fast Track for Designers

8) 9) 10)

When all attributes have been specified, click Close. You return to the Dimension Properties dialog box. Click OK. You return to the Dimension Build Settings dialog. 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

To select the build method for the Attribute Dimension:


1) Select Options / Dimension Build Settings.

2) 3)

Select the Dimension Build Settings tab. 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

To assign fields dimension properties:


You should be in the Data Prep Editor with the file you wish to load visible. 1) 2) 3) Select Field / Properties. If no field is highlighted, Field Number 1 is selected by default. Click the Dimension Building Properties tab. For each field: Define the Field Type Select the appropriate Dimension Enter a Number (relevant only for generation and level builds)

4) 5)

To move to the next field in the file and repeat the assignment process, click Next. 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

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

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:

1)

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. Select Options / Dimension Build Settings.

5-20

Hyperion

Fast Track for Designers 2)

Outline Loading Methods Select the Dimension Definition tab.

3) 4)

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

Hyperion

5-21

Outline Loading Methods 5) Click Attribute Dimensions.

Fast Track for Designers

6) 7)

Enter the attribute dimension name and select the attribute dimension type. Click Add.

8) 9) 10)

When all attributes have been specified, click Close. You return to the Dimension Properties dialog box. Click OK. You return to the Dimension Build Settings dialog. 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

To build an attribute dimension automatically, associating base member dimensions to specific attributes:

1)

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. Select Options / Dimension Build Settings.

2) 3) 4)

Select the Dimension Build Settings tab. Select the base dimension to be associated with this attribute build. In the Attribute Members section, deselect Do Not Create Members.
Deselecting this option allows the dimension to be created on the fly.

5) 6)

Make sure to select the proper choice in the Build Method area. This selects the appropriate build method for the base dimension. 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

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.

2)

If no field is highlighted, information for Field Number 1 displays by default.

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

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

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.

2)

If no field is highlighted, information for Field Number 1 displays by default.

Select the Dimension Building Properties tab.

3) 4) 5)

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

5-26

Hyperion

Fast Track for Designers 6) Click Ranges.

Outline Loading Methods

7)

The Ranges button is disabled for non-numeric attributes.

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 9)

Fast Track for Designers

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

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

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

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

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

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

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

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

Check Your Understanding Solutions


1) What are the three standard methods for loading and maintaining outline members? 2) 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

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

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

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) 2) In Application Manager, point to the database to which you want to load to in the Server window. Drag files to load from Windows Explorer to Application Manager.

3)

Click OK to load.

Hyperion

6-3

Loading Data

Fast Track for Designers

To use free form loading directly through Application Manager:


1) 2) 3) In Application Manager, point to the database you want to load in the Server window. Select Database / Load Data. The Data Load window displays. Next to Data Files, click Find.

4) 5) 6)

Select the data files to load. Click OK. The Data Load window displays. 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

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 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

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. Open a data source file through the File menu. This lets Analytic Services know about the source information it matches with the outline. 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.

2)

3)

Hyperion

6-7

Loading Data 4)

Fast Track for Designers 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

To associate fields with dimension members:


1) 2) 3) Select any member or the column header of the data column you want to associate with the outline. Select Field / Properties. Select the Data Load Attributes tab.

4)

Select the Dimension represented by the columns label information. For columns that include data, select the specific Member in the accounts dimension which the data represents.

5)

If necessary double click on the check mark dimension visible in the Member area in order to drill down to specific members.

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 6)

Fast Track for Designers Select the Global Properties tab if necessary.

7) 8)

Select Data Field. 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

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

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) 4)

Select a data file. Click OK. The Data Load window displays.

6-12

Hyperion

Fast Track for Designers 5) 6) 7) 8) 9) 10) Select Use Rules. The second Find button becomes available.

Loading Data

Next to Rules file, click Find. The Open Server Rules Object window displays. Select a rule file. Click OK. The Data Load window displays. If you are capturing unknown members using any of the Add as methods on the Dimension Build Setting dialog, select Modify Outline. Select Load Data.

Match up one or more data files with a single load rule in the Load Data dialog box.

11)

This confirms that you are loading data. If this setting is not selected, your data does not load.

Select Interactive.

12)

This option interrupts the data load awaiting your intervention to deal with unrecognized members.

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 13)

Fast Track for Designers 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

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

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

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

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

Hyperion

6-19

Loading Data

Fast Track for Designers

Check Your Understanding Solutions


1) What are three ways to load data? 2) Free form loading without rules Lock and Send with a spreadsheet Using load rules

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 4)

Loading Data 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-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

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

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 Prefix and Suffix

Fast Track for Designers

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) Select for columns in data files where the information is extraneous to the outline and is not data. (DL) Just like the check box above but used only for dimension building, select for columns in dimension building files where the information is extraneous. (DB) Leading and trailing whitespace in source files cause 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)

Ignore Field During Data Load Ignore Field During Dimension Build

Drop Leading and Trailing Whitespace

7-4

Hyperion

Fast Track for Designers

Dealing With Formats And Records

Convert Spaces To Underscores Scale

This feature is not commonly used, a carryover from the 2.x version of Analytic Services where member names could not include blank spaces. (Both) 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 4)

Fast Track for Designers

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

There are three choices for handling aggregations on load:


Overwrite Existing Values With Overwrite Existing Values, incoming data steps 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. With Add to Existing Values, incoming data is 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 Existing Values This behaves much as Add to Existing Values, except 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.

Add To Existing Values

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

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 Split Use Move for changing the sequential order of columns. For dimension building, columns must display in a specific order. Use Split for parsing fields. This feature is also used for segregating columns where the source file has variable field lengths without field delimiters. Use Join for joining together two or more columns. Often used for solutions to create uniqueness in member names. Create Using Join is like Join, except a whole new column or set of columns is created. Use this item also to duplicate a single column. Create Using text lets you type in any text, including a blank space, and that text displays for all records in the source file.

Join Create Using Join Create Using Text

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

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 2)

Fast Track for Designers

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. In the Token entry field, enter the token to ignore.

4)

5) 6) 7) 8)

To add the token to the list, click Add. Repeat steps 3 and 4 for each token to ignore. To change or delete the tokens to ignore, select the token in the list and click Change or Delete. 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

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

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) 3)

Enter the select or reject criteria or numeric value in the String/Number entry box. Select the conditional operator option that applies for the String entry.

7-12

Hyperion

Fast Track for Designers 4) Click Add.

Dealing With Formats And Records

Reject on every record that equals the word Apple.

5) 6) 7)

Apply Boolean operators for any additional condition criteria by selecting the appropriate option. Compose the addition criteria by following steps 2 through 4. 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 2) Select the Data Values tab.

Fast Track for Designers

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

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) 2) Select View / Dimension Building Field. Select Options / Dimension Build Settings and click the Dimension Build Settings tab.

3) 4)

In the Dimension section select the dimension for which the safety net is to be constructed. 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

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. Click OK. Select the column headers of all columns not otherwise included in the Add As procedure. Select Field / Properties. Select the Global Properties tab.

6) 7) 8) 9)

7-16

Hyperion

Fast Track for Designers 10)

Dealing With Formats And Records 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

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

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

Check Your Understanding Solutions


1) What options does the Global Properties panel of the Field Properties dialog offer for handling data input file problems? 2) 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.

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

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-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

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 spreadsheets 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 users 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

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) 3)

Select Hyperion Essbase OLAP Server DLL. 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) 2) 3) 4) 5) From your spreadsheet reporting program, select File / Open. Browse to the Essbase\Client\Sample directory. Select Esstoolb.xls. If the macros warning dialog box displays, click Enable Macros and then click OK. 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 tools functionality.

Hyperion

8-3

Basic Retrieve Operations

Fast Track for Designers

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) 3)

Select a Server, type your Username and Password. 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 4)

Basic Retrieve Operations

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 sheets 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

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

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 didnt 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

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

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

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/ Remove Only Zoom In

Keeps or removes the selected member or members. Selections may be discontiguous (picked using Ctrl in Excel). Discontiguous selections are not possible using Lotus. Drill down from a selected member into the dimensions 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

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

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 Right Icon With No Arrow Icon With Arrow Left The label scanning operation has been done and the request for information is being sent to the server. The retrieve request is being processed by the Server. Specifically, data blocks which contain the data request are being pulled from disc into memory on the Server. The Server is returning the information requested.

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

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. Requesting a report that includes a large number of members that are dynamically calculated on-the-fly. This includes Attribute Dimensions. Where data is being requested from one database to another, especially over a network. Where too many users are attempting to access the server at one time. Where memory intensive operations such a calculations are occupying the server.

Dynamic Calculations Transparent Partitions Heavy Server Traffic Competing Operations

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

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) 2) 3) If the Essbase menu is not visible, select Tools / Add-Ins, then check Hyperion Essbase OLAP Server DLL and click OK. If the Hyperion Essbase OLAP Server DLL is not in the list, click Browse to the Essbase folder, then to the Bin folder. Select Essexcln.xll and click OK to install the add-in.

Installing the toolbar:


1) 2) 3) 4) Select File / Open. Open the Essbase\Client\Sample directory and select Esstoolb.xls. If the macros warning dialog box displays, select Enable Macros and then click OK on the next dialog box. If you do not see the toolbar, click View / Toolbars / Essbase.

8-14

Hyperion

Fast Track for Designers

Basic Retrieve Operations

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.

3) 4) 5) 6)

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.

Type your Username. Type your Password. Select an Application/Database. Click OK.

Retrieving and navigating:


1) Select Essbase / Retrieve.

2)

Select Year Tot.

Hyperion

8-15

Basic Retrieve Operations 3) Select Essbase / Zoom In.

Fast Track for Designers

4)

Double-click Quarter 1.

5) 6) 7) 8) 9) 10)

Select Jan. Select Essbase / Zoom Out. Select Quarter 1 through Quarter 4. Select Essbase / Keep Only. Select Quarter 2 and, while holding down the Ctrl key, select Quarter 4. 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

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

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 6)

Basic Retrieve Operations

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-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

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

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

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. 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. 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. This check box turns on and off the unknown member 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.

Information

None

Display Unknown Members

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

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

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.

Aliases

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 let you show reports using aliases rather than member names. There are two alias options.
Use Aliases Use Both Member Names and Aliases Aliases are used according to the alias table set. Members with no aliases default to the member name. Places both the member name and aliases on a report for row dimensions. This may be distracting where you 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. Fills in outer nested member names (or aliases) in rows 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.

Repeat Member Labels

9-6

Hyperion

Fast Track for Designers

Managing Options

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

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 Styles Data Cell Styles

Lets you set different font characteristics for each dimension in your database. Lets you set font characteristics on data cells themselves (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

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 members children. 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! 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. All three are horizontal types of zooming that cross a dimensions hierarchy from the selected member rather than drilling down vertically. 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. The parent member is retained on the report with its children.

All Levels

Bottom Level

Sibling Level, Same Level and Same Generation Formula

Include Selection

Hyperion

9-9

Managing Options

Fast Track for Designers

Within Selected Group

If there are duplicate member names on a report, 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. This feature works in tandem with Within Selected 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.

Remove Unselected Groups

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 members 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

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).

2) 3) 4) 5)

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.

Connect to the Bigcorp Sales database. Select the Managing Options worksheet. Select Essbase / Options. The Essbase Options window displays. Select the Global tab.

6) 7) 8)

Clear all checkboxes on the left side of the dialog, and click OK. Double-click cell C7. Notice that no retrieval takes place. Double-click cell A4 (Lightbolt 365 A). No retrieval takes place.

Hyperion

9-11

Managing Options 9) 10) 11) 12) 13) Select Essbase / Options. The Essbase Options window displays. Select the Global tab.

Fast Track for Designers

Select Enable Secondary Button and Enable Double-Clicking. Click OK. Double-click C7.

14) 15) 16) 17)

Select THUNDERBALL 270 A. Select Essbase / Zoom Out. Select LIGHTBOLT 365 A. Select Essbase / Zoom Out.

18) 19) 20) 21)

If you do not select the Enable checkboxes in Global Options, this is the only way you can zoom in and out.

Select Essbase / Options. The Essbase Options window displays. Select the Global tab. Select Navigate without Data. Click OK.

9-12

Hyperion

Fast Track for Designers 22) Double-click Lightbolt.

Managing Options

23) 24) 25) 26) 27) 28) 29)

This feature is very useful for speeding up operations while you are configuring the worksheet.

Select Essbase / Options. Select the Global tab. Deselect Navigate without Data. Select Enable Linked Object Browsing. Click OK. Select Essbase / Retrieve. Double-click on a cell containing data, (not a cell containing a label).

30)

Click Close.

31)

The Linked Object Browser only opens when you click a cell within the retrieval area.

Close Corprpts.xls without saving.

Hyperion

9-13

Managing Options

Fast Track for Designers

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) 2) 3) 4) Open Corprpts.xls (located in the B100_5\SSReport directory). Select the Managing Options worksheet. Select Essbase / Options. The Essbase Options window displays. Select the Display tab.

5)

In the Indentation section, select None.

6)

Note the indentation of the product members prior to retrieving. Retrieve and note the difference. Experiment with indentation settings at your leisure.

Click OK.

9-14

Hyperion

Fast Track for Designers 7) Select Essbase / Retrieve.

Managing Options

Help! Help! Im being suppressed!

Suppressing #Missing:

1) 2) 3) 4) 5)

Notice the #Missing labels. This tells you that there is no data in those cells on the Essbase OLAP server. Select Essbase / Options. The Essbase Options window displays. Select the Display tab. In the Suppress section, select #Missing Rows. Click OK. 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) 7)

Select Performance. Select Essbase / Zoom Out.

Hyperion

9-15

Managing Options 8) 9) 10) 11) Select Essbase / Options. The Essbase Options window displays. Select the Display tab.

Fast Track for Designers

In the Suppress section, deselect #Missing Rows. In the Replacement section, enter n/a in the #Missing Label text box.

12) 13) 14)

This lets you use a different label to identify cells that have no data. You can make the label anything you want.

Click OK. Select Family Total. Select Essbase / Zoom In.

Setting aliases and column adjustment:


1) 2) 3) 4) 5) Select Essbase / Options. The Essbase Options window displays. Select the Display tab. In the Aliases section, select Use Aliases. In the Cells section, select Adjust Columns. Select Essbase / Retrieve.

Aliases replace member names.

6)

Close Corprpts.xls without saving.

9-16

Hyperion

Fast Track for Designers

Managing Options

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) 2) 3) 4) 5) 6) 7) Open Corprpts.xls (located in the B100_5\SSReport directory). Select the Managing Options worksheet. Select Essbase / Navigate without Data. Select THUNDERBALL. Select Essbase / Zoom Out. Performance displays alone on the report. Select Essbase / Options. The Essbase Options window displays. Select the Zoom tab.

8) 9) 10) 11) 12)

In the Zoom In section, select Next Level. In the Member Retention section, select Include Selection. Click OK. Select Performance. Select Essbase / Zoom In.

Hyperion

9-17

Managing Options 13)

Fast Track for Designers Select Essbase / Retrieve. Lightbolt, Thunderball and Performance are still showing (that is what Include Selection does). Experiment with different settings and with Include Selection until you are comfortable with the effects of each. Different settings are useful in different situations. Select Essbase / Navigate Without Data. Close Corprpts.xls without saving.

14)

15) 16)

9-18

Hyperion

Fast Track for Designers

Managing Options

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) 2) 3) 4) Open Corprpts.xls (located in the B100_5\SSReport directory). Select the Managing Options worksheet. Select Essbase / Options. The Essbase Options window displays. Select the Style tab.

1)

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:


In the Members section, select Parent.

Hyperion

9-19

Managing Options 2) Click Format.

Fast Track for Designers

3)

Use this table to set the Parent member format:


Font Style Size MS Sans Serif Bold 12

4) 5) 6) 7)

Click OK. Select Child. Click Format. The Font window displays. Use this table to set the Child member format:
Font Style Size MS Sans Serif Bold 10

8) 9) 10) 11)

Click OK. Select the Display tab. In the Cells section, select Use Styles. The Use Styles option enables your style changes. Click OK.

9-20

Notice that there is no change, you must retrieve to see the styles.

Hyperion

Fast Track for Designers 12) Select Essbase / Retrieve.

Managing Options

1) 2) 3)

Styles apply to members only, not to data.

Setting dimension styles:


Select Essbase / Options. The Essbase Options window displays. Select the Style tab. In the Members section, deselect Parent and Child.

4) 5) 6)

This is important because they override styles set lower in the dialog.

In the Dimensions section, select Year Tot. Click Format. The Font window displays. Use this table to set the Year Tot dimension format:
Font Style Size MS Sans Serif Bold 10

7) 8) 9)

Click OK. The Essbase Options window displays. From the Background Color drop-down list, select Yellow. In the Dimensions section, select Product.

Hyperion

9-21

Managing Options 10) 11) Click Format. The Font window displays.

Fast Track for Designers

Use this table to set the Product dimension format:


Font Style Size Color MS Sans Serif Bold 10 Red

12) 13) 14) 15)

Click OK. The Essbase Options window displays. From the Background Color drop-down list, select Lime. Click OK. Select Essbase / Retrieve.

16) 17)

Clear all member and dimension styles. Close Corprpts.xls without saving.

9-22

Hyperion

Fast Track for Designers

Managing Options

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

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 members children. 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! 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. All three are horizontal types of zooming that cross a dimensions hierarchy from the selected member rather than drilling down vertically. 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.

All Levels

Bottom Level

Sibling Level, Same Level and Same Generation 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

10

More Bells & Whistles

Fast Track for Designers

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 dimensions members.

Hyperion

10-3

10

More Bells & Whistles

Fast Track for Designers

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) 2) 3) 4) Open Corprpts.xls (located in the B100_5\SSReport directory): Select the Pivot Spigot worksheet. Select OEM. Select Essbase / Pivot.

5)

Click and hold the right mouse button on Distributor.

6)

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.

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

10

More Bells & Whistles 8)

Fast Track for Designers

This time, using the same right mouse technique mentioned previously, drag Distributor directly below Quarter 1.

9) 10)

Select Essbase / Flashback. Distributor returns to its original position. 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

10

More Bells & Whistles

Fast Track for Designers

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.
Lets see. Was it Lightbolt, Lightball, or just plain Light.

Torn by too many choices, Willard finally makes a decision: Go home.

Hyperion

10-9

10

More Bells & Whistles

Fast Track for Designers

Selecting by Member Name


The By Member Name method for member selection lets you select and paste members, taking a vertical slice of a dimensions hierarchy starting from an anchor member:

To create a member selection using By Member Name:


1) 2) 3) 4) 5) Select Essbase / Member Selection. The Member Selection window displays. In the View Method section, select By Member Name. Select a member. Click Add. The selected member displays under Rules. In the Rules section, right-click the member.

6) 7)

From the list, select a rule set of members. To view the list of members selected from the chosen rule, click Preview.

8)

The preview dialog also tells you how many members the rule generates.

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 dimensions 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

10

More Bells & Whistles 2) 3) 4) 5)

Fast Track for Designers

In the View Method section, select the By Level (or Generation) Name. In the Members section, select a level (or generation) number or name (if levels were named in the outline). Click Add. The selection displays under Rules. In the Rules section, right-click on the member.

6) 7)

Only the Subset choice is available.The By Member Name rules choices are broader because genealogy (namely, vertical) relationships are possible to define.

To view the list of members selected from the chosen rule, click Preview. Click OK. The members selected display on the worksheet starting from the position of the cursor. Placement is either down or across the worksheet is based upon whether Place Down The Sheet is selected.

8)

10-12

Hyperion

Fast Track for Designers 9)

More Bells & Whistles

10

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

10

More Bells & Whistles

Fast Track for Designers

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) 2) 3) 4) Select the Member Select worksheet (located at the bottom of the screen). On the report, select Performance. Select Essbase / Member Selection. In the Members section, expand Family Total.

5) 6) 7)

Select Performance and Value. Click Add. Performance and Value display under Rules. Click OK.

8) 9)

Select Performance and Value. 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) 2) 3) 4) 5) Select cell A4. Select Essbase / Member Selection. The Essbase Member Selection window displays. From the Dimension drop-down list, select Product. Double-click Family Total. Family Total displays under Rules. In the Rules section, right-click Family Total.

6) 7)

Select All Descendants. Click Preview.

Hyperion

10-15

10

More Bells & Whistles 8) 9) 10) 11) Click Close. The Member Preview window closes.

Fast Track for Designers

Click OK. The descendants of Family Total display on the report. Select the descendants of Family Total. Select Edit / Delete. The descendants of Family Total disappear.

Selecting members by level:


1) 2) 3) 4) Select cell A4. Select Essbase / Member Selection. The Essbase Member Selection window displays. From the Dimension drop-down list, select Product. In the View Method section, select By Level Name.

5) 6)

Select Lev2,Product. 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. Click Remove All. Add Lev0, Product to the rules window. Click Preview. A preview of selected members displays. Click Close. In the Output Options section, select Suppress Shared Members.

7) 8) 9) 10) 11)

10-16

Hyperion

Fast Track for Designers 12)

More Bells & Whistles

10

Click Preview. Only 27 members are selected, as opposed to 78 on the previous preview. Click Close. Deselect Suppress Shared Members. Click Remove All.

13) 14) 15)

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.

3) 4) 5)

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.

Select Gen3, Product. Click Add. Gen3,Product displays under Rules. Click OK.

6)

Select the Gen3,Product members.

Hyperion

10-17

10

More Bells & Whistles

Fast Track for Designers

Using Member Selection by Dynamic Time Series


1) 2) 3) 4) 5) 6) 7) 8) 9) 10) Select Quarter 1. Select Essbase / Member Selection. The Essbase Member Selection window displays. Expand Quarter 1. Select Feb. Click Add. Feb displays under Rules. In the View Method section, select By Dynamic Time Series. The Members list changes to Dynamic Time Series labels. Select Q-T-D. Click Add. Q-T-D displays under Rules In the Rules section, right-click Q-T-D. Member selection options display. Select Specify Latest.

11) 12) 13) 14)

From the drop-down list, select Feb. Click OK. In the Output Options section, deselect Place Down the Sheet. Click OK.

10-18

Hyperion

Fast Track for Designers 15) Select Essbase / Retrieve.

More Bells & Whistles

10

Hyperion

10-19

10

More Bells & Whistles

Fast Track for Designers

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) 2) 3) Create the report format you want to replicate in a separate worksheet. Select a member of the report (typically a member in the page header). 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

10

More Bells & Whistles 5) 6) 7) Select a cascade level. Select the Destination Options tab.

Fast Track for Designers

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) 9)

Select the Format Options tab. 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) 2) 3) On Corprpts.xls, select the Swoosh worksheet. Select OEM. Select Essbase / Cascade.

4) 5) 6)

Select the Cascade Information tab. Ensure that it is set to cascade on OEM, Next level. Select the Destination Options tab.

7) 8)

Browse to the directory where you would like to store the reports. In the Destination Types box, select One Workbook, Separate Sheets.

Hyperion

10-23

10

More Bells & Whistles 9) 10) 11) 12) 13)

Fast Track for Designers

In the File Information area, select Open Created Files. For Prefix type Zip. For Suffix type Da. For Workbook Name type OEMRpt. Select the Format Options tab.

14) 15) 16) 17)

Select Copy Formatting. Select Include Table of Contents. Click OK. The OEMRpt.xls file generates. Open OEMRpt.xls and review the worksheets.

10-24

Hyperion

Fast Track for Designers

More Bells & Whistles

10

Viewing the Table of Contents:


1) 2) 3) 4) Start Notepad (or any other text editor). Select File / Open. Browse to the directory containing OEMRpt.xls. Select Zip0Da.lst.

5)

You may have to switch File type of to All Files to see this file in the directory.

Click Open.

Hyperion

10-25

10

More Bells & Whistles

Fast Track for Designers

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. Enabling Retain On Retrieval activates other retrieve operations in layers the first layer being the check box option to preserve formulas when using Keep Only and Remove Only. 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.

Retain On Keep And Remove Only

Retain On Zooms

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

10

More Bells & Whistles

Fast Track for Designers

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) 2) On Corprpts.xls, select the Formulas worksheet. Select Essbase / Retrieve.

3)

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.

Click Yes.

4) 5) 6) 7) 8)

Select cell D5 and type the formula =B5-C5. Copy the formula down to cell D7. Select Essbase / Retrieve. The formula disappears. Select Essbase / FlashBack. Select Essbase / Options. The Essbase Options window displays.

10-28

Hyperion

Fast Track for Designers 9) Select the Mode tab.

More Bells & Whistles

10

10) 11) 12)

In the Formula Preservation section, select Retain on Retrieval. Click OK. Select Essbase / Retrieve.

1) 2)

Do not retrieve by double-clicking. Note that the formula is preserved.

Setting retain on zooms:


Select Performance. Select Essbase / Zoom In.

3) 4) 5) 6) 7) 8)

Note that the formula is not preserved.

Select LIGHTBOLT. Select Essbase / Zoom Out. Select Essbase / Options. The Essbase Options window displays. Select the Mode tab. In the Formula Preservation section, select Retain on Zooms. Click OK.

Hyperion

10-29

10

More Bells & Whistles 9) 10) 11) 12) Select cell D5 and enter the formula =B5-C5. Copy the formula down to cell D7. Select Performance. Select Essbase / Zoom In.

Fast Track for Designers

13) 14) 15) 16) 17) 18) 19)

The formula is preserved for Performance, but not for its children.

Select Essbase / Flashback. The original report displays. Select Essbase / Options. The Essbase Options window displays. Select the Mode tab. In the Formula Preservation section, select Formula Fill. Click OK. Select Performance. 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 periodto-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

10

More Bells & Whistles

Fast Track for Designers

To use dynamic time series reporting:


1) Select Essbase / Options.

2) 3) 4)

Select the Display tab. In the Dynamic Time Series section, select Latest Time Period. 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

10

More Bells & Whistles

Fast Track for Designers

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) 2) Select a data point on a worksheet, then select Essbase / Linked Objects. The Essbase Linked Objects Browser dialog opens. Click Attach.

3) 4) 5)

Select Cell Note. Enter your Cell Note. Click OK.

6)

Click OK.

10-34

Hyperion

Fast Track for Designers 7) 8)

More Bells & Whistles Select Essbase / Options. The Essbase Options window displays. Select the Style tab.

10

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. Select the cell note you wish to access (multiple notes may be attached) and click Edit. To review the note click View/Launch.

2) 3)

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

10

More Bells & Whistles 2) 3) 4) 5) 6) 7) 8)

Fast Track for Designers

Click Attach. The Attach Liked Object window displays. Select File. Browse to the directory containing the file. Click Open. The Attach Liked Object window displays. If desired, enter a File Description. Click OK. The Linked Object Browser displays. 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) 2) 3) On Corprpts.xls, select the Formulas worksheet. Select LIGHTBOLT. Select Essbase / Zoom In.

4) 5) 6)

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.

Click Yes. Select Essbase / Options. The Essbase Options window displays. Select the Global tab.

Hyperion

10-37

10

More Bells & Whistles 7) 8) 9)

Fast Track for Designers

In the Mouse Actions section, select Enable Linked Object Browsing. Click OK. 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) 13)

Click OK. Click Close.

1) 2) 3)

Notice that you cannot tell which cell has the attachment.

Displaying linked objects:


Select Essbase / Options. The Essbase Options window displays. Select the Style tab. In the Data Cells section, select Linked Objects.

10-38

Hyperion

Fast Track for Designers 4) 5) Click Format. The Font window displays.

More Bells & Whistles

10

Use this table to set the Linked Object Format.


Font Font Style Size Color MS Sans Serif Bold 12 Red

6) 7) 8) 9) 10)

Click OK. The Essbase Options window displays. Select the Display tab. In the Cells section, select Use Styles. Click OK. Select Essbase / Retrieve.

Linking files to cells:


1) 2) 3) 4) 5) 6) 7) 8) Double-click cell C7. The Linked Object Browser displays. Click Attach. In the Attachment Type section, select File. Browse to the Hyperion\Essbase\App\Bigcorp\Bin directory. Select Linknote.txt. Click Open. Click OK. The Linked Object Browser window displays. Click Close.

Hyperion

10-39

10

More Bells & Whistles 9) Select Essbase / Retrieve.

Fast Track for Designers

10) 11)

Double-click cell C7. The Linked Object Browser displays. 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

10

More Bells & Whistles

Fast Track for Designers

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

10

More Bells & Whistles

Fast Track for Designers

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

10

More Bells & Whistles

Fast Track for Designers

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) 2) On Corprpts.xls, select the Attributes worksheet. Select Essbase / Retrieve.

3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) 14) 15) 16) 17)

Notice that attribute dimensions do not display by default.

In cell A2, type Region Total. Select Essbase / Retrieve. Select Region Total. Select Essbase / Zoom In. The children of Region Total display. Select Mid West. Select Essbase / Zoom In. The report displays all customers with the Mid West attribute. Select Region Total. Select Essbase / Zoom Out. In cell B2, type OEM. Select Region Total. Select Essbase / Zoom In. The children of Region Total display. Select Mid West. Select Essbase / Zoom In. All OEM customers with the Mid West attribute display. In cell G1, type Attribute Calculations. Select Essbase / Retrieve.

10-46

Hyperion

Fast Track for Designers 18) 19) Select Attribute Calculations. Select Essbase / Zoom In.

More Bells & Whistles

10

Hyperion

10-47

10

More Bells & Whistles

Fast Track for Designers

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

10

More Bells & Whistles

Fast Track for Designers

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? 3) By Member Name By Generation Name By Level Name By Dynamic Time Series

Describe the formula preservation options.


Retain On Retrieval Retain On Keep And Remove Only Retain On Zooms Preserves formulas on a simple retrieve operation, but formulas are stepped on without warning for any other retrieve operation such as zoom. Enabling Retain On Retrieval activates other retrieve operations in layers, the first layer being the check box option to preserve formulas when using Keep Only and Remove Only. 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.

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 5)

More Bells & Whistles What can you use the linked objects feature for?

10

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

10

More Bells & Whistles

Fast Track for Designers

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


Setting the Stage

Fast Track for Designers

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


Step 4 - Set Spreadsheet Formatting

Fast Track for Designers

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


Check Your Understanding Solutions
1)

Fast Track for Designers

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

12

The Hyperion Essbase Query Designer

Fast Track for Designers

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.

Dont 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 addin 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

12

The Hyperion Essbase Query Designer

Fast Track for Designers

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 Workbook The Excel Workbook report can then be saved just like any 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 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.

Report Script

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) 2) 3) Open a blank worksheet and connect to the Analytic Services database you want to be the source of the report. Select Essbase / Options. The Essbase Options window displays. Set your options to appropriate settings (such as Adjust Columns, Use Aliases and so forth).

Hyperion

12-5

12

The Hyperion Essbase Query Designer 4)

Fast Track for Designers

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 on the sheet and create a new query. Here we are selecting to create a new query. We could have also 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. Right-click the sheet and select New / Query.

7)

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) 2) In the Navigation panel, select Dimensions. The Layout Panel displays the report format. 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) 4)

Drag and drop tiles from their default location to the Row section of the dialog including left to right sequential placement of nested rows. 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

12

The Hyperion Essbase Query Designer

Fast Track for Designers

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. Repeat this procedure for other Page header tiles.

3)

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 4)

The Hyperion Essbase Query Designer

12

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

12

The Hyperion Essbase Query Designer

Fast Track for Designers

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. 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.

Save Query As

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. This runs your report. It is a good idea to save the query before applying it but it is not required

Apply Query

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

12

The Hyperion Essbase Query Designer 2) In the Navigation Panel, click Data Filtering.

Fast Track for Designers

Select Data Filtering in the Navigation Window. This query filters for top 10 products based on Q1 Current Year values.

3) 4) 5)

Next to Rank, select Top and/or Bottom. Specify the number of Rows. Select the Dimension being ranked.

6)

You can only select from row dimensions.

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) 2) Create a new query including member selections, or open an existing query. 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

12

The Hyperion Essbase Query Designer 4) Select the Column Used for Filter.

Fast Track for Designers

5) 6)

This column contains the values that are the criteria for the screening of row members.

From the drop-down list. Select a Boolean comparison operator (=,>,<,...). 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) 2) Create a new query including member selections, or open an existing query. 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) 4)

Select Dimension being sorted. Specify Column used for sorting.

5)

This is the column which contains the values that are the criteria for the sorting of row members.

From the drop-down list specify whether you want sorting to be done in Ascending or Descending order.

Hyperion

12-15

12

The Hyperion Essbase Query Designer When sorting values, you should consider:

Fast Track for Designers

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) 2) 3) 4) 5) 6) 7) Open the Query Designer. Right-click the desired sheet in the Navigation Panel and select Open Query. In the Query Type drop-down list, select Wizard. Navigate to the .WIZ file you want to migrate. Click OK. The file opens in the Query Designer. Make any modifications to the query. Right-click in the Navigation Panel and select Save Query As or Save Query.

12-16

The query is saved as a .EQD extension automatically.

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

12

The Hyperion Essbase Query Designer

Fast Track for Designers

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 Column Headers Row Headers Margin, IBM Quarter1, Quarter 2 for Current Year, Prior Year, Budget and Scenario Variances Lev 0 Products with string starting with Thunder

The resulting report should look like this:

Hyperion

12-19

12

The Hyperion Essbase Query Designer

Fast Track for Designers

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

12

The Hyperion Essbase Query Designer

Fast Track for Designers

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

13

Calculation Basics

Fast Track for Designers

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

13

Calculation Basics

Fast Track for Designers

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

13

Calculation Basics 2) 3) 4)

Fast Track for Designers Select functions in the Formula Editor to place them onto Formula Editor interface. Select members from the Dimensions/Members list windows to place them onto the Formula Editor interface for building formulas. 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

13

Calculation Basics

Fast Track for Designers 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. Data is created or modified for specific members according to formulas associated with the member either in the outline or in a calc script. 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).

Member Formulas Housekeeping

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

13

Calculation Basics

Fast Track for Designers 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 dimensions and members displays in the Member List window.

Helps you find member names you have forgotten. Lets you specify an alias table so you can include alias names in your calc script.

Hyperion

13-11

13

Calculation Basics

Fast Track for Designers

Calc Script Toolbar


The calc script editor is equipped with a fully functional toolbar that lets you access much of the editors 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) 2) From the Application Manager, click Calc Scripts 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) 2) 3) 4) Select Formula / Paste Function. Select a function category on the left window, then select a specific command within the category on the right. If applicable, check Insert Arguments. 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

13

Calculation Basics

Fast Track for Designers

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 3) From the Spreadsheet Add-in, select Essbase / Calculate. Click Run.

Calculation Basics

13

4)

You must be connected to a specific database to execute a calc script in this manner.

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

13

Calculation Basics

Fast Track for Designers

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

13

Calculation Basics

Fast Track for Designers

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).

Boolean

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).

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

13

Calculation Basics

Fast Track for Designers

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

13

Calculation Basics

Fast Track for Designers

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

13

Calculation Basics

Fast Track for Designers

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. 4) Roll Up Member Formulas Housekeeping

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 5) Statistical Date & Time Miscellaneous

Calculation Basics

13

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

13

Calculation Basics

Fast Track for Designers

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

14

Understanding Data Blocks

Fast Track for Designers

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 Ive 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

14

Understanding Data Blocks

Fast Track for Designers

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

14

Understanding Data Blocks

Fast Track for Designers

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 Other rules about data blocks:

Understanding Data Blocks

14

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

14

Understanding Data Blocks

Fast Track for Designers

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. 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. 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. Data blocks are created when the DATACOPY command is executed in a calc script.

Sparse Roll-up

Member Formula

Datacopy

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 sparse dimensions.

Index (.ind)

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 c c o u n t s

Year Tot Each block contains cells which are defined by the intersection of the stored members of the dense dimensions

Hyperion

14-9

14

Understanding Data Blocks

Fast Track for Designers

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 Rates Dollars 10 $1 #M Jan
After input, data blocks are created for combinations of customer and product where there is actual data.

15 $1 #M Feb

20 $2 #M Mar

#M #M #M Q1

15 $2 #M Apr

20 $2 #M May

25 $2 #M Jun

#M #M #M Q2

15 $3 #M Jul ...

Channel OEM IBM Light 365A Light 520A Light Total Thun 363A Thun 520A Thun 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

14

Understanding Data Blocks

Fast Track for Designers

Step 2 - Calc Dim (Accounts)


Units Rates Dollars 10 $1 $10 Jan
After CALCDIM (Accounts), no new data blocks are created. The calculation has only filled out the existing dollar and other cells in the blocks that were created upon input.

15 $1 $15 Feb

20 $2 $40 Mar

45 $1.3 $55 Q1

15 $2 $30 Apr

20 $2 $40 May

25 $2 $50 Jun

60 $2 $120 Q2

15 $3 $45 Jul ...

Channel OEM IBM Light 365A Light 520A Light Total Thun 363A Thun 520A Thun 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 Rates Dollars 10 $1 $10 Jan
After CALCDIM (Accounts), no new data blocks are created. The calculation has only filled out the existing quarter and year tot cells in the blocks that were created upon input.

15 $1 $15 Feb

20 $2 $40 Mar

#M #M #M Q1

15 $2 $30 Apr

20 $2 $40 May

25 $2 $50 Jun

#M #M #M Q2

15 $3 $45 Jul ...

Channel OEM IBM Light 365A Light 520A Light Total Thun 363A Thun 520A Thun 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 365A Light 520A Light Total Thun 363A Thun 520A Thun 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

14

Understanding Data Blocks

Fast Track for Designers

Step 5 - Calc Dim (Product)


New upper level blocks created from product roll-up

Channel OEM IBM Light 365A


SKUs input at the zero

Light 520A

Light Total

Thun 363A

Thun 520A

Thun Total

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 Blocks

Exactly that, the total number of data blocks in the 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. 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. Computed as the product of the stored members of the sparse dimensions. In most databases, this number is very large and has no real meaning except as to its order of magnitude. Number of data blocks at the zero level. Zero level is not necessarily the same as blocks created upon input if data is loaded at upper levels. Number of data blocks at upper levels. Upper level 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.

Block Size in Bytes

Potential Number of Blocks

Existing Zero Level Blocks Existing Upper Level Blocks

Hyperion

14-15

14

Understanding Data Blocks

Fast Track for Designers

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. Number of Existing Blocks divided by Potential Number Of Blocks. This is a measure of the sparsity of 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. 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.

Percentage of Maximum Blocks Existing

Compression Ratio

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) 2) Select Database / Information. 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

14

Understanding Data Blocks

Fast Track for Designers

Exercise - Anatomy of a Roll-up


In this exercise you create a new calc script that calculates each dimension in the Sales database. 1) 2) 3) From the Application Manager desktop Databases area, select Sales. Click Calc Scripts Click New. .

4)

Select Options / Associate Outline.

5) 6)

In the Objects section, select Sales. Click OK.

14-18

Hyperion

Fast Track for Designers 7) Select Formula / Paste Function.

Understanding Data Blocks

14

8) 9)

In the Categories section, select Functional. In the Templates section, select SETUPDATECALC.

10)

This commands turns off Intelligent Calc functionality for this calc script.

Click OK.

11)

In the Calc Script Editor, modify the SET UPDATECALC to OFF followed by a semicolon.

Hyperion

14-19

14

Understanding Data Blocks

Fast Track for Designers

Calculate the Accounts dimension:


1) 2) 3) 4) 5) 6) 7) Select Formula / Paste Function. The Functional Template window displays. In the Categories section, select Functional. In the Templates section, select CALC DIM. Click OK. The function displays in the Calc Script Editor. In the Calc Script Editor, highlight dimlist. In the Dimensions area, highlight Accounts. In the Members area, select Accounts.

dimlist is replaced by the Accounts member.

8) 9) 10) 11)

Select File / Save. Name the calc script Calccorp. Click OK. 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 12) Select Essbase / Connect.

Understanding Data Blocks

14

13) 14) 15) 16) 17) 18) 19) 20) 21)

In the Username field, type trnadmin. In the Password field, type hyperion. In the Application/Database section, select Bigcorp / Sales. Click OK. Select Essbase / Retrieve. You should see only input data at this point. Select Essbase / Calculation. The Essbase Calculation dialog box displays. Select Calccorp. Click Calculate. 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

14

Understanding Data Blocks 2) In Calc Dim, insert Year Tot after Accounts.

Fast Track for Designers

Make sure to separate Account and Year Tot with a comma.

3) 4) 5) 6) 7) 8)

Save the calc script. Open Anatomy.xls. Select Essbase / Calculate. Select Calccorp. Click Calculate. Select Essbase / Retrieve and analyze the result.

14-22

Hyperion

Fast Track for Designers

Understanding Data Blocks

14

Calculating the Customer dimension:


1) 2) Open the Calccorp calc script. In Calc Dim, insert Customer after Year Tot.

3) 4) 5) 6) 7) 8)

Make sure to separate Year Tot and Customer with a comma.

Save the calc script. Open Anatomy.xls. Select Essbase / Calculate. Select Calccorp. Click Calculate. Change the page header from IBM to OEM.

9)

OEM is an upper level member across the Customer dimension.

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) 2) 3) 4) 5) 6) 7) 8) Open the Calccorp calc script. In Calc Dim, insert Product after Customer. Save the calc script. Open Anatomy.xls. Select Essbase / Calculate. Select Calccorp. Click Calculate. Change the page header label from Lightbolt 365 A to Lightbolt.

Lightbolt is an upper level member across the Product dimension.

Hyperion

14-23

14

Understanding Data Blocks 9)

Fast Track for Designers

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

14

Understanding Data Blocks

Fast Track for Designers

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 percentage 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. 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. 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. Data blocks are created when the DATACOPY command is executed in a calc script.

Sparse Roll-up

Member Formula

Datacopy

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

14

Understanding Data Blocks 6)

Fast Track for Designers

List and describe the available block parameter measures.


Number Of Existing Blocks Exactly that, the total number of data blocks in the 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. 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. Computed as the product of the stored members of the sparse dimensions. In most databases, this number is very large and has no real meaning except as to its order of magnitude. Number of data blocks at the zero level. Zero level is not necessarily the same as blocks created upon input if data are loaded at upper levels. Number of data blocks at upper levels. Upper level 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. 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. Number of Existing Blocks divided by Potential Number Of Blocks. This is a measure of the sparsity of 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. 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.

Block Size in Bytes

Potential Number of Blocks Existing Zero Level Blocks Existing Upper Level Blocks

Block Density

Percentage of Maximum Blocks Existing

Compression Ratio

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

15

Calc Script Architecture

Fast Track for Designers

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

HOUSEKEEPING: procedural and nonprocedural commands at beginning of the calc script. THE BASELINE FIX: defines and focuses calculations on the specific set of data. Most often includes scenarios and/or time frames.

/*Calc Script Purpose: Normalizes actuals for intercompany adjustments, allocations, push down of rates and other adjustments to set up data for apples to apples melding on in month actuals with out month forecast information. Back calc rates.*/ SET AGGMISSG OFF; SET UPDATECALC OFF; /*Fix on specific actual/ forecast scenario and in months of actuals.*/ FIX (FY95 DEC FCST, 01, 02, 03) /*Allocate costs by volume and gross Sales. First roll up volume and sales and other impacted accounts.*/ 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 /*Sets up intercompany eliminations in Org Structure dimension.*/ FIX (Interco Sales) Interco Elimination LA = Interco Gross LA; Interco Elimination HC = Interco Gross HC; ENDFIX FIX (Interco Raw Material) Interco Elimination LA = Interco Gross LA->Interco Sales; Interco Elimination HC = Interco Gross HC->Interco Sales; ENDFIX FIX (Interco Tax Rebate) 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;

NORMALIZATION: takes care of cleanup business such as allocations and adjustments. Typically includes focused rollups followed by the normalization calcs themselves.

Hyperion

15-3

15

Calc Script Architecture

Fast Track for Designers

More normalization calculations.

THE MAIN ROLLUP: with the data now normalized, it is OK to roll up all of the dimensions.

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; 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; ) /*Sequence to roll up all data that create most of the upper level blocks. In above calc sequences, all data is now normalized*/ CALC DIM (Accounts, Year, Org_Structure, Region, DistiCenter); /*Back calculate all rates from volume and dollar inputs, specifically for upper levels.*/ ( Price Per SC = Gross Sales / Volume; List Price = Price Per SC * Stat Factor; 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; 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);) ) /*Endfix for original Fix which defines the scenario and in month actuals.*/ ENDFIX

THE BACK CALC: everything is rolled up, but upper level rates (per unit rates and percentages) are aggregated across dimensions rather than average calc'd. The back calc corrects them.

Closing out the Baseline Fix.

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 SET AGGMISSG ON | OFF SET UPDATECALC ON|OFF Description To override the default database setting for Aggregate missing values. For intelligent calc block marking to override the Server .CFG setting for intelligent calc. For intelligent calc block marking to override the Server .CFG setting for intelligent calc. For setting calculator cache levels according to essbase.cfg file setting. For setting levels of calculating message information in the application log.

SET CLEARUPDATESTATUS AFTER | ONLY | OFF SET CACHE HIGH | DEFAULT | LOW | OFF | ALL SET MSG ERROR | WARN | INFO | SUMMARY | DETAIL | NONE:

Hyperion

15-5

15

Calc Script Architecture

Fast Track for Designers

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 CLEARBLOCK ALL | UPPER | NONINPUT | DYNAMIC CLEARDATA mbrName DATACOPY mbrName1 TO mbrName2 Description For clearing previous input or upper level data, or stored dynamic calculations. For clearing specific members or member combinations. The data blocks remain. For copying focused or complete data 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? Thats a good question.

Hyperion

15-7

15

Calc Script Architecture

Fast Track for Designers

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 rollup. 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? Thats 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

15

Calc Script Architecture

Fast Track for Designers

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 intercompany account cleanups.

Pushes down upper level rate inputs

Sums up special items to be allocated.

Does a broad range of allocations using a fixed input allocation table.

FIX (Interco Sales) Interco Elimination LA = Interco Gross LA; Interco Elimination HC = Interco Gross HC; 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; 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; 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.
Jan (+) Unit (+) Price (+) Total Sales 10 5 50 Feb (+) 10 5 50 Mar (+) 10 5 50 Qtr 1 30 15 450
Based on the default calculation order of Analytic Services, these calculations are incorrect. Total Sales for the quarter should be 150 not 450.

The back calc gets the units * rates = dollars relationships in sync for upper levels.

Hyperion

15-11

15

Calc Script Architecture

Fast Track for Designers

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 calculated items is Rate = Dollars / Units.

Price Per SC = Gross Sales / Volume; List Price = Price Per SC * Stat Factor; 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

15

Calc Script Architecture

Fast Track for Designers

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

16

The Most Important Calc Scripts

Fast Track for Designers

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

16

The Most Important Calc Scripts

Fast Track for Designers

Member Formulas
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); )

Analytic Services wants to be your friend by calculating member formulas when the data block is in memory instead of the correct sequence after a Calc Dim. Parentheses prevent jump ahead behavior.

Most of the lines of code in a calc script are member formulas. 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 of Analytic Services calc function, can be used to force unary operator calculations on a group of relationship members in a hierarchy.

Revenue; Cost of Sales; @IDESCENDANTS (Gross Margin); @CHILDREN (Variances);

16-4

Hyperion

Fast Track for Designers

The Most Important Calc Scripts Forcing calculation of formulas in the outline:

16

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

16

The Most Important Calc Scripts

Fast Track for Designers

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:
For IF statements: Commissions ( IF (Sales > 1000) Commissions = Sales *.07; ELSE Commissions = Sales *.04; ENDIF )

This is a pointer. It is the statement of any stored member in the dimension being calculated upon before the member block calculation that is opened with a parenthesis.

For VAR definitions (using temporary variables) that reference member names:
Material Variances ( AllocRatioUnits = Units / Units->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-> ChannelTotal; * AllocRatioUnits; )

In addition to the pointer, calc member blocks require member formulas to be enclosed in parentheses.

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

16

The Most Important Calc Scripts 3)

Fast Track for Designers

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 to month Jan contradicts the Calc Dim on Year Tot.

FIX (Actual, Jan) CALC DIM (Accounts, Year Tot, Customer, Product); ENDFIX

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

16

The Most Important Calc Scripts

Fast Track for Designers

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 to Actuals for descendants of Family Total.
List Price ( IF (@ISMBR (Actual) AND @ISDESC (Family Total)) List Price = Net Sales / Units; Unit Cost = Cost of Sales / Units; ENDIF

Remember from the Member Formula section, IF requires a calc member block begins with a pointer and is enclosed in parentheses.

In this example, the formula adds additional calculations with a conditional ELSEIF statement:
List Price ( IF (@ISMBR (Actual) AND @ISDESC (Family Total)) List Price = Net Sales / Units; Unit Cost = Cost of Sales/ Units; ELSEIF (@ISMBR (Budget) AND @ISDESC (Family Total)) List Price = (Net Sales ->Actual/ Units->Actual)*1.1; Unit Cost = (Cost of Sales ->Actual/Units->Actual)*1.1; ENDIF )

With If, Else and ElseIf, it is easy to write formulas with multiple conditions stringed together.

IF statements are incorporated into and follow the syntax rules of calc member blocks.

This isnt rocket science. Just be patient.

Hyperion

16-11

16

The Most Important Calc Scripts

Fast Track for Designers

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

16

The Most Important Calc Scripts Two important conclusions about IF statements:

Fast Track for Designers

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) 2) Open Anatomy.xls. 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

16

The Most Important Calc Scripts

Fast Track for Designers

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

16

The Most Important Calc Scripts

Fast Track for Designers

The Analytic Services calculator incorporates a broad range of functions that reference the relationships between members within a hierarchy or generation/level references:
@ANCESTORS @CHILDREN @DESCENDENTS @SIBLINGS @PARENT @GEN @LEV Any member higher in a hierarchy Any member directly lower in a hierarchy Any member anywhere lower in a hierarchy Any member anywhere with the same parent Any member next up in a hierarchy Any member at a specific generation 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 Member Sets Description Return a list of members to be acted upon. These macros are most typically used with FIX statements. Ask if a condition is true or not about a relationship. Booleans are always used with IF statements. Return a value of the relationship member relative to a member being calculated. Functions @ANCESTORS @CHILDREN @DESCENDANTS @IDESCENDANTS @ISANCEST @ISCHILD @ISDESC @ISIDESC @ISGEN @ANCESTVAL @MDANCESTVAL @SANCESTVAL @PARENTVAL @GEN @CURGEN

Booleans

Relationship Functions

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

16

The Most Important Calc Scripts

Fast Track for Designers

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 @ISSAMEGEN (mbrName)


Booleans provide a broad range of functionality for structuring conditional calculations that reference member relationships or attributes.

The Most Important Calc Scripts

16

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

16

The Most Important Calc Scripts

Fast Track for Designers

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.

3) Hyperion

The scope may be set at any level of granularity (server-wide, application specific or database specific).

In the Variable field, type a one word variable name.

16-23

16

The Most Important Calc Scripts 4)

Fast Track for Designers

In the Value field, type the member name the variable references.

5) 6)

Click Set. 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 2)

The Most Important Calc Scripts

16

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

16

The Most Important Calc Scripts 2)

Fast Track for Designers

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; VAR StdMargin; VAR ResultUnitsRestated; VAR StdAvgMarginUnit;

DECLARE IT: The variable StdAvg MarginUnit is declared.

Hyperion

16-27

16

The Most Important Calc Scripts 2)

Fast Track for Designers

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; ResultUnitsRestated = @ANCESTVAL (Product, 2, Units->Actual) * (Units->Budget / @ANCESTVAL (Product, 2, Units->Budget)); StdAvgMarginUnit = @ANCESTVAL (Product, 2, Margin->Budget) / @ANCESTVAL (Product, 2, Units->Budget);

DEFINE IT: The variable StdAvg MarginUnit is defined.

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; Scenario Qty Var = ((ResultUnits - StdUnits) * StdAvgMarginUnit) + (ResultUnitsRestated - StdUnits) * ((StdMargin / StdUnits) - StdAvgMarginUnit); Scenario Mix Var = (ResultUnits - ResultUnitsRestated) * ((StdMargin / StdUnits) - StdAvgMarginUnit);

USE IT: The variable StdAvg MarginUnit is now used in three different places in the actual member formula calculations.

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

16

The Most Important Calc Scripts 6)

Fast Track for Designers

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

16

The Most Important Calc Scripts

Fast Track for Designers

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 3)

The Most Important Calc Scripts Describe Top-down calculating.

16

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

16

The Most Important Calc Scripts

Fast Track for Designers

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 Member Sets Description Return a list of members to be acted upon. These macros are most typically used with FIX statements. Ask if a condition is true or not about a relationship. Booleans are always used with IF statements. Return a value of the relationship member relative to a member being calculated. Functions @ANCESTORS @CHILDREN @DESCENDANTS @IDESCENDANTS @ISANCEST @ISCHILD @ISDESC @ISIDESC @ISGEN @ANCESTVAL @MDANCESTVAL @SANCESTVAL @PARENTVAL @GEN @CURGEN

Booleans

Relationship Functions

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


Setting the Stage

Fast Track for Designers

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 Data)

Test Pilot Script (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) 3) 4) 5) 6)

Type an Application Name. In the Location section, select Server. Select a Server. Click OK. From the Application Manager desktop, select File / New / Database.

7) 8) 9)

Type a Database Name. Select a Database Type. 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


10)

Fast Track for Designers

Saving the client based outline to the server:


From the Application Manager desktop, select Database Outlines 11) 12) .

Click Open. The Outline Editor displays. Select File / Open.

13) 14) 15)

Assuming the outline is on the client machine, select Client. The File System button activates. Click File System. Find and open the source outline.

16) 17) 18)

This is the client-based outline.

With the client based outline open, select File / Save As. The Save Server Object window displays. In the Location section, select Server. 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 19) Click Yes.

Calc Script Development Procedures

17

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


2) Select File / Save As.

Fast Track for Designers

3) 4) 5)

Select the destination application and database within the Save Server Object window. Type an Object Name for the load rule or calc script. 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 Data)

Test Pilot Script 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) 2) 3) 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.

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.

2) 3)

Different input sheets are typically required where the levels of input vary.

Retrieve from an empty outline. 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) 2) Retrieve into a blank worksheet from your empty outline. 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


Implement a Draft and Test Cycle

Fast Track for Designers

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) 2) 3) Draft a line of calc script code. Save the script. Execute a CLEARBLOCK ALL calc script.

4)

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.

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 5) 6) Execute the calc script.

Calc Script Development Procedures

17

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 3)

Calc Script Development Procedures In the Content section, select Calculation (1012000 to 1012750).

17

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


Performance

Fast Track for Designers

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


Check Your Understanding Solutions
1)

Fast Track for Designers

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 3)

Calc Script Development Procedures

17

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

18

Heads Up Issues

Fast Track for Designers

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
Its 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

18

Heads Up Issues

Fast Track for Designers

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) 2) From the Application Manager desktop, select a database. 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

18

Heads Up Issues

Fast Track for Designers 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

18

Heads Up Issues

Fast Track for Designers 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 multilevel 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

18

Heads Up Issues

Fast Track for Designers

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

18

Heads Up Issues

Fast Track for Designers

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

18

Heads Up Issues

Fast Track for Designers

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). 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.

2)

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 Accounts dense, no Time tag Accounts dense, Time dense Accounts dense, Time sparse and no other dense dimensions Two-for-one Does Not Work Accounts sparse, no Time tag Accounts dense, Time sparse, and there are other dense dimensions Accounts sparse, Time sparse

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 databases 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

18

Heads Up Issues

Fast Track for Designers 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) 2) With a text editor, open the server configuration file essbase.cfg. 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) 2) 3) 4) 5) Check the current status if you plan to enable parallel calculation in the configuration file. Add CALCPARALLEL to the server configuration file or add SET CALCPARALLEL to a calculation script. If needed, enable Analytic Services to use more than the one sparse dimension to identify tasks for parallel calculation. Restart the server if you added or modified entries to the configuration file. 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

18

Heads Up Issues

Fast Track for Designers

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

18

Heads Up Issues

Fast Track for Designers

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 4)

Heads Up Issues When is it preferable to load data to upper level members?

18

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

18

Heads Up Issues 6)

Fast Track for Designers 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

19

Normalization Calculations

Fast Track for Designers

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.

Ive 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

19

Normalization Calculations

Fast Track for Designers

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 Sourcing Input Level Push to Level Methodology Is the member created from a direct input, a formula calculation or a CALC DIM roll-up? For input accounts, at what generation or level is data being loaded at? For input accounts, to what generation or level need input data be copied or allocated to? 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. Where tables are created for each different business view dimension. This may be necessary when data is being input and calculated upon at different levels across multiple dimensions. Where different scenarios are the domain of different 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.

Multiple Table Formats

Multiple Staff Involvements

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

19

Normalization Calculations

Fast Track for Designers

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; 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

An allocation calc script that makes extensive use of variables, relationship operators and cross dimensional operators.

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

19

Normalization Calculations 2)

Fast Track for Designers

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: Allocate an expense to ship to level customers based on % of revenue:
Exp 1 = (Revenue / @ANCESTVAL (Customer, 2, Revenue)) * @ANCESTVAL (Customer, 2, Exp 1);

Single dimension allocation: Shipping cost at the SKU level equals the ratio of the SKU's units to total units for the product group multiplied by 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. Focus on the Budget scenario. Push down units and rates loaded at upper levels to level zero. 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. Allocate other expenses to zero level using a variable allocation ratios. Focus calculations using Fix to zero level members for Customers and Products. Perform a dimension roll-up. Recalculate any upper level rates or percentages that contain erroneous data.

2) 3) 4)

5)

6) 7)

Hyperion

19-9

19

Normalization Calculations

Fast Track for Designers

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

19

Normalization Calculations

Fast Track for Designers

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


Setting the Stage

Fast Track for Designers

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 onthe-fly when requested by users rather than during the batch calculation process. There are two types of dynamic calc settings:
Dynamic Calc Dynamic Calc And Store Values are calculated on the fly and discarded, but are not retained in the database. Values are calculated on the fly, and retained in the 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 2) Select Edit / Properties.

Using Dynamic Calc

20

3) 4)

Select the Member Info tab. 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) 3)

Select the Style tab. In the Members section, select Dynamic Calc.

4)

You may have to scroll down to locate Dynamic Calc.

Click Format.

5)

Select desired options.

20-4

Hyperion

Fast Track for Designers 6) 7) Click OK. The Font window closes. Click OK.

Using Dynamic Calc

20

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) 2) 3) 4) 5) The dimension tagged Accounts if it is dense. Dense dimensions in outline or CALC DIM statement order. The dimension tagged Accounts if it is sparse. Sparse dimensions in outline order or CALC DIM statement order. 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


1) 2) 3) 4) 5) 6) 7) Dimension tagged Accounts (if sparse) 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

Fast Track for Designers

Upon retrieval, the calculation order for Dynamic Calc members, Store and Non-Store, is as follows:

Members tagged as Dynamic and tagged with Two-pass calculation

If there are multiple members tagged as Dynamic and Twopass, 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


Dense Dimension Guidelines

Fast Track for Designers

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


Dynamic Calc And Store Members

Fast Track for Designers

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 first retrieval. Subsequent retrievals are as fast as a regular 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.

I need to be more dynamic!

20-12

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.

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


Check Your Understanding
1) What does Dynamic Calc do?

Fast Track for Designers

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


Check Your Understanding Solutions
1) What does Dynamic Calc do?

Fast Track for Designers

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 4)

Using Dynamic Calc Which dynamic calc setting do you normally use for a sparse dimension? Why?

20

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


Using Intelligent Calc

Fast Track for Designers

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 2)

Using Intelligent Calc

21

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


Calc Dim

Fast Track for Designers

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


How Blocks are Marked Dirty

Fast Track for Designers

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 Clean Clean Dirty Dirty Actual Status Clean Dirty Dirty Clean Concern No Problem False Positive: Data Integrity Issue No Problem 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


Check Your Understanding Solutions
1) What is Intelligent Calc?

Fast Track for Designers

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

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) 2) 3) 4) Select Year Tot. Click Add Sibling Name it Scenario. Type [Enter]. .

5) 6) 7) 8) 9) 10) 11) 12) 13) 14) 15)

Click Yes. Select Scenario. Click Add Child .

Add theses children to Scenario: Current Year, Prior Year, Forecast, Budget and Scenario Variances Select Scenario Variances. Click Add Child .

Add these children to Scenario Variances: Act Vs Bud, Act Vs Fcst and Bud Vs Fcst. Select Act Vs Bud. Click Add Child .

Add these children to Act Vs Bud: Current Year and Budget. Open Member Properties dialog for each and set storage type to Shared Member.

A-2

Hyperion

Fast Track for Designers 16) 17) 18) Select Budget. Select Edit / Properties.

Appendix - Exercise Solutions

Change Consolidation Operator of Budget to a minus (-).

Creating a formula for Act Vs Fcst:


1) 2) Select Act Vs Fcst. Select Edit / Formula.

3) 4) 5) 6) 7) 8)

In the Dimensions section, select Scenario. Scenario displays under Members. In the Members section, expand Scenario. The children of Scenario display. Select Current Year. Click Minus .

In the Members section, select Forecast. Click Semicolon .

Hyperion

A-3

Appendix - Exercise Solutions 9) Select File / Save.

Fast Track for Designers

Assigning non-consolidated operators:


1) 2) 3) 4) 5) Select Current Year. Select Edit / Properties. The Member properties window displays. Change the consolidation operator from plus (+) to ignore (~). Click OK. 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) 2) 3) Select Scenario. Select Edit / Properties. The Member Properties window displays. 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

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) 2) 3) 4) 5) 6) 7) 8) In the Sales outline, add a sibling to Scenarios named Accounts. Add a child to Accounts named Gross Sales. Add children to Gross Sales named Units and List Price. Select List Price. Select Edit / Properties. The Member Properties window displays. Change the consolidation operator of List Price to multiply (*). Open Corpacct.xls (located in the B100_5\Outline directory). 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

Create members through Net Sales using unary operators:


1) 2) 3) 4) 5) 6) 7) 8) 9) 10) Create Discounts as a sibling of Gross Sales. Add children to Discounts named Gross Sales and Discount %. Under Discounts, select Gross Sales. Select Edit / Properties. The Member Properties window displays. Change Data Storage to Shared Member. Click OK. Select Discount %. Select Edit / Properties. The Member Properties window displays. Change the Consolidation operator of Discount % to multiplication (*). Create Net Sales as a child of Accounts.

11) 12)

Since Gross Sales and Discounts calculate Net Sales, they are children of Net Sales.

Move Gross Sales and Discounts from siblings to children of Net Sales. Change the Consolidation operator of Discounts to subtraction (-).

Creating additional members through Gross Margin %:


1) 2) 3) 4) 5) Analyze parent/child relationships in the Gross Margin Analysis worksheet (.xls file). On Corpacct.xls, select cells A7:A20. Select Edit / Copy. In the Sales outline, select Accounts. Select Edit / Paste Child. The members from cells A7:A20 display under Accounts.

A-6

Hyperion

Fast Track for Designers 6) 7) 8) 9) 10) 11) 12) 13) 14) 15) 16) 17) 18) 19) 20) 21) 22) 23)

Appendix - Exercise Solutions

Move Direct Labor, Material and Overhead to children of Cost Of Sales. Move Material Variances, Labor Variances, Overhead Variances, Obsolete Charges and Inventory Adjustments to children of Other CGS. Move Net Sales, Cost of Sales and Other CGS to children of Gross Margin. On Corpacct.xls, select Units (cell D3). In the Sales outline, select Direct Labor. Select Edit / Paste Child. Units displays under Direct Labor. Select Material. Select Edit / Paste Child. Units displays under Material. On Corpacct.xls, select Labor/Unit (cell D7). In the Sales outline, select Direct Labor. Select Edit / Paste Child. Labor/Unit displays under Direct Labor. On Corpacct.xls, select Matl/Unit (cell D8). In the Sales outline, select Material. Select Edit / Paste Child. Matl/Unit displays under Direct Labor. On Corpacct.xls, select Overhead Rate (cell D9). In the Sales outline, select Overhead. Select Edit / Paste Child. Overhead Rate displays under Overhead. Add a sibling to Overhead Rate named Direct Labor.

Hyperion

A-7

Appendix - Exercise Solutions 24)

Fast Track for Designers

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.

26)

Try to find any data storage problems.

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 27)

Appendix - Exercise Solutions Use this table to change the properties for the members in the Accounts dimension.
Parent Accounts Gross Margin Gross Margin % Gross Margin Cost Of Sales Other CGS Direct Labor Units Labor/Unit Material Units Matl/Unit Overhead Direct Labor Overhead Rate Set the Consolidation operator to subtraction (-). Set the Consolidation operator to subtraction (-). Set the Consolidation operator to ignore (~). Set the Consolidation operator to ignore (~). Member Property Settings

Set Data Storage to Shared Member. Set Consolidation operator to multiplication (*).

Set Data Storage to Shared Member. Set Consolidation operator to multiplication (*).

Set Data Storage to Shared Member. Set Consolidation operator to multiplication (*).

28) 29)

Select Outline / Verify. Correct any errors that may occur.

Hyperion

A-9

Appendix - Exercise Solutions 30)

Fast Track for Designers

Select File / Save Your Accounts dimension should look similar to this.

A-10

Hyperion

Fast Track for Designers

Appendix - Exercise Solutions

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. Select Data Load Rules and click New. The Data Prep Editor opens with a new rules file.

2)

Associating the load rule with the Sales outline:


1) 2) Select Options / Associate Outline. 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) 2) Select File / Open Data File. Select Client as the Location and Excel Sheets in the List Objects of Type list.

Hyperion

A-11

Appendix - Exercise Solutions 3)

Fast Track for Designers

Open the file Loadrule\FamGen.xls. Use File System if necessary.

1)

To see the file, you need to set the file type to .XLS or All files.

Setting the dimension building mode:


Select View / Dimension Building Fields.

1) 2) 3) 4)

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:


Select Options / Data File Properties. Select the File Delimiter tab. Confirm that the delimiter setting is the default Tab. Select OK.

A-12

Hyperion

Fast Track for Designers

Appendix - Exercise Solutions

Creating the Product dimension:


1) Select Options / Dimension Build Settings.

2) 3) 4) 5) 6)

Select the Dimension Definition tab. Select Rules File. Next to Name enter Product. Click Add. Product displays in the Rules File list. Click Properties.

7)

Select the Dimension Properties tab.

Hyperion

A-13

Appendix - Exercise Solutions 8) 9) 10) 11) In the Data Storage section select Label Only. In the Configuration section select Sparse.

Fast Track for Designers

Click OK. The Dimension Build Settings window displays. Click OK.

Selecting the load building method:


1) 2) 3) 4) Select Options / Dimension Build Settings. Dimension Build Settings dialog box displays. Select the Dimension Build Settings tab. From the Dimension list in the upper left corner, select the Product. Select Use Generation References.

5)

Dimensions can be populated by files structured using Generation References, Level References or Parent/Child References.

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. Select the Dimension Building Properties tab. Select Product. Product displays in the Dimension area. In the Field type section, select Generation, for the generation Number, enter 2. Click Next. Field Number: 2 displays above the Field Definition area. 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. Click Next. Field 3 displays.

2) 3) 4) 5) 6)

7)

A-14

Hyperion

Fast Track for Designers 8)

Appendix - Exercise Solutions

Continue the process for the subsequent fields using the information in the chart below:
Field # 3 4 5 6 Field Type Generation Generation Generation Alias Generation 3 4 5 5 Dimension Product Product Product Product

9)

Click OK. You return to the Data Prep Editor.

Ignoring the first header row:


1) 2) 3) 4) Select Options / Data File Properties. Data File Properties Dialog displays. Select the Header Records tab. Enter 1 for the Number Of Lines To Skip in the Header Lines Group. Click OK. You return to the Data Prep Editor.

Saving the load rule:


1) 2) 3) 4) Select Options / Validate to validate the load rule. Correct any errors noted. When you receive the message, The rules file is correct for dimension building, click OK. Select File / Save.

Hyperion

A-15

Appendix - Exercise Solutions 5)

Fast Track for Designers

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) 2) From the Application Manager, Select Database Outlines .

Select the Bigcorp application and the Sales database and then click Open. The Sales outline displays. Select File / Update Outline. Find the source file Famgen.xls (located in the B100_5\Loadrule directory). Find the load rule Fam_Gen (located in the B100_5\Loadrule directory). Note the location of the Dimbuild.err file directory. Review this file if errors occur during the dimension build loading. Select OK. If the load fails open the error file and make corrections, then try again.

3) 4) 5) 6) 7)

A-16

Hyperion

Fast Track for Designers 8)

Appendix - Exercise Solutions

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

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) 2) 3) 4) 5) 6) 7) 8) 9) Select Data Load Rules Select File / Open. Select Client. Click File System. Select Fam_Lev and click Open. The Data Prep Editor displays. Select File \ Open Data File. The Open Client Data File Object window displays. For Location, select Client. In the List Objects of Type drop-down list, select Excel Sheets is selected, highlight Loadrule/FamLev.xls. Use File System if necessary. Click OK. .

A-18

Hyperion

Fast Track for Designers 10)

Appendix - Exercise Solutions

Review the load rule structure and contrast to the Fam_Gen load rule.

11)

Columns are organized bottoms up, left to right.

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) 2) 3) 4) 5) 6) 7) Highlight the Bigcorp application and the Sales database. Select Database Outlines Click Open. Expand the Product dimension. Select Family Total and type [Del]. A confirmation message displays. Click Yes. Family Total and all its children are deleted from the outline. Select File / Update Outline. .

8) 9) 10) 11) 12)

Select Data File. From the Client, use Find to select Loadrule/FamLev.xls. From the Client, use Find to select the Fam_Lev.rul. Note the location of the error file and click OK. The Fam_Lev load rule runs. 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 13) 14) Select File \ Save to save the new structure.

Fast Track for Designers

To return to the Server Desktop, select File \ Close.

A-20

Hyperion

Fast Track for Designers

Appendix - Exercise Solutions

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. Click Associate Outline . The Associate Server Outline Object dialog opens. 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. Select File / Open Data File. In the Location section, select Client. From the List Objects of Type drop-down list, select Excel Sheets. Click File System. Select Configpc.xls (located in the B100_5\LoadRule directory). Click OK. Select View / Dimension Building Fields. A check mark appears beside Dimension Building Fields. Select Options / Dimension Build Settings. Select the Dimension Build Settings tab. From the Dimension list, select Product. In the Build Method section, select Use Parent/Child.

2) 3)

4) 5) 6) 7) 8) 9) 10) 11) 12) 13) 14)

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 15) Click OK. You return to the Data Prep Editor.

Fast Track for Designers

Associating columns with field properties:


1) 2) 3) Select any member in column one and select Field / Properties. Click the Dimension Building Properties tab. From Field Definition, select Parent.

4) 5)

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.

From Dimension, select Product. The name Product displays in the Dimension area. Click OK. The Field Properties dialog closes and you return to the Data Prep Editor.

6)

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.

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. Click OK. The Field Properties dialog closes and you return to the Data Prep Editor. 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. Click OK.

7)

8)

9)

Ignoring the first header row:


1) 2) 3) Select Options / Data File Properties and click the Header Records tab. In Number Of Line To Skip in the Header, enter 1. Click OK.

A-22

Hyperion

Fast Track for Designers

Appendix - Exercise Solutions

Saving the load rule:


1) 2) 3) 4) 5) Select Options / Validate. Correct any errors noted. When you receive the message: The rules file is correct for dimension building, click OK. Save the file as Par_Ch on the Server to the Sales database. Select File / Close to close the Data Prep Editor.

Hyperion

A-23

Appendix - Exercise Solutions

Fast Track for Designers

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) 2) 3) 4) 5) 6) 7) Open the Sales outline. Select File / Update Outline. Find the source file ConfigPC.xls on the Client (located in the B100_5\Loadrule directory). Find the load rule Par_Ch on the Server. Note the directory location of the Dimbuild.err file. Review this file if errors occur during the dimension build loading. Click OK. The Par_Ch Load Rule runs. Select Product and select Outline / Expand To Descendants.

8) 1)

Shared Members have been automatically created.

Select File / Save.

Updating the outline:


Select File / Update Outline. The Update Outline dialog displays.

A-24

Hyperion

Fast Track for Designers 2) 3) 4) 5) 6)

Appendix - Exercise Solutions Find the source file LinePC.xls on the Client (located in the B100_5\Loadrule directory). Find the load rule Par_Ch on the Server.

Note the directory location of the Dimbuild.err file. Review this file if errors occur during the dimension build loading. Click OK. The Par_Ch Load Rule runs using the new data file. Select Product and select Outline / Expand To Descendants.

7)

Shared Members have been automatically created.

Select File / Save.

Hyperion

A-25

Appendix - Exercise Solutions

Fast Track for Designers

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) 2) 3) 4) 5) 6) 7) Select File / New / Data Load Rules. The Data Prep Editor displays. Select Options / Associate Outline. Associate the load rule with the Sales database. Select File / Open Data File. For Location, select Client. Open the Excel Worksheet data file Loadrule/CusChan.xls. Use File System if necessary. 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) 2) 3) 4) Select Options / Dimension Build Setting. Select the Dimension Definition tab. Select Rules File. For Name enter Customer.

A-26

Hyperion

Fast Track for Designers 5) Click Add.

Appendix - Exercise Solutions

6)

To set the properties for the Customer dimension, click Properties button. The Dimension Properties dialog box displays. Select the Dimension Properties tab. In the Data Storage area, select Label Only. In the Configuration area, select the Sparse. Click OK. The Dimension Properties dialog closes. Click OK The Dimension Build Settings dialog closes and you return to the Data Prep Editor. Select Options / Dimension Build Setting. Select the Dimension Build Settings tab. From the Dimension list, select Customer and confirm the Build Method is set to Use Generation References. Click OK. You return to the Data Prep Editor.

7) 8) 9) 10) 11)

12) 13) 14) 15)

Hyperion

A-27

Appendix - Exercise Solutions

Fast Track for Designers

Ignoring the first header row:


1) 2) 3) 4) Select Options / Data File Properties. Data File Properties Dialog displays. Select the Header Records tab. In Number Of Lines To Skip in the Header, enter 1. Click OK. You return to the Data Prep Editor.

Organizing columns and associate them with generations:


1) 2) 3) 4) Select a member of field 1 and select Field / Properties. Select the Global Properties tab. Select Ignore Field During Dimension Build. Click OK. The information in field 1 appears grayed out; if it does not, check your settings. Select field 3 and select Field / Move. Move the field 3 until it appears between field 1 and 2. Click OK. The field title Channel now appears as field 2 between the Cust Class and Customer fields. Select the new field 2 and select Field / Create Using Text.

5) 6) 7)

8)

9)

Enter the text Channel Total.

A-28

Hyperion

Fast Track for Designers 10) Click OK.

Appendix - Exercise Solutions

11) 12) 13) 14) 15) 16) 17) 18)

Select the new field 3 and select Field / Create Using Text. Enter the text ~ (tilde). Click OK. A new field 3 is inserted. Select field 2 and select Field / Properties. Click the Dimension Building Properties tab. For Dimension, select Customer, for Field Type Generation and for the Generation Number enter 2. Click Next. The information displays for field 3. 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. Click Next. The information for field 4 displays. Click the Global Properties tab. Field 4 remains selected. In the Replace text box, type Disti and, in the With box, type Distributor. Select Replace All Occurences (A).

19) 20) 21) 22)

Hyperion

A-29

Appendix - Exercise Solutions 23) Click Add.

Fast Track for Designers

24) 25)

Click the Dimension Building Properties tab. Field 4 is still selected. 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. Click Next. The information for field 4 displays. For Dimension, select Customer, and for Field Type select Generation. 3 displays for the generation Number. Click Next. The Dimension Building Properties panel now displays information for Field Number 5. For Dimension, select Customer, and for Field Type select Generation. 4 displays for the generation Number; if it does not, enter it. Click OK. You return to the Data Prep Editor. Keeping the fifth field (Gen 4, Customer) selected, select Options / Dimension Build Settings. Select the Dimension Build Settings tab. From the Dimension list, select Customer. Select Allow Property Changes.

26) 27) 28)

29) 30) 31) 32) 33) 34)

A-30

Hyperion

Fast Track for Designers 35) Click OK.

Appendix - Exercise Solutions

Saving and loading the Customer dimension:


1) 2) 3) 4) 5) 6) 7) 8) 9) 10) Select Options / Validate. Correct any errors that appear in the validation dialog. When you receive the message: The rules file is correct for dimension building, click OK. Save the load rule to the server as Channel. Select File / Close. The Data Prep Editor closes. Open the Sales outline. Select File / Update Outline. Find CusChan.xls on the Client. Find Channel.rul on the Server. Click OK.

Hyperion

A-31

Appendix - Exercise Solutions 11)

Fast Track for Designers

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

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. Click Associate . The Associate Server Outline Object dialog displays. 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. Select File / Open Data File. The Open Client Data File Object dialog displays. For Location, select Client. From the List Object of Type drop-down list, select Excel Sheets. Select Loadrule/AttCap.xls. Click OK.

2) 3)

4) 5) 6) 7) 8)

9)

Click View / Dimension Building Fields. A check mark appears beside Dimension Building Fields.

Hyperion

A-33

Appendix - Exercise Solutions 10)

Fast Track for Designers

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:

1)

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. Click Dimension Building Properties .

A-34

Hyperion

Fast Track for Designers 2)

Appendix - Exercise Solutions Select the Dimension Definition tab.

3) 4)

Select the Product dimension (your base dimension). Click Properties.

5)

If necessary, select the Dimension Properties tab.

Hyperion

A-35

Appendix - Exercise Solutions 6) Click Attribute Dimensions button.

Fast Track for Designers

7) 8) 9)

In Name, type Capacity Total. From the Type drop-down list, select Numeric. Click Add.

10) 11) 12) 13)

Click Close. In the Dimension Properties window, click OK. You return to the Dimension Build Settings dialog. Select the Dimension Build Settings tab. Select Capacity Total

14) 15)

The is the attribute you just defined.

Select Use Parent Child Reference. In the Dimension area, select Product.

A-36

Hyperion

Fast Track for Designers 16) 17) Select the Use Level References.

Appendix - Exercise Solutions

Select Allow Association Changes and Do Not Create Mbrs in the Attribute Members area.

18)

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.

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. Highlight Field 1 and click Down position in the displayed list. .

2) 3)

until field 1 in the bottom

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.

2) 3)

You are joining Field 2 to itself.

Allow Field 2 to remain highlighted and click OK. The field titled Production now appears in both the Field 2 and Field 3 positions. 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

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) 2) Highlight any item in Field 1 and select Field / Properties and select the Dimension Building Properties tab. Complete the field properties as indicated in this table:
Field # Field 1 Field 2 Field 3 Field 4 Dimension Capacity Total Capacity Total Product Product Field Type Parent Child Level Capacity Total Number 0 0 0 0

A-38

Hyperion

Fast Track for Designers 3)

Appendix - Exercise Solutions When all field properties have been assigned, click OK.

Saving the load rule:


1) 2) 3) 4) Select Options / Validate to validate the load rule. Correct any errors noted. When you receive the message: The rules file is correct for dimension building, click OK. Save the file on the Server to the Sales database as AttCap.

5)

The file type .RUL is automatically set up by Analytic Services.

Select File / Close. The Data Prep Editor closes.

Using the load rule:


1) 2) 3) 4) 5) Select File / Update Outline. Find the source file AttCap.xls on the Client (located in the B100_5\Loadrule directory). Find the load rule AttCap on Server. Note the location of the Dimbuild.err file directory. Review this file if errors occur during the dimension build loading. Click OK. The AttCap Load Rule runs.

Hyperion

A-39

Appendix - Exercise Solutions 6)

Fast Track for Designers

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

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) 2) 3) Select File / New / Data Load Rules. Select Options / Associate Outline and associate the load rule with the Sales database. 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

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 4) Click Properties.

Appendix - Exercise Solutions

5) 6)

Select the Dimension Properties tab. Click Attribute Dimensions.

7) 8)

Name the attribute Region Total. From the Type drop down box, select Text.

Hyperion

A-43

Appendix - Exercise Solutions 9) Click Add.

Fast Track for Designers

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) 2) 3) 4) 5) Select the Dimension Build Settings tab. Select Customer. Select Use Level References. Select Allow Association Changes. Click OK. You return to the Data Prep Editor.

Performing field edits:


1) 2) 3) 4) 5) 6) Select field 2 and select Record / Reject. Leave the Type set to String. In the String/Number text box, type Region Total. Leave the condition as the default Equal To Click Add. The record reject condition moves into the display area. Click OK. You return to the Data Prep Editor.

A-44

Hyperion

Fast Track for Designers

Appendix - Exercise Solutions

Defining the field column properties:

1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11)

You want to assign the Region Total attributes to the fourth generation of Customers. Highlight any item in field 1. Select Field / Properties. Select the Dimension Building Properties tab. Information for Field Number 1 displays. In the Field Type section, select Level. In the Number text box, type 0. In the Dimension section, select Customer Dimension. Click Next. In the Field Type section, select Region Total (located under Attribute Dimensions). In the Number text box, type 0. In the Dimension section, select Customer Dimension. Click OK.

Hyperion

A-45

Appendix - Exercise Solutions

Fast Track for Designers

Saving the load rule:


1) 2) 3) 4) Select Options / Validate. Correct any errors noted. Save file as AttReg on the server to the Sales database. Select File / Close.

Using the load rule:


1) 2) 3) 4) 5) 6) From the Sales outline, select File / Update Outline. Find CusReg.xls on the Client (located in the B100_5\Loadrule directory). Find the Loadrule AttReg on the Server. Note the location of the Dimbuild.err file directory. Review this file if errors occur during the dimension build loading. Select OK. The AttReg load rule runs with the data specified. To verify that region attributes were added for customers, select Customer and select Outline / Expand To Descendants.

A-46

Hyperion

Fast Track for Designers 7)

Appendix - Exercise Solutions Verify that the Region Total attribute dimension was created.

8)

Select File / Save.

Hyperion

A-47

Appendix - Exercise Solutions

Fast Track for Designers

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) 2) 3) 4) 5) Select Data Load Rules Click New. Select Options / Associate Outline and associate the rule with the Sales database. Select File / Open Data File. Open Loadrule/Harddata.xls (stored on the client). .

A-48

Hyperion

Fast Track for Designers 6) Select View / Data Load Field.

Appendix - Exercise Solutions

1) 2) 3) 4)

This is the correct mode setting for creating a load rule that loads data.

Associating the Product field:


Select field 1 and select Field / Properties. Select the Data Load Properties tab. For Field Name the field Product. 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) 2) 3) 4) Select field 2 and select Field / Properties. Select the Global Properties tab. Select Ignore field during dataload. 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) 2) Select field 3. Select Field / Split.

3) 4)

For Number of characters in column, enter 3. 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. You want to ignore this new field 4 during the data load. Select field 4 and select Field / Properties.

5)

Hyperion

A-49

Appendix - Exercise Solutions 6) 7) 8) 9) 10) 11) 12) Select the Global Properties tab. Select Ignore field during dataload.

Fast Track for Designers

Click OK. The remaining characters of the month names are disabled. Select field 3 again and select Field / Properties. Click the Data Load Properties tab. Enter Year Tot into the Field Name. Click OK.

Adjusting the Customer column:


1) 2) 3) 4) 5) 6) 7) Select field 5 and select Field / Properties. Select the Global Properties tab. In the Replace text box type Cust Id-. Select Replace All Occurences (A). Leave the With entry box blank. Click Add. Click OK. The dialog box closes and you return to the Data Prep Editor. Cust Id- is stripped from the Customer field. Select field 5 and select Field / Properties. Select the Data Load Properties tab. In Field Name, enter Customer. Click OK.

8) 9) 10) 11)

Associating data fields with Accounts dimension members:


1) 2) 3) 4) Select field 6 and select Field / Properties. Click the Data Load Properties tab. Select Accounts (the Measures dimension) and drill down several generations to Units. In Field Name, enter Units.

A-50

Hyperion

Fast Track for Designers 5) 6) Click Next.

Appendix - Exercise Solutions

Repeat the above drill down process for fields 7 through 11. Enter the following members for the field specified:
Field 7 8 9 10 11 Member List Price, Discount % Labor/Unit Matl/Unit Overhead Rate

7)

When all assignments are made, click OK. You return to the Data Prep Editor.

Setting up a scenario header:

1) 2) 3) 4) 5)

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. Select Options / Data Load Settings. Select the Header Definition tab. Expand Scenario. In Header Name enter Current Year. Click OK. You return to the Data Prep Editor.

Ignoring the extraneous header row:


1) 2) 3) 4) Select Options / Data File Properties. Select the Header Records tab. For Number Of Lines To Skip, enter 1. Click OK. You return to the Data Prep Editor.

Hyperion

A-51

Appendix - Exercise Solutions

Fast Track for Designers

Rejecting on Apple records:


1) 2) 3) 4) 5) Select the Customer field and select Record / Reject. In the String/Number text box, type Apple. Select the Contains condition. Click Add. The Reject Record condition appears in the display area 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 JCs Hardware. JCs 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) 2) 3) 4)

Select View / Dimension Building Fields. Select Options / Dimension Build Settings. Select the Dimension Build Settings tab. From the Dimension list, select Customer.

A-52

Hyperion

Fast Track for Designers 5) 6) 7) 8) 9) 10) 11) 12) 13) 14) 15)

Appendix - Exercise Solutions Set the build method to Add as child of.

Drill into Customer/Channel Total and select Unrecognized Customer. Select Ignore Conflicts. From the Dimension list, select Product. Set the build method to Add as a sibling of mbr with matching string. Check Ignore Conflicts. Click OK. Select fields 2, 3 and 4; select Field / Properties. Select the Global Properties tab. Select Ignore field during dimension build. 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

Save the load rule:


1) 2) 3) 4) 5) 6) Verify that View / Data Load Fields is selected. Select Options / Validate. Correct any errors listed. Save the rule as Loadhard associated with the Sales outline. Select File / Close. Open the Sales Outline.

Loading the data:


1) 2) 3) 4) 5) 6) 7) Verify the Sales outline is open. From the Application Manager with the Sales database selected, select Database / Load Data. Find file Loadrule/Harddata.xls on the Client. Select Use Rules. The second Find button becomes available. Find the load rule Loadhard located on the Server. Select Modify Outline and Load Data. 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. Click Close. The message dialog and the Data Load dialog both close. You return to the Application Manager.

8)

Verifying the outline:


1) When the data load is complete, close the Sales outline, then reopen it.

A-54

Hyperion

Fast Track for Designers 2)

Appendix - Exercise Solutions

Verify the inclusion of Lightbolt 810 S in the Product hierarchy as a child of the Lightbolt product family.

3)

Verify the inclusion of JCs 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 2) Select Essbase / Retrieve.

Fast Track for Designers

A-56

Hyperion

Fast Track for Designers

Appendix - Exercise Solutions

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) 2) Open the Sales outline, add a new dimension Mint. Select Settings / Data Storage.

3) 4) 5)

Set Mint to Sparse. Select File / Save. If asked if you want to reposition attribute dimensions to the bottom of the outline, click Yes. Select File / New / Data Load Rule Click New. Select Options / Associate Outline and associate the rule with the Sales database. Select File / Open Data File and open Minty.txt (located on the client in the loadrule directory). Select View / Dimension Building Fields. .

6) 7) 8) 9) 10)

Replicating fields needed for creating unique members:


1) 2) Select field 1 and select Field / Create Using Join. Click OK. Field one duplicates.

Hyperion

A-57

Appendix - Exercise Solutions 3) 4) 5)

Fast Track for Designers

Repeat the previous step again. You now have three fields containing the first record Clorox. Select field 4 and select Field / Create Using Join. Click OK. Two copies of this field now exist.

Moving members:
1) 2) 3) Select field 4 and select Field / Move. Move the field Up Click OK. between fields 2 and 3.

Inserting space fields:


1) 2) Select field 3 and select Field / Create Using Text. 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 3)

Appendix - Exercise Solutions

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) 2) Select fields 2, 3 and 4 and select Field / Join. Click OK. The three fields are joined into a singe field 2 with correct spacing between the words. Select the remaining fields 3 through 7 and select Field / Join. Click OK.

3) 4)

Hyperion

A-59

Appendix - Exercise Solutions

Fast Track for Designers

Associate fields with dimensions:


1) 2) 3) 4) 5) 6) 7) Select field 1 and select Field / Properties. Select the Dimension Building Properties tab. In the Dimension section, select the Mint. In the Field Type section, select Generation. Enter 2 for the generation number. Click Next. 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) 2) 3) 4) 5) 6) 7) Save the load rule as Loadmint associated with the Sales outline. Return to the Sales outline. Select File / Update Outline. Find the source file Minty.txt (located in the Loadrule directory). Find the load rule Loadmint on the Essbase OLAP server. Note the location of the Dimbuild.err file directory. Review this file if errors occur during the dimension build loading. Click OK.

A-60

Hyperion

Fast Track for Designers 8)

Appendix - Exercise Solutions Select Mint and select Outline / Expand To Descendants.

Hyperion

A-61

Appendix - Exercise Solutions

Fast Track for Designers

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) 2) Select the Challenge1 worksheet. Select Essbase / Retrieve.

3) 4) 5) 6) 7) 8)

Select Product. Select Essbase / Pivot. Product switches axis. Select Year Tot. Select Essbase / Pivot. Year Tot switches axis. Select Customer. Select Essbase / Zoom in.

9) 10) 11) 12) 13)

Select Customer. Select Essbase / Pivot. Customer switches axis. Select Channel Total. Select Essbase / Zoom in. The children of Channel Total display. Select OEM.

A-62

Hyperion

Fast Track for Designers 14) Select Essbase / Zoom in.

Appendix - Exercise Solutions

15) 16) 17) 18) 19) 20)

Select IBM, Acer and Apple. Select Essbase/ Keep Only. Other members of the product dimension disappear. Select Product. Select Essbase / Zoom in. The children of Product display. Select Scenario. Select Essbase / Zoom in.

21) 22)

Select Current Year. Select Essbase / Keep Only. The other members of the Scenario dimension disappear.

Hyperion

A-63

Appendix - Exercise Solutions 23) 24) Select Current Year. Select Essbase / Pivot.

Fast Track for Designers

25) 26)

Select a cell containing numerical data. Select Essbase / Linked Objects.

27)

Click Attach.

28) 29) 30) 31)

Enter a Cell Note. Click OK. The Linked Objects Browser displays. Click Close. Select Essbase / Options. The Essbase Options window displays.

A-64

Hyperion

Fast Track for Designers 32) Select the Style tab.

Appendix - Exercise Solutions

33) 34)

In the Members section, select Parent. Click Format.

35) 36) 37) 38) 39)

Specify a font format. Click OK. The Essbase Options window displays. In the Data Cells section, select Linked Objects. Repeat steps 33 through 35. The Essbase Options window displays. Click OK.

Hyperion

A-65

Appendix - Exercise Solutions 40) Select Essbase / Retrieve.

Fast Track for Designers

A-66

Hyperion

Fast Track for Designers

Appendix - Exercise Solutions

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) 2) Select the Challenge2 worksheet Select Essbase / Retrieve.

3) 4) 5) 6)

Select Product. Select Essbase / Pivot. Product switches axis. Select Customer. Select Essbase / Member Selection.

7) 8) 9)

In the Members section, expand Channel and OEM. The children of OEM display under Members. Select IBM. Click Add. IBM moves under Rules.

Hyperion

A-67

Appendix - Exercise Solutions 10) 11) 12) 13) 14) 15) Click OK. IBM replaces Customer on the report. Select Accounts.

Fast Track for Designers

Select Essbase / Member Selection. The Essbase Member Selection window displays. In the Members section, select Gross Margin. Click Add. Gross Margin moves under Rules. Click OK.
Gross Margin and IBM display on the report.

16) 17) 18) 19) 20) 21) 22) 23) 24) 25) 26) 27)

Select Scenario. Select Essbase / Zoom in. The children of scenario display. Select Scenario. Select Essbase / Pivot. Scenario switches axis. Select Year Tot. Select Essbase / Zoom in. The children of Year Tot display. Select Qtr 1. Select Essbase / Pivot. Year Tot switches axis. Select Product. Select Essbase / Member Selection. The Essbase Member Selection window displays. In the Members section, select Product. Click Add. Product moves under Rules.

A-68

Hyperion

Fast Track for Designers 28)

Appendix - Exercise Solutions In the Rules section, right-click Product.

29)

Select Subset.

30) 31) 32)

From the drop-down lists, select Level Name is Lev0,Product. Click Add as AND Condition. The rule displays under Conditions. From the drop-down lists, select Pattern is THUND*.

33)

You must type THUND*.

Click Add as AND Condition.

Hyperion

A-69

Appendix - Exercise Solutions 34) 35) 36)

Fast Track for Designers

Click OK. The Essbase Member Selection window displays. Click OK. Names beginning with THUN replace Product. Select Essbase / Retrieve.

A-70

Hyperion

Fast Track for Designers

Appendix - Exercise Solutions

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) 2) Select the Challenge3 worksheet Select Essbase / Retrieve.

3) 4)

Select Essbase / Options. The Essbase Options window displays. Select the Mode tab.

5)

Deselect Retain on Retrieval.

6) 7) 8)

If you do not complete this step, you cannot pivot the accounts dimension. This setting is reapplied later in the procedure.

Click OK. Select Accounts. Select Essbase / Pivot. Accounts switches axis.

Hyperion

A-71

Appendix - Exercise Solutions 9) 10) 11) 12) 13) 14) 15) 16) Select Year Tot. Select Essbase / Pivot. Year Tot switches axis. Select Scenario. Select Essbase / Zoom in. The children of Scenario display. Select Current Year.

Fast Track for Designers

Select Essbase / Keep Only. The other members of the Scenario dimension disappear. Select Current Year. Select Essbase / Pivot.

Selecting Product and Customer members:


1) 2) 3) 4) 5) 6) 7) 8) 9) 10) Select Product. Select Essbase / Member Selection. The Essbase Member Selection window displays. In the Members section, expand Family Total, Performance and Lightbolt. Select LIGHTBOLT 365A. Click Add. LIGHTBOLT 365A displays under Rules. Click OK. LIGHTBOLT 365A replaces Product on the report. Select Customer. Select Essbase / Member Selection. The Essbase Member Selection window displays. In the Members section, expand Channel Total and OEM. Select IBM.

A-72

Hyperion

Fast Track for Designers 11) 12) Click Add. IBM displays under Rules.

Appendix - Exercise Solutions

Click OK. IBM replaces Customer on the report.

Selecting Time members:


1) 2) Select Year Tot. Select Essbase / Zoom in.

3) 4) 5) 6) 7) 8) 9) 10)

Select Quarter 1 and Quarter 2. Select Essbase / Keep Only. The other members of Year Tot disappear. Select Quarter 1. Select Essbase / Pivot. Quarter 1 and Quarter 2 switch axis. Select cell range A2:C3. Select Edit / Cut. Select cell A6. Select Edit / Paste. Quarter 1 and Quarter 2 appear in cells C6 and C7. Accounts appears in cell A7.

Arranging members:
1) 2) 3) Select Current Year. Select Edit / Cut. Select cell A1.

Hyperion

A-73

Appendix - Exercise Solutions 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) Select Edit / Paste. Current Year appears in cell A7. Select LIGHTBOLT 365A. Select Edit / Cut. Select cell A2. Select Edit / Paste. LIGHTBOLT 365A appears in cell A2. Select IBM. Select Edit / Cut. Select cell A3. Select Edit / Paste. IBM appears in cell A3. Select Essbase / Retrieve.

Fast Track for Designers

Selecting Account members:


1) 2) 3) 4) 5) Select Accounts. Select Essbase / Member Selection. The Essbase Member Selection window displays. In the Members section, expand Gross Margin. The children of Gross Margin display. Select Gross Margin, Net Sales, Cost of Sales and Other CGS. Click Add. Gross Margin Nets Sales, Cost of Sales and Other CGS display under Rules. In the Rules section, right-click Net Sales. Select All Children and Member.

6) 7)

A-74

Hyperion

Fast Track for Designers 8)

Appendix - Exercise Solutions Click OK. The specified members replace Accounts on the report.

Specifying formulas:
9) 10) Select cell E7. Enter the formula:
=B7*2.2

11) 12) 13) 14) 15) 16) 17) 18) 19) 20) 21) 22) 23) 24)

Select cells E7 through E12. Select Edit / Fill / Down. Select cells E7 through F12. Select Edit / Fill / Right. Select cell E6. Enter Q1 DM. Select cell F6. Enter Q2 DM. Select cell B4. Enter Dollars. Change the format as desired. Select cell E4. Enter Deutsch Marks. Change the format as desired.

Hyperion

A-75

Appendix - Exercise Solutions 25) 26) 27) 28) 29) Select Essbase / Options. The Essbase Options window displays. Select the Mode tab. Select Retain on Retrieval. Click OK. Select Essbase / Retrieve.

Fast Track for Designers

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

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) 2) 3) Select the Challenge4 worksheet. Select Essbase / Options. The Essbase Options window displays. Select the Display tab.

4) 5) 6) 7) 8)

Set Indentation to Totals. In the Suppress section, deselect #Missing and Zero Rows. In the Cells section, deselect Use Styles. In the Cells section, select Repeat Member Labels. In the Replacement section set #Missing Label and #NoAccess Label as desired.

Hyperion

A-77

Appendix - Exercise Solutions 9) Select the Zoom tab.

Fast Track for Designers

10) 11) 12) 13)

In the Zoom In section, select Next Level. In the Member Retention section, deselect Include Selection. In the Member Retention section, select Within Selected Group. Select the Mode tab.

14)

In the Formula Preservation section, deselect Retain on Retrieval.

A-78

Hyperion

Fast Track for Designers 15) Select the Global tab.

Appendix - Exercise Solutions

16) 17) 18) 19)

In the Mode section, select Navigate without Data. In the Display Messages section, select Display Unknown Members. Click OK. Select Essbase / Retrieve.

Setting page headers:


1) 2) 3) 4) 5) 6) Select Customer. Select Essbase / Member Selection. The Essbase Member Selection window displays. In the Members section, expand Channel Total. Select OEM. Click Add. OEM appears under Rules. Click OK. OEM replaces Product on the report.

Hyperion

A-79

Appendix - Exercise Solutions 7) 8) 9) 10) 11) 12) 13) 14) 15) 16) Select Product.

Fast Track for Designers

Select Essbase / Member Select. The Essbase Member Selection window displays. In the Members section, expand Family Total and Performance. Select LIGHTBOLT. Click Add. LIGHTBOLT appears under Rules. Click OK. LIGHTBOLT replaces Product on the report. Select Scenario. Select Essbase / Zoom in. The children of Scenario display. Select Current Year and Forecast. Select Essbase / Keep only.

17) 18) 19) 20) 21) 22)

Select Accounts. Select Essbase / Pivot. Accounts switches axis. Select Current Year. Select Essbase / Pivot. Current Year and Forecast switch axis. Select Year Tot. 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 2) Select Essbase / Zoom in.

Appendix - Exercise Solutions

3) 4) 5) 6) 7) 8) 9) 10) 11) 12)

Select Qtr 3, Qtr 4 and Time Variances. Select Essbase / Remove Only. Qtr 3, Qtr 4 and Time Variances disappear. Select Qtr 2. Select Essbase / Member Selection. The Essbase Member Selection window displays. In the Members section, expand Qtr 2. Select April. Click Add. April displays under Rules. Click OK. April replaces Qtr 2 on the report. Select Qtr 1. Select Essbase / Zoom in.

13) 14) 15) 16) 17) 18)

Next to Forecast, select Year Tot. Select Essbase / Zoom in. The children of Year Tot display. Select Qtr 1 and Time Variances. Select Essbase / Remove Only. Qtr 1 and Time Variances disappear. Select Qtr 3 and Qtr 4. Select Essbase / Zoom in. The children of Qtr 3 and Qtr 4 display.

Hyperion

A-81

Appendix - Exercise Solutions 19) 20) 21) 22) Select Qtr 2. Select Essbase / Zoom in. The children of Qtr 2 display. Under Forecast, select April. Select Essbase / Remove Only.

Fast Track for Designers

23) 24) 25) 26) 27)

Select Accounts. Select Essbase / Member Selection. The Essbase Member Selection window displays. In the Members section, expand Gross Margin. The children of Gross Margin display. Select Gross Margin, Net Sales, Cost of Sales and Other CGS. Click Add. Gross Margin Nets Sales, Cost of Sales and Other CGS display under Rules. In the Rules section, right-click Net Sales. Select All Children and Member. In the Rules section, select Gross Margin. Click Move Item Down until it is at the bottom of the list. Click OK.

28) 29) 30) 31) 32)

A-82

Hyperion

Fast Track for Designers

Appendix - Exercise Solutions

Reporting formatting:
1) 2) 3) 4) 5) 6) 7) 8) 9) 10) Select row 1. Select Insert / Row. A row inserts above row 1. Select LIGHTBOLT. Select Edit / Cut. Select cell E1. Select Edit / Paste. LIGHTBOLT pastes into row E1. Select OEM. Select Edit / Cut. Select cell E2. Select Edit / Paste. OEM pastes into row E2.

Setting final options:


1) 2) 3) 4) 5) 6) 7) 8) 9) Select Essbase / Options. The Essbase Options window displays. Select the Display tab. In the Cells section, select Use Styles. In the Cells section, deselect Repeat Member Labels. Select the Mode tab. In the Formula Preservation section, select Retain on Retrieval and Retain on Zooms. Select the Global tab. In the Mode section, deselect Navigate without Data. Click OK.

Hyperion

A-83

Appendix - Exercise Solutions 10) Select Essbase / Retrieve.

Fast Track for Designers

A-84

Hyperion

Fast Track for Designers

Appendix - Exercise Solutions

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) 2) Open Corprpts.xls. Select Essbase / Query Designer.

3) 4)

Right-click Label Driven. Select New / Query.

Setting up the placement of the dimensions:


1) 2) In the Layout panel, select Customer. Drag Customer under Page.

Hyperion

A-85

Appendix - Exercise Solutions 3)

Fast Track for Designers

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) 6) 7)

Double-click Gross Margin. Gross Margin displays under Selection Rules. Repeat this process for Customer selecting IBM. For Year Tot select Quarter 1 and Quarter 2.

A-86

Hyperion

Fast Track for Designers 8)

Appendix - Exercise Solutions In the Layout panel, double-click Scenario.

9) 10) 11)

Double-click Scenario. Scenario displays under selection rules. In the Selection Rules section, right-click Scenario. Select Select / Children.

12) 13)

In the Navigation panel, select Product. Product displays under Members in the Selection panel. In the Members section, double-click Product. Product displays under Selection Rules.

Hyperion

A-87

Appendix - Exercise Solutions 14)

Fast Track for Designers

In the Navigation panel, right-click the Product label with the selection icon .

15)

Select New / Member Filter.

16) 17) 18) 19) 20) 21)

For Method, select Level Name. For Operator, select is. For Value, select Lev0,Product. The filter displays in the Navigation panel. In the Navigation panel, right-click the filter you created. Select New / Member Filter (AND). Use this table to complete the filter
Method Operator Value Pattern Matches is Thunder*

1)

This selects all products starting with a string of Thunder; the * is a trailing wildcard search.

Previewing the results of the Product selection:


In the Selection Panel (under the Selection Rules window) right-click Product.

A-88

Hyperion

Fast Track for Designers 2) Select Preview.

Appendix - Exercise Solutions

3) 4) 5)

Notice that the preview shows duplicate members for Product. This is because you have shared members.

Go to the Selection panel in the Members window, right-click Product. Select View by Generation. Right-click on any Generation label and select Suppress Shared Members. Shared members are suppressed.

Saving and running the query:


1) 2) In the Navigation Panel, right-click on any member in the filter. Select Save Query.

3) 4)

In the Query Name text box, type Thunder. Right click again on any member in the filter and select Apply Query.

Hyperion

A-89

Appendix - Exercise Solutions

Fast Track for Designers

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

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

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

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-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.

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

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

New Features in Version 6.5.1

Fast Track for Designers

Notes
@XRANGE can be used only in these functions: @AVGRANGE @MINRANGE @MAXRANGE @STDDEVRANGE @MOVAVG @MOVMAX @SPLINE @SUMRANGE @MINSRANGE @MAXSRANGE @MOVSUM @MOVMIN @MOVMED

@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

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. A positive integer value that represents the number of values to sum. The default is 3. 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.

n (optional) rangeList (optional)

Notes
The @MOVSUM function calculates a trailing, rather than a centered, sum. For example:
Trailing Sum 1 2 3 6 Centered Sum 1 2 3 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

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 Jan Feb 678 645 Mov Sum 678 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. Sets the member value to #MISSING until the n value is reached, then it will begin summing the value. 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 Any valid single member name or member combination, or a function that returns a single member or member combination.

TRAILMISSING TRAILSUM

mbrName

B-6

Hyperion

Fast Track for Designers

New Features in Version 6.5.1

n (optional)

A positive integer value that represents the number of values that are used to calculate the moving maximum. The default is 3. 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.

rangeList (optional)

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

New Features in Version 6.5.1 2) 3) Restart the Essbase OLAP server. View the log file. Log file entries look similar to this:

Fast Track for Designers

[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

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) 3)

In the Check every text box, enter a value for the time interval. 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

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

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) 2) 3) From the Application Manager desktop, select Database / Settings. Select the Storage tab. 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

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 QUERYLOG QUERYLOG QUERYLOG QUERYLOG QUERYLOG QUERYLOG QUERYLOG QUERYLOG QUERYLOG QUERYLOG [dimension_name] NONE GENERATION generation-range NONE LEVEL level-range GENERATION generation-range LEVEL level-range LOGHAMBRS ON | OFF LOGPATH path-expression LOGFORMAT CLUSTER | TUPLE LOGFILESIZE n TOTALLOGFILESIZE n ON | OFF Description 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. Prevents tracking of members from the specified generation range. For example, QUERYLOG NONE GENERATION 2 excludes tracking of all members from generation 2 of the named dimension. Prevents tracking of members from the specified level range. For example, QUERYLOG NONE LEVEL 0-2 excludes tracking of all members of levels 0, 1, and 2 of the named dimension.

QUERYLOG Parameter [dimension_name]

NONE GENERATION generation-range

NONE LEVEL levelrange

B-12

Hyperion

Fast Track for Designers

New Features in Version 6.5.1

GENERATION generation-range

Tracks members of the specified generation range by 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. 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. Tracks Hybrid Analysis members of the specified 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. Specifies the location of the output log file. The log file 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. Specifies the format of the log output. CLUSTER and 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.

LEVEL level-range

LOGHAMBRS ON | OFF

LOGPATH pathexpression

LOGFORMAT CLUSTER | TUPLE

Hyperion

B-13

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. 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. 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.

TOTALLOGFILESIZE n

ON | OFF

Generation-range and level-range values are represented in one of the following ways:
Generation-Range or Level-Range Value x Description

A specific generation or level number. For example, QUERYLOG NONE GENERATION 2 excludes generation 2 from query logging. 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. 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. 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.

x-y

-x

x-

B-14

Hyperion

Fast Track for Designers

New Features in Version 6.5.1

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.

2) 3) 4)

For example, the Bigcorp Sales database query log file is named Sales.cfg. The names are not case sensitive.

In the configuration file, specify required and optional elements. Restart the database to accept the configuration settings. Restart after creating a file or changing any entries in a file. 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

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

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

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

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

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 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.

percentage

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

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

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 Windows NT Windows 2000 without the 4 GB RAM option Windows 2000 with the 4 GB RAM option Solaris HPUX AIX Recommended memory limit 2G

3G 3G 1741 M 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

To enable Analytic Services to manage application memory use:


1) 2) 3) Create a new memory configuration file, or edit an existing memory configuration file. Save the memory configuration file in the ARBORPATH/bin directory. Start the application.

4)

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.

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

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 alter system Keyword sync security_backup Function 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. 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.

alter system

set session_idle_poll

B-24

Hyperion

Fast Track for Designers

New Features in Version 6.5.1

Command alter system

Keyword delete export_directory

Function Delete directories created for linkedreporting 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. Sets the database to use ZLIB compression. Previous database reset functionality 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 database alter database

set compression zlib reset data | all

alter database refresh outline

repair invalid_block_headers Multiple keywords

Deletes all blocks that have invalid headers. Synchronize the outlines between 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. You can display partition information 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.

display partition

Multiple keywords

Hyperion

B-25

New Features in Version 6.5.1

Fast Track for Designers

B-26

Hyperion

Glossary
! #MISSING accounts dimension See bang character. See missing data. 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. An individual who installs and maintains the Analytic Services system including setting up user accounts and security. See also database administrator, system administrator. An option in the Spreadsheet Add-in that you use to define a layout through 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. 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. A record of actions performed by the agent (server). See consolidate. An alternative name for a dimension, member or description. A database table that stores aliases for the dimensions or members. See alias. 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. A logical expression used in calculations or report scripts to identify a subset of members. 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. An individual who designs, creates and maintains Analytic Services applications and databases. A record of user actions performed on an application. Analytic Services software that you use to create and maintain Essbase applications.

administrator

Advanced Interpretation mode

agent

agent log file aggregate alias alias table alternate name ancestor

AND/OR application

application designer application log file Application Manager

Glossary

Fast Track for Designers

Application Programming Interface Application Server ARBORPATH area arithmetic data load asymmetric report

(API) A library of functions that you can use in a custom C or Visual Basic program to access the Essbase OLAP server. The main server process (ESSSVR) that runs when an application starts. An environment variable that specifies the Analytic Services root directory. A predefined set of members and values that makes up a partition. A data load that performs operations on values in the database, such as adding 10 to each value. 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. A process of defining reports that is based on the attributes of the base members in the database outline. (!) 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. 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. A method of using ESSCMD to write a batch or script file that can be used to 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. The primary storage unit within Analytic Services. A data block is a multidimensional array representing the cells of all dense dimensions. 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. A method used to modify database outlines. You select a build method based on the format of data in data source files. See calculation script. The process of aggregating or of running a calc script on a database. A text file containing a set of instructions telling Analytic Services how to calculate a database. The process of creating multiple reports for a subset of member values.

attribute reporting bang character

batch file

batch processing mode

block bottom-up

build method calc script calculation calculation script cascade

G-2

Hyperion

Fast Track for Designers

Glossary

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. 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. See outline change log. 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. 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. 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. A record of all messages, actions and errors that are generated by a client. A vertical list of fields. 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. 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. 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. A factor that converts currency values in an Essbase database from one countrys currency into anothers, optionally without altering the original data. 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. See block. A buffer in memory that holds uncompressed data blocks. See cell. A file containing data blocks; Analytic Services generates the data file during a data load and stores it on disk.

cell note change log child clean block

client

client log file column column heading

committed access

consolidate

currency conversion currency partition

data block data cache data cell data file

Hyperion

G-3

Glossary

Fast Track for Designers

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. 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. See cell. External data, such as a text file, spreadsheet file or SQL database, that is loaded into an Essbase database. See cell. 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. An individual who administers database servers, such as Analytic Services, and who may also design, maintain and create databases. 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. A layer in the Analytic Services security plan that defines specific settings for database members down to the cell level. See Database Designer. A dimension with a high probability that data exists for every combination of dimension members. 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. See leaf member. 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. 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. See dimension. 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).

data load rules

data point data source data value database

database administrator database designer

database filter layer DB Designer dense dimension descendant

detail member dimension

dimension build rules

dimension member dirty block

G-4

Hyperion

Fast Track for Designers

Glossary

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 serverspecific limitations on login attempts or number of inactive days.Only users with supervisor privilege can enable disabled user names. see zoom. A method of retrieving metadata and data at the moment of retrieval. Members that Essbase calculates when you first retrieve the values. Essbase then stores these values in the database. Subsequent retrievals of Dynamic Calc And Store members do not require calculating. A member that the Essbase OLAP server calculates only at retrieval time. The server discards calculated values after the retrieval request is complete. A member that the Essbase OLAP server calculates only at retrieval time. The server discards calculated values after the retrieval request is complete. 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 members values are calculated at retrieval time instead of being precalculated during batch 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 members values are calculated at retrieval time instead of being precalculated during batch calculation. 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. A process that is used to perform dynamic period-to-date reporting. Predefined members that are used to perform Dynamic Time Series reporting. 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. A command-line interface that is used to perform server operations interactively or through a batch 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. 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. A value or item in a data source file that is loaded into an Analytic Services database.

drill down dynamic Dynamic Calc And Store members Dynamic Calc members Dynamic Calc members dynamic calculation

dynamic calculation

dynamic reference Dynamic Time Series Dynamic Time Series members EssCell

ESSCMD ESSCMD script file

extraction command

field

Hyperion

G-5

G
filter

Glossary

Fast Track for Designers

file delimiter

One or more characters, such as commas or tabs, that separate fields in a data source. 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. A Spreadsheet Add-in command that restores the previous database view. This command is similar to a typical Undo 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. 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. See preserve formulas. 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. An option in the Spreadsheet Add-in that you use to type report script commands in the worksheet to create reports. 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. 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. 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. A unique name that describes a generation. A layer in the Analytic Services security system that is used to define common access settings for applications and databases. A command that is executed when it occurs in the report script file and that stays in effect until the end of the report file or until another global command replaces it. One or more records at the top of a data source that describe the contents. A set of multidimensional relationships in an outline, often created in a tree formation. For example, parents, children and generations represent a hierarchy.

FlashBack formatting command

formula

formula preservation free-form data loading

Free-Form mode free-form reporting

function

generation

generation name global access layer global report command header record hierarchy

G-6

Hyperion

Fast Track for Designers

Glossary

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. A buffer in memory that holds index pages. 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. A file that Analytic Services uses to store data retrieval information. It resides on disk and contains index pages. A subdivision of an index file containing entries that point to data blocks. A type of data block that has at least one loaded data value. Any data that is loaded from a data source and is not generated by calculating the database. A calculation method that tracks which data blocks have been updated since the last calculation. 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. A situation in which a specific dimension does not intersect with other 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. An Essbase kernel setting that determines the lock and commit behavior of database operations. Choices are committed access and uncommitted access. The point at which you can drill across from a data value in one database to a corresponding location in another database. An Essbase Spreadsheet Add-in command that retains only the rows that are highlighted within a spreadsheet. 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. A member that has no children. See leaf member. A branch within a dimension. The levels are numbered incrementally from the leaf member (level 0) towards the root. A data block that is created for sparse member combinations when all of the members of the sparse combination are level 0 members. See leaf member.

index cache index entry

index file index page input block input data intelligent calculation interactive mode

interdimensional irrelevance

isolation level

jump point Keep Only latest

leaf member leaf node level level 0 block level 0 member

Hyperion

G-7

G
linked

Glossary

Fast Track for Designers

level name

A unique name that describes a level. A connection or jump point from one cell to a cell in another database, a cell note, URL or a separate file. A term that encompasses linked partitions and linked reporting objects. 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. (LRO) An external file that is linked to a data cell in an Analytic Services database. Linked reporting objects (LROs) can be cell notes or files that contain text, audio, video or pictures. See data load. 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. 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. See unary operators. A multidimensional database. A discrete component within a dimension. For example, a time dimension might include members such as Jan, Feb and Qtr1. A feature within the Spreadsheet Add-in that you use to specify members for a report. A type of Report Writer command that selects ranges of members based on database outline relationships, such as sibling, generation and level. A type of Report Writer formatting command that is executed as it is 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. The data that describes the structure and/or data values within a database (for example, dimensions and member names). An option group that controls the default security to all of an applications 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.

linked object linked partition

linked reporting object load data lock

log file

mathematical operators MDDB member member select member selection report command member-specific report command

metadata Minimum Database Access

G-8

Hyperion

Fast Track for Designers

Glossary

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. (MDDB) A method of referencing data through three or more dimensions. An individual record is the intersection of a point for a set of dimensions. Contrast with relational database. A client-server process that enables multiple users to work on the same applications without interfering with each other. 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. 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. A column heading for a report column that displays data from more than one 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. 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. (OLAP) A multidimensional, multi-user, client-server computing environment 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. See unary operator. A record of changes made to an Analytic Services database outline. See data file. 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. A storage scheme that makes use of spare disk space by increasing the available memory. A member that has an aggregated branch below it.

multidimensional database multithreading Named Pipes

Navigate Without Data

nested column headings

object

online analytical processing

operator outline change log page file page heading

paging parent

Hyperion

G-9

Glossary

Fast Track for Designers

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. 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. 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. A group of options in the server settings that you use to limit a users allowed number of login attempts, number of days of inactivity and number of days using the same password. 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. See siblings. A specific key term used to define a Dynamic Time Series member that identifies a special period of time (for example, semi-annual). 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. The process of calculating the database prior to user retrieval. The process of keeping user-created formulas within a worksheet while retrieving new data. A row of fields that is read as a unit from a data source. Duplicate data blocks that Analytic Services retains during transactions until Analytic Services commits the updated blocks. A Spreadsheet Add-in command that you use to remove only the highlighted cells within a worksheet. 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. 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.

Partition Manager

partitioning

Password Management pattern matching

peers period pivot

precalculation preserve formulas record redundant data Remove Only replicated partition

report

G-10

Hyperion

Fast Track for Designers

Glossary

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. An Analytic Services component that retrieves report data from the Analytic Services database when you run a 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. An Analytic Services component that displays the complete report after a report script is run. Saved reports typically have the file extension .RPT. 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. An operation to regenerate or rebuild the database index and, in some cases, the data files. See consolidate. The highest member in a branch. Contrast with leaf member. A report heading that lists members down a report page. The members are listed under their respective row names. Loading data and building outlines A multi-user computer that accesses data values based on the intersection of dimension members. See server. Any occurrence that stops the server, including a crash, a power outage or a user pressing the Ctrl+C keys. 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. 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. See symmetric multiprocessing. A dimension with a low probability that data exists for every combination of dimension members. Analytic Services software that works with your spreadsheet. The Spreadsheet Add-in is an add-in module to your spreadsheet software. See visual cues.

Report Extractor report script

Report Viewer restore

restructure roll-up root member row heading rules server server application server interruption shared member

sibling

SMP sparse dimension Spreadsheet Add-in Styles

Hyperion

G-11

Glossary

Fast Track for Designers

subsequent retrievals subset substitution variable

Additional retrievals of the same member combinations after the first retrieval is complete. A cross-section of data. Subsetting further defines members that meet specific conditions. 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. A defined type of user who has full access to all applications, databases, related files and security mechanisms for a server. The option to exclude rows that contain missing values and to underscore characters from spreadsheet reports. See paging. (SMP) A server architecture that enables multiprocessing and 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. A symmetric report is characterized by repeating, identical groups of members. A person who maintains the hardware, software, disk space distribution and configurations for running software applications such as Analytic Services. See Transmission Control Protocol/Internet Protocol. A predefined format that is designed to retrieve particular data on a regular basis and in a consistent format. 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. A process of reporting data based on a date calendar (for example, year, quarter, month or week). A bar of icons that represent Essbase commands. Icons are used as shortcuts to the Essbase menu. (TCP/IP) A standard set of communications protocols that are adapted by many companies and institutions around the world and that link computers 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. 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.

supervisor suppress rows swapping symmetric multiprocessing

symmetric report system administrator TCP/IP template time dimension

time series reporting toolbar Transmission Control Protocol/Internet Protocol

transparent partition

G-12

Hyperion

Fast Track for Designers

Glossary

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. 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. 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. A group of mathematical indicators (+, -, *, /, %) that define how roll-ups take place on the database outline. 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. (URL) An address for a resource in the World Wide Web, such as a 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. 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. See uniform resource locator. See UDA. A process of checking a rules file, report script or partition definition against the outline to make sure the object being selected is valid. See Free-Form mode. 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. 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.

two-pass calculation

UDA

unary operator uncommitted access

uniform resource locator

upper-level block URL user-defined attribute validation Version 2.x mode visual cue

two-pass calculation

Hyperion

G-13

Glossary

Fast Track for Designers

G-14

Hyperion

Potrebbero piacerti anche