D53308

Share Embed Donate


Short Description

Oracle Bootcamp 9...

Description

Hyperion Essbase Analytics 9.3.1 Bootcamp Volume I • Student Guide

D52663GC10 Edition 1.0 December 2007 D53308

®

Author

Copyright © 2007, Oracle. All rights reserved.

Lisa Alexander

Disclaimer

Technical Contributors and Reviewers Steven Cranford Peter DeHaan Paul Hoch Michael Nader Sergiy Pecherskyy

This document contains proprietary information and is protected by copyright and other intellectual property laws. You may copy and print this document solely for your own use in an Oracle training course. The document may not be modified or altered in any way. Except where your use constitutes "fair use" under copyright law, you may not use, share, download, upload, copy, print, display, perform, reproduce, publish, license, post, transmit, or distribute this document in whole or in part without the express authorization of Oracle. The information contained in this document is subject to change without notice. If you find any problems in the document, please report them in writing to: Oracle University, 500 Oracle Parkway, Redwood Shores, California 94065 USA. This document is not warranted to be error-free.

Graphic Designer

Restricted Rights Notice

Carisa Cannan

If this documentation is delivered to the United States Government or anyone using the documentation on behalf of the United States Government, the following notice is applicable:

Publisher Judy Gaitan

U.S. GOVERNMENT RIGHTS The U.S. Government’s rights to use, modify, reproduce, release, perform, display, or disclose these training materials are restricted by the terms of the applicable Oracle license agreement and/or the applicable U.S. Government contract. Trademark Notice Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Table of Contents

0

Preface Course Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Course Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Course Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Student Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Activity Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Additional Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Future Courses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi

Module 1: Creating Databases Lesson 1: Essbase Overview Multidimensional Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Spreadsheet-Based Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Multidimensional View of Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Data Cubes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 Dimension Hierarchies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8 Operations in Multidimensional Data Models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9 Sparse and Dense Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-11 Oracle’s Enterprise Performance Management System . . . . . . . . . . . . . . . . . . . . . . 1-12 Oracle Business Intelligence Suite Enterprise Edition Plus . . . . . . . . . . . . . . . . . 1-14 Hyperion Product Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15 Essbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17 Essbase Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18 Essbase Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-19 Administration Services Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-22 Production Environment Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-24 Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-26 Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-27 Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-29 Smart View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-31 Essbase Spreadsheet Add-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-32

Table of Contents

Integration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-33

Lesson 2: Designing Applications and Databases Block Storage Implementation Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Analyzing and Planning Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 Identifying Business Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 Examining Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 Analyzing Sample Reports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 Designing Block Storage Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 Creating Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9 Creating Block Storage Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13 Creating Block Storage Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15 Server File Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17 Design Recommendations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-18 Creating Outline Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-20 Creating Dimensions and Members. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-23 Moving Dimensions and Members. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-25 Modifying Member Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-27

Lesson 3: Designing Data Descriptor Dimensions Data Descriptor Dimensions Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Designing Time Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Generic Time Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 Fiscal Year Crossover Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 Designing Scenario Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 Tracking Data Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 Tracking Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12 Outline Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13 Consolidation Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14 Shared Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16 Member Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18 Designing Accounts Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-19 Consolidation Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-21 Design Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23 Creating Accounts Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25 Testing Outline Calculations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-26 Intelligent Calculation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28 Setting the Default Database Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-29

iv

Hyperion Essbase Analytics 9.3.1 Bootcamp

Table of Contents

Lesson 4: Optimizing Data Descriptor Dimensions Creating Member Aliases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 Dimension Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 Creating Period-to-Date Totals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 Creating Period-to-Date Calculated Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 Implementing Dynamic Time Series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8 Dynamic Calc Members. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-11 Enhancing Accounts Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13 Time Balance Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14 Expense Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16 Optimizing Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18 Label Only Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19 Implied Shares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-21

Module 2: Building Rules Files Lesson 5: Planning Dimension Designs Business View Dimensions Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Combining Business Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4 Planning Dimensions with Label Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 Designing Primary Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 Designing Secondary Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-11

