Hyperion Essbase 6 - 5 Bootcamp - Basic Training
Hyperion Essbase 6 - 5 Bootcamp - Basic Training
Hyperion Essbase 6 - 5 Bootcamp - Basic Training
2002 Hyperion Solutions Corporation. All rights reserved. Hyperion, Essbase, Hyperion Analyst, Hyperion Enterprise, Hyperion Pillar and Hyperion Reporting are registered trademarks of Hyperion Solutions Corporation. Hyperion Solutions, the Hyperion H logo, whats going on, Hyperion Activity Based Management, Hyperion Allocations Manager, Hyperion Analyzer, Hyperion Application Link, Hyperion Customer Interaction Center, Hyperion Enterprise Reporting, Hyperion Financial Management, Hyperion Integration Server, Hyperion Objects, Hyperion Performance Scorecard, Hyperion Planning, Hyperion Reports, Hyperion Sessionizer, Hyperion Spreadsheet Add-in, Hyperion Spreadsheet Toolkit and Hyperion Web Site Analysis are trademarks of Hyperion Solutions Corporation. All other trademarks and company names mentioned are the property of their respective owners. Microsoft is a registered trademark and Windows is a trademark of Microsoft Corporation. IBM, DB2, Lotus, and 1-2-3 are registered trademarks of International Business Machines Corporation. All other brand and product names are trademarks or registered trademarks of their respective holders. No portion of this manual may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or information storage and retrieval systems, for any purpose other than the purchasers personal use, without the express written permission of Hyperion Solutions Corporation. Notice: The information contained in this document is subject to change without notice. Hyperion Solutions Corporation shall not be liable for errors contained herein or consequential damages in connection with the furnishing, performance, or use of this material. Hyperion Solutions Corporation 1344 Crossman Avenue Sunnyvale, CA 94089 Essbase XTD Analytic Services Fast Track for Designers / 6.5.1 / 12.16.02
Table of Contents
Preface ...................................................................................................... xii
Welcome to Essbase XTD Analytic Services - Fast Track for Designers! ................................xii Course Structure.................................................................................................................................xii What is in the Manual .................................................................................................................xii Conventions .......................................................................................................................................xiii Future Classes....................................................................................................................................xvi
Hyperion
Table of Contents
Language of Members And Hierarchies......................................................................................2-10 Generations................................................................................................................................2-10 Levels..........................................................................................................................................2-11 Genealogy ..................................................................................................................................2-12 Defining Member Settings .............................................................................................................2-13 Using Aliases ...................................................................................................................................2-14 Specifying Consolidation Operators ............................................................................................2-15 Understanding Storage Types.......................................................................................................2-16 Index Driven Types ..................................................................................................................2-16 Shared Members..............................................................................................................................2-17 Formulas with Outline Members..................................................................................................2-18 Formulas in Outlines Versus in Calc Scripts ........................................................................2-19 User Defined Attributes .................................................................................................................2-20 Attribute Dimensions .....................................................................................................................2-21 Attribute Versus Standard Dimensions ................................................................................2-22 Ground Rules ............................................................................................................................2-23 Mechanics ..................................................................................................................................2-24 Setting Global Attribute Properties........................................................................................2-28 Exercise: Creating a Database ..........................................................................................2-32 Exercise: Building a Time Dimension .............................................................................2-33
Hyperion
ii
Table of Contents
Ten Steps For Setting Up Dimension Building Load Rules..................................................4-7 Loading the Outline ........................................................................................................................4-25 Three Methods for Initiating a Dimension Build.................................................................4-26 Error Checking.................................................................................................................................4-29 Tracking Errors with Load Rule Validation .........................................................................4-29 Tracking Errors Not Caught in Validation ...........................................................................4-30 Error Tracking Tips ..................................................................................................................4-30 Exercise - Loading the Family Total Rollup ...................................................................4-33
iii
Hyperion
Table of Contents
Hyperion
iv
Table of Contents
Cell ................................................................................................................................................9-6 Style Options......................................................................................................................................9-7 Zoom Options ....................................................................................................................................9-9 Zoom In ........................................................................................................................................9-9 Zoom Out...................................................................................................................................9-10 Exercise - Using Global Options ......................................................................................9-11 Exercise - Spreadsheet Options - Display.......................................................................9-14 Exercise - Spreadsheet Options - Zoom ..........................................................................9-17 Exercise - Spreadsheet Options- Style.............................................................................9-19
Hyperion
Table of Contents
Hyperion
vi
Table of Contents
vii
Hyperion
Table of Contents
Booleans, Member Sets and Relationship Functions ...............................................................16-17 Using Member Set Commands.............................................................................................16-19 Using Booleans........................................................................................................................16-20 Using Relationship Functions ...............................................................................................16-21 Variables .........................................................................................................................................16-22 Substitution Variables ............................................................................................................16-22 Temporary Variables..............................................................................................................16-27
Hyperion
viii
Table of Contents
Setting the Stage ..............................................................................................................................20-2 Dynamic Calcs .................................................................................................................................20-2 Calculation Order............................................................................................................................20-5 Batch Versus Dynamic .............................................................................................................20-5 Dynamic Calc (Non-Store) Members.....................................................................................20-7 Dense Dimension Guidelines..................................................................................................20-8 Sparse Dimension Design Features........................................................................................20-9 Dynamic Calc And Store Members......................................................................................20-12
ix
Hyperion
Table of Contents
Exercise - Using If to Focus..............................................................................................A-91 Chapter 19 .......................................................................................................................................A-92 Exercise - Developing a Complex Calc Script ...............................................................A-92
Glossary.................................................................................................. G-1
Hyperion
Table of Contents
xi
Hyperion
P
Preface
Welcome to Essbase XTD Analytic Services - Fast Track for Designers!
Before you begin, please take a moment to review this section. The preface presents an overview of: How the class is structured An explanation of the writing conventions used in this manual Relevant follow-up courses you might want to attend in the future
Course Structure
This is a 5-day, instructor led training class. It has been designed with the student in mind. In this course, the instructor presents a topic conceptually by explaining its purpose, demonstrating how it works, then guiding the students through the exercise. This explain and do procedure has proved to be a successful method.
Preface
Fast Track for Designers Chapters containing: An introductory Objectives page An Overview of topics Step-by-step procedures for referencing during and after class, and Exercises which encourage you to practice what was just presented Check Your Understanding to test what you've just learned
Conventions
Certain formatting styles are used in this manual to help the student better understand the subject matter and the step-by-step procedures. This section details these conventions. Chapter Objectives, consisting of a bulleted list of chapter topics, prefaces each chapter. If the chapter is lengthy or the subject matter is complex, an Overview follows the Chapter Objectives. Individual topics are noted with a helvetica/bold heading, as in this example:
Step-by-step procedures begin with the that defines the procedure, such as:
Leaf
Screen captures appear frequently and further clarify a topic. The letter x is used to refer to the drive letter in file names. Your instructor will provide the appropriate drive letter for x. For example: the file is located in the directory x:\Program Files.
xiii
Hyperion
Preface
Exercises appear throughout the chapter to reinforce a new concept or task. Most exercises contain two separate versions:
The student can select which version is best suited for their individual learning style. In some cases, an exercise will combine the versions. An End of Exercise icon.
Notes, prefaced by a , provide related information, tips, common mistakes, and/or cautions about the current topic.
Notes prefaced by a provide vital information. Procedures you must complete before proceeding, or must not do at all. Throughout the step-by-step procedures, a different font is used to accentuate text. The following rules apply: Text to be typed, Options to be selected, Names of files and modules, Menu selectionsappear in Helvetica, Narrow Bold As in the following examples: 1) 2) Select Clear Profile. To clear the profile, select Yes.
Hyperion
xiv
Preface
Fast Track for Designers The step-by-step procedures present the action to be performed. When needed, a result follows. This action/result format confirms the procedure and reinforces the student of the correct action. When available, icons are used to help identify an object or task, as in this example: 1) Select Edit .
Keystrokes that are combined, such as pressing the Ctrl + Enter keys, appear as follows: [Ctrl] + [Enter] In the example above, you would press the Enter key while holding down the Ctrl key.
xv
Hyperion
Preface
Future Classes
The following is a flow chart of classes offered in the Hyperion Essbase XTD curriculum. Essbase XTD Analytic Services Fundamentals is a recommended (not required) starting point for any student.
If you have attended the Analytic Services Conceptual Overview class, and you are responsible for implementing Analytic Services? You are here.
If you have attended the Analytic Services Conceptual Overview class, and you are responsible for system or database administration?
System Administration
Advanced Training
Calculating A to Z
Load Rules A to Z
Hyperion
xvi
Preface
xvii
Hyperion
1
Analytic Services From 500 Feet - An Overview
Upon completion of this chapter, you will be able to: Describe Essbase XTD Analytic Services Define multidimensionality Identify the portions of the production environment
1-2
Hyperion
Analytic Services
Hyperion Analyzer Crystal, Powerbuilder Actuals Consolidation
The Analytic Services vision: Use the database infrastructure for building multiple applications saving time and money in application development, training and technical support.
Hyperion
1-3
Optional Components
Analytic Services has several add-on options that are an integral part of the product line. You license them separately. They include the following: SQL Interface Currency Conversion Spreadsheet Toolkit (including VBA) Partitioning Option Application Programming Interface (API)
Documentation
You can access all Analytic Services documentation from a single HTML file called the Information Map. The Information Map contains links to following types of documents: Getting Started documents Readme File Installation Checklist Installation Guide Quick Path Card Spreadsheet Add-in Help and Users Guide for Microsoft Excel or Lotus 1-2-3 Basic Design and Reference
1-4
Hyperion
Hyperion Essbase From 500 Feet - An Overview Database Administrators Guide (HTML or PDF) Technical Reference API Reference Administration MaxL Users Guide SQL Interface Guide (HTML or PDF) Error Messages Application Manager Help
The path to the Information Map is: Start\Programs\Hyperion Solutions\Hyperion Essbase 6.5\OLAP Server Documentation
Server Tools
Essbase XTD Administration Services is a graphical user interface for managing Analytic Services servers, applications and databases. It presently mirrors many functions contained in the Analytic Services Application Manager. However, with the advent of future product releases, Essbase XTD Administration Services will replace the Analytic Services Application Manager and become the base platform for performing administration as well as accessing the ESSCMD and MaxL command line interfaces. Essbase XTD Deployment Services is a full JAVA API for Analytic Services. It is a middle-tier framework that extends the power of Analytic Services by creating a Web-enable, distributed platform for Analytic Services applications. Essbase XTD Integration Services is a suite of graphical tools and scalable data integration services that minimize the time and expense to create, deploy and maintain analytic applications. It uses centralized, reusable metadata to automate the process of creating and managing analytic applications from relational data sources, such as data warehouses, data marts, transaction-processing applications, and enterprise resource planning (ERP) systems.
Hyperion
1-5
End-user Tools
Hyperion Analyzer is an OLAP-centric analysis and presentation tool that operates in both client/server and Web-based computing architectures. It delivers intuitive information, access and analysis to Analytic Services through highly graphical displays, powerful ad hoc navigation, and robust analytics. Hyperion Reports is a production report writer. It is designed to produce reports with rich formatting capabilities for on-line and batch processing on Analytic Services databases. Essbase XTD Spreadsheet Services leverages Essbase XTD Deployment Services to provide scalability and reliability in a distributed Internet environment. Essbase XTD Spreadsheet Services lets you deploy a Webbased spreadsheet client application across an organization. Essbase XTD Q&R is comprised of Hyperion Crystal Reports, Hyperion Crystal Enterprise, and Hyperion Crystal Smart Reporting. Essbase XTD Q&R provides a fully customizable report design, content management and delivery platform built for intranet, extranet and corporate portal applications. High-performance query and reporting is provided from virtually any data source, including relational, ERP, CRM and Analytic Services.
Development Tools
The Analytic Services API is an application programming interface (API) that lets developers build custom Analytic Services applications using programs such as Visual Basic, C and C++. Hyperion Objects is a full suite of pre-made object linking and embedding (OLE) compliant objects. Essbase XTD Deployment Services provides a full Java API for custom client development. Hyperion Application Builder provides an open, secure and manageable distributed platform s for rapid creation and management of Web-centric, enterprise scalable, cross-platform business analysis applications.
Platform Requirements
Analytic Services deploys in a client server environment. The specific client or server configuration varies depending on the amount of network traffic and third party applications running with Analytic Services. The following sections provide platform support minimum hardware guidelines.
1-6
Hyperion
Server Platforms
In a typical setup, data resides on the server and is shared among all users (clients) who have access. The Essbase OLAP server provides a secure, client/server work environment. The server also enables you to control applications. It controls how data is stored physically to disk and handles client requests. Analytic Services 6 supports the following server and client platforms. Except where noted, these are minimum requirements.
Windows Version Windows NT 4.0 on Pentium or later machines Windows 2000 on Pentium or later machines Windows XP for Personal Essbase Windows XP for Essbase clients Merant Version AIX Version 4.0, except AIX which still uses Merant 3.6 4.3.3 or later on RS 6000 PowerPC machines AIX 5L for OLAP Server HP-UX Version Solaris Version RAM Disk Space 11 and 11i on PA-RISC machines 2.7and 2.8 on Sun SPARC or ULTRASPARC machines 64 MB or greater (128 MB or greater for UNIX platforms) base recommendation 35-50 MB for the server software and sample applications 15-20 MB for the SQL interface software and samples Network Protocol TCP/IP or Named Pipes (TCP/IP only for Windows 95 and Windows 98)
Personal Analytic Services for Windows NT and Windows 2000 on Intel machines is also available. The base recommendation for running Analytic Services and its sample applications is 64 MB. On UNIX platforms, the base requirement is 128 MB of physical memory (256 MB recommended) and at least twice the MB of physical memory for swap space (when physical memory is less than .5 GB).
Hyperion
1-7
Client Platforms
Microprocessor Windows Version Excel Version Lotus 1-2-3 Version Display RAM Pentium or better or equivalent, for the Spreadsheet Add-in and Application Manager Windows 98, Windows NT 4.0, Windows 2000, Windows XP Excel 2000, Excel XP Lotus 1-2-3 Millennium Releases 9.1 and 9.5 Resolution of at least 640 x 480 (800 x 600 or more recommended) 16 MB for the Spreadsheet Add-in and Application Manager on Windows 95, Windows 98, Windows NT 4.0, or Windows 2000 24 MB for the Application Manager 17.5 MB for the Spreadsheet Add-in for Lotus 1-2-3 16.7 MB for the Spreadsheet Add-in for MS Excel 9 MB for Analytic Services Runtime Client Network Protocol TCP/IP or Named Pipes
Disk Space
1-8
Hyperion
Same as for server platforms 15 MB for 32-bit Analytic Services API on Windows NT, Windows 95, Windows 98 or Windows 2000 on Pentium 4 MB for Windows NT on DEC Alpha 5 MB for AIX 6 MB for HP-UX 6 MB for Solaris
Approximately 35-50 MB for the server software and the sample applications Named Pipes or TCP/IP
The base recommendation for running Analytic Services and its sample applications is 64 MB. Start with this amount, and then allocate additional memory per the following table to accommodate your Analytic Services application.
Hyperion
1-9
About Multidimensionality
A multidimensional database is an extended form of a two-dimensional data array, such as a spreadsheet, generalized to encompass many dimensions.
This is how a multidimensional database is organized: It has dimensions and rollup hierarchies with each dimension.
1-10
Hyperion
Importance of Multidimensionality
You can use multidimensionality to: Analyze the same business information from different perspectives. For example, from different dimensional points of view. Let different users easily analyze the things they want to see in a large database, knowing that they are all working from the same source data. Allow data storage and analysis to occur at different levels of detail. Set the foundation for drill down. Conceptualize the way analysts have been thinking for decades. The four basic components of the Analytic Services outline are as follows:
Outline Interface Load Rules Facilitates the organization of data in hierarchies and dimensions that are easy to visualize and design. Facilitates loading and maintaining dimension members; organizes data from multiple, disparate information sources. Facilitates top down calculation capabilities across dimensions - lots of calculating with only a few lines of code. Facilitates standard reporting and ad hoc reporting with a drill down through dimensional hierarchies.
Calc Scripts
Spreadsheet Add-in
Hyperion
1-11
Using load rules, Analytic Services provides complete facilities for loading and maintaining outline members where conditions are changing with automated processes.
The outline is your view of the database structure. You automatically maintain the outline using load rules.
Load Rules
Analytic Services uses load rules to make it easy to load data from multiple and disparate information sources. Data may be loaded from a variety of sources including the general ledger, order systems and relational databases. Load rules for data interpret the format of source data by: Identifying incoming information by order of columns to the outline dimensions Parsing, concatenating, replacing names, or making any other type of adjustment to make source identifiers conform to outline naming conventions Adding or stripping headers, ignoring columns, white space and so on to deal with format aberrations
1-12
Hyperion
Changing scale, sign and preforming many, many more cleanup jobs
Load rule to be applied to the data files to deal with format and naming anomalies
Calc Scripts
Data always needs some kind of calculations ranging from simple rollups to complex allocations. Calculating is easy to do in the Analytic Services environment. You can: Calculate by consolidating values up an outline structure where the rollup math is specified Write formulas that compute top down calcs across all dimensions Compute relationship values between members - for example ratios, percentages, variances and so on Compute values that combine information from different dimensions, for example mo 1 actual + mo 2 actual + mo 3 forecast Use the most common Boolean, conditional and financial functions
Hyperion
1-13
You can specify calculations to occur during a batch process, or have specific members calculated on-the-fly when requested by users.
1-14
Hyperion
Information flows into Microsoft Excel from Analytic Services based on outline related labels on the spreadsheet.
Hyperion
1-15
2)
What is multidimensionality?
3)
List two differences between a relational database model and a multidimensional model.
4)
Name three different applications for which you can use Analytic Services.
1-16
Hyperion
Hyperion
1-17
1-18
Hyperion
2
Outline Mechanics
Chapter Objectives
Upon completion of this chapter, you will be able to: Describe Application Manager organization Create applications and databases Create and move members Understand the language of members and hierarchies Define member attributes Use aliases Specify consolidation operators Understand storage types Use shared members Understand formulas with outline members Understand user defined attributes Describe attribute dimensions
Outline Mechanics
This is the client desktop where you may create and maintain Analytic Services objects but not test them.
2-2
Hyperion
Outline Mechanics
Analytic Services objects are represented by four object buttons on the desktop interface:
Outlines A graphical representation of your database dimensions and hierarchies. The file type is .OTL. A textual language for creating instructions or code for the Analytic Services calculator. The file type is .CSC. A textual language for creating printed report outputs or electronic file extracts. The file type is .REP. Interpret outline and data source files for loading into Analytic Services. The file type is .RUL.
Calc Scripts
Report Scripts
Load Rules
Objects can be created and modified on the client; however, objects cannot be tested on the Client if the test involves using data that must be stored or calculated. Load rules can be created for and tested for loading members, with no data associated with them, to the outline.
2) 3) 4)
Hyperion
2-3
Outline Mechanics
This is the server desktop accessed by logging on from a client machine. This is where the action is for working with real data.
There is also significant additional server functionality including: Access to the Application menu for viewing application related information and changing application level settings Access to the Database menu for viewing database level information, changing database settings, and accessing partitioning
The Application Menu: You control application level settings plus maintenance functions such as log file, copy, rename and delete for application.
The Database Menu: You control database level settings plus maintenance functions such as copy, rename, delete, load and clear for the selected database within an application.
Most of the time as a developer, you should be working connected to the server.
2-4
Hyperion
Outline Mechanics
One-To-One Correlation
The conventional advice is to create only one database per application. For example, application to database is a one to one relationship. If you have trouble with one database, then other databases are not affected because they are in a different application. With only one database for each application, the application log (which writes out information about the databases included in it) is easier to read.
Hyperion
2-5
Outline Mechanics
The event log keeps track of all database activity launched by users, developers and batch processes.
Outline Elements
An outline has multiple dimensions within it reflecting such database elements as time frame, scenarios, accounts and products. The first member under the database member defines a dimension. You may have as many dimensions as you want; however, as a rule: Most Analytic Services databases have six to eight dimensions Four or five dimensions is few Ten or eleven dimensions is on the high side
This database has five dimensions. Calculation times generally increase geometrically when you add more dimensions.
2-6
Hyperion
Outline Mechanics
Databases with few dimensions generally calculate quickly. Databases with many dimensions incorporating many members and complex hierarchies generally take a long time to calculate and have large storage requirements.
Dimension Hierarchies
Each dimension has a hierarchy of members within it. The hierarchy reflects many different elements within the database: The member names (or labels) that define possible data intersections The consolidation path or rollup of lower to higher level members The drill-down path for users to navigate through the data
Hierarchies within dimensions reflect both consolidation levels and drill down paths for reporting.
Dimensions may have only a few or a lot of members. It is not uncommon for hierarchies to contain thousands of members with as many as twelve levels in the principal rollup path. However, the Time and Scenario dimensions typically do not have many members nor complex hierarchies. Hierarchies within the Accounts (sometimes called Measures) dimension often reflect a calculation model that incorporates units, rates and dollars.
Hyperion
2-7
Outline Mechanics
To create a new member, select Add Child or Add Sibling from the Edit menu, or select the Add tools from the toolbar.
3) 4)
5)
Click OK. To edit a member's name, right-click the member to create an editable field.
2-8
Hyperion
Outline Mechanics
You can also drag a member to a new position. With click and drag, you can position the moved member as a child or sibling in relation to the new member location.
Other moving rules: Moving a member by any method also moves all of the member's descendants. Deleting a member also deletes all of the member's descendants. Moving a member and its descendants prompts a restructure operation when the file is saved. Restructuring maintains the integrity of underlying data storage structures.
Click and drag to move a member and its descendants.
Hyperion
2-9
Outline Mechanics
Generations
Generations count top to bottom: Gen 1, Gen 2, Gen 3, and so on. The database at the top is Generation 0 Each dimension name is Generation 1 Generation counting is important for outline maintenance using the Generation load rule method and calculations that reference members at specific generations.
2-10
Hyperion
Outline Mechanics
Levels
Levels count bottom to top: Level 0, Level 1, Level 2, and so on. The lowest point in a hierarchy is level 0. Level 0 members are also called leaf nodes. Level 0 is typically, though not necessarily, the level where data is loaded. Level counting is important for managing data input, outline maintenance using the level load rule method and calculations that reference members at specific levels.
Total Territories, the dimension name, is level 2. ECAM FRANCE is at level 0, the lowest level in the hierarchy.
Hyperion
2-11
Outline Mechanics
Genealogy
Genealogy relationships in a hierarchy are defined as follows:
Member Leaf Node Parent Child Siblings Ancestor Descendants A Box at any level in the hierarchy including dimension names Any member at Level 0 (like leaves on a tree) A member in the hierarchy immediately above another member A member in the hierarchy immediately below another member Members with the same parent All members in the hierarchy directly above another member All members in the hierarchy below another member
ECAM Nordic, Italy, UK, France and Central Europe are Siblings to each other.
Europe is a parent to ECAM Nordic, Italy, UK, France and Central Europe. ECAM France is a Child of the Parent Europe
2-12
Hyperion
Outline Mechanics
The Member Properties dialog box with its associated tabs is where you manage a range of member storage, calculating and other behaviors.
Hyperion
2-13
Outline Mechanics
Using Aliases
Aliases are alternate names that can be used in place of the main member name. You set up or change aliases in the Member Properties dialog box. Aliases are commonly used for storing descriptions (for example, account or cost center names), and for providing alternate naming conventions where organization sectors use different terminology or foreign language. Aliases can be used, just like the member names, for: Spreadsheet reporting Calc script formula references Data loading references in data source files Report script references
Use Aliases to set up descriptions or alternate naming conventions for reporting on members.
You can create and maintain multiple Alias Tables from the Outline/ Aliases menu and related submenus. As many as ten Alias Tables may be created and accessed for reporting purposes. Companies use alias tables to incorporate different naming conventions between functional departments and to capture foreign language differences.
Multiple alias tables may be set up to capture naming differences.
2-14
Hyperion
Outline Mechanics
Use an ignore tilde (~) in situations where you want a member to appear in a drill down path, but you do not want the members added together with others during a rollup.
You use consolidation operators to specify rollup math in large business view dimensions such as products and customers. You also use consolidation operators for building models in the Accounts (also known as Measures) dimension involving units, rates and dollars and complex activity driver relationships.
Most competing products with hierarchical consolidation allow only summing. With consolidation operators in Analytic Services, you can create complex modeled relationships within the rollup structure using +,-,*,
Hyperion
2-15
Outline Mechanics
2-16
Hyperion
Outline Mechanics
Shared Members
Shared members are a unique design element in Analytic Services that allow sharing of input data and calculated results between members within a dimension. The shared member assumes all attributes of the main member (its value, aliases, time balance flags and so forth) except the main member's consolidation operator. Shared members have their own consolidation operator independent from the main member's value they share. This facilitates building complex models with computation dependencies between members.
This is an example of shared members used for building complex models where the same member is used on multiple occasions for driving the calculations of other members.
For shared members sharing values with an input member, the shared member may display above or below the main member in the outline. For shared members sharing values with a member whose value is computed, the shared member must display below in calculation order of the main member in the outline. This condition causes a warning in the outline syntax checker.
Hyperion
2-17
Outline Mechanics
Shared members are the principal vehicle in Analytic Services for creating alternate rollups for viewing source data with different rollup paths.
This is an example of shared members used for building alternate rollups where the shared member is different aggregation path from the main members.
Create a formula associated with a member in the outline from the Formula Editor.
2-18
Hyperion
Outline Mechanics
If the data storage type for the member is Store Data, the formula is executed in order during a CALC ALL execution or a CALC DIM on the member's dimension. If the data storage type for the member is Dynamic Calc or Dynamic Calc And Store, the formulas are executed when a user retrieves upon the member in a spreadsheet.
2) 3)
Formulas for Dynamic Calc members cannot be executed from within a calc script.
Hyperion
2-19
Outline Mechanics
Set up UDAs from the User Attribute panel. You may also load UDAs to members using load rules.
Use UDAs for special functions in calc scripts and spreadsheet reporting
In calc scripts, booleans with IF statements and macros with FIX statements allow focusing calculations to members with specific UDAs (for example, IF (@ISUDA(Product, Service Part))
2-20
Hyperion
Outline Mechanics
Using Member Selection from the spreadsheet add-in, you may reference UDAs for selecting members to display on a report.
You can select UDAs with And/Or conditions for inclusion on a report.
Think of UDAs generally as a way to group members together in a dimension. Here are some additional examples: In Security filters, UDAs can be used with the @UDA function to give access to users based on a specific UDA. This has the effect of pushing the maintenance to the outline and simplifying filter definitions. In Partitioning, UDAs can be used in the Area definition. In VBA, you can define a selection so that a combo box is filled with members having a specific UDA.
Attribute Dimensions
Attribute dimensions were introduced in version 6 and are similar to UDAs in that they help further assign characteristics to given members in an outline. Examples of characteristics might be product sizes or colors, customer regions, and product package types. Unlike UDAs, attribute dimensions appear as dynamic dimensions: Attribute dimensions add no overhead in terms of database size. They are dynamic dimensions with no storage requirements. Calculation of the Attribute dimensions is deferred until they are requested in a report. Furthermore, there is built-in functionality to enhance dynamic calculations. By default, you can Sum, Average, Count members, and request Minimum or Maximum values or any combination of all of these. Attribute dimensions are drillable so that a report can show the specified attribute dimension across all the other dimensions in the model. By default, attribute dimensions are not shown until requested explicitly. Attribute dimensions can be of different types- Text, Numeric, Boolean, and Date. Each has some built in functionality in terms of enhanced retrieval filtering and calculations.
Hyperion
2-21
Outline Mechanics
Fast Track for Designers A given member within a dimension may be assigned one or more attributes, or no attributes at all. Attribute dimensions may be created and loaded to specific members using load rules.
Attribute Dimensions look similar to normal dimensions. Here, Region Total is an Attribute dimension associated with Customers.
2-22
Hyperion
Outline Mechanics
In some cases attributes and UDAs overlap in that both can be used much more generally to group members from a given dimension together. Examples of this would be in creating security filters or area definitions for partitions. However, UDAs are more practical for these purposes because they can be assigned to multiple levels of any dimension.
Attribute dimensions do not replace shared member alternate rollups. The use of shared members to create alternate rollups or views on data provide end users with a different navigation perspective than attribute dimensions. Alternate rollups do not add overhead to retrievals.
Ground Rules
Follow these general when creating attribute dimensions. Base dimensions must be sparse. Base dimensions are the dimensions associated with the attribute dimension. Attribute dimensions do not have consolidation symbols or formulas attached to them. All calculations are done across the base dimension. Although attribute dimensions can have a multi-tiered hierarchy, you must associate the level 0 members (bottom level members) of attribute dimensions with base members. Base dimension members associated with attribute dimensions must be at the same level. This can be any level but it must be the same across the base dimension. Shared members in the base dimension should not be tagged with attribute dimension members. Shared members automatically inherit their respective stored member attributes.
Hyperion
2-23
Outline Mechanics
Mechanics
The following is a step-by-step approach to building attribute dimensions in the outline editor. This is the manual method; however, it can also be done in an automated fashion using load rules. Here is a high level overview of the steps: 1) Create a new dimension.
2)
Creating an attribute dimension is similar to building any other dimension. You do not need to bother with adding aliases or consolidation symbols, as these are discarded as soon as we change the dimension type to an attribute dimension.
Next, go to member properties for the dimension and select Attribute. In the drop-down box, select the attribute dimension type.
2-24
Hyperion
The default attribute dimension type. As the name implies, these are reserved for textual descriptors of base dimensions. Keep in mind that for reporting and calculation purposes, the most common filters for text attribute types are equality comparisons (for example, all products that equal a certain size). Although you can use > or <operators, these are compared on an alphabetical basis. A very powerful attribute type, reserved for numeric only member names in the attribute dimension. Numeric attributes allow for additional reporting and calculation functionality. You can perform all the comparison operators, group numeric values into ranges (for example, all products with a size between 300 and 500), and include the numeric value in calculations using the @attributeval function. Designed to flag base member dimensions as one of two values. Although the default values for boolean are True or False, you can change this to any two values. However, only one set of boolean values is allowed per database so whatever you set it to applies to all boolean attribute dimensions in that model. Examples of other common settings for booleans would be Yes/No or Male/Female. Designed to flag a base member dimension with date values. All dates must either be in mm-dd-yyyy or dd-mmyyyy formats. You can perform equality comparisons in calculations or reporting. For example, all products with a release date greater than 05-27-2000
Numeric
Boolean
Date
The @attributeval formula can be used to extend the functionality of numeric attributes.
Hyperion
2-25
Outline Mechanics 4)
Fast Track for Designers Associate the attribute dimension with an existing sparse dimension, (called the base dimension). In the Attribute panel of the Member Properties dialog box, select the attribute dimension from the Available Attribute Dimensions panel and click Add.
5)
Now that you have defined the base dimension, tag members in the base dimension with one of the attributes from the newly created attribute dimension.
Remember the two ground rules: Base members tagged with attributes must be at the same level and they must be tagged with level 0 attribute members.
2-26
Hyperion
Outline Mechanics
Select the base member and Edit/ Properties. Then navigate to the desired attribute.
5)
Click OK. The attributes display on the outline next to the base members.
Hyperion
2-27
Outline Mechanics
After you associate attributes to members in the base dimensions the outline would look something like the following example:
Consider the following when making changes to attributes: Changes made to attribute names in the attribute dimension are automatically applied to the base dimension member(s). To delete an attribute member, select the member and Edit/Cut. Any base dimension members with the deleted attribute loses that association. Changing the attribute type is straight forward but may affect existing reports or calculations. Move attribute members as you would any other regular member. Moving attribute dimension members should have no effect on base dimension members. Adding members to attribute dimensions is the same as adding a regular member. You most often follow this by associating members with their respective base dimension members. To change any base dimension member attribute select the Attributes panel of the member properties for that member and select the desired attribute from the Available Attribute Dimensions panel.
2-28
Hyperion
Outline Mechanics
Now, by changing the attribute name format to use the Parent, look what happens to the report.
Hyperion
2-29
Outline Mechanics
Attribute Calculations
By default, dynamic attribute calculations are available through the Attribute Calculations dimension. This dimension behaves like other attribute dimensions in that it is not automatically displayed in a report until you explicitly ask for it. Drilling on the Attribute Calculations dimension results in the display of the following children: Sum, Count, Min, Max, and Avg in that order. The Attribute Calculations member behaves like a label only and displays the Sum. In this dialog box, you can change the calculation names such as changing Avg to Average. To understand the different calculations, look at the following report:
Sum adds up all the products with the size attribute. Attribute calculations member is Sum because it acts like a Label Only member. This is the smallest or minimum product value for products with a size 300 attribute.
Count sums up the number of products with a certain attribute that have data values. For example, there are two products with Size=300 attributes that have values.
Average rolls-up product averages. This is the average of all products with Size=500.
2-30
Hyperion
Outline Mechanics
Numeric Ranges
This applies to numeric attributes only. A numeric attribute can represent a single value or a range of values. Ranges can be used for report filtering and calculations. The default setting is Tops of Ranges. In our size dimension, this would result in values between 1-300 being associated with attribute member 300, attribute values between 300-500 would fall under attribute member 500, and values between 500-1000 would be under the 1000 attribute member. If you change the option selection to Bottoms of Ranges, values less than 500 would fall under the 300 attribute, values between 500-1000 would have the 500 attribute, and any values greater than 1000 would fall under the 1000 attribute member.
Hyperion
2-31
Outline Mechanics
2) 3) 4) 5) 6)
In the Application Name section, type Bigcorp. Select a Location. Select a Server. Click OK. The Bigcorp application loads. From the Application Manager desktop, select File / New / Database.
7) 8) 9)
In the Database name section, type Sales. Select a Database Type. Click OK. The database loads.
2-32
Hyperion
Outline Mechanics
Click Yes. Press [Esc]. Select Year Tot. Select Edit / Add Child. Type Quarter 1. Press [Enter]. Create additional sibling members to Quarter 1 named Quarter 2, Quarter 3 and Quarter 4. Create child members to populate the months for each quarter Jan through Dec.
Hyperion
2-33
Outline Mechanics
2) 3)
Add an alias called Qtr 1. Add similar aliases for the remaining quarters. Add aliases to the months where Jan's alias is January, Feb's alias is February and so on.
2-34
Hyperion
Outline Mechanics
5) 6) 7) 8)
From the DTS Member drop-down list, select Y-T-D. Select Enable This DTS Member. Confirm the Generation setting to be 1 (representing the generation where the Y-T-D accumulation should occur). In the Alias entry box, enter YTD, and click Set.
9) 10)
Click OK. Repeat this procedure for Q-T-D, setting the generation at 2 with an alias of QTD.
Hyperion
2-35
Outline Mechanics
Siblings Ancestor
_____ _____
E F
Aliases
_____
_____
_____
Attribute Dimensions
_____
_____
2-36
Hyperion
Outline Mechanics
Definition Alternate names or descriptions that can be used for reporting, in calc scripts, and as data load references. Members with the same parent. Any box at any level in the hierarchy including dimension names. Associated data is stored only when a calculation occurs upon a user's retrieve request. Used for members that share the data and calculations of another main member in the outline. Flags used to control the better / worse sign conventions for variance calculations. All members in the hierarchy directly above another member. Associated data is not stored; the member is calculated each time upon a user's retrieve request.
Expense Reporting Store Data Dynamic Calc And Store Dynamic Calc
M N O
_____
Never Share
_____
_____ _____
R S
2)
Hyperion
2-37
Outline Mechanics
N C B A
A B C D
A member in the hierarchy immediately below another member. A member in the hierarchy immediately above another member. Any member at Level 0 (like leaves on a tree). Flags for specifying the behavior of specific accounts as they are rolled up across the Time dimension. Control the math of a member in the rollup process relative to its parent. Settings that specify if and how a members data is to be stored and / or calculated. The default storage setting where associated data is stored and calculated on a batch basis. Used for members that are essentially labels where no data need be stored or calculated upon. Used to force storage of data overriding an implicit shared relationship between a parent with a single child which Analytic Services sets up automatically. Never share is not commonly used in most databases. Dynamic dimension which are associated with some sparse base dimensions. Each member in the base dimension can be assigned one of the attributes from the attribute dimension. Member tags used for specialized calculating or reporting processes.
Siblings Ancestor
M R
E F
Aliases
Attribute Dimensions
2-38
Hyperion
Outline Mechanics
Definition
Alternate names or descriptions that can be used for reporting, in calc scripts, and as data load references. Members with the same parent. Any box at any level in the hierarchy including dimension names. Associated data is stored only when a calculation occurs upon a user's retrieve request. Used for members that share the data and calculations of another main member in the outline. Flags used to control the better / worse sign conventions for variance calculations All members in the hierarchy directly above another member. Associated data is not stored; the member is calculated each time upon a user's retrieve request.
Expense Reporting Store Data Dynamic Calc And Store Dynamic Calc
Q G O
M N O
Never Share
H P
R S
2)
Numeric
Hyperion
2-39
Outline Mechanics
Boolean
Designed to flag base member dimensions as one of two values. Although the default values for boolean are True or False, you can change this to any two values. However, only one set of boolean values is allowed per database so whatever you set it to applies to all boolean attribute dimensions in that model. Examples of other common settings for booleans would be Yes/No or Male/Female. Designed to flag a base member dimension with date values. All dates must either be in mm-dd-yyyy or dd-mmyyyy formats. You can perform equality comparisons in calculations or reporting. For example, all products with a release date greater than 05-27-2000.
Date
2-40
Hyperion
3
Outline Design Alternatives
Upon completion of this chapter, you will be able to: Understand Time, Scenario and Accounts Data Descriptor dimensions Describe Business View dimensions Use Drill Down paths and reporting
3-2
Hyperion
Design Approaches
The Time dimension generally does not include many members, nor are the design choices complex. There are two standard approaches to the Time design: Generic model Fiscal year crossover model
Generic Model
In the Generic model months, quarters and years have no fiscal identification. Fiscal ID is incorporated as a separate dimension or in the Scenario dimension.
The Generic Model for a Time design: months and quarters do not include a fiscal year ID.
The generic model is the default design to use if other analysis or calculation requirements do not force the crossover model.
Cross-tab reporting (where different time elements display as row and columns on a report) require the generic model.
Hyperion
3-3
In the fiscal year crossover model months, quarters and years have the fiscal year identification hardwired into the member names. The crossover model is typically used when analysis or calculation require a continuum for the timeframe.
The fiscal year crossover model, where the fiscal year ID is hardwired into member names. Time is a continuum.
Time
Range-related calculation operations- for example, using @PRIOR, @NEXT and @AVGRANGE- usually require the fiscal year crossover model for correct calculations between fiscal years. History to date accumulations- especially using Dynamic Time Series (DTS) calculations- require the fiscal year crossover model.
The most common special calculations in the Time dimension are periodto-date calculations. Earlier versions of Analytic Services introduced Dynamic Time Series calculations to automatically perform such calculations without monthly maintenance. Use built-in Dynamic Time Series calculations for period-to-date calculations such as history, year, quarter and month-to-date accumulations: Dynamic time series calculations are calculations on-the-fly initiated by a spreadsheet request. Values are not stored. Dynamic time series calculations require the time related dimension to be tagged Time.
3-4
Hyperion
This is the interface for creating dynamic time series calculations in Analytic Services.
Following are the special benefits you receive when you specify where time is via the Time tag: Time Balance accounting for identified members in the Accounts dimension is enabled. Time balance accounting affects the aggregation sequence of flagged members in the Accounts dimension (for example, balance sheet accounts- across the Time dimension). Range operators used in calc scripts operate by default over the tagged time dimension periods (for example, months in a series). Range operators include such functions as @PRIOR, @NEXT, @ AVGRANGE. When the Time dimension is flagged and meeting certain other conditions, two pass calculations can be calculated with only one pass on data blocks. DTS calculations are enabled.
Hyperion
3-5
Scenario
Scenario is the sleeper dimension. It usually has few members and a minimum hierarchy, but its impact on design and calculation issues is substantial. For financial applications, scenario is the dimension where you define the different data sets that underlie the planning and control process. For example: Actuals - monthly downloads from the general ledger of actual financial results. Budget - data for setting standards derived from the annual planning process. Forecast - monthly or quarterly updated estimates of financial performance.
Scenarios typically track data sets and may include versions of such sets.
3-6
Hyperion
Examples of scenarios that track the buildup of a forecast with input from different functional areas.
Scenarios are often used as a simple method for tracking what if alternatives. For example: Scenario versions High Estimate, Best Estimate and Low Estimate represent different assumption sets about revenue and/or costs sharing the same underlying data sources and modeling structures.
Hyperion
3-7
Using the @VAR and @VARPER calculation functions with Expense Reporting flags on accounts, better/worse sign conventions are easily controlled.
Compute variances between scenario members using the @VAR calc function to control the B/(W) sign convention.
3-8
Because of the form and level of inputs and calculations between scenarios, it is often the case that different scenarios require different data load procedures (for example, different load rules) and different calc scripts.
Hyperion
Accounts
Accounts (often called Measures) is generally the most complex of the data descriptor dimensions. This is where your business model resides and where the most complicated and potentially time consuming calculations occur. For financial applications, Accounts is where the main calculations occur. Therefore, you find the following typical structures in this dimension: Natural class accounts that define the Profit and Loss structure or subsets of it such as accounts that build up to Gross Margin. Balance and cash flow accounts and associated metrics such as average assets employed and return on net assets. Unit, rate and dollar calculations- especially where such calculations involved activity driver relationships between members in the dimension. Metrics and analysis calculations of all types such as: Profit%, Margin%, Sales Per Employee, Cost Per Transaction, % Mix, % Commissions and so on.
Calc script example where members of the accounts dimension are being calculated.
Hyperion
3-9
Do use formulas (either in the outline or in a calc script) where you cannot do the calculation with unary operators (when incorporating an if condition or where a unary operator drill down path would confuse users).
Use unary operators and shared members in the accounts dimension for building complex models.
Additional features are enabled when Analytic Services knows where Accounts is through the Accounts dimension type tag: With Calc All and Calc Dim functions, Analytic Services automatically implements a correct accounts first calculation order. Time Balance accounting for identified members in the Accounts dimension is enabled. Time balance accounting affects the aggregation sequence of flagged members in the Accounts dimension (for example, balance sheet accounts) across the Time dimension that is defined as the Time dimension type. Expense Reporting for use with @VAR and @VARPER calc functions is enabled, thus allowing control over better/worse sign conventions for variance calculations.
3-10
Hyperion
When the Accounts dimension is flagged and meeting certain other conditions, two pass calculations can be calculated with only one pass on data blocks.
Time balance accounting is enabled when you set the dimension type to Accounts. Expense Reporting for variance analysis is enabled when you set the dimension type to Accounts.
Time, Accounts and Scenarios are the data descriptor dimensions. They describe the data in most basic elements.
Hyperion
3-11
These dimensions are where variances (for example, comparison of members to each other are typically calculated). These dimensions are calculation intensive (they include models, formulas, mathematically driven data relationships and so on. Data are often- though not always- dense thus driving sparse/dense settings and data block construction.
Crossover Designs
From a design perspective, the data descriptor dimensions sometimes overlap or cross over between each other in their content. For example: The scenarios dimension may cross over with the time dimension by incorporating fiscal year in the scenario name (for example, Actuals 97, Actuals 98, Budget 98 and so on). The scenarios dimension may cross over with the accounts dimension- Actual Orders, Actual Shipments, Budget Orders, Budget Shipments and so on.
In this crossover design, an element of the definition of time periods. For example, fiscal year is incorporated in the Scenario dimension.
3-12
Hyperion
From a design perspective, business view dimensions generally have the following characteristics: Which business views are relevant is substantially driven by the company's industry and business practices. For example, a bank's business view dimensions are very different from a hardware manufacturer's business views. Business view dimensions often have hundreds or even thousands of members rolled up through many levels in a hierarchy. Because of the magnitude of the number of members, initial development of the outline and subsequent maintenance is usually automated using load rules. Business view dimensions are not typically calculation intensive. Calculations are usually simple aggregated rollups of branches in the dimension hierarchy. There are very few (or no) complex models, member formulas and/or variances. Business views often incorporate complex alternate rollups using shared members. For this reason, using load rules that facilitate the construction and maintenance of shared members- especially using the parent/child load rule method- is common. Data is often- though not always- sparse thus driving Analytic Services sparse/dense settings and data block construction.
Hyperion
3-13
Product Biz View: products at SKU rolling up through families and categories.
Product Biz View: alternate rollup for products at SKU as shared members rolling up to capacity levels.
3-14
Hyperion
Hierarchies in the outline represent drill down paths for spreadsheet reporting.
You may create multiple rollup paths of the same information within a dimension using shared members.
Lightning family members display in both the family rollup and the capacity rollup.
Hyperion
3-15
Act Vs Fcst
None
In addition, set the following dimension parameters: Set the Consolidation operators for Scenario Variances and all of its children to ignore. Set Scenario and Scenario Variances as Label Only.
3-16
Hyperion
Use this worksheet as a guide for member formulas and consolidation operators.
Hyperion
3-17
Accounts Receivable
3-18
Hyperion
3)
4) 5) 6) 7) 8) 9)
In the Categories section, select Math. In the Templates section, select the math operator @VAR. Click OK. The function appears in the Formula Editor window. Complete the formula to read: @VAR (Current Year, Budget);. Select File / Save. Select File / Close. The Formula Editor closes.
Hyperion
3-19
Complete the comparable formulas for the members Act Vs Fcst and Bud Vs Fcst. In the Accounts section, select Cost of Sales. Select Edit / Properties. The Member Properties window displays. Select the Account Info tab. In the Variance Reporting section, select Expense. Identify and set Expense reporting for all other members in the Accounts dimension where this flag is required, according to this model.
3-20
Hyperion
2)
3)
Hyperion
3-21
3-22
Hyperion
4
Developing Load Rules
Upon completing this chapter, you will be able to: Plan with label outlines Understand what load rules do for outlines Build a dimension build rule from scratch Load the outline Understand error checking
Before
After
Defining Hierarchies
Some Analytic Services dimensions, such as those related to product codes and customer numbers, contain hundreds or even thousands of members. It is more efficient to build, change, or remove these dimensions dynamically, using a data source and a rules file, than it is to add or change each member manually in Outline Editor.
4-2
Hyperion
5) 6)
Document unambiguous examples of members that everyone understands at each named generation.
Hyperion
4-3
4-4
Hyperion
Working through a label outline structure also precipitates discussion of how and where to use UDAs or Attribute Dimensions in the outline design. Both types of attributes can give common references to groups of members for calculation and/or reporting and are frequently used in place of adding new dimensions or alternate rollups where the identifying information is not hierarchical. Working through the structure facilitates discussion and research assignments about where data exists in the hierarchy vis-a-vis members in the Accounts dimension. Defining a hierarchy does not necessarily mean that data exists at the defined levels.
Use label outlines to document complex alternate rollups using shared members.
Hyperion
4-5
You must use data load rules to load SQL data and to build dimensions and members dynamically. Data load rules are stored in rules files.
You view the load rules associated with a database on the Client or Server desktop.
Fixing Problems
In addition to providing batch maintenance, load rules provide tools for interpreting source files and resolving ugly problems. For example, you can do such things as: Associate source data hierarchies with dimensions. Define hierarchy levels by generation, level or parent/child. Set up alternate naming conventions, that is, member names plus aliases. Move columns that are in the wrong place in the hierarchy. Ignore rows and columns with extraneous information. Duplicate, parse and concatenate information to construct hierarchies.
4-6
Hyperion
Prefix or suffix member names to provide clarity. Select or reject member names using complex alpha or numeric criteria. Replace specific member names or character sequences in a source with alternate sequences. Eliminate leading or trailing spaces in source formats. Load rules can perform many more tasks that can fix problems encountered in load files.
The following procedures clarify the steps you need to take to create from scratch a rule for loading members into an outline.
Hyperion
4-7
Load rules are created in the Data Prep Editor. This is what a new rule looks like when you start.
4-8
Hyperion
Check that the correct application and database name for the outline are selected.
2) 3)
Make sure the values for Object Name, Server, Application, and Database are correct. Select the outline to open and click OK. There is no immediate visual clue of the association but once you open various dialog boxes, visual clues display, for example, member lists associated with the application and database are available.
Hyperion
4-9
2)
The data file association is not saved with the load rule, that is, you must select File / Open Data File each time you reopen a load rule.
Select the correct file type from the List Objects of Type drop-down list.
3)
You may select a text file or the kind of worksheet you require. Text files must end in.TXT in the file system. If they do not, rename them.
Server is selected by default. If the file is on the server, select the source file from Open Objects dialog box.
4-10
Hyperion
Or, if the file is on the client, select Client as the location then select the file through the File System button.
If you leave Server selected, the text file to load must reside in the database directory under \ESSBASE\APP\application_name\database_name, where application_name and database_name represent the name of your application and database. Type the name of the text file in the Object Name text box or select it from the Objects list. If you select Client, the text file may reside in either the application or database directory under \ESSBASE\CLIENT or on the drives accessible from the client file system. Click File System to select a text file from a standard Open Client Data Files dialog box.
Hyperion
4-11
Once a source data file is open, the first 50 to 200 records in that file show in the top half of the Data Prep Editor interface.
The bottom half of the Data Prep Editor shows what the source information looks like loaded into Analytic Services after applying various rules.
The top and bottom windows populate with information. The contents of the file display in the top window of the Data Prep Editor reflecting the original files structure. The bottom window reflects interpretation of the file after applying load rule elements. The Data Prep Editor can open an SQL data source if you have licensed the SQL Interface. When you open an SQL data source, the rules fields default to the SQL data source column names. If these names are the same as your Analytic Services dimensions, you do not have to perform any field mapping.
If you are connected to a server, the dialog box contains the values for that server.
4-12
Hyperion
From the drop-down lists, select an Essbase Server, Essbase Application an Essbase Database.
3)
This server, application, and database act as the client for SQL access.
Click OK.
4) 5) 6) 7)
Select the SQL Data Source. In the Connect section, enter the Database name (for example, Myexamp). In the From text box, enter the location of the SQL data source (for example: c:\essbase\app\sample\basic\myexamp.dbf). Enter any additional information that is required to connect to your SQL data source, such as the server, application, user ID, or password. To connect to a Sybase SQL Server, for example, you would enter the user ID, password, database, server, and application. Define any select statements in the Select and Where text boxes.
8)
9)
By default, the select statement is * (which selects all rows in the table).
Click OK/Retrieve to retrieve the SQL data source file or OK/Save to save your settings. The contents of the data source display in the top window of the Data Prep Editor.
Hyperion
4-13
2)
4-14
Hyperion
The field delimiter causes Analytic Services to organize source data into columns for the assignment of rules that apply to each column.
If, after choosing a delimiter type, the data does not display in columns, you have chosen the wrong delimiter type.
Any field edits such as joins, splitting, and moving of columns shows up in the sequential order they were executed on the Field Edits tab of the Data Files Properties dialog which is accessed by selecting Options / Properties. To delete an operation you must start on the last operation and work backwards.
Hyperion
4-15
Ignoring lines or other header related activities are handled by selecting Options / Data File Properties and then selecting the Header Records tab.
To set the current load rule mode for outline building and maintenance:
This mode is not for data loading. Select View / Dimension Building Fields.
Select Dimension Building Fields from the View menu when building a load rule for loading outline members.
4-16
Hyperion
This is the default setting for a new rule. Select this setting when creating or maintaining a load rule for loading data.
Much of this work is done in the Dimension Build Settings dialog box. This dialog box contains three tabs, each of which sets up a different part of the rules file: Use the Dimension Definition panel to name the dimension and define its properties.
Hyperion
4-17
Use the Dimension Build Settings panel to specify the build method and indicate how to sort the members. Use the Global Settings panel to specify which alias table to update, whether or not Analytic Services should select the dense/sparse configuration, and how to combine selection and rejection criteria.
4)
4-18
Hyperion
Use the various tabs to set the attributes as appropriate for Dimension Type, Storage, Dense/Sparse Configuration and other attributes.
6)
Click OK twice.
Hyperion
4-19
3) 4)
From the dimension list in the upper left of the dialog box, select the dimension name being loaded. Select a Build Method, and click OK.
Select the Build Method from the Dimension Build Setting dialog.
4-20
Hyperion
4) 5)
From the Dimension list, select the Dimension being loaded. Select the Field Type (for example, generation, level, parent/child, alias, formula and so on).
Hyperion
4-21
Enter the generation or level number to which the field type applies (enter zero (0) for parent/child method).
Enter Field Definition information that tells Analytic Services what dimension and field type the column of information represents.
7) 8) 9)
Repeat this procedure for all columns. To ignore fields with extraneous information, select Field / Properties. The Field Properties window displays. Select the Global Properties tab.
10)
4-22
Hyperion
Hyperion
4-23
2)
Enter an appropriate name for the Load Rule and click OK. You are now ready to load the outline.
4-24
Hyperion
Hyperion
4-25
From any outline on the Client or Server, update the outline from the File/Update Outline menu choice.
2)
3) 4) 5)
Select a file and load rule. Click OK. The Outline Update window displays. Click OK. Analytic Services adds the dimensions in the data source to the outline.
4-26
Hyperion
4) 5)
Select the Data Files option (if it is not already selected). Click Find to select a text or spreadsheet file to load.
Hyperion
4-27
Specify the location of the file by allowing the Server choice to remain or by clicking Client. If Client is selected, Open Client Data File Object dialog replaces the Open Server Data File Object.
With Client, if necessary, click File System to find the appropriate data file.
7) 8)
Select the data source file(s). Click OK to return to the Data Load dialog. Or, from the Open Client Data Files dialog, click Open to return to the Data Load dialog. The name of the desired data file displays in the Data files area. Select Modify Outline. Select Use Rules. To open the Open Server Rules Object dialog box, click Find. Making sure the appropriate Analytic Services application and database are selected from the lists, specify the location of the file by clicking either Server or Client. Click OK. The name of the appropriate rules file displays in the Rules file area.
13)
4-28
Hyperion
Click OK. Analytic Services adds the dimensions in the data source to the outline.
Error Checking
You must have at least one dimension defined in the database. To build dimensions, at least one Builddim command must be included. In ESSCMD, you can also do multi-pass dimension builds.
You may catch possible errors through load rule validation, but not all errors are trapped during the validation process.
This is where you see specific errors in load rules using the Validate menu choice under Options.
Hyperion
4-29
Check out the show stopper errors line by line on the source file in the Dimbuild.err file.
4-30
Hyperion
1)
Hyperion
4-31
Developing Load Rules 2) 3) Select Error Messages Guide. The Error Messages window displays.
4)
Select a message number from the table. The error information displays.
4-32
Hyperion
Hyperion
4-33
2)
3)
4)
What are the 10 steps for setting up a load rule for dimension building?
4-34
Hyperion
Hyperion
4-35
4-36
Hyperion
5
Outline Loading Methods
Chapter Objectives
Upon completing this chapter, you will be able to: Set the load method Know the criteria for Generation method loading an outline Know the criteria for Levels method loading an outline Know the criteria for Parent/Child method loading an outline Build attributes using load rules
5-2
Hyperion
Define your load methodology (and other behaviors related to loading members) from the Dimension Build Settings panel.
Hyperion
5-3
Set Add as options for capturing new unrecognized members on the fly during data load.
5-4
Hyperion
Thinking Generations
Loading and maintaining outlines using the Generation method assumes source files are naturally organized top-down, left to right or is ordered as such by applying rules that interpret source file columns into that organization.
Hyperion
5-5
3) 4) 5)
Identify the target dimension for the column of information selected. In the Field Type section, select Generation. Enter the generation Number represented by the columns members.
6)
Columns which contain information other than a members name, such as alias, property, formula, or User Defined Attribute (UDA) must follow the member name for which that columns information applies. For example, an alias column must follow directly after the member to which the alias applies. Enter the generation number is that entered for the main member.
7)
When all columns have been assigned values, click OK. You return to the Data Prep Editor ready to validate and save the rule.
5-6
Hyperion
Thinking Levels
Loading and maintaining outlines using the Level method assumes source files are naturally organized bottom-up, left to right or is ordered as such after applying rules that move source file columns into that organization.
Hyperion
5-7
1) 2) 3) 4) 5)
You should be in the Data Prep Editor with the file you wish to load visible. Select Field / Properties. If no field is highlighted, Field Number 1 is selected by default. Select the Dimension Building Properties tab. Click the name of the Dimension that is the target for the column of information. Select Level for the Field Type in the Field Definition area. Enter the level Number represented by the columns members.
5-8
Hyperion
Outline Loading Methods Repeat these steps for other columns in the file.
Columns which contain information other than a members name, such as alias, property, formula, UDA, and so on, must follow the member name for which that columns information applies. For example, an alias column must follow directly after the member to which the alias applies. Enter the same level number that was entered for the main member.
Format for level load: order fields left to right in ascending order.
7)
When all columns have been assigned values, click OK. You return to the Data Prep Editor ready to validate and save the load rule.
Parent/Child
Loading and maintaining outlines using the parent/child method assumes extracts can be made from source files in sorted parent/child paired relationships.
Hyperion
5-9
5-10
Hyperion
Select either Parent or Child as appropriate for the Field Type in the Field Definition area.
5) 6)
Enter the Number 0. Zero has no real meaning; it is just a required placeholder. Repeat this process for the next column in the file. Click Next to advance to the next column.
Columns which contain information other than a members name, such as alias, property, formula, UDA, and so on, must follow the member name for which that columns information applies. For example, an alias column must follow directly after the member to which the alias applies. Enter the 0 for the number field of the alias.
7)
When all columns are assigned values, click OK. You return to the Data Prep Editor ready to validate and save the load rule.
Hyperion
5-11
Selecting the Do Not Share check box turns off all sharing with Parent/ child loading. The Do Not Share check box is not available for generation or level loading methods.
Sharing for parent/ child is enabled or disabled from the Do Not Share check box.
Creating and maintaining shared members solves a variety of sharing issues that are more difficult or impossible to manage using the generation or level methods: If Do Not Share is not selected, sharing with parent/child is automatic without any special setup requirements. The Parent/Child method allows sharing at asymmetrical levels and generations which the other methods do not. The Parent/Child method enables building in one pass asymmetrical hierarchies for alternate rollup paths above the shared members. The other methods do not. The Parent/Child method enables sharing with members at upper levels which is difficult with the other methods.
Hmmm. Handles the funny stuff too.
5-12
Hyperion
Generation, Level, or Parent/Child references Automatically when you associate the base member dimensions with specific attributes
Hyperion
5-13
2)
3)
Click the name of the base dimension for which you want to create the attribute.
5-14
Hyperion
5)
6)
Enter the attribute dimension Name and select the attribute dimension Type.
Hyperion
5-15
8) 9) 10)
When all attributes have been specified, click Close. You return to the Dimension Properties dialog box. Click OK. You return to the Dimension Build Settings dialog. Click OK. The new attribute dimension is now visible in the dimension listings of the dialog boxes related to the Data Prep Editor.
Once the attribute dimension has been created, decide which build method is used: Generation Level Parent/Child You should be in the Data Prep Editor with the file you wish to load visible.
5-16
Hyperion
2) 3)
Select the Dimension Build Settings tab. Select the recently created attribute dimension and select the build method.
Declare the build method. In this example we are setting Capacity Total to be a Parent/Child build.
4)
Click OK. The load method is now selected for the load rule.
Hyperion
5-17
4) 5)
To move to the next field in the file and repeat the assignment process, click Next. When all fields have been assigned and you are ready to return to the Data Prep Editor, click OK.
5-18
Hyperion
When this process is complete, you are ready to run the load rule to create the new attribute dimension and attach the attribute to its respective dimension members. Here is a sample load rule that would finish building out the Capacity Total attribute dimension.
Note that the result of this build is a newly created attribute dimension. In addition, the Product dimension has been marked as the base dimension.
Hyperion
5-19
1)
If the attribute dimension already exists, skip this first procedure. You should be in the Data Prep Editor with the file you wish to load visible. Select Options / Dimension Build Settings.
5-20
Hyperion
3) 4)
Click the name of the base dimension for which you want to create the attribute. Click Properties.
Hyperion
5-21
6) 7)
Enter the attribute dimension name and select the attribute dimension type. Click Add.
8) 9) 10)
When all attributes have been specified, click Close. You return to the Dimension Properties dialog box. Click OK. You return to the Dimension Build Settings dialog. Click OK. The new attribute dimension is visible in the dimension lists associated with the Data Prep Editor.
5-22
Hyperion
To build an attribute dimension automatically, associating base member dimensions to specific attributes:
1)
This can only be done for attribute dimensions that are one level deep. You should still be in the Data Prep Editor with the file you wish to load visible. Select Options / Dimension Build Settings.
2) 3) 4)
Select the Dimension Build Settings tab. Select the base dimension to be associated with this attribute build. In the Attribute Members section, deselect Do Not Create Members.
Deselecting this option allows the dimension to be created on the fly.
5) 6)
Make sure to select the proper choice in the Build Method area. This selects the appropriate build method for the base dimension. When all these choices have been made, click OK. You return to the Data Prep Editor.
Hyperion
5-23
2)
3)
Select the Dimension Building Properties and for each field: Define the Field Type Select the appropriate Dimension Enter a Number (relevant only for generation and level builds).
If you are building the attribute dimension on the fly, the setting for the attribute column is usually: The attribute dimension name for the Field Type. The base dimension in the Dimension text box. The generation or level number corresponding to where attributes are being assigned in the base dimension.
5-24
Hyperion
You are now ready to run the load that associates the attributes with the base dimension members. Because we did not explicitly build the attribute dimension, the result is a flat attribute dimension only one level deep.
We have defined the attribute column as Field Type=Capacity Total, Dimension as the base dimension=Product, and Generation 5 because we are loading the Capacity attributes to Gen 5 of Products.
This yields a flat Capacity attribute dimension. Note that the product dimension is successfully tagged with the corresponding attributes.
Hyperion
5-25
2)
3) 4) 5)
Select the Field Type. Select the appropriate Dimension. Enter a Number value (relevant only for generation and level builds).
5-26
Hyperion
7)
8)
The start value is the first member if Tops of Ranges is selected in the outline under Settings / Attribute Names. If Bottoms of Ranges is selected the first member is zero. In either case, additional members is created at every range size interval.
Hyperion
5-27
If you are rebuilding an already existing attribute dimension, select Delete all Members of this Attribute dimension.
This is the same build as the preceding example. However, by setting the Capacity Total attribute as Numeric and using ranges, attributes are assigned according to where they fall in the range.
I love numbers!
5-28
Hyperion
Hyperion
5-29
5-30
Hyperion
Hyperion
5-31
5-32
Hyperion
Hyperion
5-33
5-34
Hyperion
2)
3)
What are the three Add As options and how does each work?
4)
Hyperion
5-35
When are the Add As methods used? Three additional Add As methods are used for capturing new member exceptions during a dimension build when all hierarchical references are not available in a source file or during a data load where the source may be out of sync with separate dimension build inputs. Without using an Add As method, members with data not already in the outline cause an error condition.
3)
What are the three Add As options and how does each work? Add as a sibling of a member with matching string - compares the new member to existing members using string matching Add as a sibling of lowest level - assigns the new member to the lowest level in a hierarchy. It is useful if you are loading to a flat dimension list. Add as a child - assigns the new member as a child of a specific member in the outline.
4)
How are attribute dimensions built? You can build attribute dimensions manually, but this is often unrealistic in large hierarchies. You can build attribute dimensions with Generation, Level, or Parent/Child references. This lets you build multi-tiered attribute dimensions. You can build at attribute dimensions automatically when you associate the base member dimensions with specific attributes. This can only be done for attributes that are one level deep. However, numeric attributes can be placed within ranges.
5-36
Hyperion
6
Loading Data
Chapter Objectives
Upon completing this chapter, you will be able to: Load data using any of three methods Explain what load rules can do for data loading Create a data load rule Maximize data loading
Loading Data
6-2
Hyperion
Loading Data
Free form loading comes in a couple of flavors and is accomplished through: Drag and drop interface for multiple data files Application Manager
3)
Click OK to load.
Hyperion
6-3
Loading Data
4) 5) 6)
Select the data files to load. Click OK. The Data Load window displays. Click OK. The data loads.
6-4
Hyperion
Loading Data
Unlike Lock & Send loading from a spreadsheet, there are no fundamental restrictions on the size of files or number of records that can be loaded using load rules.
Loading data with load rules involves matching the source file with the load rule.
Hyperion
6-5
Loading Data
Fast Track for Designers When Send is chosen, the data on the spreadsheet is written to the data blocks represented, and then those data blocks are unlocked.
The number of records that can be sent using this method is limited to spreadsheet row availability. This method is not generally used for large scale production loading.
Lock and Send is a method for entering data into Analytic Services directly from a spreadsheet without load rules.
6-6
Hyperion
Loading Data
Use Load Rules for managing messy data loading activities such as: Load hundreds or thousands of records at one time in a single batch process. Identify record elements to members in the outline. Overwrite existing loaded or calculated values and aggregate values on the fly during data load. Manage header information, such as ignoring extraneous headers or setting up special purpose headers for label identification. Select or reject records on data load, screening on key words or values by field. Manipulate date and data formats. Update unrecognized new members on the fly without creating error conditions. Create uniqueness in member names of source data by adding a prefix or suffix or by replacing member name elements. Clean up source file leading and trailing white space. Scale incoming data on the fly.
You view load rules associated with a database on the Server desktop. Click this object button to see and access specific Load Rules.
2)
3)
Hyperion
6-7
Loading Data 4)
Fast Track for Designers On the View menu, check Data Load Fields.
Once a source data file is open, the first 50 to 200 records in that file show in the top half of the Data Prep Editor interface.
The bottom half of the Data Prep Editor shows what the source information looks like going into Analytic Services after applying various rules.
6-8
Hyperion
Loading Data
4)
Select the Dimension represented by the columns label information. For columns that include data, select the specific Member in the accounts dimension which the data represents.
5)
If necessary double click on the check mark dimension visible in the Member area in order to drill down to specific members.
If the data is formatted such that there is only one column of data that represents a combination of all the dimensions, you may need to tag the field as a Data Field. Select Field / Properties.
Hyperion
6-9
Loading Data 6)
Fast Track for Designers Select the Global Properties tab if necessary.
7) 8)
Select Data Field. Click OK. The member name selected displays in the column header on the Analytic Services window of columns.
6-10
Hyperion
Loading Data
When you have multiple data columns, use member names for the field definition.
Use the Data field in loads where there is only one column of data and all the dimensions are represented.
Hyperion
6-11
Loading Data
2)
3) 4)
Select a data file. Click OK. The Data Load window displays.
6-12
Hyperion
Fast Track for Designers 5) 6) 7) 8) 9) 10) Select Use Rules. The second Find button becomes available.
Loading Data
Next to Rules file, click Find. The Open Server Rules Object window displays. Select a rule file. Click OK. The Data Load window displays. If you are capturing unknown members using any of the Add as methods on the Dimension Build Setting dialog, select Modify Outline. Select Load Data.
Match up one or more data files with a single load rule in the Load Data dialog box.
11)
This confirms that you are loading data. If this setting is not selected, your data does not load.
Select Interactive.
12)
This option interrupts the data load awaiting your intervention to deal with unrecognized members.
If you want no records to load if an error occurs in the data file, select Abort On Error During Dataload.
Hyperion
6-13
Fast Track for Designers When the desired settings are complete, click OK.
6-14
Hyperion
Loading Data
Hyperion
6-15
Loading Data
6-16
Hyperion
Loading Data
Hyperion
6-17
Loading Data
2)
3)
What is the Four Step Startup Procedure when you open a load rule?
4)
6-18
Hyperion
Loading Data
Hyperion
6-19
Loading Data
What can Load Rules do for data loading? Load hundreds or thousands of records at one time in a single batch process. Identify record elements to members in the outline. Overwrite existing loaded or calculated values and aggregate values on the fly during data load. Manage header information, such as ignoring extraneous headers or setting up special purpose headers for label identification. Select or reject records on data load, screening on key words or values by field. Manipulate date and data formats. Update unrecognized new members on the fly without creating error conditions. Create uniqueness in member names of source data by adding a prefix or suffix or by replacing member name elements. Clean up source file leading and trailing white space. Scale incoming data on the fly
3)
What is the Four Step Startup Procedure when you open a load rule? Do the same four things every time you open up a load rule that loads data. Associate an outline through the Options menu. Open a data source file through the File menu. Set the data file delimiter if the delimiter is other than tab. On the View menu, check Data Load Fields.
6-20
Hyperion
Loading Data What are two methods for initiating a load procedure? Manual method
From the Server Desktop, select Database / Load Data and fill out the Data Load dialog. Automated method Execute an ESSCMD batch script that includes an import command.
Hyperion
6-21
Loading Data
6-22
Hyperion
7
Dealing With Formats And Records
Chapter Objectives
Upon completing this chapter, you will be able to: Define global properties Handle data values on load Manipulate column fields Manage headers Select and reject records Capture unrecognized members
7-2
Hyperion
Hyperion
7-3
The Prefix and Suffix area lets you add a specific prefix or suffix to incoming member names. This feature is typically used where you need to create uniqueness in member names distinct from other columns.
Add a prefix or suffix to all members in a column.
Format Controls
In the lower left portion of the Global attributes panel, there are six controls that let you format your data file columns. This table lists the selections and defines their specific use.
Apply these check box controls to specific columns.
Data Field
Select when the column is the only data field in the data source file, that is. other columns and/or headers have identified the record in its completeness to all dimensions. (DL) Select for columns in data files where the information is extraneous to the outline and is not data. (DL) Just like the check box above but used only for dimension building, select for columns in dimension building files where the information is extraneous. (DB) Leading and trailing whitespace in source files cause errors that prevent loading. Leave this box selected unless such whitespace is part of the member identification which, incidentally, is not a very good idea. (Both)
Ignore Field During Data Load Ignore Field During Dimension Build
7-4
Hyperion
This feature is not commonly used, a carryover from the 2.x version of Analytic Services where member names could not include blank spaces. (Both) You may change the scale of incoming data by selecting and entering a multiplier. For example, 1,234,567 would be converted to 1,234.567 when multiplied by .001. (DL)
Replace With
You may create complex replace functions on member names. You typically use this feature to resolve member uniqueness problems, strip unwanted identifier information or substitute member name identifications to accommodate naming differences between source systems and Analytic Services.
Hyperion
7-5
Multiple parameters can be assigned to a column by adding additional Replace and With combinations.
You may set up replace functions that substitute on source column labels.
Using these add or subtract options make it more difficult to recover if the database crashes while loading data, although Analytic Services lists the number of the last row committed in the application event log file. To solve this problem, as a Database Transaction setting, set the Commit Row value as 0. This causes Analytic Services to view the entire load as a single transaction and commit the data only when the load is complete.
Aggregate or Not?
Select Options / Data Load Settings and click the Data Values panel.
Control aggregation (or not) of data values upon load.
7-6
Hyperion
Source data contains hierarchy information, but without unique member names.
Creating columns that duplicate, move and join source data, the load rule creates uniqueness in the product hierarchy.
Hyperion
7-7
This is the Move Field dialog from the Attributes menu for moving a column from one position to another.
7-8
Hyperion
Backing Up
To view or revise the step by step interpretive actions that Analytic Services applies for moves, splits, joins and creates, select Options/Data File Properties then click Field Edits. This dialog shows the sequential column edit steps that Analytic Services applies to the incoming source file.
When you get in trouble with moves, splits and joins, you can back up step-by-step on the Field Edits panel.
From this dialog you may back up, that is, undo in multiple steps, edits you have set up. Delete each step one at a time starting at the bottom.
Managing Headers
Sometimes you want special headers that do not appear in a source file. Other times you may want to exclude headers that do appear in the source file. Here is how to deal with such header problems.
To eliminate headers:
1) Select Options / Data File Properties and click Header Records. This choice lets you skip header lines that may appear at the top or within the source file.
Hyperion
7-9
Enter a value for the Number of lines to skip that corresponds to the number of header lines within the data file that you wish to ignore.
Enter number of lines to skip to avoid Analytic Services reading extraneous header
3)
Select the Ignore Tokens tab. Ignore specific tokens choice lets you ignore things like repeating report names that may appear within a source file. Token is another word for string. In the Token entry field, enter the token to ignore.
4)
5) 6) 7) 8)
To add the token to the list, click Add. Repeat steps 3 and 4 for each token to ignore. To change or delete the tokens to ignore, select the token in the list and click Change or Delete. Click OK when all desired changes have been made. You return to the Data Prep Editor.
7-10
Hyperion
2)
Enter phantom headers for dimensions not otherwise included, for example, Actuals. Every dimension must be represented in a source file for data loading. Phantom headers is a way to identify dimensions not included in the source file.
Hyperion
7-11
2) 3)
Enter the select or reject criteria or numeric value in the String/Number entry box. Select the conditional operator option that applies for the String entry.
7-12
Hyperion
5) 6) 7)
Apply Boolean operators for any additional condition criteria by selecting the appropriate option. Compose the addition criteria by following steps 2 through 4. Click OK when all desired criteria have been entered.
Hyperion
7-13
Dealing With Formats And Records 2) Select the Data Values tab.
3)
Select And or Or in the Global Select/Reject Boolean area for the Boolean operator that should be applied where multiple fields have select or reject criteria.
During a data load, if a member of a record is not in the outline, Analytic Services considers the record to be an error in which case the record is not loaded.
7-14
Hyperion
3) 4)
In the Dimension section select the dimension for which the safety net is to be constructed. Select an Add As option in the Build Methods area to select the specific safety net method.
Hyperion
7-15
For Add as child of, select the member from the drillable list that is to be the parent of the unrecognized members.
Using the Add As features, new members in the source data not in the outline maybe automatically added as children of an Unrecognized member.
5)
Select Ignore Conflicts. This prevents error conditions from occurring which result from Analytic Services attempting to add all members, whether present or not, using the chosen Add As rule. Click OK. Select the column headers of all columns not otherwise included in the Add As procedure. Select Field / Properties. Select the Global Properties tab.
6) 7) 8) 9)
7-16
Hyperion
Dealing With Formats And Records Select Ignore Field During Dimension Build.
It is not necessary to associate the fields not being ignored with their dimension names. However, to avoid getting an error when validating the load rule, you can associate columns not being ignored with the dimension name using the Field / Properties to access the Dimension Building Properties dialog. Use this to associate the Dimension. You do not need to set any Field Types.
Hyperion
7-17
7-18
Hyperion
2)
3)
How can you manipulate column fields for loading from the Field menu?
4)
How can you manage unwanted header lines included the data file?
5)
What ways can you handle incorrect data values included in a file?
Hyperion
7-19
How does Analytic Services handle existing values on load? By default, Analytic Services overwrites the existing values in the database with the new values in the data source. You have choices about how values are aggregated upon data load. For example, you can add or subtract the values in incoming records to existing values in an Analytic Services database. For example, if you load weekly values, you can add them to create monthly values in the database.
3)
How can you manipulate column fields for loading from the Field menu? You can move the fields to different positions. You can split a field or join fields together. You can create a copy of a field through the Create using the Join choice. You can create a new field through the Create using the Text choice.
4)
How can you manage unwanted header lines included the data file? You can select Options / Data Files Properties to access the Header Records panel. There you can select to ignore lines at the top of the data file. You can also use the Ignore Tokens tab to specify character strings that should be ignored when encountered, for example, repeating report names that may appear within a source file.
7-20
Hyperion
You can select the Options / Data Load Setting choice to access the Header Records panel where dimensions not included in the source file can be identified as phantom headers. 5) What ways can you handle incorrect data values included in a file? You can specify that a record be selected or rejected based on the criteria set in the Record / Select or Record Reject dialogs. You can set up a safety net whereby unrecognized members encountered during data load are identified and placed into a specific location in the outline.
Hyperion
7-21
7-22
Hyperion
8
Basic Retrieve Operations
Chapter Objectives
On completion of this module, you will be able to: Install the Spreadsheet Add-in and toolbar Log in to the server Understand the rules for placing labels on a worksheet so that Analytic Services may properly place data during a retrieve operation Describe the basic retrieve operations of Analytic Services Understand the conditions that might impact server performance
If the Spreadsheet Add-In is installed, but the Essbase menu does not display, then it needs to be added.
8-2
Hyperion
2) 3)
Select Hyperion Essbase OLAP Server DLL. If the DLL check box does not display, click Browse, and go to Essbase\Bin\Essexcln.xll to install the add-in to Excel.
Place your cursor over a specific tool to see the tool tip that explains the tools functionality.
Hyperion
8-3
Logging In
Users log in from their client machines to the Essbase OLAP server after starting MS Excel or Lotus 1-2-3.
2) 3)
Select a Server, type your Username and Password. Click Update. A list of Application/Database combinations that you have been granted access display under Analytic Services security system.
8-4
Hyperion
Select the database to which you want to link the currently active worksheet and click OK. The sheet is connected to the database chosen. Retrieval into subsequent sheets automatically links those sheets to the same database as the last connected sheet. You can verify a specific sheets connection from the Essbase/ Options/Style panel. By choosing Essbase / Disconnect you can view all connections from the disconnect dialog. All sheets are automatically disconnected when you exit from Excel or Lotus.
The disconnect dialog lets you view all current connections in all workbooks.
Label Scanning
Upon any retrieve action from the Essbase menu, such as Retrieve, Zoom In, Keep Only or Pivot, Analytic Services initiates a label scanning process left-to-right, top-to-bottom. The scanning looks for labels on the spreadsheet to match with members in the outline. The header section of the worksheet is scanned first, then the row / column section. Once at least one label is matched for each dimension with members in the outline, then Analytic Services knows where to place data, assuming the labels follow the rules of the game outlined in the following section.
The header section, sometimes called the Page Header, is scanned first. Rows and columns are scanned second.
Hyperion
8-5
General Rules
The following list describes general rules for placing labels on a worksheet so that Analytic Services may properly place data during a retrieve operation. If the rules are not followed, an error message dialog displays describing the error condition. When the error message is dismissed, the requested retrieve action is not performed. Labels on the worksheet must match outline members or their aliases exactly. Look out for trailing white space. A space is interpreted as a valid character. Worksheet labels are not case sensitive unless case sensitivity is set by the database designer in the outline by selecting Settings / Case Sensitive Members.
Any dimension may appear in the header or row/column sections in any combination with other dimensions. All dimensions, except attribute dimensions, must be represented in the header or row/column section before Analytic Services encounters a data point. Rows or columns that contain header or row/column labels for retrieving can be hidden. For example, labels for retrieval need not display on the visible report format. To hide a row, select the row to be hidden, then select from the Excel menus, Format/Row/Hide. Except for a few minor restrictions, labels that do not display in the outline. For example, your own special labeling may display anywhere on the sheet. Analytic Services alerts you to such extraneous members with a warning dialog box upon a retrieve action. The unknown member message may be toggled on and off from the Essbase/Options/Global panel. Labels that look like a numeric or date may be interpreted by Excel as a number or date convention rather than a member name. For example, 0198 is read by Excel as the numeric value 198. Precede such typed values with an apostrophe to cause them to be interpreted as text and thereby a valid member name from the outline.
8-6
Hyperion
When attribute dimensions are included in a report (they are not by default), generally they behave like regular dimensions in terms of navigation. However, when drilling on a level 0 attribute dimension, a different set of rules apply.
Hey, you didnt say anything about rule x.
Header Rules
The following rules apply to the scanning process for the header section of the worksheet. Only one member from a given dimension may display. Header members define all the data on the page for that dimension. If a dimension is represented in the header section, then members from the same dimension cannot display in a row or column. Any dimension (excluding attribute dimensions) not found on the worksheet during the label scanning process is placed into the header section at the dimension name (generation 1) member. Retrieving into a blank sheet places all non-attribute dimensions at generation 1 onto the sheet as a header except the first dimension appearing in the outline which displays as a row. Header member names may display in any order. They may also be stacked in multiple rows. Stacking header members results in a new header placement when you drill across columns. Zooming on a header member causes it to become a new row. Zooming on a header member holding the Alt key causes it to become a new column.
Members in the header section define the data for the entire sheet for that dimension.
Hyperion
8-7
Row/Column Rules
Follow these rules to apply the placement of row and column labels: Rows and columns must be below the page header section starting on a separate row. There must be at least one row and one column on a report. In some formats, Analytic Services may interpret one of the page headers as a column header. Column headings must be on a row of their own prior to the row headings. All members from a given dimension that is a column header must display on the same row.
Row headings must be in a column of their own, but row headings may reside in a column that sits between column headers. All members from a given dimension that is a row header must display in the same column.
8-8
Hyperion
Row and column headings must contain members from only one dimension. Rows and columns may be nested: There is no limit to the number of levels of nesting in any combination for rows and columns up to the total number of dimensions in the database. Nesting can be done with asymmetrical headers for columns by stacking member names. For example, the nesting relationships are hard wired one on top of another.
With asymmetrical headers, columns relationships between dimensions can be hard wired by stacking members.
Hyperion
8-9
Retrieve Mechanics
These are the basic retrieve operations of Analytic Services, all of which (except Flashback) initiate the label scanning process.
Retrieve
To pull data into an existing spreadsheet scanning the labels that are showing. Retrieve by: Selecting Essbase / Retrieve Double-clicking a blank cell or number with the left mouse button
Keeps or removes the selected member or members. Selections may be discontiguous (picked using Ctrl in Excel). Discontiguous selections are not possible using Lotus. Drill down from a selected member into the dimensions hierarchy as specified in the outline. Zoom In by: Selecting a member then selecting Essbase / Zoom In Double-clicking a member with the left mouse button
Zoom Out
To collapse back one level up from a selected member as specified in the outline. Zoom Out by: Selecting a member then selecting Essbase / Zoom Out Double clicking on a member with the right mouse button
Pivot
To change the row/column orientation of a dimension, or the order of nesting of dimensions in columns. Pivot by: Selecting a member then selecting Essbase / Pivot Selecting and dragging a member using the right mouse button
Flashback
A one step undo from the last retrieve operation. Flashback is not a retrieve operation that initiates the label scan process.
8-10
Hyperion
How a spreadsheet looks before and after a zoom in operation on the Performance and Lightbolt members.
The zoom in path follows the hierarchical organization of members in the outline.
Hyperion
8-11
If caught early in the process, you may cancel a retrieve request by pressing the Esc.
8-12
Hyperion
Retrieve Performance
Normally, retrieve operations should be quick, usually taking a second or two for a more complicated report that requires many data blocks to be brought into memory. Retrieve performance may be negatively impacted by server, network or database design conditions such as:
Poor Design Where data block size is too large with low block density, causing memory limitations for building complex reports requiring many blocks. Requesting a report that includes a large number of members that are dynamically calculated on-the-fly. This includes Attribute Dimensions. Where data is being requested from one database to another, especially over a network. Where too many users are attempting to access the server at one time. Where memory intensive operations such a calculations are occupying the server.
Retrieve performance may also be negatively impacted by client or user generated conditions such as Large Area Retrieve. This happens when a user performs a retrieve operation while selecting a whole worksheet or more than one column and Analytic Services attempts to retrieve into any large selected area. Press the Esc key to interrupt.
Hyperion
8-13
8-14
Hyperion
2)
Select a Server.
3) 4) 5) 6)
If it is not in the list of servers, enter the name or address of the server in the Server field. Check with your System Administrator if you do not have this information.
Type your Username. Type your Password. Select an Application/Database. Click OK.
2)
Hyperion
8-15
4)
Double-click Quarter 1.
5) 6) 7) 8) 9) 10)
Select Jan. Select Essbase / Zoom Out. Select Quarter 1 through Quarter 4. Select Essbase / Keep Only. Select Quarter 2 and, while holding down the Ctrl key, select Quarter 4. Select Essbase / Remove Only.
11)
8-16
Hyperion
2)
What is the order in which the worksheet is scanned when retrieving data?
3)
4)
What are three rules that apply to the header section of the worksheet?
5)
6)
Hyperion
8-17
5)
Name two of the basic retrieve operations of Analytic Services? Retrieve, which pulls data into an existing spreadsheet scanning the labels that are showing. Keep Only/Remove Only, which keeps or removes the selected member or members.
8-18
Hyperion
What are some conditions that might impact retrieve performance? Poor Design, where data block size is too large with low block density, causing memory limitations for building complex reports requiring many blocks. Dynamic Calculations requesting a report that includes a large number of members that are dynamically calculated on-the-fly. This includes Attribute dimensions.
Hyperion
8-19
8-20
Hyperion
9
Managing Options
Chapter Objectives
On completion of this chapter, you will be able to: Describe the global options that apply to all worksheets a user may open. Change the display, style and zoom options on an individual worksheet.
Managing Options
9-2
Hyperion
Managing Options
Global Options
Global Options are specific to the client machine set by the individual user. The option settings apply to all worksheets and workbooks that a user may open. Settings are made from Essbase / Options/ Global panel.
Global Options are set by each user and apply to all worksheets and workbooks.
Mouse Actions
These check boxes enable the left and right mouse functionality for zoom and pivot actions, and accessing linked objects.
Enabling mouse actions for Analytic Services disables some Excel functionality such as right mouse shortcut menus.
Hyperion
9-3
Managing Options
Display Messages
These options set messaging parameters. This table summarizes the display message selections.
Warnings This setting is the default message level which displays the most important information a user needs to know. This setting gives you all detail as recorded to the application log. Setting at this level is sometimes useful when debugging calc scripts since each log entry for the calculation process is displayed. This setting turns off all messaging, including retrieve format errors. Use this setting only if code is written to capture and report error conditions. Namely when using Excel VBA with a custom front end for users. This check box turns on and off the unknown member dialog. Usually this toggle is enabled when developing fixed format, read only reports, then turned off after reports are complete and issued to users. Normally, the toggle would be turned on for ad hoc style reporting.
Information
None
You can get rid of this dialog by deselecting Display Unknown Members on the Global Options panel.
Mode
Navigate Without Data is the only selection under Mode. It lets you develop reports using zoom, pivot and keep actions without retrieving from the Server (no data displays). This mode is normally set to on when developing reports and turned off once reports are complete.
Navigate Without Data may also be turned on and off from the Essbase menu.
9-4
Hyperion
Managing Options
Display Options
Display options are specific to individual worksheets. Each sheet may have settings of its own. Display settings are made from Essbase/ Options/Display panel and are saved with the Excel workbook.
Indentation
Three levels of indentation are provided, indenting by: Totals Subitems None The user cannot override Analytic Services indentation settings on retrieval sheets.
Where indentation (and potentially other formatting requirements) are very rigid, use the backsheet method where the formatted sheet is linked by formulas to an unformatted Analytic Services retrieval sheet.
Hyperion
9-5
Managing Options
Replacement
Replacement lets you enter your own nomenclature for #Missing and #NoAccess labels. For example, set #Missing to be dash (-) or N/A.
Suppress
Lets you suppress #missing rows, zero rows or underscore (_) characters in member names. Suppress #Missing and Zero functionality is defined by row. An entire row with #Missing or Zero values would not be shown if the feature is enabled.
Aliases
Suppress #Missing and Zero functionality have no memory (previously suppressed rows with no values do not reappear if they subsequently contain values). Use template retrieve with report script syntax to overcome this problem.
Aliases let you show reports using aliases rather than member names. There are two alias options.
Use Aliases Use Both Member Names and Aliases Aliases are used according to the alias table set. Members with no aliases default to the member name. Places both the member name and aliases on a report for row dimensions. This may be distracting where you have multiple nested rows. Member names are duplicated where there is no alias. This feature is not functional for columns.
Cell
Cell options let you control the display of certain cell characteristics.
Adjust Columns When enabled it automatically adjusts column width to the widest number, member name or user entered label spacing. Turn this feature on when creating reports and off when fixed format reports are finalized. Fills in outer nested member names (or aliases) in rows and columns when more than one dimension is used. This feature is useful when creating reporting formats for export to sources that require full row identification of data labels.
9-6
Hyperion
Managing Options
Style Options
Style Options are specific to individual worksheets. Each sheet may have style settings of its own.
Hyperion
9-7
Managing Options
Style settings are saved with the Excel workbook. The settings are made from the Essbase / Options / Display panel. Enabling styles requires selecting Use Style on the Display panel. There are three style categories
Member Styles Lets you set font characteristics (font, size, style, color, background and so on). For parent, child, shared members, members with formulas and members with a dynamic calc storage setting. Style settings apply to members of all dimensions. Parent style settings apply to all non-zero level members. Child style settings apply only to zero level members.
Lets you set different font characteristics for each dimension in your database. Lets you set font characteristics on data cells themselves (not member labels) for distinguishing Linked Objects, Read Only and Read/Write. A style setting must be set for Linked Objects if linked objects are used. Otherwise, users do not know what cell to select in order to view a linked object.
Click Format for each style type to set font, font type, size and effects such as color.
9-8
Hyperion
Managing Options
Zoom Options
Zoom options are also specific to individual worksheets. Each sheet may have zoom settings of its own, and these settings are saved with the Excel workbook. The settings are made from the Essbase / Options / Zoom panel.
Use the Zoom panel for sheet specific settings that govern zoom behavior.
Zoom In
Zoom In lets you set the zoom behavior when choosing Zoom from the Essbase menu or double clicking. There are eight settings that impact Zoom In.
Next Level The default setting where zoom goes to the next level in the hierarchy. For example, zooming from a member goes to the members children. Sets the zoom to drill down on all descendants of the member selected. Be careful not to zoom to all levels on a dimension with thousands of members! Sets the zoom to drill down to zero level members in relation to the member selected. This is a useful feature to use when you want to quickly see the source data which is usually loaded to the bottom of a hierarchy. All three are horizontal types of zooming that cross a dimensions hierarchy from the selected member rather than drilling down vertically. Allows for the drill down based on member formulas in the outline. The drill results in a list of the members which make up the formula. The parent member is retained on the report with its children.
All Levels
Bottom Level
Include Selection
Hyperion
9-9
Managing Options
If there are duplicate member names on a report, Zoom In only affects members of a specific group. For example, an asymmetrical report may contain Current Year and Budget Sales figures for Quarter 1. With this option enabled, you could drill down to the January value for Current Year while leaving the Budget value at the Quarter 1 level. This feature works in tandem with Within Selected Group. When enabled, it removes non-selected groups from the report. For example, if you are working on an asymmetrical report that contains both Current Year and Budget information and you drilled into Current Year Quarter 1, the Budget values would be removed from the report.
Zoom Out
The Zoom settings do not impact Zoom Out. In all cases, Zoom Out goes up to the next level from the member selected. Zooming Out from a shared member zooms back to the shared members parent.
Use zoom as a tool: the best Analytic Services spreadsheet users constantly change their zoom setting to facilitate moving around when creating reports or for ad hoc reporting.
9-10
Hyperion
Managing Options
2) 3) 4) 5)
You may want to save the file with a different name and work on the new file in order to preserve a clean copy of the file for future use and practice. If at any time you make an error that seems unrecoverable, simply close the file without saving it, then reopen it and repeat the exercise.
Connect to the Bigcorp Sales database. Select the Managing Options worksheet. Select Essbase / Options. The Essbase Options window displays. Select the Global tab.
6) 7) 8)
Clear all checkboxes on the left side of the dialog, and click OK. Double-click cell C7. Notice that no retrieval takes place. Double-click cell A4 (Lightbolt 365 A). No retrieval takes place.
Hyperion
9-11
Managing Options 9) 10) 11) 12) 13) Select Essbase / Options. The Essbase Options window displays. Select the Global tab.
Select Enable Secondary Button and Enable Double-Clicking. Click OK. Double-click C7.
Select THUNDERBALL 270 A. Select Essbase / Zoom Out. Select LIGHTBOLT 365 A. Select Essbase / Zoom Out.
If you do not select the Enable checkboxes in Global Options, this is the only way you can zoom in and out.
Select Essbase / Options. The Essbase Options window displays. Select the Global tab. Select Navigate without Data. Click OK.
9-12
Hyperion
Managing Options
This feature is very useful for speeding up operations while you are configuring the worksheet.
Select Essbase / Options. Select the Global tab. Deselect Navigate without Data. Select Enable Linked Object Browsing. Click OK. Select Essbase / Retrieve. Double-click on a cell containing data, (not a cell containing a label).
30)
Click Close.
31)
The Linked Object Browser only opens when you click a cell within the retrieval area.
Hyperion
9-13
Managing Options
5)
6)
Note the indentation of the product members prior to retrieving. Retrieve and note the difference. Experiment with indentation settings at your leisure.
Click OK.
9-14
Hyperion
Managing Options
Suppressing #Missing:
1) 2) 3) 4) 5)
Notice the #Missing labels. This tells you that there is no data in those cells on the Essbase OLAP server. Select Essbase / Options. The Essbase Options window displays. Select the Display tab. In the Suppress section, select #Missing Rows. Click OK. Select Essbase / Retrieve.
#Missing labels are only suppressed when the entire row is #Missing. Use this feature with care. Because Analytic Services is label-driven and you have suppressed those labels, Analytic Services does not return data to those rows in the future even if data is present for those members in future months. To return the label, you have to rename #Missing and Zoom Out.
6) 7)
Hyperion
9-15
Managing Options 8) 9) 10) 11) Select Essbase / Options. The Essbase Options window displays. Select the Display tab.
In the Suppress section, deselect #Missing Rows. In the Replacement section, enter n/a in the #Missing Label text box.
This lets you use a different label to identify cells that have no data. You can make the label anything you want.
6)
9-16
Hyperion
Managing Options
In the Zoom In section, select Next Level. In the Member Retention section, select Include Selection. Click OK. Select Performance. Select Essbase / Zoom In.
Hyperion
9-17
Fast Track for Designers Select Essbase / Retrieve. Lightbolt, Thunderball and Performance are still showing (that is what Include Selection does). Experiment with different settings and with Include Selection until you are comfortable with the effects of each. Different settings are useful in different situations. Select Essbase / Navigate Without Data. Close Corprpts.xls without saving.
14)
15) 16)
9-18
Hyperion
Managing Options
1)
The Style panel is only visible in the Options dialog when you are connected to a server. If you do not see the panel, select Essbase/Connect and connect to your server and database.
Hyperion
9-19
3)
4) 5) 6) 7)
Click OK. Select Child. Click Format. The Font window displays. Use this table to set the Child member format:
Font Style Size MS Sans Serif Bold 10
8) 9) 10) 11)
Click OK. Select the Display tab. In the Cells section, select Use Styles. The Use Styles option enables your style changes. Click OK.
9-20
Notice that there is no change, you must retrieve to see the styles.
Hyperion
Managing Options
1) 2) 3)
4) 5) 6)
This is important because they override styles set lower in the dialog.
In the Dimensions section, select Year Tot. Click Format. The Font window displays. Use this table to set the Year Tot dimension format:
Font Style Size MS Sans Serif Bold 10
7) 8) 9)
Click OK. The Essbase Options window displays. From the Background Color drop-down list, select Yellow. In the Dimensions section, select Product.
Hyperion
9-21
Managing Options 10) 11) Click Format. The Font window displays.
Click OK. The Essbase Options window displays. From the Background Color drop-down list, select Lime. Click OK. Select Essbase / Retrieve.
16) 17)
Clear all member and dimension styles. Close Corprpts.xls without saving.
9-22
Hyperion
Managing Options
2)
What happens when you select the Adjust Columns display option?
3)
Describe how the Member Styles option changes the characteristics of the members in a dimension.
4)
Hyperion
9-23
Managing Options
All Levels
Bottom Level
9-24
Hyperion
10
More Bells & Whistles
Chapter Objectives
Upon completion of this chapter, you will be able to: Use the Pivot, Member Selection and Cascade features to create spreadsheet reports Describe how to use spreadsheet formulas with Analytic Services retrieve functions Implement Dynamic Time Series reports Set up and use linked objects Drill with attribute dimensions
10
Using Pivot
Pivot is a powerful spreadsheet reporting feature that lets you dynamically change row/column orientation of dimensions and change the order of row or column nesting of stacked dimensions. There are two methods to execute a pivot: Pivot using the mouse Pivoting using the Essbase menu
10-2
Hyperion
10
Hyperion
10-3
10
Use Pivot to change the order of nesting of dimensions where there are multiple row or column headers.
Placing the cursor to the right of a row member being pivoted from a column causes the pivoted dimension to display to the right of that member. Placing the cursor within a row member causes the pivoted dimension to display to the left. Placing the cursor underneath a column member being pivoted from a row causes the pivoted dimension to appear under that member. Placing the cursor within a column member causes the pivoted dimension to display on top.
10-4
Hyperion
10
5)
6)
It is important to wait for the label, because Essbase thinks you are attempting to select a range of cells if you move the mouse before the labels have been retrieved.
While continuing to hold the right mouse button, drag the Distributor label under the first column header.
7)
Hyperion
10-5
10
This time, using the same right mouse technique mentioned previously, drag Distributor directly below Quarter 1.
9) 10)
Select Essbase / Flashback. Distributor returns to its original position. Practice pivoting until you are comfortable with the pivot technique.
10-6
Hyperion
10
In addition to the report layout, format the report as follows: Use styles to highlight all parent members. Attach a Linked Reporting Object (LRO) to a cell note, and set up a style to highlight cells with LROs.
Hyperion
10-7
10
Member Selection
The Member Selection window provides direct access to your database outline for pasting member names.
The Member Selection dialog presents powerful choices for pasting member names onto a spreadsheet for retrieval.
10-8
Hyperion
10
For any of the four methods, select the dimension to be placed on the worksheet from the dimension drop-down list. When the Time related dimension is selected, the By Dynamic Time Series method choice under the view method is enabled.
Choosing from the dimension drop-down list determines which dimension members are passed to your worksheet.
For any of the four methods, you may select a subset rule which lets you qualify member lists by wild card search criteria and/or UDAs. Using the Save and Open buttons you may save and later recall any complex member selection rule set you define.
Lets see. Was it Lightbolt, Lightball, or just plain Light.
Hyperion
10-9
10
6) 7)
From the list, select a rule set of members. To view the list of members selected from the chosen rule, click Preview.
8)
The preview dialog also tells you how many members the rule generates.
Click OK. The members selected from the rules display on the worksheet starting from the position of the cursor.
10-10
Hyperion
10
When you are creating a member list you can also specify the direction you want members displayed as well as the appearance of shared members. Placement is either down or across the worksheet is based upon whether the Place Down The Sheet check box is selected. Shared members are pasted on the worksheet or not based upon whether the Suppress Shared Member is selected.
Using the By Member Name Method: a rule of All Descendants And Member selecting on Performance places Performance in the outline onto the worksheet.
Hyperion
10-11
10
In the View Method section, select the By Level (or Generation) Name. In the Members section, select a level (or generation) number or name (if levels were named in the outline). Click Add. The selection displays under Rules. In the Rules section, right-click on the member.
6) 7)
Only the Subset choice is available.The By Member Name rules choices are broader because genealogy (namely, vertical) relationships are possible to define.
To view the list of members selected from the chosen rule, click Preview. Click OK. The members selected display on the worksheet starting from the position of the cursor. Placement is either down or across the worksheet is based upon whether Place Down The Sheet is selected.
8)
10-12
Hyperion
10
Shared members are pasted on the worksheet or not based upon whether Suppress Shared Member is selected.
Using the By Level Name Method: Selection on Level0, Product returns all members at the zero level from he Product dimension.
Hyperion
10-13
10
5) 6) 7)
Select Performance and Value. Click Add. Performance and Value display under Rules. Click OK.
8) 9)
Select Performance and Value. Select Edit / Delete. The selected members disappear.
10-14
Hyperion
10
6) 7)
Hyperion
10-15
10
More Bells & Whistles 8) 9) 10) 11) Click Close. The Member Preview window closes.
Click OK. The descendants of Family Total display on the report. Select the descendants of Family Total. Select Edit / Delete. The descendants of Family Total disappear.
5) 6)
Select Lev2,Product. In the Rules section, right-click Lev2, Product. The only available choice when using By Level Name is subset as opposed to the numerous choices available when using By Member Name. Click Remove All. Add Lev0, Product to the rules window. Click Preview. A preview of selected members displays. Click Close. In the Output Options section, select Suppress Shared Members.
7) 8) 9) 10) 11)
10-16
Hyperion
10
Click Preview. Only 27 members are selected, as opposed to 78 on the previous preview. Click Close. Deselect Suppress Shared Members. Click Remove All.
2)
Add different generations to the Rule window and preview the results.
3) 4) 5)
Note that the levels are counted from the lowest level in the database upward and the generations are counted from the top of the database downward.
Select Gen3, Product. Click Add. Gen3,Product displays under Rules. Click OK.
6)
Hyperion
10-17
10
From the drop-down list, select Feb. Click OK. In the Output Options section, deselect Place Down the Sheet. Click OK.
10-18
Hyperion
10
Hyperion
10-19
10
Typing is cheating!
I love reports
10-20
Hyperion
10
Cascade
Cascade reporting lets you create one standard report complete with precise styles, color coding and number formats and replicate this report format to multiple cost centers, regions, product lines or other business view elements.
4)
Cascade replicates a standard format with multiple worksheets based on cascading from a selected member in a hierarchy.
Hyperion
10-21
10
More Bells & Whistles 5) 6) 7) Select a cascade level. Select the Destination Options tab.
Set the Destination Directory (where files are stored), the Destination Types, File Information and Naming Information.
With Cascade you have choices about where to locate the created files and how to name them.
8) 9)
Select the Format Options tab. If desired, set Header and Footer information, Copying Formatting, Suppress Missing Rows and Whether to Include Table of Contents.
Cascade files generally assume the format of the original files. You can also customize headers and footers and toggle suppress missing on and off.
10)
Click OK. Cascade creates multiple workbooks and/or sheets within a workbook that replicate your standard format, retrieves on each replicated sheet and indexes the sheet references.
10-22
Hyperion
10
4) 5) 6)
Select the Cascade Information tab. Ensure that it is set to cascade on OEM, Next level. Select the Destination Options tab.
7) 8)
Browse to the directory where you would like to store the reports. In the Destination Types box, select One Workbook, Separate Sheets.
Hyperion
10-23
10
In the File Information area, select Open Created Files. For Prefix type Zip. For Suffix type Da. For Workbook Name type OEMRpt. Select the Format Options tab.
Select Copy Formatting. Select Include Table of Contents. Click OK. The OEMRpt.xls file generates. Open OEMRpt.xls and review the worksheets.
10-24
Hyperion
10
5)
You may have to switch File type of to All Files to see this file in the directory.
Click Open.
Hyperion
10-25
10
Formula Behavior
You manage formula behavior on the spreadsheet from the Essbase / Option / Mode panel in the Formula Preservation group. With Formula Preservation options deselected, Analytic Services steps on formulas in a spreadsheet. For example, formulas of any type on a sheet are overwritten by a null. To keep formulas on a sheet during a retrieve operation, therefore, you must take action to preserve formulas.
The Formula Preservation group box provides you the option from maintaining formulas on a worksheet.
Retain On Zooms
10-26
Hyperion
10
When you use formula preservation you need to consider: Retain On Zooms with Fill Formulas is intended to work correctly only on row zoom operations. Column zoom operations with these options selected produce unexpected results.
Retain on Zooms with Formula Fill fills in the correct formula for new members inserted during the zoom operation.
Hyperion
10-27
10
3)
This dialog box appears every time you retrieve or zoom in on this report. This is not an error. It is an informational message that informs you that a given piece of metadata does not appear in the database. For the purposes of this course, always click Yes to continue.
Click Yes.
4) 5) 6) 7) 8)
Select cell D5 and type the formula =B5-C5. Copy the formula down to cell D7. Select Essbase / Retrieve. The formula disappears. Select Essbase / FlashBack. Select Essbase / Options. The Essbase Options window displays.
10-28
Hyperion
10
In the Formula Preservation section, select Retain on Retrieval. Click OK. Select Essbase / Retrieve.
1) 2)
3) 4) 5) 6) 7) 8)
Select LIGHTBOLT. Select Essbase / Zoom Out. Select Essbase / Options. The Essbase Options window displays. Select the Mode tab. In the Formula Preservation section, select Retain on Zooms. Click OK.
Hyperion
10-29
10
More Bells & Whistles 9) 10) 11) 12) Select cell D5 and enter the formula =B5-C5. Copy the formula down to cell D7. Select Performance. Select Essbase / Zoom In.
The formula is preserved for Performance, but not for its children.
Select Essbase / Flashback. The original report displays. Select Essbase / Options. The Essbase Options window displays. Select the Mode tab. In the Formula Preservation section, select Formula Fill. Click OK. Select Performance. Select Essbase / Zoom In.
Note that the formula retains for both Performance and its children.
10-30
Hyperion
10
Dynamic time series calculations are calculations on-the-fly performed at the time of the spreadsheet request. Values are not stored.
It is also common to customize an alternate time rollup with shared members or calculations. Using dynamic calculation storage attributes can minimize the impact on database size.
This is the interface in Application Manager for creating dynamic time series calculations in Analytic Services.
The spreadsheet implementation of dynamic time series reporting is simple and elegant.
Hyperion
10-31
10
2) 3) 4)
Select the Display tab. In the Dynamic Time Series section, select Latest Time Period. From the drop-down list, select the latest time period.
To enable dynamic time series reporting, specify the latest time period.
5)
On your worksheet, place the dynamic time series key words, or their aliases, on a worksheet just as if they were any other member in the time dimension.
You may see and paste onto your sheet the Dynamic Time members set up for the database by selecting By Dynamic Time Series in the View Method option group in the Member Selection dialog. This option is available only when the Time dimension is selected in the dimension drop list.
You may access dynamic time series member in Member Selection by clicking the By Dynamic Time Series method.
10-32
Hyperion
10
When creating this report you should: Use Corprtps.xls worksheet Challenge3. Add Deutsch Mark members with formulas use 2.2DM/$ as an exchange rate Set options so that can still drill down or up on any accounts members and preserve formulas
Hyperion
10-33
10
Linked Objects
Analytic Services is ideally suited for loading, storing and calculating numeric data. However, a text capability is provided where notes can be associated with specific member combination data points, and other files such a Word document, Powerpoint slides or even another linked Analytic Services database can be associated with a data point. The feature set is Linked Objects.
3) 4) 5)
6)
Click OK.
10-34
Hyperion
More Bells & Whistles Select Essbase / Options. The Essbase Options window displays. Select the Style tab.
10
9)
If you do not set a distinctive style for linked objects, your users cannot find them.
2) 3)
Hyperion
10-35
10
Click Attach. The Attach Liked Object window displays. Select File. Browse to the directory containing the file. Click Open. The Attach Liked Object window displays. If desired, enter a File Description. Click OK. The Linked Object Browser displays. Click OK.
10-36
Hyperion
10
4) 5) 6)
This dialog box appears every time you retrieve or zoom in on this report. This is not an error. It is an informational message that informs you that a given piece of metadata does not appear in the database. For the purposes of this course, always click Yes to continue.
Click Yes. Select Essbase / Options. The Essbase Options window displays. Select the Global tab.
Hyperion
10-37
10
In the Mouse Actions section, select Enable Linked Object Browsing. Click OK. Double-click cell C5.
10)
Click Attach.
11)
12) 13)
1) 2) 3)
Notice that you cannot tell which cell has the attachment.
10-38
Hyperion
Fast Track for Designers 4) 5) Click Format. The Font window displays.
10
6) 7) 8) 9) 10)
Click OK. The Essbase Options window displays. Select the Display tab. In the Cells section, select Use Styles. Click OK. Select Essbase / Retrieve.
Hyperion
10-39
10
10) 11)
Double-click cell C7. The Linked Object Browser displays. Click View/Launch.
10-40
Hyperion
10
Hyperion
10-41
10
If the base dimension member are at the same or lower than where the attributes have been assigned to, then the only effect is to move the base dimension next to the attribute being drilled on. Since multiple base dimension members may be displayed, the preceding rules must be applied to each displayed member.
The outline has a Region attribute dimension associated with a Customer base dimension.
Here are some reports to clear things up. Refer to the picture of the outline on the previous page.
Before: In this report, we drill on Mid West. Notice that the associated base dimension members for Customer which is above the base members tagged with the Region attribute.
After: Drilling on the Mid West (Level 0) brings Customer adjacent to it and results in a list of all Customers with the Mid West attribute.
10-42
Hyperion
10
Now, take a look at the same example but this time instead of drilling with Customer displayed, we do it with IBM displayed:
Before: In this report, we drill on Mid West. Notice that the associated base dimension members for Customer are both above (OEM) and at the same level (IBM) as the base members tagged with the Region attribute.
After: Drilling on the Mid West brings Customer adjacent to it. However, the displayed customers this time are OEM and its descendants that have the Mid West attribute (AST). IBM is also displayed because it is at the same level as customers with the Region attribute.
When the level 0 attribute member being zoomed on is in a column: In all cases, it pivots the attribute dimension from the column to the innermost row. If only one member from the base dimension is displayed as a page dimension, then it stays as a page dimension without expanding on the base dimension member.
Hyperion
10-43
10
If the base dimension members are at a level higher than where the attributes have been assigned to, then it expands the base dimension to show all members below each base dimension member with that attribute. If the base dimension members are at the same level or lower than where the attributes have been assigned to, then the only effect is to move the base dimension next to the attribute being drilled on.
Before: In this report, we drill on Mid West which is placed as a column. Notice that the associated base dimension member is Customer and is played as a Page header.
After: Drilling on the Mid West only pivots it to be the innermost row in the report. Notice that Customer is left as a Page header.
10-44
Hyperion
10
Type in the Attribute Calculations dimension and drill to see all the available attribute calculations.
Hyperion
10-45
10
In cell A2, type Region Total. Select Essbase / Retrieve. Select Region Total. Select Essbase / Zoom In. The children of Region Total display. Select Mid West. Select Essbase / Zoom In. The report displays all customers with the Mid West attribute. Select Region Total. Select Essbase / Zoom Out. In cell B2, type OEM. Select Region Total. Select Essbase / Zoom In. The children of Region Total display. Select Mid West. Select Essbase / Zoom In. All OEM customers with the Mid West attribute display. In cell G1, type Attribute Calculations. Select Essbase / Retrieve.
10-46
Hyperion
Fast Track for Designers 18) 19) Select Attribute Calculations. Select Essbase / Zoom In.
10
Hyperion
10-47
10
2)
What are the methods for selecting and pasting members into your spreadsheet report?
3)
4)
5)
6)
What are the differences between attribute dimensions and ordinary dimensions?
10-48
Hyperion
10
Hyperion
10-49
10
4)
What is Dynamic Time Series reporting? A process that is used to perform dynamic period-to-date reporting. Dynamic time series calculations are useful because they are performed automatically.
10-50
Hyperion
More Bells & Whistles What can you use the linked objects feature for?
10
Use the linked object feature to associate text with specific member combination data points, and other files such a Word document, Powerpoint slides or even another linked Analytic Services database can be associated with a data point. 6) What are the differences between attribute dimensions and ordinary dimensions? In many ways attribute dimensions behave like ordinary dimensions with some key differences: Attribute dimensions do not show up in a standard retrieve. If you open a new connection to a database with attribute dimensions and retrieve into a blank sheet, the attribute dimensions do not display. In order to see them you must request them explicitly by typing in the attribute member name or by using the Query Designer. With attribute dimensions, there is a default Attribute Calculations dynamic dimension. In terms of navigation, this behaves like other attribute dimensions. By default it is not displayed on retrieves until requested explicitly by typing in the calculation attribute name or by using the Query Designer. The names used for the Attribute Calculation dimension can be changed in outline editor. If no Attribute Calculation is displayed, the default is to return summations across the attribute. Once attribute dimensions are in a report they behave similarly to normal dimensions. All the navigation actions such as Zoom operations or Pivots are normal. However, Zoom in on level 0 attribute members gives you different behavior depending on two factors: Where the attribute member displayed is positioned in the report: as a page, row, or column dimension. Which base dimension members are displayed prior to the zoom. This gets back to the hierarchy of the base dimension. Each base dimension member displayed can be above, below, or at the same level as the members tagged with the drilled on attribute dimension.
Hyperion
10-51
10
10-52
Hyperion
11
Report Development Procedures
Chapter Objectives
Upon completion of this chapter, you will be able to: Build a spreadsheet report from scratch.
We have buried you in the features and functionality of spreadsheet reporting. Now it is time to put it all together by building real world reports.
Before
Easy?
After
11-2
Hyperion
11
Hyperion
11-3
Select Global Display Unknown Members. Select Global Mode Navigate Without Data (Optional).
11-4
Hyperion
11
Using Member Selection, or by typing directly, enter all of the page header names in the header section, and do a test retrieve. For example, if units is a page header from the Accounts dimension, with this header set, then all subsequent test retrieves shows unit data, thus helping you to understand where your data is. If you are using Navigate Without Data which speeds up the development process, then data do not display.
STEP 3: Now focus on getting the correct level of detail for rows and columns.
Hyperion
11-5
Setting spreadsheet formatting prior to organizing rows and column is fruitless. Format settings do not travel in Analytic Services with zooming and pivoting. Once rows and columns are in place, enable Suppress Missing (if appropriate) and do a test retrieve. This step should be taken prior to setting any spreadsheet formats because row organization is adjusted by the Suppress Missing retrieve. Implement spreadsheet reporting preferences such as: Inserting rows between subtotal sections. Specifying numeric settings. (dollars, %, decimals, and so on) Specifying font styles, borders, colors, and so on. Hiding the Analytic Services header row. Setting up your own report labels. Entering spreadsheet formulas as required. And other formatting as appropriate.
STEP 4: With rows and columns in place, you can now start making the report look pretty using spreadsheet formatting options.
11-6
Hyperion
11
The following are our recommended option settings for fixed format reports: Select Formula Preservation Retain On Retrieval Zoom Options set to Next Level and Include Selection Indentation set to the reporting preference Select Suppress #Missing and Zeros (if appropriate) Select Cells Use Styles and implement styles Deselect Global Display Unknown Members Deselect Global Mode Navigate Without Data
Is that it?
Hyperion
11-7
You may want to explore using the Drill option Within selected Group.
11-8
Hyperion
11
Hyperion
11-9
What are the steps to build a spreadsheet from scratch? Set Interim Options Set Page Header Labels Set Row and Column Members Set Spreadsheet Formatting Set Final Options
11-10
Hyperion
12
The Query Designer
Chapter Objectives
At the end of this chapter, you will be able to: Describe how to use the Query Designer and Analytic Services Report Writer (Report Writer) Build reports using the Query Designer
12
12-2
Hyperion
12
The Query Designer (version 6 and later) has an intuitive interface that helps build reusable queries.
The Query Designer wizard is the only part of the spreadsheet client addin that lets you create reports based on data values as opposed to members labels. This is accomplished through filtering and sorting tools embedded in the interface which let you apply specific, user-defined criteria to the data. You can use filtering and sorting to: Create top or bottom lists (for example, top ten customers based on total sales) Identify members with variance within specified ranges (for example, actual versus budget greater than 10%)
Hyperion
12-3
12
Identify members with values with specific ranges (for example, units sales between 100,000 and 500,000) Sort members according to ascending values (for example, ranking members based on total sales)
Each wizard includes tools for filtering and sorting data based on values.
Like other reports you create, reports generated with the Query Designer wizard are reusable. The wizard defines a query which can itself be saved for future use. When you run the query, it can generate the final report two ways.
Excel Workbook The Excel Workbook report can then be saved just like any other. It is not necessary to run the query again if you want to use the report in a subsequent time period. Simply change the member names in the Excel Worksheet, connect, and retrieve. Report scripts can be saved along with the query. Report scripts are used by system administrators to create data extracts for data load files and other system maintenance tasks. Report Scripts are also used to create large reports unsuitable for spreadsheet production.
Report Script
12-4
Hyperion
12
To get started:
1) 2) 3) Open a blank worksheet and connect to the Analytic Services database you want to be the source of the report. Select Essbase / Options. The Essbase Options window displays. Set your options to appropriate settings (such as Adjust Columns, Use Aliases and so forth).
Hyperion
12-5
12
If you have chosen specific options to use, also select Use Sheet Options with Query Designer (located on the Options / Display panel).
You must specifically check Use Sheet Options with the Query Designer if you want your options to stick.
5)
6)
In the Navigation Panel (panel on left), select the [bookname]sheetname for the sheet where you want to create the query. Right-click the sheet and select New / Query.
7)
12-6
Hyperion
12
Place dimension tiles as page headers, rows or columns. You specify the order of nesting for the rows and columns.
3) 4)
Drag and drop tiles from their default location to the Row section of the dialog including left to right sequential placement of nested rows. Drag and drop tiles from their default location to the Column section of the window, including top to bottom sequential placement of nested columns.
Hyperion
12-7
12
Because these are page headers the member selection only allows one member to be selected.
2)
In the members window, right-click a page member and select and Add to Selection Rule. The selected member appears in the Selection Rules window. Repeat this procedure for other Page header tiles.
3)
To delete a selection rule, right click the member in the Selection Rules window and select Delete Selection Rule.
12-8
Hyperion
12
Double-click a Row or Column tile in the Layout Panel or select the row or column dimension in the Navigation Panel.
Member Selection gives you lots of options: here we are selecting all children of Scenario.
Here you can select multiple members: you can select them by double clicking the individual members; right-click the dimension to change the view from the default Member Names to Generation or Level. Once you have made a selection, you can right-click the Selection Rules for more options such as: selection of children or descendants of a member.
5)
Repeat the above procedure for each Row and Column tile.
To delete member selections, right-click the member in the Selection Rules window and select Delete Selection Rule(s).
Hyperion
12-9
12
By right-clicking the Member selection, you can apply a new member filter. You can then select criteria based on UDA, generation or level, or pattern matches. You can also have AND or OR selection criteria to get selections such as all level 0 products with a particular UDA. In summary, you should be able to do everything that Member Selection is capable of doing:
Save Query As
12-10
Hyperion
12
Close Query
Close out your queries to clear up the Query Designer navigation window if these no longer need to be used. This does not save the query. This runs your report. It is a good idea to save the query before applying it but it is not required
Apply Query
Hyperion
12-11
12
The Hyperion Essbase Query Designer 2) In the Navigation Panel, click Data Filtering.
Select Data Filtering in the Navigation Window. This query filters for top 10 products based on Q1 Current Year values.
3) 4) 5)
Next to Rank, select Top and/or Bottom. Specify the number of Rows. Select the Dimension being ranked.
6)
When using Top/Bottom N filters, you should consider these issues: Top N and Bottom N row members may display simultaneously on the same report. Column references for setting the top/bottom criteria include stacked columns where multiple nested dimensions are included in the member specifications. Top/bottom analysis should generally be done on row members that are all at the same generation or level. Otherwise, intermediate subtotals skew the results. Top/bottom analysis should generally be done on row members that are defined by a member selection macro using generation, level, UDA or similar references where a complete refreshed pool of members, not a hard wired list, is the basis for the filtering.
12-12
Hyperion
12
Select Data Filtering in the Navigation Window. Then double click here to add filtering.
3)
In the Data Restrictions section, double-click double click to create a new data restriction.
Value filtering allows you to set up filters for specific values, value ranges and comparisons of values.
Hyperion
12-13
12
The Hyperion Essbase Query Designer 4) Select the Column Used for Filter.
5) 6)
This column contains the values that are the criteria for the screening of row members.
From the drop-down list. Select a Boolean comparison operator (=,>,<,...). Specify a comparison value: a value of, the data values in column or a #Missing value.
When using value filters you should consider these issues: Multiple value filters can be applied using And/Or logic. This feature lets you specify value ranges for screening in addition to specific value thresholds. Column references for setting the top/bottom criteria include stacked columns where multiple nested dimensions are included in the member specifications. Value screening should generally be done on row members that are all at the same generation or level. Otherwise, intermediate subtotals skew the results. Value screening should generally be done on row members that are defined by a member selection macro using generation, level, UDA or similar references where a complete refreshed pool of members, not a hard wired list, is the basis for the filtering. Beginning with Analytic Services 6.5, the Query Designer lets you use negative numbers as filtering criteria.
12-14
Hyperion
12
To set up a sort:
1) 2) Create a new query including member selections, or open an existing query. In the Navigation Panel, double-click Data Sorting.
Select Data Sorting in the Navigation Window. Set up the sort in the data sort panel.
3) 4)
5)
This is the column which contains the values that are the criteria for the sorting of row members.
From the drop-down list specify whether you want sorting to be done in Ascending or Descending order.
Hyperion
12-15
12
The Hyperion Essbase Query Designer When sorting values, you should consider:
Multiple sorts can be set up for specific row members based on different column headers. Column references for setting the sorting criteria include stacked columns where multiple nested dimensions are included in the member specifications. Sorting should generally be done on row members that are all at the same generation or level. Otherwise, intermediate subtotals skew the results. Sorting should generally be done on row members that are defined by a member selection macro using generation, level, UDA or similar references where a complete refreshed pool of members, not a hard wired list, is the basis for the filtering.
12-16
Hyperion
12
Report Scripting
The Report Writer is often used as an export tool to extract data. If you ever need to write a Report Writer script do not start from scratch. Because the syntax is difficult to remember, you can use the Query Designer to create the report, then simply make modifications to it: In the Query Designer, you do not need to specify anything. The default is to create a report upon saving a Query Designer file. Upon saving a the Query Designer report, the files created are Reportname.eqd and Reportname.rep.
Modification to any one of these in the future does not effect the other. In other words, the link is broken after saving. This is a great way to create reports without having to remember detailed report script commands. For help on Report Writer commands as well as syntax requirements, open index.htm and navigate to Report Commands.
Look in Application Manager for the .REP report and open it. The first line is a comment specifying that the report was created by the Query Designer.
If you run the report in Application Manager it does not look good because of the format command put in by the Query Designer. Turn the format command into a comment (//) or simply delete it, and the output is much more readable.
Hyperion
12-17
12
12-18
Hyperion
12
Hyperion
12-19
12
2)
Describe the Value Screening feature of the Query Designer and some of the considerations when using this feature.
3)
12-20
Hyperion
12
Hyperion
12-21
12
12-22
Hyperion
13
Calculation Basics
Chapter Objectives
Upon completion of this chapter, you will be able to: Use unary operators for calculation Explain how to use formulas to calculate in an outline Identify when it is appropriate to use formulas in an outline as opposed to a calc script function Identify basic calc script functions Describe basic calc script process
13
Calculation Basics
Huh?
13-2
Hyperion
Calculation Basics
13
Unary Operators
The first and most efficient manner of calculating in Analytic Services is in the outline through the use of unary operators. Unary operators are addition, subtraction, multiplication and division operators that determine the many ways in which data values aggregate to a parent level.
Use unary operators and shared members in the Accounts dimension for building complex models.
Where possible, you should maximize the use of unary calcs (consolidation operators) for model building in the Accounts dimension. Unary operator calculations are faster than formulas in the outline or in calc scripts. Unary calc construction provides drill down visibility in the accounts hierarchy to see where the number came from. Formulas can obscure visibility into the calculations.
The underlying design principal: use unary calcs where possible; minimize the use of formulas in the outline or in calc scripts.
Hyperion
13-3
13
Calculation Basics
There are six unary operators that can be assigned to dimension members:
+ The default operator. When a member has the + operator, Analytic Services adds that member to the result of previous calculations performed on other members. When a member has the - operator, Analytic Services multiplies the member by -1 and then adds the product to the result of previous calculations performed on other members. When a member has the * operator, Analytic Services multiplies the member by the result of previous calculations performed on other members. When a member has the / operator, Analytic Services divides the member into the result of previous calculations performed on other members. When a member has the % operator, Analytic Services divides the member into the sum of previous calculations performed on other members. The result is multiplied by 100. When a member has the ~ operator, Analytic Services does not use it in the consolidation to its parent.
Order of Operations
It is important to understand how Analytic Services calculate members with different operators. When you are using just addition and subtraction operators the order of members in the outline is irrelevant. However, when you use any other operator, you need to consider the member order and its impact on the consolidation. When siblings have different operators, Analytic Services calculates data in top-down order. The following example illustrates a top-down calculation:
Sample Roll-up
Parent1 Member1 (+) 10 Member2 (+) 20 Member3 (-) 25 Member4 (*) 40 Member5 (%) 50 Member6 (/) 60 Member7 (~) 70
13-4
Hyperion
Calculation Basics
13
Analytic Services calculates Member1 through Member4 as follows: (((Member1 + Member2) + (-1)Member3) * Member4) = X (((10 + 20) + (-25)) * 40) = 200 If the result from Members 1-4 is X, then Member5 consolidates as follows: (X/Member5) * 100 = Y (200/50) * 100 = 400 If the result of Member5 is Y, then Member6 consolidates as follows: Y/Member6 = Z 400/60 = 66.67 Analytic Services ignores Member7 in the consolidation.
Hyperion
13-5
13
Calculation Basics 2) 3) 4)
Fast Track for Designers Select functions in the Formula Editor to place them onto Formula Editor interface. Select members from the Dimensions/Members list windows to place them onto the Formula Editor interface for building formulas. Terminate formulas with a semicolon (;).
Create a formula associated with a member in the outline from the Formula Editor.
13-6
Hyperion
Calculation Basics
13
If the data storage type for the member is Store Data, the formula is executed in outline order during a CALC ALL execution, a CALC DIM on the member's dimension or by invoking the member calc directly (for example: Unit Mix;). If the data storage type for the member is Dynamic Calc or Dynamic Calc And Store, the formulas are executed when a user retrieves the member in a spreadsheet.
An example of a formula intensive outline design where formulas are used instead of unary operators.
Hyperion
13-7
13
Calculation Basics
Fast Track for Designers The member requires a Two Pass Calc operation and is flagged as such, and otherwise the conditions are met for accomplishing a Two For The Price Of One calculation. The member's data storage type is Dynamic Calc or Dynamic Calc And Store. Formulas for Dynamic Calc members cannot be executed from within a calc script.
Dynamic Calc storage members that have formulas must have the formula display with the member in the outline. Dynamic Calc members cannot be executed from a calc script.
Calc Scripts
Outside of calculating in the outline, the other option for calculating in Analytic Services is using calc scripts. Every database needs at least one calc script to roll-up (aggregate) unary operators and execute formulas in the outline. Input of data does not execute any calculation process.
The default calc script for a new database is a CALC ALL statement.
13-8
Hyperion
Calculation Basics
13
HOUSEKEEPING commands for turning off intelligent calc and copying the budget scenario to the forecast scenario.
ROLL-UP of dimensions using a Calc Dim command on all of the dimensions in the outline.
MEMBER FORMULAS that compute averages and percentages for specific members in the outline.
Driven by Process
Calculation requirements are driven by processes which typically include multiple interim steps. For this reason, most databases have multiple calc scripts associated with them. Conversely, one calc script typically does not meet all calculation requirements for a single database. The example below demonstrates how specific calc scripts track a typical month end close process using Analytic Services. Script 1: Roll-up data for the new month after the first off load from the general ledger.
Hyperion
13-9
13
Calculation Basics
Fast Track for Designers Script 2: Recalculate the database focusing on calculations that need updating for new allocation rates and adjusting entries. Script 3: Calculations that compute variances from budget and forecast, percentages and analytical metrics.
A given database typically has several calc scripts associated with it. Each script is driven by a different step in the process.
You can write a calc script in any word processor and save the file as type .CSC (the Analytic Services calc script file extension). The script executes as long as there are no syntax errors.
The calc script editor is divided into a text editor section and a picklist area of dimensions and dimension members. If you have intimate knowledge of the database outline, you can type the dimension and members names into the calc script. However, the advantage of using the pick-lists is that you do not have to contend with any typing errors. Additionally, by using the Find Members functionality you can locate a member name you have forgotten.
13-10
Hyperion
Calculation Basics
13
The benefits of writing a calc script through Analytic Services' own calc script editor are: You can select and click outline member names from the member list window onto your script without having to type them. You can access the calc script formula commands with syntax parameter guides from the Formula/Paste Function dialog box. The calc script editor provides robust error checking. All scripts are also validated on the server prior to execution.
The calc script text displays in the upper half of the Calc Script Editor. The pick list of dimensions and members displays in the Member List window.
Helps you find member names you have forgotten. Lets you specify an alias table so you can include alias names in your calc script.
Hyperion
13-11
13
Calculation Basics
Save
Cut
Copy
Paste
Open the Functions window so you can select and paste a function into the calc script Inserts a + operator into the calc script
Associates your calc script with an outline (allows you to use the member selection areas)
13-12
Hyperion
Calculation Basics
13
Paste specific calc script functions onto your script from the Function Templates dialog.
Hyperion
13-13
13
Calculation Basics
2)
Select a calc script from the Application Manager desktop object list and click Run. Select the database against which you wish to run the chosen calc script and click OK.
You can run a Calc Script against different databases in different applications even though the script was originally set up for one specific database.
13-14
Hyperion
Fast Track for Designers 3) From the Spreadsheet Add-in, select Essbase / Calculate. Click Run.
Calculation Basics
13
4)
You must be connected to a specific database to execute a calc script in this manner.
Hyperion
13-15
13
Calculation Basics
Functional Commands
Functional Commands (also called Calculation Commands) are divided into two sub-categories: Basic roll-up commands such as AGG, CALC ALL and CALC DIM used to roll up the consolidation paths and execute member formulas in the outline. Housekeeping commands such as CLEARBLOCK and CLEARDATA which perform specific data maintenance activities and set commands such as SET AGG MISSG and SET UPDATECALC which specify across-the-board calculation behaviors or functions.
13-16
Hyperion
Calculation Basics
13
Conditionals
Using conditionals with traditional IF, ELSE, ELSEIF functionality is the second principal method, along with FIX, for focusing calculations to specific dimensions and/or members. IF logic works with traditional Boolean comparison operators for testing value threshold (for example, =, > or <).
IF logic is also used with the Analytic Services specific Boolean functions which are forms of questions referencing outline relations that return true or false answers to the conditional IF statement.
Data Declarations
Data Declaration commands let you define temporary variables and arrays set their values. Use these commands to store fixed or intermediate calculated values for use in other calculations. Data declaration commands drive calculations but cannot be reported on unless you assign their results to specific members in the outline.
Using temporary variables improves calc performance and makes complex calculations with dependencies easier to develop and debug.
Hyperion
13-17
13
Calculation Basics
Operators
Operators include standard operator signs for adding, subtracting, multiplying, dividing plus Boolean operators such as > and < for comparing conditions. Operators also include AND, NOT and OR for stringing Boolean conditions.
Math
The math function list include capabilities for finding minimum and maximum values, rounding, averaging, summing, standard deviation and other functions.
Math functions also include two special purpose operators, @VAR and @VARPER, which are used for computing variances with control over better/(worse) sign conditions for expense items designated Expense Reporting.
13-18
Hyperion
Calculation Basics
13
Range (Financial)
Range (Financial) operators are math functions that reference values (typically account values) of members across a range of members in another dimension (for example, across months within the Time dimension).
Boolean
Time is the default range dimension, though others may be specified. Range operators are typically used for lead/lag type calculations where the value for a member in one month is calculated referencing the value of a member(s) from another month(s).
Booleans are the first of three categories (the other two are macros and relationship functions) which reference outline status or relationships in Analytic Services such as generation or level names and hierarchical relationships (such as parent, child, ancestor and descendants used with IF statements). Booleans let you focus calculations with conditional logic to specific subsets of members defined by outline relationships specified through the Boolean syntax.
Hyperion
13-19
13
Calculation Basics
Member Set
Like Booleans and relationship functions, member set commands reference outline membership using generation and level names and number and genealogy relationships such as parent, child and sibling. Where Booleans are used with IF statements for focusing calcs, macros such as @CHILDREN and @DESCENDANTS are used with FIX statements generating a specific list of members to be calculated upon.
Macros are also used extensively for setting security filters that specify what subsets of an outline users have access.
Relationship Functions
Like Booleans and macros, relationship functions reference outline membership using generation and level names and numbers and genealogy relationships such as parent, child and sibling. Where the other two similar functions are used to focus one or a string of calculations to subset members in an outline, relationship functions such as @ANCESTVAL and @PARENTVAL reference the actual values of other members in the outline relative to the current member being calculated.
13-20
Hyperion
Calculation Basics
13
Allocation
Allocation functions are designed to do just that: push data values from one area of the model to another. Usually, allocations are used when data is input at a high level and subsequently allocated to lower levels by spreading, based on percentages or a variety of other methods available in these functions.
Forecasting
These functions are designed to analyze historical data and look for trends. They are often used for planning or forecasting purposes although not exclusively. The functions reference values (typically account values) of members across a range of members in another dimension (for example, across months within the Time dimension).
Hyperion
13-21
13
Calculation Basics
Statistical
The statistical functions greatly enhance the mathematical capabilities of Analytic Services calc scripts. They essentially supplement the Math category of functions, adding statistical functions to calculate standard deviations, medians, correlations and more.
Miscellaneous
Currently @CALCMODE is the only one function in this category.This helps determine calculation behavior for certain functions.
13-22
Hyperion
Calculation Basics
13
2)
3)
4)
5)
Hyperion
13-23
13
Calculation Basics
List the available calc script categories. Functional Commands Control Flow Commands Conditionals Data Declarations Operators Math Range (Financial) Boolean Member Set Relationship Allocation Forecasting
13-24
Hyperion
Calculation Basics
13
What are the four ways to execute a calc script? Select Database / Calculate from the Server desktop in Application Manager. Select and run the calc script from the Calculate Database dialog. Select a calc script from the Application Manager desktop object list and click Run. Select the database against which you wish to run the chosen calc script in the Select Database dialog. Select Essbase / Calculate while in a spreadsheet connected to a specific database. Select the calc script you want to execute, then click Run. Execute a calc script using ESSCMD, Analytic Services' batching language, during a batch operation.
Hyperion
13-25
13
Calculation Basics
13-26
Hyperion
14
Understanding Data Blocks
Chapter Objectives
Upon completion of this chapter, you will be able to: Define dense and sparse Calculate the size of a data block Describe a roll-up Describe how data blocks are created Describe and interpret data block statistics
14
14-2
Hyperion
14
For example, compare one product at the zero level in the Product dimension to members in the Accounts dimension: If the product has unit sales, what is the probability that it also has a price? Answer: high. If the product has units and a price, what is the probability that it also has dollar sales after a roll-up calculation? Answer: high. If the product has sales, what is the probability that it also a cost of sales, gross margin and other account measures? Answer: high. In this example, you can think of data in the Accounts dimension versus the product as being dense. For example, if you have data in one key account, such as units, you probably have data in most, or at least many, of the other accounts. A similar series of questions about the same product versus the Time dimension might result in the same conclusion. For example, Time is dense because if you sell the product in one month, you are likely to sell in other months, quarters and for the year total.
This is typical for businesses where there is a degree of specialization in product lines as indicated by a proliferation of products and customers. Picture the matrix of 3,000 customers by 3,000 products. What is the percentage of intersecting cells where there is a data point (for example, unit sales) out of the total number of cells? Answer: low.
Hyperion
14-3
14
In the example, the data for both customer and product are sparse. It is not uncommon for large product and customer dimensions with many members to have an occurrence of data intersections of less than 1%.
3,000 Customers Where the probability of the occurrence of a data point in the intersection between two dimensions is low, then data is probably sparse for both dimensions. 3,000 Products
14-4
Hyperion
14
To set dense and sparse settings for each dimension, while in an outline:
Select Settings / Data Storage to open the Data Storage dialog.
Do not use the Automatic check box setting. Analytic Services may change settings on-the-fly which could result in unexpected calculation behaviors. The Recommend function provides a ranking of setting options, but results are not reliable since the recommendations do not take into account the patterns of your actual data or the requirements of your calc scripts.
Each dimension is set to either dense (D) or sparse (S) in the Data Storage dialog.
Dense/sparse settings for each dimension are typically hardwired by a direct setting after benchmarking calculation and storage performances of alternate setting combinations.
By default, all new dimensions added to an Analytic Services database are automatically set to sparse.
Hyperion
14-5
14
The calc script curricula dense/sparse settings have a major impact on the calculation performance of a database and the amount of storage required.
What is the final criteria for dense/sparse settings? Answer: that combination of settings that produces the lowest overall calculation time with acceptable storage configurations.
14-6
Hyperion
14
Data blocks are created in their entirety as long as one cell has a data value that has been input or calculated. All data blocks are the same size in bytes (before compression) regardless of the number of cells that have values versus #Missing. All data blocks move from disk to memory (for calculation, restructure or reporting) and back to disk in their entirety. Data blocks in a database can be big or small depending on what dimensions are defined as dense in the Data Storage dialog: The more dimensions that are defined as dense, the larger the data block. Conversely, changing a dense dimension to sparse reduces the block's size. The greater the number of stored members in a dense dimension, the larger the data block. Conversely, reducing the number of stored members in a dense dimension reduces the block's size.
In this example, Time is a dense dimension. Therefore Time members define in part the number of cells within the data block.
In this example, Accounts is a dense dimension. Therefore Account members define in part the number of cells within the data block.
Hyperion
14-7
14
Sparse Roll-up
Member Formula
Datacopy
14-8
Hyperion
14
The index has the pointers that identify the data blocks by one member from each of the sparse dimensions.
Index (.ind)
The page file is where the data blocks are stored. A block exists only for combinations of sparse members that have data.
A c c o u n t s
Year Tot Each block contains cells which are defined by the intersection of the stored members of the dense dimensions
Hyperion
14-9
14
Anatomy of a Roll-up
Put quite simply, a roll-up is an aggregation. Using the unary operators the Analytic Services calculator calculates the values for each parent member. In the materials that follow, you trace the development of a CALC DIM calc script and how its execution builds data blocks for the Sales database.
Example Assumptions
Assumptions for this example are as follows: Months roll up to quarters and quarters roll to Year Tot in the Time dimension. The Year Tot dimension is dense. Units multiplied by rates equals dollars is the form of calculations in the Accounts dimension. The Accounts dimension is dense. The Customer, Product and Scenarios are sparse dimensions. Scenarios is not included in the CALC DIM statement because no members in the Scenario dimension require roll-up. The completed calc script reads: CALC DIM (Accounts, Time, Customer, Product);
Accounts and Year Tot are dense dimensions. Customer, Product and Scenario are sparse.
14-10
Hyperion
14
15 $1 #M Feb
20 $2 #M Mar
#M #M #M Q1
15 $2 #M Apr
20 $2 #M May
25 $2 #M Jun
#M #M #M Q2
15 $3 #M Jul ...
Channel OEM IBM Light 365A Light 520A Light Total Thun 363A Thun 520A Thun Total
Units and rates are input for each month for product and customer combinations. All data values are Actuals. Upon input, a data block is created for each intersection of the Product, Customer and Actual dimensions (such as IBM for Light 365 A, Actual; IBM for Light 520A, Actual and so on). Each data block created upon input contains units and rates by month, but dollars are not calculated because no calc script at this stage has been executed.
Hyperion
14-11
14
15 $1 $15 Feb
20 $2 $40 Mar
45 $1.3 $55 Q1
15 $2 $30 Apr
20 $2 $40 May
25 $2 $50 Jun
60 $2 $120 Q2
Channel OEM IBM Light 365A Light 520A Light Total Thun 363A Thun 520A Thun Total
Dollars are calculated in the outline from units and rates for each data block. Quarter and Year Tot data are still #Missing. The Year Tot dimension has not yet been rolled up. No new data blocks are created. Cells are being filled out in the original data blocks that were created upon input.
15 $1 $15 Feb
20 $2 $40 Mar
#M #M #M Q1
15 $2 $30 Apr
20 $2 $40 May
25 $2 $50 Jun
#M #M #M Q2
Channel OEM IBM Light 365A Light 520A Light Total Thun 363A Thun 520A Thun Total
Year Tot and Quarters are rolled up from months for all accounts. The Year Tot dimension cells are now filled in. No new data blocks are created. Cells are being filled out in the original data block that were created upon input.
14-12
Hyperion
14
New upper level blocks are created from the customer roll-up.
New upper level data blocks are now created in the Customer dimension reflecting aggregations at higher levels in the hierarchy. The additional blocks were created by summing up in the Customer dimension: All account data for units, rates and dollars All time data for months, quarters and Year Tot
Hyperion
14-13
14
Light 520A
Light Total
Thun 363A
Thun 520A
Thun Total
New upper level data blocks are now created in the Product dimension reflecting aggregations at higher levels in the hierarchy. The additional blocks were created by summing up in the Product dimension: All account data for units, rates and dollars All time data for months, quarters and Year Tot
14-14
Hyperion
14
Exactly that, the total number of data blocks in the database at its current state of calculation. For any given calculation without FIX statements, this number reflects how many blocks are moved from storage to memory for calculation. Fewer existing blocks for a given dense/sparse setting generally have a lower calculation time because fewer blocks are cycled through memory. Computed as the product of the stored members of the dense dimensions multiplied by 8 bytes. This is an important statistic: block sizes that are too large may adversely impact calculation, storage and/or retrieval efficiency. Computed as the product of the stored members of the sparse dimensions. In most databases, this number is very large and has no real meaning except as to its order of magnitude. Number of data blocks at the zero level. Zero level is not necessarily the same as blocks created upon input if data is loaded at upper levels. Number of data blocks at upper levels. Upper level blocks include all combinations of upper level sparse members plus upper level combinations from with zero level sparse members. In most databases the ratio of upper to lower level blocks is very high.
Hyperion
14-15
14
Block Density
From a sampling of existing data blocks, the percentage of cells with blocks that have a value versus total number of cells in the block. 1 minus this number is the percent-age of cells with #Missing. This is an important statistic and a key measure in your database for storage and calculation efficiency. Dense/sparse setting combinations should maximize block density. Number of Existing Blocks divided by Potential Number Of Blocks. This is a measure of the sparsity of your database. It is not uncommon for this number to be very small (less than 1%). It is the nature of multidimensional databases that there are many combinations without data. The compression efficiency you are getting when blocks are stored on disk, normally from using the Bit Map Encoding compression technique. #Missing cells are typically compressed with this method. Therefore, the compression ratio normally tracks block density. Compression is set from the Database/Settings/ Storage panel.
Compression Ratio
Use a modified version of the Calculating Block Stats worksheet to verify the computation of statistics for your own database.
14-16
Hyperion
14
The Dimension Group shows you information about number of members for each dimension.
The Dimensions Group shows you the dimension type dense or sparse, total members in the dimension and stored members. The difference between total members and stored members is the sum of Dynamic Calc, Label Only and Shared Members.
Hyperion
14-17
14
4)
5) 6)
14-18
Hyperion
14
8) 9)
In the Categories section, select Functional. In the Templates section, select SETUPDATECALC.
10)
This commands turns off Intelligent Calc functionality for this calc script.
Click OK.
11)
In the Calc Script Editor, modify the SET UPDATECALC to OFF followed by a semicolon.
Hyperion
14-19
14
8) 9) 10) 11)
Select File / Save. Name the calc script Calccorp. Click OK. Open Anatomy.xls (located in the B100_5\Calcit\Anatomy directory). MS Excel starts.
14-20
Hyperion
14
In the Username field, type trnadmin. In the Password field, type hyperion. In the Application/Database section, select Bigcorp / Sales. Click OK. Select Essbase / Retrieve. You should see only input data at this point. Select Essbase / Calculation. The Essbase Calculation dialog box displays. Select Calccorp. Click Calculate. Select Essbase / Retrieve and analyze the result. The Accounts dimension members are filled out.
Hyperion
14-21
14
Understanding Data Blocks 2) In Calc Dim, insert Year Tot after Accounts.
3) 4) 5) 6) 7) 8)
Save the calc script. Open Anatomy.xls. Select Essbase / Calculate. Select Calccorp. Click Calculate. Select Essbase / Retrieve and analyze the result.
14-22
Hyperion
14
3) 4) 5) 6) 7) 8)
Save the calc script. Open Anatomy.xls. Select Essbase / Calculate. Select Calccorp. Click Calculate. Change the page header from IBM to OEM.
9)
Select Essbase / Retrieve and analyze the result. Data displays for Accounts and Year Tot for upper level blocks across the Customer dimension. New upper level Customer blocks are created.
Hyperion
14-23
14
Select Essbase / Retrieve and analyze the result Data displays for Accounts and Year Tot for upper level blocks across the Product dimension. New upper level Product blocks have been created.
14-24
Hyperion
14
2)
3)
4)
5)
6)
Hyperion
14-25
14
14-26
Hyperion
14
The information identifying the data block (for example, what is the block's name as defined by the sparse members) is stored in index (.ind file type) files on the server drives. Data blocks are created under any one of four conditions:
Data Load Data blocks are created when data is loaded to sparse member combinations that did not previously exist. The blocks are created upon input whether loaded using a source file and load rule or loaded from a spreadsheet using lock and send. Data blocks are created when sparse dimensions are rolled up as specified in the outline using a CALC ALL, CALC DIM or other calculation function. Data blocks may be created under certain circumstances as a result of a member formula (for example, Units = 10). This functionality is enabled when the Create Blocks On Equations check box is selected in the Calculation Group of the Database Settings dialog. Data blocks are created when the DATACOPY command is executed in a calc script.
Sparse Roll-up
Member Formula
Datacopy
5)
What two principles determine storage and calculation efficiency? Efficiency is based on two principles: Data blocks are created only for combinations of sparse members where there is data (data is stored and calculated upon only for actual combinations). For combinations of sparse members where there is no data, no data block is created. Therefore, there is no requirement for disk space for storage or calculation time for calculations.
Hyperion
14-27
14
Potential Number of Blocks Existing Zero Level Blocks Existing Upper Level Blocks
Block Density
Compression Ratio
14-28
Hyperion
15
Calc Script Architecture
Chapter Objectives
Upon completion of this chapter, you will be able to: Describe the architecture of a typical calc script Identify basic housekeeping and manipulation commands Create baseline fix and normalization sections of a calc script Explain the purpose of a back calc
15
15-2
Hyperion
15
HOUSEKEEPING: procedural and nonprocedural commands at beginning of the calc script. THE BASELINE FIX: defines and focuses calculations on the specific set of data. Most often includes scenarios and/or time frames.
/*Calc Script Purpose: Normalizes actuals for intercompany adjustments, allocations, push down of rates and other adjustments to set up data for apples to apples melding on in month actuals with out month forecast information. Back calc rates.*/ SET AGGMISSG OFF; SET UPDATECALC OFF; /*Fix on specific actual/ forecast scenario and in months of actuals.*/ FIX (FY95 DEC FCST, 01, 02, 03) /*Allocate costs by volume and gross Sales. First roll up volume and sales and other impacted accounts.*/ FIX (Volume, Gross Sales, Interco Sales, Fixed R & D, Fixed Corp X Charge, Fixed IS X Charge, Fixed Mktg Admin, Fixed Mfg Admin) CALC DIM (Org_Structure); ENDFIX /*Sets up intercompany eliminations in Org Structure dimension.*/ FIX (Interco Sales) Interco Elimination LA = Interco Gross LA; Interco Elimination HC = Interco Gross HC; ENDFIX FIX (Interco Raw Material) Interco Elimination LA = Interco Gross LA->Interco Sales; Interco Elimination HC = Interco Gross HC->Interco Sales; ENDFIX FIX (Interco Tax Rebate) Interco Gross LA = (Interco Gross LA->Interco Sales) * 0.0909; Interco Gross HC = (Interco Gross HC->Interco Sales) * 0.0909; ENDFIX /* Push down commissions and adjust allocation accounts for later application of allocation percents. */ ( Commissions = @ANCESTVAL (Org_Structure, 6, Commissions) *(Gross Sales / @ANCESTVAL (Org_Structure, 6, Gross Sales)); % of Sales = (Gross Sales / @ANCESTVAL (Org_Structure, 6, Gross Sales)); Alloc R & D = Direct R & D - Fixed R & D; Alloc Corp X Charge = Corp X Charge - Fixed Corp X Charge; Alloc IS X Charge = IS X Charge - Fixed IS X Charge; Alloc Mktg Admin = Div Mktg Admin - Fixed Mktg Admin; Alloc Mfg Admin = Div Mfg Admin - Fixed Mfg Admin; ) /*Allocates division level expenses to target level using percent table.*/ ( Div Gen Mgr Admin = @ANCESTVAL (Org_Structure, 6, Div Gen Mgr Admin) * % Div Gen Admin;
NORMALIZATION: takes care of cleanup business such as allocations and adjustments. Typically includes focused rollups followed by the normalization calcs themselves.
Hyperion
15-3
15
THE MAIN ROLLUP: with the data now normalized, it is OK to roll up all of the dimensions.
Alloc Mktg Admin = @ANCESTVAL(Org_Structure, 6, Alloc Mktg Admin) * % Alloc Marketing/Advertising; Alloc Mfg Admin = @ANCESTVAL(Org_Structure, 6, Alloc Mfg Admin) * % Alloc Mfg Admin; Div Sales Admin = @ANCESTVAL (Org_Structure, 6, Div Sales Admin) * % of Sales; Div F & A Admin = @ANCESTVAL (Org_Structure, 6, Div F & A Admin) * % Div Gen Admin; Div HR Admin = @ANCESTVAL (Org_Structure, 6, Div HR Admin) * % Div Gen Admin; Div Other Admin = @ANCESTVAL (Org_Structure, 6, Div Other Admin) * % Div Gen Admin; Alloc Corp X Charge = @ANCESTVAL (Org_Structure, 6, Alloc Corp X Charge) * % Alloc Corp X Charge; Alloc IS X Charge = @ANCESTVAL(Org_Structure, 6, Alloc IS X Charge) * % Alloc IS X Charge; Alloc R & D = @ANCESTVAL (Org_Structure, 6, Alloc R & D) * % Alloc R & D; ) /*Sequence to roll up all data that create most of the upper level blocks. In above calc sequences, all data is now normalized*/ CALC DIM (Accounts, Year, Org_Structure, Region, DistiCenter); /*Back calculate all rates from volume and dollar inputs, specifically for upper levels.*/ ( Price Per SC = Gross Sales / Volume; List Price = Price Per SC * Stat Factor; Quantity Discount Perc = Quantity Discount / Gross Sales; Quantity Discount Rate = Quantity Discount / Volume; Cash Discount Perc = Cash Discount / (Gross Sales - Quantity Discount); Cash Discount Rate = Cash Discount / Volume; Unsaleables Perc = Unsaleables / (Gross Sales - Cash Discount); Reduced Revenue Case Rate = Reduced Revenue Case Rate Dollars / Volume; Price Variance Per SC = Price Variance / Volume; Raw Material Per SC = Raw Material At STD / Volume; WAVG Packer Fee Rate = Packer Fees / Volume; Delivery Per SC = Delivery / Volume; Commissions Pct = Commissions / (Gross Sales - Quantity Discount);) ) /*Endfix for original Fix which defines the scenario and in month actuals.*/ ENDFIX
THE BACK CALC: everything is rolled up, but upper level rates (per unit rates and percentages) are aggregated across dimensions rather than average calc'd. The back calc corrects them.
As you can see, a typical calc script is divided into five sections: Housekeeping Baseline Fix Normalization Main Roll-up Back Calc
15-4
Hyperion
15
Housekeeping
SET housekeeping commands set the stage for the next sequence of calculations to occur. They prepare the Analytic Services calculator to properly process the commands that follow. This table includes typical commands.
Command SET AGGMISSG ON | OFF SET UPDATECALC ON|OFF Description To override the default database setting for Aggregate missing values. For intelligent calc block marking to override the Server .CFG setting for intelligent calc. For intelligent calc block marking to override the Server .CFG setting for intelligent calc. For setting calculator cache levels according to essbase.cfg file setting. For setting levels of calculating message information in the application log.
SET CLEARUPDATESTATUS AFTER | ONLY | OFF SET CACHE HIGH | DEFAULT | LOW | OFF | ALL SET MSG ERROR | WARN | INFO | SUMMARY | DETAIL | NONE:
Hyperion
15-5
15
Manipulation Commands
Several important commands are also used for housekeeping purposes that involve manipulating data sets. The calculator provides a variety of handy data manipulation commands:
Command CLEARBLOCK ALL | UPPER | NONINPUT | DYNAMIC CLEARDATA mbrName DATACOPY mbrName1 TO mbrName2 Description For clearing previous input or upper level data, or stored dynamic calculations. For clearing specific members or member combinations. The data blocks remain. For copying focused or complete data sets from one set of members to another.
Set and other housekeeping commands are found in the functional category of the Function and Macro Templates dialog.
15-6
Hyperion
15
Baseline Fix
The Baseline Fix is found near the top of most calc scripts and defines the script's specific focus (typically defined by subsets of the Time or Scenarios dimension). In the Baseline Fix, you answer the question: What are you trying to do? There are a number of things to consider when creating a baseline fix. Focus on the type of data you are working with as defined by: The scenario actual versus budget versus forecast. The baseline fix often includes a scenario reference because scenarios typically differ in calculation requirements. The timeframe- current fiscal year only, future time periods and so on. The baseline fix often includes a time qualification (especially for accounting applications where data is calculated on only for the current timeframe). Normally the Accounts dimension and business views are not in Baseline Fix, except organizational units that calculate their subset of a database separate from other organization elements. Craft a Fix statement that focuses on the type of data you need:
/*Fix on specific actual/ forecast scenario and in months of actuals.*/ FIX (FY95 DEC FCST, 01, 02, 03) /*Commands go here.*/ ENDFIX
Calc scripts are generally broken to reflect specific steps in a process. The Baseline Fix statement is usually the indicator for script segregation. Break up calc scripts as might be defined by different Baseline Fixes.
It is typical to have multiple calc scripts associated with a single database. In most circumstances, there is no inherent efficiency in combining scripts. Calc scripts can be run automatically in correct sequence using ESSCMD.
What am I trying to do? Thats a good question.
Hyperion
15-7
15
The Normalization
The Normalization section of the calc script focuses on preparing data for the Calc Dim or Calc All roll-up. It answers the question: What needs cleaning up here? Input data may need to be manipulated or normalized before doing a rollup. There are various circumstances that require you to normalize data, for example: To allocate upper level inputs to lower levels (to charge user departments for use of IS facilities) To make special adjustments to input information (adjusting entries during month end close) To construct a consistent complement of unit, rate and dollar information (to push down prices consistently across all business views) To fix other anomalous accounts You may need to do normalization calculations in two phases before the main roll-up: Focused rollups Normalization calculations themselves
What needs cleaning up? Thats a better question.
15-8
Hyperion
15
Focused Rollups
The focused roll-up typically include setting bases for later allocations or adjustments. For example: To sum up units used later in building an allocation rate To sum up dollars of data subsets which are to be allocated in later calcs in the aggregate Focused rollups are typically wrapped up in FIX statements (which means a separate pass on data blocks).
Write the FIX statements as tightly as possible to build only the data blocks needed for the calculation dependency.
FIX (Volume, Gross Sales, Interco Sales, Fixed R & D, Fixed Corp X Charge, Fixed IS X Charge, Fixed Mktg Admin, Fixed Mfg Admin) CALC DIM (Org_Structure); ENDFIX
Normalization Calcs
There are a broad range of normalization calcs. The normalization section of a calc script typically includes the most lines of code. To minimize passes on data blocks, organize normalization routines by category (for example, type of calculation). Group like type of allocations together. Group special adjustments together.
Hyperion
15-9
15
As appropriate, wrap each category of normalization calculation together. Use FIX statements that further focus calculations only to the data blocks needed (for example, using the @Lev macro to focus allocations to zero level members only).
*Sets up intercompany eliminations in Org Structure dimension.*/
Does intercompany account cleanups.
FIX (Interco Sales) Interco Elimination LA = Interco Gross LA; Interco Elimination HC = Interco Gross HC; ENDFIX /* Push down commissions and adjust allocation accounts for later application of allocation percents. */ ( Commissions = @ANCESTVAL (Org_Structure, 6, Commissions) *(Gross Sales / @ANCESTVAL (Org_Structure, 6, Gross Sales)); % of Sales = (Gross Sales / @ANCESTVAL (Org_Structure, 6, Gross Sales)); Alloc R & D = Direct R & D - Fixed R & D; Alloc Corp X Charge = Corp X Charge - Fixed Corp X Charge; Alloc IS X Charge = IS X Charge - Fixed IS X Charge; Alloc Mktg Admin = Div Mktg Admin - Fixed Mktg Admin; Alloc Mfg Admin = Div Mfg Admin - Fixed Mfg Admin; ) *Allocates division level expenses to target level using percent table.*/ ( Div Gen Mgr Admin = @ANCESTVAL (Org_Structure, 6, Div Gen Mgr Admin) * % Div Gen Admin; Alloc Mktg Admin = @ANCESTVAL(Org_Structure, 6, Alloc Mktg Admin) * % Alloc Marketing/Advertising; Alloc Mfg Admin = @ANCESTVAL(Org_Structure, 6, Alloc Mfg Admin) * % Alloc Mfg Admin; Div Sales Admin = @ANCESTVAL (Org_Structure, 6, Div Sales Admin) * % of Sales; Div F & A Admin = @ANCESTVAL (Org_Structure, 6, Div F & A Admin) * % Div Gen Admin; Div HR Admin = @ANCESTVAL (Org_Structure, 6, Div HR Admin) * % Div Gen Admin; Div Other Admin = @ANCESTVAL (Org_Structure, 6, Div Other Admin) * % Div Gen Admin; Alloc Corp X Charge = @ANCESTVAL (Org_Structure, 6, Alloc Corp X Charge) * % Alloc Corp X Charge; Alloc IS X Charge = @ANCESTVAL(Org_Structure, 6, Alloc IS X Charge) * % Alloc IS X Charge; Alloc R & D = @ANCESTVAL (Org_Structure, 6, Alloc R & D) * % Alloc R & D; )
15-10
Hyperion
15
The back calc gets the units * rates = dollars relationships in sync for upper levels.
Hyperion
15-11
15
Calculating percentages or any other ratio is similar to calculating upper level rates: Percentages are aggregated across the sparse dimensions at upper levels. Percentages need to be recalculated after the numerator and denominator values are summed up:
The formula syntax for many back calculated items is Rate = Dollars / Units.
Price Per SC = Gross Sales / Volume; List Price = Price Per SC * Stat Factor; Quantity Discount Perc = Quantity Discount / Gross Sales; Quantity Discount Rate = Quantity Discount / Volume; Cash Discount Perc = Cash Discount / (Gross Sales - Quantity Discount); Cash Discount Rate = Cash Discount / Volume; Unsaleables Perc = Unsaleables / (Gross Sales - Cash Discount); Reduced Revenue Case Rate = Reduced Revenue Case Rate Dollars / Volume;
Go Calc Go
15-12
Hyperion
15
2)
3)
4)
Hyperion
15-13
15
15-14
Hyperion
16
The Most Important Calc Functions
Chapter Objectives
Upon completion of this chapter, you will be able to: Describe expected versus correct calc script behavior Use member formulas to calculate a database Define top-down calculating Explain how to control a top-down calculation Describe the difference between Fix and IF statements Use the Cross Dim operator Identify available Boolean, member set and relationship functions Identify variable types Create and use variables
16
How Analytic Services calculates data during a CALC DIM roll-up (its expected behavior) does not necessarily result in correct answers. A substantial portion of calc script drafting involves writing formulas designed to convert from Analytic Services' expected behavior to correct results for specific members. Underlying such member formulas are a broad array of calc script commands which are reviewed in this section in substantial detail.
16-2
Hyperion
16
Expected Behavior
How Analytic Services calculates numbers in a basic roll-up process (using CALC ALL or CALC DIM) is its most fundamental expected behavior: The Accounts dimension with its units, rates and dollars is calculated first. The result of each Account calculation is rolled up across all other dimensions one at a time, account by account.
Correct Behavior
This expected behavior (how Analytic Services does roll-ups) is not correct behavior for every account. Some of the numbers are wrong: Units and dollars are correctly summed across the Year Tot, Customer and Product dimensions. Rates and percentages are also summed across the other dimensions. This result is incorrect at all upper levels. The rates need to be back calculated averages. The percentages should be two-pass calculations calculated on a second pass through the data blocks after the numerator and denominator of the calculation have themselves been summed. A substantial element of calc scripting is devoted to dealing with expected versus correct behaviors in Analytic Services (writing member formulas that deal with aberrations in the numbers).
Expected Behavior: Prices are the sum of all prices for all customers and products (not the average).
Expected Behavior: Percentages are the sum of all percentages for all customers and products not the two-pass correct value.
Hyperion
16-3
16
Member Formulas
Member formulas are lines in calc scripts referencing specific members in the outline that perform a mathematical calculation on the referenced member. Following are examples of member formulas:
( Gross Margin % = Gross Margin/ Sales; Units = @PRIOR (Units, 2) * 1.1; ISAllocation = TotAccounts->TotISDepts->YearTot * AllocationRate; Unit Mix %= Units / @ANCESTVAL (Product, 3, Units); )
Analytic Services wants to be your friend by calculating member formulas when the data block is in memory instead of the correct sequence after a Calc Dim. Parentheses prevent jump ahead behavior.
Most of the lines of code in a calc script are member formulas. You generally use member formulas in the outline under these circumstances: For calculation constructions that cannot be done with unary (consolidation) operators in the outline (conditional formulas requiring an IF statement). For calculations involving complex dependencies that cannot be handled through the outline's natural order of calculation (normalization calculations such as allocations that must be calculated prior to a CALC DIM statement). For back calculations on upper level percentages and rates the cannot be calculated in the outline because of order of calculation issues. You often use member formulas in calc scripts when calculation requirement are more complicated (especially characterized by a more complex order of calculation or dependency relationships). Forms of member calculations may include: Forcing calculation of unary operators in the outline:
Macros, which are a type of Analytic Services calc function, can be used to force unary operator calculations on a group of relationship members in a hierarchy.
16-4
Hyperion
The Most Important Calc Scripts Forcing calculation of formulas in the outline:
16
Gross Margin %; (where the outline formula is Gross Margin/ Sales) Average Unit Cost; (where the outline formula is Cost of Sales/ Units)
This is not common. Usually formulas in outlines are calculated as part of a CALC DIM statement where formulas are executed during the roll-up process.
Member formulas require special syntax under certain circumstances. Enclose member calculations within parentheses (...) to absolutely control the calculation order of member formulas that follow CALC DIM statements: Following a CALC DIM statement, Analytic Services jumps ahead and execute subsequent member calculations out of order. To prevent jump ahead where order of calculation matters, enclose member calculations in parentheses:
CALC DIM (Accounts, Year Tot, Customer, Product); ( Gross Margin %= Gross Margin/ Net Sales; List Price= Gross Sales/ Units; Discount %= Discounts / Gross Sales; Labor/Unit = Direct Labor/ Units; Matl/Unit = Material / Units; Overhead Rate =Overhead / Direct Labor; )
Hyperion
16-5
16
This is a pointer. It is the statement of any stored member in the dimension being calculated upon before the member block calculation that is opened with a parenthesis.
For VAR definitions (using temporary variables) that reference member names:
Material Variances ( AllocRatioUnits = Units / Units->Family Total->Channel Total; Material Variances= Material Variances->Family Total->Channel Total * AllocRatioUnits; Labor Variances = Labor Variances >Family Total->Channel Total * AllocRatioUnits; Overhead Variances = Overhead Variances->Family Total-> ChannelTotal; * AllocRatioUnits; )
In addition to the pointer, calc member blocks require member formulas to be enclosed in parentheses.
For member formulas where the left side of the equation uses a cross dimensional operator. This is not a common usage.
Sales ( Sales->All Customers = Sales->All Products )
16-6
Hyperion
16
Top-Down Calculating
In contrast to spreadsheet formulas where every calculated intersection needs a formula, the Analytic Services calculator has a top-down approach to calculation.
Unless otherwise restricted by a FIX or IF command, every member formula in a calc script (every line of code) is executed everywhere in the database (on each and every data block).
is executed for every possible combination of members in the database where the underlying data exists. This top-down calculation capability allows you to accomplish a large amount of computing with few lines of code to write and debug.
Be careful, most of the time you do not want any given calc script executing on all parts of your database.
2)
Using IF...Endif, where calculations within the IF scope are restricted to the IF argument parameters. For example:
Gross Margin % ( IF(@ISMBR (Budget)) Gross Margin %= Gross Margin/ Net Sales; ENDIF )
Hyperion
16-7
16
Using The Cross Dimensional Operator, which allows hard wiring of member relationships within a formula. For example:
Gross Margin % ( Gross Margin %>Budget = Gross Margin->Budget / Net Sales>Budget; )
The FIX statement focuses calculations to members that are actuals and are descendants of Family Total.
Arguments separated by commas indicate and logic. More complex focusing can be done with arguments using AND/OR operators:
FIX((@CHILD(East) AND @UDA(Market, New Mkt)) OR @UDA(Market,Big Mkt))
16-8
Hyperion
16
All calculations within the FIX...ENDFIX statements are executed according to the restrictions in the arguments: In this example, the CALC DIM statement and formula for list price are restricted to Actuals for February:
FIX (Actuals, Feb) CALC DIM (Accounts, Product, Customer); (List Price = Net Sales / Units;) ENDFIX
You cannot calculate members within a FIX where the FIX already restricts the calculation:
The restriction in the Fix argument to month Jan contradicts the Calc Dim on Year Tot.
FIX (Actual, Jan) CALC DIM (Accounts, Year Tot, Customer, Product); ENDFIX
Prepocessing functions are supported within FIX statements. For example, you might want to fix on an upper level member and its children, but exclude the descendants of one child.
/* Fix on all members that are level 0 Product, but not a Descendant of LIGHTBOLT*/ Fix (@Remove(@Levmbrs(Product, 0), @Descendants(LIGHTBOLT));
Hyperion
16-9
16
/* The Main Roll-up */ CALC DIM (Accounts, "Year Tot", Customer, Product);
16-10
Hyperion
16
Using IF to Focus
IF, ELSE, ELSEIF is the second of three principal methods in Analytic Services for focusing the scope of calculations. IF statements can be used in both calc scripts and member formulas in the outline. IF may have one or several arguments that restrict the calculation scope: Arguments may be Booleans with member names or Booleans that reference macros. Arguments may follow in any order and include AND/OR operators:
IF (@ISMBR (Actual) AND @ISDESC (Family Total)) Is the same as IF (@ISDESC (Family Total) AND @ISMBR (Actual))
All calculations within the IF...ENDIF statements are executed according to the restrictions in the arguments. Additional ELSE or ELSEIF statements may be included. In this example, the formula for list price and unit cost are restricted to Actuals for descendants of Family Total.
List Price ( IF (@ISMBR (Actual) AND @ISDESC (Family Total)) List Price = Net Sales / Units; Unit Cost = Cost of Sales / Units; ENDIF
Remember from the Member Formula section, IF requires a calc member block begins with a pointer and is enclosed in parentheses.
In this example, the formula adds additional calculations with a conditional ELSEIF statement:
List Price ( IF (@ISMBR (Actual) AND @ISDESC (Family Total)) List Price = Net Sales / Units; Unit Cost = Cost of Sales/ Units; ELSEIF (@ISMBR (Budget) AND @ISDESC (Family Total)) List Price = (Net Sales ->Actual/ Units->Actual)*1.1; Unit Cost = (Cost of Sales ->Actual/Units->Actual)*1.1; ENDIF )
With If, Else and ElseIf, it is easy to write formulas with multiple conditions stringed together.
IF statements are incorporated into and follow the syntax rules of calc member blocks.
Hyperion
16-11
16
The most important conclusions in the context of understanding passes on data blocks is: Each FIX statement triggers a separate pass on data blocks as specified in its arguments. Every time you see a fix statement, think through whether your purpose is being served. FIX is a powerful tool for focusing on when blocks are actually touched. Given that you need to make a pass, use FIX to pass only those blocks absolutely essential to your calculation purpose. Analytic Services does not care. It calculates everything unless you focus on specific data blocks using FIX.
Do use FIX when the arguments are members of sparse dimensions. Don't use IF when the arguments are members of sparse dimensions.
16-12
Hyperion
16
The best opportunities for reducing the number of blocks passed occurs in the normalization and back calc sections of your calc script. Here are some simple guidelines: In the normalization, use FIX precisely for focused rollups. Only subsets of upper level data blocks across sparse business views need be built for allocation bases or aggregating totals to allocate. As an alternative to FIX for creating focused rollups for allocation aggregations, use macros for computing subset descendancies. For example: @IDESCENDANTS (Net Sales); - to compute only a subset of accounts used in the allocation. @IDESCENDANTS (Family Roll-up); - to compute only a subset of products used in the allocation. With allocations and pushdowns, it is typical that calculations are required only at the zero level. FIX using such macros as @GENMBRS (dimName, genNameOrNumber) or @LEVMBRS (dimName, levNameOrNumber). Unlike FIX which controls the flow of calculations, IF is not index driven. IF statements are interpreted formulas. With IF statements, all blocks are brought into memory when the IF logic is applied. With such conditional logic, however, blocks are brought into memory only once even though multiple conditions may be applied. Year Tot is a dense dimension and Product is sparse. In the script below, all data blocks are brought into memory only once even though each month has a different calculation requirement. Because the time dimension is dense, each month's List Price is a separate cell all within the data block.
List Price ( IF (@ISMBR (Jan) List Price = 100 ELSEIF (@ISMBR (Feb) List Price = 105 ELSEIF (@ISMBR (Mar) List Price = 110 ENDIF )
Hyperion
16-13
16
The Most Important Calc Scripts Two important conclusions about IF statements:
Each IF statement triggers a pass on all data blocks unless otherwise restricted by a previous FIX statement. IF is efficient for focusing calculations with conditional logic on members in dense dimensions.
Do use IF when the arguments are members of dense dimensions. Don't use FIX when the arguments are members of dense dimensions involving multiple conditions.
There is an important restriction in the use of IF. IF statements must be executed within a calc member block. Within a calc member block you may only execute member formulas. Roll-ups functions such as CALC ALL, CALC DIM and AGG, therefore, cannot be used with IF.
16-14
Hyperion
16
Hyperion
16-15
16
Used within formulas, the cross dim operator focuses the calculation to specific member combinations. Below are examples of different conditions of how the cross dim operator would work. Forecast units to equal budget units plus 10%:
FIX (Forecast) Units= Units->Budget * 1.1; ENDFIX
16-16
Hyperion
16
The calculation is performed for all forecast products, customers and time periods. Think through what members are not included in the cross dim operator as well as what members are included. Forecast units to equal budget units plus 10% for January, Lightbolt 365 A, IBM.
FIX (Forecast) Units= Units->Budget->Jan->Lightbolt 365 A ->IBM * 1.1; ENDFIX
Handy little dude, that crossdim fella.
Hyperion
16-17
16
The Analytic Services calculator incorporates a broad range of functions that reference the relationships between members within a hierarchy or generation/level references:
@ANCESTORS @CHILDREN @DESCENDENTS @SIBLINGS @PARENT @GEN @LEV Any member higher in a hierarchy Any member directly lower in a hierarchy Any member anywhere lower in a hierarchy Any member anywhere with the same parent Any member next up in a hierarchy Any member at a specific generation Any member at a specific level
Analytic Services knows where it is in the calc cycle. With Booleans, macros and relationship functions. Therefore, you can tell it what you want it to do with great precision referencing outline relationships.
16-18
Hyperion
16
This table contains the types of relationship categories which incorporate the relationship language functionality:
Category Member Sets Description Return a list of members to be acted upon. These macros are most typically used with FIX statements. Ask if a condition is true or not about a relationship. Booleans are always used with IF statements. Return a value of the relationship member relative to a member being calculated. Functions @ANCESTORS @CHILDREN @DESCENDANTS @IDESCENDANTS @ISANCEST @ISCHILD @ISDESC @ISIDESC @ISGEN @ANCESTVAL @MDANCESTVAL @SANCESTVAL @PARENTVAL @GEN @CURGEN
Booleans
Relationship Functions
Siblings. Use member sets in formulas and FIX commands where a subset of members are to calculated upon, or as stand alone member formulas.
FIX (@CHILDREN (Cash Discount)) CALC DIM (Products, Customers); ENDFIX -or@IDESCENDANTS (Gross Sales);
Hyperion
16-19
16
Member set commands are also used in Analytic Services' security system for setting up filters which specify a user's access to subsets of the database outline and in partition area definitions.
Use macros to set up security filters which control access of users to subsets of the outline.
Using Booleans
Like macros, Booleans create a list which is acted upon. The Boolean operates only in the context of an IF, ELSE or ELSEIF statement defining the IF condition and returning true or false for calculations on a data block or member cells. If the condition defined by the Boolean is true (Analytic Services is calculating on a member called out by the Boolean parameter) then the commands following the IF statement are executed. If the condition defined by the Boolean is false (Analytic Services is not calculating on a member called out by the Boolean parameters) the commands following the IF statement are not executed. Booleans incorporate a broad range of hierarchy relationships, level and generations references and other members characteristics such as account type and UDAs. @ISCHILD (mbrName) @ISICHILD (mbrName) @ISMBR (mbrName | rangeList | mbrList) @ISACCTYPE (FIRST|LAST|AVERAGE |TWOPASS|EXPENSE) @ISLEV (dimName, level) @ISUDA (dimName, Uda)
16-20
Hyperion
16
of the member being calculated on in the Product dimension. This might be used in a product mix calculation such as:
% Units= Units / @PARENTVAL (Product, Units); @ANCESTVAL (Product, 2, Net Sales) - returns the number of units
for the ancestor of the member being calculated on in the Product dimension at generation 2. This might be used in a calculation for defining an allocation rate based on Net Sales.
AllocRate = Net Sales/ @ANCESTVAL (Product, 2, Net Sales);
To calculate the allocation rate, divide Net Sales for the member being calculated upon by the Net Sales of its ancestor defined to be at generation two across the Product dimension.
Hyperion
16-21
16
The values returned are relative to the current member being calculated. The references can be based on single dimension with @ANCESTVAL or on multiple dimensions with @MDANCESTVAL. The references can also be based on Shared Member relationships using SANCESTVAL:
@SANCESTVAL (Product, 3, Units)
Relationship operators provide functionality for calculating formulas using values that reference another member relative to the member being currently being calculated.
Variables
Analytic Services support two categories of variables used in the calculating process: Substitution variables, which are set server-wide or specific to applications and databases for calculating and reporting on values that reference specific members Temporary variables, which are used within calc scripts to capture temporary values used for intermediate calculations
Substitution Variables
Substitution variables are typically used for references where the member assigned to the variable's value rolls over each month such as the definition of Current Month for financial reporting.
16-22
Hyperion
16
Substitution variables are commonly used in situations where a value (current month) references a member name (Feb) across multiple calc script and spreadsheet reporting references. The benefit from using the substitution variables is that the variable is maintained in one place at one time rather than across the multiple calc scripts and spreadsheets.
2)
3) Hyperion
The scope may be set at any level of granularity (server-wide, application specific or database specific).
16-23
16
In the Value field, type the member name the variable references.
5) 6)
Click Set. Set as many variables as you choose for the selected Server, Application and Database combination, then click OK. To update substitution variables, select the variable name from the variable list and edit its name or value reference, then click Set. Substitution variables can also be set and updated through ESSCMD, Analytic Services' batching facility.
16-24
Hyperion
16
From the same calc script where the specific substitution variables are being used, select Options / Set Substitution Variables Scope.
3)
Match the comparable settings set up in the Substitution Variables dialog for the substitution variables referenced. When the calc script is executed, Analytic Services automatically substitutes the value (a member name reference) for the substitution variable, and then performs the appropriate calculation. Substitution variable references may not be used in formulas associated with members in the outline.
Hyperion
16-25
16
Retrieving into the worksheet replaces the substitution variable reference with the member name that has been entered as the variable's value. Analytic Services then reads the member name for the retrieve operation.
Retrieval before and after into a worksheet containing substitution variable references. The variables for CurrentMonth and PriorMonth are replaced by the variables' values represented by the members Jan and Feb.
Since retrieving replaces the substitution variable with a member name, the worksheet is not useful for a subsequent retrieval if the workbook is saved. This problem can be resolved by saving the reporting workbook as a template.
16-26
Hyperion
16
Temporary Variables
Temporary variables use the VAR data declaration command. Unlike substitution variables, temporary variables are calc script specific and therefore cannot cross over in their use between databases. Temporary variables within calc scripts are typically used to capture temporary values that are referenced in member formula calculations but not stored in an actual member for reporting. The benefit of using temporary variables is twofold: Complex formulas (for example, an allocation rate formula) need be written and debugged only once, then used on multiple occasions within the calc script. Complex formulas are calculated only once, rather than multiple occasions requiring the reference, thereby reducing calculation time. Setting up and using temporary variables involves three distinct steps: 1) Declare the variable in the Housekeeping section of the script using the VAR (not @VAR) command using a variable name of your own construction. For example:
VAR ResultUnits; VAR StdUnits; VAR ResultPrice; VAR StdPrice; VAR ResultCost; VAR StdCost; VAR ResultMargin; VAR StdMargin; VAR ResultUnitsRestated; VAR StdAvgMarginUnit;
Hyperion
16-27
16
Define the variable using a member formula construction. If the variable references member names in the outline, then the syntax must follow the rules of calc member blocks. In the example below, the temporary variables are redefined for each data block being calculated upon.
ResultUnits = Units->Actual; StdUnits = Units->Budget; ResultPrice = Unit Price->Actual; StdPrice = Unit Price->Budget; ResultCost = Unit Cost->Actual; StdCost = Unit Cost->Budget; ResultMargin = Margin->Actual; StdMargin = Margin->Budget; ResultUnitsRestated = @ANCESTVAL (Product, 2, Units->Actual) * (Units->Budget / @ANCESTVAL (Product, 2, Units->Budget)); StdAvgMarginUnit = @ANCESTVAL (Product, 2, Margin->Budget) / @ANCESTVAL (Product, 2, Units->Budget);
3)
Use the variable as references in subsequent member formulas. Note in the example that all member formulas are now calculated from pure temporary variable references. These calculations are refreshed with each new data block based on the redefinition of the temporary variables at step 2.
Scenario B/W Budget = ResultMargin - StdMargin; Scenario Price Var = ResultUnits * (ResultPrice - StdPrice); Scenario Cost Var = ResultUnits * (ResultCost - StdCost) * -1; Scenario Qty Var = ((ResultUnits - StdUnits) * StdAvgMarginUnit) + (ResultUnitsRestated - StdUnits) * ((StdMargin / StdUnits) - StdAvgMarginUnit); Scenario Mix Var = (ResultUnits - ResultUnitsRestated) * ((StdMargin / StdUnits) - StdAvgMarginUnit);
USE IT: The variable StdAvg MarginUnit is now used in three different places in the actual member formula calculations.
16-28
Hyperion
16
2)
What is jump ahead behavior, and what syntax can you use to control it?
3)
4)
5)
Hyperion
16-29
16
7)
16-30
Hyperion
16
Hyperion
16-31
16
Most of the lines of code in a calc script are member formulas. When do you use member formulas in an outline? The following are typical circumstances: For calculation constructions that cannot be done with unary (consolidation) operators in the outline (conditional formulas requiring an IF statement). For calculations involving complex dependencies that cannot be handled through the outline's natural order of calculation (normalization calculations such as allocations that must be calculated prior to a CALC DIM statement). For back calculations on upper level percentages and rates the cannot be calculated in the outline because of order of calculation issues. You often use member formulas in calc scripts when calculation requirement are more complicated (especially characterized by a more complex order of calculation or dependency relationships). 2) What is jump ahead behavior, and what syntax can you use to control it? Member formulas require special syntax under certain circumstances. Enclose member calculations within parentheses (...) to absolutely control the calculation order of member formulas that follow CALC DIM statements: Following a CALC DIM statement, Analytic Services jumps ahead and execute subsequent member calculations out of order. To prevent jump ahead where order of calculation matters, enclose member calculations in parentheses.
16-32
Hyperion
16
In contrast to spreadsheet formulas where every calculated intersection needs a formula, the Analytic Services calculator has a top-down approach to calculation. Unless otherwise restricted by a FIX or IF command, every member formula in a calc script (every line of code) is executed everywhere in the database (on each and every data block). For example, a formula on a member in the Accounts dimension:
Gross Margin % = Gross Margin / Net Sales;
is executed for every possible combination of members in the database where the underlying data exists. This top-down calculation capability lets you accomplish a large amount of computing with few lines of code to write and debug. 4) How do you control Top-down calculating? A major element of calc script drafting is understanding how to focus your calculations. With the Analytic Services calculator, there are three principal methods for focusing calculations. Each of these three methods can be used to accomplish the same focused calculation. Knowing how and when to use each one is a special skill. Using Fix...Endfix, where calculations within the Fix scope are restricted to the Fix argument parameters. Using IF...Endif, where calculations within the IF scope are restricted to the IF argument parameters. Using The Cross Dimensional Operator, which allows hard wiring of member relationships within a formula. 5) What are the guidelines for using Fix versus IF statements? With some exceptions, you may execute the same commands with FIX...ENDFIX and IF...ENDIF statements. The guidelines for when to use FIX versus IF are principally performance related. Using IF when you should FIX causes major degradation in calculation performance. FIX is index driven. That means its arguments are evaluated without bringing all data blocks into memory. Only those data blocks required by the FIX statement arguments are touched. Unlike FIX which controls the flow of calculations, IF is not index driven. IF statements are interpreted formulas.
Hyperion
16-33
16
With IF statements, all blocks are brought into memory when the IF logic is applied. With such conditional logic, however, blocks are brought into memory only once even though multiple conditions may be applied. 6) List and describe the three relational function categories?
Category Member Sets Description Return a list of members to be acted upon. These macros are most typically used with FIX statements. Ask if a condition is true or not about a relationship. Booleans are always used with IF statements. Return a value of the relationship member relative to a member being calculated. Functions @ANCESTORS @CHILDREN @DESCENDANTS @IDESCENDANTS @ISANCEST @ISCHILD @ISDESC @ISIDESC @ISGEN @ANCESTVAL @MDANCESTVAL @SANCESTVAL @PARENTVAL @GEN @CURGEN
Booleans
Relationship Functions
7)
What are the two types of variables available in Analytic Services? Substitution variables, which are set server-wide or specific to applications and databases for calculating and reporting on values that reference specific members. Temporary variables, which are used within calc scripts to capture temporary values used for intermediate calculations.
16-34
Hyperion
17
Calc Script Development Procedures
Chapter Objectives
Upon completion of this chapter, you will be able to: Transfer files from client to server Create calc scripts Test calc scripts
Writing calc scripts for Analytic Services is like playing 3-D chess blindfolded. You may play any number of pieces (Analytic Services functions and macros) across a multidimensional array of squares (data blocks) that have input data in them that you cannot see (you are blindfolded, remember). Yes, it is complicated. Therefore, you need step by step procedures for developing, debugging and testing calc scripts. This section details a simple procedure for developing and transferring database objects from client to server.
Develop Load Rules
Develop Outline
17-2
Hyperion
17
Moving Outlines
The basic procedure for moving an outline from client to server involves overwriting (using save as) a preexisting outline on the server.
To transfer an outline from the client to server: Creating an empty database shell:
1) From the Application Manager desktop, select File / New / Application.
2) 3) 4) 5) 6)
Type an Application Name. In the Location section, select Server. Select a Server. Click OK. From the Application Manager desktop, select File / New / Database.
7) 8) 9)
The new database is empty (it has no members). Leave this empty outline closed during the subsequent steps.
Hyperion
17-3
Assuming the outline is on the client machine, select Client. The File System button activates. Click File System. Find and open the source outline.
With the client based outline open, select File / Save As. The Save Server Object window displays. In the Location section, select Server. Select an application and database.
In other applications, when you perform a Save As action, you type in the new file name and are then prompted to confirm the overwrite. With Analytic Services, there is ambiguity because the database name already exists and is disabled. Despite the ambiguity, the Save As overwrite occurs automatically when you click OK and confirm the action.
17-4
Hyperion
17
20)
Click Yes.
21)
Click Yes.
While no data exists in your newly created outline, the dialogs are oriented to protecting your data as if it did exist.
Hyperion
17-5
3) 4) 5)
Select the destination application and database within the Save Server Object window. Type an Object Name for the load rule or calc script. Click OK.
17-6
Hyperion
17
In the sections that follow, we break down the calc script process into two phases: The prototype phase where scripts are developed and tested for baseline accuracy The pilot phase where scripts are tested for performance and capture of exception conditions.
Develop Load Rules
Develop Outline
After the outline is completed, you should separate the calc script development process from the data load and roll-up testing process.
Developing a Prototype
The recommended process of creating a prototype script has three steps: 1) 2) 3) Create test input data. Create audit sheets. Implement a draft and test cycle.
The objective of the prototype phase is to create a calc script which correctly calculates dependences and values (it gets the numbers right for baseline calculations). You want the prototyping phase to be; 1) fast and efficient with low test cycle times; and 2) easy to audit for complex calculations.
Hyperion
17-7
2) 3)
Different input sheets are typically required where the levels of input vary.
Retrieve from an empty outline. Type in your own test data into the blank input sheets.
It is preferable not to use actual data which are more difficult to audit. Use simple numbers where it is easy to trace a series of calculation dependencies.
To reduce the testing cycle time, use simple, easy to audit data when developing prototype calc scripts.
17-8
Hyperion
17
Audit sheets are designed to test whether specific calculations are working or not. You may have several audit sheets which test different calculation sequences (such as allocations versus back calcs).
Hyperion
17-9
Once input and audit worksheets are set up, you draft and test your prototype calc script using a cyclical test procedure.
The best advice: do not try to write a calc script all at once. Write a line, then test a line using the prototyping procedure.
4)
This clears out all previous input data and calculations. It is important that each round of testing is done on a clean, empty database with no possibility of values being carried over from a previous input and calculation cycle.
If testing calculations for changes in inputs, manually modify data on the input sheets. Lock and send input sheets.
Before you execute the calc script, go to the audit sheet and retrieve. With this retrieval, you verify your inputs which were just loaded from the input sheet.
17-10
Hyperion
17
Use Flashback to toggle to the before calc condition to inspect inputs only. Retrieve again to inspect the after calc results.
Hyperion
17-11
2)
17-12
Hyperion
Calc Script Development Procedures In the Content section, select Calculation (1012000 to 1012750).
17
4)
Select a message number from the table. The error information displays.
Hyperion
17-13
During prototype testing, the database is typically too small for you to accurately assess performance impacts. During the pilot phase you often modify the prototypical script to recognize performance issues. For example: Focusing calculations on specific data blocks using FIX statements Revising sparse/dense settings reflective of final calculation requirements Revising dynamic calc (versus batch calc) approaches reflective of final calculation requirements
Exception Trapping
The prototype calc script typically addresses mainstream or baseline calculation requirements that are known (how to calculate specific allocations or metrics). Testing this prototypical script against real world data typically results in errors that represent exception conditions that require further refinement of the calc script. For example: Actual data may come in a different levels than was assumed during the prototype calc script phase, thus requiring adjustment to allocation algorithms. Calculated values may require extra IF, ELSEIF logic loops to handle exception conditions like zero values. DATACOPY commands may have to be added to create data blocks.
I Eat Bugs
17-14
Hyperion
17
2)
What are the two fundamental problems you face when trying to create and test a calc script on a complete database?
3)
What is the recommended process for creating and testing a calc script?
Hyperion
17-15
What are the three steps to migrate an outline from the client to the server? You may manually create and move outline members or load members using load rules without being connected to an Essbase OLAP server. As such, it is common that outlines initially developed on a client need to be moved to the server. The process of moving files is divided into three phases: Create an empty database shell Save the client based outline to the server Confirm save as action
2)
What are the two fundamental problems do you face when trying to create and test a calc script on a complete database? The most common mistake developers make in drafting calc scripts is developing and testing on full blown, real world databases. Because of the complexities of calculating in a multidimensional environment, scripts must be incrementally developed and tested. That means writing line by line with very frequent test cycles. Developing and testing calc scripts from scratch on full blown databases has two fundamental problems: Cycle times (the turnaround time for testing a segment of code) are substantially increased when testing on full databases. Long calc times frustrate incremental development and testing which is necessary in the Analytic Services environment where calculation dependencies are complex and multidimensional impacts are not immediately obvious. Real world data is often more difficult to audit than test data. The focus of initial development of scripts should be on the technical accuracy of calculation formulas rather than trying out prescribed control totals. It is typically easier to trace calculations and dependencies with contrived test data than real world data.
17-16
Hyperion
17
What is the recommended process for creating and testing a calc script? The recommended process of creating a prototype script has three steps: Create test input data Create audit sheets Implement a draft and test cycle The objective of the prototype phase is to create a calc script which correctly calculates dependences and values (it gets the numbers right for baseline calculations). You want the prototyping phase to be: 1) fast and efficient with low test cycle times; and 2) easy to audit for complex calculations.
Hyperion
17-17
17-18
Hyperion
18
Heads Up Issues
Chapter Objectives
Upon completion of this chapter, you will be able to: Describe calculation order dependencies Manage calculation settings to optimize performance Describe the Aggregate Missing Values setting Describe common calculation errors Load data correctly to leaf nodes Identify situations when you can use the two-for-one calculation strategy Describe parallel calculation and its role in improving performance
18
Heads Up Issues
18-2
Hyperion
Heads Up Issues
18
To reinforce such thinking, we want you to use three methodologies when developing your calc scripts. Block Visualization Pass Tracking Block Minimizing
Its the Data block. Is that some kind of mantra?
Block Visualization
To understand what is occurring within a calculation use a series of dependent formulas. Visualize one data block moving from disk to memory, then analyze how the calculations would be applied to that single data block. Then visualize the balance of blocks, qualified by whatever fix statements you may be using, moving from disk to memory. The same exact series of calculations that were performed on the first block are performed on the subsequent blocks.
To understand what is happening in a complex calc sequence, visualize how a series of formulas are applied to one data block (Product X, Customer Y), then extrapolate that same sequence to all the rest of the blocks that are touched on that pass.
Hyperion
18-3
18
Heads Up Issues
Pass Tracking
Pass Tracking is used when you have completed a calc script, or at key points during the script development. Stop and count the number of passes you are making on data blocks. If necessary, mark the passes on the script. The principal is simple: two passes on a given set of data blocks take twice as long as one pass. Ask the purpose of each pass and think through the performance implications: Is the pass necessary? Can it be combined with another member block pass? Can the pass be efficiently eliminated by converting to a dynamic calc storage type?
Block Minimizing
You can use Block Minimizing, assuming you have identified the specific passes on your data blocks, to analyze what subset of blocks you are passing on. Ask yourself three questions: Are calculations being performed on a larger subset than necessary? Can a FIX statement be used to focus better to the relevant data blocks? Did a previous CALC DIM statement create more blocks in a calculation dependency chain than were necessary?
18-4
Hyperion
Heads Up Issues
18
3)
In the Calc Options Group, select or deselect Aggregate Missing Values to toggle the behavior. The default behavior you set at the database level in Settings can be overridden by inserting SET AGGMISSG ON/OFF in a calc script.
With Aggregate Missing Values selected or set on in a calc script, calculation performance is significantly enhanced during the roll-up process: Within a data block, aggregations on cells that can be performed in two ways are summed only once.
Hyperion
18-5
18
Heads Up Issues
Fast Track for Designers Between data blocks (on sparse dimensions) totals that can be calculated by two pathways aggregating from other data block combinations are calculated only once. The calculator also has an algorithm that attempts to compute via the shortest path (using the fewest blocks to compute the new total).
Data block #12 can be calculated as the sum of blocks 4+8 or the sum of blocks 9+10+11. With Agg Missing Off, Analytic Services performs the calculation both ways. With Agg Missing On, Analytic Services does the calc once using the short path.
Account values loaded to upper levels across business views may be stepped on by lower level #Missing when aggregate missing values is turned on.
18-6
Hyperion
Heads Up Issues
18
Input unit and rate data at the zero leaf node level.
At the SKU level, units * price correctly rolls up to Revenue and Margin. Exp 1 and 2 at the Product Family level correctly rolls up to Tot Exp and Margin.
Hyperion
18-7
18
Heads Up Issues
Fast Track for Designers But finish the calc script: Calc Dim (Product); Price = Revenue / Units; And the answer is wrong!
At the product family level, Revenue - Tot Exp = Margin is incorrect. Negative value of $300 for Tot Expense is not reflected in the Margin Account.
Here is the explanation of what is happening and why the numbers are incorrect. Analytic Services calculates absolutely and literally through each dimension: In the natural order of calculation, accounts are rolled up first regardless of the level of input. Sparse dimensions are then rolled up for each account. For more information see Anatomy Of A Roll-up, Example Assumptions, Unit 5, Page 32. Lower level rollups of accounts across the business view dimensions step on the upper level inputs: Unary operators for Gross Margin work only in the Accounts dimension. You cannot aggregate accounts at multiple levels across a business view dimension. The situation in this example occurs frequently when working with multilevel inputs.
18-8
Hyperion
Heads Up Issues
18
One leaf node No X member can be used for all accounts that require upper level inputs without allocation down.
Avoid upper level step-ons by setting up leaf node members for upper level loads instead of loading to members that are in a roll-up path.
Hyperion
18-9
18
Heads Up Issues
Accounts First
It may appear that many expected versus correct Analytic Services calculation issues result from a practice of calculating the Accounts dimension first followed by other dimensions. The question arises: Are the issues bypassed if Accounts is not calculated first? No, the problems get worse. The Accounts dimension typically includes rates and percentages as well as units and dollars. Examples of rates include: Unit prices Costs Input percentage factors discount rate allocation rate Many calculated metrics sales per employee cost per transaction Examples of percentages include: Gross margin% Profit% Similar analytics used especially in financial analysis
If your Accounts dimension includes multiplying and/or dividing with rates or percentages (and most do), then Accounts must be calculated first in order to get the numbers correct. It is a straightforward order of calculation issue.
An Example Scenario
Examine the example starting below and continuing on the next page. The need to calculate the Accounts dimension first may be problematic if Accounts is set to sparse. Calculating a sparse dimension before dense causes an additional pass on data blocks and therefore a higher calculation time. Also, if Accounts is set as sparse, then by default the CALC DIM or CALC ALL statements do dense dimensions before Accounts.
18-10
Hyperion
Heads Up Issues
18
Setup
In this simple model, Units * Price = Dollars. Units and Price are inputs for Jan, Feb, and Mar. Months sum to Qtr 1.
Calculating Time second, quarter values for dollars and units are correct. Rate is incorrect, but this value is corrected in the back calc.
Calculating Accounts second, month values for dollars are correct, but the quarter value for dollars is incorrect. The backcalc does not correct the summing of price either.
Hyperion
18-11
18
Heads Up Issues
Dense First
In a CALC ALL statement, Analytic Services naturally calculates the dense dimensions first, then the sparse dimensions. In a Calc Dim statement, Analytic Services also calculates the dense dimensions first whatever the order you state the dimensions. Why such as preoccupation with dense first? Calculating dense dimensions first and sparse dimensions second delivers the shortest path in terms of the number of passes (read/writes to and from disk) on data blocks. Follow the examples below. Take case one where dense is calculated first and sparse second (the normal order). Assume 1000 blocks are created upon data load. (Total read/writes = 1,000) With dense calculated first, the 1000 input blocks are read, then written back to do the calculation on the dense dimension(s). (Total read/writes = 2,000) For the calculations on the sparse dimensions, the same 1,000 blocks are read again with 10,000 blocks (all the upper level blocks created across the sparse dimension) written back. (Total read/writes =11,000) Dense first calculations are performed only on the input blocks. The upper level sparse blocks are then built from the filled out input blocks. A pretty economical process on the whole. (Grand total reads and writes = 14,000) Take case two where sparse is calculated first, and dense second: The same 1000 blocks are created upon data load. (Total read/writes = 1,000)
18-12
Hyperion
Heads Up Issues
18
With sparse calculated first, the 1000 input blocks are read again and 10,000 blocks (all the upper level blocks created across the sparse dimension) are written back. (Total read/writes = 11,000)
Calculating dense dimensions first cuts in half (or more) the number of passes on data blocks.
For the calculations on the dense dimension(s), all 10,000 blocks are read and then written back to disk. (Total read/writes = 20,000). When sparse is calculated first, upper level blocks are built prematurely. All have to be revisited to fill out the dense calculations, thus forcing passes on many additional blocks. A pretty uneconomical process on the whole (more than twice the time as Case 1 where dense is calculated first). Grand total reads and writes = 33,000. Clearly dense first wins (there are a lot fewer passes on the data blocks). But there is a potential problem: The requirement that dense dimensions be calculated first to reduce passes conflicts with the conclusion that the Accounts dimension for data integrity issues needs to be calculated first. Therefore, it is very desirable for the accounts dimension to be set as dense. The higher the ratio of upper to zero level blocks, the greater the penalty of calculating sparse before dense.
Hyperion
18-13
18
Heads Up Issues
2)
By following the cookbook below, you can get a two for the price of one on back calcs (some categories of back calculations can be accomplished during the original pass on the blocks when they are being created).
While it is sometimes possible to accomplish some back calcs during the original pass on the data blocks, this technique should be approached with extreme caution. It is very easy to produce erroneous data using this method as your roll-up process overwrites your correctly calculated rates and percentages. Using a back calc is safer and, in many cases, preferable.
Here are the conditions: Select Two Pass Calculation in the Database/Setting dialog. The calc script must include a CALC ALL or CALC DIM statement incorporating all dimensions. The calc script being used must be assigned to the Default calc status using the Database/Set Default Calc dialog.
18-14
Hyperion
Heads Up Issues
18
The formulas for members that require back calculating must be in the outline (not a calc script) and marked as Two Pass Calc in the Member Specification dialog. This does not work for back calculating upper level rates on members that are also input accounts because of the order of the required CALC DIM calculation in the outline. The Accounts and Time Dimensions must be properly configured as described below.
Two-for-one Works Accounts dense, no Time tag Accounts dense, Time dense Accounts dense, Time sparse and no other dense dimensions Two-for-one Does Not Work Accounts sparse, no Time tag Accounts dense, Time sparse, and there are other dense dimensions Accounts sparse, Time sparse
Hyperion
18-15
18
Heads Up Issues
Fast Track for Designers Parallel calculation will not improve performance. Because of complex interdependencies between formulas that participate in the pass, parallel calculation cannot be performed.
Your outline structure and application design help Analytic Services determine whether enabling parallel calculation can improve calculation performance. Your system administrator can tell you whether your site meets the following set of requirements necessary to get the full benefit of parallel calculation:
18-16
Hyperion
Heads Up Issues
18
Hyperion
18-17
18
Heads Up Issues
2)
3)
When do you want to set the Aggregate Missing Values function to off?
4)
5)
6)
In a Calc All statement, which type of dimensions (dense or sparse) does Analytic Services calculate first?
18-18
Hyperion
Heads Up Issues
18
Hyperion
18-19
18
Heads Up Issues
18-20
Hyperion
18
Loading to upper levels that are not leaf nodes across business view dimension is OK when: You are loading values in the Accounts dimension which you plan to allocate or push down to lower level across another business view dimension. This method works because you want the value allocated to a lower level to roll up and step on the input. This is the test of whether the allocation algorithm is working correctly. If you need to load to an upper level across a business view dimension and not have your input stepped on (you choose not to allocate down a value) then follow the standard Analytic Services practice described below: Set up a leaf node member or members called No X (where x is the dimension name). For example, No Product, No Customer or No Region. The requirement is that the member be a leaf node. That can be accomplished with a Generation 2 member. The leaf node need not be buried at a high generation level with the mass of lower level input members. Load to the leaf node No X member which is now out of harm's way during the roll-up process. 5) Why is the Accounts dimension typically calculated first? The Accounts dimension typically includes rates and percentages as well as units and dollars. Examples of rates include: Unit prices Costs Input percentage factors Examples of percentages include: Gross margin% Profit% Similar analytics used especially in financial analysis If your Accounts dimension includes multiplying and/or dividing with rates or percentages (and most do), then Accounts must be calculated first in order to get the numbers correct. It is a straightforward order of calculation issue.
Hyperion
18-21
18
Heads Up Issues 6)
Fast Track for Designers In a Calc All statement, which type of dimensions (dense or sparse) does Analytic Services calculate first? In a CALC ALL statement, Analytic Services naturally calculates the dense dimensions first, then the sparse dimensions. In a Calc Dim statement, Analytic Services also calculates the dense dimensions first whatever the order you state the dimensions. Calculating dense dimensions first and sparse dimensions second delivers the shortest path in terms of the number of passes (read/ writes to and from disk) on data blocks.
18-22
Hyperion
19
Normalization Calculations
Chapter Objectives
Upon completion of this chapter, you will be able to: Define scenario partitioning Develop a normalization table Describe various allocation strategies
19
Normalization Calculations
Scenario Partitioning
Scenarios are a big driver of modeling and calculation requirements in the Accounts dimension. In financial applications, data from scenario to scenario typically differ with respect to the form of input and calculations. For example: For budget and forecast data, inputs are typically units and rates, such as units shipped, selling prices and the dollars are forward calculated.
19-2
Hyperion
Normalization Calculations
19
For actual data, the calculations and analysis are typically the reverse. Inputs are dollars from the general ledger system and units from the order processing or other systems, and rates are back calculated by the formula rate = dollars/units.
Scenarios (actual, budget, forecast) tend to be a big driver of modeling and calculation requirements across the Accounts dimension.
Data from scenario to scenario typically differ with respect to the level of input and calculations. For example: Budget data often has: Lots of product detail (standard cost by SKU) Less customer detail (only top ten customers budgeted) Lots of overhead detail (salaries by person) Actual data often has Lots of product cost detail (standard cost by SKU) Lots of revenue detail by customer (ship to from invoices) Lousy overhead detail (all salaries are lumped) Because of the form and level of inputs and calculations between scenarios, it is often the case that different scenarios require different data load procedures (different load rules) and different calc scripts.
Hyperion
19-3
19
Normalization Calculations
19-4
Hyperion
Normalization Calculations
19
For more complex hierarchies and upper level load and calculation situations, the normalization table may require:
Version Control Where the table is revised in subsequent rounds as new information is gained from data loading and testing of calculation scripts. Where tables are created for each different business view dimension. This may be necessary when data is being input and calculated upon at different levels across multiple dimensions. Where different scenarios are the domain of different staff groups cost accounting is best qualified to develop the normalization table for the Actuals scenario and Financial Planning handles the Budget scenario portion of the table.
For each input Account, identify the input level, push to level and method for each business view dimension (for example, by Product and by Customer).
The main purpose of the Normalization Table is to provide documentation for writing normalization formulas in the calc script.
Hyperion
19-5
19
Normalization Calculations
19-6
Hyperion
Normalization Calculations
19
An allocation calc script that makes extensive use of variables, relationship operators and cross dimensional operators.
Hyperion
19-7
19
Normalization Calculations 2)
Rates are copied down via a member formula to lower levels for unit, rate or dollar calculations. A simple push down uses the cross-dimensional operator if the values to be copied are loaded to one upper level member. Use relationship operators (@ANCESTVAL or @PARENTAVAL) if rates are loaded to multiple upper level members.
Examples of a simple push down include: One commission rate is loaded to apply to all customers:
Commission Rate = Commission Rate->Customer;
One product price list applies to all customers, but differs by region:
Price = @MDANCESTVAL (2, Region, 2, Customer, 1, Price);
The product cost at the family level applies to all SKUs at the lowest level:
Std Cost = @ANCESTVAL (Product, 3, Std Cost);
Single dimension allocation: Shipping cost at the SKU level equals the ratio of the SKU's units to total units for the product group multiplied by total shipping costs for the product group.
19-8
Hyperion
Normalization Calculations
19
The calc script should have the following characteristics: 1) Turn intelligent calc off because of multiple passes on blocks. Set aggregate missing on to enhance performance. No upper level inputs to protect. Declare allocation variables. Focus on the Budget scenario. Push down units and rates loaded at upper levels to level zero. Do a focused roll-up for allocation of Other Expenses: calculate Net Sales, then sum Units and Net Sales across Product and Customer dimensions for members used as the allocation base. Allocate other expenses to zero level using a variable allocation ratios. Focus calculations using Fix to zero level members for Customers and Products. Perform a dimension roll-up. Recalculate any upper level rates or percentages that contain erroneous data.
2) 3) 4)
5)
6) 7)
Hyperion
19-9
19
Normalization Calculations
2)
3)
19-10
Hyperion
Normalization Calculations
19
Hyperion
19-11
19
Normalization Calculations
19-12
Hyperion
20
Using Dynamic Calc
Chapter Objectives
Upon completion of this chapter, you will be able to: Apply dynamic calc to outline members Explain how Dynamic Calc affects calculation order Explain when store Dynamic Calc values
Calculation performance and data block storage continue to be critical issues for companies that are expanding the scope of Analytic Services applications.The materials in this section are designed to introduce you to Analytic Services' powerful Dynamic Calc features. The benefit of Dynamic Calc is reduction of batch calculation times and reduced hard drive storage requirements for very large databases.
Dynamic Calcs
Analytic Services introduced Dynamic Calc features in the 5.0 version of Analytic Services in response to the continuing demands for more choices about how and under what circumstances to perform calculations and store data. Dynamic Calc options allow members in the outline to be calculated onthe-fly when requested by users rather than during the batch calculation process. There are two types of dynamic calc settings:
Dynamic Calc Dynamic Calc And Store Values are calculated on the fly and discarded, but are not retained in the database. Values are calculated on the fly, and retained in the database after calculation. Any subsequent retrieval of these cells reflect the dynamic calc values.
20-2
Hyperion
20
3) 4)
Select the Member Info tab. In the Data Storage section, select Dynamic Calc.
5)
Click OK.
Analytic Services lets you tag dynamic calcs with special formatting, so you can differentiate them from surrounding data on spreadsheet reports. For example, you can specify that all Dynamic Calc figures display in red.
Hyperion
20-3
2) 3)
Select the Style tab. In the Members section, select Dynamic Calc.
4)
Click Format.
5)
20-4
Hyperion
Fast Track for Designers 6) 7) Click OK. The Font window closes. Click OK.
20
Calculation Order
The most important factor to understand in working with dynamic calculation is the order of calculation of dynamic members.
The principal implication of this calculation order for batch processes is that: Account members are calculated first only if Accounts is dense. If it is sparse, you may run into percentage calculation problems. Passes on data blocks are minimized because dense dimensions are calculated before sparse dimensions. Two-pass members are always calculated correctly because their calculation occurs after all dimensions are rolled-up.
Hyperion
20-5
Upon retrieval, the calculation order for Dynamic Calc members, Store and Non-Store, is as follows:
If there are multiple members tagged as Dynamic and Twopass, then the order of calculation is the same as above.
The principal implication of this calculation order for dynamic calc and other members is that because calculation order differs between batch and dynamic calculation, you may get different results. Any time you change the storage attributes, make sure to test if calculations are still correct. The reason that the calculation order is basically sparse then dense in Dynamic Calcs is that blocks must be virtually created before they are filled up. Dynamic Calc in combination with the Two-Pass Calc tag gives you extra control to make sure calculations work correctly. Use the Two-Pass Calc typically when you want a member to be calculated last. Typically this is a percentage calculation, because otherwise it is summed up across other dimensions leading to incorrect results. Do not confuse the Two-Pass Calc tag in combination with Dynamic with a stand alone Two-Pass Calc. Two-Pass Calc on its own is used in batch calculations only.
20-6
Hyperion
20
Hyperion
20-7
Dynamic Calc (Non Store) members represent a viable alternative to traditional batch calculation and storage in Analytic Services. The following guidelines describe when to use and how to use this feature when the focus is on members within dense dimensions. The performance trade-offs when assigning Dynamic Calc to upper level and formula members in dense dimensions tends to be favorable under specific conditions for specific reasons. When a user retrieves information to create a report, an entire data block with the relevant information is brought into memory. Once in memory, the calculation of dynamic members is relatively efficient because: The values of stored members whose cells are used to calculate the dynamic member are usually all within a single block that is brought into memory for the dynamic calculation. No additional read/write time on additional data blocks is necessary for each incremental dynamic member that needs calculating because all dynamic members are usually associated with the same data block and dependent on the same stored members. Assigning members Dynamic Calc (Non-Store) within a dense dimension reduces data block size. Smaller block size potentially improves performance because: Within a range, smaller blocks move into and out of memory faster than bigger blocks. A smaller initial block size may allow defining an additional dimension to be dense that would otherwise be sparse, thus potentially reducing the overall number of blocks that need to be moved in and out of memory for a given batch calculation.
20-8
Hyperion
20
Assigning Two Pass members within dense dimensions as Dynamic Calc may potentially reduce batch calculation time significantly by avoiding an additional pass on data blocks if otherwise the Two For One criteria cannot be met. Calculation on upper level rates that are also input members cannot be accomplished in the outline, and therefore cannot be assigned Dynamic Calc, Two Pass status.
Do not assign Dynamic Calc status to any dense member whose children involve multiplying or dividing using a rate. Results are incorrect because of the calculation order of sparse first, dense second of dynamic calcs.
Assigning dense members to Dynamic Calc (Non Store) reduces block size. Smaller blocks move faster from and to disk.
Hyperion
20-9
While the batch calculation time is reduced, there is a penalty for calculating the sparse Dynamic Calc members on-the-fly. Unlike such calculations on dense members, Dynamic Calculations on sparse members require bringing multiple blocks into memory. Therefore, the penalty or wait time for a dynamic calculation upon retrieval on a sparse member may be much greater than for a dense member. Test retrieval performance!
Tagging sparse members as Dynamic leads to more calc order issues. Because dynamic calculation order is basically sparse then dense, percentages on sparse dimensions can result in difficulties getting the right values. Although, the Two-Pass calculation tag can help resolve many of these issues, the complexity of dealing with these issues is much greater when you include dynamic calcs on sparse dimensions.
The dynamic calculation penalty on retrieval across sparse dimensions is impacted by three principals: Fan Out Stack Up Sandwich
Fan Out
Calculation time on dynamic calc members is affected by fan out of the children of the member. The fewer the children, the fewer the number of blocks that must to be brought into memory to perform the dynamic calc. Setting members with a large fan out as dynamic may result in unacceptable retrieval times.
FAN OUT - retrieve performance may be substantially reduced on dynamic calc members in sparse dimensions that have a large fan out of children members.
20-10
Hyperion
20
The stackup retrieve/calc penalty is potentially minimized by set and benchmarking performance on members from the top of a dimension, starting at generation 1 and then down. This is a safe methodology for understanding and minimizing retrieval penalties and avoiding data integrity issues potentially caused by sandwich situations.
Sandwich
Avoid sandwich situations where members of different storage types sit between each other in the hierarchy. Stored members sandwiched between dynamic members may result in incorrect calculations in certain circumstances. Dynamic members sandwiched between stored members may also cause data integrity issues. Sandwich situations where stored members are dependent on dynamic calc members can seriously impact batch calculation performance.
Hyperion
20-11
Dynamic Calc And Store is the second of two types of dynamic calc storage settings. The baseline characteristics of members with a Dynamic Calc And Store setting are as follows: The value for the member is calculated according to the consolidation operator or member formula in the outline for the member. The value is calculated only when requested by a user from a spreadsheet retrieval. After retrieval, the value is stored within the data block. During a batch calculation process (such as executing a CALC ALL command from a calc script). Dynamic Calc And Store members are bypassed. Dynamic Calc And Store members in a dense dimension occupy cells within the data block whether or not the member has been retrieved. In other words, tagging members of a dense dimension as Dynamic Calc And Store does not reduce block size and only marginally reduces batch calculation time. For these reasons, tagging upper level members in dense dimensions as Dynamic Calc And Store is not recommended. Since Dynamic Calc And Store members are stored, members tagged as such in a sparse dimension cause the creation of a data block when a retrieve is requested. In other words, tagging members of a sparse dimension as Dynamic Calc And Store causes the database size to increase over time as users retrieve on members. The calculation penalty on retrieval time, however, is paid only upon the first retrieval. Subsequent retrievals are as fast as a regular calculated and stored member. During a batch calculation, if the calculator discovers that the children of a Dynamic Calc And Store member are recalculated, it marks the data block of the parent Dynamic Calc And Store member as requiring calculation, which occurs upon the next retrieval request. At that time, the block is marked calculated and the results are stored. Two commands may be used in batch calc scripts to cleanse previously calculated Dynamic Calc And Store members: CLEARBLOCK DYNAMIC - Removes data blocks that are Dynamic Calc And Stored. CLEARDATA - Marks Dynamic Calc And Store members as non-calculated thus forcing recalculation upon the next retrieve. Dynamic Calc And Store members are skipped during data load (you cannot load data to a Dynamic Calc And Store member). No error message generates during data load.
20-12
Intermediary blocks that may be required to calculate a Dynamic Calc And Store members (even though tagged themselves as Dynamic Calc And Store) are calculated but not stored.
Hyperion
20
Design Considerations
Dynamic Calc And Store members provide similar benefits to Dynamic Calc (Non-Store) members in potentially reducing batch calculation time related to setting sparse members to this storage type. In most cases, consider using Dynamic Calc (Non Store) before Dynamic Calc And Store. Consider Dynamic Calc And Store for members in sparse dimensions with complex formulas or calculations. Formulas that include index functions (@ANCESTVAL, @PARENTVAL), range operators (@AVGRANGE), and certain financial functions (@IRR) are good candidates, since these operations on sparse dimensions are fundamentally inefficient. Shifting the calculation load away from the batch operation, where all members combinations would be calculated, to retrieval based calculation would probably reduce the overall calculation load. Do not use Dynamic Calc And Store for upper level members of dense dimensions. There are no benefits related to reducing block size because cells for the members are reserved within the block, whether or not they are calculated.
Hyperion
20-13
2)
3)
Which dynamic calc setting do you normally use for a dense dimension? Why?
4)
Which dynamic calc setting do you normally use for a sparse dimension? Why?
20-14
Hyperion
20
Hyperion
20-15
Dynamic Calc options allow members in the outline to be calculated on-the-fly when requested by users rather than during the batch calculation process. There are two types of dynamic calc settings: Dynamic Calc - Values are calculated on the fly and discarded, but are not retained in the database. Dynamic Calc And Store - Values are calculated on the fly, and retained in the database after calculation. Any subsequent retrieval of these cells, reflect the dynamic calc values. 2) What is the order of calculation for dynamic calc members? Upon retrieval, the calculation order for Dynamic Calc members, Store and Non-Store, is as follows: The dimension tagged Accounts if sparse. The dimension tagged Time if sparse. Sparse dimensions in outline order. The dimension tagged Accounts if dense. The dimension tagged Time if dense. Dense dimensions in outline order. Members tagged as Dynamic and tagged with Two-pass calculation. If there are multiple members tagged as Dynamic and Two-pass, then the order of calculation is the same as above. 3) Which dynamic calc setting do you normally use for a dense dimension? Why? Dynamic Calc (Non Store) members represent a viable alternative to traditional batch calculation and storage in Analytic Services. The following are guidelines for when to use and how to use this feature when the focus is on members within dense dimensions. Assigning members Dynamic Calc (Non-Store) within a dense dimension reduces data block size. Smaller block size potentially improves performance because: Within a range, smaller blocks move into and out of memory faster than bigger blocks. A smaller initial block size may allow defining an additional dimension to be dense that would otherwise be sparse, thus potentially reducing the overall number of blocks that need to be moved in and out of memory for a given batch calculation.
20-16
Hyperion
Using Dynamic Calc Which dynamic calc setting do you normally use for a sparse dimension? Why?
20
Dynamic Calc And Store members provide similar benefits to Dynamic Calc (Non-Store) members in potentially reducing batch calculation time related to setting sparse members to this storage type. In most cases, consider using dynamic calc (non store) before dynamic calc and store. Consider Dynamic Calc And Store for members in sparse dimensions with complex formulas or calculations. Formulas that include index functions (@ANCESTVAL, @PARENTVAL), range operators (@AVGRANGE), and certain financial functions (@IRR) are good candidates, since these operations on sparse dimensions are fundamentally inefficient. Shifting the calculation load away from the batch operation, where all members combinations would be calculated, to retrieval based calculation would probably reduce the overall calculation load.
Hyperion
20-17
20-18
Hyperion
21
Using Intelligent Calc
Chapter Objectives
Upon completion of this chapter, you will be able to: Describe how Analytic Services marks data blocks Enable Intelligent Calc Describe the guidelines for using Intelligent Calc
The main focus of calc script optimization is trying to eliminate extraneous passes through the database index (the blocks). There is one additional tool you can use to expedite calculation process and minimize the drag on system resources - Intelligent Calc. Intelligent Calc is a function of the Analytic Services calculator that only grabs and calculates those blocks that need to be calculated. In other words, it you add data to a single block, then only that block any blocks containing aggregate values that are dependent) are calculated. Now, you have a choice. You can use FIX and IF to focus Analytic Services' natural inclination to calculate all data blocks regardless of whether they need calculating. Or you can use Intelligent Calc thus significantly reducing calculation times for interactive applications. However, it is imperative that you understand the implications of Intelligent calc and test in a wide variety of situations.
21-2
Hyperion
21
Whether or not a block needs calculating by Analytic Services' own criteria: Clean - Analytic Services marks which blocks are clean and presumably do not need calculation. If Intelligent Calc is turned on, clean blocks are not calculated on a subsequent calculation. Dirty - Analytic Services marks which blocks are dirty and presumably do need calculation. If Intelligent Calc is on, dirty blocks do get calculated on subsequent calculation. When calculated, dirty blocks are marked clean.
Hyperion
21-3
When you execute a calc script which contains a CALC ALL statement or CALC DIM statement whose arguments include all dimensions: Any existing input data blocks are calculated and marked clean All newly created data blocks resulting from the Calc Dim roll-up process are calculated and marked clean All previously existing blocks marked dirty are now calculated and marked clean The following text is an example of a Calc Dim on all dimensions:
CALC ALL;
or
CALC DIM (Accounts, Year, Scenario, Products, Customers);
Even though Intelligent Calc may be turned on, if you execute a calc script with a CALC DIM statement that does not include all dimensions: All data blocks, not just the dirty ones, are calculated. All data blocks are left in their previously marked clean or dirty status. The following examples represent calc scripts where intelligence is not applied:
CALC DIM (Accounts, Year, Scenario, Products);
21-4
Hyperion
21
Or
SetClearUpdateStatus After Gross Margin% = Gross Margin / Sales; Average Unit Price = Revenues / Units;
Set Clear Update Status Only is index driven. Data blocks affected by this command are not touched (they are not moved into memory). Only the index is changed. Under most circumstances, therefore, elements of a calc script following Set Clear Update Status Only execute very quickly.
Hyperion
21-5
There are four definable circumstances under which data blocks are marked dirty, thereby making them eligible for calculation on the next round using intelligent calc. Input data Modified data Ancestors of input or modified data Restructure of the database
Input Data
Any block created from a data load or lock and send is automatically marked dirty when created. By definition, input blocks do not have their cells filled out.
Modified Data
Any block for whom a data cell has been modified is marked dirty and therefore eligible for calculation using intelligent calc on the next calculation round. The typical example here is when a line manager makes a change to a block. If units are updated, then the block should be marked dirty because revenues, costs and margin are now incorrect and also need calculating.
21-6
Hyperion
21
Hyperion
21-7
Ancestors of dirty blocks are not marked dirty until the original descendant dirty block that caused the ancestor block to be dirty is calculated. A false positive could result if the original dirty block were calculated within a FIX statement that did not include the dirty ancestor block. In this case, the descendant block is marked clean after calculation, but the ancestor block remains marked clean even though it contains an incorrect value. The fact that the data block should once have been dirty is lost in the system. Do not use the Clear Update Status Only command on a stand alone basis without following commands that have done actual cleansing calculations. A false positive could occur if Set Clear Update Status Only touches blocks that are otherwise dirty and have not been just correctly calculated.
21-8
Hyperion
21
2)
Describe the two schemes Analytic Services uses for marking data blocks.
3)
4)
Hyperion
21-9
Intelligent Calc is a database level setting that tell Analytic Services not to calculate blocks that are marked as clean when executing a calc script against the database. This setting lets Analytic Services minimize calculation time by calculating only those blocks that require calculating. 2) Describe the two schemes Analytic Services uses for marking data blocks. What kind of operation created the block: Input - Analytic Services marks which blocks were created from a data load. Calculated - Analytic Services marks which blocks were created from a calculation such as a CALC DIM on a sparse dimension. Whether or not a block needs calculating by Analytic Services' own criteria: Clean - Analytic Services marks which blocks are clean and presumably do not need calculation. If Intelligent Calc is turned on, clean blocks are not calculated on a subsequent calculation. Dirty - Analytic Services marks which blocks are dirty and presumably do need calculation. If Intelligent Calc is on, dirty blocks do get calculated on subsequent calculation. When calculated, dirty blocks are marked clean. 3) What are the three conditions for marking blocks clean? The basis for understanding intelligent calc is knowing under what conditions blocks are marked clean and dirty. There are three definable circumstances under which Intelligent Calc operates, thereby marking blocks clean: Calc Dim on all dimensions Set Clear Update Status After Set Clear Update Status Only 4) What are the four conditions for marking blocks dirty? There are four definable circumstances under which data blocks are marked dirty, thereby making them eligible for calculation on the next round using intelligent calc: Input data Modified data Ancestors of input or modified data Restructure of the database
21-10
Hyperion
A
Appendix - Exercise Solutions
This appendix contains step by step solutions for all Express exercises in the text. The solutions are listed by chapter and exercise title.
Add theses children to Scenario: Current Year, Prior Year, Forecast, Budget and Scenario Variances Select Scenario Variances. Click Add Child .
Add these children to Scenario Variances: Act Vs Bud, Act Vs Fcst and Bud Vs Fcst. Select Act Vs Bud. Click Add Child .
Add these children to Act Vs Bud: Current Year and Budget. Open Member Properties dialog for each and set storage type to Shared Member.
A-2
Hyperion
Fast Track for Designers 16) 17) 18) Select Budget. Select Edit / Properties.
3) 4) 5) 6) 7) 8)
In the Dimensions section, select Scenario. Scenario displays under Members. In the Members section, expand Scenario. The children of Scenario display. Select Current Year. Click Minus .
Hyperion
A-3
Label Only is used for outline members that are a label and whose value has no meaning. When marked Label Only, the member is not included in the data block structure of the database.
A-4
Hyperion
9)
Compare the formulas and entries for computing Gross Sales in Excel to the Accounts model.
Hyperion
A-5
11) 12)
Since Gross Sales and Discounts calculate Net Sales, they are children of Net Sales.
Move Gross Sales and Discounts from siblings to children of Net Sales. Change the Consolidation operator of Discounts to subtraction (-).
A-6
Hyperion
Fast Track for Designers 6) 7) 8) 9) 10) 11) 12) 13) 14) 15) 16) 17) 18) 19) 20) 21) 22) 23)
Move Direct Labor, Material and Overhead to children of Cost Of Sales. Move Material Variances, Labor Variances, Overhead Variances, Obsolete Charges and Inventory Adjustments to children of Other CGS. Move Net Sales, Cost of Sales and Other CGS to children of Gross Margin. On Corpacct.xls, select Units (cell D3). In the Sales outline, select Direct Labor. Select Edit / Paste Child. Units displays under Direct Labor. Select Material. Select Edit / Paste Child. Units displays under Material. On Corpacct.xls, select Labor/Unit (cell D7). In the Sales outline, select Direct Labor. Select Edit / Paste Child. Labor/Unit displays under Direct Labor. On Corpacct.xls, select Matl/Unit (cell D8). In the Sales outline, select Material. Select Edit / Paste Child. Matl/Unit displays under Direct Labor. On Corpacct.xls, select Overhead Rate (cell D9). In the Sales outline, select Overhead. Select Edit / Paste Child. Overhead Rate displays under Overhead. Add a sibling to Overhead Rate named Direct Labor.
Hyperion
A-7
25)
26)
Compare the relationships in the Corpacct.xls file to the Accounts dimension in the Sales outline.
A-8
Hyperion
Appendix - Exercise Solutions Use this table to change the properties for the members in the Accounts dimension.
Parent Accounts Gross Margin Gross Margin % Gross Margin Cost Of Sales Other CGS Direct Labor Units Labor/Unit Material Units Matl/Unit Overhead Direct Labor Overhead Rate Set the Consolidation operator to subtraction (-). Set the Consolidation operator to subtraction (-). Set the Consolidation operator to ignore (~). Set the Consolidation operator to ignore (~). Member Property Settings
Set Data Storage to Shared Member. Set Consolidation operator to multiplication (*).
Set Data Storage to Shared Member. Set Consolidation operator to multiplication (*).
Set Data Storage to Shared Member. Set Consolidation operator to multiplication (*).
28) 29)
Hyperion
A-9
Select File / Save Your Accounts dimension should look similar to this.
A-10
Hyperion
2)
Hyperion
A-11
1)
To see the file, you need to set the file type to .XLS or All files.
1) 2) 3) 4)
Load Rules can dynamically build dimensions or load data into a database. The different modes enable the user to define the settings for each of these activities.
A-12
Hyperion
2) 3) 4) 5) 6)
Select the Dimension Definition tab. Select Rules File. Next to Name enter Product. Click Add. Product displays in the Rules File list. Click Properties.
7)
Hyperion
A-13
Appendix - Exercise Solutions 8) 9) 10) 11) In the Data Storage section select Label Only. In the Configuration section select Sparse.
Click OK. The Dimension Build Settings window displays. Click OK.
5)
Dimensions can be populated by files structured using Generation References, Level References or Parent/Child References.
2) 3) 4) 5) 6)
7)
A-14
Hyperion
Continue the process for the subsequent fields using the information in the chart below:
Field # 3 4 5 6 Field Type Generation Generation Generation Alias Generation 3 4 5 5 Dimension Product Product Product Product
9)
Hyperion
A-15
Save file as Fam_Gen with the Location on the Server to the Sales database.
6)
Select the Bigcorp application and the Sales database and then click Open. The Sales outline displays. Select File / Update Outline. Find the source file Famgen.xls (located in the B100_5\Loadrule directory). Find the load rule Fam_Gen (located in the B100_5\Loadrule directory). Note the location of the Dimbuild.err file directory. Review this file if errors occur during the dimension build loading. Select OK. If the load fails open the error file and make corrections, then try again.
3) 4) 5) 6) 7)
A-16
Hyperion
If the load is successful, select Product and select Outline / Expand To Descendants to view the loaded outline.
Hyperion
A-17
A-18
Hyperion
Review the load rule structure and contrast to the Fam_Gen load rule.
11)
Select File \ Close. The Data Prep Editor closes and you return to the Server Desktop.
Redoing the Family Total rollup using the level load rule:
1) 2) 3) 4) 5) 6) 7) Highlight the Bigcorp application and the Sales database. Select Database Outlines Click Open. Expand the Product dimension. Select Family Total and type [Del]. A confirmation message displays. Click Yes. Family Total and all its children are deleted from the outline. Select File / Update Outline. .
Select Data File. From the Client, use Find to select Loadrule/FamLev.xls. From the Client, use Find to select the Fam_Lev.rul. Note the location of the error file and click OK. The Fam_Lev load rule runs. Expand Product. If no errors occurred, the Family Total member and all its children are added to the Sales outline.
Hyperion
A-19
Appendix - Exercise Solutions 13) 14) Select File \ Save to save the new structure.
A-20
Hyperion
2) 3)
When you select the Use Parent/Child, the Do Not Share check box becomes available in the Existing Members group area. The Do Not Share check box is cleared when it becomes available. Leaving this box unchecked allows existing members with unique parents to be automatically set up as shared members. Leave this box unchecked.
Hyperion
A-21
Appendix - Exercise Solutions 15) Click OK. You return to the Data Prep Editor.
4) 5)
Once Parent is entered, Zero (0) may display for Number. If for some reason it does not display, be sure to enter Zero (0) for Number. This is a required placeholder value that has no significance for Parent/Child loads.
From Dimension, select Product. The name Product displays in the Dimension area. Click OK. The Field Properties dialog closes and you return to the Data Prep Editor.
6)
Rather than clicking OK at this point, you could also click Next to move through the columns of the file while making the assignments as directed. Then you would select OK only when all the columns had been assigned values.
Select any member in column two and repeat the above procedure choosing Property from the Field Definition list, entering zero (0) for Number and selecting Product from the Dimension list. Click OK. The Field Properties dialog closes and you return to the Data Prep Editor. Select any member in column three and repeat the above procedure choosing Child from the Field Definition list, entering zero (0) for Number and selecting Product from the dimension list. Click OK.
7)
8)
9)
A-22
Hyperion
Hyperion
A-23
8) 1)
A-24
Hyperion
Appendix - Exercise Solutions Find the source file LinePC.xls on the Client (located in the B100_5\Loadrule directory). Find the load rule Par_Ch on the Server.
Note the directory location of the Dimbuild.err file. Review this file if errors occur during the dimension build loading. Click OK. The Par_Ch Load Rule runs using the new data file. Select Product and select Outline / Expand To Descendants.
7)
Hyperion
A-25
A-26
Hyperion
6)
To set the properties for the Customer dimension, click Properties button. The Dimension Properties dialog box displays. Select the Dimension Properties tab. In the Data Storage area, select Label Only. In the Configuration area, select the Sparse. Click OK. The Dimension Properties dialog closes. Click OK The Dimension Build Settings dialog closes and you return to the Data Prep Editor. Select Options / Dimension Build Setting. Select the Dimension Build Settings tab. From the Dimension list, select Customer and confirm the Build Method is set to Use Generation References. Click OK. You return to the Data Prep Editor.
7) 8) 9) 10) 11)
Hyperion
A-27
5) 6) 7)
8)
9)
A-28
Hyperion
Select the new field 3 and select Field / Create Using Text. Enter the text ~ (tilde). Click OK. A new field 3 is inserted. Select field 2 and select Field / Properties. Click the Dimension Building Properties tab. For Dimension, select Customer, for Field Type Generation and for the Generation Number enter 2. Click Next. The information displays for field 3. For dimension select Customer, for Field Type select Property. The Number 2 displays for the number of the Property generation. If it does not, enter the value 2 for Number. Click Next. The information for field 4 displays. Click the Global Properties tab. Field 4 remains selected. In the Replace text box, type Disti and, in the With box, type Distributor. Select Replace All Occurences (A).
Hyperion
A-29
24) 25)
Click the Dimension Building Properties tab. Field 4 is still selected. For dimension select Customer, for Field Type select Property. The Number 2 displays for the number of the Property generation. If it does not, enter the value 2 for Number. Click Next. The information for field 4 displays. For Dimension, select Customer, and for Field Type select Generation. 3 displays for the generation Number. Click Next. The Dimension Building Properties panel now displays information for Field Number 5. For Dimension, select Customer, and for Field Type select Generation. 4 displays for the generation Number; if it does not, enter it. Click OK. You return to the Data Prep Editor. Keeping the fifth field (Gen 4, Customer) selected, select Options / Dimension Build Settings. Select the Dimension Build Settings tab. From the Dimension list, select Customer. Select Allow Property Changes.
A-30
Hyperion
Hyperion
A-31
From the Sales outline, select Customer and select Outline / Expand To Descendants.
12)
A-32
Hyperion
2) 3)
4) 5) 6) 7) 8)
9)
Click View / Dimension Building Fields. A check mark appears beside Dimension Building Fields.
Hyperion
A-33
To skip first record as header row, select Options / Data File Properties or click Properties . Select the Header Records tab.
11)
Enter 1 for Number of lines to skip and click OK. You return to the Data Prep Editor.
1)
In order to create the Attribute dimension you need to attach it to a base dimension. In order to do that, the Attribute dimension is created as an attribute of the base dimension. You also need to define which type of attribute: numeric, text, boolean or date. Click Dimension Building Properties .
A-34
Hyperion
3) 4)
5)
Hyperion
A-35
7) 8) 9)
In Name, type Capacity Total. From the Type drop-down list, select Numeric. Click Add.
Click Close. In the Dimension Properties window, click OK. You return to the Dimension Build Settings dialog. Select the Dimension Build Settings tab. Select Capacity Total
14) 15)
Select Use Parent Child Reference. In the Dimension area, select Product.
A-36
Hyperion
Fast Track for Designers 16) 17) Select the Use Level References.
Select Allow Association Changes and Do Not Create Mbrs in the Attribute Members area.
18)
Because the hierarchy of the Capacity Total attribute dimension is being built as a Parent/Child, it does not need to be created as part of the attribute member association to the base dimension member.
2) 3)
Click OK. You return to the Data Prep Editor where the field titled Product now displays at the end of the column listing.
2) 3)
Allow Field 2 to remain highlighted and click OK. The field titled Production now appears in both the Field 2 and Field 3 positions. Move the new Field 3 so that it is the last column by highlighting any item in Field 3 then selecting Move The Move Field Dialog displays. .
Hyperion
A-37
4)
Use Down
You want the base member field (Lightbolt 365 A) to precede the new Production column. Remember, anything that is not a member in the database is applied to the preceding column of member information.
A-38
Hyperion
Appendix - Exercise Solutions When all field properties have been assigned, click OK.
5)
Hyperion
A-39
To verify that the dimension build was successful, select Product and select Outline / Expand To Descendants.
This load rule builds the Capacity Total Attribute dimension and assigns them to respective products.
7)
A-40
Hyperion
4)
To set the mode for loading members to the outline, select View / Dimension Building Fields.
You need to create the Region Total attribute dimension.You also need to define which type of attribute: numeric, text, boolean, or date.
Hyperion
A-41
1)
2)
3)
Select the Customer dimension (the base dimension for which you want to create the attribute).
A-42
Hyperion
5) 6)
7) 8)
Name the attribute Region Total. From the Type drop down box, select Text.
Hyperion
A-43
10)
Click Close to return to the Dimension Properties dialog then click OK to return to the Dimension Build Settings dialog.
A-44
Hyperion
1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11)
You want to assign the Region Total attributes to the fourth generation of Customers. Highlight any item in field 1. Select Field / Properties. Select the Dimension Building Properties tab. Information for Field Number 1 displays. In the Field Type section, select Level. In the Number text box, type 0. In the Dimension section, select Customer Dimension. Click Next. In the Field Type section, select Region Total (located under Attribute Dimensions). In the Number text box, type 0. In the Dimension section, select Customer Dimension. Click OK.
Hyperion
A-45
A-46
Hyperion
Appendix - Exercise Solutions Verify that the Region Total attribute dimension was created.
8)
Hyperion
A-47
A-48
Hyperion
1) 2) 3) 4)
This is the correct mode setting for creating a load rule that loads data.
3) 4)
For Number of characters in column, enter 3. Click OK. Only three characters of the data appears in the field 3 listing. The remainder of the data appears in a new field 4. You want to ignore this new field 4 during the data load. Select field 4 and select Field / Properties.
5)
Hyperion
A-49
Appendix - Exercise Solutions 6) 7) 8) 9) 10) 11) 12) Select the Global Properties tab. Select Ignore field during dataload.
Click OK. The remaining characters of the month names are disabled. Select field 3 again and select Field / Properties. Click the Data Load Properties tab. Enter Year Tot into the Field Name. Click OK.
8) 9) 10) 11)
A-50
Hyperion
Repeat the above drill down process for fields 7 through 11. Enter the following members for the field specified:
Field 7 8 9 10 11 Member List Price, Discount % Labor/Unit Matl/Unit Overhead Rate
7)
When all assignments are made, click OK. You return to the Data Prep Editor.
1) 2) 3) 4) 5)
Remember that each dimensions must be identified in the data file. In this file Scenario is not represented. The data applies to the Current Year. Set up a Scenario header to identify this dimension with the data. Select Options / Data Load Settings. Select the Header Definition tab. Expand Scenario. In Header Name enter Current Year. Click OK. You return to the Data Prep Editor.
Hyperion
A-51
Next you need to create a safety net for new members in the Product and Customer dimensions, that is, for Lightbolt 810 S and JCs Hardware. JCs Hardware should be added as children of Unrecognized Customer. Lightbolt 810 S must be added as a sibling to existing Product members. In order to do this, you must ignore conflicts with existing members. Creation of the safety net requires a switch to dimension building mode.
1) 2) 3) 4)
Select View / Dimension Building Fields. Select Options / Dimension Build Settings. Select the Dimension Build Settings tab. From the Dimension list, select Customer.
A-52
Hyperion
Fast Track for Designers 5) 6) 7) 8) 9) 10) 11) 12) 13) 14) 15)
Appendix - Exercise Solutions Set the build method to Add as child of.
Drill into Customer/Channel Total and select Unrecognized Customer. Select Ignore Conflicts. From the Dimension list, select Product. Set the build method to Add as a sibling of mbr with matching string. Check Ignore Conflicts. Click OK. Select fields 2, 3 and 4; select Field / Properties. Select the Global Properties tab. Select Ignore field during dimension build. Repeat this procedure for fields 6 through 11.
Do not ignore fields 1 and 5 which are the Product and Customer label columns. It is not necessary to associate the fields not being ignored with their dimension names. However, to avoid getting an error when validating the load rule, you can associate columns not being ignored with the dimension name using the Field / Properties to access the Dimension Building Properties panel on the Field Properties dialog. Use this to associate the Dimension. You do not need to set any Field Types
Hyperion
A-53
8)
A-54
Hyperion
Verify the inclusion of Lightbolt 810 S in the Product hierarchy as a child of the Lightbolt product family.
3)
Verify the inclusion of JCs Hardware as a child of Unrecognized Customer in the Customer dimension.
Hyperion
A-55
A-56
Hyperion
3) 4) 5)
Set Mint to Sparse. Select File / Save. If asked if you want to reposition attribute dimensions to the bottom of the outline, click Yes. Select File / New / Data Load Rule Click New. Select Options / Associate Outline and associate the rule with the Sales database. Select File / Open Data File and open Minty.txt (located on the client in the loadrule directory). Select View / Dimension Building Fields. .
6) 7) 8) 9) 10)
Hyperion
A-57
Repeat the previous step again. You now have three fields containing the first record Clorox. Select field 4 and select Field / Create Using Join. Click OK. Two copies of this field now exist.
Moving members:
1) 2) 3) Select field 4 and select Field / Move. Move the field Up Click OK. between fields 2 and 3.
A-58
Hyperion
Repeat the procedure above inserting a blank between the current fields 5 and 6 and between fields 6 and 7.
There are total of nine fields with just a single space in fields 3, 6 and 8.
3) 4)
Hyperion
A-59
A-60
Hyperion
Appendix - Exercise Solutions Select Mint and select Outline / Expand To Descendants.
Hyperion
A-61
3) 4) 5) 6) 7) 8)
Select Product. Select Essbase / Pivot. Product switches axis. Select Year Tot. Select Essbase / Pivot. Year Tot switches axis. Select Customer. Select Essbase / Zoom in.
Select Customer. Select Essbase / Pivot. Customer switches axis. Select Channel Total. Select Essbase / Zoom in. The children of Channel Total display. Select OEM.
A-62
Hyperion
Select IBM, Acer and Apple. Select Essbase/ Keep Only. Other members of the product dimension disappear. Select Product. Select Essbase / Zoom in. The children of Product display. Select Scenario. Select Essbase / Zoom in.
21) 22)
Select Current Year. Select Essbase / Keep Only. The other members of the Scenario dimension disappear.
Hyperion
A-63
Appendix - Exercise Solutions 23) 24) Select Current Year. Select Essbase / Pivot.
25) 26)
27)
Click Attach.
Enter a Cell Note. Click OK. The Linked Objects Browser displays. Click Close. Select Essbase / Options. The Essbase Options window displays.
A-64
Hyperion
33) 34)
Specify a font format. Click OK. The Essbase Options window displays. In the Data Cells section, select Linked Objects. Repeat steps 33 through 35. The Essbase Options window displays. Click OK.
Hyperion
A-65
A-66
Hyperion
3) 4) 5) 6)
Select Product. Select Essbase / Pivot. Product switches axis. Select Customer. Select Essbase / Member Selection.
7) 8) 9)
In the Members section, expand Channel and OEM. The children of OEM display under Members. Select IBM. Click Add. IBM moves under Rules.
Hyperion
A-67
Appendix - Exercise Solutions 10) 11) 12) 13) 14) 15) Click OK. IBM replaces Customer on the report. Select Accounts.
Select Essbase / Member Selection. The Essbase Member Selection window displays. In the Members section, select Gross Margin. Click Add. Gross Margin moves under Rules. Click OK.
Gross Margin and IBM display on the report.
16) 17) 18) 19) 20) 21) 22) 23) 24) 25) 26) 27)
Select Scenario. Select Essbase / Zoom in. The children of scenario display. Select Scenario. Select Essbase / Pivot. Scenario switches axis. Select Year Tot. Select Essbase / Zoom in. The children of Year Tot display. Select Qtr 1. Select Essbase / Pivot. Year Tot switches axis. Select Product. Select Essbase / Member Selection. The Essbase Member Selection window displays. In the Members section, select Product. Click Add. Product moves under Rules.
A-68
Hyperion
29)
Select Subset.
From the drop-down lists, select Level Name is Lev0,Product. Click Add as AND Condition. The rule displays under Conditions. From the drop-down lists, select Pattern is THUND*.
33)
Hyperion
A-69
Click OK. The Essbase Member Selection window displays. Click OK. Names beginning with THUN replace Product. Select Essbase / Retrieve.
A-70
Hyperion
3) 4)
Select Essbase / Options. The Essbase Options window displays. Select the Mode tab.
5)
6) 7) 8)
If you do not complete this step, you cannot pivot the accounts dimension. This setting is reapplied later in the procedure.
Click OK. Select Accounts. Select Essbase / Pivot. Accounts switches axis.
Hyperion
A-71
Appendix - Exercise Solutions 9) 10) 11) 12) 13) 14) 15) 16) Select Year Tot. Select Essbase / Pivot. Year Tot switches axis. Select Scenario. Select Essbase / Zoom in. The children of Scenario display. Select Current Year.
Select Essbase / Keep Only. The other members of the Scenario dimension disappear. Select Current Year. Select Essbase / Pivot.
A-72
Hyperion
Fast Track for Designers 11) 12) Click Add. IBM displays under Rules.
3) 4) 5) 6) 7) 8) 9) 10)
Select Quarter 1 and Quarter 2. Select Essbase / Keep Only. The other members of Year Tot disappear. Select Quarter 1. Select Essbase / Pivot. Quarter 1 and Quarter 2 switch axis. Select cell range A2:C3. Select Edit / Cut. Select cell A6. Select Edit / Paste. Quarter 1 and Quarter 2 appear in cells C6 and C7. Accounts appears in cell A7.
Arranging members:
1) 2) 3) Select Current Year. Select Edit / Cut. Select cell A1.
Hyperion
A-73
Appendix - Exercise Solutions 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) Select Edit / Paste. Current Year appears in cell A7. Select LIGHTBOLT 365A. Select Edit / Cut. Select cell A2. Select Edit / Paste. LIGHTBOLT 365A appears in cell A2. Select IBM. Select Edit / Cut. Select cell A3. Select Edit / Paste. IBM appears in cell A3. Select Essbase / Retrieve.
6) 7)
A-74
Hyperion
Appendix - Exercise Solutions Click OK. The specified members replace Accounts on the report.
Specifying formulas:
9) 10) Select cell E7. Enter the formula:
=B7*2.2
11) 12) 13) 14) 15) 16) 17) 18) 19) 20) 21) 22) 23) 24)
Select cells E7 through E12. Select Edit / Fill / Down. Select cells E7 through F12. Select Edit / Fill / Right. Select cell E6. Enter Q1 DM. Select cell F6. Enter Q2 DM. Select cell B4. Enter Dollars. Change the format as desired. Select cell E4. Enter Deutsch Marks. Change the format as desired.
Hyperion
A-75
Appendix - Exercise Solutions 25) 26) 27) 28) 29) Select Essbase / Options. The Essbase Options window displays. Select the Mode tab. Select Retain on Retrieval. Click OK. Select Essbase / Retrieve.
30)
Select Yes.
The Essbase Message appears for each Unknown Member, select Yes each time.
A-76
Hyperion
4) 5) 6) 7) 8)
Set Indentation to Totals. In the Suppress section, deselect #Missing and Zero Rows. In the Cells section, deselect Use Styles. In the Cells section, select Repeat Member Labels. In the Replacement section set #Missing Label and #NoAccess Label as desired.
Hyperion
A-77
In the Zoom In section, select Next Level. In the Member Retention section, deselect Include Selection. In the Member Retention section, select Within Selected Group. Select the Mode tab.
14)
A-78
Hyperion
In the Mode section, select Navigate without Data. In the Display Messages section, select Display Unknown Members. Click OK. Select Essbase / Retrieve.
Hyperion
A-79
Appendix - Exercise Solutions 7) 8) 9) 10) 11) 12) 13) 14) 15) 16) Select Product.
Select Essbase / Member Select. The Essbase Member Selection window displays. In the Members section, expand Family Total and Performance. Select LIGHTBOLT. Click Add. LIGHTBOLT appears under Rules. Click OK. LIGHTBOLT replaces Product on the report. Select Scenario. Select Essbase / Zoom in. The children of Scenario display. Select Current Year and Forecast. Select Essbase / Keep only.
Select Accounts. Select Essbase / Pivot. Accounts switches axis. Select Current Year. Select Essbase / Pivot. Current Year and Forecast switch axis. Select Year Tot. Select Essbase / Pivot. Year Tot switches axis.
A-80
Hyperion
Select Qtr 3, Qtr 4 and Time Variances. Select Essbase / Remove Only. Qtr 3, Qtr 4 and Time Variances disappear. Select Qtr 2. Select Essbase / Member Selection. The Essbase Member Selection window displays. In the Members section, expand Qtr 2. Select April. Click Add. April displays under Rules. Click OK. April replaces Qtr 2 on the report. Select Qtr 1. Select Essbase / Zoom in.
Next to Forecast, select Year Tot. Select Essbase / Zoom in. The children of Year Tot display. Select Qtr 1 and Time Variances. Select Essbase / Remove Only. Qtr 1 and Time Variances disappear. Select Qtr 3 and Qtr 4. Select Essbase / Zoom in. The children of Qtr 3 and Qtr 4 display.
Hyperion
A-81
Appendix - Exercise Solutions 19) 20) 21) 22) Select Qtr 2. Select Essbase / Zoom in. The children of Qtr 2 display. Under Forecast, select April. Select Essbase / Remove Only.
Select Accounts. Select Essbase / Member Selection. The Essbase Member Selection window displays. In the Members section, expand Gross Margin. The children of Gross Margin display. Select Gross Margin, Net Sales, Cost of Sales and Other CGS. Click Add. Gross Margin Nets Sales, Cost of Sales and Other CGS display under Rules. In the Rules section, right-click Net Sales. Select All Children and Member. In the Rules section, select Gross Margin. Click Move Item Down until it is at the bottom of the list. Click OK.
A-82
Hyperion
Reporting formatting:
1) 2) 3) 4) 5) 6) 7) 8) 9) 10) Select row 1. Select Insert / Row. A row inserts above row 1. Select LIGHTBOLT. Select Edit / Cut. Select cell E1. Select Edit / Paste. LIGHTBOLT pastes into row E1. Select OEM. Select Edit / Cut. Select cell E2. Select Edit / Paste. OEM pastes into row E2.
Hyperion
A-83
A-84
Hyperion
3) 4)
Hyperion
A-85
Repeat this process until Page has Accounts and Customer, Column has Year Tot and Scenario and Row has Products.
Selecting on members:
4) Double-click the Accounts dimension (in either the Layout Panel or the Navigation Panel).
5) 6) 7)
Double-click Gross Margin. Gross Margin displays under Selection Rules. Repeat this process for Customer selecting IBM. For Year Tot select Quarter 1 and Quarter 2.
A-86
Hyperion
9) 10) 11)
Double-click Scenario. Scenario displays under selection rules. In the Selection Rules section, right-click Scenario. Select Select / Children.
12) 13)
In the Navigation panel, select Product. Product displays under Members in the Selection panel. In the Members section, double-click Product. Product displays under Selection Rules.
Hyperion
A-87
In the Navigation panel, right-click the Product label with the selection icon .
15)
For Method, select Level Name. For Operator, select is. For Value, select Lev0,Product. The filter displays in the Navigation panel. In the Navigation panel, right-click the filter you created. Select New / Member Filter (AND). Use this table to complete the filter
Method Operator Value Pattern Matches is Thunder*
1)
This selects all products starting with a string of Thunder; the * is a trailing wildcard search.
A-88
Hyperion
3) 4) 5)
Notice that the preview shows duplicate members for Product. This is because you have shared members.
Go to the Selection panel in the Members window, right-click Product. Select View by Generation. Right-click on any Generation label and select Suppress Shared Members. Shared members are suppressed.
3) 4)
In the Query Name text box, type Thunder. Right click again on any member in the filter and select Apply Query.
Hyperion
A-89
/* Housekeeping */ SET UPDATECALC OFF; /* The Baseline Fix */ FIX ("Current Year", @DESCENDANTS ("Quarter 1")) /* The Main Rollup */ CALC DIM (Accounts, Customer, Product); ENDFIX
A-90
Hyperion
Hyperion
A-91
A-92
Hyperion
AllocRatioUnits = Units / Units->"Family Total"->"Channel Total"; AllocRatioNetSales = "Net Sales" / "Net Sales"->"Family Total"->"Channel Total"; "Material Variances" = "Material Variances"->"Family Total"->"Channel Total" * AllocRatioUnits; "Labor Variances" = "Labor Variances"->"Family Total"->"Channel Total" * AllocRatioUnits; "Overhead Variances" = "Overhead Variances"->"Family Total"->"Channel Total" * AllocRatioUnits; "Obsolete Charges" = "Obsolete Charges"->"Family Total"->"Channel Total" * AllocRatioNetSales; "Inventory Adjustments" = "Inventory Adjustments"->"Family Total"->"Channel Total" * AllocRatioNetSales; ) ENDFIX /*THE MAIN ROLLUP.*/ CALC DIM (Accounts, "Year Tot", Customer, Product); /*THE BACK CALC.*/ /*Recalculate upper level rates and percentages.*/ ( "List Price" = "Gross Sales" / Units; "Discount %" = Discounts / "Gross Sales"; "Labor/Unit" = "Direct Labor" / Units; "Matl/Unit" = Material / Units; "Overhead Rate" =Overhead / "Direct Labor"; "Gross Margin %" = "Gross Margin" / "Net Sales"; ) /*Close out the budget baseline fix.*/ ENDFIX
Hyperion
A-93
A-94
Hyperion
B
Appendix - New Features in Version 6.5.1
This appendix describes the new features in the 6.5.1 release Analytic Services. In addition to a description of the features, this appendix, where necessary, also contains procedures that describe how to implement each feature. The procedures in this appendix use Application Manager as the primary interface; however, many procedures can also be completed using MaxL and ESSCMD. When this is the case, it is noted in the documentation.
Overview
The new features in the 6.51 release Analytic Services are divided into three areas: Calculation System Administration MaxL changes The following sections provide a summary of all changes within each category as well as a specific, detailed explanation of each new feature.
Calculation
In respect to calculation the new features are as follows: @XRANGE @MOVSUM @MOVSUMX
@XRANGE Function
@XRANGE is a new calculator function that takes as input two members (single or cross-dimensional) and returns a member range. @XRANGE is a member set function. This function is useful, for example, when you work with the Time and Scenario dimensions. You can use @XRANGE to return a member set combination of Time and Scenario instead of creating a dimension that combines the two (which creates many more individual members than necessary).
B-2
Hyperion
For example, an outline containing separate Scenario and Year Tot dimensions might require storage and maintenance for 23 members. Conversely, an outline with Scenario and Year Tot combined into a single Time dimension might require storage and maintenance for 85 members.
Using the @XRANGE function, you can now use a separate time and time dimensions and still reap the benefits of a combined Fiscal Year Cross-Over design.
Syntax
@XRANGE (mbrName, mbrName) @XRANGE identifies a range of members using the level of the arguments, determines the cross product of all members in the range and then prunes the set to include only the range requested. For example: @XRANGE(1999->Jun, 2001->March) This example returns this range: 1999->Jun, 1998->Jul, ... 1999->Dec, 2000->Jan, 2000->Feb, ..., 2000->Dec, 2001->Jan, 2001->Feb, 2001->Mar
Hyperion
B-3
Notes
@XRANGE can be used only in these functions: @AVGRANGE @MINRANGE @MAXRANGE @STDDEVRANGE @MOVAVG @MOVMAX @SPLINE @SUMRANGE @MINSRANGE @MAXSRANGE @MOVSUM @MOVMIN @MOVMED
@XRANGE can appear anywhere in a formula where a range can normally appear. The two arguments to @XRANGE must be either single members or cross-dimensional members with the same member components. You cannot mix a single member and cross-dimensional member. For example, @XRANGE(1999->Jun, 2001) is invalid because a single member and a cross dimensional member are used together. The dimension order of members must match for both arguments. For example, @XRANGE(1999->Jun, March->2001) is invalid because the two member components are in different orders. Changing 1999->Jun to Jun->1998 or changing March->2001 to 2001->March results in a valid function. Although the syntax is correct, a function such as @XRANGE (2001, 1999) is meaningless because it results in an empty set. The member components of each argument must be from the same level. For example, @XRANGE(1999->Jun, 2001->Qtr1) is invalid because Jun and Qtr1 are not from the same level.
@MOVSUM Function
@MOVSUM lets you calculate a moving sum. This function applies a moving n-term sum to an input data set. Each term of the set is replaced by a trailing sum of n terms, and the first terms (the n-1 terms) are copies of the input data. @MOVSUM modifies a data set for smoothing purposes.
B-4
Hyperion
Syntax
@MOVSUM (mbrName [, n [, rangeList]])
mbrName Any valid single member name or member combination, or a function that returns a single member or member combination. A positive integer value that represents the number of values to sum. The default is 3. A valid member name, or a comma-delimited list of member names from the same dimension, or member set function or range function that returns a list of members from the same dimension. If rangeList is not specified, Analytic Services uses the level 0 members from the dimension tagged as Time.
Notes
The @MOVSUM function calculates a trailing, rather than a centered, sum. For example:
Trailing Sum 1 2 3 6 Centered Sum 1 2 3 3
While calculating the moving sum, @MOVSUM skips #MISSING values. For example, if one value out of three is #MISSING, Analytic Services adds the remaining two values. If you use a member set function to generate a member list for the rangeList parameter (for example, @SIBLINGS), to ensure correct results, consider the order in which Analytic Services sorts the generated member list. When you use @MOVSUM in a calculation script, use it within a FIX statement. Although FIX is not required, using it may improve calculation performance.
Hyperion
B-5
For periods where the value of n cannot be used to compute the moving sum, the value returned is the same as for the source member. For example:
Mov Sum = @MOVSUM(Sales,3,Jan:Jun);
For January and February, Analytic Services cannot compute a moving sum over the last three months (the value of n) because the three months do not yet exist. Analytic Services simply copies the values for Jan and Feb for the moving sums. When you use @MOVSUM across a large range in a sparse dimension, you may need to increase the size of the calculator cache.
@MOVSUMX Function
The @MOVSUMX function is similar to @MOVSUM in that it applies a moving n-term sum to an input data set. Unlike @MOVSUM, @MOVSUMX provides several options that control the value assigned to trailing members, and how to assign values to members that precede the n-term parameter. @MOVSUMX modifies a data set for smoothing purposes.
Syntax
@MOVSUMX(COPYFORWARD | TRAILMISSING | TRAILSUM, mbrName [,n[,rangelist]] )
COPYFORWARD Copies the member value into the new member until the n value is reached, then it will begin summing the value. Sets the member value to #MISSING until the n value is reached, then it will begin summing the value. Sums the trailing values, regardless of whether the n value is reached or not. When the n value is reached, Analytic Services begins summing just those values Any valid single member name or member combination, or a function that returns a single member or member combination.
TRAILMISSING TRAILSUM
mbrName
B-6
Hyperion
n (optional)
A positive integer value that represents the number of values that are used to calculate the moving maximum. The default is 3. A valid member name, a comma-delimited list of member names, member set functions, and range functions from the same dimension. If rangeList is not specified, Analytic Services uses the level 0 members from the dimension tagged as Time. @XRANGE is also supported as a valid macro within rangeList.
rangeList (optional)
System Administration
In respect to system administration, there have been significant additions to the Essbase kernel and operating processes. The new features are as follows: Port statistics Enhanced security file backup ZLIB compression algorithm Query Logging Improved #MISSING handling with DATACOPY Invalid block header identification and correction Improved exception handling Application memory manager
Port Statistics
You can enable Analytic Services to log, at a specified interval, the number of ports being used. By analyzing the information in the log, you can monitor port utilization and identify a need for more ports before end users are unable to connect.
To check port use statistics and write those statistics to the server log:
1) Edit the essbase.cfg to include the setting:
PORTUSAGELOGINTERVAL x
The value of x represents the number of minutes between each check of the number of ports in use. The value of x can be any whole number from 1 - 60, with 5 the recommended minimum and default value. Analytic Services ignores any portion of a non-whole number.
Hyperion
B-7
New Features in Version 6.5.1 2) 3) Restart the Essbase OLAP server. View the log file. Log file entries look similar to this:
[Mon Apr 22 00:48:50 2002]Local/ESSBASE0/// Info(1056214) [3] ports in use, [10] ports allowed
Examples
PORTUSAGELOGINTERVAL 10 Analytic Services writes the port use statistics to the server log every 10 minutes. PORTUSAGELOGINTERVAL Analytic Services writes the port use statistics to the server log every five minutes (the default value). PORTUSAGELOGINTERVAL 6.75 Analytic Services ignores the non-whole portion of the number, and writes the port use statistics to the server log every six minutes.
B-8
Hyperion
The Check every option controls how often Analytic Services compares the .SEC and .BAK
2) 3)
In the Check every text box, enter a value for the time interval. Click OK.
Review these facts before changing the interval value: The same control manages how often the security backup file is checked against the security file and how often user inactivity is checked. By default, the value is five minutes. Five minutes is the recommended setting to ensure that the security backup file is checked frequently enough to capture security changes. Five minutes is also the recommended value for the inactivity check. If you set the value to zero, the inactivity check is disabled and the essbase.bak is compared to essbase.sec every five minutes (and, as always, updated if necessary). Enter a larger value if your security file does not need to be updated frequently. Enter a smaller value if performance is not an issue.
Hyperion
B-9
If the Essbase OLAP server stops running unexpectedly for any reason, such as a freeze or crash, or as the result of terminating a process, do not restart the Essbase OLAP server until you copy the backup file essbase.bak to the security file essbase.sec. If you do not perform the copy first, when the Essbase OLAP server starts, Analytic Services notes that essbase.sec is corrupt, creates an empty security file and copies it to essbase.bak, thus destroying the backup of your security information.
B-10
Hyperion
To estimate the storage savings you may obtain with ZLIB, create a small database with a small sampling of real data, change the compression setting, restart the Essbase OLAP server, and note the difference in storage. You can also use the small sample database to estimate any changes in calculation or data loading speed.
4)
Click OK.
Query Logging
Query logging provides a way for Analytic Services administrators to track query patterns of an Analytic Services database. The query log file tracks all queries performed against the database regardless of whether the query originated from Spreadsheet Add-in or Report Writer. Query logging can track members, generation or level numbers of members belonging to specific generations or levels and Hybrid Analysis members. Query logging also offers the flexibility to exclude logging of certain dimensions and members belonging to generations or levels. Because the query log file output is an XML document, you can import the log file to any XML-enabled tool to view the log.
Hyperion
B-11
To enable query logging you create a query configuration file (distinct from the essbase.cfg file) and add to the file the configuration settings that control how query logging is performed. You need to create a query log configuration file for each database that requires query logging. If the configuration file is missing or the QUERYLOG setting is OFF, query logging is disabled.
B-12
Hyperion
GENERATION generation-range
Tracks members of the specified generation range by generation number, rather than by member name. For example, QUERYLOG GENERATION 5-7 logs members of generations 5, 6, and 7 of the named dimension by their generation number in the log file. Tracks members of the specified level range by level number, rather than by member name. For example, QUERYLOG LEVEL -3 logs members of levels 0, 1, 2, and 3 of the named dimension by their level number in the log file. Tracks Hybrid Analysis members of the specified dimension. By default, the setting is OFF. The QUERYLOG NONE, GENERATION, and LEVEL parameters do not apply to Hybrid Analysis members because Hybrid Analysis members are not actually members in an Analytic Services outline. If QUERYLOG LOGHAMBRS ON is set, the log output is always displayed in CLUSTER format, regardless of whether QUERYLOG LOGFORMAT TUPLE is set. If QUERYLOG LOGHAMBRS ON is set, but the database or dimension does not have any Hybrid Analysis members, the setting is ignored. Specifies the location of the output log file. The log file name is dbname00001.qlg; for example, basic00001.qlg. Examples of the log path are QUERYLOG LOGPATH /usr/local/Essbaselogs/ and QUERYLOG LOGPATH d:\Essbaselogs\querylogs\. You must include a backslash \ (for Windows directories) or forward slash / (for UNIX directories) at the end of the path expression; otherwise, the query log file is not created. By default, the location for the log output file is the ARBORPATH\App\appname\dbname\ directory. If the LOGPATH path-expression setting is missing, the default is used. Analytic Services writes log information to the query log file after an application stops running. Specifies the format of the log output. CLUSTER and TUPLE provide the same log information, but display the information differently. CLUSTER provides information on how many members of a dimension were queried and lists queried members within their respective dimensions. TUPLE lists each queried member combination. By default, CLUSTER is the log format. Because the TUPLE format lists each member combination queried, TUPLE may have a greater impact on query performance than CLUSTER.
LEVEL level-range
LOGHAMBRS ON | OFF
LOGPATH pathexpression
Hyperion
B-13
LOGFILESIZE n
Specifies the maximum size of an individual query log file in megabytes (MB). The minimum value is 1 MB. The maximum value is 2048 MB (2 GB). If the LOGFILESIZE setting is missing, then, by default, the query log file size is 1 MB. If an initial query log file size exceeds the specification, log information is added to a new query log file. Each time a new file is created, the filename is incremented by one. Specifies the maximum size of all query log files combined in megabytes (MB). The minimum value is 512 MB. The maximum value is 4095 MB. If the TOTALLOGFILESIZE setting is missing, then, by default, the total query log file size is 1024 MB (1 GB). Query log files are created until the file size total exceeds the specified maximum. When the maximum is exceeded, a message is displayed and query logging automatically turns off. Specifies whether the query logging feature is turned on or off. All query log settings are ignored if this setting is OFF or missing. By default, the setting is OFF.
TOTALLOGFILESIZE n
ON | OFF
Generation-range and level-range values are represented in one of the following ways:
Generation-Range or Level-Range Value x Description
A specific generation or level number. For example, QUERYLOG NONE GENERATION 2 excludes generation 2 from query logging. All generations or levels inclusive of number x through number y. For example, QUERYLOG GENERATION 1-3 or QUERYLOG LEVEL 1-3 includes generation or level numbers 1, 2, and 3. For generation-range, all generations within the range 1 through x. For level-range, all levels within the range 0 through x. For example, QUERYLOG GENERATION -2 includes generations 1 and 2. QUERYLOG LEVEL -3 includes levels 0, 1, 2, and 3. For generation-range, all generations within the range from number x through the highest generation. For level-range, all levels within the range from number x through the highest level. For example, QUERYLOG Level 1- includes levels 1, 2, 3 and so on up to the highest level.
x-y
-x
x-
B-14
Hyperion
Notes
When query logging is enabled, queries to the database may be slower. Performance depends on how many members are being tracked and the size of the query. If the configuration file name does not match the name of the database or the configuration file is located in a place other than the ARBORPATH\App\appname\dbname directory, Analytic Services ignores query logging. You can place QUERYLOG settings in any order in the configuration file, but QUERYLOG [dimension_name] must precede any settings that specify Hybrid Analysis members or any setting that specify members by generation or level. If, in the configuration file, QUERYLOG ON is missing or if QUERYLOG OFF is set, query logging is disabled. If generation and level settings cause contradictions in the configuration file, the following precedence rules apply: generation numbers (highest priority) level numbers member names (lowest priority) For example, if a member belongs to both level 1 and generation 2 and the settings QUERYLOG GENERATION 2 and QUERYLOG NONE LEVEL 1 are in the configuration file, the generation setting takes precedence, and members of generation 2 are logged by generation number.
2) 3) 4)
For example, the Bigcorp Sales database query log file is named Sales.cfg. The names are not case sensitive.
In the configuration file, specify required and optional elements. Restart the database to accept the configuration settings. Restart after creating a file or changing any entries in a file. After query logging is enabled, review the log entries in the query log file, dbname.qlg. For example, you can view the output of the log file to analyze how many times a certain member has been queried.
Hyperion
B-15
B-16
Hyperion
Subqueries
A query is a unit of retrieval from the user perspective. The way a user may perceive a query is different than how the server analyzes and executes a query. Even if a user performs a single retrieval, in order for the server to efficiently execute the logical query, the server splits the query into a number of subqueries to execute. Therefore, a single retrieval from the user perspective may actually consist of several subqueries from the server perspective. These subqueries are reflected in the query log.
Hyperion
B-17
B-18
Hyperion
Syntax
SET COPYMISSINGBLOCK ON | OFF DATACOPY... The default behavior is for the #MISSING blocks to be created (SET COPYMISSINGBLOCKS ON), to provide backward compatibility.
Notes
The enhanced DATACOPY command prevents new #MISSING blocks from being created when a DATACOPY (partial block copy) on a dense dimension is requested. It does not remove existing #MISSING blocks. A message is added to the server log to indicate the number of data blocks being copied from the source data blocks. The number of #MISSING blocks skipped, if any, is also reported in the server log.
Example
[Fri May 31 10:35:03 2002]Local/Test6/Test6/essexer/ Info(1012574) Datacopy command copied [1] source data blocks to [0] target data blocks [Fri May 31 10:35:03 2002]Local/Test6/Test6/essexer/ Info(1012576) Datacopy command skipped creating [1] target data blocks with CopyMissingBlock OFF
Hyperion
B-19
Syntax
IBHFIXTHRESHOLD [appName | xxxx] [dbName | xxxx] percentage
appName and dbName These are optional, but be sure to specify an application name if you specify a database name. You can substitute xxxx for either appName or dbName, or both. xxxx is a wildcard for the application name and database name The value of the percentage of IBHs reported relative to the number of level 0 blocks on disk. Once a database reaches the threshold, Analytic Services sends a message to the client requesting that the user rebuild the database, and shuts down. Valid values are whole numbers 0 through 100.
percentage
If messages are written to the client or server log indicating the presence of IBH errors, but the threshold that requires the database be rebuilt is not reached, you can either rebuild the database or you can find and fix the errors.
The file name is the name of the client or server log file.
If Analytic Services runs in uncommitted mode when it receives an IBH error message, the current transaction may stop without any rollback, meaning that some data may have changed. Be sure to verify that all transactions that you expected to finish have finished. If not, you may need to clean up the data or rebuild the database.
B-20
Hyperion
Hyperion
B-21
3G 3G 1741 M 2G
Use these recommended values or, if lower, the amount of physical memory plus swap space available. For example, if a computer has only 2 GB of combined physical memory and swap space, and other applications on that computer require 1 GB, then the value of MEMORYLIMIT should be no more than 1 GB.
B-22
Hyperion
4)
You must restart an application after you change its memory configuration file, because the application reads the memory configuration file only once, during start up.
When 90% of the value in the configuration file is reached, Analytic Services writes this warning message to the application log:
Application is using [n] bytes of memory. It is more than 90 percent of the limit set in the memory config file.
If the application uses 100% of the memory as limited by the Memory Configuration file, Analytic Services writes this error message to the application log and stops the application:
Application is using [n] bytes of memory, and is requesting a new memory block of [n] bytes. The memory has exceeded the limit.
When the 90% warning messages appear in the log, the database administrator may wish to take corrective action: Increase the memory limit in the relevant memory configuration file and restart the application if more memory is available. Examine cache sizes and reduce the size if possible. If neither of these actions is possible or resolves the memory problem, work loads or applications may require additional adjustments or tuning.
Hyperion
B-23
Notes
You can set MEMORYLIMIT to any whole number value, thus you can adjust Analytic Services to write a message to the application log after 90% of any particular memory value has been exceeded. For example, if you want a message written to the log after 1 GB of memory is exceeded, set MEMORYLIMIT to 1 G, and warnings are written once the application exceeds 90% of 1 GB. Analytic Services builds a cache of 48 MB on startup to handle allocations up to 64 KB each. If you notice a rise in memory requirements from releases prior to 6.5.1, this change in cache allocation may be the cause. The maximum size of this internal cache is 128 MB.
MaxL Features
Many MaxL commands have been upgraded to support increased functionality in system administration options. This table summarizes changes to individual MaxL commands:
Command alter system Keyword sync security_backup Function Checks whether the security backup file is the same as the security file, and if not, synchronize the security backup file to the current state of Analytic Services security. Set the time interval for inactivity checking and security-backup refreshing. The time interval specified in the session idle poll tells Analytic Services both of the following: How often to check whether user sessions have passed the allowed inactivity interval indicated by session_idle_limit in the alter system statement. How often to refresh the security backup file. If session_idle_poll is set to zero, the security backup file is still refreshed every five minutes.
alter system
set session_idle_poll
B-24
Hyperion
Function Delete directories created for linkedreporting objects exported from a database to a directory created in $ARBORPATH\app. Use this grammar after the exported LROs have already been migrated into a database using import LRO, and the directories containing the exported LRO information are no longer needed. Sets the database to use ZLIB compression. Previous database reset functionality cleared all data from the database (reset all). Now you can optionally clear the database of data and metadata (index files, page files, and outline) and preserve any partition definitions, calculation scripts, load rules, and other associated database objects that you want to keep (reset data).
Deletes all blocks that have invalid headers. Synchronize the outlines between partitioned databases. Use this in the event that one outline has undergone changes to dimensions, members, or member properties, and you wish to propagate those changes to the partitioned database. You can display partition information in the following ways using display partition. all - Display all partitions defined on the system. on database - Display all partitions associated with the specified database. advanced - Display full information including areas and member mappings for local and remote pieces of partitions.
display partition
Multiple keywords
Hyperion
B-25
B-26
Hyperion
Glossary
! #MISSING accounts dimension See bang character. See missing data. A dimension type that makes accounting intelligence available. You can tag only one dimension as accounts; you do not have to have an accounts dimension. An individual who installs and maintains the Analytic Services system including setting up user accounts and security. See also database administrator, system administrator. An option in the Spreadsheet Add-in that you use to define a layout through drill through or the Query Designer or by typing data into the sheet. When you construct a free-form report in Advanced Interpretation mode, Analytic Services interprets the member names and creates a default view that is based on the location of the labels. A process on the server that starts and stops applications and databases, manages connections from users and handles user-access security. Referred to as ESSBASE.EXE. A record of actions performed by the agent (server). See consolidate. An alternative name for a dimension, member or description. A database table that stores aliases for the dimensions or members. See alias. A branch member that has members below it. For example, in a dimension that includes years, quarters and months, the members Qtr2 and 2001 are ancestors of the member April. A logical expression used in calculations or report scripts to identify a subset of members. A management structure containing one or more Analytic Services databases and the related files that control many system variables, such as memory allocation and autoload parameters. An individual who designs, creates and maintains Analytic Services applications and databases. A record of user actions performed on an application. Analytic Services software that you use to create and maintain Essbase applications.
administrator
agent
agent log file aggregate alias alias table alternate name ancestor
AND/OR application
Glossary
Application Programming Interface Application Server ARBORPATH area arithmetic data load asymmetric report
(API) A library of functions that you can use in a custom C or Visual Basic program to access the Essbase OLAP server. The main server process (ESSSVR) that runs when an application starts. An environment variable that specifies the Analytic Services root directory. A predefined set of members and values that makes up a partition. A data load that performs operations on values in the database, such as adding 10 to each value. A report characterized by groups of members that differ by at least one member across the groups. There can be a difference in the number of members or the names of members under each heading in the report. For example, a report based on Sample Basic can have three members grouped under East and two members grouped under West. A process of defining reports that is based on the attributes of the base members in the database outline. (!) A character that terminates a series of report commands and requests information from the database. A report script must be terminated with a bang character; several bang characters may be used within a report script. An operating system file that can call multiple ESSCMD scripts and run multiple sessions of ESSCMD. Batch files handle batch data loads and complex calculations and can include commands that run report scripts. You can run a batch file on the server from the operating system prompt. On Windows-based systems, batch files have .BAT file extensions. On UNIX, a batch file is written as a shell script. A method of using ESSCMD to write a batch or script file that can be used to automate routine server maintenance and diagnostic tasks. ESSCMD script files can execute multiple commands and can be run from the operating system command line or from within operating system batch files. Batch files can be used to call multiple ESSCMD scripts or run multiple instances of ESSCMD. The primary storage unit within Analytic Services. A data block is a multidimensional array representing the cells of all dense dimensions. A calculation that is performed from the bottom member of an outline to the top member of the outline. Also, data that is copied or moved from a departmental/organizational cube to a consolidated model. A method used to modify database outlines. You select a build method based on the format of data in data source files. See calculation script. The process of aggregating or of running a calc script on a database. A text file containing a set of instructions telling Analytic Services how to calculate a database. The process of creating multiple reports for a subset of member values.
batch file
block bottom-up
G-2
Hyperion
Glossary
cell
A unit of data representing the intersection of dimensions in a multidimensional database; the intersection of a row and a column in a worksheet. A text annotation of up to 599 characters for a cell in an Analytic Services database. Cell notes are a type of linked reporting object. See outline change log. A member that has a parent above it in the database outline. A child may have peers (siblings) that exist at the same layer of the database outline. A data block is marked as clean if the database is fully calculated, if a calc script calculates all dimensions at once or if the SET CLEARUPDATESTATUS command is used in a calc script. A client interface, such as the Spreadsheet Add-in software, a custom API program or the Application Manager. A client is also a workstation that is connected to a server through a local area network. A record of all messages, actions and errors that are generated by a client. A vertical list of fields. A part of a report that lists members across a page. When you define columns that report on data from more than one dimension, you produce nested column headings. A member that is listed in a column heading is an attribute of all data values in its column. An Essbase kernel Isolation Level setting that affects how Analytic Services handles transactions. Under committed access, concurrent transactions hold long-term write locks and yield predictable results. The process of gathering data from dependent entities and aggregating the data up to parent entities. After you enter or load data into dependent child entities, you perform a consolidation to aggregate the data through the organization. As data consolidates, intercompany processing, conversion methods, equity adjustments and minority ownerships perform calculations on the data. For example, if the dimension Year consists of the members Qtr1, Qtr2, Qtr3 and Qtr4, its consolidation is Year. The terms aggregate and roll-up also describe the consolidation process. A factor that converts currency values in an Essbase database from one countrys currency into anothers, optionally without altering the original data. A dimension type that separates local currency members for a base currency defined in your application. Also identifies currency types such as Actual, Budget and Forecast. See block. A buffer in memory that holds uncompressed data blocks. See cell. A file containing data blocks; Analytic Services generates the data file during a data load and stores it on disk.
client
committed access
consolidate
Hyperion
G-3
Glossary
data load
The process of populating an Analytic Services database with data. Loading data establishes actual values for the cells defined by the structural outline of the database. A set of criteria or rules that Analytic Services uses to determine how to load data from a text-based file or a relational data set into an Analytic Services database. See cell. External data, such as a text file, spreadsheet file or SQL database, that is loaded into an Essbase database. See cell. A repository of data within Analytic Services that contains a multidimensional data storage array. Each database consists of a storage structure definition (a database outline), data, security definitions and optional calculation scripts, report scripts and data loading scripts. An application contains one or more databases. An individual who administers database servers, such as Analytic Services, and who may also design, maintain and create databases. In Analytic Services, the highest type of access that can be assigned globally (per database). This type of access allows complete calculate and update access and the ability to run report and calc scripts. A layer in the Analytic Services security plan that defines specific settings for database members down to the cell level. See Database Designer. A dimension with a high probability that data exists for every combination of dimension members. Any member below a parent in the database outline. For example, in a dimension that includes years, quarters and months, the members Qtr2 and April are descendants of the member Year. See leaf member. A data category. The Sample Basic database includes such dimensions as Time, Accounts, Product or Market. In an Essbase database outline, the dimensions represent the highest consolidation level. Specifications, similar to data load rules, that Analytic Services uses to modify an outline. The modification is based on data in an external data source file. See dimension. A data block containing cells that have been changed since the last calculation. Upper level blocks are marked as dirty if their child blocks are dirty (that is, have been updated).
G-4
Hyperion
Glossary
A user name that has become inactive, meaning that the user is not able to log on to the server. Users with supervisor privilege can disable a user name for any reason. User names are disabled automatically if they exceed serverspecific limitations on login attempts or number of inactive days.Only users with supervisor privilege can enable disabled user names. see zoom. A method of retrieving metadata and data at the moment of retrieval. Members that Essbase calculates when you first retrieve the values. Essbase then stores these values in the database. Subsequent retrievals of Dynamic Calc And Store members do not require calculating. A member that the Essbase OLAP server calculates only at retrieval time. The server discards calculated values after the retrieval request is complete. A member that the Essbase OLAP server calculates only at retrieval time. The server discards calculated values after the retrieval request is complete. In Analytic Services, a calculation that occurs only when you retrieve data on a member that has been tagged as Dynamic Calc or Dynamic Calc And Store. The members values are calculated at retrieval time instead of being precalculated during batch calculation. In Analytic Services, a calculation that occurs only when you retrieve data on a member that has been tagged as Dynamic Calc or Dynamic Calc And Store. The members values are calculated at retrieval time instead of being precalculated during batch calculation. A pointer in the rules file to header records in a data source. Header records define data load or dimension build criteria for the fields in a data source. A process that is used to perform dynamic period-to-date reporting. Predefined members that are used to perform Dynamic Time Series reporting. The Analytic Services cell retrieve function. An EssCell function is entered into a cell in the Spreadsheet Add-in to retrieve a single database value that represents an intersection of specific database members. A command-line interface that is used to perform server operations interactively or through a batch file. A text file that contains ESSCMD commands, which Analytic Services executes in order to the end of the file. You can run a script file from the operating system command line or from within an operating system batch file. The default extension is .SCR. A type of reporting command that handles the selection, orientation, grouping and ordering of raw data extracted from a database. These commands begin with the less than (<) character. A value or item in a data source file that is loaded into an Analytic Services database.
drill down dynamic Dynamic Calc And Store members Dynamic Calc members Dynamic Calc members dynamic calculation
dynamic calculation
dynamic reference Dynamic Time Series Dynamic Time Series members EssCell
extraction command
field
Hyperion
G-5
G
filter
Glossary
file delimiter
One or more characters, such as commas or tabs, that separate fields in a data source. A method for controlling access to database cells in Essbase. A filter is the most detailed level of security, allowing you to define varying access levels different users can have to individual database values. A Spreadsheet Add-in command that restores the previous database view. This command is similar to a typical Undo command. A type of Report Writer command that allows for customizing the report format and appearance, the creation of new columns and calculation of columns and rows. These commands are generally contained within curly brace { } characters, although some begin with the < character. A combination of operators and functions as well as dimension names, member names and numeric constants. Formulas are used to perform specific calculations on members of a database. See preserve formulas. A method of loading data into the database. Free-form data loading is used when the data source contains enough information to load the data source directly into the database. For example, use free-form data loading when the data is in the natural order used by Essbase, when the dimension, member or alias names are required and when the data is read according to the member names Essbase finds. An option in the Spreadsheet Add-in that you use to type report script commands in the worksheet to create reports. A method of creating reports in which you type members of dimensions or report script commands in a worksheet. Free-form reporting is available in both Advanced Interpretation mode and Free-Form mode. A predefined routine that returns a value, a range of values, a Boolean value or a list of database members. The system provides the following categories of functions: mathematical, relationship, financial, member set, Boolean, statistical, forecasting, allocation and date-time. A layer in a hierarchical tree structure that defines member relationships in an Analytic Services database. Analytic Services orders generations incrementally from the dimension (generation 1) down to the leaf members. A unique name that describes a generation. A layer in the Analytic Services security system that is used to define common access settings for applications and databases. A command that is executed when it occurs in the report script file and that stays in effect until the end of the report file or until another global command replaces it. One or more records at the top of a data source that describe the contents. A set of multidimensional relationships in an outline, often created in a tree formation. For example, parents, children and generations represent a hierarchy.
formula
function
generation
generation name global access layer global report command header record hierarchy
G-6
Hyperion
Glossary
index
A method that Analytic Services uses to retrieve data. The retrieval is based on the combinations of sparse dimensions. The term index also refers to the index file. A buffer in memory that holds index pages. A pointer to an intersection of sparse dimensions. Each index entry points to a data block on disk and locates a particular cell within the block by means of an offset. A file that Analytic Services uses to store data retrieval information. It resides on disk and contains index pages. A subdivision of an index file containing entries that point to data blocks. A type of data block that has at least one loaded data value. Any data that is loaded from a data source and is not generated by calculating the database. A calculation method that tracks which data blocks have been updated since the last calculation. A method of using ESSCMD by entering commands in the ESSCMD window and responding to prompts if necessary. For routine server administration tasks or for complex tasks that require many commands, consider using batch processing mode. A situation in which a specific dimension does not intersect with other dimensions. The data is not irrelevant, but because the data in the specific dimension cannot be accessed from the other dimensions, those other dimensions are not relevant to the specific dimension. An Essbase kernel setting that determines the lock and commit behavior of database operations. Choices are committed access and uncommitted access. The point at which you can drill across from a data value in one database to a corresponding location in another database. An Essbase Spreadsheet Add-in command that retains only the rows that are highlighted within a spreadsheet. A key word that is used within the Spreadsheet Add-in or within Report Writer to extract data values based on the member defined as the latest period of time. A member that has no children. See leaf member. A branch within a dimension. The levels are numbered incrementally from the leaf member (level 0) towards the root. A data block that is created for sparse member combinations when all of the members of the sparse combination are level 0 members. See leaf member.
index file index page input block input data intelligent calculation interactive mode
interdimensional irrelevance
isolation level
Hyperion
G-7
G
linked
Glossary
level name
A unique name that describes a level. A connection or jump point from one cell to a cell in another database, a cell note, URL or a separate file. A term that encompasses linked partitions and linked reporting objects. A form of shared partition that provides the ability to use a data cell to link together two different databases. When a user clicks on a linked cell in a worksheet, for example, Analytic Services opens a new sheet displaying the dimensions in the second database. The user can then drill down into the available dimensions in the second database. (LRO) An external file that is linked to a data cell in an Analytic Services database. Linked reporting objects (LROs) can be cell notes or files that contain text, audio, video or pictures. See data load. A method to prevent two people from simultaneously altering the same set of data. The Essbase Storage Manager handles data block locking. When creating partitions, you can also place a lock on the partition definition file to prevent other users from editing its contents while you are working. A system maintained file that records actions and commands. For example, an application log file records user actions that are performed on that application; a client log file records client messages, actions and errors. See unary operators. A multidimensional database. A discrete component within a dimension. For example, a time dimension might include members such as Jan, Feb and Qtr1. A feature within the Spreadsheet Add-in that you use to specify members for a report. A type of Report Writer command that selects ranges of members based on database outline relationships, such as sibling, generation and level. A type of Report Writer formatting command that is executed as it is encountered in a report script. The command affects only the member to which it is associated and executes the format command before it processes the member. The data that describes the structure and/or data values within a database (for example, dimensions and member names). An option group that controls the default security to all of an applications databases, using access settings (such as Read or None) that are applied globally to the application. All users connecting to databases within the application have the access level defined as minimum database access; however, individual user privileges may be higher.
log file
mathematical operators MDDB member member select member selection report command member-specific report command
G-8
Hyperion
Glossary
missing data
(#MISSING) A marker indicating that data in the labeled location does not exist, contains no meaningful value or was never entered or loaded. For example, missing data exists when an account contains data for a previous or a future period but not for the current period. (MDDB) A method of referencing data through three or more dimensions. An individual record is the intersection of a point for a set of dimensions. Contrast with relational database. A client-server process that enables multiple users to work on the same applications without interfering with each other. A network protocol stack that enables Analytic Services clients on Windows 95/98 to communicate with Essbase OLAP servers on Windows NT, when both operating systems use NetBEUI instead of TCP/IP. A Spreadsheet Add-in option that you use to turn off data retrieval. This feature is most useful when a database has Dynamic Calc and Dynamic Calc And Store members. A column heading for a report column that displays data from more than one dimension. For example, in the Sample Basic database, a column heading that contains both Year and Scenario members is a nested column. This is scripted as: <COLUMN (Year, Scenario). The nested column heading shows Q1 (from the Year dimension) in the top line of the heading, qualified by Actual and Budget (from the Scenario dimension) in the bottom line of the heading. A file that is related to an application or database. Objects can be outlines, rules files, calc scripts, report scripts or data sources. They are stored within the application or database subdirectory on the server or client machine. (OLAP) A multidimensional, multi-user, client-server computing environment for users who need to analyze consolidated enterprise data in real time. OLAP systems feature drilling down, data pivoting, complex calculations, trend analyses and modeling. See unary operator. A record of changes made to an Analytic Services database outline. See data file. A type of report heading that lists members that are represented on the current page axis of the report. All data values on the page axis have the members in the page heading as a common attribute. A storage scheme that makes use of spare disk space by increasing the available memory. A member that has an aggregated branch below it.
object
paging parent
Hyperion
G-9
Glossary
partition area
A subcube within a database. A partition is composed of one or more areas. These areas are composed of cells from a particular portion of the database. For replicated and transparent partitions, the number of cells within an area must be the same for both the data source and the data target to ensure that the two partitions have the same shape. If the data source area contains 18 cells, the data target area must also contain 18 cells to accommodate the number of values. An Analytic Services tool that you use to create and maintain a replicated, linked or transparent database partition. Partition Manager includes Partition Wizard, a component that contains a series of pages that step you through the partition creation process. The process of defining areas of data that are shared or linked between data models. Partitioning can affect the performance and scalability of Analytic Services applications. A group of options in the server settings that you use to limit a users allowed number of login attempts, number of days of inactivity and number of days using the same password. The ability to match a value with any or all characters of an item that is entered as a criterion. A missing character may be represented by a wild card value such as a question mark (?) or an asterisk (*). For example, find all instances of apple returns apple, but find all instances of apple* returns apple, applesauce, applecranberry and so on. See siblings. A specific key term used to define a Dynamic Time Series member that identifies a special period of time (for example, semi-annual). The ability to alter the perspective of retrieved data. When Analytic Services first retrieves a dimension, it expands data into rows. You can then pivot or rearrange the data to obtain a different viewpoint. The process of calculating the database prior to user retrieval. The process of keeping user-created formulas within a worksheet while retrieving new data. A row of fields that is read as a unit from a data source. Duplicate data blocks that Analytic Services retains during transactions until Analytic Services commits the updated blocks. A Spreadsheet Add-in command that you use to remove only the highlighted cells within a worksheet. A portion of a database, defined through Partition Manager, that you use to propagate as update to data that is mastered at one site to a copy of data that is stored at another site. Users are able to access the data as though it were part of their local database. The formatted summary information that is returned from a database after a report script is run. One or more reports can be generated from a report script.
Partition Manager
partitioning
precalculation preserve formulas record redundant data Remove Only replicated partition
report
G-10
Hyperion
Glossary
Report Editor
An ASCII text editor that you use to write report scripts. The Report Editor features a text editing window and customized menus. Saved report scripts have the file name extension *.REP. An Analytic Services component that retrieves report data from the Analytic Services database when you run a report script. An ASCII file containing the Report Writer commands that generate one or more production reports. Report scripts can be run in batch mode, through the ESSCMD command-line interface or through the Application Manager. The report script is a text file that contains data retrieval, formatting and output instructions. An Analytic Services component that displays the complete report after a report script is run. Saved reports typically have the file extension .RPT. An operation to reload data and/or structural information after a database has been damaged or destroyed. Typically performed after you shut down and restart the database. An operation to regenerate or rebuild the database index and, in some cases, the data files. See consolidate. The highest member in a branch. Contrast with leaf member. A report heading that lists members down a report page. The members are listed under their respective row names. Loading data and building outlines A multi-user computer that accesses data values based on the intersection of dimension members. See server. Any occurrence that stops the server, including a crash, a power outage or a user pressing the Ctrl+C keys. A member that shares storage space with another member of the same name. The shared member has a property that designates it as shared. The use of shared members prevents duplicate calculation of members that appear more than once in an Analytic Services outline. A child member within a dimension, having the same parent as another child member. For example, the members East and West are both children of the Markets dimension and siblings of each other. See symmetric multiprocessing. A dimension with a low probability that data exists for every combination of dimension members. Analytic Services software that works with your spreadsheet. The Spreadsheet Add-in is an add-in module to your spreadsheet software. See visual cues.
restructure roll-up root member row heading rules server server application server interruption shared member
sibling
Hyperion
G-11
Glossary
Additional retrievals of the same member combinations after the first retrieval is complete. A cross-section of data. Subsetting further defines members that meet specific conditions. A variable that acts as a global placeholder for information that changes regularly. You set the variable and a corresponding string value; the value can then be changed at any time. Substitution variables can be used in calc scripts, report scripts, the Spreadsheet Add-in and Analytic Services API. A defined type of user who has full access to all applications, databases, related files and security mechanisms for a server. The option to exclude rows that contain missing values and to underscore characters from spreadsheet reports. See paging. (SMP) A server architecture that enables multiprocessing and multithreading. Analytic Services supports multiple threads over SMP servers automatically. Thus, performance is not significantly degraded when a large number of users connect to an Essbase OLAP server simultaneously. A symmetric report is characterized by repeating, identical groups of members. A person who maintains the hardware, software, disk space distribution and configurations for running software applications such as Analytic Services. See Transmission Control Protocol/Internet Protocol. A predefined format that is designed to retrieve particular data on a regular basis and in a consistent format. A dimension type that defines how often data is collected and updated, such as fiscal or calendar periods. Only one dimension may be tagged as time; a time dimension is not required. A process of reporting data based on a date calendar (for example, year, quarter, month or week). A bar of icons that represent Essbase commands. Icons are used as shortcuts to the Essbase menu. (TCP/IP) A standard set of communications protocols that are adapted by many companies and institutions around the world and that link computers with different operating systems and internal architectures. You use TCP/IP utilities to exchange files, send mail and store data to various computers that are connected to local and wide area networks. A form of shared partition that provides the ability to access and manipulate remote data transparently as though it were part of your local database. The remote data is retrieved from the data source each time you request it. Any updates made to the data are written back to the data source and become immediately accessible to both local data target users and transparent data source users.
transparent partition
G-12
Hyperion
Glossary
two-pass calculation
An Analytic Services property that is used to recalculate members that are dependent on the calculated values of other members. Two-pass members are calculated during a second pass through the database outline. An Analytic Services property that is used to recalculate members that are dependent on the calculated values of other members. Two-pass members are calculated during a second pass through the database outline. Formerly called user-defined attribute. A UDA is a term associated with members of an outline to describe a particular characteristic of the members. Users can specify UDAs within calc scripts and reports to return lists of members that have the specified UDA associated with them. UDAs can be applied to dense as well as sparse dimensions. A group of mathematical indicators (+, -, *, /, %) that define how roll-ups take place on the database outline. An Essbase kernel setting that affects how Analytic Services handles transactions. Under uncommitted access, concurrent transactions hold short-term write locks and can yield unpredictable results. (URL) An address for a resource in the World Wide Web, such as a document, image, downloadable file, service or electronic mailbox. URLs use a variety of naming schemes and access methods such as HTTP, FTP and Internet mail. An example of a URL is http://www.hyperion.com. A URL can also point to a file on a local or network drive, such as D:essbasedocsindex.htm. A type of data block that is created for sparse member combinations when at least one of the sparse members is a parent-level member. See uniform resource locator. See UDA. A process of checking a rules file, report script or partition definition against the outline to make sure the object being selected is valid. See Free-Form mode. A formatted style such as a font or a color that highlights specific types of data values. Data values may be dimension members; parent, child or shared members; dynamic calculations; members containing formula; read only data cells; read/write data cells; or linked objects. An Essbase attribute used for re-calculating an Accounts member, a Dynamic Calc member or a Dynamic Calc And Store member, after a consolidation takes place.
two-pass calculation
UDA
upper-level block URL user-defined attribute validation Version 2.x mode visual cue
two-pass calculation
Hyperion
G-13
Glossary
G-14
Hyperion