-
H Y P E R I O N E S S B A S E S Y S T E M 9
R E L E A S E 9 . 3 . 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, 9.3.1
Copyright 1996, 2007, Oracle and/or its affiliates. All rights reserved.
Authors: The Essbase writing team
The Programs (which include both the software and documentation) contain proprietary information; they are providedunder a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent, andother intellectual and industrial property laws. Reverse engineering, disassembly, or decompilation of the Programs, exceptto the extent required to obtain interoperability with other independently created software or as specified by law, isprohibited.
The information contained in this document is subject to change without notice. If you find any problems in thedocumentation, please report them to us in writing. This document is not warranted to be error-free. Except as may beexpressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced ortransmitted in any form or by any means, electronic or mechanical, for any purpose.
If the Programs are delivered to the United States Government or anyone licensing or using the Programs on behalf of theUnited States Government, the following notice is applicable:
U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered toU.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to theapplicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication,disclosure, modification, and adaptation of the Programs, including documentation and technical data, shall be subjectto the licensing restrictions set forth in the applicable Oracle license agreement, and, to the extent applicable, the additionalrights set forth in FAR 52.227-19, Commercial Computer Software--Restricted Rights (June 1987). Oracle USA, Inc., 500Oracle Parkway, Redwood City, CA 94065.
The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently dangerousapplications. It shall be the licensee's responsibility to take all appropriate fail-safe, backup, redundancy and other measuresto ensure the safe use of such applications if the Programs are used for such purposes, and we disclaim liability for anydamages caused by such use of the Programs.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of theirrespective owners.
The Programs may provide links to Web sites and access to content, products, and services from third parties. Oracle isnot responsible for the availability of, or any content provided on, third-party Web sites. You bear all risks associated withthe use of such content. If you choose to purchase any products or services from a third party, the relationship is directlybetween you and the third party. Oracle is not responsible for: (a) the quality of third-party products or services; or (b)fulfilling any of the terms of the agreement with the third party, including delivery of products or services and warrantyobligations related to purchased products or services. Oracle is not responsible for any loss or damage of any sort that youmay incur from dealing with any third party.
-
Contents
Part I. Understanding Essbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Chapter 1. Introducing Essbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Integration with Existing Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Data Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Ease of Server and Database Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Mission Critical Applications in Web-based Environments . . . . . . . . . . . . . . . . . . . . 38
Powerful Querying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Write-Back and Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Ease of Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Essbase Product Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Essbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Essbase Spreadsheet Add-in for Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Integration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Provider Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Smart View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Application Programming Interface (API) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Developer Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Data Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Smart Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Chapter 2. Quick Start for Implementing Essbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Chapter 3. Understanding Multidimensional Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
OLAP and Multidimensional Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Dimensions and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Outline Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Dimension and Member Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Standard Dimensions and Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Contents iii
-
Sparse and Dense Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Selection of Dense and Sparse Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Data Blocks and the Index System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Multiple Data Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
The Essbase Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Chapter 4. Case Study: Designing a Single-Server, Multidimensional Database . . . . . . . . . . . . . . . . . . . . . . . 67
Process for Designing a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Case Study: The Beverage Company . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Analyzing and Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Analyzing Source Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Identifying User Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Planning for Security in a Multiple User Environment . . . . . . . . . . . . . . . . . . . . . . . . 71
Creating Database Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Drafting Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Dimension and Member Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Dimension Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Member Storage Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Checklist for Dimension and Member Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Designing an Outline to Optimize Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Checking System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Loading Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Defining Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Consolidation of Dimensions and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Tags and Operators on Example Measures Dimension . . . . . . . . . . . . . . . . . . . . . . . 88
Accounts Dimension Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Formulas and Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Dynamic Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Two-Pass Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Checklist for Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Defining Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Verifying the Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Chapter 5. About Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Administration Services Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Deploying Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Starting Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
About Administration Services Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
iv Contents
-
Connecting to Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Adding Essbase Administration Servers to Enterprise View . . . . . . . . . . . . . . . . . . . . . . 100
Adding Essbase Servers to Enterprise View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
About Essbase Server Connections and Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
About Essbase Administration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Part II. Designing and Creating Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Chapter 6. Creating Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Process for Creating Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Understanding Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Understanding Database Artifacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Understanding Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Understanding Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Understanding Rules Files for Data Load and Dimension Build . . . . . . . . . . . . . . . . 107
Understanding Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Understanding Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Understanding Security Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Understanding LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Understanding Spreadsheet Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Understanding Member Select Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Understanding Triggers Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Creating Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Creating an Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Creating a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Annotating a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Using Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Rules for Setting Substitution Variable Names and Values . . . . . . . . . . . . . . . . . . . . 111
Setting Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Deleting Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Updating Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Copying Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Using Location Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Creating Location Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Editing or Deleting Location Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Chapter 7. Creating and Changing Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Process for Creating Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Creating and Editing Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Locking and Unlocking Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Contents v
-
Adding Dimensions and Members to an Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Setting Data Storage Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Positioning Dimensions and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Moving Dimensions and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Sorting Dimensions and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Verifying Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Saving Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Saving an Outline with Added Standard Dimensions . . . . . . . . . . . . . . . . . . . . . . . . 123
Saving an Outline with One or More Deleted Standard Dimensions . . . . . . . . . . . . . 123
Creating Sub-Databases Using Deleted Members . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Chapter 8. Creating and Working With Duplicate Member Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Creating Duplicate Member Names in Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Restrictions for Duplicate Member Names and Aliases in Outlines . . . . . . . . . . . . . . . . . 127
Syntax for Specifying Duplicate Member Names and Aliases . . . . . . . . . . . . . . . . . . . . . 127
Using Fully Qualified Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Qualifying Members by Differentiating Ancestor . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Using Shortcut Qualified Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Working With Duplicate Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Chapter 9. Setting Dimension and Member Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Setting Dimension Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Creating a Time Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Creating an Accounts Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Creating a Country Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Creating Currency Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Creating Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Setting Member Consolidation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Calculating Members with Different Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Determining How Members Store Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Understanding Stored Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Understanding Dynamic Calculation Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Understanding Label Only Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Understanding Shared Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Setting Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Alias Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Creating Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Creating and Managing Alias Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Setting Two-Pass Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Creating Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
vi Contents
-
Naming Generations and Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Creating UDAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Adding Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Chapter 10. Working with Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Process for Creating Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Understanding Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Understanding Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Understanding Members of Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . 154
Understanding the Rules for Base and Attribute Dimensions and Members . . . . . . . 154
Understanding the Rules for Attribute Dimension Association . . . . . . . . . . . . . . . . . 155
Understanding the Rules for Attribute Member Association . . . . . . . . . . . . . . . . . . 155
Understanding Attribute Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Comparing Attribute and Standard Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Comparing Attributes and UDAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Designing Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Using Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Using Alternative Design Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Optimizing Outline Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Building Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Setting Member Names in Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Setting Prefix and Suffix Formats for Member Names of Attribute Dimensions . . . . . 163
Setting Boolean Attribute Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Changing the Member Names in Date Attribute Dimensions . . . . . . . . . . . . . . . . . . 164
Setting Up Member Names Representing Ranges of Values . . . . . . . . . . . . . . . . . . . 165
Changing the Member Names of the Attribute Calculations Dimension . . . . . . . . . . 166
Calculating Attribute Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Understanding the Attribute Calculations Dimension . . . . . . . . . . . . . . . . . . . . . . . 167
Understanding the Default Attribute Calculations Members . . . . . . . . . . . . . . . . . . 168
Viewing an Attribute Calculation Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Accessing Attribute Calculations Members Using the Spreadsheet . . . . . . . . . . . . . . 169
Optimizing Calculation and Retrieval Performance . . . . . . . . . . . . . . . . . . . . . . . . . 169
Using Attributes in Calculation Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Understanding Attribute Calculation and Shared Members . . . . . . . . . . . . . . . . . . . 171
Chapter 11. Linking Objects to Essbase Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Understanding LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Understanding LRO Types and Data Cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Setting Up Permissions for LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Viewing and Deleting LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Contents vii
-
Exporting and Importing LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Limiting LRO File Sizes for Storage Conservation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Chapter 12. Designing and Building Currency Conversion Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
About the Sample Currency Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Structure of Currency Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Main Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Currency Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Conversion Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Building Currency Conversion Applications and Performing Conversions . . . . . . . . . . . 185
Creating Main Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Preparing Main Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Generating Currency Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Linking Main and Currency Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Converting Currency Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Tracking Currency Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Troubleshooting Currency Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Chapter 13. Designing Partitioned Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Process for Designing a Partitioned Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Understanding Essbase Partitioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
What Is a Partition? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Data Sources and Data Targets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Overlapping Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Substitution Variables in Partition Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Attributes in Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Version and Encoding Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Deciding Whether to Partition a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
When to Partition a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
When Not to Partition a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Determining Which Data to Partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Deciding Which Type of Partition to Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Replicated Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Transparent Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Linked Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Choosing a Partition Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Planning for Security for Partitioned Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Process for Setting up End User Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Process for Setting up Administrator Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Case Studies for Designing Partitioned Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
viii Contents
-
Case Study 1: Partitioning an Existing Database . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Case Study 2: Connecting Existing Related Databases . . . . . . . . . . . . . . . . . . . . . . . 216
Case Study 3: Linking Two Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Chapter 14. Creating and Maintaining Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Process for Creating Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Choosing a Partition Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Setting up the Data Source and the Data Target . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Setting the User Name and Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Defining a Partition Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Mapping Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Validating Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Saving Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Process for Maintaining Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Testing Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Synchronizing Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Populating or Updating Replicated Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Editing and Deleting Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Viewing Partition Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Troubleshooting Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Part III. Building Dimensions and Loading Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Chapter 15. Understanding Data Loading and Dimension Building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Process for Data Loading and Dimension Building . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Supported Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Items in a Data Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Situations That Do and Do Not Need a Rules File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Data Sources That Do Not Need a Rules File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Formatting Ranges of Member Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Formatting Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Security and Multiple-User Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Chapter 16. Creating Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Understanding the Process for Creating Data Load Rules Files . . . . . . . . . . . . . . . . . . . . 255
Understanding the Process for Creating Dimension Build Rules Files . . . . . . . . . . . . . . . 256
Combining Data Load and Dimension Build Rules Files . . . . . . . . . . . . . . . . . . . . . . . . 257
Creating Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Contents ix
-
Setting File Delimiters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Naming New Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Selecting a Build Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Setting and Changing Member and Dimension Properties . . . . . . . . . . . . . . . . . . . . . . . 259
Using Data Prep Editor to Set Dimension and Member Properties . . . . . . . . . . . . . . 259
Using the Data Source to Work With Member Properties . . . . . . . . . . . . . . . . . . . . 259
Setting Field Type Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
List of Field Types and Valid Build Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Rules for Assigning Field Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Setting Dimension Build Operational Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Defining Data Load Field Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Performing Operations on Records, Fields, and Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Validating, Saving, and Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Requirements for Valid Data Load Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Requirements for Valid Dimension Build Rules Files . . . . . . . . . . . . . . . . . . . . . . . . 266
Copying Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Printing Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Chapter 17. Using a Rules File to Perform Operations on Records, Fields, and Data . . . . . . . . . . . . . . . . . . . 269
Performing Operations on Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Selecting Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Rejecting Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Combining Multiple Select and Reject Criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Setting the Records Displayed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Defining Header Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Performing Operations on Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Ignoring Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Ignoring Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Arranging Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Mapping Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Changing Field Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Performing Operations on Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Defining a Column as a Data Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Adding to and Subtracting from Existing Values . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Clearing Existing Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Replacing All Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Scaling Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Flipping Field Signs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
x Contents
-
Chapter 18. Performing and Debugging Data Loads or Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Prerequisites for Data Loads and Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Performing Data Loads or Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Stopping Data Loads or Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Tips for Loading Data and Building Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Performing Deferred-Restructure Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . 283
Determining Where to Load Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Dealing with Missing Fields in a Data Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Loading a Subset of Records from a Data Source . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Saving and Reusing Data Load Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Debugging Data Loads and Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Verifying That Essbase Server Is Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Verifying That the Data Source Is Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Checking Error Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Recovering from an Essbase Server Crash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Resolving Problems with Data Loaded Incorrectly . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Creating Rejection Criteria for End of File Markers . . . . . . . . . . . . . . . . . . . . . . . . . 290
Understanding How Essbase Processes a Rules File . . . . . . . . . . . . . . . . . . . . . . . . . 290
Understanding How Essbase Processes Missing or Invalid Fields During a DataLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Chapter 19. Understanding Advanced Dimension Building Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Understanding Build Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Using Generation References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Using Level References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Using Parent-Child References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Adding a List of New Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Adding Members Based On String Matches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Adding Members as Siblings of the Lowest Level . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Adding Members to a Specified Parent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Building Attribute Dimensions and Associating Attributes . . . . . . . . . . . . . . . . . . . . . . . 306
Building Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Associating Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Updating Attribute Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Removing Attribute Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Working with Multilevel Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Working with Numeric Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Reviewing the Rules for Building Attribute and Base Dimensions . . . . . . . . . . . . . . . 315
Building Shared Members by Using a Rules File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Sharing Members at the Same Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Contents xi
-
Sharing Members at Different Generations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Sharing Non-Level 0 Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Building Multiple Roll-Ups by Using Level References . . . . . . . . . . . . . . . . . . . . . . . 324
Creating Shared Roll-Ups from Multiple Data Sources . . . . . . . . . . . . . . . . . . . . . . 325
Building Duplicate Member Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Uniquely Identifying Members Through the Rules File . . . . . . . . . . . . . . . . . . . . . . 326
Building Qualified Member Names Through the Rules file . . . . . . . . . . . . . . . . . . . 327
Part IV. Calculating Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Chapter 20. Calculating Essbase Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
About Database Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Outline Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Calculation Script Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
About Multidimensional Calculation Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Setting the Default Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Calculating Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Canceling Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Parallel and Serial Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Security Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Chapter 21. Developing Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Understanding Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Dimension and Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Constant Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Non-Constant Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Understanding Formula Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Understanding Formula Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Reviewing the Process for Creating Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Displaying Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Composing Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Basic Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Conditional Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Examples of Conditional Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Value-Related Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Member-Related Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Formulas That Use Various Types of Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Mathematical Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
xii Contents
-
Statistical Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Range Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Financial Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Date and Time Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Calculation Mode Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Checking Formula Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Estimating Disk Size for a Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Using Formulas in Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Chapter 22. Reviewing Examples of Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Calculating Period-to-Date Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Calculating Rolling Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Calculating Monthly Asset Movements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Testing for #MISSING Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Calculating an Attribute Formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Chapter 23. Defining Calculation Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Data Storage in Data Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Member Calculation Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Understanding the Effects of Member Relationships . . . . . . . . . . . . . . . . . . . . . . . . 374
Determining Member Consolidation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Ordering Dimensions in the Database Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Avoiding Forward Calculation References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Block Calculation Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Data Block Renumbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Cell Calculation Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Cell Calculation Order: Example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Cell Calculation Order: Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Cell Calculation Order: Example 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Cell Calculation Order: Example 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Cell Calculation Order for Formulas on a Dense Dimension . . . . . . . . . . . . . . . . . . 385
Calculation Passes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Calculation of Shared Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Chapter 24. Understanding Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Introducing Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Benefits of Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Intelligent Calculation and Data Block Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Limitations of Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Contents xiii
-
Using Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Turning Intelligent Calculation On and Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Using Intelligent Calculation for a Default, Full Calculation . . . . . . . . . . . . . . . . . . . 392
Using Intelligent Calculation for a Calculation Script, Partial Calculation . . . . . . . . . 393
Using the SET CLEARUPDATESTATUS Command . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Understanding SET CLEARUPDATESTATUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Choosing a SET CLEARUPDATESTATUS Setting . . . . . . . . . . . . . . . . . . . . . . . . . 394
Reviewing Examples That Use SET CLEARUPDATESTATUS . . . . . . . . . . . . . . . . . 395
Calculating Data Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Calculating Dense Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Calculating Sparse Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Handling Concurrent Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Understanding Multiple-Pass Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Reviewing Examples and Solutions for Multiple-Pass Calculations . . . . . . . . . . . . . . 398
Understanding the Effects of Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Changing Formulas and Accounts Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Using Relationship and Financial Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Restructuring Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Copying and Clearing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Converting Currencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Chapter 25. Dynamically Calculating Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Understanding Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Understanding Dynamic Calc Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Understanding Dynamic Calc and Store Members . . . . . . . . . . . . . . . . . . . . . . . . . 406
Retrieving the Parent Value of Dynamically Calculated Child Values . . . . . . . . . . . . 407
Benefitting from Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Using Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Choosing Values to Calculate Dynamically . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Dense Members and Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Sparse Members and Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Two-Pass Members and Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
Parent-Child Relationships and Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . 410
Calculation Scripts and Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
Formulas and Dynamically Calculated Members . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
Scripts and Dynamically Calculated Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Dynamically Calculated Children . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Choosing Between Dynamic Calc and Dynamic Calc and Store . . . . . . . . . . . . . . . . . . . 412
Recommendations for Sparse Dimension Members . . . . . . . . . . . . . . . . . . . . . . . . . 412
xiv Contents
-
Recommendations for Members with Specific Characteristics . . . . . . . . . . . . . . . . . 413
Recommendations for Dense Dimension Members . . . . . . . . . . . . . . . . . . . . . . . . . 413
Recommendations for Data with Many Concurrent Users . . . . . . . . . . . . . . . . . . . . 413
Understanding How Dynamic Calculation Changes Calculation Order . . . . . . . . . . . . . . 414
Calculation Order for Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
Calculation Order for Dynamically Calculating Two-Pass Members . . . . . . . . . . . . . 415
Calculation Order for Asymmetric Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Reducing the Impact on Retrieval Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Displaying a Retrieval Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Displaying a Summary of Dynamically Calculated Members . . . . . . . . . . . . . . . . . . 418
Increasing Retrieval Buffer Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Using Dynamic Calculator Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Reviewing Dynamic Calculator Cache Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Using Dynamic Calculations with Standard Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 420
Creating Dynamic Calc and Dynamic Calc and Store Members . . . . . . . . . . . . . . . . . . . 421
Restructuring Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Dynamically Calculating Data in Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Chapter 26. Calculating Time Series Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Calculating First, Last, and Average Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Specifying Accounts and Time Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Reporting the Last Value for Each Time Period . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Reporting the First Value for Each Time Period . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Reporting the Average Value for Each Time Period . . . . . . . . . . . . . . . . . . . . . . . . . 428
Skipping #MISSING and Zero Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Considering the Effects of First, Last, and Average Tags . . . . . . . . . . . . . . . . . . . . . . 428
Placing Formulas on Time and Accounts Dimensions . . . . . . . . . . . . . . . . . . . . . . . 429
Calculating Period-to-Date Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Using Dynamic Time Series Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Specifying Alias Names for Dynamic Time Series Members . . . . . . . . . . . . . . . . . . . 431
Applying Predefined Generation Names to Dynamic Time Series Members . . . . . . . 432
Retrieving Period-to-Date Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Using Dynamic Time Series Members in Transparent Partitions . . . . . . . . . . . . . . . . . . 433
Chapter 27. Developing Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Understanding Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Understanding Calculation Script Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Understanding the Rules for Calculation Script Syntax . . . . . . . . . . . . . . . . . . . . . . 437
Understanding Calculation Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Controlling the Flow of Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Contents xv
-
Declaring Data Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Specifying Global Settings for a Database Calculation . . . . . . . . . . . . . . . . . . . . . . . 440
Adding Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Planning Calculation Script Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Using Formulas in a Calculation Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Using a Calculation Script to Control Intelligent Calculation . . . . . . . . . . . . . . . . . . 444
Grouping Formulas and Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Calculating a Series of Member Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Calculating a Series of Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Using Substitution Variables in Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . 446
Clearing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Copying Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Calculating a Subset of a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Using DATAEXPORT to Export Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Enabling Calculations on Potential Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Writing Calculation Scripts for Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Controlling Calculation Order for Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Reviewing the Process for Creating Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . 455
Checking Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Saving Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Executing Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Checking the Results of Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Copying Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Chapter 28. Reviewing Examples of Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Calculating Variance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Calculating Database Subsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Loading New Budget Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Calculating Product Share and Market Share Values . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Allocating Costs Across Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Allocating Values Within or Across Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
Allocating Within a Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
Allocating Across Multiple Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Goal Seeking Using the LOOP Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Forecasting Future Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Chapter 29. Developing Custom-Defined Calculation Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Understanding Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Viewing Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Creating Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
xvi Contents
-
Understanding Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Naming Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
Creating Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
Refreshing the Catalog of Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . 478
Using Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Updating Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Copying Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Removing Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Chapter 30. Developing Custom-Defined Calculation Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Viewing Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Creating Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Understanding Java Requirements for Custom-Defined Functions . . . . . . . . . . . . . . 482
Understanding Method Requirements for Custom-Defined Functions . . . . . . . . . . . 483
Understanding Security and Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . 484
Understanding Scope and Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . 484
Naming Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Creating and Compiling the Java Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Installing Java Classes on Essbase Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Registering Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Using Registered Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
Updating Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Updating Local Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Updating Global Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Removing Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Removing Local Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Removing Global Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
Copying Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
Considering How Custom-Defined Functions Affect Performance and Memory . . . . . . . 492
Performance Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Memory Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Part V. Retrieving Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Chapter 31. Understanding Report Script Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
Working With a Simple Report Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
Understanding How Report Writer Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Report Extractor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Parts of a Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Parts of a Report Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Contents xvii
-
Planning Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Considering Security and Multiple-User Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Reviewing the Process for Creating Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Creating Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Saving Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Executing Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Copying Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Developing Free-Form Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Chapter 32. Developing Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Understanding Extraction and Formatting Commands . . . . . . . . . . . . . . . . . . . . . . . . . 507
Understanding Report Script Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Designing the Page Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Creating Page, Column, and Row Headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Modifying Headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
Creating Symmetric and Asymmetric Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
Formatting Report Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Formatting Page, Column, and Row Headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Adding Totals and Subtotals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Changing How Data Is Displayed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
Selecting and Sorting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Selecting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Selecting Members by Using Generation and Level Names . . . . . . . . . . . . . . . . . . . . 525
Selecting Duplicate Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
Selecting Dynamic Time Series Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
Selecting Members by Using Boolean Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Selecting Members by Using Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . 529
Selecting Members by Using Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
Selecting Members by Using UDAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Selecting Members by Using Wildcards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
Suppressing Shared Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
Selecting How Member Names are Displayed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
Sorting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
Restricting and Ordering Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
Understanding the Order of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
Using TOP, BOTTOM, and ORDERBY with Sorting Commands . . . . . . . . . . . . . . . 536
Using RESTRICT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
Using ORDERBY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
xviii Contents
-
Using ORDERBY with Formatting Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
Using TOP and BOTTOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
Converting Data to a Different Currency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
Generating Reports Using the C, Visual Basic, and Grid APIs . . . . . . . . . . . . . . . . . . . . . 540
Chapter 33. Writing MDX Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
Understanding Elements of a Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
Introduction to Sets and Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
Rules for Specifying Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
Introduction to Axis Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
Cube Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
Using Functions to Build Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
Working with Levels and Generations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
Using a Slicer Axis to Set Query Point-of-View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
Common Relationship Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
Performing Set Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
Creating and Using Named Sets and Calculated Members . . . . . . . . . . . . . . . . . . . . . . . 555
Calculated Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
Named Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
Using Iterative Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
Working With Missing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
Using Substitution Variables in MDX Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
Querying for Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
Querying for Member Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
The Value Type of Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
NULL Property Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
Chapter 34. Copying Data Subsets and Exporting Data to Other Programs . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Process for Creating a Database Subset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Create an Application and Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
Copy the Outline File from the Source Database . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
Create an Output File Containing the Required Data Subset . . . . . . . . . . . . . . . . . . 567
Load the Output File Into the New Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
Exporting Data to be Input to Other Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
Exporting Text Data Using Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
Exporting Text Data Using Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
Chapter 35. Mining an Essbase Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
Understanding Data Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
Essbase Data Mining Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
Contents xix
-
Essbase Data Mining Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
Creating Data Mining Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
Applying the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
Viewing Data Mining Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Scoring the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Accessing Data Mining Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Built-in Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Creating Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Built-In Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Creating Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
Importing and Exporting Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
Chapter 36. Retrieving Relational Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
Understanding Hybrid Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
Hybrid Analysis Relational Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
Data Retrieval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
Hybrid Analysis Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
Defining Hybrid Analysis Relational Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
Retrieving Hybrid Analysis Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
Using Outline Editor with Hybrid Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
Managing Data Consistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
Managing Security in Hybrid Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
Using Advanced Relational Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
Advanced Relational Access Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
Essbase Databases and Advanced Relational Access . . . . . . . . . . . . . . . . . . . . . . . . . 598
Different Values Loaded in Ragged Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
Working With SAP R/3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
Part VI. Designing and Managing a Security System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
Chapter 37. User Management and Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
About Using Shared Services With Essbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
Essbase User Roles For Shared Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
Essbase Projects, Applications, and Databases in Shared Services . . . . . . . . . . . . . . . . . . 606
Essbase Users and Groups in Shared Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
Assigning Access to Users in Shared Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
Launching and Logging In to User Management Console . . . . . . . . . . . . . . . . . . . . 608
Assigning Server Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
xx Contents
-
Assigning Application Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
Assigning Database Calculation and Filter Access . . . . . . . . . . . . . . . . . . . . . . . . . . 610
Assigning Application Access Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
Synchronizing Security Information Between Shared Services and Essbase . . . . . . . . . . . 612
User Synchronization Using CSSSYNCLEVEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
User Refresh Using CSSREFRESHLEVEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Role Requirements For Refreshing Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Scheduling Security Refreshes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Migrating Essbase to Shared Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
Application and Database Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
User and Group Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
Continuing to Use Essbase in Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
Understanding Native Security Mode in Essbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
Creating Users and Groups in Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
Creating Users in Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
Creating Groups in Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
Granting Permissions to Users and Groups in Native Security Mode . . . . . . . . . . . . . . . 622
Assigning User and Group Types in Native Security Mode . . . . . . . . . . . . . . . . . . . 623
Granting Application and Database Access to Users and Groups in Native SecurityMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624
Granting Designer Permissions to Users and Groups in Native Security Mode . . . . . 625
Managing Users and Groups in Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . 625
Viewing Users and Groups in Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . 626
Editing Users in Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
Editing Groups in Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
Copying an Existing Security Profile in Native Security Mode . . . . . . . . . . . . . . . . . 626
Deleting Users and Groups in Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . 627
Renaming Users and Groups in Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . 627
Using the Hyperion Security Platform for External Authentication in Native SecurityMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
Managing Global Security for Applications and Databases in Native Security Mode . . . . . 629
Defining Application Settings in Native Security Mode . . . . . . . . . . . . . . . . . . . . . . 629
Setting General Application Connection Options in Native Security Mode . . . . . . . . 629
Setting Application and Database Minimum Permissions in Native SecurityMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
Managing User Activity on the Essbase Server in Native Security Mode . . . . . . . . . . . . . 634
Disconnecting Users and Terminating Requests in Native Security Mode . . . . . . . . . 634
Managing User Locks in Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
Managing Passwords and User Names in Native Security Mode . . . . . . . . . . . . . . . . 635
Propagating Password Changes in Native Security Mode . . . . . . . . . . . . . . . . . . . . . 635
Contents xxi
-
Viewing and Activating Disabled User Names in Native Security Mode . . . . . . . . . . 636
Understanding the essbase.sec Security File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
Security File Backups in Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
Security File Backups in Shared Services Security Mode . . . . . . . . . . . . . . . . . . . . . . 637
Security Information Recovery in Shared Services Security Mode . . . . . . . . . . . . . . . 638
Backing Up the Security File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
Changing Security Backup File Comparison Frequency . . . . . . . . . . . . . . . . . . . . . . 639
Managing Security-File Fragmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
Exporting the Security File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .