1182
ORACLE® ESSBASE RELEASE 11.1.1 DATABASE ADMINISTRATOR’S GUIDE

Oracle Essbase Database Administrator's Guide

  • Upload
    buitruc

  • View
    270

  • Download
    1

Embed Size (px)

Citation preview

  • O R A C L E E S S B A S E

    R E L E A S E 1 1 . 1 . 1

    D A T A B A S E A D M I N I S T R A T O R S G U I D E

  • Essbase Database Administrators Guide, 11.1.1

    Copyright 1996, 2008, Oracle and/or its affiliates. All rights reserved.

    Authors: EPM Information Development Team

    This software and related documentation are provided under a license agreement containing restrictions on use anddisclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement orallowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit,perform, publish or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilationof this software, unless required by law for interoperability, is prohibited.

    The information contained herein is subject to change without notice and is not warranted to be error-free. If you findany errors, please report them to us in writing.

    If this software or related documentation is delivered to the U.S. Government or anyone licensing it on behalf of the U.S.Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS: Programs, software, databases, and relateddocumentation and technical data delivered to U.S. Government customers are "commercial computer software" or"commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplementalregulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions andlicense terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Governmentcontract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

    This software is developed for general use in a variety of information management applications. It is not developed orintended for use in any inherently dangerous applications, including applications which may create a risk of personalinjury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe,backup, redundancy and other measures to ensure the safe use of this software. Oracle Corporation and its affiliates disclaimany liability for any damages caused by use of this software in dangerous applications.

    This software and documentation may provide access to or information on content, products and services from thirdparties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind withrespect to third party content, products and services. Oracle Corporation and its affiliates will not be responsible for anyloss, costs, or damages incurred due to your access to or use of third party content, products or services.

  • Contents

    Part I. Understanding Essbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    Chapter 1. Introducing Essbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    Essbase Product Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    Essbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    Sample Essbase Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    Essbase Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    Spreadsheet Add-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    Visual Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    Data Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    Integration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    Provider Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    Smart View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    Application Programming Interface (API) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    Developer Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    Smart Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    EPM System Lifecycle Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    Integration with Existing Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    Data Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    Ease of Server and Database Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    Mission Critical Applications in Web-based Environments . . . . . . . . . . . . . . . . . . . . 55

    Powerful Querying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    Write-Back and Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    Ease of Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    Contents iii

  • Chapter 2. Quick Start for Implementing Essbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    Chapter 3. Understanding Multidimensional Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

    OLAP and Multidimensional Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

    Dimensions and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    Outline Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

    Dimension and Member Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

    Parents, Children, and Siblings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    Descendants and Ancestors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    Roots and Leaves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    Generations and Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    Standard Dimensions and Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    Sparse and Dense Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

    Selection of Dense and Sparse Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

    Dense-Sparse Configuration for Sample.Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

    Dense and Sparse Selection Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    Data Blocks and the Index System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    Multiple Data Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

    The Essbase Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

    Chapter 4. Case Study: Designing a Single-Server, Multidimensional Database . . . . . . . . . . . . . . . . . . . . . . . 79

    Process for Designing a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

    Case Study: The Beverage Company . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    Analyzing and Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    Analyzing Source Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

    Identifying User Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

    Planning for Security in a Multiple User Environment . . . . . . . . . . . . . . . . . . . . . . . . 83

    Creating Database Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

    Identifying Analysis Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

    Determining Dimensions and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    Analyzing Database Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

    Drafting Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

    Dimension and Member Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    Dimension Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    Member Storage Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

    Checklist for Dimension and Member Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

    Designing an Outline to Optimize Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

    Optimizing Query Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

    iv Contents

  • Optimizing Calculation Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

    Meeting the Needs of Both Calculation and Retrieval . . . . . . . . . . . . . . . . . . . . . 96

    Checking System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

    Loading Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

    Defining Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

    Consolidation of Dimensions and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

    Effect of Position and Operator on Consolidation . . . . . . . . . . . . . . . . . . . . . . . . 99

    Consolidation of Shared Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

    Checklist for Consolidation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

    Tags and Operators on Example Measures Dimension . . . . . . . . . . . . . . . . . . . . . . 100

    Accounts Dimension Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

    Time Balance Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

    Variance Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

    Formulas and Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

    Dynamic Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

    Two-Pass Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

    Checklist for Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

    Defining Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

    Verifying the Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

    Chapter 5. About Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

    Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

    Administration Services Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

    Deploying Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

    Starting Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

    About Administration Services Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

    Connecting to Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

    Adding Essbase Administration Servers to Enterprise View . . . . . . . . . . . . . . . . . . . . . . 111

    Adding Essbase Servers to Enterprise View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

    About Essbase Server Connections and Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

    About Essbase Administration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

    Part II. Designing and Creating Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

    Chapter 6. Creating Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

    Process for Creating Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

    Understanding Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

    Understanding Database Artifacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

    Understanding Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

    Understanding Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

    Contents v

  • Understanding Rules Files for Data Load and Dimension Build . . . . . . . . . . . . . . . . 117

    Understanding Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

    Understanding Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

    Understanding Security Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

    Understanding LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

    Understanding Spreadsheet Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

    Understanding Member Select Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

    Understanding Triggers Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    Creating Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    Creating an Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    Creating a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    Annotating a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

    Using Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

    Rules for Setting Substitution Variable Names and Values . . . . . . . . . . . . . . . . . . . . 121

    Setting Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

    Deleting Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

    Updating Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

    Copying Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

    Using Location Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

    Creating Location Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

    Editing or Deleting Location Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

    Chapter 7. Creating and Changing Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

    Process for Creating Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

    Creating and Editing Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

    Locking and Unlocking Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

    Adding Dimensions and Members to an Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

    Setting Data Storage Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

    Positioning Dimensions and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

    Moving Dimensions and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

    Sorting Dimensions and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

    Verifying Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

    Saving Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

    Saving an Outline with Added Standard Dimensions . . . . . . . . . . . . . . . . . . . . . . . . 133

    Saving an Outline with One or More Deleted Standard Dimensions . . . . . . . . . . . . . 133

    Creating Sub-Databases Using Deleted Members . . . . . . . . . . . . . . . . . . . . . . . . . . 133

    Chapter 8. Creating and Working With Duplicate Member Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

    Creating Duplicate Member Names in Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

    Restrictions for Duplicate Member Names and Aliases in Outlines . . . . . . . . . . . . . . . . . 137

    vi Contents

  • Syntax for Specifying Duplicate Member Names and Aliases . . . . . . . . . . . . . . . . . . . . . 137

    Using Fully Qualified Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

    Qualifying Members by Differentiating Ancestor . . . . . . . . . . . . . . . . . . . . . . . . . . 138

    Using Shortcut Qualified Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

    Working with Duplicate Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

    Chapter 9. Setting Dimension and Member Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

    Setting Dimension Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

    Creating a Time Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

    Creating an Accounts Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

    Setting Time Balance Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

    Setting Skip Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

    Setting Variance Reporting Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

    Setting Essbase Currency Conversion Properties . . . . . . . . . . . . . . . . . . . . . . . . 145

    Creating a Country Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

    Creating Currency Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

    Creating Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

    Setting Member Consolidation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

    Calculating Members with Different Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

    Determining How Members Store Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

    Understanding Stored Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

    Understanding Dynamic Calculation Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

    Understanding Label Only Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

    Understanding Shared Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

    Understanding the Rules for Shared Members . . . . . . . . . . . . . . . . . . . . . . . . . 149

    Understanding Shared Member Retrieval During Drill-Down . . . . . . . . . . . . . . 150

    Understanding Implied Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

    Setting Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

    Alias Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

    Creating Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

    Creating and Managing Alias Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

    Creating an Alias Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

    Setting an Alias Table as Active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

    Copying an Alias Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

    Renaming an Alias Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

    Clearing and Deleting Alias Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

    Importing and Exporting Alias Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

    Setting Two-Pass Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

    Creating Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

    Contents vii

  • Naming Generations and Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

    Creating UDAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

    Adding Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

    Chapter 10. Working with Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

    Process for Creating Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

    Understanding Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

    Understanding Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

    Understanding Members of Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . 162

    Understanding the Rules for Base and Attribute Dimensions and Members . . . . . . . 162

    Understanding the Rules for Attribute Dimension Association . . . . . . . . . . . . . . . . . 163

    Understanding the Rules for Attribute Member Association . . . . . . . . . . . . . . . . . . 163

    Understanding Attribute Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

    Comparing Attribute and Standard Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

    Comparing Attributes and UDAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

    Designing Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

    Using Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

    Using Alternative Design Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

    Optimizing Outline Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

    Building Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

    Setting Member Names in Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

    Setting Prefix and Suffix Formats for Member Names of Attribute Dimensions . . . . . 171

    Setting Boolean Attribute Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

    Changing the Member Names in Date Attribute Dimensions . . . . . . . . . . . . . . . . . . 172

    Setting Up Member Names Representing Ranges of Values . . . . . . . . . . . . . . . . . . . 172

    Changing the Member Names of the Attribute Calculations Dimension . . . . . . . . . . 173

    Calculating Attribute Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

    Understanding the Attribute Calculations Dimension . . . . . . . . . . . . . . . . . . . . . . . 174

    Understanding the Default Attribute Calculations Members . . . . . . . . . . . . . . . . . . 175

    Viewing an Attribute Calculation Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

    Accessing Attribute Calculations Members Using the Spreadsheet . . . . . . . . . . . . . . 177

    Optimizing Calculation and Retrieval Performance . . . . . . . . . . . . . . . . . . . . . . . . . 177

    Using Attributes in Calculation Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

    Understanding Attribute Calculation and Shared Members . . . . . . . . . . . . . . . . . . . 178

    Varying Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

    About Varying Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

    Implementing Varying Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

    Functions Supporting Varying Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

    Limitations of Varying Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

    viii Contents

  • Chapter 11. Linking Objects to Essbase Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

    Understanding LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

    Understanding LRO Types and Data Cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

    Setting Up Permissions for LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

    Viewing and Deleting LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

    Exporting and Importing LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

    Limiting LRO File Sizes for Storage Conservation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

    Chapter 12. Working with Typed Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

    Working with Text Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

    Text Measures Overview and Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

    Text List Objects and Text List Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

    Working with Date Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

    Date Measures Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

    Implementing Date Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

    Functions Supporting Date Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

    Performing Database Operations on Text and Date Measures . . . . . . . . . . . . . . . . . . . . 192

    Loading, Clearing, and Exporting Text and Date Measures . . . . . . . . . . . . . . . . . . . 192

    Aggregating Text and Date Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

    Retrieving Data With Text and Date Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

    Limitations of Text and Date Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

    Working with Format Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

    Overview of Format Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

    Implementing Format Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

    MDX Format Directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

    Functions Supporting Format Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

    Limitations of Format Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

    Chapter 13. Designing and Building Currency Conversion Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

    About Currency Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

    About the Sample Currency Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

    Structure of Currency Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

    Main Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

    Currency Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

    Conversion Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

    Building Currency Conversion Applications and Performing Conversions . . . . . . . . . . . 203

    Creating Main Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

    Preparing Main Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

    Generating Currency Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

    Linking Main and Currency Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

    Contents ix

  • Converting Currency Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

    Overwriting Local Values with Converted Values . . . . . . . . . . . . . . . . . . . . . . . 205

    Keeping Local and Converted Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

    Calculating Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

    Converting Currencies in Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

    Tracking Currency Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

    Reasons to Turn Off CCTRACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

    Methods for Turning Off CCTRACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

    Troubleshooting Currency Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

    Chapter 14. Designing Partitioned Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

    Understanding Essbase Partitioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

    Partition Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

    Parts of a Partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

    Data Sources and Data Targets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

    Overlapping Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

    Substitution Variables in Partition Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

    Attributes in Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

    Version and Encoding Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

    Partition Design Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

    Benefits of Partitioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

    Partitioning Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

    Guidelines for Partitioning a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

    Guidelines for Partitioning Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

    Security for Partitioned Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

    Setting up End-User Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

    Setting up Administrator Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

    Using Backup and Restore and Transaction Logging and Replay with PartitionedDatabases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

    Replicated Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

    Rules for Replicated Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

    Advantages of Replicated Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

    Disadvantages of Replicated Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

    Performance Considerations for Replicated Partitions . . . . . . . . . . . . . . . . . . . . . . . 222

    Replicated Partitions and Port Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

    Transparent Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

    Rules for Transparent Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

    Advantages of Transparent Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

    Disadvantages of Transparent Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

    Performance Considerations for Transparent Partitions . . . . . . . . . . . . . . . . . . . . . 227

    x Contents

  • Calculating Transparent Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

    Performance Considerations for Transparent Partition Calculations . . . . . . . . . . . . 228

    Transparent Partitions and Member Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

    Transparent Partitions and Port Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

    Linked Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

    Advantages of Linked Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

    Disadvantages of Linked Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

    Drill Across and Linked Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

    Linked Partitions and Port Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

    Case Studies for Designing Partitioned Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

    Case Study 1: Partitioning an Existing Database . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

    Case Study 2: Connecting Existing Related Databases . . . . . . . . . . . . . . . . . . . . . . . 234

    Case Study 3: Linking Two Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

    Chapter 15. Creating and Maintaining Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

    Process for Creating Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

    Choosing a Partition Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

    Setting up the Data Source and the Data Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

    Setting the User Name and Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

    Defining a Partition Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

    Mapping Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

    Mapping Members with Different Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

    Mapping Data Cubes with Extra Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

    Mapping Shared Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242

    Importing Member Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242

    Mapping Attributes Associated with Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

    Creating Advanced Area-Specific Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

    Validating Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

    Saving Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

    Process for Maintaining Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

    Testing Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

    Synchronizing Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

    Setting the Source Outline and the Target Outline . . . . . . . . . . . . . . . . . . . . . . . . . . 248

    Performing Block Storage Outline Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . 249

    Tracking Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

    Updating Shared Members During Outline Synchronization . . . . . . . . . . . . . . . . . . 250

    Populating or Updating Replicated Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

    Editing and Deleting Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

    Viewing Partition Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

    Contents xi

  • Troubleshooting Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

    Part III. Building Dimensions and Loading Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

    Chapter 16. Understanding Data Loading and Dimension Building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

    Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

    Process for Data Loading and Dimension Building . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

    Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

    Supported Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

    Items in a Data Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259

    Valid Dimension Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

    Valid Member Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

    Valid Data Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

    Valid Delimiters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

    Valid Formatting Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

    Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

    Situations that Do and Do Not Need a Rules File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

    Data Sources that Do Not Need a Rules File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

    Formatting Ranges of Member Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

    Setting Ranges Automatically . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

    Handling Out of Range Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

    Interpreting Duplicate Members in a Range . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

    Reading Multiple Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

    Formatting Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

    Symmetric Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

    Asymmetric Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

    Security and Multiple-User Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

    Chapter 17. Working with Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

    Process for Creating Data Load Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

    Process for Creating Dimension Build Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

    Combining Data Load and Dimension Build Rules Files . . . . . . . . . . . . . . . . . . . . . . . . 272

    Creating Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

    Setting File Delimiters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

    Naming New Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

    Selecting a Build Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

    Setting and Changing Member and Dimension Properties . . . . . . . . . . . . . . . . . . . . . . . 275

    Using Data Prep Editor to Set Dimension and Member Properties . . . . . . . . . . . . . . 275

    Using the Data Source to Work with Member Properties . . . . . . . . . . . . . . . . . . . . . 275

    Setting Field Type Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

    xii Contents

  • Field Types and Valid Build Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

    Rules for Assigning Field Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

    Setting Dimension Build Operational Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

    Defining Data Load Field Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

    Performing Operations on Records, Fields, and Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

    Validating, Saving, and Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

    Requirements for Valid Data Load Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

    Requirements for Valid Dimension Build Rules Files . . . . . . . . . . . . . . . . . . . . . . . . 282

    Copying Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

    Printing Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

    Chapter 18. Using a Rules File to Perform Operations on Records, Fields, and Data . . . . . . . . . . . . . . . . . . . 285

    Performing Operations on Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285

    Selecting Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285

    Rejecting Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285

    Combining Multiple Select and Reject Criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

    Setting the Records Displayed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

    Defining Header Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

    Data Source Headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

    Valid Data Source Header Field Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

    Performing Operations on Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

    Ignoring Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

    Ignoring Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

    Arranging Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

    Moving Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

    Joining Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

    Creating a Field by Joining Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

    Copying Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

    Splitting Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

    Creating Additional Text Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

    Undoing Field Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

    Mapping Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

    Changing Field Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

    Replacing Text Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

    Replacing an Empty Field with Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

    Changing the Case of Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

    Dropping Leading and Trailing Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

    Converting Spaces to Underscores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

    Adding Prefixes or Suffixes to Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

    Contents xiii

  • Performing Operations on Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

    Defining a Column as a Data Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

    Adding to and Subtracting from Existing Values . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

    Clearing Existing Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294

    Replacing All Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295

    Scaling Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295

    Flipping Field Signs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295

    Chapter 19. Performing and Debugging Data Loads or Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . 297

    Prerequisites for Data Loads and Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

    Performing Data Loads or Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

    Stopping Data Loads or Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

    Tips for Loading Data and Building Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

    Performing Deferred-Restructure Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . 299

    Determining Where to Load Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

    Dealing with Missing Fields in a Data Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

    Loading a Subset of Records from a Data Source . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

    Saving and Reusing Data Load Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302

    Debugging Data Loads and Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302

    Verifying that Essbase Server Is Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302

    Verifying that the Data Source Is Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302

    Checking Error Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

    Recovering from an Essbase Server Crash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304

    Resolving Problems with Data Loaded Incorrectly . . . . . . . . . . . . . . . . . . . . . . . . . . 304

    Creating Rejection Criteria for End of File Markers . . . . . . . . . . . . . . . . . . . . . . . . . 305

    Understanding How Essbase Processes a Rules File . . . . . . . . . . . . . . . . . . . . . . . . . 306

    Understanding How Essbase Processes Missing or Invalid Fields During a DataLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

    Missing Dimension or Member Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

    Unknown Member Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

    Invalid Data Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

    Chapter 20. Understanding Advanced Dimension Building Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309

    Understanding Build Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309

    Using Generation References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310

    Using Level References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312

    Using Parent-Child References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

    Adding a List of New Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316

    Adding Members Based On String Matches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316

    Adding Members as Siblings of the Lowest Level . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

    xiv Contents

  • Adding Members to a Specified Parent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318

    Building Attribute Dimensions and Associating Attributes . . . . . . . . . . . . . . . . . . . . . . . 319

    Building Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320

    Associating Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

    Updating Attribute Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

    Removing Attribute Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

    Working with Multilevel Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

    Working with Numeric Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

    Building Attribute Dimensions that Accommodate Ranges . . . . . . . . . . . . . . . . 325

    Associating Base Dimension Members with Their Range Attributes . . . . . . . . . . 326

    Ensuring the Validity of Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

    Reviewing the Rules for Building Attribute and Base Dimensions . . . . . . . . . . . . . . . 328

    Building Shared Members by Using a Rules File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330

    Sharing Members at the Same Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330

    Using Generation References to Create Same Generation Shared Members . . . . . 331

    Using Level References to Create Same Generation Shared Members . . . . . . . . . 332

    Using Parent-Child References to Create Same Generation Shared Members . . . 333

    Sharing Members at Different Generations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334

    Using Level References to Create Different Generation Shared Members . . . . . . 334

    Using Parent-Child References to Create Different Generation SharedMembers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

    Sharing Non-Level 0 Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

    Using Level References to Create Non-Level 0 Shared Members . . . . . . . . . . . . . 336

    Using Parent-Child References to Create Non-Level 0 Shared Members . . . . . . . 337

    Building Multiple Roll-Ups by Using Level References . . . . . . . . . . . . . . . . . . . . . . . 337

    Creating Shared Roll-Ups from Multiple Data Sources . . . . . . . . . . . . . . . . . . . . . . 338

    Building Duplicate Member Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339

    Uniquely Identifying Members Through the Rules File . . . . . . . . . . . . . . . . . . . . . . 340

    Building Qualified Member Names Through the Rules File . . . . . . . . . . . . . . . . . . . 340

    Part IV. Calculating Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343

    Chapter 21. Calculating Essbase Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345

    About Database Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345

    Outline Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

    Calculation Script Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

    About Multidimensional Calculation Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

    Setting the Default Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

    Calculating Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

    Canceling Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

    Contents xv

  • Parallel and Serial Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

    Security Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

    Chapter 22. Developing Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

    Understanding Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

    Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354

    Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354

    Dimension and Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

    Constant Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

    Nonconstant Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

    Understanding Formula Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357

    Understanding Formula Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357

    Reviewing the Process for Creating Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

    Displaying Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

    Composing Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

    Basic Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

    Conditional Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

    Examples of Conditional Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

    Value-Related Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363

    Using Interdependent Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363

    Calculating Variances or Percentage Variances Between Actual and BudgetValues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364

    Allocating Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365

    Forecasting Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366

    Using Member Relationships to Look Up Values . . . . . . . . . . . . . . . . . . . . . . . . 366

    Using Substitution Variables in Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

    Using Environment Variables in Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368

    Member-Related Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368

    Specifying Member Lists and Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368

    Generating Member Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369

    Manipulating Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371

    Working with Member Combinations Across Dimensions . . . . . . . . . . . . . . . . . 371

    Formulas That Use Various Types of Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

    Mathematical Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

    Statistical Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373

    Range Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373

    Financial Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

    Date and Time Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375

    Calculation Mode Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375

    Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376

    xvi Contents

  • Checking Formula Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376

    Estimating Disk Size for a Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

    Using Formulas in Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

    Chapter 23. Reviewing Examples of Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

    Calculating Period-to-Date Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

    Calculating Rolling Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380

    Calculating Monthly Asset Movements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381

    Testing for #MISSING Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

    Calculating an Attribute Formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

    Chapter 24. Defining Calculation Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

    Data Storage in Data Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

    Member Calculation Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387

    Understanding the Effects of Member Relationships . . . . . . . . . . . . . . . . . . . . . . . . 388

    Determining Member Consolidation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388

    Ordering Dimensions in the Database Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

    Placing Formulas on Members in the Database Outline . . . . . . . . . . . . . . . . . . . 389

    Using the Calculation Operators *, /, and % . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

    Avoiding Forward Calculation References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390

    Block Calculation Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392

    Data Block Renumbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394

    Cell Calculation Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394

    Cell Calculation Order: Example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395

    Cell Calculation Order: Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396

    Cell Calculation Order: Example 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397

    Cell Calculation Order: Example 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

    Cell Calculation Order for Formulas on a Dense Dimension . . . . . . . . . . . . . . . . . . 399

    Calculation Passes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399

    Calculation of Shared Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401

    Chapter 25. Understanding Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

    Introducing Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

    Benefits of Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

    Intelligent Calculation and Data Block Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404

    Marking Blocks as Clean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404

    Marking Blocks as Dirty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

    Maintaining Clean and Dirty Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

    Limitations of Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

    Using Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406

    Contents xvii

  • Turning Intelligent Calculation On and Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406

    Using Intelligent Calculation for a Default, Full Calculation . . . . . . . . . . . . . . . . . . . 406

    Calculating for the First Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406

    Recalculating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407

    Using Intelligent Calculation for a Calculation Script, Partial Calculation . . . . . . . . . 407

    Using the SET CLEARUPDATESTATUS Command . . . . . . . . . . . . . . . . . . . . . . . . . . . 407

    Understanding SET CLEARUPDATESTATUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407

    Choosing a SET CLEARUPDATESTATUS Setting . . . . . . . . . . . . . . . . . . . . . . . . . 408

    Reviewing Examples That Use SET CLEARUPDATESTATUS . . . . . . . . . . . . . . . . . 408

    Example 1: CLEARUPDATESTATUS AFTER . . . . . . . . . . . . . . . . . . . . . . . . . . 408

    Example 2: CLEARUPDATESTATUS ONLY . . . . . . . . . . . . . . . . . . . . . . . . . . 409

    Example 3: CLEARUPDATESTATUS OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409

    Calculating Data Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409

    Calculating Dense Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410

    Calculating Sparse Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410

    Level 0 Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410

    Upper-Level Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411

    Unnecessary Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411

    Handling Concurrent Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411

    Understanding Multiple-Pass Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412

    Reviewing Examples and Solutions for Multiple-Pass Calculations . . . . . . . . . . . . . . 412

    Example 1: Intelligent Calculation and Two-Pass . . . . . . . . . . . . . . . . . . . . . . . 412

    Example 2: SET CLEARUPDATESTATUS and FIX . . . . . . . . . . . . . . . . . . . . . . 412

    Example 3: SET CLEARUPDATESTATUS and Two CALC DIMCommands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413

    Example 4: Two Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414

    Understanding the Effects of Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . 415

    Changing Formulas and Accounts Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415

    Using Relationship and Financial Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415

    Restructuring Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416

    Copying and Clearing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416

    Converting Currencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416

    Chapter 26. Dynamically Calculating Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417

    Understanding Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417

    Understanding Dynamic Calc Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418

    Understanding Dynamic Calc and Store Members . . . . . . . . . . . . . . . . . . . . . . . . . 418

    Recalculation of Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418

    Effect of Updated Values on Recalculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418

    Retrieving the Parent Value of Dynamically Calculated Child Values . . . . . . . . . . . . 419

    xviii Contents

  • Benefitting from Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419

    Using Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

    Choosing Values to Calculate Dynamically . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

    Dense Members and Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

    Sparse Members and Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421

    Two-Pass Members and Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421

    Parent-Child Relationships and Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . 421

    Calculation Scripts and Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421

    Formulas and Dynamically Calculated Members . . . . . . . . . . . . . . . . . . . . . . . . . . . 422

    Scripts and Dynamically Calculated Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422

    Dynamically Calculated Children . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423

    Choosing Between Dynamic Calc and Dynamic Calc and Store . . . . . . . . . . . . . . . . . . . 423

    Recommendations for Sparse Dimension Members . . . . . . . . . . . . . . . . . . . . . . . . . 423

    Recommendations for Members with Specific Characteristics . . . . . . . . . . . . . . . . . 424

    Recommendations for Dense Dimension Members . . . . . . . . . . . . . . . . . . . . . . . . . 424

    Recommendations for Data with Many Concurrent Users . . . . . . . . . . . . . . . . . . . . 424

    Understanding How Dynamic Calculation Changes Calculation Order . . . . . . . . . . . . . . 425

    Calculation Order for Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425

    Calculation Order for Dynamically Calculating Two-Pass Members . . . . . . . . . . . . . 426

    Calculation Order for Asymmetric Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426

    Reducing the Impact on Retrieval Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428

    Displaying a Retrieval Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428

    Displaying a Summary of Dynamically Calculated Members . . . . . . . . . . . . . . . . . . 429

    Increasing Retrieval Buffer Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429

    Using Dynamic Calculator Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430

    Reviewing Dynamic Calculator Cache Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430

    Using Dynamic Calculations with Standard Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 431

    Creating Dynamic Calc and Dynamic Calc and Store Members . . . . . . . . . . . . . . . . . . . 432

    Restructuring Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

    Dynamically Calculating Data in Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433

    Chapter 27. Calculating Time Series Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435

    Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435

    Calculating First, Last, and Average Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435

    Specifying Accounts and Time Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436

    Reporting the Last Value for Each Time Period . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436

    Reporting the First Value for Each Time Period . . . . . . . . . . . . . . . . . . . . . . . . . . . 437

    Reporting the Average Value for Each Time Period . . . . . . . . . . . . . . . . . . . . . . . . . 438

    Skipping #MISSING and Zero Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438

    Contents xix

  • Considering the Effects of First, Last, and Average Tags . . . . . . . . . . . . . . . . . . . . . . 438

    Placing Formulas on Time and Accounts Dimensions . . . . . . . . . . . . . . . . . . . . . . . 439

    Calculating Period-to-Date Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439

    Using Dynamic Time Series Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439

    Enabling Dynamic Time Series Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441

    Disabling Dynamic Time Series Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441

    Specifying Alias Names for Dynamic Time Series Members . . . . . . . . . . . . . . . . . . . 441

    Applying Predefined Generation Names to Dynamic Time Series Members . . . . . . . 442

    Retrieving Period-to-Date Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443

    Using Dynamic Time Series Members in Transparent Partitions . . . . . . . . . . . . . . . . . . 443

    Chapter 28. Developing Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445

    Understanding Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445

    Understanding Calculation Script Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446

    Understanding the Rules for Calculation Script Syntax . . . . . . . . . . . . . . . . . . . . . . 447

    Understanding Calculation Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449

    Controlling the Flow of Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449

    Declaring Data Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450

    Specifying Global Settings for a Database Calculation . . . . . . . . . . . . . . . . . . . . . . . 450

    Adding Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452

    Planning Calculation Script Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452

    Using Formulas in a Calculation Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452

    Basic Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453

    Conditional Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453

    Interdependent Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454

    Using a Calculation Script to Control Intelligent Calculation . . . . . . . . . . . . . . . . . . 454

    Grouping Formulas and Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454

    Calculating a Series of Member Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454

    Calculating a Series of Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455

    Using Substitution Variables in Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . 455

    Using Environment Variables in Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . 456

    Clearing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458

    Copying Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459

    Calculating a Subset of a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459

    Calculating Lists of Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459

    Using the FIX Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460

    Using the Exclude Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461

    Using DATAEXPORT to Export Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461

    Enabling Calculations on Potential Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464

    xx Contents

  • Using DATACOPY to Copy Existing Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . 464

    Using SET CREATENONMISSINGBLK to Calculate All Potential Blocks . . . . . . 465

    Writing Calculation Scripts for Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466

    Controlling Calculation Order for Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466

    Reviewing the Process for Creating Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . 467

    Checking Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468

    Saving Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468

    Executing Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469

    Checking the Results of Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469

    Copying Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470

    Chapter 29. Reviewing Examples of Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

    Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

    Calculating Variance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

    Calculating Database Subsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472

    Loading New Budget Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473

    Calculating Product Share and Market Share Values . . . . . . . . . . . . . . . . . . . . . . . . . . . 474

    Allocating Costs Across Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475

    Allocating Values Within a Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476

    Allocating Values Across Multiple Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478

    Goal-Seeking Using the LOOP Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481

    Forecasting Future Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484

    Chapter 30. Developing Custom-Defined Calculation Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487

    Understanding Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487

    Naming Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487

    Creating Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488

    Using Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489

    Viewing Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489

    Updating Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489

    Copying Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490

    Removing Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490

    Refreshing the Catalog of Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491

    Chapter 31. Developing Custom-Defined Calculation Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493

    Process for Creating Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493

    Custom-Defined Function Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494

    Creating and Compiling a Java Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495

    Installing Java Classes on Essbase Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496

    Registering Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497

    Contents xxi

  • Using Registered Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498

    Updating Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498

    Viewing Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499

    Removing Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500

    Copying Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501

    Performance Considerations for Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . 501

    Memory Considerations for Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . 501

    Part V. Retrieving Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503

    Chapter 32. Understanding Report Script Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505

    Working With a Simple Report Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505

    Understanding How Report Writer Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507

    Report Extractor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508

    Parts of a Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508

    Parts of a Report Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510

    Planning Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510

    Considering Security and Multiple-User Issues . . .