Lesson 6: Creating Basic Dimension Build Rules Files Rules Files Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 Dimension Build Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 Creating Dimension Build Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6 Prepping Data Prep Editor (Steps 1–6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8 Creating Dimensions (Step 7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-13 Selecting Dimension Build Method (Step 8). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15 Defining Field Properties (Step 9) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17 Validating Dimension Build Rules Files (Step 10) . . . . . . . . . . . . . . . . . . . . . . . . 6-20 Completing Dimension Build Rules Files (Steps 11 and 12) . . . . . . . . . . . . . . . . 6-22 Configuring Dimension Maintenance Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-24 Moving Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-25 Modifying Member Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-27

Hyperion Essbase Analytics 9.3.1 Bootcamp

v

Table of Contents

Sorting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-29 Updating Members. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-31

Lesson 7: Creating Advanced Dimension Build Rules Files Advanced Dimension Build Rules Files Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 Creating Shared Members. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3 Parent-Child Build Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4 Generation Build Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-6 Level Build Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8 Manipulating Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10 Arranging Fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-11 Altering and Ignoring Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-14 Creating User-Defined Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16

Lesson 8: Creating Attribute Dimensions Attribute Dimensions Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3 Attribute Calculations Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5 Adding Attribute Dimensions to Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-7 Associating Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 Assigning Attributes in Outline Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10 Design Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12 Design Considerations: Database Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-14 Design Considerations: Batch Calculation Performance . . . . . . . . . . . . . . . . . . . 8-15 Design Considerations: Report Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-16 Design Considerations: Report Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-19 Creating Attributes with Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-20 Adding Attribute Dimensions with Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-22 Assigning Attributes in Rules Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-23

Lesson 9: Loading Data Data Load Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2 Free-form Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-4 Data Sources That Require Rules Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-6 Creating Data Load Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7 Prepping Data Prep Editor (Steps 1–6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-9 Defining Field Properties (Step 7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-12

vi

Hyperion Essbase Analytics 9.3.1 Bootcamp

Table of Contents

Referencing Missing Dimensions (Step 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting Data Load Values Options (Step 9) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Validating Data Load Rules Files (Step 10) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Completing Data Load Rules Files (Steps 11 and 12) . . . . . . . . . . . . . . . . . . . . . Selecting and Rejecting Records. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Capturing New Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9-15 9-17 9-20 9-21 9-23 9-25

Module 3: Reporting with Smart View Lesson 10: Getting Started with Smart View Smart View Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2 Smart View and Essbase Spreadsheet Add-in . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3 Smart View Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-4 Smart View Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5 Configuring Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7 Configuring Provider Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-8 Creating Essbase Database Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-10 Creating Essbase Database Connections (cont.) . . . . . . . . . . . . . . . . . . . . . . . 10-12 Retrieving Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-13 Display of Multidimensional Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-15 Label Placement Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-17 Setting the Point of View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-19 Selecting Dimension Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-20 Filtering Dimension Member Selections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-22

Lesson 11: Creating Reports with Smart View Manipulating Multidimensional Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-2 Navigating Through Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-4 Retaining and Removing Data Subsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-6 Pivoting Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-7 Updating Essbase Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-9 Adjusting Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-10 Submitting Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-12 Calculating Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-13 Integrating Essbase Data with Microsoft Office . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-15 Copying Dynamic Data Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-17 Creating Linked Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-19

Hyperion Essbase Analytics 9.3.1 Bootcamp

vii

Table of Contents

Module 4: Creating Basic Calculations Lesson 12: Data Storage and Calculation Calculation Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-2 Outline-Based Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-4 Script-Based Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-5 Calculation Script Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-8 Database Calculation Order. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-9 Data Block Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-11 Data Blocks and the Index System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-12 Data Cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-14 Dense Dimensions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-16 Sparse Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-18 Database Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-20 Dimension Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-21 Block Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-22 Data Block Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-24 Data Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-25 DATACOPY Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-26 Sparse Dimension Consolidation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-27 Member Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-28 Database Calculation Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-29 Input Data Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-30 Dense Dimension Calculation Process: Accounts . . . . . . . . . . . . . . . . . . . . . . . 12-31 Dense Dimension Calculation Process: Time . . . . . . . . . . . . . . . . . . . . . . . . . . 12-32 Sparse Dimension Calculation Process: Customer . . . . . . . . . . . . . . . . . . . . . . 12-33 Sparse Dimension Calculation Process: Product. . . . . . . . . . . . . . . . . . . . . . . . 12-35

Lesson 13: Creating Calculation Scripts Calculation Script Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-2 Information Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-6 Housekeeping Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8 Baseline Fix Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-10 Normalization Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-12 Main Rollup Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-14 Back Calculation Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-15 Returning Correct Calculation Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-16 Expected Behavior. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-17

viii

Hyperion Essbase Analytics 9.3.1 Bootcamp

Table of Contents

Correcting Calculated Percentages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Design Considerations for Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preventing Consolidation of Rates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Correcting Derived Rates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Correcting Input Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Troubleshooting CALC DIM Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Viewing Calculation Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Single-Pass Calculation with Incorrect Results . . . . . . . . . . . . . . . . . . . . . . . . . Multiple-Pass Calculation with Correct Results . . . . . . . . . . . . . . . . . . . . . . . . .

13-19 13-22 13-24 13-25 13-26 13-28 13-29 13-31 13-33

Lesson 14: Controlling the Calculation Process Top-Down Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2 Focusing Calculations with FIX Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4 Calculating Conditionally with IF Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-7 Boolean Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-9 Syntax Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14-11 Comparing FIX and IF Calculation Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-13 Number of Data Blocks Processed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-14 Number of Calculation Passes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-16

Lesson 15: Referencing Members in Calculations Referencing Members Explicitly. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2 Referencing Members Dynamically . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-4 Referencing Sets of Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-6 Referencing Related Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-8 Creating Calculation Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-10 Creating Temporary Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-11 Creating Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-14

Module 5: Appendices Appendix A: Creating Advanced Calculations Script Development Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2 Calculation Test Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-4 Prototype Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-6 Pilot Phase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-9 Upper-Level Data Loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-13

Hyperion Essbase Analytics 9.3.1 Bootcamp

ix

Table of Contents

Aggregating Missing Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loading to Leaf Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intelligent Calculation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Block Marking: Clean Blocks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Block Marking: Dirty Blocks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Usage Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Allocating Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calculating Fixed Rate Allocations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calculating Dynamic Ratio Allocations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partitioning Calculations by Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Developing Normalization Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Developing Block Diagrams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Normalizing Rates and Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copying and Clearing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copying Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clearing Data with CLEARDATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clearing Data with CLEARBLOCK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A-14 A-19 A-22 A-24 A-27 A-29 A-31 A-32 A-34 A-36 A-38 A-40 A-43 A-45 A-47 A-48 A-50 A-52

Appendix B: Creating Reports with Essbase Spreadsheet Add-in Essbase Spreadsheet Add-in Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2 Installing the Essbase Menu and Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-3 Managing Database Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-5 Retrieving Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-7 Representing Multidimensional Data in Two-Dimensional Reports . . . . . . . . . . . . B-9 Label Scanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-11 Manipulating Multidimensional Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-13 Navigating Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-15 Retaining and Removing Data Subsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-17 Pivoting Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-19 Managing Worksheet Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-20 Global Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-21 Zoom Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-23 Style Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-25 Display Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-27 Preserving Excel Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-29 Replicating Reports with Cascade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-31 Creating Cascade Reports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-32 Creating Cascade Reports (cont.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-34

x

Hyperion Essbase Analytics 9.3.1 Bootcamp

Table of Contents

Selecting Members from the Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defining Selection Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Applying Additional Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Savable Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Query Designer Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Basic Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Advanced Queries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Filtering Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sorting Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Retrieving with Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B-35 B-37 B-39 B-41 B-42 B-43 B-44 B-45 B-47 B-48

Appendix C: Working with Duplicate Member Names Creating Duplicate Member Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-2 Qualifying Duplicate Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-4 Creating Members with Duplicate Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-6 Loading Data to Duplicate Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-8 Viewing Duplicate Names in Smart View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-10 Viewing Duplicate Names in Essbase Spreadsheet Add-in. . . . . . . . . . . . . . . . . . . . C-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

xi

Table of Contents

xii

Hyperion Essbase Analytics 9.3.1 Bootcamp

Preface

Welcome to Hyperion Essbase Analytics 9.3.1 Bootcamp! Before you begin, please take a moment to review this section. The preface presents an overview of the following information: • Course objectives • Structure of the course • Course materials used in the class • Conventions used in the book • Additional resources to enhance your learning • Relevant follow-up courses that you might want to attend in the future

Course Objectives After completing this course, you should be able to: • Create block storage databases • Build rules files for dimension build and data load • Analyze data using Smart View • Create basic calculation scripts

Course Structure Hyperion Essbase Analytics 9.3.1 Bootcamp is a 5-day, instructor-led training course consisting of lectures, demonstrations, and hands-on exercises. In this course, the instructor presents a topic conceptually by explaining its purpose, demonstrating how it works, and then guiding the students through the exercises. Demonstrations and hands-on exercises reinforce the concepts and skills introduced during lectures.

0

Preface

Course Materials You use two books in class—the student guide and the activity guide. The instructor may also give you handouts.

Student Guide The student guide is designed to be used by students and the instructor during lecture time. It has 5modules: • Module 1 describes creating Essbase databases. • Module 2 describes building rules files for dimension building and data loading. • Module 3 describes reporting in Microsoft Excel with Smart View. • Module 4 describes block data storage and creating basic calculation scripts. • Module 5 contains appendices to provide information about additional features of Essbase not covered in this course. Each module contains lessons. Each lesson begins with a list of objectives followed by the presentation of slides and accompanying text. The lesson ends with a summary of the topics covered in the lesson.

Activity Guide The activity guide has four sections—exercises, exercise solutions, and two separate case studies Exercises A critical part of the learning process is the challenge of completing real tasks associated with each lesson. Each exercise is an opportunity to apply your new knowledge. Exercise Solutions The exercise solutions present the detailed steps to successfully complete the exercises. Case Studies The case studies present less structured business scenarios than the exercises, enabling you to synthesize your new knowledge in an innovative way. Thus, you practice problems-solving with your newly-acquired skills.

xiv

Hyperion Essbase Analytics 9.3.1 Bootcamp

Preface

Conventions The following text conventions are used in this course book: • Text to be typed, options to be selected, names of files and modules, and menu selections are displayed in bold type. Examples: - Select Clear Profile. - Click YES to clear the profile. • When available, figures are used to identify an object or task. Example: Click Edit.

• Keyboard shortcuts are displayed as follows: Ctrl+Enter • Alerts are used to direct your attention to different types of information. NOTE

A note provides related information, common mistakes, or cautions about the current topic.

TIP

A tip provides information that helps you work more efficiently.

Additional Resources Use the following resources to enhance your learning: • Hyperion Essbase 9.3.1 Database Administrator’s Guide • Smart View for Office User’s Guide • Essbase Spreadsheet Add-in User’s Guide for Excel • Hyperion Developer Network (http://dev.hyperion.com)

Hyperion Essbase Analytics 9.3.1 Bootcamp

xv

Preface

Future Courses The following list presents relevant courses that can be taken after you complete this course. • Hyperion Essbase Analytics 9.3.1 Calculate Databases • Hyperion Integration Services 9.3.1: Create and Manage Data Structures • Hyperion Essbase 9.3.1: Deploy Aggregate Storage Databases • Hyperion Essbase 9.3.1. for System Administrators • Hyperion Smart View 9.3.1 for Essbase

NOTE

Course names and learner paths may change. Visit http://www.oracle.com/global/us/education/hyperion_select_country.html for the latest information.

xvi

Hyperion Essbase Analytics 9.3.1 Bootcamp

M O D U L E

1

Creating Databases

Overview This module provides an overview of OLAP concepts and the Essbase platform, introduces the primary user interfaces, and teaches basic dimension design concepts. Based on a given business scenario, you learn how to create applications, databases, and outlines. Lessons in this module include: • Essbase Overview • Designing Applications and Databases • Designing Data Descriptor Dimensions • Optimizing Data Descriptor Dimensions

0

L E S S O N

1

Essbase Overview

Objectives At the end of this lesson, you should be able to: • Describe multidimensional analysis • Describe Oracle's Enterprise Performance Management System • Describe Essbase • Identify components of the block storage production environment

1

Module 1 Creating Databases Lesson 1 Essbase Overview

Multidimensional Analysis Analysis of data from multiple perspectives

January Gross Sales for All Products and All Customers in the Current Year

Copyright © 2007, Oracle. All rights reserved.

Multidimensional Analysis Information is one of the most important assets of a business. Corporate information analysis offers a road map for strategic planning and enables executive managers to make informed and timely decisions. Information analysis provides insight to the past, present, and future of your business; an understanding of past performance helps you address current concerns, which in turn helps you plan for future growth. To gain business intelligence, you must analyze data from many perspectives. For example, it is not enough to know the sales totals for a month, you must know which customers bought the most and which products sold the least.

1-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview

Spreadsheet-Based Analysis ƒ Data integrity suffers because of user errors or stale data. ƒ Validating spreadsheet reports wastes time and resources. Two reports prepared by two users show two different totals. Which one is correct?

Copyright © 2007, Oracle. All rights reserved.

Spreadsheet-Based Analysis Most businesses have many transactional systems that contain huge numbers of daily transactions. These fragmented systems force companies, most commonly using spreadsheet programs, to spend too much time analyzing disconnected environments. In such environments, spreadsheet programs are extremely cumbersome, if not unworkable, analysis tools; file corruption, user errors, and lack of data synchronization across disparate systems often lead to multiple versions of one truth. Businesses expend their resources developing multiple spreadsheets to answer multidimensional questions and then waste substantial time and manpower trying to validate reports against each other.

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-3

Module 1 Creating Databases Lesson 1 Essbase Overview Legislation and other statutory reporting requirements place enormous pressure on companies to report with absolute accuracy, and, at the same time, the use of spreadsheet programs for data analysis is a requirement for most businesses. Therefore, organizations require one system that not only satisfies their global reporting requirements but also provides the multidimensional spreadsheet-based analysis that executives need to make fast, accurate decisions. Essbase was created with these issues in mind; in fact, Essbase stands for extended spreadsheet database.

1-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview

Multidimensional View of Information Enterprise strategic information is structured around natural business concepts and can be visually represented as a multidimensional array. You can view data from different perspectives, depending on analytic needs. OLAP The term OLAP (online analytical processing) describes analysis tools that provide fast multidimensional analysis of information, enabling businesses to turn the wealth of data generated by transactional applications into usable business intelligence.

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-5

Module 1 Creating Databases Lesson 1 Essbase Overview Benefits of Using OLAP OLAP supports the natural tendency of users to view business results as facts organized by various dimensions. Implemented in a multiple-user, client-server multi-tier environment, OLAP helps you synthesize enterprise strategic information through comparative, personalized viewing and analysis of historical and projected data. Essbase databases are OLAP databases.

1-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview

Data Cubes ƒ Analysts prefer to view multidimensional data in cubes, rather than in relational tables. Relational table

Data cube

Product

Time

Lightbolt

January

Sales 166

Lightbolt

Lightbolt

February

182

Thunderball

Thunderball Thunderball

January February

131 149

January 166

February 182

131

149

1 measure: Sales 2 dimensions: Time, Product

ƒ Cube is a metaphor for multidimensional data storage. ƒ Data is analyzed along only two to three dimensions at a time.

Copyright © 2007, Oracle. All rights reserved.

Data Cubes A data cube is a multidimensional extension of a two-dimensional table, just as a geometrical cube is a three-dimensional extension of a square. A data cube is a multidimensional matrix that facilitates analysis from many perspectives. You can visualize a three-dimensional data cube as a spreadsheet program workbook that includes identically structured spreadsheets (each representing two dimensions) on multiple uniquely-named tabs (representing the third dimension). Each tab represents a data set that is contained within the structure of the spreadsheets. Although data cubes are not restricted to three dimensions, visualizing dimensional cubes of more than three dimensions in spatial or geometrical terms is difficult. For analysis purposes, you usually view details for only two or three dimensions at a time, while the data cube is indexed along the remaining dimensions.

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-7

Module 1 Creating Databases Lesson 1 Essbase Overview

Dimension Hierarchies You can organize the members of each dimension in a hierarchy. Year Tot Quarter 1

Product Performance

January

Lightbolt

February

Thunderball

March

Customer OEM IBM

Retail

Value Apple

Quarter 2

Mavrider

Gateway

April

Copyright © 2007, Oracle. All rights reserved.

Dimension Hierarchies in a multidimensional data model, the structural relationships between members within a dimension define the dimension hierarchy. A typical dimension consists of one or more members that in turn may consist of other members. For example, one possible hierarchy in a time dimension is Year > Quarter > Month > Day. Hierarchies also define relationships that end users see during analytic operations. NOTE

Members that consist of other members define consolidation levels in the dimension hierarchy.

1-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview

Operations in Multidimensional Data Models ƒ Selection (slice and dice) Sales to retail customers during January and February by product

ƒ Aggregation (roll up) Total sales by product

ƒ Navigation to more detailed data (drill down) Supporting data for sales for retail customers during Qtr 1

ƒ Visualization operations (pivot) Reorientation of the data cube Display of a three-dimensional data cube in a series of two-dimensional planes

Copyright © 2007, Oracle. All rights reserved.

Operations in Multidimensional Data Models The multidimensional data model supports the following cube operations: Slicing and Dicing A dimension acts as an index for identifying values in the multidimensional array. Slicing and dicing are operations that select data from the data cube. In slicing, you select one member from all but two dimensions, and the remaining dimensions define a twodimensional slice of the data cube. In dicing, you select a range of members from more than two dimensions, and the selection defines a multidimensional subcube.

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-9

Module 1 Creating Databases Lesson 1 Essbase Overview Rolling Up and Drilling Down You can roll up (summarize the data cube) by traversing upward through the dimension hierarchy. As values are combined, cardinalities shrink, and the cube view becomes smaller. Drilling down is the reverse of rolling up. You traverse from summarized data to detailed data. To incorporate more detail into your analysis, you can drill down a dimension hierarchy or add another dimension to your analysis. Pivoting By rotating the data cube, you can view analytic data from multiple perspectives. You typically pivot to build a custom, two-dimensional analytic report.

1-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview

Sparse and Dense Dimensions Multidimensional data sets tend to be sparse: ƒ Data is not uniformly distributed. ƒ Data does not exist for the majority of member combinations. ƒ Certain aspects of multidimensional data sets tend to be predictably sparser than others. Dimension Time Periods

Members 17

Years

5

Scenarios

2

Measures Customers

500 1000

Products

1000

Regions

300

Possible member combinations: 25.5 trillion % of member combinations with actual data: < 1%

Copyright © 2007, Oracle. All rights reserved.

Sparse and Dense Dimensions The data sets of most multidimensional data models have two characteristics: • Data is not smoothly and uniformly distributed. • Data does not exist for the majority of member combinations. For example, all products are not sold in all areas of the country. Most multidimensional data sets are inherently sparse: they lack data values for the majority of member combinations. A sparse dimension is a dimension with a low percentage of available data positions filled. Some dimensions in a multidimensional data model may be denser than others. A dense dimension is a dimension with a high percentage of available data positions filled.

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-11

Module 1 Creating Databases Lesson 1 Essbase Overview

Oracle’s Enterprise Performance Management System

Integrates transaction, intelligence, and financial systems

Copyright © 2007, Oracle. All rights reserved.

Oracle’s Enterprise Performance Management System Oracle Business Intelligence (BI) is a portfolio of technology and applications that provides the industry's first integrated, end-to-end Enterprise Performance Management (EPM) system, including category-leading financial performance management applications, operational BI applications, BI foundation and tools, and data warehousing. It is pervasive, comprehensive, and hot-pluggable: • Pervasive—Delivers intuitive, role-based intelligence for everyone in an organization from front line employees to senior management to enable better decisions, actions, and business processes. There is a common workspace and a range of real-time and event-based capabilities. It also covers all styles of reporting and analysis needs. • Comprehensive—Integrates information from your financial performance management, operational intelligence, and transactional applications. It has a single integrated platform architecture and a unified enterprise information model.

1-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview • Hot-Pluggable—Uses your existing transaction systems, databases, and middleware applications. Oracle BI products are hot-pluggable with Oracle and nonOracle environments.

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-13

Module 1 Creating Databases Lesson 1 Essbase Overview

Oracle Business Intelligence Suite Enterprise Edition Plus

Copyright © 2007, Oracle. All rights reserved.

Oracle Business Intelligence Suite Enterprise Edition Plus Oracle Business Intelligence Suite Enterprise Edition Plus (Oracle BI EE Plus) is a comprehensive suite of enterprise BI products that delivers a full range of analysis and reporting capabilities. Featuring a unified, highly scalable, modern architecture, Oracle BI EE Plus provides intelligence and analytics from data spanning enterprise sources and applications—empowering the largest communities with complete and relevant insight. Oracle BI EE Plus bundles key Oracle Hyperion reporting products for integrated reporting with Oracle’s Hyperion financial applications.

1-14

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview

Hyperion Product Components Financial Performance Management Applications Financial Management Planning Strategic Finance Performance Scorecard Essbase Essbase Administration Services Provider Services Integration Services Reporting and Analysis

Workspace

Interactive Reporting Web Analysis Financial Reporting SQR Production Report ing Data Management Dat a Relationship Management Data Integration Management Financial Data Quality Management Foundation Services Shared Services Smart View

Copyright © 2007, Oracle. All rights reserved.

Hyperion Product Components Oracle BI Suite Enterprise Edition Plus is a combination of Oracle BI Suite Enterprise Edition and Hyperion product components. Primary components of Hyperion products: • Financial Performance Management Applications—A modular suite of integrated applications that support the entire financial management cycle of goal-setting, modeling, planning, monitoring, analysis, and reporting • Essbase—The business analysis server technology that provides an environment for rapidly developing custom analytic and enterprise performance management applications • Reporting and Analysis—A suite of tools that enable you to create analytical, financial, and production reports as well as dashboards

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-15

Module 1 Creating Databases Lesson 1 Essbase Overview • Data Management—A packaged solution that enables organizations to integrate disparate sources of data across an enterprise, map data, and manage change • Foundation Services—A single, standardized infrastructure that facilitates the deployment of Hyperion product solutions and simplifies ongoing maintenance • Workspace—The Web client for Reporting and Analysis, Planning, and Financial Management. It enables you to access and interact with Hyperion-authored content as well as third-party documents, such as Microsoft Word and Excel files

1-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview

Essbase Most traditional database products are application specific, and the proliferation of application-specific packages results in multiple support for training and development. With Essbase as an application development environment, you can use one tool to build multiple databases. Individual applications are better integrated with each other. Only one environment needs to be supported for development, deployment, and training. Essbase enables the quick and easy implementation of analytic solutions, adds value to previously inaccessible data, and transforms data into actionable information.

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-17

Module 1 Creating Databases Lesson 1 Essbase Overview

Essbase Architecture The Essbase product family incorporates powerful architectural features to handle a wide range of analytic applications across large multi-user environments. The slide diagram provides a high-level view of the integrated information flow between the source data and the product components.

1-18

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview

Essbase Components ƒ Essbase: — — — — — — — — —

Block storage Aggregate storage Administration Services Smart View Essbase Spreadsheet Add-in MaxL ESSCMD MDX C API, VB API, and Java API

ƒ Additional components: — Integration Services

Copyright © 2007, Oracle. All rights reserved.

Essbase Components Essbase is a multidimensional database software optimized for planning, analysis, and management-reporting applications. Essbase offers aggregate storage databases for operational analysis and block storage databases for financial analysis. Essbase uniquely blends an innovative technical design with an open, multi-tier architecture. The product enables you to extend decision support systems beyond ad hoc queries and reports on historical performance to dynamic, operational systems that combine historical analysis and future planning. Essbase enables you and others in the organization to share, access, update, and analyze enterprise data from any perspective and at any level of detail without learning new tools, query languages, or programming skills. Block storage databases: Block storage databases support dense data sets, interactive user write-back, and complex financial analytics.

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-19

Module 1 Creating Databases Lesson 1 Essbase Overview Aggregate storage databases: Aggregate storage databases drive operational analytics and are optimized specifically for high dimensionality, extreme sparsity of data, and dimensions with millions of members. Administration Services: This database and system administrators' interface to Essbase provides a single-point-of-access console to multiple instances of Essbase Server. Using Administration Services Console, you can design, develop, maintain, and manage multiple instances of Essbase Server and multiple applications and databases. You can preview data from within the console, without having to open a client application such as Essbase Spreadsheet Add-in. You can also use custom Java plug-ins to leverage and extend key functionality. Integration Services: Integration Services provides a metadata-driven environment to bridge the gap between data stored in Essbase databases and transactional data stored in relational databases. Integration Server drill-though enables business users to view linked transactional data from Essbase reports. The Hybrid Analysis feature gives business users more detail for decision-making and information technology (IT) managers more modularity in designing and maintaining large-scale analytic applications. Essbase Spreadsheet Add-in: This software program merges seamlessly with Excel. Using Essbase Spreadsheet Add-in, you can access instances of Essbase Server and perform ad hoc reporting on Essbase databases. Smart View for Office: This software program provides a single Microsoft Office interface for multiple Oracle Hyperion products. Using Smart View , you can perform many of the same functions as Essbase Spreadsheet Add-in and also integrate live content from Oracle’s Hyperion Essbase, Planning, Financial Management, and various reporting and analysis tools into Microsoft Office programs. ESSCMD: This command-line language performs server operations interactively or through batch or script files. ESSCMD is a legacy language and will not be enhanced for new features in future releases. MaxL: This practical, expressive interface for administering the Essbase system is one of the two functional domains of the multidimensional database access language for Essbase. With MaxL Data Definition Language (DDL), you use statements to make requests; MaxL DDL statements usually begin with verbs and read like English sentences. MaxL DDL improves on ESSCMD in that you can make it interact with the operating system by issuing shell commands and you can embed it in Perl programs by implementing the Perl module.

1-20

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview MDX: This multidimensional query language is the second of the two MaxL functional domains. MDX provides the ability to perform advanced data extraction and querying by means of statements that typically include the verb SELECT. You use MDX to construct member formulas in aggregate storage databases. Essbase API: This developers' interface to Essbase enables you to create customized applications in either VB, C, or Java programming languages.

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-21

Module 1 Creating Databases Lesson 1 Essbase Overview

Administration Services Console Database and system administrators’ interface

Navigation panel

Object window

Message panel

Copyright © 2007, Oracle. All rights reserved.

Administration Services Console Administration Services Console is the common administration interface for Essbase. Database and system administrators use it to manage users and user security, server options, Essbase applications and databases, and database objects. The interface relies on context-sensitive, right-click shortcut menus to perform most actions and is organized into three frames: the navigation panel, object window, and message panel. Navigation Panel When you start Administration Services Console, the default navigation tab, Enterprise View, is displayed. Enterprise View is a graphical hierarchy view of the Essbase environment. You can expand a node on the Enterprise View hierarchy by clicking the plus sign (+) next to an object. If you double-click an object, it opens in the object window.

1-22

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview You can create custom views for specific servers, applications, or databases to reduce the number of mouse clicks required to navigate to an object in Enterprise View. Object Window This workspace is where objects are displayed after you open them. Administration Services Console is a multi-window environment, so every object that you open stays open in the object window until you close the object. You can tile objects inside the object window or switch between objects by using the Organize menu options. Object toolbars are displayed inside their respective objects. The main toolbar displays shortcuts, for example, for opening and saving files. Message Panel The message panel displays system information messages. When you check the formula syntax of an outline member formula, verification errors are displayed in the message panel. NOTE

To disable the navigation panel or the message panel, use the View menu.

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-23

Module 1 Creating Databases Lesson 1 Essbase Overview

Production Environment Components ƒ Database objects — Outline (.OTL) — Rules files (.RUL) — Calculation scripts (.CSC)

ƒ Data analysis interfaces — Smart View — Essbase Spreadsheet Add-in

ƒ Integration Services

Copyright © 2007, Oracle. All rights reserved.

Production Environment Components The block storage database production environment is comprised of three principal database objects for creating and managing your databases. Essbase also provides two interfaces for viewing and analyzing data in Excel. The process of creating a production database, at its most basic level, demonstrates the relationships among components: 1. Create a database outline, defining database dimensions and hierarchies. 2. Load data, using rules files to map to the database dimensions. 3. Calculate data, using calculation scripts. 4. Analyze calculated data in Excel, using either Essbase Spreadsheet Add-in or Smart View.

1-24

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview 5. Alternatively, for an approach that is more integrated with your source data, use Integration Services to create outlines and load data, and to support transactionallevel detail in your reporting and analysis

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-25

Module 1 Creating Databases Lesson 1 Essbase Overview

Outlines ƒ Tree structure for dimension hierarchies ƒ Consolidations and mathematical relationships between members ƒ Outline Editor

Copyright © 2007, Oracle. All rights reserved.

Outlines The database outline plays the key role in the life cycle of Essbase database design. Database development begins with creating a database outline. The outline defines the database dimension hierarchy that describes the structural relationships between members within dimensions. The tree structure of the outline enables you to define consolidations between members. For example, a dimension represents the highest consolidation level in the database outline. To create and modify the database outline, you use Outline Editor in Administration Services Console.

1-26

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview

Rules Files ƒ Map data sources to a target Essbase database ƒ Can apply to many data sources ƒ Can load data and build outlines Header mapped to units

Fields mapped to dimensions

Ignored field

CustIDremoved

Copyright © 2007, Oracle. All rights reserved.

Rules Files Loading data with rules files enables you to deal with unstructured data sources. You can load data manually or use MaxL to load data in a batch production environment. There are no fundamental restrictions on the size of data source files or on the number of records that can be loaded using rules files. If a data source does not map perfectly to your database outline, you must format your data source during the data load process by applying data load rules. For example, you may want to process data in any of the following ways: • Ignore certain fields or records in the data source • Manage header information, such as ignoring extraneous headers or setting up special purpose headers for label identification • Change the order of fields by moving, joining, splitting, or creating fields

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-27

Module 1 Creating Databases Lesson 1 Essbase Overview • Resolve problems of member uniqueness by replacing member names with valid values • Scale data values • Overwrite loaded or calculated values • Update unrecognized new members without creating error conditions • Set header records for missing data values • Reject invalid records and continue the data load Rules files contain a set of operations that Essbase performs on data when it loads the associated data source into the database. Rules act on data as it is loaded, without changing the data source. You can use a rules file with any data source that requires its set of data loading rules.

1-28

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview

Calculation Scripts ƒ Calculate all or a portion of the database ƒ Control the order in which dimensions are calculated ƒ Perform complex calculations

Calculated database Level 0 data

Calculation script Copyright © 2007, Oracle. All rights reserved.

Calculation Scripts A calculation script contains a series of calculation commands, equations, and formulas. You can use a calculation scripts in block storage databases to define calculations other than the calculations defined by the database outline. You can use a calculation script to specify exactly how you want Essbase to calculate a database. For example, you can calculate part of a database or copy data values between members or define calculations other than the calculations defined by the database outline. You can design and run custom database calculations quickly by separating calculation logic from the database outline.

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-29

Module 1 Creating Databases Lesson 1 Essbase Overview The following calculation script calculates only Actual values. FIX (Actual) CALC DIM(Year, Measures, Market, Product); ENDFIX The following calculation script is an example of a conditional calculation: SET UPDATECALC OFF; COGS ( IF (@ISMBR(Forecast)) COGS = Sales*.25; ENDIF ) CALC ALL; This script calculates forecast cost of goods sold (COGS) as 25% of forecasted sales.

1-30

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview

Smart View Smart View is a Web-deployed, thin-client software program that is embedded in a client spreadsheet application. Smart View and Essbase Spreadsheet Add-in provide similar Excel functionality for Essbase: retrieving and analyzing data and creating ad hoc reports. However, Smart View offers an intuitive user interface and toolbar, provides a single Excel interface for Essbase, Planning, and Financial Management, and provides integration of content from Essbase, Planning, Financial Management and Oracle Hyperion reporting and analysis tools with other Microsoft Office products, such as Word and PowerPoint. NOTE

Although Smart View provides connectivity for Planning and Financial Management applications (versions prior to Release 9), Smart View is supported only for Essbase Release 9 and higher.

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-31

Module 1 Creating Databases Lesson 1 Essbase Overview

Essbase Spreadsheet Add-in ƒ Is a software program that is embedded in a client spreadsheet application ƒ Enables you to retrieve data, create ad hoc reports, and analyze data ƒ Provides an interface with Essbase Server

TCP/IP

Excel with Essbase Spreadsheet Add-in

TCP/IP

Essbase Server

Essbase database

Copyright © 2007, Oracle. All rights reserved.

Essbase Spreadsheet Add-in Essbase Spreadsheet Add-in is a software program that merges seamlessly with Excel. It enables you to use your spreadsheet application to interface with multiple instances of Essbase Server. With Essbase Spreadsheet Add-in loaded, you can retrieve data, create reports, and analyze data. You can also navigate, format, edit, and calculate data, as well as create customized settings to view data in particular formats. After Essbase Spreadsheet Add-in is installed, a menu, toolbar, and keyboard shortcuts are added to the spreadsheet application. These added controls provide enhanced commands such as connect, pivot, drill down, and calculate. You can access and analyze data in Essbase databases by using mouse clicks and drag-and-drop operations.

1-32

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 1 Essbase Overview

Integration Services As an alternative to building outlines and rules files natively in Essbase, you can create metaoutlines and data loads in Integration Services, based directly on information in external data sources. Integration Services is a suite of graphical tools and scalable data integration services that dramatically reduce the time required to create, deploy, and manage tailored applications. Integration Services provides a vital link between tailor-made applications built on the Essbase platform and detailed data stored in relational databases. A centralized OLAP metadata repository simplifies application administration; promotes reusability of dimensions, calculations, and business rules; and facilitates delivery of business-focused applications. Built on a flexible, multi-tier architecture, Integration Services easily scales to accommodate changing requirements and delivers scalability, performance, and reliability.

Hyperion Essbase Analytics 9.3.1 Bootcamp

1-33

Module 1 Creating Databases Lesson 1 Essbase Overview

Summary In this lesson, you should have learned to: • Describe multidimensional analysis • Describe Oracle's Enterprise Performance Management System • Describe Essbase • Identify components of the block storage production environment

1-34

Hyperion Essbase Analytics 9.3.1 Bootcamp

L E S S O N

2

Designing Applications and Databases

Objectives At the end of this lesson, you should be able to: • Describe the block storage database design process • Analyze and plan an implementation • Create block storage applications and databases • Create block storage outlines • Modify member properties

2

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Block Storage Implementation Process Analysis and Planning

1. 2. 3. 4.

Identify business results Examine data sources Analyze sample reports Desig n block storage outlines Database Creation

5. Create block storage outlines 6. Create rules files 7. Create calculation scripts Deployment and Support

8. Maintain block storage outlines 9. Manage data flow 10. Analyze data 11. Provide management and user support Copyright © 2007, Oracle. All rights reserved.

Block Storage Implementation Process A block storage database implementation includes many steps. The block storage implementation process is a set of guidelines and suggested steps for planning, creating, and deploying block storage databases. The process is iterative. Analysis of the results of one cycle may stimulate new questions, leading to newly defined business information requirements. New requirements may lead to new designs and implementations of the process.

2-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Analyzing and Planning Implementations ƒ Identifying business results — — — —

Create preliminary user analysis Identify all participants Identify IT requirements Document current processes

ƒ Examining data sources — Identify all source systems — Develop data extract strategies

ƒ Analyzing sample reports — Conduct extensive user requirement surveys — Rate survey results to determine essentials

ƒ Designing block storage outlines — Define dimensions, hierarchies, and attributes — Define calculation requirements

Copyright © 2007, Oracle. All rights reserved.

Analyzing and Planning Implementations The design and operation of an Essbase multidimensional database plays a key role in creating a well-tuned system that enables you to analyze business information efficiently. Given the size and performance volatility of multidimensional databases, developing an optimized database is critical. A detailed plan that outlines data sources, user needs, and prospective database elements can save you development and implementation time. During the analysis and planning phase of implementation, three information-gathering steps lead to the fourth step: synthesizing the information into a working design.

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-3

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Identifying Business Results A user analysis survey asks the following questions: ƒ Who will use the completed cube? ƒ How are users analyzing data now? ƒ What type of analysis is required from the completed cube? ƒ Where are the users and administrators located?

Copyright © 2007, Oracle. All rights reserved.

Identifying Business Results This step of the implementation process sets the groundwork for everything that follows. In it, you must identify all participants in the implementation process and establish the responsibilities, deadlines, and project scope of each group of participants. This is a prime opportunity to conduct preliminary user and hardware surveys and document current data processes. Use this step to determine the scope of the database. If your organization has thousands of product families containing hundreds of thousands of products, you may want to store data values only for product families. Interview members from each user department to find out what data they process, how they process data today, and how they want to process data in the future.

2-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Examining Data Sources An information technology (IT) task force is typically responsible for the majority of the data examination step, in which all source data systems must be identified and data extract strategies must be developed. Examine the current data: • Where does each department currently store data? Do departments store data in a DB2 database on an IBM mainframe, in a relational database on a UNIX-based server, or in a PC-based database or spreadsheet? • Is data in a form that Essbase can use? • Who updates the database, and how frequently is the database updated? • Can individuals who need to update data access the data?

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-5

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Analyzing Sample Reports Sample reports: ƒ Represent both ad hoc and production-style reports ƒ Provide insight to the number, type, and granularity of dimensions ƒ Ensure a database design with usable results ƒ Provide the best perspective for creating hierarchy relationships

Copyright © 2007, Oracle. All rights reserved.

Analyzing Sample Reports Data source analysis provides you with information about data in its raw form, but analysis of sample reports (that is, reports that users want to create using Essbase data) provides a crucial look at the final requirements and architecture of the database. Given a set of sample reports, a design team can determine how many database dimensions are required, how much detail should be included, and what kind of hierarchy relationships are required to provide users with the details that they need. During this step of the implementation, a design team makes decisions about which features and attributes are necessary and which features and attributes are desirable. Finalizing a feature-attribute list helps set expectations for the final design and for the end users. This step ensures a database design with usable results.

2-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Designing Block Storage Outlines ƒ Number of dimensions ƒ Dimension hierarchies ƒ Metadata granularity ƒ Database time span ƒ Functional scenarios (actual, budget, forecast)

Copyright © 2007, Oracle. All rights reserved.

Designing Block Storage Outlines Outline design is a synthesis of all previously gathered research. In the outline design step, you make the final decisions about the number of dimensions, the depth and nature of outline hierarchies, and the database calculation requirements. The design team documents the preliminary outline design on paper, clearly defining the following information: • Number of dimensions • Structure of hierarchies • Database time span • Functional scenarios to be stored • Data storage settings • Mathematical requirements for measures data

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-7

Module 1 Creating Databases Lesson 2 Designing Applications and Databases A design document also usually includes the process and frequency for updates to both data and metadata (outline structures), as well as the process for automating and backing up the database.

2-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Creating Applications and Databases Block storage applications and databases provide Essbase with a structure for organizing processes and related files. Applications A block storage application is a management structure that contains one or more block storage databases and related files. Block storage applications reside on the server where Essbase Server is installed. One server can store multiple block storage applications. The main Essbase Server (ESSBASE) process, also called the Essbase Server agent, handles user logins and security and acts as a traffic controller for all other server requests.

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-9

Module 1 Creating Databases Lesson 2 Designing Applications and Databases Block storage applications run as an ESSSVR process controlled by the Essbase Server agent. When you start Essbase applications, the Essbase Server agent loads it and all associated databases into memory on the server computer. All client requests for data, such as data loads, calculations, reports, and spreadsheet lock and sends, are then handled through the application ESSSVR process. Multiple application processes can be run concurrently by one Essbase Server agent; in Windows, a command window is opened for each ESSSVR process that is running. If a block storage application contains multiple databases, all requests to the databases are managed by the same ESSSVR process. When you stop the application process, the Essbase Server agent unloads all application information and databases from its memory and closes the application ESSSVR process. TIP

You may want to start an application process before users connect to the application databases; if you do so, users may experience improved performance when they connect to databases because the application and all associated databases are in memory. Try to manage your server resources by starting only the application processes that receive heavy user traffic.

Application Design Choices When you create an application, you need to make the following design decisions: • Create a block storage or aggregate storage application • Create a Unicode-mode or non-Unicode-mode application Block storage or aggregate storage: You need to decide to use block storage or aggregate storage when you create an application. In general, you choose block storage applications when creating models for financial data and aggregate storage applications when creating models for operational data. You can use the following rules as general guidelines: If you...

Then choose...

Have a large number of base dimensions (more than 10)

Aggregate storage

Have an extremely small batch calculation window or many applications to compute in a small window

Aggregate storage

Require combinations of very large dimensions

Aggregate storage

Need to use calculation scripts to calculate

Block storage

2-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases If you...

Then choose...

Require write-back for users in releases prior to 9.3.1 (Writeback to level 0 members is supported for aggregate storage databases in Release 9.3.1 or higher.)

Block storage

Require users to perform interactive planning or sophisticated allocations

Block storage

Unicode: Unicode Standard was developed to enable computers with different locales to share character data. Unicode provides encoding forms with thousands of bit combinations, enough to support the character sets of multiple languages simultaneously. An application is either a Unicode-mode application or a non-Unicodemode application. When choosing between Unicode and non-Unicode, keep the following in mind: • Non-Unicode-mode applications support only one character set, which is defined by a locale value. The value for the server where Essbase Server is installed must match the value for all clients that work with non-Unicode-mode applications. • Unicode-mode applications support multiple character sets. The locale value for the server where Essbase Server is installed does not have to match the locale value for the clients that work with Unicode-mode applications. • By default, Essbase creates block storage applications in non-Unicode mode. • Aggregate storage applications do not support the Unicode-mode option. • Essbase Spreadsheet Add-in does not support Unicode-mode applications. • Smart View supports both Unicode-mode and non-Unicode-mode applications. NOTE

For additional information about Unicode Standard, see www.unicode.org. For additional information about Unicode-mode applications, see the Database Administrator’s Guide.

Databases An block storage database is a data repository that contains a multidimensional data storage array.

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-11

Module 1 Creating Databases Lesson 2 Designing Applications and Databases Block storage databases consist of database objects that perform actions against the database, such as calculations or reporting. By default, database objects are stored in their associated database folder on the Essbase server. You can also save objects to a client computer or another available network directory. However, you cannot store, load, or calculate data on a client computer.

2-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Creating Block Storage Applications 1

3

2

Copyright © 2007, Oracle. All rights reserved.

Creating Block Storage Applications Before you create a block storage database, you need to create a block storage application that contains the database and other objects. To create block storage applications: 1. In Administration Services Console, select File > New. The New dialog box is displayed. 2. On the Essbase tab, select Block Storage Application, and click OK. The Create Application dialog box is displayed. 3. Perform the following tasks: • From the Essbase Server drop-down list, select a server name.

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-13

Module 1 Creating Databases Lesson 2 Designing Applications and Databases • In the Application name text box, enter the name for the new application. • Optional: if the Essbase Server instance has permission and you want to support Unicode characters in your application, select Unicode mode to create the application as a Unicode-mode application. NOTE

You cannot undo the Unicode mode option. • Click OK. Essbase creates the application and updates the Enterprise View tab.

2-14

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Creating Block Storage Databases 3

1

2

Copyright © 2007, Oracle. All rights reserved.

Creating Block Storage Databases You must create an application before creating databases. To create block storage databases: 1. In Administration Services Console, select File > New. The New dialog box is displayed. 2. On the Essbase tab, select Database, and click OK. The Create Database dialog box is displayed. 3. Perform the following tasks: • From the Essbase Server drop-down list, select a server name. • From the Application drop-down list, select an application name.

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-15

Module 1 Creating Databases Lesson 2 Designing Applications and Databases • In the “Database name” text box, enter the name for the new database. • Select a database type. • Click OK. Essbase creates the database and updates the Enterprise View tab.

2-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Server File Structure Essbase creates a directory for each application and database. %HYPERION_HOME% %ARBORPATH% Directory for all applications Bigcorp application directory

Sales database directory

Transaction control Outline Free fragment file Kernel Database backup Database file Rules files Data file Index file Calculation script Data source file Triggers folder

Copyright © 2007, Oracle. All rights reserved.

Server File Structure When you create a block storage application, Essbase creates a subdirectory for the application on the Essbase server in the $ARBORPATH\app directory. The new subdirectory has the name of the application; for example, C:\Hyperion\AnalyticServices\app\Bigcorp. When you create a block storage database, Essbase creates a subdirectory for the database within the application directory. The new subdirectory has the name of the database; for example, C:\Hyperion\AnalyticServices\app\Bigcorp\Sales.

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-17

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Design Recommendations One database per application is recommended in a production environment: ƒ Messages are logged at the application level, not the database level. ƒ If an application becomes unavailable, all databases of the application become unavailable. ƒ Server resources are more balanced. Exceptions: ƒ Planning applications ƒ Currency databases

Copyright © 2007, Oracle. All rights reserved.

Design Recommendations Although block storage applications accept multiple databases per application, it is recommended best practice to create only one database for each application for the following reasons: • During processes, Essbase logs messages only at the application level. There are no database-level process logs. If multiple databases exist in one application, Essbase logs all process messages for all databases to one log file. Multiple database logging makes it difficult to effectively interpret the log. • If the administrator terminates an application process or if an application process becomes unavailable, all databases of the unavailable application are inaccessible to users until the application process is restored.

2-18

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases • To manage server resources effectively, you can balance the database load across multiple, independent application processes, rather than using one application process to manage requests from multiple databases. There are two common exceptions to the rule of one database per application: • Planning applications with multiple plan types automatically create a single block storage application with multiple databases. • If you licensed the currency conversion option for your block storage databases, you must create a primary database (where both input and converted data is stored) and a secondary currency database (where exchange rates are stored) inside one application in order to leverage automatic currency conversion.

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-19

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Creating Outline Structures Hierarchy terminology: ƒ Genealogy

Ancestors of • Act vs Bud • Act vs Fcst • Bud vs Fcs t

ƒ Generations ƒ Levels

Desc endants of Sc enario

Siblings, Children of Scenario Variances

Generation 1

Level 2 or Level 1

Generation 2 Level 1 Generation 3

Level 0 (Leaf node)

Copyright © 2007, Oracle. All rights reserved.

Creating Outline Structures Every dimension in an outline contains a hierarchy of members, with the dimension name at the top of the hierarchy. The composition of a dimension hierarchy is decided during the analysis and planning phase of the implementation; the number of levels, number of members, consolidation rules, and properties and attributes of the members vary with every database design. However, certain naming conventions, which apply globally to all hierarchies. facilitate reporting, calculating, security assignment, and other processes in which you need to use relationships, rather than names, to define a set of members.

2-20

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases Genealogy Genealogy terms, based on relationships in a hierarchy, are defined as follows: Term

Definition

Member

A name at any level in the hierarchy, including dimension names

Parent

A member that has a branch below it (For example, Scenario Variances is a parent member for Act Vs Bud, Act Vs Fcst, and Bud Vs Fcst.)

Child

A member that has a parent above it (For example, Act Vs Bud, Act Vs Fcst, and Bud Vs Fcst are children of Scenario Variances.)

Siblings

Child members of the same parent and of the same generation (For example, Act Vs Bud, Act Vs Fcst, and Bud Vs Fcst are siblings.)

Descendants

All members in branches below a parent (For example, Current Year, Budget, and Scenario Variances, and the children of Scenario Variances are descendants of Scenario.)

Ancestors

All members in branches above a member (For example, Scenario Variances and Scenario are ancestors of Act Vs Bud.)

Root

The top member in a branch (For example, Scenario is the root for Current Year and its siblings and for the children of Scenario Variances.)

Leaf

Members with no children; also referred to as detail members, level 0 members, and leaf nodes (For example, Act Vs Bud, Current Year, and Budget are leaf members.)

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-21

Module 1 Creating Databases Lesson 2 Designing Applications and Databases Generations The term generation refers to a consolidation level in a dimension. The root is generation 1. Generation numbers increase as you count from the root toward the leaf. In the example on the slide, Scenario is generation 1, Current Year and its siblings are generation 2, and the children of Scenario Variances are generation 3. All siblings of a given parent belong to the same generation; in the following example from the Accounts dimension, Gross Sales and Discounts are children of Net Sales and are generation 4: generation 1 generation 2 generation 3 generation 4 generation 5 generation 5 generation 4 generation 5 generation 5

Levels The term level also refers to a consolidation level in a dimension; however, levels reverse the numerical ordering used for generations. Levels count up from the leaf member toward the root. The root level number varies, depending on the depth of the branch from which you count. In the example on the slide, Current Year, Budget, and Act Vs Bud are level 0. All other leaf members are also level 0. Scenario Variances is level 1. Notice that the level number of Scenario varies, depending on the branch. For the Scenario Variances branch, Scenario is level 2. For the Current Year branch, Scenario is level 1. The following example shows part of the Accounts dimension with its levels numbered: level 4 level 3 level 2 level 1 level 0 level 0 level 1 level 0 level 0

2-22

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Creating Dimensions and Members ƒ Add child adds a member one level below the selected member. ƒ Add sibling adds a member at the level and in the branch of the selected member. ƒ If the selected member is a dimension, Add sibling adds another dimension.

Add Child

Add Sibling

Copyright © 2007, Oracle. All rights reserved.

Creating Dimensions and Members Because implementations differ, a new database outline contains no dimensions or members. Because you decide the number and names of database dimensions during the analysis and planning phase of your implementation, the first step in creating an outline is usually to add all dimension names to the outline. After dimension names exist, you can add members to dimensions and define dimension hierarchies.

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-23

Module 1 Creating Databases Lesson 2 Designing Applications and Databases Outline Editor enables you to control how you build your hierarchies by providing you two options to add members: Add child and Add sibling. When adding a new member, you use these options to determine the level and placement of the member in the hierarchy. TIP

Because the Add child option adds a member as the first child of the selected member, use Add sibling when you want to add a member to a list of members in any position other than the top position. Add sibling adds a member as a sibling to the selected member and places the new member after the selected member.

To add dimensions to an outline: 1. In Outline Editor, select the top outline node Outline:dbName. 2. Select Edit > Add child. A text box is displayed under the Outline:dbName node. 3. Enter a dimension name, and press Enter. A text box is displayed. Entering a name in the box defines another dimension. 4. Repeat step 3 to add additional dimensions. 5. Press Esc or Enter to close the text box. To add members to a dimension: 1. Select a member for the insertion point of the new member. 2. Select one of the following options: • Select Add child to add a child to the selected member. • Select Add sibling to add a sibling to the selected member. A text box is displayed. 3. Enter a member name, and press Enter. 4. Repeat step 3 to add additional members as siblings of the first member that you added. 5. Press Esc or Enter to close the text box.

2-24

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Moving Dimensions and Members ƒ Moving a parent also moves its children. ƒ Pasting a member as a child makes it the first child. ƒ Pasting a member as a sibling makes it the next sibling.

2 4 Cut or Drag

1

3

Copyright © 2007, Oracle. All rights reserved.

Moving Dimensions and Members As you continue with the second implementation phase and start to build your outline, rules files, and calculation scripts, you may find it necessary to move members and dimensions. Changes may be needed because the original design does not meet your requirements or because a mistake needs to be corrected. Before you move the members and dimensions of an outline, consider the following information: • The positions of dimensions and members within an outline can affect performance. Moving dimensions and members can affect the performance of calculations and retrievals. • If you add, delete, or move dimensions or members, Essbase restructures the database, and you must recalculate the data. • If you move or copy a parent member, it retains all of its descendants.

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-25

Module 1 Creating Databases Lesson 2 Designing Applications and Databases If you cut or copy members to the clipboard, you have two options to insert the copies into the outline: Paste child and Paste sibling. In terms of member placement, these options work like the Add child and Add sibling options; Paste child places the members on the clipboard as the first members under the selected parent, and Paste sibling places the members on the clipboard as the siblings that follow the selected member. To move members in the outline: 1. In the Outline Editor window, select the members that you want to move. TIP

Use Ctrl+Click or Shft+Click to select multiple members. 2. Select Edit > Cut. 3. Select the member to which you want to relate the cut members. 4. Depending on the relationship that you want to create, perform an action: • Select Edit > Paste sibling. • Select Edit > Paste child. NOTE

You can also select members and use the mouse to drag them to the preferred location in the outline. As you drag, icons are displayed under the cursor to indicate Paste child or Paste sibling.

2-26

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Modifying Member Properties ƒ Data storage options ƒ Consolidation options

Member formula

ƒ Aliases

Member properties

ƒ Attributes ƒ User-defined attributes (UDAs) ƒ Member formulas

Right-click shortcut

Copyright © 2007, Oracle. All rights reserved.

Modifying Member Properties As you create your outline, you can assign properties to members and dimensions: Data storage options: These options control whether data is stored for the member and what data is indexed or calculated if data is not stored. The default setting is Store Data. Consolidation options: These options control hierarchy calculations. The default setting is (+) Addition. Aliases: These are alternate names for the member. Attributes: Both the Attributes and Associations tabs are for assigning members of an attribute dimension to members of an associated base dimension. Attribute dimensions are discussed in detail later in this manual.

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-27

Module 1 Creating Databases Lesson 2 Designing Applications and Databases User-defined attributes (UDAs): These are text tags used for grouping members for calculation, security, or reporting purposes. Member formulas: These are used to define special calculation requirements. To access member properties: 1. In Outline Editor, select the member whose properties you want to change. 2. Perform an action: • Select Edit > Edit member properties. • Right-click the member, and select Edit member properties. • Select the member properties button • Select the member formula button

2-28

. .

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

Summary In this lesson, you should have learned to: • Describe the block storage database design process • Analyze and plan an implementation • Create block storage applications and databases • Create block storage outlines • Modify member properties

Hyperion Essbase Analytics 9.3.1 Bootcamp

2-29

Module 1 Creating Databases Lesson 2 Designing Applications and Databases

2-30

Hyperion Essbase Analytics 9.3.1 Bootcamp

L E S S O N

3

Designing Data Descriptor Dimensions

Objectives At the end of this lesson, you should be able to: • Describe data descriptor dimensions • Design time dimensions • Design scenario dimensions • Describe outline calculations • Design accounts dimensions • Test outline calculations

3

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Data Descriptor Dimensions Overview In general, data descriptor dimensions ƒ Define data in its essentials ƒ Are manually developed and maintained ƒ Incorporate variances (both value and percentage differences) ƒ Are calculation-intensive ƒ Are densely populated with data

Typical data descriptor dimensions include time, accounts, and scenario dimensions.

Copyright © 2007, Oracle. All rights reserved.

Data Descriptor Dimensions Overview Despite the fact that each storage database implementation is inherently unique, due to the unique requirements of each implementation, there are ways of measuring data that are common to nearly all multidimensional data models. These common structures are called data descriptor dimensions. From a design perspective, data descriptor dimensions share the following characteristics: They define data essentials. Types of dimensions that are common to almost every block storage database outline are time, scenario, and measures (commonly called accounts). Almost all data fits into some kind of time scheme; most types of analysis require the comparison of data sets; and all data, whether financial account data or statistical measures, measures something.

3-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions They are usually developed and maintained manually. Because one time structure differs little from another time structure, administrators can copy a time dimension from one outline to another with a minimum of changes. Because scenario dimensions tend to be small, there are few scenario members to create or maintain. Because the structure of a typical measures hierarchy is relatively complex, manual development is recommended. They incorporate variances. Value and percentage variance analysis most commonly occurs in scenario dimensions; however, it is not uncommon to see variances in time and accounts dimensions. They are calculation intensive. The most complex calculation rules tend to be located in measures dimensions. Calculations in other dimensions are typically simple aggregations, however, complex calculations can be incorporated into scenario and time dimensions. They are usually densely populated with data. Because data descriptor dimensions tend to have a high percentage of data points occupied, they are usually configured as dense dimensions.

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-3

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Designing Time Dimensions Decisions to make: ƒ What is the lowest-level granularity of data — Depends on the type of analysis required — Can be very summarized (quarters ) or very detailed (15-minute intervals)

ƒ How many years to track and how to separate them — Generic time designs — Fiscal year crossover designs

Copyright © 2007, Oracle. All rights reserved.

Designing Time Dimensions With few exceptions, block storage databases contain time frames for analyzing data. Variations on time dimensions from one implementation to another are largely due to differing answers to two design decisions: • How granular is the time dimension? • How many years of data are represented?

3-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions Granularity of Data Decisions about the granularity (level of detail) of the time dimension are made according to the type of analysis required from the data set. Although most data is collected transaction by transaction, there is usually a point of consolidation that provides the most analytic value. For financial applications, this point is usually at the monthly level; thus, most time designs for financial applications use months as the lowest level of detail. Other applications may require much more detail; for example, a restaurant may want to have a time dimension in 15-minute intervals in order to track sales during and around mealtimes. Number of Years and How to Represent Them In most applications, companies want to track data year over year, so the second major design decision on how to track time concerns multiple-year analysis. Although there are many variations on time dimension design, the two most common design approaches are as follows: • Generic time design (multidimensional) • Fiscal year crossover design (single dimensional)

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-5

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Generic Time Designs The generic time design requires at least two dimensions: ƒ A time dimension with generic time periods ƒ Discrete years represented in a scenario dimension or in a separate years dimension

Three-Dimension Design

Two-Dimension Design

Copyright © 2007, Oracle. All rights reserved.

Generic Time Designs The generic time design is the most common time model in block storage databases. This multidimensional design makes the most efficient use of disk space and resources and, in most cases, provides better performance than any other design. It is called generic time design because its primary time dimension contains time periods (days, months, quarters, and so on) with no fiscal year identification. A secondary dimension holds information about fiscal years. The two dimensions in combination provide complete information about the year and time period. Within the generic time design, there are two common variations: • Three-dimension design: Fiscal years are represented in a separate year dimension. This is the default time design for Planning applications. • Two-dimension design: Fiscal years are represented in combination with another dimension, usually a scenario dimension.

3-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Fiscal Year Crossover Designs A fiscal year crossover design requires one of the following: ƒ A continuous, single time dimension with year-specific time periods ƒ A continuous, single time dimension with duplicate names

Year-Specific Time Periods

Copyright © 2007, Oracle. All rights reserved.

Fiscal Year Crossover Designs An alternative to the generic design, the fiscal year crossover design is a singledimension model in which time periods are specific to a fiscal year. You can implement this model either by creating unique time period names (as shown on the slide) or by enabling duplicate names in the time dimension. NOTE

The option to use duplicate names in database outlines is available only in Essbase Release 9 or higher.

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-7

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions While the fiscal year crossover design provides definite calculation advantages, it can be less efficient for data storage than the generic time design. As a rule, you implement a fiscal year crossover design only if your analysis or calculations require a continuum for the time frame, as in the following examples: • You need to forecast prices or costs for a rolling forecast, where the forecast time horizon crosses over the end of the fiscal year. • You need to create rolling lead or lag calculations that require a single time continuum (for example, an advertising drop in any given month that has continuing lead generation impact over the six months following the drop). • You need to calculate cumulative period-to-date values over a complete range from the first time period forward. • You need both calendar year and fiscal year hierarchies in a single database.

3-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Designing Scenario Dimensions Scenarios are the primary tool for variance analysis. They typically take one of two forms: ƒ Scenarios that track data sets ƒ Scenarios that track processes

Copyright © 2007, Oracle. All rights reserved.

Designing Scenario Dimensions Although scenario dimensions usually have few members and a minimal hierarchy, their impact on design and calculation issues is substantial. You typically compare and compute the most important variances between data sets in the scenario dimension. With multiple data sets incorporated into one dimension, analysis of differences between sets becomes extremely fast and efficient. The data sets in your scenario dimension vary based on the type of database that you are building, but they usually fall into one of two types: scenarios that track physical data sets and scenarios that track underlying processes.

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-9

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Tracking Data Sets Scenarios that track data sets ƒ Are typical in financial applications ƒ Define the foundation of the planning and control process

Copyright © 2007, Oracle. All rights reserved.

Tracking Data Sets The most common type of scenario dimension, one that is used often in financial applications, tracks physical data sets and acts as the foundation for the variance planning and control process. Data sets in this type of dimension can include the following types of members: • • • • •

Actual: Monthly downloads from the general ledger of actual financial results Budget: Data for setting standards derived from the annual planning process Forecast: Estimates of financial performance updated monthly or quarterly Plan: Long-range estimates of financial performance What if: Estimates for target setting and complex modeling

3-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions In this type of scenario dimension, there are often sequential versions of data sets, as shown in the slide with the three versions of the Budget data. In production, each new version begins with a copy of the prior version, which you create using the DATACOPY calculation script command.

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-11

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Tracking Processes Scenarios that track processes ƒ Are typical in forecasting applications ƒ Define a single data set ƒ Track adjustments by distinct functional groups

Tracking Month-End Close

T racking Sales Forecasting

Copyright © 2007, Oracle. All rights reserved.

Tracking Processes A slightly less common design, used primarily in forecasting applications, tracks the modification of one data set during the steps of internal processes. This scenario dimension design facilitates tracking of the internal build of a data set as various functional areas of the company contribute data. By using a DATACOPY calculation script command, you can begin each successive scenario with the contents of the prior scenario, incorporating the input of a new functional group while preserving not only the original data but also every adjustment to the original data.

3-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Outline Calculations The database outline facilitates calculations two different ways: ƒ Hierarchy structure — Consolidation operators — Shared members

ƒ Member formulas

Copyright © 2007, Oracle. All rights reserved.

Outline Calculations Because the primary purpose of a scenario dimension is to store distinct data sets for variance analysis, setting up variance calculations is an integral step in creating a scenario dimension. However, before you create variances, to facilitate calculations, you must be familiar with the calculation tools available in a block storage outline. You can build calculations into your outline in two ways, using either a hierarchy structure with the appropriate member consolidation operators or individual member formulas. You maintain both options through the Member Properties dialog box.

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-13

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Consolidation Operators Consolidation operators define how child members consolidate to parents. Valid consolidation operators: Act Vs Bud

ƒ Addition (+) ƒ Subtraction (-)

Current Year

ƒ Multiplication (*)

Budget

ƒ Division (/)

(+) (-)

ƒ Percent (%) ƒ Exclude from consolidation (~) ƒ Never consolidate (^) Act Vs Bud = Current Year – Budget

Copyright © 2007, Oracle. All rights reserved.

Consolidation Operators Database hierarchies, in addition to defining structural relationships between members, enable you to define calculations between members by setting consolidation operators. By default, when you add a member to the outline, the member consolidation operator is set to addition (+). You create custom calculations by changing the default consolidation operator to one of the following consolidation operators: • Subtraction (-) • Multiplication (*) • Percent (%) • Exclude from consolidation (~) • Never consolidate (^)

3-14

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions The consolidation operator defines how the member rolls up to its parent. For example, you may want to subtract a member from its sibling, such as subtracting Budget from Current Year, to define the Act Vs Bud variance. The exclude from consolidation (~) operator identifies the member as exempt from consolidation to the parent. For example, the children of Scenario are tagged as exclude from consolidation (~) so that they do not roll up into Scenario. The percent ( % ) operator is the mathematical equivalent of using the divide operator and then multiplying by 100, returning a whole number instead of a decimal result. NOTE

The never consolidate (^) operator (available in Release 9.3 and higher) prevents members from being consolidated across any dimension. For a detailed description of when to use this operator, see “Design Considerations for Rates” in Lesson 13, “Creating Calculation Scripts.”

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-15

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Shared Members ƒ Do not store data

Scenario

ƒ Create a pointer to a stored member

Current Year (~)

ƒ Are always level 0 members

Budget

ƒ Are positioned after (below) the stored member in the outline

Scenario Variances

(~)

Act Vs Bud

(~)

(~)

Current Year (+) Shared Budget

(-)

Shared

Copyright © 2007, Oracle. All rights reserved.

Shared Members The shared member storage property provides a way to re-use data that Essbase has indexed or calculated. Shared members, instead of storing data in multiple places, create a pointer to a stored member. When Essbase encounters a shared member during calculations or retrievals, it references the data in the associated stored member. Using shared members enables you to use members repeatedly throughout a dimension. Essbase stores the data value only once, but the value is displayed in multiple locations. Storing the data value only once saves space and increases processing efficiency. While the shared member assumes most attributes of the stored member, it has its own consolidation operator and alias, both of which are independent of the stored member. This independence enables you to build complex models with calculation dependencies between members.

3-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions When creating shared members, keep the following in mind: • Shared members and the associated stored member must be in the same dimension. • In the outline, stored members should be above their associated shared members. • Stored members can be at any level in the hierarchy. • Shared members must be level 0, even if their stored member is not. • Shared members do not increase database size. • You can have an unlimited number of shared members with the same name. • You cannot assign UDAs or formulas to shared members. • You cannot associate attributes with shared members.

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-17

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Member Formulas ƒ Member formulas define calculations in the outline.

ƒ Calculation script functions return sets of members or data values.

Copyright © 2007, Oracle. All rights reserved.

Member Formulas Whenever possible, use consolidation operators in the outline to define natural formulas. This method is more intuitive to the user, who can drill down to see how a member is derived. However, if necessary, you can define formulas for members that, because of their complexity, cannot be defined with only consolidation operators. Essbase provides a comprehensive set of operators and functions that you can use to construct formula calculations in a block storage database. For example, you can perform common arithmetic operations or control the flow of formula executions based on the results of conditional tests. Calculation functions include Boolean functions to provide conditional tests and mathematical, statistical, and financial functions to perform specialized calculations.

3-18

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Designing Accounts Dimensions ƒ Design choices are based on input data and sample reports. ƒ Profit and loss accounts ƒ Balance sheet accounts ƒ Units, rates, prices, and other assumptions ƒ Analysis metrics

Gross Margin = Net Sales + Co st of Sales

Gr oss Margin = Ne t Sales – Cost of Sales

Copyright © 2007, Oracle. All rights reserved.

Designing Accounts Dimensions The accounts dimension (often called the measures dimension) is generally the most complex dimension in the outline. Your business model resides in the accounts dimension, and the most complicated and potentially time-consuming calculations occur there. You can set up your accounts dimension to contain any of the following typical structures: • Natural class accounts that define the profit and loss structure or subsets of the structure, as, for example, Bigcorp Sales, which includes accounts that comprise the Gross Margin total • Balance and cash flow accounts and associated metrics, such as inventory and average inventory • Unit, rate, and dollar calculations, especially where such calculations involve activity driver relationships between members in the dimension

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-19

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions • Metrics and analysis calculations of all types, including members such as Profit%, Margin%, Sales Per Employee, Cost Per Transaction, and Commission% The calculation structures that you create for your accounts dimension depend largely on the input data and the final reporting requirements that you defined during the design phase of your implementation. A common choice in building financial applications is whether to retain the original signs of natural account balances or to change them. In the first example on the slide, Net Sales and Gross Margin retain their natural negative (credit) balance, while Cost of Sales is positive (debit). In this case, Cost of Sales inherently offsets Net Sales, so the formula that you create for Gross Margin in your outline should be as follows: Gross Margin = Net Sales + Cost of Sales However, in the second example, although all three accounts have a positive sign, the total for Gross Margin implies that Cost of Sales data still offsets Net Sales. Because the data in Cost of Sales and Net Sales is positive, you create an explicit offset in the formula for Gross Margin: Gross Margin = Net Sales - Cost of Sales

3-20

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Consolidation Order ƒ Consolidation order is defined by the order of members in the outline. ƒ Essbase calculates data in top-down order.

Parent = ((((M1 + M2) – M3) * M4) % M5) / M6

6.67

Parent Member 1

(+)

10

Member 2

(+)

20

Member 3

(-)

25

Member 4

(*)

40

Member 5

(%)

50

Member 6

(/)

60

Member 7

(~)

70

30 5 25

200 400

40

6.67

50 60

Copyright © 2007, Oracle. All rights reserved.

Consolidation Order Before creating your accounts dimension, you must understand how Essbase calculates members with different consolidation operators. When you use only addition and subtraction operators, the order of members in the outline is irrelevant. However, when you use any other operator, you need to consider member order and its impact on consolidation. When siblings have different operators, Essbase calculates data in top-down order. The example shown on the slide illustrates a top-down calculation. Written left to right, the formula for the parent is as follows: Parent = ((((Member 1 + Member 2) - Member 3) * Member 4) % Member 5) / Member 6

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-21

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions As you can see from this example, the consolidation operator of a member identifies the mathematical operation that Essbase performs when applying the data of the member to the ongoing calculation. NOTE

Using top-down calculation order, Essbase ignores the first child of a parent if it does not have either the (+) addition or (-) subtraction consolidation operator.

3-22

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Design Considerations Hierarchy Calculations

Formula Calculations

3

3

Net Sales 1

2

(+)

Gross Sales

(+)

Units

(+)

List Price

(*)

Discounts

Net Sales 1

Gross Sales

(+)

Units * List Price

2

Discounts

(-)

Gross Sales * Discount %

Input Drivers (~)

(-)

Gross Sales

(+)

Discount %

(*)

(+)

Units

(~)

List Price

(~)

Discount %

(~)

Copyright © 2007, Oracle. All rights reserved.

Design Considerations Dimension calculation order is also top-down; dimension branches are calculated one by one in top-down order. However, within each branch, Essbase calculates the lowest level calculations first, followed by the related parent calculations. The calculation continues in this manner until all levels in the first branch are calculated. Essbase then moves to the second branch and repeats the process. Although, in many cases, consolidation operators and member formulas produce the same calculated data, you should maximize the use of hierarchy-based calculations and consolidation operators in building your accounts dimension. The main reasons for this choice are performance and visibility. Performance: When an outline is consolidated, hierarchy-based calculations are much faster than member formulas. In the examples on the slide, the hierarchy calculations design provides faster performance than the formula calculations design.

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-23

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions Visibility: Hierarchy-based calculations provide visibility for users as the users drill down the accounts hierarchy to see how a value is derived. Formulas obscure visibility of the calculations and are less intuitive for users. What detail you want your users to see should be a primary design consideration. The best-practice design philosophy for building an accounts dimension can be expressed as follows: 1. Whenever possible, use hierarchy relationships and consolidation operators for outline calculations. 2. When it is not possible to achieve your desired calculation with consolidation operators, use an outline member formula or create a calculation script. For example, you may need to use a member formula for an account that calculates commissions based on several distinct conditions. 3. When you want to eliminate confusion in reports by simplifying hierarchy paths, do not apply guidelines 1 and 2. Even though the calculation for Gross Margin % in the following example can be derived with shared members and consolidation operators, your users may not need to see the detail beneath the Gross Margin % value.

3-24

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Creating Accounts Hierarchies Net Sales

(+)

Gross Sales (+) Discounts

(-)

Copyright © 2007, Oracle. All rights reserved.

Creating Accounts Hierarchies A typical challenge when creating your accounts dimension is converting a report in spreadsheet format into a meaningful outline structure. In this situation, keep the following facts in mind: • A total or subtotal in the spreadsheet becomes a parent member in your outline; the children are the elements that produce the total or subtotal. • A parent member is displayed above its children in the outline editor, but below its children in the spreadsheet. • The top member of a hierarchy branch in the outline is often what is called the bottom line in a spreadsheet analysis report. In the example on the slide, Gross Margin is the final total of all data on the report; in the outline, Gross Margin is the top member of a hierarchy branch that includes all other members represented in the report.

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-25

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Testing Outline Calculations ƒ

Disable intelligent calculation

ƒ

Set default calculation script

ƒ

Follow standard test procedure

Calculation Testing Procedure

1. Clear all data from the database. 2. Load calculation test data. 3. Execute your calculation. 4. Audit your calculation results.

Copyright © 2007, Oracle. All rights reserved.

Testing Outline Calculations After creating a complex accounts hierarchy it is a best practice to input simple test data and test your calculation results. Considerations for testing: • Intelligent calculation: By default, intelligent calculation is enabled and Essbase only calculates data changed since the last calculation. If there are errors in your outline hierarchy, you may need to perform multiple iterations of your calculation test. To ensure correct test results for each iteration, you must disable intelligent calculation.

3-26

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions • Default calculation script: The default calculation script for every database is simply a CALC ALL command, which executes every calculation in the outline. You can modify the default calculation script. It is common practice during database and calculation development to disable intelligent calculation by modifying the default calculation script.. • Testing procedure: Following the testing procedure shown on the slide ensures results that are based on your input data and the subsequent calculation, not on other factors.

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-27

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Intelligent Calculation Only marked data blocks are recalculated.

8

8

8

9

9

9

9

9

9

9

9

9

9

Copyright © 2007, Oracle. All rights reserved.

Intelligent Calculation When you perform a full database calculation, Essbase marks what has been calculated. If you then load a subset of data, you can calculate only the changed data and related ancestors. This selective calculation process is called intelligent calculation. By default, intelligent calculation is enabled at the server level. During database and calculation development you must disable intelligent calculation. You can change the default setting in the essbase.cfg file or on a script-by-script basis with the SET UPDATECALC OFF command. For information about the essbase.cfg file, see the online Technical Reference, “Essbase.CFG Configuration Settings.” NOTE

For a detailed explanation of intelligent calculation, see “Intelligent Calculation” in Appendix A, “Creating Advanced Calculations.”

3-28

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Setting the Default Database Calculation 3 1

2 4

Copyright © 2007, Oracle. All rights reserved.

Setting the Default Database Calculation The default database calculation is a simple command (CALC ALL) that executes all your outline calculations. You can modify the default calculation, or assign a prebuilt calculation script to be the default database calculation. TIP

During the database development process, you may need to test outline calculations before you have developed calculation scripts. You can use the default database calculation for your testing purposes, however, you should disable intelligent calculation by modifying the default calculation script.

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-29

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions To set the default database calculation: 1. From Enterprise View in Administration Services Console, select the database node. 2. From the menu bar, select Actions > Set > Default calculation for “DBName”. 3. Perform one of the following actions: • Select Use calculation script to make an existing calculation script the default script. • In the script text box, type modifications to the default script. 4. Click OK.

3-30

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

Summary In this lesson, you should have learned to: • Describe data descriptor dimensions • Design time dimensions • Design scenario dimensions • Describe outline calculations • Design accounts dimensions • Test outline calculations

Hyperion Essbase Analytics 9.3.1 Bootcamp

3-31

Module 1 Creating Databases Lesson 3 Designing Data Descriptor Dimensions

3-32

Hyperion Essbase Analytics 9.3.1 Bootcamp

L E S S O N

4

Optimizing Data Descriptor Dimensions

Objectives At the end of this lesson, you should be able to: • Create member aliases • Describe dimension types • Create period-to-date totals • Describe Dynamic Calc members • Enhance accounts dimensions • Optimize data storage

4

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

Creating Member Aliases Aliases are ƒ Used as reporting names ƒ Used for data source name mapping ƒ Updated in Member Properties ƒ Stored in alias tables Alias tables are ƒ Created in Outline Properties ƒ Limited to 10 per database ƒ Updated separately ƒ Displayed one at a time

Copyright © 2007, Oracle. All rights reserved.

Creating Member Aliases An alias is an alternate name for a member or shared member. For example, the member Jan on this slide is identified by the short name Jan and the more descriptive alias January. Aliases are commonly used for the following reasons: • To improve the readability of an outline or a report by providing descriptive names • To accommodate multi-lingual databases by representing members in other languages • To facilitate name mapping during data load when data source names do not match Essbase member names (Data can be loaded to member names or aliases.)

4-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions Aliases are stored in alias tables. The use of tables enables you to set more than one alias for a member. In the example on the slide, the member Jan has descriptive aliases in English, French, German, and Italian and also has an alias of P01 to map data coming from a manufacturing system to the Jan member. You can manually update all aliases of a member in the Member Properties dialog box. Alias Tables Aliases are stored in one or more tables as part of a database outline. An alias table maps a specific, named set of alias names to member names. When you create a database outline, Essbase creates an empty alias table named Default. You can create up to nine additional alias tables per outline, for a total of ten. Alias Table Names When you view the outline or retrieve data, you use the alias table name to indicate the set of aliases that you want to see. Similarly, when you use rules files to update aliases, you use the alias table name to indicate the set of aliases that you want to update. NOTE

You can view or update only one alias table at a time.

To create alias tables: 1. In Outline Editor, select the Properties tab. The outline properties are displayed. 2. Right-click the “Alias tables” node, and select Create alias table. The Create Alias Table dialog box is displayed. 3. Enter the name of your alias table, and click OK. The new alias table name is displayed.

Hyperion Essbase Analytics 9.3.1 Bootcamp

4-3

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

Dimension Types None

Time

Currency

Accounts Countr y Attribute

Time and accounts dimension types enabled

Copyright © 2007, Oracle. All rights reserved.

Dimension Types Essbase provides dimension types to enhance your outline. When you tag a dimension as a specific type, the dimension can access built-in functionality designed for that type. For example, if you define a dimension as accounts, you can specify accounting measures for members in the dimension. Essbase calculates the two primary dimension types, time and accounts, before other dimensions in the database. By default, all dimensions are tagged as None. NOTE

Country and currency dimension types are used only in currency conversion applications. For a comprehensive discussion of currency conversion, see the Database Administrator’s Guide, “Designing and Building Currency Conversion Applications.”

4-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

Creating Period-to-Date Totals ƒ Calculated members — Shared member hierarchy — Member formula

ƒ Dynamic Time Series

Copyright © 2007, Oracle. All rights reserved.

Creating Period-to-Date Totals Period-to-date reporting requirements are a staple of many databases. There are two methods to accomplish period-to-date analysis in block storage databases: creating calculated members or enabling Dynamic Time Series members.

Hyperion Essbase Analytics 9.3.1 Bootcamp

4-5

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

Creating Period-to-Date Calculated Members ƒ Provides hierarchy path expansion in reports ƒ Creates more stored members ƒ Enables loading to period-to-date totals

YTD hierarchy

QTD hierarchy

Copyright © 2007, Oracle. All rights reserved.

Creating Period-to-Date Calculated Members With the calculated-member method, you create a hierarchy in the time dimension for each level of period-to-date analysis that you want to calculate. In each hierarchy, you create calculated members for each distinct calculation range. For example, in a monthly time dimension, assume that you require both quarter-to-date and year-to-date analysis. In this case, the period-to-date analysis requires two additional hierarchies in the time dimension, with a QTD or YTD total for each month of the year, similar to the examples on the slide (all months not shown). Period-to-date hierarchies provide the following benefits: • Physical hierarchy members are easier for users to find. • Data can be loaded to stored members. • Stored calculations give you more control over calculation order.

4-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions When using this model, keep in mind the following considerations: • Additional hierarchies require additional outline setup and maintenance. • A greater number of stored members requires increased storage space on disk, possibly affecting performance. • A greater number of stored calculated members increases batch calculation times.

Hyperion Essbase Analytics 9.3.1 Bootcamp

4-7

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

Implementing Dynamic Time Series 1

2

3

ƒ Automatically calculates the sum of a range of level 0 time periods ƒ Starts with a preset relative generation and ends with the selected member

Copyright © 2007, Oracle. All rights reserved.

Implementing Dynamic Time Series The second method, enabling built-in Dynamic Time Series members, requires that you use the Time dimension tag to identify your time dimension. Consider the following design implications when using the Time dimension tag: • You can use the Time dimension tag on only one dimension of an outline. • All members in the dimension tagged as Time inherit the time property. • You can add time-related members to dimensions that are not tagged as Time (as with the Years dimension in the generic time design). • You can create an outline that does not have a dimension tagged as Time.

4-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions You do not create Dynamic Time Series members directly in the database outline. Instead, you enable a predefined Dynamic Time Series member and associate it with a generation number that defines the beginning of the calculation range. Then, upon retrieval, you specify the last time period of the calculation range. For example, if you want to calculate quarter-to-date values, you enable the QTD member and associate it with the generation of the time dimension that contains quarterly totals. In the Bigcorp Sales database, the generation containing quarters is generation 2. An enabled Dynamic Time Series member is not shown as part of the regular time dimension hierarchy, but its name is indicated next to the dimension name, as in the following example:

When you want to see a QTD total in a report, you specify the label Q-T-D(EndPeriod); Essbase automatically calculates the sum of a range of level 0 time periods, starting with the first period in the EndPeriod quarter and ending with EndPeriod, as shown in the following example:

Because Dynamic Time Series members are not stored, they have no impact on database size or calculation times. However, they do have the following implications: • You cannot load data to Dynamic Time Series members. • Users cannot drill down on Dynamic Time Series members. • Some calculations return incorrect results when calculated dynamically in Dynamic Time Series members.

Hyperion Essbase Analytics 9.3.1 Bootcamp

4-9

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions To set up Dynamic Time Series members: 1. Select the time dimension and click

(Time Dimension Type).

The Time dimension tag is displayed next to the name of the time dimension. 2. Right-click time dimension, and select Dynamic time series. The Define Dynamic Time Series Members dialog box is displayed. 3. For each Dynamic Time Series member that you want to use, complete the following tasks: a. Select Enabled. b. From the Gen drop-down list, select a generation. c. Optional: In the columns provided for the alias tables, enter aliases for the Dynamic Time Series member. 4. Click OK.

4-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

Dynamic Calc Members Disadvantages: ƒ May increase retrieval time ƒ May change calculation order

Advantages: ƒ Reduce batch database calculation time ƒ Reduce disk storage usage

ƒ Reduce database restructure time ƒ Reduce time required to perform a backup

Precalculated database

Data request

Calculated request

Report

Copyright © 2007, Oracle. All rights reserved.

Dynamic Calc Members Dynamic calculation storage options provide flexibility about how and under what circumstances calculations are performed and data is stored. The immediate benefit of dynamic calculation is reduction of batch calculation time and reduction of hard drive storage requirements. Dynamic calculation options allow outline members to be calculated when requested by users rather than during the batch calculation process. Calculating some values dynamically achieves the following advantages: • It reduces the batch calculation time of the database because Essbase has fewer members to calculate. • It reduces disk usage because Essbase stores fewer calculated data values.

Hyperion Essbase Analytics 9.3.1 Bootcamp

4-11

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions • It reduces database restructure time. Adding or deleting a Dynamic Calc member does not change the database structure, so Essbase does not need to restructure the database for such additions and deletions. • It reduces the time that is required to back up the database. Because database size is reduced, Essbase requires less time to perform a backup. Block storage databases provide two dynamic calculation options: Dynamic Calc and Dynamic Calc and Store. Dynamic Calc Storage Property You can tag any calculated member in your outline as Dynamic Calc. Essbase does not calculate the value for a Dynamic Calc member until a user requests it, and does not store the value for the Dynamic Calc member. Dynamically calculating selected database values can significantly improve the performance of an overall database calculation. When implementing the Dynamic Calc storage property, keep the following considerations in mind: • Data values that calculate dynamically can take longer to retrieve. To avoid causing a significant impact on user retrieval times, you should usually limit your use of the Dynamic Calc option to dense dimensions. • Dynamic calculation order differs from batch calculation order. Thus, dynamic calculation may produce incorrect results. When you change a member from stored to Dynamic Calc, make sure to test calculation results. Dynamic Calc and Store Option If you tag a member as Dynamic Calc and Store, Essbase defers calculation of the member until the first time that a user requests the member. After calculation, Essbase stores the data for the member. Subsequent retrievals of the data value do not require calculation, unless Essbase detects that the value needs recalculating. The Dynamic Calc and Store option should be used only in certain circumstances, such as for sparse dimensions with complex calculations. In most cases, consider using Dynamic Calc before Dynamic Calc and Store. TIP

For more detailed guidelines on deciding which members to calculate dynamically, see the Database Administrator’s Guide.

4-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

Enhancing Accounts Dimensions ƒ Time balance accounting ƒ Expense reporting Time balance properties

Expense property

Time balance skip options

Copyright © 2007, Oracle. All rights reserved.

Enhancing Accounts Dimensions As with the Time dimension tag, the Accounts dimension tag enables additional features: • Time balance accounting: To flag measures that do not aggregate over time (for example, balance sheet accounts) • Expense reporting: To identify favorable and unfavorable variances You can modify expense and time balance properties with toolbar buttons or in the Member Properties dialog box.

Hyperion Essbase Analytics 9.3.1 Bootcamp

4-13

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

Time Balance Reporting ƒ Time balance reporting defines consolidation of members in the accounts dimension across the time dimension. ƒ Skip options determine how Essbase treats zero and missing values.

Account

TB Tag

Jan

Feb

Mar

Qtr 1

Opening Inventory

TB First

20

31

41

20

11

10

15

36

31

41

56

56

Additions Ending Inventory

TB Last

Copyright © 2007, Oracle. All rights reserved.

Time Balance Reporting You use time balance to control the consolidation of balance sheet items across time periods. Values for Time Balance Properties For accounts, you can set one of the following values for the time balance property: • None: When a member in the accounts dimension represents a value that aggregates over time, the corresponding parent in the time dimension is calculated based on the consolidation operators and formulas of its children. In the example on the slide, the time balance property for the Additions member is set to the default value, None. Thus, Essbase calculates the Qtr 1 member in the time dimension as the sum of its children (Jan, Feb, and Mar).

4-14

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions • TB First: When a member in the accounts dimension represents the value at the beginning of a time period and you want the value carried to the parent in the time dimension, set the time balance property of the account to TB First. In the example on the slide, the Opening Inventory member represents the inventory value at the beginning of the time period. If the time period is Qtr 1, Opening Inventory represents the inventory at the beginning of Jan; that is, Opening Inventory for Qtr 1 and Opening Inventory for Jan are the same. Similarly, Year Tot Opening Inventory equals Qtr 1 Opening Inventory. • TB Last: When a member in the accounts dimension represents the value at the end of a time period and you want the value carried to the parent in the time dimension, set the time balance property of the member to TB Last. In the example on the slide, Ending Inventory represents the inventory at the end of the time period. If the time period is Qtr 1, Ending Inventory represents the inventory at the end of Mar; that is, Ending Inventory for Qtr 1 and Ending Inventory for Mar are the same. Year Tot Ending Inventory equals Qtr 4 Ending Inventory. • TB Average: When you want parent values in the time dimension to represent the average value of a time period for a member in the accounts dimension, set the time balance property of the member to TB Average. Skip Option If you set the time balance as TB First, TB Last, or TB Average, you must set the Skip option to tell Essbase what to do when it encounters missing values or values of 0. The following table describes how each setting determines what Essbase does when it encounters a missing or zero value. Setting

Description

None

Zeros and missing values are considered when parent values are calculated. This is the default setting.

Missing

#MISSING values are excluded when parent values are calculated.

Zeros

Zero values are excluded when parent values are calculated.

Missing and Zeros

#MISSING values and zero values are excluded when parent values are calculated.

Hyperion Essbase Analytics 9.3.1 Bootcamp

4-15

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

Expense Reporting In applications where revenues and expenses are not loaded with credit and debit balances: ƒ Members that represent expense must have the Expense Reporting tag. ƒ Essbase provides two variance reporting functions: — @VAR(mbrName1, mbrName2) — @VARPER(mbrName1, mbrName2)

Actual

Budget

Variance

Variance %

Gross Sales

100

120

-20

-16.67

Discounts

100

120

20

16.67

Copyright © 2007, Oracle. All rights reserved.

Expense Reporting A typical analytic requirement is the ability to perform variance reporting on actual versus budget data. When you budget expenses for a time period, you want the actual expenses to be lower than the budget expenses. When actual expenses are greater than budget expenses, the variance is unfavorable, or negative. On the other hand, when you budget nonexpense items, such as revenues, you want actual revenues to be higher than budget revenues. When actual revenues are less than budget revenues, the variance is unfavorable.

4-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions In the example on the slide, Gross Sales (a revenue) and Discounts (an expense) have the same data values for the actual and budget scenarios. Usually variances are calculated with a simple difference (Actual - Budget or Budget - Actual). But, in an outline like Bigcorp Sales, where expenses and revenues have the same sign and offset each other through outline consolidation operators, a simple difference calculation between actual and budget data does not reflect favorable versus unfavorable variances correctly. As you can see in the example, the variance for Gross Sales is negative and the variance for Discounts is positive. Dealing with this type of variance calculation issue requires two steps: 1. All outline members that represent an expense to the company (or any value that is determined unfavorable when over budget) must be assigned the Expense Reporting tag. For example, Inventory members, Cost of Sales members, and the Discounts member each receive the Expense Reporting tag for variance reporting. 2. Variance calculations must be written with a special function that checks for the presence of an Expense Reporting tag and calculates accordingly. Block storage databases provide two functions for this purpose: @VAR and @VARPER. In the example shown on the slide, the formulas for the two scenario variances in the relevant outline are as follows: Variance = @VAR(Actual, Budget); Variance% = @VARPER(Actual, Budget); The formulas trigger Essbase to check for the Expense Reporting tag. If the account has the tag, Essbase transposes the sign of the formula result.

Hyperion Essbase Analytics 9.3.1 Bootcamp

4-17

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

Optimizing Data Storage Shared data: ƒ Label only members ƒ Implied shares

Copyright © 2007, Oracle. All rights reserved.

Optimizing Data Storage When you add members to your outline, they have a default storage setting of stored. Thus, Essbase reserves storage space on disk for input or calculated data related to the members. However, members to which no data will ever be aggregated or loaded impede the flow of data and restrict visibility for users. A vital design goal is to ensure data visibility at all levels of the hierarchy. You can provide visibility and maximize the efficiency of your database by using the Label Only storage option. Additionally, in some circumstances Essbase optimizes data storage automatically by creating implied shares between members. You can modify data storage options through the Member Properties dialog box.

4-18

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

Label Only Members ƒ Do not store data ƒ Group members to ease navigation and reporting ƒ Create a pointer to the first child Scenario

Label Only

Current Year

~

Budget

~

Jan

Feb

Mar

Qtr 1

Scenario

120

125

150

395

Current Year

120

125

150

395

Budget

110

140

140

390

Copyright © 2007, Oracle. All rights reserved.

Label Only Members Label only members do not store data. However, when viewed in reports or used in calculations, a label only member has a pointer to the data for its first child, as shown in the example on the slide.

Hyperion Essbase Analytics 9.3.1 Bootcamp

4-19

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions In some dimensions, you may want to create a parent simply to group members together or to ease navigation and reporting. For example, Bigcorp Sales has the following Scenario dimension:

In the Bigcorp Sales outline, the members Scenario and Scenario Variances serve an organizational purpose and do not represent a data set or a variance. Data is not aggregated or loaded to either member, creating blank levels in the Scenario hierarchy. Using label only as the data storage property for these members reduces the disk space required for the dimension, improves database efficiency, and provides a view of data at every level in the Scenario hierarchy. When assigning the label only storage property, keep the following restrictions in mind: • Level 0 members cannot be label only. • Label only members cannot be calculated.

4-20

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

Implied Shares An implied share is an automatic internal optimization created by Essbase in the following circumstances: ƒ A parent has only one child. ƒ A parent has only one child that consolidates to the parent. Firebrand

(+) Stored

Firebrand 270 A

Budget (+) Stored

To prevent implied sharing, set the storage property of the parent to Never Share.

(+) Stored

Bud Draft 1

(~)

Stored

Bud Draft 2

(+)

Stored

Bud Final

(~) Stored

Copyright © 2007, Oracle. All rights reserved.

Implied Shares The shared member and label only properties define a shared data relationship explicitly, but some members are shared in certain circumstances even if you do not explicitly set them as shared. The relationship, called an implied share, is an internal optimization created by Essbase in the following circumstances: • A parent has only one child. In this situation, it is implied that the parent and the child should contain the same data. Essbase ignores the consolidation property on the child and stores the data only once, creating an implied share relationship from the parent to the child. In the example on the slide, the parent Firebrand has only one child, Firebrand 270 A, so Firebrand shares the value of Firebrand 270 A.

Hyperion Essbase Analytics 9.3.1 Bootcamp

4-21

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions • A parent has only one child that consolidates to the parent. If the parent has three children, but two of them are marked to be ignored during consolidation (~), the parent and the one child that consolidates contain the same data. Essbase ignores the consolidation property on the child and stores the data only once, creating an implied shared relationship from the parent to the child. In the example on the slide, Budget has only one child, Bud Draft 2, that consolidates to it. The other children are marked to be ignored during consolidation (~), so Budget implicitly shares the value of Bud Draft 2. TIP

Take advantage of implied shares to facilitate versioning and reduce report maintenance: In the example, Budget shares Bud Draft 2 data. When the budget is final, the administrator updates the consolidation operators, changing Bud Draft 2 to ignore during consolidation (~) and Bud Final to addition (+). Now Budget and any report that uses the member name Budget reflects Bud Final data, instead of Bud Draft 2 data. If you do not want a member to be shared implicitly, tag the parent as Never Share. When a parent is tagged Never Share, Essbase duplicates the child data in the parent member.

4-22

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

Summary In this lesson, you should have learned to: • Create member aliases • Describe dimension types • Create period-to-date totals • Describe Dynamic Calc members • Enhance accounts dimensions • Optimize data storage

Hyperion Essbase Analytics 9.3.1 Bootcamp

4-23

Module 1 Creating Databases Lesson 4 Optimizing Data Descriptor Dimensions

4-24

Hyperion Essbase Analytics 9.3.1 Bootcamp

M O D U L E

2

Building Rules Files

Overview This module introduces rules files for loading data and building dimensions. It presents a standard methodology for planning dimensions, based on existing data sources and reporting needs. It examines attribute dimensions and compares them with other possible design choices. You create rules files to build database outlines from flat files and relational data sources. You also identify common problems with source data files, and learn how to solve them with rules files. Lessons in this module include: • Planning Dimension Designs • Creating Basic Dimension Build Rules Files • Creating Advanced Dimension Build Rules Files • Creating Attribute Dimensions • Loading Data

4

L E S S O N

5

Planning Dimension Designs

Objectives At the end of this lesson, you should be able to: • Describe business view dimensions • Combine business views • Plan dimensions with label outlines

5

Module 2 Building Rules Files Lesson 5 Planning Dimension Designs

Business View Dimensions Overview Business view dimensions ƒ Define a specific cut of the data ƒ Are developed and maintained through automatic processes ƒ Incorporate alternate rollups using shared members ƒ Are not calculation-intensive ƒ Are sparsely populated with data The choice of business view dimensions is substantially driven by the company’s industry and business practices.

Copyright © 2007, Oracle. All rights reserved.

Business View Dimensions Overview Although most Essbase databases have dimensions in common, the power of Essbase comes from the custom-built dimensions that are specific to the analytic needs of a particular business. These business view dimensions differ from implementation to implementation. They provide users with a specific cut of the data, facilitating a multidimensional richness of analysis that extends beyond the information incorporated in the data descriptor dimensions.

5-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 5 Planning Dimension Designs From a design perspective, business view dimensions share the following characteristics: • They define a specific cut of data. Rather than defining the essentials of the data, business view dimensions provide information about a specific aspect of your business. A human resources database might include a dimension with details on employees and office locations, whereas a sales database might include a customer dimension to track sales by customer. Other common business views are legal entities, geographical locations, and products. The choice of which business view dimensions to incorporate in your design and how to structure your chosen dimensions is driven by your company’s industry and business practices. • They are usually developed and maintained through automatic processes. Because business view dimensions often have hundreds or even thousands of members and many levels in their hierarchies, it is common to create and maintain them by loading member names and properties with a dimension build rule rather entering member names and properties directly into the outline. • They incorporate alternate hierarchies by using shared members. Different functional groups in the company usually require different levels of detail for the same information. Alternate hierarchies, created using shared members, enable all users to see the information that they need for analysis. • They are not calculation-intensive. Calculations in business view dimensions are usually simple aggregated rollups of branches in the dimension hierarchy. There are very few (or no) complex models, member formulas, or variances. • They are usually sparsely populated with data. Of all dimensions in a block storage database, business view dimensions have the lowest probability that one or more data points (one or more member intersections) are occupied. As a result, business view dimensions are usually configured as sparse dimensions.

Hyperion Essbase Analytics 9.3.1 Bootcamp

5-3

Module 2 Building Rules Files Lesson 5 Planning Dimension Designs

Combining Business Views You can represent each of your business views as a standard dimension in the database, but be aware as you design your outline that the number of standard dimensions in a block storage database has a direct impact on database performance. The more standard dimensions you create, the larger your database and the greater the calculation time. TIP

Block storage databases should have between 4 four and 8 dimensions for best performance. You can fine-tune your database design and more effectively leverage the multidimensional technology by adhering to the following guidelines:

5-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 5 Planning Dimension Designs • Combine dimensions to avoid interdimensional irrelevance. Irrelevance occurs when many members of a dimension are irrelevant across other dimensions. In such a situation, you may be able to remove a dimension from the database and add its members to another dimension or split the model into separate databases. • Consider making dimensions that describe or classify other dimensions attribute dimensions. Attribute dimensions are not stored and therefore do not affect database size or batch calculation performance. The following example shows four proposed dimensions for a human resources database:

Each employee has only one manager and works in only one office, which is naturally located in only one state. Thus, for each employee, although many combinations per dimension are possible, only one combination per dimension is valid. The following methods are only two of many ways to redesign the four dimensions.

Hyperion Essbase Analytics 9.3.1 Bootcamp

5-5

Module 2 Building Rules Files Lesson 5 Planning Dimension Designs Redesigning by Combining Dimensions You combine dimensions by creating additional hierarchy levels in a single dimension: staff employees, instead of being in a separate flat dimension, can consolidate to managers, who consolidate to office locations, which consolidate to states. This variation reduces database size by eliminating interdimensional irrelevance and also provides a logical hierarchy for users.

5-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 5 Planning Dimension Designs Redesigning with Attribute Dimensions Because the employee’s manager and office location can be considered a way to classify the employee, you can convert the manager and office location dimensions into attributes of the employee dimension. This conversion reduces database size but has other potentially serious effects on performance. For a comprehensive discussion on attribute dimensions, see Lesson 8, “Creating Attribute Dimensions.”

Hyperion Essbase Analytics 9.3.1 Bootcamp

5-7

Module 2 Building Rules Files Lesson 5 Planning Dimension Designs

Planning Dimensions with Label Outlines Total Products by Family Product Families (+) Product Lines

Item Number Performance

Create generic level labels for the Product dimension.

(+) (+)

(+)

Lightbolt

Document real-world examples of members at each labeled generation.

(+)

Lightbolt 365 A

(+)

Copyright © 2007, Oracle. All rights reserved.

Planning Dimensions with Label Outlines Business view dimensions can have thousands of members and many potential levels in their hierarchies. Planning in advance what levels are required is a necessary part of the implementation process. One planning method is to develop a documented plan, called a label outline, for planning purposes before starting to load members into the outline. Label outlines help you define the type of data represented at each level in the dimension and ensure symmetry within hierarchy branches. The following steps summarize the process for creating a label outline: 1. Open an empty outline on a client machine. 2. Create an outline member name for the dimension that you are analyzing. 3. Starting from the top of the dimension, add a name for each level (for example, Product Families).

5-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 5 Planning Dimension Designs 4. Starting from the top at a generation parallel to the label hierarchy, add a real-world business example of the named level (for example, Performance). 5. Continue adding layers of labels with parallel examples until you reach the bottom of the hierarchy. 6. Use a finalized version of the label outline as a specification sheet or design document. Constructing a label outline during a design meeting provides a useful planning tool and also identifies questions, issues, and potential areas of misunderstanding. This planning method provides the following advantages: • Provides a single visual planning model. Having an abbreviated picture of a dimension hierarchy in the outline editor provides a concrete example that participants can examine and discuss. • Exposes nomenclature differences. Working through the structure top-to-bottom identifies nomenclature differences between functional groups. For example, Finance calls a particular classification level Product Families, but Manufacturing calls the same classification level Product Groups. The label outline helps the functional groups decide which nomenclature to use in the database outline and ensures that all participants understand the classification of data in Essbase. • Discloses conflicting hierarchy perceptions. Working through the structure identifies differences among functional groups in regard to hierarchy needs. For example, a 5-level product hierarchy meets the Finance department’s needs because product costs are recorded at the lowest level (item number), whereas a shallower, less complex three-level hierarchy meets the Sales department’s need for forecasting. • Highlights sizing, performance, and partitioning considerations. In addition to enabling the estimation of how many members are likely to be required at each level, working through the structure stimulates discussion of database size and performance. Size and performance issues are important to identify early and may suggest that a single database should be partitioned into multiple databases.

Hyperion Essbase Analytics 9.3.1 Bootcamp

5-9

Module 2 Building Rules Files Lesson 5 Planning Dimension Designs

Designing Primary Hierarchies Family Total

Primary Hierarchy

Product Families (+) Product Lines

(+)

Item Number Performance

(+)

(+)

Lightbolt

(+)

Lightbolt 365 A

(+)

Copyright © 2007, Oracle. All rights reserved.

Designing Primary Hierarchies The primary hierarchy of a dimension is typically the hierarchy with the most levels of detail. Ideally, this hierarchy includes all hierarchy elements that you want to share with alternate hierarchies. The top member of the primary hierarchy is a generation 2 member, and should represent a total of all elements in the dimension, as this value is typically shared with the dimension member name. In the example on the slide, Product is a label only member, which means it shares data with Family Total. This arrangement ensures that, when you retrieve the product dimension at the top level, you see a total for all products.

5-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 5 Planning Dimension Designs

Designing Secondary Hierarchies Secondary Hierarchies

Configuration Total Configuration

(+) (+) Shared

Item Number Config A

(+) (+) Shared

Lightbolt 365 A

Line Total Line Type

(+)

Product Lines New Lines Lightbolt

(+) Shared

(+) (+) Shared Copyright © 2007, Oracle. All rights reserved.

Designing Secondary Hierarchies You can use the same label outline procedure for analyzing alternate rollups and for identifying levels at which member sharing occurs. In the example on the slide, the Configuration hierarchy includes shared members that index level 0 members in the primary hierarchy, and the Line hierarchy includes shared members that index level 1 members in the primary hierarchy. The top member of a secondary hierarchy may or may not represent a total of all dimension elements and should always be marked ignore during consolidation (~), so that shared members are not double-counted during the consolidation process.

Hyperion Essbase Analytics 9.3.1 Bootcamp

5-11

Module 2 Building Rules Files Lesson 5 Planning Dimension Designs

Summary In this lesson, you should have learned to: • Describe business view dimensions • Combine business views • Plan dimensions with label outlines

5-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

L E S S O N

6

Creating Basic Dimension Build Rules Files

Objectives At the end of this lesson, you should be able to: • Describe basic dimension build rules files • Create dimension build rules files • Configure dimension maintenance settings

6

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Rules Files Overview ƒ Load data or build dimensions ƒ Leverage external data sources ƒ Created with Data Prep Editor

Copyright © 2007, Oracle. All rights reserved.

Rules Files Overview Rules are stored sets of operations that Essbase performs on data values or on dimensions and members when it processes a data source. A rules file can contain rules for loading data, rules for updating dimensions and members, or both. Although you can load data to databases without using rules files, you must use rules files when you want to update dimensions and members from information in a data source. You create rules files in Administration Services Console, using Data Prep Editor.

6-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Data Sources ƒ Text files (flat files) from text backups or external sources ƒ SQL data sources ƒ Microsoft Excel files with the .XLS extension, Version 4.0 and higher ƒ Microsoft Excel files, Version 5.0 and higher ƒ Error files generated from a previous dimension build

Copyright © 2007, Oracle. All rights reserved.

Data Sources Data sources contain the information that you load to a database outline. Data sources for dimension building can contain member names, member aliases, formulas and consolidation properties, generation and level names, currency names, data storage properties, attributes, and user-defined attributes (UDAs). Key terms relating to data sources: • Field: an individual value in the data source • Delimiter: a character or space indicating the start and end of fields • Record: a structured row of related fields, separated by delimiters A data source is composed of records, which themselves are composed of fields and delimiters. Essbase reads data sources starting with the first record at the top and proceeding from left to right.

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-3

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Dimension Build Rules Files When you create dimensions with thousands of members or with many alternate hierarchies, you want to automate the process, not manually add the members. You use dimension build rules files to map dimensions and members from a data source to an Essbase outline. During dimension building, the rules file tells Essbase which build method to use, specifies hierarchy designations for members, and tells Essbase how to transform members before loading them. TIP

It is best to create a separate rules file for each dimension.

6-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files When you execute a dimension build, Essbase reads the members in the data source, changes them based on the rules in the rules file, and loads the changed members into the outline without changing the original data source. You can use a single rules file for any data source that requires the same set of rules. Use rules files to address issues of hierarchy management: • Loading complex hierarchies • Loading thousands of member at once • Sorting, adding, and deleting members • Automating hierarchy maintenance with batch processes You can also use rules files to troubleshoot issues with your data: • Changing data field order • Duplicating, parsing, and concatenating fields to construct hierarchies • Adding prefixes or suffixes to names to provide clarity and to comply with unique member name requirements • Creating aliases NOTE

You cannot build dimensions from data sources without rules files.

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-5

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Creating Dimension Build Rules Files General Setup

1. Open a sample data source. 2. Set data source properties. 3. Hide raw data (optional). 4. Set the view to dimension build fields. 5. Associate the rule with a database outline. 6. If necessary, format the file. 7. If necessary, create a dimension.

Actions

8. Select the dimension build method. Completion

9. Define field properties. 10. Validate the rule. 11. Save the rule. 12. Execute the rule. Copyright © 2007, Oracle. All rights reserved.

Creating Dimension Build Rules Files The twelve steps on the slide summarize the procedure for creating rules to load members into an outline. Use this as a checklist when you create a dimension build rules file. The steps are divided into three sections: general setup, actions, and completion. Before beginning the procedure outlined in the following table, you must open Data Prep Editor (select File > Editors > Data Prep Editor). The table shows each step in the procedure with its corresponding menu path: Procedure Step 1. Open a sample data source.

Menu Path File > Open data file File > Open SQL

2. Set data source properties.

Options > Data source properties

3. Hide raw data (optional).

View > Raw data

6-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files Procedure Step

Menu Path

4. Set the view to dimension build fields.

View > Dimension build fields

5. Associate the rule with a database outline.

Options > Associate outline

6. If necessary, format the file.

Field menu options

7. If necessary, create a dimension.

Options > Dimension build settings (Dimension Definition tab)

8. Select the dimension build method.

Options > Dimension build settings (Dimension Build Settings tab)

9. Define field properties.

Field > Properties (Dimension Build Properties tab)

10. Validate the rule.

Options > Validate

11. Save the rule.

File > Save

12. Execute the rule.

In Outline Editor: Outline > Update Outline

TIP

Do not use the Open toolbar button to open a data source in your rules file; for Data Prep Editor to read a data source you must select File > Open data file.

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-7

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Prepping Data Prep Editor (Steps 1–6) Steps 1 through 6 of the procedure ensure you do the following: ƒ Provide yourself with samples of data on which to base your rule ƒ Define correct file delimiters ƒ Identify and ignore header records ƒ Set the view in Data Prep Editor to the correct mode for dimension building ƒ Create an association between the rule and the database outline that you want to update

Copyright © 2007, Oracle. All rights reserved.

Prepping Data Prep Editor (Steps 1–6) The general setup steps in the procedure are to prepare Data Prep Editor for building the rules file. You do not have to execute these steps in any particular order, but, if you follow a standard setup routine, you are less likely to forget an important step. Therefore, it is recommended you complete the steps in the same order each time you create a rules file. Step 1: Open a Sample Data Source After you open Data Prep Editor, you can open data sources such as text files, spreadsheet files, and SQL data sources. The data source provides a frame of reference for building the rules file; it is displayed in Data Prep Editor so you can see what needs to be changed and how to create your mappings. The sample data source that you use to build the rule should have the same format as the actual data source that you use to update your members.

6-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files To open text or spreadsheet files: 1. Select File > Open data file. The Open dialog box is displayed. 2. Browse to the file location, and then select the file. 3. Click OK. Essbase reads the data records into Data Prep Editor. To open SQL data sources: 1. Select File > Open SQL. The Select Database dialog box is displayed. 2. Select the Essbase server, application, and database for which you are creating the rule. 3. Click OK. The Open SQL Data Sources dialog box is displayed. 4. In the “SQL data sources” list, select the desired data source. 5. In the Connect text boxes, enter your connection information. 6. In the SQL Statement text boxes, enter your SQL query. 7. Click OK/Retrieve. Essbase reads the queried data records into Data Prep Editor. NOTE

You must configure data source names and ODBC connections before you open SQL data sources. For instructions, see the SQL Interface Guide.

Step 2: Set Data Source Properties This step comprises two sub-steps: selecting a file delimiter for the data source and identifying and ignoring header records in the data source. File Delimiter: The character used to separate fields in the data source. By default, a rules file expects fields to be separated by tabs. You can set the file delimiter to be a comma, tab, space, fixed-width column, or custom value. You do not need to set file delimiters for SQL data sources.

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-9

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files Header Records: Records, usually located at the top of the data source, that contain information describing the data source contents. You must instruct the rule to skip these records. To set data source properties: 1. Select Options > Data source properties. The Data Source Properties dialog box is displayed. 2. On the Delimiter tab, select the appropriate file delimiter. 3. Select the Header tab. 4. For “Number of lines to skip,” enter the appropriate number. 5. Click OK. Step 3: Hide Raw Data (Optional) By default, the Data Prep Editor window is organized into two frames. As shown in the following example, the top frame contains your source (raw) data, and the bottom frame shows how the rules file presents the data to Essbase.

6-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files The two frames enable you to compare the rules file results to the original data source. However, as many steps in the dimension build rules file procedure involve opening dialog boxes on top of the rules file, hiding the source data can give you a better view of the rule information as you complete the procedure. You can toggle the raw data panel on and off from the View menu. Step 4: Set the View to Dimension Build Fields When developing rules files, you work in one of the following view modes: • Dimension build fields view: Use this view when you create rules to automate loading or maintenance of members in the outline. • Data load fields view: Use this view when you create rules to load data (for example, units and dollars) to members in a database. Although you may not see a difference in the rule when you change the view mode, it has a pronounced effect on later steps in the procedure, namely assigning field properties and validating your rule. The default view in Data Prep Editor is “Data load fields,” but you can select the appropriate view from the View menu. Step 5: Associate the Rule with a Database Outline You must associate your rules file with the database outline for which you are creating the rule. Similar to step 4, this step provides no visual cues after completion, but, if you do not associate your rule with an outline, you cannot successfully construct or validate the rules file for errors. Because the outline association is not saved as part of the rules file, you can use a rules file created for one database against other databases. For example, if two databases include the same Product dimension, you can create one rules file and load the same source data to both databases. However, you must reassociate the rules file with a database outline every time you open the saved rule file. You can associate an outline with your rules file from the Options menu. Step 6: If Necessary, Format the File If your data source columns are not in the correct order for building the dimension or you must format the columns in other ways, you can use the following Field menu options to format data source columns: • Move • Split

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-11

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files • Join • Create using join • Create using text

6-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Creating Dimensions (Step 7) 2

1

3 4

Copyright © 2007, Oracle. All rights reserved.

Creating Dimensions (Step 7) Essbase gives you the option to define a new dimension (its name and properties) in a rules file instead of adding the dimension manually to the outline. You may want to use this option in the following circumstances: • During the design phase of your implementation, to build rules files for dimensions that are not yet added to the outline • After you deploy the database and as you maintain dimensions, to delete and rebuild a dimension on a regular basis To create dimensions in rules files: 1. Select Options > Dimension build settings. The Dimension Build Settings dialog box is displayed. 2. Select the Dimension Definition tab.

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-13

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files 3. Select Rules File. 4. In the Dimension text box, enter the dimension name, and then press Enter. You can also use the Dimension Definition tab to set properties for new or existing dimensions. To set dimension properties in rules files: 1. Select Options > Dimension build settings. The Dimension Build Settings dialog box is displayed. 2. Select the Dimension Definition tab. 3. Right-click a dimension, and then select Edit properties. The Dimension Properties dialog box is displayed. 4. Select he appropriate settings, and then click OK.

6-14

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Selecting Dimension Build Method (Step 8) ƒ Generation references

2

ƒ Level references ƒ Parent-child references 3

1 4

Copyright © 2007, Oracle. All rights reserved.

Selecting Dimension Build Method (Step 8) Whether you are creating a dimension or adding members to a dimension, you must tell Essbase what build method to use. You must specify a build method for each dimension that you create or modify in a rules file. The build method that you select determines the algorithm that Essbase uses to add, change, or remove dimensions, members, and aliases in the outline. The kind of build method that you select depends on the layout of the records in the data source.

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-15

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files The three primary build methods for building and maintaining standard dimensions are generation references, level references, and parent-child references. The following table provides guidelines to help you select the appropriate build method for the data source: Build Method

Type of Data in Each Record

Examples

Generation references

Top-down data: Each record specifies the parent name, the child name, the name of the child of that child, and so on.

Year, Quarter, Month

Level references

Bottom-up data: Each record specifies the name of the member, the name of its parent, the name of the parent of its parent, and so on.

Month, Quarter, Year

Parent-child references

Parent followed by its child: Each record specifies the name of the parent and the name of the child, in that order, although other information can also be specified.

Year, Quarter Quarter, Month

To select dimension build method: 1. Select Options > Dimension build settings. The Dimension Build Settings dialog box is displayed. 2. Select the Dimension Build Settings tab. 3. Under Dimension, double-click the dimension for which you are selecting a build method. 4. Under “Build method,” select the appropriate build method.

6-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Defining Field Properties (Step 9) 2

ƒ Dimension ƒ Field type ƒ Field number

1

3

Copyright © 2007, Oracle. All rights reserved.

Defining Field Properties (Step 9) In a dimension build, each field in the data source is part of a column that describes a member in the outline. Fields can contain information about member names, member properties, or attribute associations. In order for Essbase to process this information, you must specify the field type in the rules file. You must specify the following information when defining fields: • Dimension: The dimension to which members of the current field belong • Field type: The type of information in the field, such as a generation or alias (The field type you select depends on the data source and the build method that you selected in the preceding step.) • Field number: The generation or level number of the members in the current field

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-17

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files Field Types The following table gives definitions for the most common field types and the build methods for which they are valid: Field Type

Definition

Valid Build Methods

Generation

The name of a member in the specified generation

Generation references

Level

The name of a member in the specified level

Level references

Parent

The name of a parent

Parent-child references

Child

The name of a child

Alias

A member alias

Property

A member property (For a complete list of valid member property codes, see the Database Administrator’s Guide.)

Formula

A member formula

UDA

A member UDA (user-defined attribute)

Generation, level, and parent-child references

Field Numbers The numbers that you assign to fields depend on the build method and field type that you select. Use the following table as a guide for assigning field numbers: Build Method

Rules for Assigning Field Numbers

Generation

• Generation 1 (the dimension name) is not valid. • If GEN numbers do not start at 2, the members of the first specified generation must currently exist in the outline. • GEN numbers must form a contiguous range. For example, if GEN 3 and GEN 5 exist, you must also define GEN 4. • Group GEN fields sequentially within a dimension; for example:

GEN2,PRODUCT Level

GEN3,PRODUCT

GEN4,PRODUCT

• Each record must contain a level 0 member. • LEV numbers must form a contiguous range. For example, if LEV0 and LEV2 exist, you must also define LEV1. • Group LEV fields sequentially within a dimension; for example:

LEV0,PRODUCT

6-18

LEV1,PRODUCT

LEV2,PRODUCT

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files Build Method

Rules for Assigning Field Numbers

Parent-child

If a field type is parent or child, enter 0 (zero) in the Number text box.

Generation, level, and parent-child

Place alias, property, formula, and UDA fields after the member field with which they are associated and specify the same number as the associated member; for example, an alias field for generation 3 products:

GEN2,PRODUCT

GEN3,PRODUCT

ALIAS3,PRODUCT

To define dimension build field properties: 1. Select Field > Properties. The Field Properties dialog box is displayed 2. Select the Dimension Build Properties tab. 3. Under “Field definition,” complete the following tasks: • For Dimension, double-click or enter the name of the dimension that you are building. • For Field Type, double-click or enter the appropriate type for the selected field. • For Field Number, enter the appropriate number for the selected field. 4. Click Next to continue to the next field, or click OK to finish.

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-19

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Validating Dimension Build Rules Files (Step 10) Common validation errors: “There is an unknown member or no member in the field name.” “The field type for this field is not valid for the build method associated with this field’s dimension.” “The LEVEL number for this field is not contiguous (starting with 0) with other fields’ LEVEL values.”

Copyright © 2007, Oracle. All rights reserved.

Validating Dimension Build Rules Files (Step 10) You must validate your rules file to ensure that the members and dimensions in the rules file map to the associated outline. While a correct validation does not ensure that the data source loads properly, an invalid rules file typically results in an incorrect build.

6-20

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files Use the following table as a guide to common validation errors and their resolutions: Error Message

Resolution

There is an unknown member or no member in the field name.

• The view mode is not currently set to dimension build fields, and Essbase is validating data load field rules. Change the view mode to dimension build fields. • Field properties are not defined for the specified fields. Define the field properties, or set the field to be ignored during dimension builds.

The field type for this field is not valid for the build method associated with this field’s dimension.

Your field type and build method are an invalid combination. Change the build method to reflect field designations, or change field designations to match the build method.

The LEVEL number for this field is not contiguous (starting with 0) with other fields’ LEVEL values.

A higher level (or generation) number was assigned without a supporting lower level. Change the numeric designations to be contiguous.

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-21

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Completing Dimension Build Rules Files (Steps 11 and 12) Step 11: Save the rule ƒ Save to Essbase Server 2

ƒ Save to file system Step 12: Update the outline ƒ Manually in Outline Editor

3

ƒ Manually by executing a data load ƒ Automatically with MaxL

4

1

5

Copyright © 2007, Oracle. All rights reserved.

Completing Dimension Build Rules Files (Steps 11 and 12) The dimension build rules file procedure ends with saving the rule, either to an Essbase server or to a file system location, and finally executing the rules file against a data source by using one of three methods. Step 11: Saving Rules Files You can reuse one rules file with multiple data sources and Essbase databases. By selecting the appropriate tab in the Save dialog box, you can choose to save your rule to a location on an Essbase server (in a database or application directory) or to a location in your file system. Essbase saves rules files with a .rul extension.

6-22

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files Step 12: Updating the Outline After your dimension build rules file is complete, you can use it to load dimensions and members into your outline. You can use any of the following methods to execute a dimension build rules file: • Manually in Outline Editor • Manually by executing a data load • Automatically with a MaxL script Of the three choices, only the first gives you the option of discarding the changes to the outline after Essbase executes the dimension build. After you execute a dimension build in Outline Editor, you can close the outline without saving the changes made by the load. However, when you execute a dimension build through the data load process or a MaxL script, Essbase performs an automatic save and restructure of the database. During the design phase of an implementation, the Outline Editor method is commonly used; after database deployment, it is more common to use an automatic update. To update the outline in Outline Editor: 1. Select Outline > Update Outline. 2. Select a data source type. 3. Select source data files. 4. Select a rules file. 5. Specify an error file location. NOTE

For SQL data sources, you do not select data files. Instead, you enter your SQL username and password in the provided text boxes.

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-23

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Configuring Dimension Maintenance Settings Considerations for updating a dimension: ƒ Moving members ƒ Modifying member properties ƒ Sorting members ƒ Selecting member update mode

Copyright © 2007, Oracle. All rights reserved.

Configuring Dimension Maintenance Settings When updating, rather than creating, dimensions, there are additional considerations when building rules files. • Whether to allow moves of members • Whether to allow modification of member properties • Whether to sort members • Whether to use the data source to modify or replace the dimension

6-24

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Moving Members By default, Essbase does not move a member in the hierarchy, even when the outline position of the member differs from the position of the member in the data source. The following table, which applies only to dimensions with unique member names, shows the default behavior of each dimension build method when the parent of a member in a data source record differs from the parent of the member in the outline. Build Method

Dimension Build Result

Generation references

Essbase skips the record and writes it to the error file. There is no change to the member

Level references

Essbase skips the record and writes it to the error file. There is no change to the member.

Parent-child references

Under the new parent, Essbase creates a shared member that references the original member.

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-25

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files For dimensions in which duplicate names are allowed, when data source and outline positions differ, all three build methods create a duplicate member name under the new parent. In some cases, you may want to move members in the hierarchy. In the example on the slide, the Sales group wants to realign the Lightbolt product line with the Old Lines total. To realign, you create a rules file with Allow Moves specified in the Dimension build settings. With Allow Moves selected, Essbase moves Lightbolt from New Lines to Old Lines, instead of returning an error or creating a shared member.

6-26

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Modifying Member Properties Explicit commands: ƒ To update member properties ƒ To update member formulas ƒ To replace member UDAs

Copyright © 2007, Oracle. All rights reserved.

Modifying Member Properties As you maintain your outline, you may find it necessary to change the properties, formula, or UDA assignments of a member. The Dimension Build Settings dialog box provides three check boxes for updating member information: • Allow property changes: This option enables you to update consolidation operators, data storage properties, account properties, and any other element of member information that you can assign with a property field. By default, if Essbase encounters a property field for an existing member in a dimension build rule, it returns the error “Property changes for member MemberName not allowed.” • Allow formula changes: This option enables you to update member formulas from information in a formula field. By default, if Essbase encounters a formula field for an existing member in your dimension build rule, it returns the error “Formula changes for MemberName not allowed.”

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-27

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files • Allow UDA changes: This option enables you to replace a member’s existing UDAs with the ones listed in the data source. By default, if Essbase encounters a UDA field for an existing member in your dimension build rule, it creates a UDA and leaves the original UDA intact. For example, the customer IBM has a UDA of Class A. To change the UDA for IBM to Class L, you must select Allow UDA changes, otherwise IBM will be assigned both Class A and Class L UDAs after dimension build. NOTE

Before you select Allow UDA changes, you must select Allow property changes. I

6-28

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Sorting Members ƒ Sort in ascending or descending order ƒ Sort entire dimensions

Copyright © 2007, Oracle. All rights reserved.

Sorting Members When you add members to a dimension, you may want to enforce a sequential order. By default, Essbase adds a member as the last child of its parent. You can have Essbase arrange members within a dimension in alphabetical order (A to Z) or reverse alphabetical order (Z to A).

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-29

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files In the following example, the dimension build adds members Lightbolt 125 A and Lightbolt 715 S out of sequence:

Existing Hierarchy After Dimension Build You can correct the sequence automatically during the dimension build by applying a Member Sorting option in the Dimension Build Settings dialog box. Keep in mind that, when sorting is enabled, Essbase applies sorting to every set of siblings in the dimension that you are building, not only to the members being loaded. If you applied sorting during the preceding example, Essbase would place the Lightbolt products in the correct sequence but would also move the Configuration Total hierarchy before Family Total, thus interfering with the shared member references from Configuration Total to Family Total and changing how users view data. TIP

Because sorting is applied to the entire dimension, you should use it only on single-hierarchy dimensions with simple aggregation consolidations. Sorting dimensions with multiple hierarchies or complex consolidation paths can have unpredictable results.

6-30

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Updating Members Two load modes: ƒ Add members to a dimension ƒ Replace an entire dimension

Copyright © 2007, Oracle. All rights reserved.

Updating Members Although most dimension maintenance builds simply add members, in some cases you may want to replace a dimension in its entirety. In these situations, you can select the “Remove unspecified member” update option in the Dimension Build Settings dialog box. When you do, Essbase deletes all members of the dimension and rebuilds the dimension from the information in the data source. During this process, Essbase also deletes all data associated with members that are deleted and not subsequently rebuilt. Members that are rebuilt retain their data. Use this option with caution.

Hyperion Essbase Analytics 9.3.1 Bootcamp

6-31

Module 2 Building Rules Files Lesson 6 Creating Basic Dimension Build Rules Files

Summary In this lesson, you should have learned to: • Describe basic dimension build rules files • Create dimension build rules files • Configure dimension maintenance settings

6-32

Hyperion Essbase Analytics 9.3.1 Bootcamp

L E S S O N

7

Creating Advanced Dimension Build Rules Files

Objectives At the end of this lesson, you should be able to: • Describe advanced dimension build rules files • Create shared members • Manipulate fields • Create used-defined attributes

7

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files

Advanced Dimension Build Rules Files Overview Data source

ƒ Adding shared members

Class

Customer

Channel

ƒ Processing data sources

A

IBM

OEM

L …

Maniex …

Disti …

Shared members Copyright © 2007, Oracle. All rights reserved.

Advanced Dimension Build Rules Files Overview Although the twelve-step procedure for creating a dimension build rule provides a solid starting point for creating rules files, you may encounter dimension build tasks or data source issues that require special consideration: • Adding shared members to your outline • Processing data sources that are out of order or include member names that do not match what you want in your outline

7-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files

Creating Shared Members ƒ Parent-child references ƒ Generation references ƒ Level references

Copyright © 2007, Oracle. All rights reserved.

Creating Shared Members The data associated with a shared member comes from a stored member with the same name as the shared member. The shared member creates a pointer to data contained in the stored member; thus the data is shared between the members and is stored only once. Adding shared members in Outline Editor is a simple process; you assign the Shared data storage property to the member. But, the process of using a rules file to build shared members differs from the process of using a rules file to build stored members; you must choose the build method and format the data source carefully. You must also consider the generation and level numbers of the shared members and their related stored members, because generation and level affect the validity of build methods.

Hyperion Essbase Analytics 9.3.1 Bootcamp

7-3

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files

Parent-Child Build Method Parent-child references provide the most flexible method for loading and maintaining shared members. By default, a parent-child build automatically adds shared members, without the field designations that are required in level and generation builds. The principal requirements are that a matching stored member exists in the outline and that the matching member has a parent other than the parent of the shared member that Essbase is currently loading. Creating and maintaining shared members with parent-child references solves a variety of sharing issues that are difficult to manage with the generation or level build methods. The parent-child build method provides the following benefits: • Creates shared members automatically without special setup requirements

7-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files • Enables sharing at any level or generation (In the example on the slide, the Configuration Total shared members and the Line Total shared members are added in one build, despite being shared at different levels or generations.) • Enables building complete secondary rollup hierarchies in one build (When using generation and level build methods, the duplicate generation or level parents must exist in the outline before the shared member is added; thus, a separate build is usually required. In the example on the slide, Essbase adds not only the shared members but also their ancestors.) NOTE

Selecting Do Not Share in the Dimension Build Settings dialog box disables for the selected dimension all sharing in a parent-child build. The Do Not Share check box is not selectable for generation or level build methods.

Hyperion Essbase Analytics 9.3.1 Bootcamp

7-5

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files

Generation Build Method Using the generation build method to add shared members is a two-step process: 1. Create the secondary hierarchy down to the level of the parents of the shared members, as in the original hierarchy example on the slide. 2. In a separate dimension build, add shared members to the bottom of the hierarchy, as in the resulting hierarchy example on the slide. In addition to requiring multiple steps, this method also limits where you can add shared members to your hierarchies.

7-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files In the example on the slide, the shared member Lightbolt (a child of New Lines) is a generation 4 member of the Product hierarchy, as is its related stored member (a child of Performance). You can create members that are shared at the same generation by using the generation build method. In this example, Performance is the primary parent, and New Lines is considered a duplicate generation: a generation with shared members for children. To create shared members by using the generation build method, you need both the primary parent and the parent of the shared member in your data source. List the primary parent first, and define the field type for the parent of the shared members as DUPGEN, using the GEN number of the primary parent.

Hyperion Essbase Analytics 9.3.1 Bootcamp

7-7

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files

Level Build Method Sometimes you want shared members to roll up into parents of different generations. Like the generation build method, the level build method is a two-step process: 1. Create the secondary hierarchy down to the level of the parents of the shared members, as in the original hierarchy example on the slide. 2. In a separate dimension build, add shared members to the bottom of the hierarchy, as in the resulting hierarchy example on the slide. In the example on the slide, Lightbolt 365 A is a stored member under Lightbolt (generation 4) and a shared member under Config A (generation 3). Because the parents are at different generations, you cannot use the generation build method. However, because both parents are level 1 members, you can use the level build method.

7-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files You can create members that are shared at the same level by using the level build method. In this example, Performance is the primary parent, and Config A is considered a duplicate level: a level with shared members for children. To create shared members using the level build method, you need both the primary parent and the parent of the shared member in your data source. List the primary parent first, and define the field type for the parent of the shared members as DUPLEV, using the LEV number of the primary parent.

Hyperion Essbase Analytics 9.3.1 Bootcamp

7-9

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files

Manipulating Fields Arranging fields:

Group

Model ID

Line

Type

ƒ Move

Performance

365-15-150

Lightbolt

ATA

Performance

540-01-100

Lightbolt

SCSI









ƒ Join ƒ Split ƒ Create using join ƒ Create using text Altering fields: ƒ Replace text

ƒ Add prefixes and suffixes ƒ Ignore fields

Copyright © 2007, Oracle. All rights reserved.

Manipulating Fields Data sources may contain information that is irrelevant or unusable in its original format. One of the challenges that you encounter as a database developer is how to process an unformatted data source so that it accomplishes the following objectives: • Returns all information needed to build your outline hierarchy • Formats names as you want them formatted • Conforms to Essbase rules for unique names (not required in dimensions that enable duplicate names) Rules files give you a two-step alternative for addressing these issues, by preprocessing source data before loading it to your database: 1. Arrange fields by using Field menu options. 2. Alter fields by using Field Properties dialog box options.

7-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files

Arranging Fields Step 1: Arrange fields by using field menu options. Data Source Group

Model ID

Line

Type

Performance Performance

365-15-150 540-01-100

Lightbolt Lightbolt

ATA SCSI









Final Arrangement After Rules File Processing Family Total

Group

Line

Line Mod Type

el ID

Family Total

Performance

Lightbolt

Lightbolt 365 ATA

-15-150

Family Total

Performance

Lightbolt

Lightbolt 540 SCSI

-01-100











Copyright © 2007, Oracle. All rights reserved.

Arranging Fields Your data source fields may not be in the order required for dimension building, or you may need to duplicate, parse, or concatenate fields in your data source to produce the member names that you want in your outline. Rather than changing the data source, you can build field-arrangement actions into your rules files. You can use the following Field menu options to arrange fields: Function

Description

Move

Changes the order of fields (For dimension building, fields must be arranged in a specific order.)

Split

Parses fields at a given number of characters

Join

Joins two or more fields (often used to create unique member names)

Hyperion Essbase Analytics 9.3.1 Bootcamp

7-11

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files Function

Description

Create Using Joins two or more columns, creating a new field and leaving existing fields intact Join (can also be used to duplicate a single field) Create Using Creates fields based on text that you enter (The same text is displayed for all Text records in the data source. Often used to create spacing characters for joined fields.)

Essbase records your field arrangement actions in sequence in the rules file and follows the recorded sequence of actions every time you execute the rule. Arranging Fields Example The example on the slide shows a data source for building the Family Total rollup in the Bigcorp Sales Product dimension. The following describes the four fields in the data source: • Group: This field maps directly to the product family names (generation 3) in the Family Total rollup. • Model ID: This field includes three hyphenated numeric codes. The first represents the model number, the second the manufacturing location, and the third the size of the hard drive. Your Essbase database design specifies that you need only the model number. Because model numbers are not unique from product line to product line, you prefix the model number with the product line name to create unique names. • Line: This field maps directly to the product line names (generation 4) in the Family Total rollup. • Type: This field notes the type of hard drive—Bigcorp hard drives are built in both ATA and SCSI interface configuration. You want to use generation references to convert the data source into a format that builds the Family Total hierarchy. In the first part of the process, you arrange fields by completing the following sequence of actions: 1. Add Family Total, using Field > Create using text. 2. Move Line, using Field > Move. 3. Isolate the model number in Model ID, using Field > Split. 4. Create a duplicate of the Line field, using Field > Create using join. 5. Add spaces between the line, model number, and type fields, using Field > Create using text. 6. Concatenate the line, model number, type and space fields to create your database product name, using Field > Join.

7-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files Undoing Field Operations You can undo the last field operation that you performed by using the Edit > Undo command. You can also undo field operations if you have performed intervening actions. Undoing field operations is sequential; you must undo field operations from the last operation to the first operation. Essbase provides a sequential list of field operations on the Field Edits tab of the Data Source Properties dialog box, and you can delete the last action listed in the sequence.

Hyperion Essbase Analytics 9.3.1 Bootcamp

7-13

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files

Altering and Ignoring Fields Step 2: Alter fields by using Field Properties dialog box options.

Replaced text Ignored field Family Total Family Total

Group Performance

Line Lightbolt

Line Mod Type Lightbolt 365 A

el ID -15-150

Family Total …

Performance …

Lightbolt …

Lightbolt 540 S …

-01-100 …

Copyright © 2007, Oracle. All rights reserved.

Altering and Ignoring Fields In addition to arranging fields, you may need to include rules to alter the text from the data source, either by replacing text, adding prefixes or suffixes, or ignoring superfluous fields. Unlike field arrangement options, field alteration settings are defined in the Field Properties dialog box and are field-specific. Essbase provides the following options to alter fields in the Field Properties dialog box: Field Option

Field Properties Tab

Description

Case

Global Properties

Alter text case. Options include Original, Lowercase, and Uppercase.

Prefix

Global Properties

Prefix field values with a text string. Often used to create unique names.

7-14

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files Field Option

Field Properties Tab

Description

Suffix

Global Properties

Suffix field values with a text string. Often used to create unique names.

Replace

Global Properties

Replace text in fields with a specified text string. You can also replace text with no string. Includes the following options: • Case-sensitive: Select to construct a condition based on a case-sensitive string. • Match Whole Word: Select to replace the text string only when it occurs as an entire word. If the text string is embedded in another word, it is not replaced. For example, you want to change the field value FIREBRAND 540 A to FIREBRAND 540 ATA, so you create a rule to replace A with ATA. Because the word FIREBRAND contains an A, if you do not select Match Whole Word, the resulting string is FIREBRATAND 540 A. • Replace All Occurrences: Select to replace multiple instances of a text string in a single field value. By default, Essbase replaces only the first occurrence.

Ignore during dimension build

Dimension Build Properties

Instruct Essbase to skip the field when processing the data source.

Altering and Ignoring Fields Example Continuing the preceding Bigcorp example on arranging fields, after you arrange your data source fields, you need to alter some fields to map values to your outline. To finish the process of manipulating fields, you must complete the following tasks: • In Field 4 (Line Mod Type), create rules to replace ATA and SCSI with A and S, respectively. • Instruct Essbase to ignore Field 5 (el ID) during dimension builds. This field contains the manufacturing location code and hard drive size that are part of the model ID number in the original data source; the field is not required in the outline.

Hyperion Essbase Analytics 9.3.1 Bootcamp

7-15

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files

Creating User-Defined Attributes You can create user-defined attributes for members. A user-defined attribute (UDA) is a word or phrase about a member. In the example on the slide, each customer in the Bigcorp Sales outline has a UDA that describes customer class. Class A customers are major accounts, Class R customers are non-major retail accounts, and Class L customers are distributor accounts. You can use UDAs in the following places: • Calculation scripts. After you define a UDA, you can query a member for its UDA in a calculation script. For example, you can create a budget that is 115% of actual data for Class A customers, 110% of actual data for Class R customers, and 105% of actual data for Class L customers. • Data loading. Using a UDA, you can change the sign of a data value as it is loaded into the database. • Reports. In a report, you can build a list of members with similar UDAs.

7-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files • Security filters. Using member UDAs, you can define a user’s access to data and metadata. • Partition definitions: Using member UDAs, you can define partitions. Rules for Creating UDAs Follow these rules when creating UDAs: • You can define multiple UDAs per member. • You can set the same UDA for multiple members. • A UDA name can duplicate a member, alias, level, or generation name. • You cannot create a UDA on shared members or members of attribute dimensions. • A UDA applies only to the specified member. Descendants and ancestors of the member do not inherit the UDA. • You can define UDAs manually in the Member Properties dialog box. You can create UDAs with rules files by using the UDA field type in the Dimension Build Properties dialog box. TIP

By default, Essbase does not update UDAs when you run a dimension build. If you want to add a UDA to a member, select “Allow property changes” in the Dimension Build Settings dialog box. If you want to replace the UDAs of a member, select “Allow property changes” and Update UDAs in the Dimension Build Settings dialog box.

Hyperion Essbase Analytics 9.3.1 Bootcamp

7-17

Module 2 Building Rules Files Lesson 7 Creating Advanced Dimension Build Rules Files

Summary In this lesson, you should have learned to: • Describe advanced dimension build rules files • Create shared members • Manipulate fields • Create used-defined attributes

7-18

Hyperion Essbase Analytics 9.3.1 Bootcamp

L E S S O N

8

Creating Attribute Dimensions

Objectives At the end of this lesson, you should be able to: • Describe attribute dimensions • Add attribute dimensions to outlines • Compare attribute dimensions to other design options • Create attribute dimensions • Assign attributes to base members

8

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Attribute Dimensions Overview

Lightbolt

Lightbolt 365 A Drive Type: Internal, Drive Size: 150 Lightbolt 365 S Drive Type: Internal, Drive Size: 120 Lightbolt 540 A Drive Type: External, Drive Size: 150

Copyright © 2007, Oracle. All rights reserved.

Attribute Dimensions Overview You can use attribute dimensions to retrieve and analyze data not only from the perspective of dimensions but also in terms of characteristics, or attributes, of the dimensions. For example, Bigcorp can analyze product profitability based on product attributes such as hard drive size, incorporating into the analysis customer attributes such as region or account manager. Analysts can determine that hard drives with larger disk sizes (greater than 600 gigabytes) sold to customers in the east are less profitable than anticipated. For details, they can filter the analysis by specific attribute criteria, including minimum or maximum sales and profits of multiple products in one region.

8-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Benefits Lightbolt

Lightbolt 365 A Drive Type: Internal, Drive Size: 150 Lightbolt 365 S Drive Type: Internal, Drive Size: 120 Lightbolt 540 A Drive Type: External, Drive Size: 150

Attribute Crosstab Report

Copyright © 2007, Oracle. All rights reserved.

Benefits The following are only a few of the ways analysis by attribute provides depth and perspective, supporting better-informed decisions: • You can select, aggregate, and report on data based on common attributes. • By defining attributes as having a text, numeric, Boolean, or date type, you can filter data using type-related functions such as AND, OR, and NOT operators and , and = comparisons. NOTE

Only text attribute dimensions are supported in Planning databases.

Hyperion Essbase Analytics 9.3.1 Bootcamp

8-3

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions • You can use the numeric attribute type to group statistical values by attribute ranges; for example, population groupings such as 1,000,000. • Through the Attribute Calculations dimension, automatically created by Essbase, you can view sums, counts, minimum or maximum values, and average values of attribute data. • You can perform calculations using numeric attribute values in calculation scripts and member formulas. TIP

Although you can create multilevel attribute hierarchies, these can have a serious impact on database and retrieval performance and should be avoided. • You can create crosstabs of attribute data for a dimension, and you can pivot and drill down for detail data in spreadsheets. An attribute crosstab is a report or spreadsheet showing data consolidations across attributes of the same dimension. For example, the crosstab report on the slide displays product drive sizes as rows and drive types as columns. At the intersections, you see the net sales for the combinations of drive size and drive type. From this information, you can see which size-type combinations were most profitable in January: NOTE

For a comprehensive discussion of attribute dimensions, see the Database Administrator’s Guide.

8-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Attribute Calculations Dimension ƒ System-defined ƒ Label only ƒ Dynamic Calc ƒ Not displayed in Outline Editor

Copyright © 2007, Oracle. All rights reserved.

Attribute Calculations Dimension When you create the first attribute dimension in the outline, Essbase creates the Attribute Calculations dimension, which includes five members with the default names Sum, Count, Min (minimum), Max (maximum), and Avg (average). You can use the members in spreadsheets or reports to dynamically calculate and report on attribute data, such as the average yearly sales of internal hard drives to OEM customers. The Attribute Calculations dimension is not visible in the outline. You can usually see it in reporting tools wherever you select dimension members, such as in the Member Selection dialog box in Essbase Spreadsheet Add-in. The Attribute Calculations dimension has the following properties: • System-defined. Essbase creates the Attribute Calculations dimension and its five members automatically. You cannot add or delete members.

Hyperion Essbase Analytics 9.3.1 Bootcamp

8-5

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions • Label only. Like all label only dimensions, the Attribute Calculations dimension shares the value of its first child, Sum. Effectively, when you view an attribute member in a report, you view the Sum calculation whether or not the Sum member is displayed. • Dynamic Calc. The data in the Attribute Calculations dimension is calculated when a user requests it and is then discarded. You cannot store calculated attribute data in a database. • Not displayed in Outline Editor. The Attribute Calculations dimension is not displayed in Outline Editor. Members from this dimension can be viewed in spreadsheets and reports and managed on the Properties tab in Outline Editor. There is no consolidation along attribute dimensions. You cannot tag members from attribute dimensions with consolidation operators or with member formulas in order to calculate attribute data.

8-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Adding Attribute Dimensions to Outlines

Standard Dimensions with Attributes

Attribute Dimensions

Copyright © 2007, Oracle. All rights reserved.

Adding Attribute Dimensions to Outlines In the example on the slide, products have attributes that describe hard drive sizes and types. In the outline, you see these characteristics as additional dimensions associated with Product. An attribute dimension has the word Attribute next to its name in the outline. Additionally, to the right of the Product dimension, the terms Drive Type and Drive Size show that these attributes are associated with the Product dimension. A standard dimension is any dimension that is not an attribute dimension. When an attribute dimension is associated with a standard dimension, the standard dimension is the base dimension for the attribute dimension.

Hyperion Essbase Analytics 9.3.1 Bootcamp

8-7

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Associating Attribute Dimensions ƒ Associate with sparse base dimensions. ƒ Associate with a base dimension before saving the outline. ƒ Place last in the outline. ƒ Associate with only one base dimension.

Copyright © 2007, Oracle. All rights reserved.

Associating Attribute Dimensions There are several important association rules regarding members of attribute dimensions and their base dimensions: • You can associate only sparse standard dimensions with attribute dimensions. • Before you can save an outline to the server, each attribute dimension must be associated with a standard, sparse dimension. • Attribute dimensions must be the last dimensions in the outline. • An attribute dimension can have only one associated base dimension.

8-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions To associate attribute dimensions with base dimensions: 1. In Outline Editor, select a sparse dimension. 2. For the dimension, open the Member Properties dialog box. 3. Select the Attributes tab. 4. In the “Other attribute dimensions” list box, select the attribute dimension that you want to associate. 5. Click Assign.

Hyperion Essbase Analytics 9.3.1 Bootcamp

8-9

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Assigning Attributes in Outline Editor Member association rules: ƒ For each attribute dimension, associate no more than one attribute per base member. ƒ For each attribute dimension, associate all attributes at the same level in the base dimension. ƒ Associate only level 0 attribute members.

Copyright © 2007, Oracle. All rights reserved.

Assigning Attributes in Outline Editor When you associate a member of an attribute dimension with a member of a base dimension, follow these rules: • You cannot associate multiple members from one attribute dimension with the same base dimension member. For example, the Internal and External drive type cannot both be associated with the product Lightbolt 365 A. • All base dimension members associated with members of a particular attribute dimension must be at the same level. In the example on the slide, all Product dimension members that have Drive Type attributes are at level 0. You cannot associate THUNDERBALL, which is a level 1 member, with a Drive Type attribute because the other members of the Product dimension that have Drive Type attributes are level 0 members.

8-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions • You can associate only level 0 attribute members to base members. Although attribute dimensions can have multi-level hierarchies, in the base dimension, you cannot use attribute parent levels as associated attributes. To associate attributes to base dimension members in Outline Editor: 1. For a base dimension member, open the Member Properties dialog box. 2. Select the Associations tab. 3. In the “Available attributes” list, expand the desired attribute dimension, and then select the level 0 attribute. 4. Click Assign. Essbase adds the selected attribute to the “Associated attributes” list.

Hyperion Essbase Analytics 9.3.1 Bootcamp

8-11

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Design Considerations Attribute dimension alternatives: ƒ Standard dimension ƒ Secondary Rollup ƒ UDAs

Copyright © 2007, Oracle. All rights reserved.

Design Considerations For the greatest flexibility and functionality, use attribute dimensions to define attribute data. Using attribute dimensions provides sophisticated, flexible data retrieval, additional calculation functionality, economy of disk space, and simplicity of design. However, in some situations, consider one of the following approaches: • Create a standard dimension. Additional standard dimensions provide flexibility, but they add storage requirements and complexity to a database. • Use shared members to create a secondary hierarchy in a standard dimension. This is possibly the most common approach to grouping members with similar characteristics, but a major disadvantage of using shared members is that the outline becomes very large if the categories repeat many members. • Add UDAs to members in a standard dimension. Although UDAs provide less flexibility than attributes, you can use them to group and retrieve data.

8-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions The following table describes design situations for which you should consider alternative approaches for managing attribute data. If you want to...

Consider...

Analyze attributes of dense dimensions

UDAs or secondary hierarchies

Perform batch calculations of data

Secondary hierarchies or standard dimensions

Define attributes that vary over time or associate multiple attributes with one member

Standard dimensions (For example, to track product maintenance costs over a period of time, the age of the product at the time of maintenance is important. However, using the attribute feature you can associate only one age with the product. You need multiple members in a separate dimension for each time period that you want to track.)

Minimize retrieval time with large numbers of basedimension members

Batch calculation with secondary hierarchies or standard dimensions

Each design choice has unique implications in terms of database size, batch calculation performance, reporting layout, and reporting performance. You can use the comparisons discussed in the following topics as a guide to deciding which design option works best for you.

Hyperion Essbase Analytics 9.3.1 Bootcamp

8-13

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Design Considerations: Database Size Standard Dimensions Large impact— Database architecture is changed database size is increased. During data load, you must reference all standard dimensions.

Attribute Dimensions No impact—Data is not stored. You do not have to reference attributes in data loads.

Secondary Hierarchies Some impact— Additional consolidation nodes are stored.

UDAs No impact— Member properties require no additional storage.

Copyright © 2007, Oracle. All rights reserved.

Design Considerations: Database Size Additional standard dimensions have the greatest impact, increasing database size and degrading overall performance. As a general rule for block storage databases, a minimum number of standard dimensions produces the most efficient database design. Secondary hierarchies also increase database size. Although secondary hierarchies contain primarily shared members, they also contain non-shared consolidated members that are typically stored. Attribute dimensions and UDAs have no impact on database size, as neither requires Essbase to store extra data.

8-14

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Design Considerations: Batch Calculation Performance Standard Attribute Dimensions Dimensions Large impact— No impact— Expanded Calculations are database dynamic. architecture requires increased calculation time.

Secondary Hierarchies Some impact— Additional consolidation nodes are calculated.

UDAs No impact— By themselves, UDAs perform no inherent calculations.

Copyright © 2007, Oracle. All rights reserved.

Design Considerations: Batch Calculation Performance Additional standard dimensions also have the greatest impact on batch calculation performance. The more standard dimensions Essbase needs to calculate, the more time required for calculation. Secondary hierarchies also affect batch calculation times, because they contain consolidated members that need to be calculated across all standard dimensions. Attribute dimensions and UDAs have no impact on batch calculation performance; Essbase calculates attribute dimensions dynamically, and UDAs have no inherent calculation properties.

Hyperion Essbase Analytics 9.3.1 Bootcamp

8-15

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Design Considerations: Report Layout Standard Dimensions ƒ Are easy to use in reports

Attribute Dimensions ƒ Are not displayed by default

Secondary Hierarchies ƒ Are easy to use in reports

ƒ Can make ƒ Are displayed reporting difficult ƒ When displayed, as alternate (if too many behave like hierarchy paths standard standard in standard dimensions) dimensions dimensions

UDAs ƒ Are never displayed in reports ƒ Can be used to filter lists of members

Copyright © 2007, Oracle. All rights reserved.

Design Considerations: Report Layout Reports are where the results of your design choices affect the end user. For this reason, a collection of sample reports is one of your primary outline design tools. During the analysis phase of your implementation, you must evaluate the effect of your design choice on report layout.

8-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions Standard Dimensions In a report, you must reference all standard dimensions. You can create crosstab reports with standard dimensions by displaying one dimension across the row axis and another dimension across the column axis. For example, assuming that Customer and Region Total are both standard dimensions, you can view customer channels in rows and regions in columns.

Attribute Dimensions In a report, you do not have to reference attribute dimensions. You can add attribute dimensions to a report by using selection tools or by entering dimension names into Excel. When an attribute dimension is displayed in a report, the entire report is calculated dynamically, making it read-only. You can create crosstabs of two or more attributes for a base dimension by displaying one attribute in the row axis and another attribute in the column axis. For example, assuming that Customer is a standard dimension and Region Total is an attribute dimension, you can view customer channels in rows and regions in columns, exactly like the previous example.

Hyperion Essbase Analytics 9.3.1 Bootcamp

8-17

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions Secondary Hierarchies As secondary hierarchies are built into standard dimension hierarchies, they are exposed when users drill down in dimensions. Thus, it is simple for users to find and use them. You cannot create a crosstab report with the secondary hierarchy option. In the following example, assuming that Region Total and Channel Total are both hierarchies in the Customer dimension, Region Total and Channel Total are displayed in the same axis because they are members of the same dimension.

UDAs UDA values are never displayed in reports. However, you can use member selection tools to build lists of members with similar UDAs.

8-18

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Design Considerations: Report Performance Standard Dimensions Medium to large impact—Too many standard dimensions slow overall performance.

Attribute Dimensions Large potential impact—Attributes are calculated dynamically, sometimes causing slow reporting performance.

Secondary Hierarchies Little impact— Results are typically stored and accessed as usual.

UDAs No impact— UDAs do not affect retrievals.

Copyright © 2007, Oracle. All rights reserved.

Design Considerations: Report Performance Attribute dimensions have the greatest potential impact on report performance, because all data in a report that displays attributes is calculated dynamically along sparse dimensions. Thus, Essbase must bring multiple data blocks into memory in order to return the calculations. To mitigate poor reporting performance, use the following guidelines: • Do not use attribute dimensions for information that must be displayed in a large percentage of your reports. • Do not associate attribute members with an extremely large number of base dimension members. Additional standard dimensions can also affect reporting performance. As data blocks increase in size and number, Essbase needs more time to retrieve data from them. Secondary hierarchies and UDAs have no impact on report performance.

Hyperion Essbase Analytics 9.3.1 Bootcamp

8-19

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Creating Attributes with Rules Files 2

1 Product

Drive Type

Internal

{Drive Type}

External

Lightbolt

Lightbolt 365 A

3

Product

{Drive Type}

Lightbolt

Lightbolt 365 S

Lightbolt 365 A Drive Type: Internal

Lightbolt 540 A

Lightbolt 365 S Drive Type: Internal Drive Type

Attribute [Type: Text]

Lightbolt 540 A Drive Type: External

Copyright © 2007, Oracle. All rights reserved.

Creating Attributes with Rules Files 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 in rules files involves the three following sequential operations: 1. If the attribute dimension does not exist, you must create it and associate it with its base dimension. 2. You must build the attribute dimension hierarchy. 3. You must associate members of the attribute dimension with members of the base dimension.

8-20

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions You can use either of the following approaches to perform these operations: • Build the attribute dimension and perform the associations in one rules file. Assuming that the base dimension exists, you can build an attribute dimension and associate its attributes with the members of the base dimension in a single step. You need only to define the attribute associations in the rules file. • Build the attribute dimension with one rules file, and then perform the associations in another rules file. Assuming that the base dimension exists, you can build an attribute dimension and associate its attributes with the members of the base dimension in separate steps. Build the attribute dimension as you build a standard dimension, and then associate attribute members with members of the base dimension. You must use this approach when you build multilevel attribute dimensions.

Hyperion Essbase Analytics 9.3.1 Bootcamp

8-21

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Adding Attribute Dimensions with Rules Files 1

3

2

5 4

Copyright © 2007, Oracle. All rights reserved.

Adding Attribute Dimensions with Rules Files The following procedure replaces the procedure for adding a standard dimension in step 7 of the procedure for creating dimension build rules files. To add attribute dimensions in rules files: 1. In the Dimension Build Settings dialog box, select the Dimension Definition tab. 2. Right-click the standard dimension to associate with the attribute dimension, and then select Edit properties. The Dimension Properties dialog box is displayed. 3. Select the Attribute Dimensions tab. 4. In the Name text box, enter your attribute dimension name. 5. In the Type drop-down list, select an attribute dimension type.

8-22

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Assigning Attributes in Rules Files Whether you build the attribute dimension and associate the attribute members with the members of the base dimension in one step or separate steps, you define the field properties in your rules file the same way. Every record of the data source must include at least two columns, one for the member of the base dimension and one for the attribute value of the base dimension member. You must position the field for the member of the base dimension before the fields for the members of the attribute dimension. You can create attribute associations by using any of the three main dimension build methods.

Hyperion Essbase Analytics 9.3.1 Bootcamp

8-23

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions If attribute dimensions exist in your outline or you defined attribute dimensions in the rules file, the list of field types includes the names of the attribute dimensions. To associate attributes with base dimension members, define the field properties for the attribute dimension members as follows: • Dimension: base dimension • Field type: attribute dimension • Number: the number used for the associated base dimension members (The number varies, depending on the build method.) Prohibiting the Addition of Attribute Members By default, Essbase adds new members to the attribute dimension as it associates attributes with base dimension members. If you are associating members from a multilevel attribute dimension or if your attribute dimension is already built, you must not allow Essbase to add members to the attribute dimension. To prevent the addition of members, in the Attribute Members area on the Dimension Build Settings tab of the Dimension Build Settings dialog box, for the base dimension, select “Do not create members.” Updating Attribute Associations You can update attribute associations, but you must first allow association changes. In Attribute Members area on the Dimension Build Settings tab of the Dimension Build Settings dialog box, for the base dimension, select “Allow association changes.”

8-24

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

Summary In this lesson, you should have learned to: • Describe attribute dimensions • Add attribute dimensions to outlines • Compare attribute dimensions to other design options • Create attribute dimensions • Assign attributes to base members

Hyperion Essbase Analytics 9.3.1 Bootcamp

8-25

Module 2 Building Rules Files Lesson 8 Creating Attribute Dimensions

8-26

Hyperion Essbase Analytics 9.3.1 Bootcamp

L E S S O N

9

Loading Data

Objectives At the end of this lesson, you should be able to: • Describe the data load process • Create data load rules files • Select and reject data records • Capture new members during data load

9

Module 2 Building Rules Files Lesson 9 Loading Data

Data Load Overview When your outline is complete, you can start to load data (that is, numbers) into your database for analysis. A data source for loading data must contain not only the values that you want to load but also identification of the location to which Essbase should load the values: a data address that includes one member from every standard dimension in your outline. Essbase supports the following types of data sources for loading data: • Text files (flat files) from text backups or external sources • SQL data sources • Essbase export files (Export files can be loaded without a rules file.) • Microsoft Excel files with the .XLS extension, Version 4.0 and higher • Microsoft Excel files, Version 5.0 and higher.

9-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 9 Loading Data • Spreadsheet audit log files • Error files generated from a previous data load

Hyperion Essbase Analytics 9.3.1 Bootcamp

9-3

Module 2 Building Rules Files Lesson 9 Loading Data

Free-form Data Sources ƒ Simple free-form data source "Current Year" Jan IBM "Lightbolt 365 A" "Current Year" Jan IBM "Lightbolt 365 S" "Current Year" Jan IBM "Thunderball 540 A"

Units 105 Units 85 Units 57

ƒ Formatted free-form data sources Units IBM Jan "Current Year" "Lightbolt 365 A" "Lightbolt 365 S" "Thunderball 540 A"

105 85 57

Feb

Mar

101 72 53

98 82 16

"Lightbolt 365 A" "Lightbolt 365 S" "Thunderball 540 A"

Jan IBM "Current Year" Units ===== 105 85 57

Copyright © 2007, Oracle. All rights reserved.

Free-form Data Sources If a data source contains all information required to load its data values into the database and is formatted properly, you can load the data source without using a rules file. This kind of load is called a free-form data load. To load a data value successfully, Essbase must encounter one member from each dimension before encountering the data value. If Essbase encounters a data value before encountering a member of each dimension, it stops loading the data source, resulting in a partial load of the data values. To map perfectly to a database, a data source must contain all of the following and nothing other than the following: • One or more valid members from each dimension. A member name must be enclosed in quotation marks if it contains spaces, numeric characters (0-9), dashes, plus signs, or ampersands (&).

9-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 9 Loading Data • One or more valid data values. • Spaces as delimiters The simplest way to format records in free-form data sources is to include a member from each dimension and a data field, as in the first example on the slide. Essbase also supports more complex free-form data source formatting, as illustrated by the examples on the slide. The most common types of free-form data sources in a production environment are files created by exporting data from an Essbase database and direct data entry from a spreadsheet. NOTE

For a comprehensive discussion on loading free-form data sources, see the Database Administrator’s Guide, “Data Sources That Do Not Need a Rules File.”

Hyperion Essbase Analytics 9.3.1 Bootcamp

9-5

Module 2 Building Rules Files Lesson 9 Loading Data

Data Sources That Require Rules Files Use rules files when you have any of these requirements: ƒ Load data from a SQL data source ƒ Build dimensions while loading data ƒ Change the data in any way — Scale data — Change signs — Ignore fields

ƒ Change member names in any way — Add prefixes or suffixes — Add missing dimensions — Change field order

Copyright © 2007, Oracle. All rights reserved.

Data Sources That Require Rules Files If your data source does not meet free-form loading requirements, you need rules files to load it. For data sources that do not map perfectly to your database, rules files enable you to compensate by changing member name strings or selectively rejecting records. You can also apply scaling rules to data, aggregate data instead of overwriting, compensate for missing dimensions, use field delimiters other than spaces, and load from SQL data sources using SQL Interface. During free-form data loads, when Essbase encounters an invalid member field, it stops the data load. However, during data loads using rules files, when Essbase encounters an invalid member field, an error message is logged in an exception file (dataload.err) along with the record that caused the error. Essbase then continues processing all the records in the data source after the invalid record.

9-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 9 Loading Data

Creating Data Load Rules Files General Setup

1. Open a sample data source. 2. Set data source properties. 3. Hide raw data (optional). 4. Set the view to data load fields. 5. Associate the rule with a database outline.

Actions

6. If necessary, format the file. 7. Define field properties. 8. If necessary, define a data load header for missing dimensions.

Completion

9. Select data load values options. 10. Validate the rule. 11. Save the rule. 12. Load data. Copyright © 2007, Oracle. All rights reserved.

Creating Data Load Rules Files The twelve steps on the slide summarize the procedure for loading data into your database. Use this as a checklist when you create a data load rules file. The steps are divided into three sections: general setup, actions, and completion. Before beginning the procedure outlined in the following table, open Data Prep Editor. The table shows each step in the procedure with its corresponding menu path: Procedure Step 1. Open a sample data source.

Menu Path File > Open data file File > Open SQL

2. Set data source properties.

Options > Data source properties

3. Hide raw data (optional).

View > Raw data

4. Set the view to data load fields.

View > Data load fields

Hyperion Essbase Analytics 9.3.1 Bootcamp

9-7

Module 2 Building Rules Files Lesson 9 Loading Data Procedure Step

Menu Path

5. Associate the rule with a database outline.

Options > Associate outline

6. If necessary, format the file.

Field menu options

7. Define field properties.

Field > Properties (Data Load Properties tab)

8. If necessary, define a data load header for missing dimensions.

Options > Data load settings (Header Definition tab)

9. Select data load values options.

Options > Data load settings (Data Load Values tab)

10. Validate the rule.

Options > Validate

11. Save the rule.

File > Save

12. Load data.

In Enterprise View, right-click the database, and then select Load data.

9-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 9 Loading Data

Prepping Data Prep Editor (Steps 1–6) ƒ Provide yourself with samples of data on which to base your rule. ƒ Define correct file delimiters. ƒ Identify and ignore header records. ƒ Set Data Prep Editor to the correct mode for data loading. ƒ Create an association between the rule and the database outline that you want to update.

Copyright © 2007, Oracle. All rights reserved.

Prepping Data Prep Editor (Steps 1–6) Like in the procedure for creating dimension build rules files, the general setup steps in the procedure for creating data load rules files prepare Data Prep Editor for building the rule. You do not have to execute these steps in any particular order, but, if you follow a standard setup routine, you are less likely to forget an important step. Therefore, it is recommended you complete the steps in the same order each time you create a rules file. For a detailed description of the general setup steps, read Lesson 6, “Creating Basic Dimension Build Rules Files.”

Hyperion Essbase Analytics 9.3.1 Bootcamp

9-9

Module 2 Building Rules Files Lesson 9 Loading Data Step 1: Open a Sample Data Source After you open Data Prep Editor, you can open data sources such as text files, spreadsheet files, and SQL data sources. The data source provides a frame of reference for building the rules file; it is displayed in Data Prep Editor so you can see what needs to be changed and how to create your mappings. The sample data source that you use to build the rule should have the same format as the actual data source that you use to update your members. Step 2: Set Data Source Properties This step comprises two sub-steps: selecting a file delimiter for the data source and identifying and ignoring header records in the data source. Step 3: Hide Raw Data (Optional) By default, Data Prep Editor is organized into two that enable you to compare the rule results to the original data source. However, because many steps in the rules file procedure involve opening dialog boxes on top of the rules file, hiding the source data can give you a better view of the rule information as you complete the procedure. You can toggle the raw data view on and off from the View menu. Step 4: Set the View to Data Load Fields When developing a rules file, you work in one of the following view modes: • Dimension build fields view: Use this view when you create rules to automate loading or maintenance of members in the outline. • Data load fields view: Use this view when you create rules to load data (for example, units and dollars) to existing members in a database. Although you may not see a difference in the rule when you change the view mode, changing view mode has a pronounced effect on later steps in the procedure, namely assigning field properties and validating your rule. The default view in Data Prep Editor is “Data load fields.” Step 5: Associate the Rule with a Database Outline You must associate your rules file with the database outline for which you are creating the rule. Similar to step 4, this step provides no visual cues after completion, but, if you do not associate your rule with an outline, you cannot successfully construct or validate the rules file for errors. You can associate an outline with your rules file from the Options menu.

9-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 9 Loading Data Step 6: If Necessary, Format the File If your data source columns are not in the correct order for building the dimension or you must format the columns in other ways, you can use Field menu options to format the data source columns.

Hyperion Essbase Analytics 9.3.1 Bootcamp

9-11

Module 2 Building Rules Files Lesson 9 Loading Data

Defining Field Properties (Step 7) For each field, define a data load method and a field name. 2 1

3

Copyright © 2007, Oracle. All rights reserved.

Defining Field Properties (Step 7) Data load rules files, like rules files for dimension building, rely on the organization of fields in the data source. To enable Essbase to process your data source, you must define each field in the rules file by selecting the data load method and the field name. Data Load Method You can select one of two data load methods: the reference method or the default method. • Use the reference method to map fields that contain unqualified duplicate member names or their ancestors. • Use the default method to map fields that contain unique member names or fullyqualified duplicate member names.

9-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 9 Loading Data Field Names Data sources can contain member name fields, member data fields, and pure data fields. The following example shows member name and member data fields.

• Member name fields: These fields contain member names (or qualified member names, for dimensions with duplicate member names). In the Data Load Properties dialog box, you must identify member name fields with their related dimension name. In the preceding example, the first four fields are member name fields and are identified by the relevant dimension names. • Member data fields: These fields contain numeric data values that apply to a specific member, usually identified in the header row. In the Data Load Properties dialog box, you must identify each member data field with a single member from a dimension. Essbase determines the member intersection for a data value in a member data field as a combination of the member names in the record to the left of the data value and the member name in the data value’s field definition. In the preceding example, Jan and Feb are member data fields and are identified by specific members of the Year Tot dimension. The data value 174 corresponds to the intersection of Prior Year, IBM, Lightbolt 365 A, List Price, and Jan.

Hyperion Essbase Analytics 9.3.1 Bootcamp

9-13

Module 2 Building Rules Files Lesson 9 Loading Data • Pure data fields: These fields also contain numeric data values, but the member intersection for the data value is completely defined by the member name fields to the left of the data value. In the following example, 200 is the data value that corresponds to the intersection of Budget, IBM, Lightbolt 365 A, Jan, and List Price.

TIP

A

A data source can contain member data fields or pure data fields, but not both.

To define field properties for unique member name or data fields: 1. Open the Field Properties dialog box. 2. Select the Data Load Properties tab. 3. For “Data load method,” select Default. 4. Depending on the field type, do one of the following: • For a member name field, double-click the related dimension name. • For a member data field, expand the dimension and double-click the related member name. • For a pure data field, select Data field.

9-14

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 9 Loading Data

Referencing Missing Dimensions (Step 8) If necessary, define a data load header for missing dimensions.

1

3

Missing Scenario dimension

2

Copyright © 2007, Oracle. All rights reserved.

Referencing Missing Dimensions (Step 8) To load data, Essbase requires a reference to every dimension in your database. Data sources may not contain all dimensions necessary to load data values. If dimension information is missing from your data source, you can define hidden data load headers in the rules file to supply the missing information. Essbase determines the intersection for the data value as a combination of the member name fields in the record to the left of the member data field, the member names in the field definition, and the member names in the data load header. In the example on the slide, the data value 174 corresponds to the intersection of IBM, Lightbolt 365 A, List Price, Jan, and Prior Year.

Hyperion Essbase Analytics 9.3.1 Bootcamp

9-15

Module 2 Building Rules Files Lesson 9 Loading Data To define data load headers: 1. Select Options > Data load settings. The Data Load Settings dialog box is displayed. 2. Select the Header Definition tab. 3. For Header Name, enter the member name for the data load header, or, under the Dimensions node, expand the dimensions and double-click a member name. TIP

You can enter names from multiple missing dimensions. Separate multiple names with commas.

9-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 9 Loading Data

Setting Data Load Values Options (Step 9) Select data load values options: ƒ Overwrite, add to, or subtract from existing data values ƒ Change sign on load

Copyright © 2007, Oracle. All rights reserved.

Setting Data Load Values Options (Step 9) Data load rules files provide more ways to process data than free-form loads provide. You can choose how you want a data load to interact with values stored in your database and set conditions to change the sign on data as it is loaded. Interacting with Existing Data By default, Essbase overwrites existing values in a database with new values from the data source. Certain types of data sources may require different processing. For example:

Hyperion Essbase Analytics 9.3.1 Bootcamp

9-17

Module 2 Building Rules Files Lesson 9 Loading Data • Data sources that contain records that duplicate the intersections of other records. In the following example, the data source contains multiple daily records for one customer, product, scenario, and account intersection. Because the Date field must map to a month, rather than a day, in the Bigcorp Sales database, you must aggregate all common records to provide a monthly total for each intersection.

• Data sources that contain a piece of an iterative, cumulative data load. For example, if you receive a file containing weekly values, you can accumulate each weekly value to the prior week’s value to create cumulative monthly values in the database. Rules files provide the option to overwrite, add to existing values, or subtract from existing values on load. You can change the load values options on the Data Load Values tab of the Data Load Settings dialog box. NOTE

Using the add or subtract options makes it more difficult to recover from a data load interruption, although Essbase lists the number of the last row committed to the database in the application event log.

9-18

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 9 Loading Data Changing Sign on Load If, during the design phase of your implementation, you chose not to keep natural account balances (such as negative balances for revenues or assets), you may need to reverse the sign on the data that you load into your database. Sign reversal is a two-step process: 1. Assign a UDA to all members (usually accounts) whose data you want to reverse on load. 2. When creating a rule for loading data, open the Data Load Settings dialog box to the Data Load Values tab and select the Sign flip option. You must also specify the UDA name and the dimension in which the UDA is assigned.

Hyperion Essbase Analytics 9.3.1 Bootcamp

9-19

Module 2 Building Rules Files Lesson 9 Loading Data

Validating Data Load Rules Files (Step 10) Common validation error: “There is an unknown member or no member in the field name.”

Copyright © 2007, Oracle. All rights reserved.

Validating Data Load Rules Files (Step 10) You must validate your rules file to ensure that members and dimensions in the rules file map to the associated outline. While a correct validation does not ensure that the data source loads properly, an invalid rules file typically results in an incorrect load. The most common data load rules file validation error is “There is an unknown member or no member in the field name.” This error indicates that no header is defined for the field or the field needs to be ignored. NOTE

During rules file validation, Essbase does not check to see whether all dimensions are represented in the data source or the load headers. Therefore, when you validate your rule, do your own dimension check.

9-20

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 9 Loading Data

Completing Data Load Rules Files (Steps 11 and 12) Step 11: Save the rule:

Step 12: Execute the rule:

ƒ Save to Essbase Server

ƒ Manually in Administration Console

ƒ Save to file system

ƒ Automatically with MaxL

Copyright © 2007, Oracle. All rights reserved.

Completing Data Load Rules Files (Steps 11 and 12) The data load rules file creation procedure ends with saving the rule, either to an instance of Essbase Server or to a file system location, and finally executing the rules file against a data source by using one of two methods. Step 11: Save the Rule You can reuse one rules file with multiple data sources and Essbase databases. By selecting the appropriate tab in the Save dialog box, you can choose to save your rule to a location on an instance of Essbase Server (in a database or application directory) or to a location in your file system. Essbase saves rules files with a .rul extension. Step 12: Load Data After your data load rules file is complete, you can use it to load data into your database. You can use either of two methods to load data with rules files: • Manually by executing a data load in Administration Services Console • Automatically with a MaxL script Hyperion Essbase Analytics 9.3.1 Bootcamp

9-21

Module 2 Building Rules Files Lesson 9 Loading Data The first method provides an option to save the list of data sources and associated rules files as an XML file, so you can reuse the list in the future. If you save the XML file to a shared network location, other users can open the list that you saved. To load data in Administration Ser vices Console: 1. In Administration Services Console, right-click the database node. 2. Select Load data. The Data Load dialog box is displayed. 3. Select a data source type. 4. Select one of the following load modes: • Load only processes only data load rules from the rules file. • Build only processes only dimension build rules from the rules file. • Both processes both dimension build and data load rules from the rules file, in that order. 5. Click Find Data File to select a data source. 6. Click Find Rules File to select a rules file. 7. Optional: If you want Essbase to stop processing the load if it encounters errors, select Abort on Error. 8. Specify an error file location. 9. Optional: If you want Essbase to overwrite previous errors with new errors, select Overwrite. 10. If you selected a SQL data source type, enter the SQL username and SQL password. 11. Click OK .

9-22

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 9 Loading Data

Selecting and Rejecting Records Load a subset of data from a data source. Scenario

CustID

Item Number

Period

Units

Current Year

Apple-OEM

Lightbolt 365 A

Jan

158

Current Year Current Year

Apple-OEM Apple-OEM

Lightbolt 540 S Thunderball 540 S

Jan Jan

238 128

Prior Year

Apple-OEM

Lightbolt 365 A

Jan

128

Prior Year

Apple-OEM

Lightbolt 540 S

Jan

131

Prior Year Prior Year

Apple-OEM Apple-OEM

Thunderball 540 S Roadranger 170 A

Jan Jan

132 208

Budget

Apple-OEM

Lightbolt 365 A

Jan

208

Budget

Apple-OEM

Lightbolt 540 S

Jan

228

Budget Budget

Apple-OEM Apple-OEM

Thunderball 540 S Roadranger 170 A

Jan Jan

218 128











Copyright © 2007, Oracle. All rights reserved.

Selecting and Rejecting Records By default, Essbase accepts all records in a data source. You can perform operations at a record level, however, to select or reject records by using specific string or numeric criteria. Selecting Records You can specify which records Essbase loads into the database by setting selection criteria. Selection criteria are string and number conditions that must be met by one or more fields within a record before Essbase loads the record. If a field or fields in the record do not meet the selection criteria, Essbase does not load the record. For example, to load only Current Year from the data source on the slide, create a selection criterion to load only records in which the first field is Current Year. You can create selection criteria by selecting Record > Select.

Hyperion Essbase Analytics 9.3.1 Bootcamp

9-23

Module 2 Building Rules Files Lesson 9 Loading Data Rejecting Records You can specify which records Essbase ignores by setting rejection criteria. Rejection criteria are string and number conditions that, when met by one or more fields within a record, cause Essbase to reject the record. If a field or fields in the record meets the rejection criteria, Essbase does not load the record. For example, to reject Budget data from the data source on the slide and load only Current Year and Prior Year, create a rejection criterion to reject records in which the first field is Budget. Combining Multiple Select and Reject Criteria When you define select and reject criteria on multiple fields, you can specify in the Data Load Values dialog box how Essbase combines the rules across fields, that is, whether the criteria are connected logically with AND or with OR. If you select AND as your Boolean operator, the fields must match all criteria. If you select OR as your Boolean operator, the fields must match only one of the criteria. AND is the default global Boolean setting. For example, to reject only Budget data for the product Roadranger 170 A, select AND as your Boolean operator, and create the following rejection criteria: • Field 1: Reject Budget. • Field 3: Reject Roadranger 170 A. NOTE

If both selection and rejection criteria apply to a record (that is, you try to select and reject the same record), Essbase rejects the record.

9-24

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 9 Loading Data

Capturing New Members Scenario

Customer

Product

Account

Jan

Current Year Current Year

JC’s Hardware Apple-Retail

Lightbolt 365 A Lightbolt 365 A

Units Units

200 105











ƒ Without dimension build rules:

ƒ With dimension build rules:

Copyright © 2007, Oracle. All rights reserved.

Capturing New Members After you deploy your database, you can expect dimensions to change. When you add products, customers, or accounts to your transaction systems, you may also need to add them to your Essbase outline. If the dimension build and data load processes are out of sync, you see errors during your data loads as Essbase tries to load values to members that do not exist. For managing the flow of data, you have many options, including the following: • Allow data loads to generate error records, which identify new members. Add the identified members manually or with a dimension build, and then reload the records in the error file. This option is best for slowly-changing dimensions and for environments in which corporate processes or ownership issues do not allow other options. • Incorporate dimension build rules and data load rules into one rules file. This option is good for frequently updated dimensions. Hyperion Essbase Analytics 9.3.1 Bootcamp

9-25

Module 2 Building Rules Files Lesson 9 Loading Data Combining Dimension Builds and Data Loads If a data source contains new members and their ancestors, you can use one of the three main build methods (generation, level, or parent-child). However, if a data source contains new members and does not specify the ancestors of the new members, Essbase must decide where in the outline to add the members. Rules files provide the following three special build methods for this type of data source. Method

Description

Add as sibling of member with matching string

Compares the new member to existing members in the outline by using string matching; for example, a new member called Lightbolt 810 S is matched to other Lightbolt products.

Add as sibling of lowest level

Assigns the new member to the lowest level in a hierarchy; particularly useful if you are loading to a flat dimension list.

Add as child of (selected member)

Assigns the new member as a child of a member in the outline; for example, capturing new customers as children of a member called “Unrecognized Customer.”

When you combine any of the three dimension build methods with data load rules in a single rules file, there are some considerations that don’t apply to regular dimension builds: • If your data source contains a mix of new members and existing members, you do not want the build to apply to existing members. In Dimension Build Settings, select “Ignore conflicts” to avoid error messages for existing members. • The methods have different requirements for dimension build properties; on the Dimension Build Properties tab of the Field Properties dialog box, select only a dimension. Do not select a field type or a field number • You define dimension build properties only for fields with new member names. For all other fields, select “Ignore during dimension build.” • When you execute your data load, you must select Both for the load mode—this selection instructs Essbase to process the dimension build rules and add the new members before processing the data load rules in the rules file.

9-26

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 2 Building Rules Files Lesson 9 Loading Data

Summary In this lesson, you should have learned to: • Describe the data load process • Create data load rules files • Select and reject data records • Capture new members during data load

Hyperion Essbase Analytics 9.3.1 Bootcamp

9-27

Module 2 Building Rules Files Lesson 9 Loading Data

9-28

Hyperion Essbase Analytics 9.3.1 Bootcamp

M O D U L E

3

Reporting with Smart View

Overview In this module, you learn how to use Smart View to connect to Essbase, retrieve and analyze data, and format results. You also learn to integrate Essbase data with Microsoft Office components. Lessons in this module include: • Getting Started with Smart View • Creating Reports with Smart View

9

L E S S O N

1 0

Getting Started with Smart View

Objectives At the end of this lesson, you should be able to: • Describe Smart View • Configure Smart View data sources • Retrieve Essbase data • Set the point of view

10

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Smart View Overview Smart View provides a common Microsoft Office interface for Essbase, Financial Management, Planning, Interactive Reporting, Production Reporting, Financial Reporting, and Web Analysis. Using Smart View you can view, import, manipulate, distribute, and share data in Microsoft Excel, Word, and PowerPoint. This lesson concentrates on using Smart View to access Essbase data. For information about other data sources, see the Hyperion Smart View for Office User’s Guide.

10-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Smart View and Essbase Spreadsheet Add-in

Copyright © 2007, Oracle. All rights reserved.

Smart View and Essbase Spreadsheet Add-in Essbase Spreadsheet Add-in is the legacy spreadsheet application for Essbase. Users already familiar with Essbase Spreadsheet Add-in can use it concurrently with Smart View. When Essbase Spreadsheet Add-in and Smart View are installed on the same computer, you see a menu named Hyperion and a menu named Essbase in the Excel menu bar. By default, your mouse actions are interpreted as commands to Essbase Spreadsheet Addin; for example, double-clicking in a blank spreadsheet opens the Essbase System Login dialog box for Essbase Spreadsheet Add-in. By enabling the Essbase Spreadsheet Add-in global option “Limit to connected sheets,” you instruct Essbase Spreadsheet Add-in to respond to mouse commands only if you established a connection through Essbase Spreadsheet Add-in. Otherwise, Smart View responds to your mouse commands.

Hyperion Essbase Analytics 9.3.1 Bootcamp

10-3

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Smart View Architecture Smart View Client Data Source

Connection

Data Model

Client Tier

XML HTTP(s)

Provider Services Java API Infrastructure

Planning Provider

Financial Management Provider

Web Tier

Planning Application Server

Financial Management Application Server

Application Tier

TCPIP / DCOM

Essbase

RDBMS

Data Tier

Copyright © 2007, Oracle. All rights reserved.

Smart View Architecture Smart View incorporates powerful architectural features to handle a wide range of analytic applications across large, multiple-user environments. The diagram on the slide provides a high-level view of the integrated information flow between the source data and the Smart View client. Because Smart View is a unified add-in for multiple products, it has providers for Essbase, Financial Management, and Planning. However, the Financial Management and Planning providers exist on the application tier, and are integrated into the Financial Management and Planning installations. Provider Services exists on the Web tier, and thus requires installation separate from that of Essbase.

10-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Smart View Toolbar

Full toolbar

Customized toolbar: Only Essbase functions

Copyright © 2007, Oracle. All rights reserved.

Smart View Toolbar The Smart View toolbar, which is displayed in Excel automatically after you install Smart View, provides convenient buttons for accessing many Smart View commands without opening the Hyperion menu. You can customize the toolbar so that it contains only the buttons relevant to Essbase. The customization list displays a menu that lists all toolbar buttons. You can select only those you use most frequently from the list.

Hyperion Essbase Analytics 9.3.1 Bootcamp

10-5

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View Buttons Relevant to Essbase Data Sources: Button

10-6

Name

Description

Connection Manager

Accesses the Connection Manager dialog box, where you can add, delete, edit, and set data source connections

Zoom In

Retrieves and expands data from the connected data source, according to the options specified in the Options dialog box

Zoom Out

Collapses the view to the parent of the currently selected member

Pivot

Pivots the selected dimension to change its orientation on the worksheet

Keep Only

Retains only the selected members (in the selected dimensions)

Remove Only

Removes only the selected members (in the selected dimensions)

Refresh

Retrieves data from the connected data source into the active worksheet

Submit Data

Saves data updates in the worksheet to the connected Essbase database

Refresh All

Retrieves all data or images within the Excel workbook, Word document, or PowerPoint slide

Undo

Restores the previous database view

Redo

Restores the database view as it was before an undo operation was performed

POV Manager

Accesses POV Manager, where you can edit connection points of view (POVs), save POVs to a workbook, copy and paste saved POVs, or delete POVs from a workbook

Function Builder

Accesses Function Builder, which provides a graphical interface for creating functions

Adjust

Adjusts the value of the selected data cells by a percentage or fixed value

Options

Accesses the Options dialog box, where you set end-user display preferences, including ad hoc options, display options, and cell styles

Customize

Accesses the toolbar customization list, where you can add or remove toolbar buttons from the Smart View toolbar

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Configuring Data Sources Before you can use the Smart View client to analyze data, you must configure the Essbase data sources. • Configure Provider Services: As the database administrator you must use Administration Services Console to configure the provider before users can establish connections from Smart View clients. • Create Essbase database connections: In the Smart View client, users use Connection Manager to connect to Essbase databases.

Hyperion Essbase Analytics 9.3.1 Bootcamp

10-7

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Configuring Provider Services

2

6

1 5

3 7

4

Copyright © 2007, Oracle. All rights reserved.

Configuring Provider Services Provider Services is a Web service that provides HTTP connectivity from Smart View clients to Essbase Server instances. Configuring the provider is a two-part process in Administration Services Console: You add a Provider Services instance to the Provider Services node, and then you add standalone Essbase Server instances or Essbase clusters to the specified provider. NOTE

You can only configure Provider Services to connect to Essbase Server instances that are listed under the Essbase Servers node in Administration Services Console.

10-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View Essbase clusters are groups of Essbase databases on one or more instances of Essbase Server. They provide load balancing and failover support so that connections to the cluster are reliable and highly available. Load balancing enables requests to one database to be distributed across the cluster. Failover support detects service interruptions to a database in a cluster and routes requests to other databases that are available in the cluster. To configure Provider Ser vices for standalone Essbase Ser ver instances: 1. From Administration Services Console, select the Hyperion Provider Servers node. 2. Select Actions > Add Hyperion Provider Server. The Add Hyperion Provider Server dialog box is displayed. 3. Complete these tasks: a. In the Provider Name text box, enter the name of the server where the provider is installed. b. In the URL text box, type http://:/aps/APS. The default URL is http://localhost:13080/aps/APS. c. In the Authenticating Essbase Server drop-down list, select a server. 4. Click OK. The new provider node is displayed under the Hyperion Provider Servers node. 5. Expand the new provider node, and select Standalone Servers. 6. Select Actions > Create Standalone Server. The Add Standalone Server dialog box is displayed. 7. From the drop-down list, select an Essbase Server instance, and click OK. The Essbase Server instance is displayed under the Standalone Servers node.

Hyperion Essbase Analytics 9.3.1 Bootcamp

10-9

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Creating Essbase Database Connections

1

3

4

2

Copyright © 2007, Oracle. All rights reserved.

Creating Essbase Database Connections Before you can access Essbase data in Smart View, you must create connections to Essbase databases in Connection Manager, which also manages connections to Financial Management, Planning, and reporting repositories. To create Essbase database connections: 1. In Microsoft Office, select Hyperion > Connection Manager. The Connection Manager dialog box is displayed. 2. Click Add and select an option:

10-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View • Shared Services Provider—Select this option if Provider Services is registered with Shared Services. Registering all providers with Shared Services gives you a single URL to connect to for a centralized list of providers. For example, if you have Financial Management, Planning, and Essbase, you can register all three Smart View providers with Shared Services, and select any provider from a single Shared Services URL. • URL Provider—Select this option to enter the URL for a specific instance of Provider Services. The Add Data Source dialog box is displayed. 3. Perform these tasks: a. From the Provider drop-down list, select Hyperion Provider. b. From the Location drop-down list, select the Provider Services URL TIP

If your Provider Services URL is not listed, you can type the URL using this format: http://:/aps/APS c. Optional: Select Create as default connection to make the current connection the default database connection. 4. Click Next. The Select Database or Repository dialog box is displayed.

Hyperion Essbase Analytics 9.3.1 Bootcamp

10-11

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Creating Essbase Database Connections (cont.)

8

5

7

6

Copyright © 2007, Oracle. All rights reserved.

Creating Essbase Database Connections (cont.) The following steps are a continuation of the database connection procedure. 5. In the servers list, expand an instance of Essbase Server. The Connect to Data Source dialog box is displayed. 6. Enter your Essbase user name and password, and click Connect. The Add Connection - Application/Cube dialog box is displayed. 7. Select an Essbase database, and click Next. The Add Connection - Name/Description dialog box is displayed. 8. Define a name and description for the current connection, and click Finish. The connection is now available to select in Connection Manager.

10-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Retrieving Data When you select Hyperion > Refresh, Essbase returns top-level data into an empty spreadsheet. 1

2

HTTP(S)

TCP/IP

3 Excel

Provider Services

Essbase database

4

Top-level data Copyright © 2007, Oracle. All rights reserved.

Retrieving Data Each time you retrieve information from an instance of Essbase Server, the following sequence of events occurs: 1. Smart View sends a request to Provider Services. 2. Provider Services forwards the request to Essbase Server. 3. Essbase Server processes the request, prepares the data, and transmits it through Provider Services 4. Smart View receives the data and organizes it in a worksheet.

Hyperion Essbase Analytics 9.3.1 Bootcamp

10-13

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View When you retrieve data into an empty worksheet, the server returns data from the top levels of each database dimension, positioning the dimensions in this order: 1. First dimension in the database outline: default row dimension 2. Second dimension in the database outline: default column dimension 3. Remaining dimensions: default point of view dimensions You can use the top-level data as a starting point to navigate, or drill down, into levels of detailed data. For example, if you retrieve top-level data from the Bigcorp Sales database, the following five dimensions are displayed: Year Tot, Accounts, Scenario, Product, and Customer. To retrieve data: 1. If necessary, select Hyperion > Active Connections > DBName to connect to an Essbase database. 2. Select Hyperion > Refresh. TIP

If every row in the report is #MISSING and #MISSING suppression is turned on, the retrieve fails and the following message is displayed: “Resulting grid does not contain at least one row, one column, and one POV. If you have any Suppress Rows options selected, please clear them.”

10-14

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Display of Multidimensional Data ƒ All dimensions must be represented in the spreadsheet. ƒ The spreadsheet layout has four sections: POV toolbar

Column labels

Data cells

Row labels

Copyright © 2007, Oracle. All rights reserved.

Display of Multidimensional Data For multidimensional databases, data values are the intersections of unique members from all dimensions of the database. For spreadsheets, on the other hand, cells are the intersections of rows and columns. To translate spreadsheet cells into multidimensional data values, you can think of the multidimensional data value as the intersection of members (one member from each dimension) displayed as rows and columns of a spreadsheet (represented by row and column labels). You can refine your view by focusing the row and column intersections along a specific slice of the cube, represented by the point of view. The example shown in the slide illustrates a spreadsheet representing this scenario: • The spreadsheet displays Net Sales data for the Lightbolt product line. Net Sales and Lightbolt are displayed in the POV. • Customer sales channels are displayed as row labels of the spreadsheet.

Hyperion Essbase Analytics 9.3.1 Bootcamp

10-15

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View • The Year Tot dimension, represented by quarters, is displayed as column labels of the spreadsheet. The Current Year and Prior Year members of the Scenario dimension are also displayed in as column labels of the spreadsheet. • The data cells, the intersections of the rows and columns, and the header information represent data values. For example, the first data value in cell B4, 910,669.50, represents net sales of Lightbolt hard drives to OEM customers in the first quarter of the current year.

10-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Label Placement Guidelines

POV labels

Column labels

Row labels

Copyright © 2007, Oracle. All rights reserved.

Label Placement Guidelines When you submit data retrieval requests, Essbase initiates a label-scanning process to look for report labels on the spreadsheet to match with members in the outline. The POV section of the worksheet is scanned first, followed by column and row sections. When at least one label is matched for each dimension, Essbase can place data in the spreadsheet, assuming that the labels adhere to the label rules. Otherwise, Essbase stops the requested retrieve action and displays a message that describes the error condition. General Rules • Worksheet labels must match outline member names or their aliases. • Standard dimensions must be represented in the point of view or row-column section for Essbase to resolve a data point.

Hyperion Essbase Analytics 9.3.1 Bootcamp

10-17

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View • All member names that consist of numbers must be preceded with a single quote. For example, if the account number for sales is 14000, enter ‘14000 in the spreadsheet cell. Point of View Rules • The selected POV members define all data on the worksheet for their dimensions. • If a dimension is represented in the point of view, members from the dimension cannot be displayed in a row or column. • If a dimension name is not found on the worksheet during the label-scanning process, Essbase places the dimension name (generation 1) in the point of view. • When you retrieve data into a blank sheet, the first two dimensions are displayed as row and column dimensions, respectively. The generation 1 members of standard dimensions are displayed as POV members. • POV dimensions can be displayed in any order. Row and Column Rules • A report must include at least one row and one column dimension. • Each column dimension must be on a separate row before the rows containing row labels. All members of a given column dimension must be displayed on the same row. • Each row dimension must be in a column separate from the columns containing column labels. All members from a given row dimension must be displayed in the same column. • A row or column dimension can be grouped by, or nested in, another row or column dimension. There is no limit to the number of nested dimensions, as long as there is at least one row dimension and one column dimension.

10-18

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Setting the Point of View

Default POV

Customized POV

Copyright © 2007, Oracle. All rights reserved.

Setting the Point of View The POV toolbar identifies a specific slice of the database for a grid. For default ad hoc grids, all but two database dimensions are displayed in the point of view at the dimension level. Although each dimension is displayed as a drop-down list, by default, only the top dimension member is available for selection. You can customize which members are displayed in the dimension drop-down lists on the POV toolbar. To set the POV: 1. In each POV dimension drop-down list, select the member. 2. On the POV toolbar, click

(refresh).

Hyperion Essbase Analytics 9.3.1 Bootcamp

10-19

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Selecting Dimension Members

1

4 3 2

5 Copyright © 2007, Oracle. All rights reserved.

Selecting Dimension Members You can customize the list of members displayed in the POV drop-down lists, enabling you to focus on the members that you need for analysis, rather than the whole dimension. To select members for POV drop-down lists: 1. On the POV toolbar, select Options > Select Members. 2. On the shortcut menu, select a dimension. The Member Selection dialog box is displayed. 3. In the Members list, select members. 4. Click

(add). The selected members are displayed in the Selection list.

10-20

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View 5. Optional: In the Selection list, select the dimension name, and click

(remove).

6. Click OK. The members in the Selection list are displayed in the POV dimension drop-down list.

Hyperion Essbase Analytics 9.3.1 Bootcamp

10-21

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Filtering Dimension Member Selections ƒ Children ƒ Descendants ƒ Level ƒ Generation ƒ UDA ƒ Attribute ƒ Subset

Copyright © 2007, Oracle. All rights reserved.

Filtering Dimension Member Selections The Member Selection dialog box provides a set of member lists for filtering the hierarchy view. You can filter the entire dimension, or you can use a specific dimension member as the filter parameter. To apply advanced filtering, highlight a member without selecting its check box, and then select a member list from the Filter drop-down list. For example, if you highlight OEM and then change the filter list to Level 0, only the level 0 descendants of OEM are displayed. NOTE

The Attribute and Subset member lists both use attributes for filtering. However, the Subset member list enables you to specify and combine multiple attributes using AND-OR logic. The Attribute member list enables you to select only one attribute.

10-22

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

Summary In this lesson, you should have learned to: • Describe Smart View • Configure Smart View data sources • Retrieve Essbase data • Set the point of view

Hyperion Essbase Analytics 9.3.1 Bootcamp

10-23

Module 3 Reporting with Smart View Lesson 10 Getting Started with Smart View

10-24

Hyperion Essbase Analytics 9.3.1 Bootcamp

L E S S O N

1 1

Creating Reports with Smart View

Objectives At the end of this lesson, you should be able to: • Manipulate multidimensional data • Update Essbase data • Integrate Essbase data with Microsoft Office

11

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View

Manipulating Multidimensional Data ƒ Multidimensional operations — Navigation (drill down, drill up) — Pivot

ƒ Editing commands — Keep only — Remove only — Undo

Copyright © 2007, Oracle. All rights reserved.

Manipulating Multidimensional Data When you retrieve multidimensional data into spreadsheets, you create ad hoc Smart View grids. You can manipulate the data by performing such operations as drilling down, rolling up, and pivoting. These operations are supported by corresponding Smart View commands. Smart View also provides commands to perform simple data-editing operations, such as retaining or removing report rows or columns or restoring the previous view (Undo).

11-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View These basic data manipulation operations in Smart View initiate the label-scanning process: Operation

Description

Zoom In

Drills down from a selected member into the dimension hierarchy as specified by the outline

Zoom Out

Collapses one level up from a selected member, as specified by the outline hierarchy

Pivot

Changes the row-column orientation of a dimension or the order of grouping of dimensions in rows or columns

Keep Only

For the selected dimensions, retains only the selected members

Remove Only

For the selected dimensions, removes only the selected members

Undo

Reverses the last operation

Redo

Reverses the last undo operation

Hyperion Essbase Analytics 9.3.1 Bootcamp

11-3

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View

Navigating Through Hierarchies Drill down

Drill up

Copyright © 2007, Oracle. All rights reserved.

Navigating Through Hierarchies Smart View provides two commands that support navigation operations: • The Zoom In command drills down to lower levels to display the details. For example, if you want to view a data value for a specific quarter or month rather than an aggregate data value for the whole year, you can drill down on the Year Tot dimension. • The Zoom Out command drills up to higher levels by collapsing the member tree. For example, if you previously drilled down on the Year Tot dimension to view data for quarters, you can drill up to view aggregate data for the whole year.

11-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View You can use these procedures to navigate through hierarchies: Procedure

Step

Drill down on a selected member

Double-click the selected member.

Drill up from a selected member

Double-right-click the selected member.

Hyperion Essbase Analytics 9.3.1 Bootcamp

11-5

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View

Retaining and Removing Data Subsets

Keep Only

Remove Only

Copyright © 2007, Oracle. All rights reserved.

Retaining and Removing Data Subsets Smart View provides tools that enable you to remove dimensional slices (data subsets) from worksheets without deleting individual cells. In the selected dimensions, the Keep Only command retains selected members and removes nonselected members and associated rows or columns of data. The Remove Only command performs the opposite operation in the selected dimensions: It removes the selected members and associated rows or columns of data, while retaining nonselected members. You can use these procedures to retain or remove data subsets: Procedure

Step

Retain data subsets

Click

.

Remove data subsets

Click

.

11-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View

Pivoting Data Row Dimensions Column Dimensions

Copyright © 2007, Oracle. All rights reserved.

Pivoting Data You can change the orientation of worksheet data by performing these tasks: • Move row dimensions to columns • Move column dimensions to rows • Move POV dimensions to a row or column • Move row or column dimensions to the point of view • Change the order of grouped column or row dimensions TIP

The grid must have at least one dimension on rows and one dimension on columns. Before removing a dimension from a grid, you must pivot the replacement dimension into the grid.

Hyperion Essbase Analytics 9.3.1 Bootcamp

11-7

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View You can use these procedures to pivot dimensions: Procedure

Step

Pivot a selected row dimension to columns, or a selected column dimension to rows

Right-click and drag the dimension to a new axis.

Pivot a selected column or row dimension to the point of view

Right-click and drag the dimension to the POV toolbar.

Pivot a POV dimension to a column or row

Click and drag the dimension from the POV toolbar to the column or row axis.

11-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View

Updating Essbase Data ƒ Adjusting data ƒ Submitting data ƒ Calculating data

Copyright © 2007, Oracle. All rights reserved.

Updating Essbase Data During database development, the spreadsheet environment is a key tool for validating data and calculations. During production as well, depending on your database needs, users might use Smart View to adjust and submit data during production cycles, as in an interactive write-back forecasting application. Typical data entry process: 1. Adjust or enter data. 2. Submit data to Essbase. 3. Recalculate the database using a calculation script. Smart View provides tools to adjust data, write data back to Essbase databases, and execute calculation scripts.

Hyperion Essbase Analytics 9.3.1 Bootcamp

11-9

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View

Adjusting Data Values

1

3 6 4

2

5

Copyright © 2007, Oracle. All rights reserved.

Adjusting Data Values Smart View enables you to quickly adjust data through these operations: • Increase or decrease selected cells by a percentage • Add or subtract a fixed value to selected cells • Multiply or divide selected cells by a fixed value You cannot adjust data values that display #Missing or #NoAccess values. When you change cells in Smart View grids, the changed cells (also called dirty cells) are displayed by default with a different background color than the rest of the cells in the grid.

11-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View To adjust data values: 1. In an ad hoc grid, select the data cells whose values you want to adjust. 2. Click

(adjust). The Adjust Data dialog box is displayed.

3. Select an adjustment option. 4. In the text box, enter the percentage or number by which you want to adjust the value of the selected cells. 5. Click Adjust Data. The value in the cell is adjusted. 6. Click Close.

Hyperion Essbase Analytics 9.3.1 Bootcamp

11-11

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View

Submitting Data You must have write permission for the database cells that you are changing. Otherwise, the following message is displayed: “You do not have sufficient access to perform a lock on this database.” To submit data: • Click

(submit data). The dirty cells are updated in the data source.

11-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View

Calculating Data After submitting data to the Essbase database, you must recalculate the database to see the results of your changes. You can calculate only the calculation scripts to which the administrator has granted you permission. To calculate data: 1. Select Hyperion > Calculation Options > Calculate. The Calculation Scripts dialog box is displayed. 2. From the Calculation Script list, select a calculation script.

Hyperion Essbase Analytics 9.3.1 Bootcamp

11-13

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View 3. Click Launch. The message “Calculation script has been processed” is displayed. A status message indicates whether the calculation was successful. 4. Click OK. 5. Click Close to close the Calculation Scripts dialog box. 6. Click

11-14

(refresh) to retrieve calculated data into the spreadsheet.

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View

Integrating Essbase Data with Microsoft Office ƒ Dynamic data points ƒ Linked views

Copyright © 2007, Oracle. All rights reserved.

Integrating Essbase Data with Microsoft Office In addition to providing Excel spreadsheet functionality, Smart View enables you to view and refresh Essbase data in PowerPoint, Word, and Outlook. You can copy data points and move them from one Office component to another, thereby creating dynamic data points. Users with access to Smart View can see the dimensionality and detail behind the data points by opening detailed views called linked views. Dynamic data points and linked views provide these benefits: • Office-based workflow • One-click visualizations of underlying data • One-click detailed views of abstract data points from any Office component

Hyperion Essbase Analytics 9.3.1 Bootcamp

11-15

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View • Multiple data source grids NOTE

Dynamic data points and linked views for Essbase data are available only in Smart View release 9.3 or later.

11-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View

Copying Dynamic Data Points

Copyright © 2007, Oracle. All rights reserved.

Copying Dynamic Data Points You can copy dynamic data points between Office components. The dynamic data points retain their original point of view and connection information. TIP

If you want to view and refresh data in Outlook, you must set Word as the text editor.

To copy dynamic data points: 1. Select a range of data cells (you may also select member names). 2. Select Hyperion > Copy Data Points.

Hyperion Essbase Analytics 9.3.1 Bootcamp

11-17

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View 3. Open a Word document, PowerPoint document, Outlook e-mail, or Excel spreadsheet. 4. Select Hyperion > Paste Data Points. A grid containing dynamic data points is displayed. The data cells contain the same information: #NEED_REFRESH. Member names are copied, but they are not dynamic. After pasting, you can change member name fields to custom text without affecting the data points. 5. Select Hyperion > Refresh. Data cells are refreshed from the database.

11-18

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View

Creating Linked Views

Excel

Visual Explorer Word document

Copyright © 2007, Oracle. All rights reserved.

Creating Linked Views Linked views are detailed views of a dynamic data point in either Excel or Visual Explorer worksheets. Linked Views in Excel Linked views in Excel have the same grid layout as the grid from which you originally copied the dynamic data point. After opening a linked view, you can perform ad hoc analysis operations such as drilling down and pivoting. Linked Views in Visual Explorer When you select Visual Explorer to display your linked view, you are presented with a selection of chart types as Visual Explorer launches. Visual Explorer creates a graphical representation of the data based on the underlying query that created the dynamic data point originally. The data is rendered in your selected chart format.

Hyperion Essbase Analytics 9.3.1 Bootcamp

11-19

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View To create linked views: 1. Select a dynamic data point. 2. Select Hyperion > Link View. 3. Select an option: • Visualize in HVE • Visualize in Excel

11-20

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View

Summary In this lesson, you should have learned to: • Manipulate multidimensional data • Update Essbase data • Integrate Essbase data with Microsoft Office

Hyperion Essbase Analytics 9.3.1 Bootcamp

11-21

Module 3 Reporting with Smart View Lesson 11 Creating Reports with Smart View

11-22

Hyperion Essbase Analytics 9.3.1 Bootcamp

M O D U L E

4

Creating Basic Calculations

Overview In order to design efficient calculations, you must first understand how block storage databases calculate. This module reviews calculation basics, introduces multidimensional data storage and calculation concepts, and discusses proper calculation script organization. You learn how to identify and correct invalid calculations, and how to focus calculations efficiently. You also learn how to leverage hierarchy relationships in calculations, and to create script and server variables. Lessons in this module include: • Data Storage and Calculation • Creating Calculation Scripts • Controlling the Calculation Process • Referencing Members in Calculations

11

L E S S O N

1 2

Data Storage and Calculation

Objectives At the end of this lesson, you should be able to: • Describe block storage calculations • Describe the default database calculation order • Describe data blocks • Describe how data blocks are indexed • Interpret database statistics • Describe when data blocks are created • Describe the block storage database calculation process

12

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Calculation Overview ƒ Database values: — Input data — Calculated data

ƒ Calculation options: — Outline calculations — Calculation script calculations

Calculation

Calculated Database

Report

Input Data

Copyright © 2007, Oracle. All rights reserved.

Calculation Overview A database contains two types of values: the values that you enter (input data) and the values that are calculated from the input data (calculated data). Consider the following examples: • You are a database administrator and developer for a small company and are responsible for data loading and reporting. You collect monthly sales figures for all products and calculate the total sales revenue for each product family. • You are a budget analyst in a large company. You enter the budget and actual values for the cost of sales for several products in several regions. You calculate the variance between budget and actual values for each product in each region.

12-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation • You are a sales manager and Essbase power user. Your section of the sales database contains retail sales figures and prices for all products. You calculate what happens to total margin if you increase the price of one product for retail customers by 5%. From these examples, you see good reasons for calculating data. Many analyses require aggregation of detail data into summary members to spot trends that might not be noticed if only detail data was examined. For example, after data is loaded into the lowlevel month members Jan, Feb, and Mar, calculation of the Year Tot dimension produces a high-level value for Qtr 1. Similarly, after low-level values are loaded into Gateway, Apple, and Dell, calculation of the Customer dimension produces a high-level value for Retail, and so on. Another reason for calculating databases is to perform complex business operations, such as cost allocations, sales or product mix analyses, or what if investigations. Essbase block storage databases tackle these kinds of analyses and provide over 250 functions to help you produce solutions faster. The process of creating stored calculated values in a block storage database is called batch calculation, because the process typically occurs as part of one large batch of operations (loading, calculating, and reporting). Generally, you execute a batch calculation immediately after you load input data. You can batch calculate block storage databases two ways: through outline calculations or through calculation scripts. NOTE

Calculation scripts can contain commands that execute outline calculations, but outline calculations cannot contain or execute calculation scripts.

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-3

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Outline-Based Calculations ƒ Are used for less complex calculations ƒ Follow outline relationships or formulas ƒ Calculate entire database

Calculated Database

Input Data

CALC ALL Default Calculation Script Outline Copyright © 2007, Oracle. All rights reserved.

Outline-Based Calculations Outline calculations represent the simplest method of calculation. In block storage outline calculations, Essbase calculates the database according to the relationships between members in the database outline and according to member consolidation operators or formulas. During a batch process, you initiate outline calculations by executing the default database calculation; the default calculation contains the calculation script command CALC ALL, which, based on the consolidation operators and formulas in the database outline, calculates and aggregates the entire database.

12-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Script-Based Calculations ƒ Calculate all or a portion of the database ƒ Control the order in which dimensions are calculated ƒ Perform complex calculations

Calculated Database

Input Data

Custom Calculation Script Copyright © 2007, Oracle. All rights reserved.

Script-Based Calculations A calculation script contains a series of calculation commands, equations, and formulas. You use calculation scripts to specify exactly how you want Essbase to calculate a block storage database. For example, you can calculate part of a database or copy data values between members. When to Execute Calculation Scripts Calculation requirements are driven by processes that typically include multiple interim steps. Thus, typically, multiple calculation scripts are developed, each script satisfying the calculation needs of a process step. The following example demonstrates how specific calculation scripts fit into the data flow processes for Bigcorp: • The budgeting group finalizes the budget for the coming year. The budget administrator loads budget data into Bigcorp Sales and executes a script to consolidate budget data across all products and customers.

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-5

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation • On a monthly basis, actual data for the current year is loaded from extracts generated from the IT data warehouse. After data is loaded, the database administrator executes a script to consolidate actual data for the current month. • The Bigcorp finance group makes adjusting entries through Essbase Spreadsheet Add-in. After all adjustments are entered, the database administrator recalculates the actual data for the entire year, creating quarterly and yearly totals. • Bigcorp corporate expenses, such as advertising and IT salaries, are loaded to the total for all products and all customers and then, based on drivers such as percent of total units sold and percent of total revenues, are allocated to individual productcustomer combinations. • Bigcorp analysts submit forecasts through the end of the year. Each forecast is based on data for the current month. The senior analyst executes a calculation script that copies actual data into a rolling forecast from January through the current month, copies the current forecast into the rest of the months, and then consolidates the rolling forecast. • When all input data is in place, a final script calculates year-over-year actual variances, actual variances from budget and forecast, percentages, and analytic metrics. Referencing Outline Calculations in Calculation Scripts With custom calculation scripts, you can override the default database calculation on a temporary or permanent basis. In custom calculation scripts, you can refer to calculation rules defined in the database outline, or you can specify new formulas, calculation formats, and calculation orders. The most common calculation commands that reference outline calculations are CALC ALL, CALC DIM, and AGG. • CALC ALL: Based on the database outline, calculates and aggregates the entire database. Although this command is the default database calculation, you can also use it in a custom calculation script to control procedural calculation steps. In the following example, the CALC ALL command is executed after data is copied from the Prior Year scenario to the Budget scenario and increased by 10%: DATACOPY "Prior Year" to Budget; Budget = Budget * 1.1; CALC ALL;

12-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation • CALC DIM: Calculates the outline formulas and consolidations that are associated with the members of the specified dimensions. This command is commonly used in custom calculation scripts to control the order in which dimensions calculate. In the following example, the data in the Units account is aggregated for all products and all customers: FIX(Units) CALC DIM(Customer, Product); ENDFIX • AGG: Consolidates database values. An AGG command ignores all member formulas; it consolidates only parent-child relationships. Because it provides faster performance than CALC DIM, it is commonly used to calculate sparse dimensions that are consolidated using addition (+) consolidation operators.

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-7

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Calculation Script Editor

Dimensions and Members

Functions and Commands

Copyright © 2007, Oracle. All rights reserved.

Calculation Script Editor Calculation scripts are essentially text files that Essbase identifies as calculation scripts because the files have CSC file extensions. You can create calculation script text files with any text editor. However, Administration Services Console provides a powerful calculation script editor to assist you. The script editor includes a list of dimensions and members and a second list of calculation functions and commands, which are organized categorically and alphabetically. To build a script, you can enter calculation commands directly into the text area of the script editor or use the point-and-click features of the script editor.

12-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Database Calculation Order CALC ALL calculates the outline in the following order:

1. Dimension tagged Accounts 2. Dimension tagged Time 3. Dense Dimensions (outline order)

Optimal Order: Largest to Smallest

Optimal Order: 4. Sparse Dimensions (outline order)

Smallest to Largest

5. Two-Pass Calculations

Copyright © 2007, Oracle. All rights reserved.

Database Calculation Order For data sets that are at least partially dense, block storage databases maximize performance by dividing the standard dimensions of a database into two types: dense dimensions and sparse dimensions. This division enables the database to cope with data that is not smoothly distributed, speeds data retrieval, and minimizes memory and disk requirements. When you execute a default (CALC ALL) database calculation, dense and sparse dimension designations, in addition to specific dimension properties, determine the order in which dimensions are calculated. For example, if an outline contains a dimension tagged as Accounts and a dimension tagged as Time—like Bigcorp Sales does—the CALC ALL command calculates the database in the following order: 1. Dimension tagged as Accounts 2. Dimension tagged as Time

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-9

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation 3. Other dense dimensions (in outline order) 4. Other sparse dimensions (in outline order) 5. Members tagged for two-pass calculation If no dimension is tagged as Accounts or if the accounts dimension does not contain a calculable formula, the default calculation order is the following: 1. Dense dimensions (in outline order) 2. Sparse dimensions (in outline order) As an Essbase developer, you are responsible for designing a block storage database outline that calculates with efficiency and accuracy. As you can see from the default calculation order, a block storage database outline is more than a navigational aid for end users; information embedded in the outline reflects the data structure and efficiency of the database. An understanding of how Essbase block storage databases store and process data is the most important factor in efficient calculation design.

12-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Data Block Fundamentals In block storage databases, Essbase uses two types of internal structures to store and access data: data blocks and the index system. A data block, which contains a certain number of data cells, is the basic unit of storage in block storage databases. Each unique data value can be considered to exist in a cell of a data block. When a user or a process (such as a calculation) requests a data value, the following process is initiated: 1. A user or process requests data. 2. Essbase searches the index for the requested data blocks. 3. Based on the index entries, Essbase finds the requested data blocks in the database. 4. Essbase brings the requested data blocks into memory. 5. The user or process views or uses data from cells in the requested data blocks.

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-11

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Data Blocks and the Index System Dimension Storage Settings

Physical Data Stored in Data Blocks Accounts

Year Tot

Scenario->Product ->Customer

Index of Data Blocks Block 1 2

Scenario

Product

Customer

Current Year Current Year

Lightbolt 365 A Lightbolt 365 A

IBM Acer







Copyright © 2007, Oracle. All rights reserved.

Data Blocks and the Index System The configuration of data blocks and the index system correlates to the configuration of dimensions as dense or sparse. In most data sets, data tends to follow predictable patterns of density and sparsity. If you match the patterns correctly when you select your dense and sparse dimensions, you can store data in a reasonable number of fairly dense data blocks, rather than in an excessive number of highly sparse data blocks. This division enables the database to cope with data that is not smoothly distributed, speeds data retrieval, and minimizes memory and disk requirements.

12-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation For example, In the Bigcorp Sales database, Bigcorp does not sell every product to every customer; therefore, the data set is reasonably sparse because data values do not exist for many combinations of members of the Product and Customer dimensions. For example, if IBM does not buy Lightbolt 365 A hard drives, data values do not exist for the combination IBM->"Lightbolt 365 A". NOTE

In block storage databases, member combinations are denoted by the crossdimensional operator. The symbol for the cross-dimensional operator is ->. However, consider combinations of members in the Year Tot and Accounts dimensions: for some member combinations on these dimensions, data values almost always exist. For example, data values exist for the member combination Units->January, because at least some products are sold in January. Based on this test, the data set for the Year Tot and Accounts dimensions is reasonably dense.

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-13

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Data Cells ƒ Are uniquely addressable ƒ Require 8 bytes of disk storage

166

182

143

131

149

120

123

150

115

100

196

231

100 Units of Lightbolt 365 A hard drives sold to IBM in February of the current year

Copyright © 2007, Oracle. All rights reserved.

Data Cells In block storage databases, each data value is stored in a single cell in the database. You refer to a data value by specifying its coordinates along each standard dimension. In the example on the slide, the data value 100 is referenced by the members Feb->Units->"Current Year"->IBM->"Lightbolt 365 A". Each data cell has a unique address, which is composed of one member from each dimension in the database, and requires 8 bytes of disk storage. Consider the following example of a small database: Dimension

Stored Members

Storage Type

Accounts

100

Dense

Time

17

Dense

Scenario

2

Sparse

12-14

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation Dimension

Stored Members

Storage Type

Product

1000

Sparse

Customer

1000

Sparse

In this small database, the number of potential data cells is 3.4 billion; to calculate the number of potential cells, multiply the number of stored members of one dimension by the number of stored members of all other dimensions (100 Accounts members x 17 Time members x 2 Scenario members x 1000 Product members x 1000 Customer members). In larger databases, it is not uncommon to have trillions of potential data cells. NOTE

Stored members are members with Store Data, Dynamic Calc and Store, or Never Share data storage properties.

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-15

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Dense Dimensions A standard report can contain tens of thousands of data values, and it would be extremely inefficient for Essbase to deliver each data value into memory, one eight-byte cell at a time. Instead, for block storage databases, Essbase groups data cells into data blocks composed of dense dimensions and thus increases the amount of information that can be delivered into memory at one time. Each data block is a multidimensional array that contains a fixed, ordered location for each possible combination of dense dimension members. Accessing a cell in the block does not involve sequential or index searches. The search is almost instantaneous, resulting in optimal retrieval and calculation speed.

12-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation Every data block in a block storage database has the same number of cells, and, after Essbase creates a data block, all cells of the data block exist, regardless of whether they contain data. For calculation, restructuring, data loading, or reporting, data blocks move from disk to memory and back to disk in their entirety, so smaller data blocks generally provide better performance. To calculate the number of cells in a data block, multiply the number of stored members of one dense dimension by the number of stored members of each other dense dimension. The small database in the previous example stores data in blocks of 1700 cells (17 Time members x 100 Accounts members); each block requires 13600 bytes (1700 cells x 8 bytes) of disk storage. You can control block size by configuring fewer or more dimensions as dense. NOTE

8 to 100 kilobytes is the optimum block size range for native block storage databases. However, performance dictates the block size for a database, and performance depends not only on data block size but also on the types of calculations required and the available hardware. For block storage databases, Essbase stores data blocks in PAG files (Essn.pag), which can grow to 2 GB. If Essbase requires more than 2 GB to store data, it creates additional sequential PAG files.

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-17

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Sparse Dimensions For block storage databases, Essbase creates an index entry for each data block. The index contains an entry for each unique combination of sparse standard dimension members for which at least one data value exists. Essbase stores index entries in an IND file (Essn.ind), which is located in the same directory as the PAG files. Like PAG files, IND files have a maximum file size of 2 GB. When the current IND file reaches the maximum size, Essbase creates another IND file, numbered sequentially, to store additional index entries. There is no 1-to-1 relationship between the number of PAG and IND files, and it is not unusual for a single IND file to index multiple PAG files. For example, a fully-calculated database can have one IND file and ten PAG files.

12-18

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation In the example on the slide, loading the data value 100 to the member intersection Feb->Units->"Current Year"->IBM->"Lightbolt 365 A" creates a data block that is indexed as "Current Year"->IBM->"Lightbolt 365 A". Any additional data for that unique combination of sparse dimension members is added to the data block. For example, loading a value of 200 to Mar->Units->"Current Year"->IBM->"Lightbolt 365 A" adds data to a second cell in the "Current Year"->IBM->"Lightbolt 365 A" data block. You can calculate the number of potential data blocks for a database by multiplying the number of stored members of one sparse dimension by the number of stored members of each other sparse dimension. The sparse dimensions in the previous example (2 scenarios, 1000 products, and 1000 customers) can potentially create 2 million data blocks. However, Essbase creates only the blocks that it requires to store data values. Database Efficiency The efficiency of the data block and index system is based on two principles: • Data blocks are created only for combinations of sparse members that contain data (Data is stored and calculated only for actual combinations.). • For combinations of sparse members that do not contain data, no data block is created. Therefore, sparse member combinations that you do not use do not require disk space or calculation time. The best dense-sparse configuration for a database stores data in a reasonable number of mid-sized, densely populated data blocks, rather than in a high number of small, densely populated data blocks or a small number of large, sparsely populated data blocks. Data Block Classification In the block storage index, Essbase classifies data blocks according to two criteria: block level and type of data. Block Level

• Level 0 block: A block in which every sparse member in the index entry of the block is a level 0 member of its dimension (The block in the example on the slide is a level 0 block.) • Upper-level block: A block in which at least one sparse member in the index entry of the block is not a level 0 member in its dimension

Data Type

• Input block: A block in which data values were loaded during a data load process (The block in the example on the slide is an input block.) • Non-input block: A block entirely populated with data that was created during a calculation process

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-19

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Database Statistics

Copyright © 2007, Oracle. All rights reserved.

Database Statistics The Database Properties dialog box provides substantial statistical information about a database and its data blocks. You can use this information to benchmark your configuration choices. The most important sets of information for this process are dimension properties and block statistics. To open the Database Properties dialog box: 1. In the navigation panel of Administration Services Console, right-click the database node. 2. Select Edit > Properties. The Database Properties dialog box is displayed.

12-20

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Dimension Properties ƒ Dense-sparse configuration ƒ Members in dimension ƒ Stored members in dimension

Attribute dimension

Copyright © 2007, Oracle. All rights reserved.

Dimension Properties The Dimensions tab of the Database Properties dialog box is an informational frame that identifies the dense-sparse configuration, the total number of members, and the total number of members stored for each dimension. The Members Stored number is the number that Essbase uses to calculate the size and potential number of data blocks in the database. Although attribute dimensions are displayed on the Dimension Properties tab, Essbase does not consider them when calculating block size or number of potential blocks. Attribute dimensions are entirely dynamic, and, therefore, the Members Stored number for each attribute dimension is 0 (zero).

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-21

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Block Statistics Benchmark dense-sparse configuration and storage efficiency

Copyright © 2007, Oracle. All rights reserved.

Block Statistics The Statistics tab of the Database Properties dialog box provides an important set of block statistics that help you test the efficiency of your configuration settings. The following table describes each block statistic and explains how to use each statistic for benchmarking: Statistic

Description

Number of existing blocks

Total number of data blocks in the database at its current state of calculation. Generally, the lower the number of existing blocks when you calculate, the lower the calculation time, because fewer blocks cycle through memory.

Block size (B)

The product of the number of stored members of one dense dimension multiplied by the number of stored members of each other dense dimension multiplied by 8 bytes. Sizes that are too small or too large may adversely affect calculation, storage, and retrieval efficiency.

12-22

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation Statistic

Description

Potential number of blocks

The product of the number of stored members of one sparse dimension multiplied by the number of stored members of each other sparse dimension. In most databases, the product is much larger than the number of existing blocks.

Existing level 0 blocks

Number of current data blocks where all sparse members in the index entry are level 0 members.

Existing upper-level blocks

Number of current data blocks where at least one sparse member in the index entry is an upper-level member. In most databases, the ratio of upper-level to level 0 blocks is very high.

Block density (%)

From a sampling of existing data blocks, the number of cells that have values as a percentage of the total number of cells in the block. Because dense-sparse settings should maximize block density, this percentage is key to evaluating storage and calculation efficiency.

Percentage of maximum blocks existing

Number of existing blocks divided by number of potential blocks. Another key statistic for storage and calculation efficiency, this percentage measures the sparsity of the database. It is not uncommon for this statistic to be very small (less than 1%), as it is the nature of multidimensional databases to have many combinations without data.

Compression ratio

Compression efficiency when blocks are stored on disk. Because #MISSING cells are typically compressed, this statistic inversely correlates to block density; as block density increases, the compression ratio decreases.

Average clustering ratio

Fragmentation level of the data (PAG) files. The maximum value, 1, indicates no fragmentation. For information on preventing or removing fragmentation, see the Database Administrator’s Guide.

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-23

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Data Block Creation To understand the built-in efficiency of block storage database calculations and to create efficient calculations, you must understand how and why Essbase adds data blocks to the PAG file. Essbase creates data blocks during any one of the following four processes: • Data load • DATACOPY command in a calculation script • Sparse dimension consolidation • Some member formulas

12-24

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Data Load Essbase creates data blocks when you load data to sparse member combinations for which a data block does not exist. Blocks are created upon input, as part of the data loading process, whether you load using a data source and a rules file or load directly from a spreadsheet interface. In the example on the slide, no data blocks exist for Bigcorp Sales. When you send the sample spreadsheet, Essbase creates the "Current Year"->IBM->"Lightbolt 365 A" data block to store the value for Feb->Units. Because no blocks existed prior to this operation, Essbase creates a PAG file to store the new block and an IND file to store the index entry for the block. NOTE

If no data blocks exist in a database, no PAG or IND files exist in the database. Essbase creates these files as necessary.

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-25

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

DATACOPY Command The DATACOPY command copies data values from one subset of the database to another subset of the database. This command is useful when you must maintain an original set of data values and perform changes on the copied data set. If necessary, Essbase creates data blocks when you execute a calculation script that contains the DATACOPY command. In the example on the slide, you execute a calculation script for Bigcorp Sales that copies all Current Year data into the Budget scenario. Because a data block for Budget->IBM->"Lightbolt 365 A" does not exist, Essbase adds it to the PAG file.

12-26

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Sparse Dimension Consolidation Essbase creates data blocks when sparse dimensions are consolidated. For example, in the Bigcorp Sales outline, the customer IBM has two ancestors. Thus, the data values for IBM are part of two higher-level totals (OEM and Channel Total) that Essbase needs to calculate after you load data to IBM. Because two level-0 IBM blocks exist, if you execute a CALC DIM command for the Customer dimension, Essbase needs to create four upper-level blocks—two ancestor blocks for each level-0 IBM data block. Notice that, because you are consolidating only the Customer dimension, only Customer names change in the index entries for the new blocks. To see higher-level product totals for each customer, you must also consolidate the Product dimension.

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-27

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Member Formulas Data blocks are created from member formulas: ƒ If you assign a constant value to a sparse member ƒ If you assign a non-constant value to a sparse member AND turn the Create blocks on equations setting ON SET CREATEBLOCKONEQ ON; Acer = IBM * 1.10;

Copyright © 2007, Oracle. All rights reserved.

Member Formulas By default, when a calculation formula assigns a non-constant value to a member of a sparse dimension for which a block does not exist, Essbase does not create a data block. However, you can override this default in your calculation script with the SET CREATEBLOCKONEQ command Create blocks on equations is a database property. Although you can change the default setting to ON, this change is not recommended. Sometimes, you do not want new data blocks; for example, you do not want data blocks that contain no values. In large databases, creation and processing of unneeded blocks can increase processing time as well as storage requirements. The SET CREATEBLOCKONEQ calculation command is available only in Release 7.0 or higher. For more information on controlling creation of blocks when you work with non-constants and sparse dimensions, see the Database Administrator’s Guide and the Technical Reference.

12-28

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Database Calculation Process When you perform a complete database calculation, the level 0 input data of the database is calculated across every dimension in dense-sparse order. Although Essbase accepts data input at upper levels, most database designers choose to limit input to level 0 in order to simplify calculation processes. For a comprehensive discussion of calculation of upper-level input data, see ”Upper-Level Data Loads” in Appendix A, “Creating Advanced Calculations.” For maximum efficiency, the calculation process should perform the following actions: 1. Load data to level 0 blocks (Although not part of the calculation process, this step is necessary before data is calculated.) 2. Fully calculate level 0 blocks 3. Create upper-level blocks that are based on fully calculated level 0 blocks

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-29

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Input Data Load 1. You load input data. 2. Essbase creates data blocks in memory. 3. Essbase writes data blocks to the .PAG file and indexes them in the .IND file.

Additional Time Periods

CY->IBM->LB365A

Input Data for One Block Copyright © 2007, Oracle. All rights reserved.

Input Data Load When you load data, Essbase searches first in the index file for the relevant block entry. If none exists, Essbase creates a data block in memory, writes the input data to the block, and then writes the block into the PAG file, while creating an index entry in the IND file. The spreadsheet on the slide represents data for one level 0 input block. When you send the data to the server, Essbase creates a block indexed as "Current Year"->IBM->"Lightbolt 365 A". As you can see from the cells with the text #Missing, many data cells in the block are empty. Units and rates for each month exist as input data, but sales, costs, and quarterly totals must be calculated.

12-30

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Dense Dimension Calculation Process: Accounts The next part of the process is to fully calculate level 0 blocks. The objective is to fill as many empty cells as possible. To accomplish this objective, you calculate the dense dimensions, which make up the interior structure of each data block. In Bigcorp Sales, Accounts and Year Tot are dense dimensions. Based on the optimal outline calculation order, you use the CALC DIM command shown on the slide to calculate Accounts first. Essbase fills in dollar amounts, based on the units and rates that you loaded for each month. This calculation occurs only in existing blocks; Essbase is not required to create data blocks that are a result of formulas in the Accounts dimension.

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-31

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Dense Dimension Calculation Process: Time Based on the optimal calculation order, the second dense dimension that you calculate is the dimension tagged as Time. In Bigcorp Sales, this is the Year Tot dimension. You add the Year Tot dimension to your CALC DIM command, as shown on the slide. Calculating the Year Tot dimension creates values for cells related to upper-level time periods, such as Qtr 1 or Year Tot. As with the Accounts calculation, Essbase assigns values only to cells in existing blocks and does not create data blocks.

12-32

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Sparse Dimension Calculation Process: Customer After all dense dimensions are calculated, all cells in the input blocks are fully calculated. At this point, you must initiate a calculation to create upper-level blocks that are based on the fully-calculated input blocks. You accomplish this objective by calculating sparse dimensions. The sparse dimensions in Bigcorp Sales are Scenario, Customer, and Product. According to the optimal calculation order, you should calculate these dimensions from smallest to largest. Based on this criteria, you would choose Scenario to calculate next. However, in the Bigcorp Sales outline, all calculations in the Scenario dimension are dynamic. Thus, Scenario formulas calculate automatically when users request data and are not stored or calculated during a batch process. Because Customer has fewer members and fewer upper-level intersections than Product, you calculate Customer next, adding the Customer dimension to the CALC DIM command, as shown on the slide.

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-33

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation Unlike a dense calculation, this sparse calculation requires Essbase to create data blocks for the ancestors of IBM: OEM and Channel Total. Essbase creates these upper-level blocks by aggregating the data of child blocks. For example, the value for "Qtr 1"->Units in the OEM block is the sum of the values for "Qtr 1"->Units in the IBM, Acer, Apple, AST, Dell, and HP blocks.

12-34

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Sparse Dimension Calculation Process: Product In the Bigcorp Sales database, the final dimension that you calculate is Product, as shown in the CALC DIM command on the slide. During this last step, Essbase creates not only upper-level Product blocks in relation to the original input block but also upperlevel Product blocks in relation to the upper-level Customer blocks that were created when the Customer dimension was calculated. Essbase creates the upper-level Product blocks by aggregating the data of the child blocks. For example, the value for "Qtr 1"->Units in the "Family Total"->OEM block is the sum of the values of "Qtr 1"->Units in the "Lightbolt 365 A"->OEM, LIGHTBOLT->OEM, and PERFORMANCE->OEM blocks.

Hyperion Essbase Analytics 9.3.1 Bootcamp

12-35

Module 4 Creating Basic Calculations Lesson 12 Data Storage and Calculation

Summary In this lesson, you should have learned to: • Describe block storage calculations • Describe the default database calculation order • Describe data blocks • Describe how data blocks are indexed • Interpret database statistics • Describe when data blocks are created • Describe the block storage database calculation process

12-36

Hyperion Essbase Analytics 9.3.1 Bootcamp

L E S S O N

1 3

Creating Calculation Scripts

Objectives At the end of this lesson, you should be able to: • Organize calculation scripts • Return correct calculation results • Troubleshoot incorrect calculation results produced by the CALC DIM process

13

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Calculation Script Organization Commenting in calculation scripts: ƒ Improves readability ƒ Helps organize similar calculations ƒ Helps you plan calculation sequence

Comment Syntax /* */ Copyright © 2007, Oracle. All rights reserved.

Calculation Script Organization When creating a large calculation script, you need to plan the process, creating an architecture for calculation structure. Creating an architecture gives your calculation scripts a logical flow and ensures that calculation order and data block construction provide correct answers and optimal performance. Calculation script organization begins with commenting—you use comment tags to create section headers and notations in your calculation script. Notations and section headers not only help you plan your calculation sequence but also help anyone who reads your calculation script. To add comments to your scripts, simply insert text between a begin comment tag ( /* ) and an end comment tag ( */ ). By default, the comment text is displayed in green in Calculation Script Editor.

13-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts The following calculation script example is organized in six standard sections: • Information • Housekeeping • Baseline fix • Normalization • Main rollup • Back calculation /* Information */ /* Script Name: C_ITExp Created By: Alexander Paul Stevens, Hyperion Consultant On: August 19, 2005 Purpose:

To allocate IT expense to each office based on % of total headcount

Directions:

1) Set substitution variable CurYear 2) Input data: office headcount, corporate IT expense 3) Run this calculation script.

Versions:

Essbase Release 9.0

Assumptions:

The "Accounts", "Time" and "Years" dimensions are DENSE. The "Locations", "Scenarios", and "Customers" dimensions are SPARSE.

Comments:

This script can be run an indefinite number of times with the same data and the same results will be obtained each and every time (This is NOT a "one time" script that requires re-loading of static data).

Revised By: On: Description: */ /* Housekeeping */

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-3

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts /* Set the calculator cache. */ SET CACHE HIGH; /* Display calculation statistics in application log. */ SET MSG SUMMARY; /* Display calculation completion messages in application log at 20% intervals. */ SET NOTICE LOW; /* Turn off Intelligent Calculation. */ SET UPDATECALC OFF; /* Enables parallel calculation. */ SET CALCPARALLEL 4; /* Baseline Fix on CurYear, No Customer, and Actual scenario. */ FIX (Actual, "No Customer", &CurYear) /* Normalization */ /* Calculate total corporate headcount to be used as a basis for allocation */ FIX (Headcount) @IDESCENDANTS ("All Offices"); ENDFIX /* Allocate IT Expense loaded to Corp HQ entity to all offices based on percent of total headcount. */ "IT Alloc In" = "Corp HQ"->"IT Exp" * (Headcount / Headcount->"All Offices"); /* Offset IT expense in Corp HQ by the sum of all allocated data */ FIX ("Corp HQ") "IT Alloc Out" = @SUMRANGE ("IT Alloc In", @IDESCENDANTS("All Offices")); ENDFIX /* Main Rollup */ /* Recalculate all dimensions outside the Baseline fix CALC DIM (Accounts, Time, Locations);

13-4

*/

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts /* Back Calculation */ /* Correct rates at upper levels */ ( "Discount %" = Discounts / Sales; "Tax Rate" = Taxes / "Net Income"; ) /* End of Baseline Fix */ ENDFIX

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-5

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Information Section Contains information about the script: ƒ Who created it ƒ What it does ƒ How and when to use it

Copyright © 2007, Oracle. All rights reserved.

Information Section The information section contains basic information about the calculation script. The section is wholly comment-based, and you can include any information that you feel is pertinent to correct use of the calculation script. The following is a list of some of the items that you can include in an information section. • Script name • Name of the script creator • Date that the script was created • Purpose of the script • Directions on how to set the system before running the script (including, for example, setting values for variables or inputting data) • Version of the software for which the script was created

13-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts • Assumptions about the database (usually including dense-sparse configuration and attribute dimension associations) • Other comments • Revision information—who revised the script, when it was revised, and what was revised

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-7

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Housekeeping Section ƒ SET commands control how the script processes. ƒ Data manipulation commands prepare input data for calculation.

Copyright © 2007, Oracle. All rights reserved.

Housekeeping Section The housekeeping section sets the stage for the next sequence of calculations to occur. Two categories of commands are typically used in the housekeeping section: SET commands and data manipulation commands. SET Commands SET commands prepare the calculator for proper processing of the commands in the rest of the script. You use SET commands to control, for example, parallel calculation, calculator cache size, and the display of log messages. In the example on the slide, the SET commands perform the following actions: • SET CACHE HIGH: Instructs the calculation process to use the highest calculator cache setting stored in the Essbase.cfg file. Essbase uses the calculator cache to create and track data blocks during calculation, so increasing the calculator cache setting can significantly improve calculation performance.

13-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts • SET MSG SUMMARY: Instructs Essbase to display summary-level messages in the application log of the calculation process. The summary messages include statistics on the number of data blocks created, read, and written and on the number of data cells calculated. • SET NOTICE LOW: Instructs Essbase to use the lowest frequency of calculation completion notices stored in the Essbase.cfg file. • SET UPDATECALC OFF: Turns the intelligent calculator off. When intelligent calculation is used, Essbase calculates only blocks that were updated since the last calculation. Although intelligent calculation increases calculation efficiency by reducing the number of blocks calculated, during calculation script development or testing, you should turn the intelligent calculator off to ensure full calculation of your script each time you run it. For a detailed description of intelligent calculation, see “Intelligent Calculation” in Appendix A, "Creating Advanced Calculations." • SET CALCPARALLEL 4: Enables parallel calculation across four threads, in place of the default serial calculation. This setting enables Essbase to benefit from multiple processors on the server. For information about parallel calculation, see the Database Administrator’s Guide and the online Technical Reference. Data Manipulation Commands The other type of command commonly found in a housekeeping section involves data set manipulation; for example, copying actual data into a budget scenario or clearing all upper-level blocks. The following table describes data manipulation commands: Command

Description

CLEARBLOCK ALL | UPPER | NONINPUT | DYNAMIC

For clearing previous input or upper-level data or stored dynamic calculations

CLEARDATA mbrName

For clearing specific members or member combinations

DATACOPY mbrName1 TO mbrName2

For copying data sets from one member to another

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-9

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Baseline Fix Section Beginning of a Baseline Fix

Internal Fixes

Ending of a Baseline Fix

Copyright © 2007, Oracle. All rights reserved.

Baseline Fix Section The baseline fix section is found near the top of most calculation scripts and defines the specific focus of the script (typically defined by subsets of the time or scenario dimension). There are a number of issues to consider when creating a baseline fix. Focus on the type of calculation that you are performing: • Scenario: Do you want to calculate actual, budget, or forecast data? The baseline fix often includes a scenario reference because, typically, scenarios differ from each other in calculation requirements and timing. In the example on the slide, the baseline fix focuses on the Actual scenario, leaving all other scenarios uncalculated.

13-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts • Time frame: Do you want to calculate only the current fiscal year, only the current period, or all time periods? The baseline fix often includes a time qualification (especially for financial applications where data is calculated only for the current time frame). In the example on the slide, the baseline fix focuses on a substitution variable called CurYear, the value of which is set by the administrator. This fix limits the calculation to a specific year, leaving all other years uncalculated. Substitution variables are discussed in more detail in the next lesson. • Other dimensions: Do you need to limit your calculations to subsets of other dimensions? Limitation requirements vary greatly from database to database and from calculation to calculation. In the example on the slide, the IT expenses are not related to customer activity, so the baseline fix limits the calculation to a special member of the Customer dimension, a member called No Customer. NOTE

Because Essbase requires you to reference data across all dimensions, it is common practice to add a member like No Customer to a dimension to represent data to which the dimension does not apply. To provide a more refined focus, you can include fixes inside the baseline fix. For example, the normalization section on the slide includes internal fixes to focus calculations on a specific account or entity.

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-11

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Normalization Section Prepare data for consolidation: ƒ Allocate upper-level inputs to level 0 blocks ƒ Make adjusting entries ƒ Facilitate intercompany eliminations

Copyright © 2007, Oracle. All rights reserved.

Normalization Section You may need to manipulate or normalize data before you perform your main consolidation. Various circumstances may require you to normalize data: • To allocate upper-level input data to level 0 members (such as allocating IT expenses that were originally loaded to Corporate HQ to individual offices, as in the example on the slide) • To adjust input data (such as adjusting entries during a month-end close) • To calculate intercompany eliminations • To correct or otherwise fix anomalous data (Requirements vary depending on your database architecture and data load processes.)

13-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts The normalization of IT expenses in the example on the slide is an allocation to individual offices. Each allocation is based on a percentage (office headcount / total corporate headcount * 100). Normalization is accomplished in three steps: 1. Headcount is aggregated across the Locations dimension and up to the All Offices member: FIX (Headcount) @IDESCENDANTS ("All Offices"); ENDFIX 2. The input data for total IT Exp is allocated from the Corp HQ location to the IT Alloc In account of each office. The allocation is based on office headcount divided by total headcount: "IT Alloc In" = "Corp HQ"->"IT Exp" * (Headcount / Headcount->"All Offices"); 3. So IT expenses are not double-counted when the Locations dimension is consolidated, the input data for total IT Exp is offset in the Corp HQ location in an account called IT Alloc Out: FIX ("Corp HQ") "IT Alloc Out" = @SUMRANGE ("IT Alloc In", @IDESCENDANTS("All Offices")); ENDFIX

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-13

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Main Rollup Section ƒ Consolidates dimensions outside the baseline fix ƒ Creates the major portion of data blocks ƒ Uses CALC DIM or CALC ALL commands

Copyright © 2007, Oracle. All rights reserved.

Main Rollup Section When all normalization calculations are complete, you are ready to consolidate dimensions with a CALC ALL or CALC DIM command. The major portion of data blocks are built at this time. NOTE

Because CALC DIM calculates an entire dimension, the CALC DIM command cannot include dimensions that are used in the baseline fix section; the purpose of the baseline fix is to limit calculations to specific members of a dimension. By the same logic, you cannot use CALC ALL inside fix statements. The main rollup should calculate dimensions based on the optimal calculation order (that is, dense dimensions followed by sparse dimensions).

13-14

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Back Calculation Section Correct rates consolidated incorrectly

Discount % aggregated across time

Copyright © 2007, Oracle. All rights reserved.

Back Calculation Section If you use rates as calculation drivers or store ratio or percentage calculations, you need a back calculation section, to be applied after dimensions are consolidated. When following the default calculation order, Essbase incorrectly aggregates rates, ratios, and percentages at upper levels of the database. A back calculation derives or recalculates rates, ratios, and percentages and thus corrects upper-level values. In the example on the slide, Discount % is aggregated across time by the main rollup. A back calculation derives the correct Discount % for Qtr 1. Creation of a back calculation is discussed in more detail later in this lesson.

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-15

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Returning Correct Calculation Results

Copyright © 2007, Oracle. All rights reserved.

Returning Correct Calculation Results How Essbase calculates data during the main rollup does not necessarily result in correct data. Identifying members likely to have incorrect results and correcting their results is the process of creating a back calculation. Types of members to watch for: • Calculated or input rates (such as prices, cost per unit, and other drivers) • Ratio calculations (such as Profit %, Margin %, % of Total, and so forth) NOTE

Dynamically calculated ratio calculations do not require back calculation but may require two calculation passes. Dynamic ratios are discussed in more detail later in this lesson.

13-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Expected Behavior CALC DIM ("Customer", "Product")

Upper-Level Block Copyright © 2007, Oracle. All rights reserved.

Expected Behavior When designing a calculation script, you must understand how the calculator works (expected behavior) and appreciate that calculated results, in some circumstances, do not yield correct answers (correct behavior).

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-17

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts How your database calculates during the main rollup phase of your calculation (using CALC ALL, CALC DIM, or AGG) is its expected behavior; expected behavior is based on outline design. Using the optimal calculation order, the calculation processes in the following sequence: 1. The Accounts dimension with its units, rates, dollars, and percentages calculates first. This calculation provides correct data for upper-level accounts across level 0 members of the other dimensions. This step creates data for calculated accounts in level 0 intersections only. 2. Input and calculated accounts aggregate across all other dimensions in sequence. In the example on the slide, when Year Tot, Customer, and Product are calculated, rates like List Price and Discount % aggregate across all of these dimensions, creating nonsensical totals for every time period in the "Current Year"->"Family Total"->"Channel Total" block.

13-18

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Correcting Calculated Percentages ƒ Calculate dynamically Before recalculation

ƒ Recalculate — Two-pass calculation — Back calculation

9

9

9

8

After recalculation or dynamic calculation

9

9

9

9

Copyright © 2007, Oracle. All rights reserved.

Correcting Calculated Percentages To return correct results for calculated percentages, you must calculate the percentage or rate formula after you calculate the upper levels of every dimension. In the example on the slide, you can calculate the correct Gross Margin % for Qtr 1 in the level 0 block by dividing Qtr 1 Gross Margin by Qtr 1 Net Sales. Similarly, in upper-level blocks, you can calculate the correct Gross Margin % by dividing upper-level Gross Margin by the upperlevel value for Net Sales.

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-19

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts There are several methods to correct percentages: • Make percentages dynamic. Instead of storing percentage calculations, calculate percentages on retrieval, using stored data. This is the easiest and most efficient solution, but if you have many dynamic members in your outline, especially in multiple dimensions, you can have trouble controlling the dynamic calculation order and may still see incorrect results in upper levels. You can tag dynamic members with the two-pass flag to force the formulas of the flagged members to calculate last, but in some cases the two-pass flag is not sufficient to guarantee correct calculation order. For a detailed description of using dynamic calculations, see the Database Administrator’s Guide, "Dynamically Calculating Data Values." • Tag percentages for two-pass calculation. Because ratios are dependent on the calculated values of other members, you can tag them with the two-pass flag, which instructs Essbase to recalculate their formulas in a second calculation pass after the preliminary consolidation. The second calculation pass is automatic when you use the CALC ALL command; when using CALC DIM to consolidate dimensions, you must include the CALC TWOPASS command to initiate the second calculation pass, as in the following example: /* The Main Rollup */ CALC DIM (Accounts, "Year Tot", Customer, Product); CALC TWOPASS; TIP

Never include two-pass calculation and back calculation instructions in the same calculation script—both types of calculation require additional calculation passes on the data blocks, and using both in one script significantly affects calculation performance. Only use two-pass calculation if back calculation is not required. • Recalculate percentages in a back calculation section. This method is a manual version of two-pass calculation. You should use this method if back calculation of rates is required in your calculation script. The following example shows a back calculation to correct Gross Margin %: /* The Main Rollup */ CALC DIM (Accounts, "Year Tot", Customer, Product); /* The Back Calculation */ (

13-20

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts "Gross Margin %" = "Gross Margin" / "Net Sales"; ) A member formula, like the one for Gross Margin % in the preceding example, is a calculation script line that is used to assign a value to a member. However, if the formula for Gross Margin % is already stored in the outline, there is no need to restate it in the calculation script. You can simplify the preceding example as follows: /* The Main Rollup */ CALC DIM (Accounts, "Year Tot", Customer, Product); /* The Back Calculation */ ( "Gross Margin %"; )

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-21

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Design Considerations for Rates

Net Sales

(+)

Gross Sales

Net Sales

(+)

Units

(~)

List Price

(^)

Discounts

(-)

(+)

Gross Sales

(+)

Discounts

(-)

Analysis

(~)

Units

(~)

Gross Sales

(+)

Avg List Price

(~)

Gross Sales / Units

Discount %

(*)

Avg Discount %

(~)

Discounts / Gross Sales

Input units and rates with derived dollars

Input units and dollars with derived rates

Copyright © 2007, Oracle. All rights reserved.

Design Considerations for Rates With regard to units, rates, and dollars, you can design your outline model in either of two ways: • Input units and dollars, with derived rates (dollars / units = rate). This method is common when you are working with actual data. For example, you input actual units sold and actual sales to derive an average list price. • Input units and rates, with calculated dollars (units * rate = dollars). This method is common in budgeting and forecast applications where you are working with drivers rather than actual data. For example, you input budgeted units and a budgeted list price to derive budgeted dollars. Regardless of the design that you use, you must address the problem of aggregating rates at upper levels by using one of the two following design approaches:

13-22

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts • Tag rates to never consolidate. The never consolidate operator (^) prevents members from consolidating across any dimension, effectively avoiding the back calculation requirement. Use the never consolidate operator when a derived rate at upper levels does not provide useful data. Consider an office supply store with a product dimension that includes diverse products, such as staplers, printers, and office chairs. The price per unit for each product varies dramatically; therefore, an average price per unit for the sales total of all products is a nonsensical number. NOTE

The never consolidate operator (^) is available only in Essbase Release 9.3 and higher. • Structure your database calculation to derive rates after the main rollup. Because the main rollup aggregates rates at upper levels of dimensions, deriving rates after all dimensions are calculated provides an average rate that is based on aggregated totals, rather than on an aggregated rate. The method that you use to correct a rate depends on whether the rate is originally an input rate or a derived rate.

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-23

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Preventing Consolidation of Rates

Upper-level block

Copyright © 2007, Oracle. All rights reserved.

Preventing Consolidation of Rates In Release 9.3 and higher, the never consolidate operator (^) gives you more control over rates. In applications where rates are used solely as calculation drivers and not for analysis purposes, you can tag rates to never consolidate across any dimension. The never consolidate operator leaves rates in input cells and does not aggregate them. The example on the slide shows an alternate Bigcorp accounts dimension hierarchy that contains the input rates List Price and Discount %, both tagged with the never consolidate operator. A full CALC ALL database calculation uses the rates to calculate the Accounts dimension formulas but ignores the rates as it consolidates the remaining dimensions, resulting in #MISSING for upper-level intersections with the rate accounts. Consequently, you do not have to recalculate the rates at upper-level intersections, and, thus, you avoid a back calculation entirely.

13-24

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Correcting Derived Rates ƒ Calculate dynamically ƒ Recalculate

Net Sales

— Two-pass calculation — Back calculation

(+)

Gross Sales

(+)

Discounts

(-)

Analysis

(~)

Units

(~)

Avg List Price

(~)

Gross Sales / Units

Avg Discount %

(~)

Discounts / Gross Sales

Copyright © 2007, Oracle. All rights reserved.

Correcting Derived Rates If you want to use rates for analysis purposes or if you have a release of Essbase prior to Release 9.3, you must correct both input and derived rates by using calculation processes. The example on the slide shows a typical outline hierarchy that contains derived rates (rates used in a dollars / units = rate calculation scheme). With this type of design, you can return a correct average rate by using the options that are used for calculated percentages: • Dynamically calculate the rate • Tag the rate for two-pass calculation • Recalculate the rate in a back calculation section The aim of all three methods is to ensure that the rates calculate after all dimensions are consolidated.

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-25

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Correcting Input Rates ƒ Correct with a back calculation ƒ Create shadow rates

"List Price" = "Gross Sales" / Units; "Discount %" = Discounts / "Gross Sales";

Copyright © 2007, Oracle. All rights reserved.

Correcting Input Rates Input rates (rates used in a units * rates = dollars calculation scheme) require a different calculation approach. Primarily, a different approach is required because input rates, unlike derived rates, have no inherent member formulas to be recalculated after the main rollup section. The following options are the most typical design approaches to correct input rates: • Overwrite input rates with derived rate calculations • Shadow input rates in the outline with derived rate members Overwriting Input Rates You can correct input rates by using a back calculation method that essentially overwrites input data with a derived rate formula (rate = dollars / units). This method is possible because dollars and units aggregate correctly during the main rollup, even though rates do not.

13-26

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts The following is an example of a back calculation to correct the List Price and Discount % values in the example on the slide: /* The Main Rollup */ CALC DIM (Accounts, "Year Tot", Customer, Product); /* The Back Calculation */ ( "List Price" = "Gross Sales" / Units; "Discount %" = Discounts / "Gross Sales"; ) Shadowing Input Rates with Derived Rates Instead of overwriting input data, many database designers opt to shadow input rates in the outline with calculated members. Although input rates still aggregate incorrectly, the shadow derived rates provide average rate calculations at every level in the consolidation. To prevent users from viewing potentially confusing aggregated input rates, you can implement any of the following options: • Use security filters to limit read access to input rates, as in the following outline example:

• Move input rates to another section of the outline (usually under a parent called Rates), leaving the derived rate in its place. Use consolidation operators and member formulas to ensure correct calculation, as in the following outline example:

• If you have Release 9.3 or higher, use the never consolidate operator (^) to prevent input rates from aggregating. Hyperion Essbase Analytics 9.3.1 Bootcamp

13-27

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Troubleshooting CALC DIM Processes To ensure multiple calculation passes: ƒ Turn off intelligent calculation ƒ Group back calculation formulas in parentheses /* Housekeeping */ SET UPDATECALC OFF; /* The Main Rollup */ CALC DIM (Accounts, "Year Tot", Customer, Product); /* The Back Calculation */ ( "List Price"="Gross Sales"/Units; "Discount %"=Discounts / "Gross Sales“ )

Copyright © 2007, Oracle. All rights reserved.

Troubleshooting CALC DIM Processes When you consolidate a database by using the CALC DIM command, Essbase attempts to calculate the database in one calculation pass. However, for a back calculation to return correct results, the formulas need to be calculated in a second pass on the data blocks. To ensure a second calculation pass, you must perform the following actions: • Turn intelligent calculation off. Intelligent calculation marks blocks that are calculated on the first calculation pass and does not recalculate them on a second calculation pass. For a detailed description of intelligent calculation, see "Intelligent Calculation" in Appendix A, “Creating Advanced Calculations.” • Group back calculation formulas inside parentheses (). Grouping formulas inside parentheses forces Essbase to perform the enclosed back calculation formulas in a separate calculation pass.

13-28

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Viewing Calculation Messages

1

2

3

Copyright © 2007, Oracle. All rights reserved.

Viewing Calculation Messages When you calculate a database, Essbase displays the calculation order of the dimensions for each pass through the database and tells you how many times Essbase cycled through the database during the calculation. Essbase displays this information in the application log. To view the application log: 1. From Administration Services Console, right-click the application node and select View > Log. The Log Viewer Options dialog box is displayed. 2. Select one of the following options: • To display the entire application log file, select Display log. • To display only a specific date, select Starting date, and then, from the drop-down list, select a date. Hyperion Essbase Analytics 9.3.1 Bootcamp

13-29

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts 3. Click OK. Log Viewer is displayed. You can scroll to the end of the log file to view the most recent log messages.

13-30

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Single-Pass Calculation with Incorrect Results Single-pass calculation script /* The Main Rollup */ CALC DIM (Accounts, "Year Tot", Customer, Product); /* The Back Calculation */ "List Price"="Gross Sales"/Units; "Discount %"=Discounts / "Gross Sales" Incorrect upper-level block

Copyright © 2007, Oracle. All rights reserved.

Single-Pass Calculation with Incorrect Results The Bigcorp Sales database uses the input rates List Price and Discount % to calculate Gross Sales and Discounts, respectively. Input rates require a back calculation to correct the values aggregated to upper levels. However, the following calculation script results in a single database pass: /* Housekeeping */ SET UPDATECALC OFF; /* The Main Rollup */ CALC DIM (Accounts, "Year Tot", Customer, Product); /* The Back Calculation */ "List Price" = "Gross Sales" / Units; "Discount %" = Discounts / "Gross Sales";

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-31

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts When you run the preceding calculation script, Essbase performs all dense calculations in input-level blocks, including the formulas for List Price and Discount %. Then it performs all sparse calculations, creating upper-level blocks in which rates are aggregated. Among the application log messages for this procedure is this message, which shows a single calculation pass: [Thu Aug 25 11:51:56 2005]Local/Bigcorp/Sales/trnadmin/Info(1012669) Calculating [ Accounts(All members) Year Tot(All members) Accounts(List Price,Discount %) Customer(All members) Product(All members)]

13-32

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Multiple-Pass Calculation with Correct Results /* The Main Rollup */ CALC DIM (Accounts, "Year Tot", Customer, Product); /* The Back Calculation */ (

Multiple-pass calculation script

"List Price“ = "Gross Sales“ / Units; "Discount %“ = Discounts / "Gross Sales“ )

Correct upperlevel block

Copyright © 2007, Oracle. All rights reserved.

Multiple-Pass Calculation with Correct Results When you enclose the back calculation of the preceding script in parentheses, you force Essbase to perform a second calculation pass. With this modification, Essbase performs the dense calculations in input-level blocks, creates upper-level blocks, and then, in a second calculation pass, derives List Price and Discount % in all resulting blocks. The following example shows the modified script: /* Housekeeping */ SET UPDATECALC OFF; /* The Main Rollup */ CALC DIM (Accounts, "Year Tot", Customer, Product); /* The Back Calculation */ (

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-33

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts "List Price" = "Gross Sales" / Units; "Discount %" = Discounts / "Gross Sales"; ) Among the application log messages for this procedure are these messages, which show two calculation passes: [Thu Aug 25 Calculating members) [Thu Aug 25 Calculating

13-34

14:54:17 2005]Local/Bigcorp/Sales/trnadmin/Info(1012669) [ Accounts(All members) Year Tot(All members) Customer(All Product(All members)] 14:54:18 2005]Local/Bigcorp/Sales/trnadmin/Info(1012669) [ Accounts(List Price,Discount %)]

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

Summary In this lesson, you should have learned to: • Organize calculation scripts • Return correct calculation results • Troubleshoot incorrect calculation results produced by the CALC DIM process

Hyperion Essbase Analytics 9.3.1 Bootcamp

13-35

Module 4 Creating Basic Calculations Lesson 13 Creating Calculation Scripts

13-36

Hyperion Essbase Analytics 9.3.1 Bootcamp

L E S S O N

1 4

Controlling the Calculation Process

Objectives At the end of this lesson, you should be able to: • Describe top-down calculation • Focus calculations with FIX statements • Calculate conditionally with IF statements • Compare the FIX and IF calculation processes

14

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process

Top-Down Calculation In contrast to spreadsheet formulas, in which every calculated cell needs a formula, the Essbase block storage database calculator has a top-down approach to calculation. Unless otherwise restricted, every dense member formula in a calculation script is executed in every data block in the database. For example, each data block in the Bigcorp Sales database has 17 cells for Net Sales, one for each time period. The following member formula is executed for each intersection of Net Sales with a time period in every existing data block: "Net Sales" = "Gross Sales" - Discounts; If 5000 data blocks exist, Essbase calculates 850,000 cells (17 cells in 5000 blocks) with one line of script. This top-down calculation capability enables you to accomplish a large amount of computing while writing and debugging only a few lines of script.

14-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process A major element of calculation script drafting is understanding how to focus top-down calculations. Essbase provides three principal methods for focusing calculations: • FIX statements • IF conditional statements • Cross-dimensional operators (->)

Hyperion Essbase Analytics 9.3.1 Bootcamp

14-3

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process

Focusing Calculations with FIX Statements FIX is one of three principal methods in block storage database calculations for focusing the scope of calculations. A FIX statement restricts database calculations to a subset of the database. All commands nested between the FIX and ENDFIX commands are restricted to the specified database subset. A complete FIX statement has the following syntax: FIX (fixMbrs) Commands; ENDFIX

14-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process The fixMbrs argument is a member name or a list of member names from any number of database dimensions. fixMbrs can also contain AND and OR operators and member set functions: • AND and OR operators. Use the AND operator when all conditions must be met. Use the OR operator when one of several conditions must be met. • Member set functions. Use to build member lists. The following quick-reference table shows the most commonly used member set functions. For details about each function, see the online Technical Reference. Function

Return Value

@ALLANCESTORS(member)

All ancestors of member (including ancestors of any shared instance of member)

@CHILDREN(member)

Children of member

@DESCENDANTS(member, distance)

All descendants of member or all descendants of member down to an optional specified distance

@SIBLINGS(member)

Siblings of member

@UDA(dimension, UDA)

Members of dimension that have UDA

Member set functions that start with an "I" (for example, @ICHILDREN or @ISIBLINGS) include the input member in the list of generated members. In the example on the slide, the formula for Net Sales is restricted to Budget data blocks for Retail and its children. The member set function @ICHILDREN is used to dynamically reference multiple members, and the comma between Budget and @ICHILDREN(Retail) serves as an AND connector. When using FIX statements in your calculation script, keep the following in mind: • You can nest FIX statements within FIX statements without limitation, as in the following example: FIX("Current Year", Feb) FIX("Net Sales") CALC DIM (Product, Customer); ENDFIX ("List Price" = "Gross Sales" / Units;) ENDFIX • Members listed in the fixMbrs argument are not calculated by the FIX statement, but serve to focus the calculations inside the FIX statement.

Hyperion Essbase Analytics 9.3.1 Bootcamp

14-5

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process • If members of a dimension are listed in the fixMbrs argument, you cannot calculate members from that dimension in FIX statement commands. In the following example, the Year Tot dimension member Jan is one of the fixMbrs arguments. This argument uses a Year Tot dimension member to focus calculations, so including Year Tot in the CALC DIM command is invalid: FIX("Current Year", Jan) CALC DIM (Accounts, "Year Tot", Customer, Product); ENDFIX

14-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process

Calculating Conditionally with IF Statements The second method for focusing calculations is an IF statement, which performs conditional tests within a formula. Using an IF statement, you can define Boolean tests, as well as formulas, to be calculated if the test returns either a TRUE or FALSE value. The syntax for an IF statement is as follows: IF (condition) statement; [statement;] [ELSEIF (condition) statement;] [ELSE statement;] ENDIF

Hyperion Essbase Analytics 9.3.1 Bootcamp

14-7

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process The condition argument is a formula or function that returns a Boolean value of TRUE (a nonzero value) or FALSE (a zero value). The following are examples of valid conditions: • "Net Sales" > 10000: Returns a TRUE result if Net Sales is over 10000 • Units == 1000: Returns a TRUE result if Units is equal to 1000 TIP

Use double equal signs (==) in conditions to test for equality. In calculation scripts, a single equals sign (=) assigns a value to a member. • @ISMBR(Jan): Returns a TRUE result if the member being calculated is Jan (The function @ISMBR is one of many Boolean functions available for conditional testing.) You can include additional conditions by adding an ELSEIF branch to the IF statement, and you can define commands to be executed when none of the conditions are true by including an ELSE branch in the IF statement.

14-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process

Boolean Functions TRUE

TRUE

Is the current customer a child of OEM?

Discounts="Gross Sales" * "OEM Disc%";

TRUE

Is the current product level 0?

F ALSE

FALSE

No calculation

Is the current customer a child of Retail?

Discounts="Gross Sales" * "Retail Disc%"

FALSE

Discounts="Gross Sales" * "Discount %";

Copyright © 2007, Oracle. All rights reserved.

Boolean Functions Each Boolean function is a test that returns TRUE or FALSE (1 or 0, respectively). You can use Boolean functions in conjunction with the IF command to provide a conditional test that is based on characteristics of the current member combination. For example, if you want to restrict calculation to level 0 members of a dimension, you can use @ISLEV(dimName, 0) for the conditional test in your IF statement. If one of the function parameters is a cross-dimensional member—for example, @ISMBR(Jan->Budget)—all parts of the cross-dimensional member must match all parts of the current cell to return a value of TRUE.

Hyperion Essbase Analytics 9.3.1 Bootcamp

14-9

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process The example on the slide is a diagram of the IF logic in the following statement, which uses Boolean functions for conditions. The questions on the slide represent the logical test that Essbase performs when it encounters each Boolean function: IF(@ISLEV(Product,0)) IF (@ISCHILD(OEM)) Discounts = "Gross Sales" * "OEM Disc%"; ELSEIF (@ISCHILD(Retail)) Discounts = "Gross Sales" * "Retail Disc%"; ELSE Discounts = "Gross Sales" * "Discount %"; ENDIF ENDIF All Boolean functions start with @IS, indicating a conditional test. The following quickreference table shows the most commonly used Boolean functions. For detailed descriptions of each function, see the online Technical Reference. Function

Condition Tested

@ISCHILD(member)

Whether the current member is a child of member

@ISDESC(member)

Whether the current member is a descendant of member

@ISICHILD(member)

Whether the current member is a child of member or is member

@ISIDESC(member)

Whether the current member is a descendant of member or is member

@ISGEN(dimension, generation)

Whether the current member of dimension is in generation

@ISLEV(dimension, level)

Whether the current member of dimension is in level

14-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process

Syntax Requirements IF statement in an outline member formula

Same IF statement in a calculation script Units ( IF(@ISMBR(Budget)) Units = "Prior Year" * 1.1; "List Price" = "Prior Year" * 1.25; "Discount %" = "Prior Year" * .90; ENDIF )

Copyright © 2007, Oracle. All rights reserved.

Syntax Requirements In the outline, an IF statement can assign values to members in addition to the member that you are calculating. For example, in the outline member formula shown on the slide, an IF statement for the member Units assigns a value not only to Units but also to List Price and Discount %. When Essbase calculates Units, it evaluates the condition in the IF statement and then assigns values to all three accounts. When used in calculation scripts, IF statements you must use a construction called a calculation member block. A calculation member block relates a group of formulas to a single member, thus creating a process similar to the one described in the preceding example, where a single member formula assigns values to multiple members. The syntax requirements for a calculation member block are as follows: • You must enclose IF statements in parentheses.

Hyperion Essbase Analytics 9.3.1 Bootcamp

14-11

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process • You must precede the open parentheses with a single anchor member name (without a semicolon). As a best practice, use the member that is specified in the first member formula calculated inside the block as the anchor member. TIP

Each calculation member block represents a separate calculation pass on the data blocks, so, for the sake of efficiency, collect all IF statements in one calculation member block. You can enclose an unlimited number of IF statements in a single calculation member block.

14-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process

Comparing FIX and IF Calculation Processes The calculations produce the same results, but which is faster? Units

FIX (Sep)

(

Units=@PRIOR(Units, 1);

IF(@ISMBR(Sep))

ENDFIX

Units=@PRIOR(Units, 1); FIX (Oct)

ELSEIF(@ISMBR(Oct)) Units=@PRIOR(Units, 2)*1.1;

Units=@PRIOR(Units, 2)*1.1; ENDFIX

ENDIF )

Units Aug

100

Sep

100

Oct

110

Copyright © 2007, Oracle. All rights reserved.

Comparing FIX and IF Calculation Processes With some exceptions, you can execute the same commands with FIX and IF statements. The guidelines for when to use FIX and when to use IF are performancerelated. Using IF when you should use FIX or FIX when you should use IF has a serious impact on calculation performance. The performance differences between the statements are determined by how many data blocks are affected and how many calculation passes are required.

Hyperion Essbase Analytics 9.3.1 Bootcamp

14-13

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process

Number of Data Blocks Processed

Units

FIX (Sep)

(

Units=@PRIOR(Units, 1);

IF(@ISMBR(Sep))

ENDFIX

Units=@PRIOR(Units, 1); FIX (Oct)

ELSEIF(@ISMBR(Oct)) Units=@PRIOR(Units, 2)*1.1;

Units=@PRIOR(Units, 2)*1.1; ENDFIX

ENDIF ) IF processes all data blocks through memory

FIX on dense members processes all data blocks through memory

Copyright © 2007, Oracle. All rights reserved.

Number of Data Blocks Processed FIX statements are index-driven; thus, the members on which you fix determine which data blocks are brought into memory for the purpose of calculating the commands inside the FIX statement. For example, in Bigcorp Sales, the Scenario dimension is sparse. Therefore, in the following script, only data blocks with Current Year as part of their index entry are brought into memory for calculation; data blocks for Forecast, Budget, and Prior Year are bypassed. FIX ("Current Year") CALC DIM (Accounts, "Year Tot", Product, Customer); ( "List Price" = "Gross Sales" / Units; ) ENDFIX

14-14

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process TIP

While fixing on sparse dimension members limits the data blocks to be calculated, fixing on dense dimension members does not—dense dimension members exist in every data block. By contrast, IF is not index-driven; IF statements are interpreted formulas, executed inside a calculation member block. Thus, all data blocks are brought into memory when IF logic is applied, regardless of whether the condition is based on sparse or dense dimension members.

Hyperion Essbase Analytics 9.3.1 Bootcamp

14-15

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process

Number of Calculation Passes

Units

FIX (Sep)

(

Units=@PRIOR(Units, 1);

IF(@ISMBR(Sep))

ENDFIX

Units=@PRIOR(Units, 1); FIX (Oct)

ELSEIF(@ISMBR(Oct)) Units=@PRIOR(Units, 2)*1.1;

Units=@PRIOR(Units, 2)*1.1; ENDFIX

ENDIF ) Single calculation member block requires one pass on data blocks

Two FIX statements require two passes on data blocks

Copyright © 2007, Oracle. All rights reserved.

Number of Calculation Passes Each FIX statement represents one calculation pass. Similarly, each calculation member block is one calculation pass. However, because a single calculation member block can contain an unlimited number of IF statements, you can evaluate multiple conditions in one pass. This behavior becomes especially important when you evaluate multiple dense dimension conditions. In the example on the slide, the calculations produce the same result: In September, Units is equal to August units, and, in October, Units is equal to 110% of August units. If you use the IF example, all data blocks are brought into memory, and, as each block is processed, Essbase assigns values to September and October. If you use the FIX example, two statements and, thus, two passes through the database are required. During each pass, all data blocks are brought into memory because Year Tot is a dense dimension. Obviously, in this situation, an IF statement results in much better performance than a FIX statement.

14-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process Other Considerations IF statements must be executed within a calculation member block. Within a calculation member block, you can execute only member formulas. Thus, in an IF statement, you cannot use calculation commands such as CALC ALL, CALC DIM, AGG, or FIX. However, you can use IF statements as commands inside FIX statements. Keep the following guidelines in mind: • Use FIX statements when the arguments are members of sparse dimensions. • Use IF statements when the arguments are members of dense dimensions. • To reduce the number of calculation passes, use IF statements even with sparse dimensions.

Hyperion Essbase Analytics 9.3.1 Bootcamp

14-17

Module 4 Creating Basic Calculations Lesson 14 Controlling the Calculation Process

Summary In this lesson, you should have learned to: • Describe top-down calculation • Focus calculations with FIX statements • Calculate conditionally with IF statements • Compare the FIX and IF calculation processes

14-18

Hyperion Essbase Analytics 9.3.1 Bootcamp

L E S S O N

1 5

Referencing Members in Calculations

Objectives At the end of this lesson, you should be able to: • Reference members explicitly and dynamically • Create calculation variables

15

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations

Referencing Members Explicitly Another method for focusing the scope of calculations is to use cross-dimensional operators to reference specific member combinations. FIX and IF statements are typically used to focus a series of member formulas. Crossdimensional operators are used within a single member formula. The syntax rules for using cross-dimensional operators are as follows: • A cross-dimensional operator is a minus sign (-) followed by a greater-than sign (>), with no space between the signs. • Cross-dimensional operators connect members from different dimensions (for example, "Current Year"->Units->Jan). No spaces are allowed between member names and cross-dimensional operators. • The order of members has no bearing on calculation. Jan->Units operates the same as Units->Jan.

15-2

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations • A cross-dimensional statement can have only one member from each dimension. There can be as many members in the statement as there are dimensions. Used in formulas, the cross-dimensional operator focuses the calculation on specific member combinations. In the example on the slide, Bigcorp analysts want to calculate the ratio of units sold to individual customers to the units sold to all customers. Using the following formula, you facilitate cross-block calculations and ensure that the denominator in the ratio calculation comes from a Channel Total block: "Unit Mix by Cust" = Units / Units->"Channel Total"; Essbase uses the members of the cell currently being calculated for any dimensions that are not referenced explicitly in the cross-dimensional statement. For example, when Essbase calculates Unit Mix by Cust for January in the “Current Year”->Acer->”Lightbolt 365 A” data block, it executes the following calculation: Units->Jan->"Current Year"->Acer->"Lightbolt 365 A" / Units->Jan->"Current Year"->"Channel Total"->"Lightbolt 365 A" The member names in italics are specific to the current cell and change as the cell being calculated changes. NOTE

The formula for Unit Mix by Cust is a calculated percentage that is dependent on upper-level consolidated data. You must therefore follow the rules for calculated percentages when considering the calculation order of the formula. For a comprehensive discussion of calculated percentages, see “Correcting Calculated Percentages” in Lesson 13, “Creating Calculation Scripts.”

Hyperion Essbase Analytics 9.3.1 Bootcamp

15-3

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations

Referencing Members Dynamically Although the cross-dimensional operator is useful for fixed references in calculations, many common calculations require a more dynamic approach. Essbase has an inherent understanding of member position and member relationships within the dimension hierarchy and provides two categories of functions that take advantage of this understanding: • Member set functions: Generate lists of members based on input values • Relationship functions: Find values in related members based on the position of the current member

15-4

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations In the example on the slide, Bigcorp analysts want another Unit Mix ratio, but Unit Mix by Chan is based on the units of the current customer in relation to the units of the channel of the current customer: OEM customers in relation to the OEM total, Retail customers in relation to the Retail total, and so on. You can provide the ratio that Bigcorp analysts want by using member set functions or relationship functions.

Hyperion Essbase Analytics 9.3.1 Bootcamp

15-5

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations

Referencing Sets of Members ƒ Generate a list of members for calculation ƒ Are commonly used as arguments in FIX statements and other functions FIX(@ICHILDREN(OEM)) "Unit Mix by Chan" = Units / Units->OEM; ENDFIX

FIX(@ICHILDREN(Retail)) "Unit Mix by Chan" = Units / Units->Retail; ENDFIX

FIX(@ICHILDREN(Distributor)) "Unit Mix Chan" = Units / Units->Distributor; ENDFIX Copyright © 2007, Oracle. All rights reserved.

Referencing Sets of Members A member set function returns a list of members, based on the function that you use and the member that you specify in the function. When you use a member set function as part of a formula, Essbase generates the list of members dynamically from the outline hierarchy before the calculation begins. The list is based on the specified member and is independent of the current member being calculated. Member set functions are commonly used as arguments in FIX statements, because they provide a way to reference many members without specifying every member name. NOTE

To see a quick-reference table of the most commonly used member set functions, see “Focusing Calculations with FIX” in Lesson 14, “Controlling the Calculation Process.”

15-6

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations The script example on the slide shows how to return a correct Unit Mix by Chan ratio for each channel: In each FIX statement, focus on a channel and its children by using the member set function @ICHILDREN. Inside the FIX statement, calculate Unit Mix by Chan with a cross-dimensional reference to the channel that is the focus of the current FIX statement. While this approach returns correct results, it requires many lines of repetitive script and has a higher maintenance cost—if you add a channel to your outline, you must add a FIX statement to your script. In this instance, relationship functions provide a better solution. NOTE

Another way to generate a list of members is to use generation or level ranges, which return a sequential set of members, all from one dimension and all residing at the same level or generation. The : operator returns level-based ranges, and the :: operator returns generation-based ranges. For example, in Bigcorp Sales, Jan:Dec returns all level 0 time periods from Jan through Dec. The statement “O-IBM”::”R-Gateway” returns all generation 4 customers from O-IBM through R-Gateway.

Hyperion Essbase Analytics 9.3.1 Bootcamp

15-7

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations

Referencing Related Members Reference values related to the current member: ƒ Parents ƒ Ancestors at a specific level or generation

"Unit Mix by Chan" = Units / @ANCESTVAL(Customer,3,Units);

Generation 3 customers

Copyright © 2007, Oracle. All rights reserved.

Referencing Related Members Based on the current cell location and a series of input parameters, relationship functions look up specific values in the database. The functions have an implicit current member argument; that is, they are dependent on the position of the member currently being calculated.

15-8

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations The following quick-reference table shows the most commonly used relationship functions. For details about each function, see the online Technical Reference. Function

Return Value

@ANCESTVAL(dimension, GenLevNum [, member])

Value of member from the GenLevNum (generation or level specification) ancestor of the current member of dimension. For example, @ANCESTVAL(Product, 3, "Net Sales") returns the Net Sales account value from the generation 3 ancestor of the current Product member.

@PARENTVAL(dimension [, member])

Value of member from the parent of the current member of dimension. For example, @PARENTVAL(Customer, Units) returns the Units account value from the parent of the current Customer member.

In the Unit Mix by Chan example for Bigcorp Sales, you want to divide each customer’s units by the total units for the customer’s channel, and you want to reflect a value of 100% for each channel. Because all customer channels are generation 3 members of the Customer dimension, you can accomplish both objectives with the following line of script, which uses a relationship function: "Unit Mix by Chan" = Units / @ANCESTVAL(Customer, 3, Units); For example, when Essbase calculates Unit Mix by Chan for January in the ”Current Year”->”O-Acer”->”Lightbolt 365 A” data block, it executes the following calculation: Units->Jan->"Current Year"->"O-Acer"->"Lightbolt 365 A" / Units->Jan->"Current Year"->OEM->"Lightbolt 365 A" And, when Essbase calculates Unit Mix by Chan for January in the “Current Year”->”R-Gateway”->”Thunderball 540 S” data block, it executes the following calculation: Units->Jan->"Current Year"->"R-Gateway"->"Thunderball 540 S" / Units->Jan->"Current Year"->Retail->"Thunderball 540 S"

Hyperion Essbase Analytics 9.3.1 Bootcamp

15-9

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations

Creating Calculation Variables Temporary Variables VAR RetDisc = 1.005 FIX(@CHILDREN(Retail)) Discounts = Discounts * RetDisc; ENDFIX

Substitution Variables FIX(@CurYear) "Cur Mo Vs Prior" = @VAR(&CurrMonth, &PriorMonth); ENDFIX

Copyright © 2007, Oracle. All rights reserved.

Creating Calculation Variables In the calculation process, Essbase supports two types of variables: • Temporary variables: store the results of intermediate calculations (supported only in calculation scripts) • Substitution variables: substitute for a text or numeric value stored on Essbase Server (supported in calculation scripts and other interfaces)

15-10

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations

Creating Temporary Variables ƒ Store intermediate calculations ƒ Reduce script complexity ƒ Improve performance VAR

Copyright © 2007, Oracle. All rights reserved.

Creating Temporary Variables You can declare temporary variables and set their values in calculation scripts to store the results of intermediate calculations. Values stored in temporary variables exist only while the calculation script is running; thus, you cannot report the values of temporary variables. The benefit of using temporary variables is two-fold: • You need to create and validate a complex formula only once, in your variable definition, rather than repeating and re-validating the formula multiple times in one calculation script. • Essbase calculates a complex formula only once for each data block, regardless of how many times the script references the formula, thereby reducing calculation time.

Hyperion Essbase Analytics 9.3.1 Bootcamp

15-11

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations Setting up and using temporary variables involves three steps: 1. Declare variables. In the housekeeping section of the calculation script, use the VAR (not @VAR) command and a variable name of your own construction. For example, you develop a script in which you want to create a variable numeric constant for TaxRate. In the script, you allocate budget data for multiple accounts based on a standard allocation ratio, so you create a variable to temporarily store the allocation ratio. In the following example, both variables are declared. /* Housekeeping */ /* Declare Variables */ VAR TaxRate; VAR AllocUnits; 2. Assign values to variables. For a numeric-constant variable, you can assign a value when you declare the variable or in a member formula. For variable definitions that reference member names in the outline, the definition must follow the syntax rules of calculation member blocks. In the following example, the TaxRate variable is assigned a numeric value in the housekeeping section, but the allocation ratio is defined later in the script in a calculation member block. /* Housekeeping */ /* Declare and Define Variables */ VAR TaxRate = .0825; VAR AllocUnits; ... Units ( AllocUnits = Units / Units->"Family Total"->"Channel Total"; ) 3. Use predefined variable values in subsequent member formulas. After you define a variable, you can use the variable name wherever the variable definition is required. In the following example, taxes are calculated using the TaxRate variable, and costs are allocated using the AllocUnits variable. /* Housekeeping */ /* Declare and Define Variables */ VAR TaxRate = .0825; VAR AllocUnits; ... Units ( AllocUnits = Units / Units->"Family Total"->"Channel Total";

15-12

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations "Material Costs" = "Material Costs"->"Family Total"->"Channel Total" * AllocUnits; "Labor Costs" = "Labor Costs"->"Family Total"->"Channel Total" * AllocUnits; "Overhead Costs" = "Overhead Costs"->"Family Total"->"Channel Total" * AllocUnits; ... ) Taxes = "Profit" * TaxRate;

Hyperion Essbase Analytics 9.3.1 Bootcamp

15-13

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations

Creating Substitution Variables

1

4

3

5

6

Copyright © 2007, Oracle. All rights reserved.

Creating Substitution Variables Substitution variables act as global placeholders for information that changes regularly. For example, in a calculation script, if you want to calculate the current month, you have to update the script manually every month. With a substitution variable, such as CurMonth, set on the server, the value identified as the current month is changed each month. You use the variable name in your calculation script, and the information is dynamically updated when you run the calculation. Benefits of Substitution Variables Unlike temporary variables, you can use substitution variables not only in calculation scripts but also in most reporting interfaces. Essbase Release 9.0 and higher also supports the use of substitution variables in the following areas: • Outline member formulas • Security filters

15-14

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations • Partition definitions • MDX statements • Rules file specifications for data source name (DSN) definitions when using SQL Interface • Rules file field definitions The benefit of using substitution variables for values that change over time is that you maintain the variable in one place, rather than in multiple calculation scripts, spreadsheets, reports, formulas, and security definitions; thus, you reduce maintenance requirements. Setting up Substitution Variables You can create and set substitution variables on instances of Essbase Server by using Administration Services Console, MaxL, or ESSCMD. Set the variable at any of the following levels: • Essbase Server: provides access to the variable from all applications and databases on an Essbase Server instance • Application: provides access to the variable from all databases within the application • Database: provides access to the variable only from the specified database To create and set substitution variables in Administration Ser vices Console: 1. In Administration Services Console, right-click an Essbase Server node and select Edit > Variables. The Substitution Variables dialog box is displayed. 2. Perform one of the following actions: • For a server-level variable, do not select anything from the application and database drop-down lists. • For an application-level variable, select an application from the application dropdown list, but do not select anything from the database drop-down list. • For a database-level variable, select an application and database from the dropdown lists. 3. In the Variable text box, enter a variable name.

Hyperion Essbase Analytics 9.3.1 Bootcamp

15-15

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations 4. In the Value text box, enter a variable value. 5. Click Set. Using Substitution Variables in Calculations To reference substitution variables in calculation scripts, enter the substitution variable name prefaced with an ampersand (&) in any place that you would use a regular member name. When you execute the calculation script, Essbase automatically substitutes the substitution variable value for the substitution variable and then performs the calculation. For example, you set up substitution variables called CurMonth and NextMonth for Bigcorp Sales. You use the variables to create a calculation for the Rolling Forecast scenario that copies actual data into time period members from Jan through the current month and copies forecast data into time period members from the next month through Dec, creating a moving forecast horizon: FIX (Jan:&CurMonth) DATACOPY "Current Year" TO "Rolling Forecast"; ENDFIX FIX (&NextMonth:Dec) DATACOPY Forecast TO "Rolling Forecast"; ENDFIX

15-16

Hyperion Essbase Analytics 9.3.1 Bootcamp

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations

Summary In this lesson, you should have learned to: • Reference members explicitly and dynamically • Create calculation variables

Hyperion Essbase Analytics 9.3.1 Bootcamp

15-17

Module 4 Creating Basic Calculations Lesson 15 Referencing Members in Calculations

15-18

Hyperion Essbase Analytics 9.3.1 Bootcamp

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF