Professional Documents
Culture Documents
D70048GC10 Sg2 Oracle Activity Guide
D70048GC10 Sg2 Oracle Activity Guide
D70048GC10
Edition 1.0
September 2008
D56250
Authors
Lisa Alexander
Jumal Qazi
Disclaimer
Shubho Bhattacharya
Art Hetherington
Saju Philips
Sergiy Percherskyy
Aneel Shenker
Yulia Stolerman
Editors
Susan Moxley
Jennifer Stout
Graphic Editors
Asha Thampy
Satish Bettegowda
The information contained in this document is subject to change without notice. If you
find any problems in the document, please report them in writing to: Oracle University,
500 Oracle Parkway, Redwood Shores, California 94065 USA. This document is not
warranted to be error-free.
Restricted Rights Notice
If this documentation is delivered to the United States Government or anyone using
the documentation on behalf of the United States Government, the following notice is
applicable:
U.S. GOVERNMENT RIGHTS
The U.S. Governments rights to use, modify, reproduce, release, perform, display, or
disclose these training materials are restricted by the terms of the applicable Oracle
license agreement and/or the applicable U.S. Government contract.
Trademark Notice
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other
names may be trademarks of their respective owners.
Technical Contributors
and Reviewers
Table of Contents
Preface
Table of Contents
Table of Contents
Table of Contents
vi
Table of Contents
9-19
9-21
9-22
9-24
vii
viii
Table of Contents
Table of Contents
ix
Table of Contents
Module 6: Appendices
Appendix A: Creating Advanced Calculations
Script Development Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2
Calculation Test Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-4
Prototype Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-6
Pilot Phase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-9
Upper-Level Data Loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-13
Aggregating Missing Values (1/1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-14
Aggregating Missing Values (2/2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-15
Loading to Leaf Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-20
Intelligent Calculation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-23
Data Block Marking: Clean Blocks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-25
Data Block Marking: Dirty Blocks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-28
Usage Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-30
Allocating Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-32
Calculating Fixed Rate Allocations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-34
Calculating Dynamic Ratio Allocations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-36
Normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-38
Partitioning Calculations by Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-40
Developing Normalization Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-42
Developing Block Diagrams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-45
Normalizing Rates and Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-47
Table of Contents
A-49
A-50
A-52
A-54
xi
Table of Contents
xii
M O D U L E
Appendices
17
Overview
A P P E N D I X
Objectives
Module 6 Appendices
Appendix A Creating Advanced Calculations
A-2
Module 6 Appendices
Appendix A Creating Advanced Calculations
Real-world data is often more difficult to audit than test data. As you develop scripts,
you should focus on the technical accuracy of your calculation formulas and not
attempt to tie results to prescribed control totals. It is typically easier to trace
calculations and dependencies with contrived test data than with real-world data.
The calculation script development process has two phases:
1. Prototype Phase: You develop scripts and test them for baseline accuracy.
2. Pilot Phase: You test scripts for performance and capture of exception conditions.
After you finish building your outline, you should separate the calculation
script development process from the rules file development process to avoid
cross-contamination of the data sets required for the processes.
A-3
TIP
Module 6 Appendices
Appendix A Creating Advanced Calculations
CLEARBLOCK ALL;
Changed
calculation
script
Test
cycle
A-4
Module 6 Appendices
Appendix A Creating Advanced Calculations
Implementing Test Cycles
Every time you change your script and need to test calculation results, follow these
steps:
1. Clear all data from the database.
2. Load calculation test data.
3. Execute your calculation script.
If you follow this formalized test cycle every time you test a calculation script, you ensure
the following outcomes:
Results that are based on your input data and the subsequent calculation, not on
other factors
Fastest performance possible, given that results must be based on input data and
subsequent calculation
A-5
Module 6 Appendices
Appendix A Creating Advanced Calculations
Prototype Phase
Audit sheet
Prototype Phase
The prototype phase of calculation script development is for developing a basic script
that correctly calculates dependencies and values for baseline calculations. You want the
prototype phase to be as fast and efficient as possible, with low calculation test cycle
times. To meet this objective, the following process for creating a prototype calculation
script is recommended:
1. Create test input data.
2. Create audit spreadsheets.
3. Implement a draft and test cycle.
TIP
Be sure to check your block statistics before and after running your
calculation.
A-6
Input sheet
Module 6 Appendices
Appendix A Creating Advanced Calculations
Creating Test Input Data
To quickly check your results, you should create test data that is simple, easy to load,
and easy to audit. It is not efficient to create prototype calculation scripts when using full
or even partial sets of actual data, because the results require too much time to calculate
and audit.
To create a simple data set for prototyping:
TIP
In your input worksheets, use only members to which you load data. For
example, if Qtr 1 is a calculated member, do not reference Qtr 1 in your input
sheet. If your input levels vary, you can create multiple input spreadsheets in
one workbook.
For easier auditing, use multiples of 100 or 1000 or similar simple numbers for
which it is easy to trace a series of calculation dependencies.
A-7
1. In Excel, create a spreadsheet workbook, with one or more input worksheets, that
represents a focused set of accounts to be tested against a representative crosssection of sparse dimension members.
Module 6 Appendices
Appendix A Creating Advanced Calculations
Expected calculation results: static data copied from a data source or calculated
using Excel formulas (To protect Excel formulas during retrieval, enable formula
preservation options. To protect numeric data during retrieval, place an equals sign
(=) before the number. Addition of the equals sign converts the number to an Excel
formula.)
You can implement these three sections on one audit worksheet or create an audit
worksheet for each section.
Implementing Draft and Test Cycles
After setting up input and audit worksheets, you draft and test your prototype script by
using a cyclical test procedure. Rather than writing and testing a calculation script in its
entirety, test small sections at a time: Write one line of script and then complete the
calculation testing cycle; then write another line and test again. In this way, you can
identify problematic or incorrect script lines as you write them.
The following tips can help speed the calculation test cycle:
To clear your database, create a separate calculation script with only the command
CLEARBLOCK ALL. This way, you can complete the entire calculation test cycle
from Excel, using the capabilities of Smart View Spreadsheet Add-in, rather than
switching back to Administration Services Console.
NOTE
Do not use this method with larger data sets, as performance is better when
data is cleared using Administration Services Console.
Use Smart View to submit data from your input sheets, or use Spreadsheet Add-in to
lock and send the data.
Before you execute your prototype calculation script, retrieve from the sheets that
audit the results of your Essbase calculation. With this retrieval, you verify the input
data that you loaded.
After calculation, use the Undo feature in Smart View or the Flashback feature in
Spreadsheet Add-in to revert to the input data in your spreadsheet.
A-8
Module 6 Appendices
Appendix A Creating Advanced Calculations
Pilot Phase
When you develop a prototype script, you confirm that calculations and dependencies
work correctly on test data. During the pilot phase of testing, you test the prototype script
against real-world data and make necessary changes.
You typically make two types of adjustments to the prototype script during pilot testing:
Performance optimization
Exception trapping
Performance Optimization
During prototype testing, the database is typically too small for you to accurately assess
performance impacts. During the pilot phase, you refine your prototype script to address
performance issues.
A-9
Pilot Phase
Module 6 Appendices
Appendix A Creating Advanced Calculations
The following tips can help you optimize the performance of your calculation scripts:
Minimize the number of calculation passes in your script. Two calculation passes on
a given set of data blocks require twice as much time as one pass, so use the pilot
phase to ensure that all calculations that can be grouped are performed in a single
pass.
Revise sparse and dense storage settings to reflect your final calculation
requirements.
Revise dynamic calculation (versus batch calculation) approaches to reflect your final
calculation requirements.
Determine whether your calculation returns correct results with intelligent calculation
turned on, thus minimizing the number of data blocks required for calculation. The full
ramifications of intelligent calculation are discussed later in this appendix.
Exception Trapping
The prototype calculation script typically addresses known mainstream or baseline
calculation requirements. Testing your prototype against real data can result in errors
that represent exceptions to the baseline and that require further refinement of the script.
The following are examples of exception trapping:
Adjusting allocation formulas because actual data is input at levels other than the
levels that were assumed during the prototype phase
Adding conditional logic to address the handling of zero values in calculations
Adding DATACOPY commands to create data blocks necessary for calculation
Pilot Phase Testing
Testing in the pilot phase follows the calculation, testing-cycle steps of the prototype
phase but uses real data instead of test data. Using real data modifies the calculation,
test-cycle methodology, as it was described for the prototype phase. Unlike test data,
real data tends to reside in exterior data sources that are typically loaded with rules files.
Also, the volume of real data tends to be significantly higher than the volume of test data,
a difference that increases calculation times.
A-10
For each calculation pass, minimize the number of blocks that Essbase calculates. If
Essbase does not need to calculate every existing data block, use FIX statements to
focus calculation on the necessary blocks.
Module 6 Appendices
Appendix A Creating Advanced Calculations
Additionally, because one of the primary objectives of this phase is to improve calculation
performance, you need to mimic your production environment as much as possible and
follow the sequence of production operations that you ordinarily follow. For example,
upload data from the G/L, make outline modifications, and then run your calculation.
/****************************************************************/
/* This MaxL script clears and then loads data to the
/* Bigcorp Sales database for testing calculation scripts.
/* Variables:
/* $1 = user name
/* $2 = password
/****************************************************************/
*/
*/
*/
*/
*/
/* ****************************************/
/* CREATE PROCESS LOG AND LOGIN TO SERVER */
/* ****************************************/
spool on to 'c:\temp\output.txt';
login $1 $2 on 'localhost';
/* ***********************************************************/
/* Activate and then clear data from Bigcorp Sales database */
/* ***********************************************************/
alter system load application 'Bigcorp';
alter application 'Bigcorp' load database 'Sales';
alter database 'Bigcorp'.'Sales' reset;
/* ***************************************/
/* Load data files
*/
/* ***************************************/
import database 'Bigcorp'.'Sales' data
from server text data_file 'Actual'
using server rules_file 'Loadcorp'
on error write to 'c:\temp\acterr.txt';
import database 'Bigcorp'.'Sales' data
A-11
Although Excel should still be used in this phase to audit calculation results, you can
automate the rest of your calculation test cycle by using a MaxL script. The following
example clears the database, loads data files, and then runs a calculation script. The
entire process is spooled to a log file, which shows database statistics before and after
calculation.
Module 6 Appendices
Appendix A Creating Advanced Calculations
from server text data_file 'Forecast'
using server rules_file 'Loadcorp'
on error write to 'c:\temp\forerr.txt';
/**********************************************/
/* Get pre-calculation database statistics*/
/**********************************************/
/*****************************/
/* Run calculation scripts*/
/*****************************/
execute calculation 'Bigcorp'.'Sales'.'CalcAll';
/***********************************************/
/* Get post-calculation database statistics*/
/***********************************************/
query database 'Bigcorp'.'Sales' get dbstats data_block;
/* ********************************/
/* Close out process log and exit */
/* ********************************/
spool off;
exit;
A-12
Module 6 Appendices
Appendix A Creating Advanced Calculations
A-13
Three methods:
Do not aggregate missing values
Load to leaf nodes
Allocate data before consolidation
Module 6 Appendices
Appendix A Creating Advanced Calculations
Before calculation
After calculation
A-14
Module 6 Appendices
Appendix A Creating Advanced Calculations
Before calculation
After calculation
A-15
Module 6 Appendices
Appendix A Creating Advanced Calculations
Controlling Aggregate Missing Values Behavior
There are two ways to control aggregate missing values behavior:
Default database setting: New databases by default do not aggregate missing
values. You can change the default setting on the General tab of the Database
Properties dialog box.
TIP
Performance Implications
When you aggregate missing values during hierarchy consolidations (SET AGGMISSG
ON), calculation performance is significantly enhanced for the following reasons:
Dense calculations within a data block: Cell aggregations that can be performed
multiple ways are summed only once. In the following example, Essbase can achieve
the same result in the intersection of Cost of Sales and Qtr 1 by using the account
formula (Labor+Material+Overhead) or the time period formula (Jan+Feb+Mar).
Rather than calculating "Cost of Sales"->"Qtr 1" during the Accounts dimension
calculation and then again during the Year Tot dimension calculation, Essbase
calculates the cell only once, using the consolidation path of the dimension that it
calculates last.
A-16
Jan
Feb
Mar
Qtr 1
Labor
100
100
100
300
Material
50
50
50
150
Overhead
75
75
75
225
Cost of Sales
225
225
225
675
Calculation script: You can use the command SET AGGMISSG ON|OFF to control
the aggregation of missing values on a script-by-script basis. This command
overrides the default database setting and is typically included in the housekeeping
section of the script.
Module 6 Appendices
Appendix A Creating Advanced Calculations
O-Dell
O-HP
O-IBM
OEM
Thunderball 270 A
Thunderball 540 A
Thunderball
10
11
12
Although not aggregating missing values (SET AGGMISSG OFF) is required to protect
upper-level data, not aggregating missing values during hierarchy consolidations can
have a serious impact on calculation performance, especially in the following two
situations:
When you have a low ratio of calculated data blocks to input data blocks
When you load many data values at parent levels on sparse dimensions; for
example, in the Bigcorp Sales database, if you load many data values into Retail in a
sparse Customer dimension
In these situations, the performance overhead required for not aggregating missing
values is between 10% and 30%. If calculation performance is critical, reconsider how
you configure the database or how you load data, to avoid the need to protect upperlevel input data.
Expected Versus Correct Considerations
When you load data to upper levels in your hierarchy, additional issues of expected
versus correct calculation behavior must be considered. These issues are difficult to
understand without stepping through the calculations. The following example illustrates
the problem.
A-17
Sparse calculations between data blocks: Blocks that can be aggregated multiple
ways are calculated only once, using an algorithm that attempts to calculate using
the fewest possible blocks. In the following example, data block 12 (the intersection
of Thunderball and OEM) can be calculated as the sum of blocks 4+8 or the sum of
blocks 9+10+11. Rather than using both formulas and thus calculating block 12
twice, Essbase uses only the 4+8 formula because it requires fewer blocks.
Module 6 Appendices
Appendix A Creating Advanced Calculations
However, all other account drivers are input to level 0 blocks. The following input sheet
loads other account data (units, list price, and so on) to the "Current Year"->"Lightbolt
365 A"->"O-IBM" and "Current Year"->"Thunderball 540 S"->"O-IBM" data blocks.
You calculate the following script, making sure to include instructions to protect the data
loaded in the upper-level block.
/* Housekeeping */
SET UPDATECALC OFF;
SET AGGMISSG OFF;
/* The Main Rollup */
CALC DIM (Accounts, "Year Tot", Customer, Product);
A-18
The Other CGS account data for Bigcorp Sales is collected in transactional systems
without regard for customer or product. Thus, the data is available for input only at the
level that represents the total for all products (Family Total) and all customers (Channel
Total). The following input sheet loads Other CGS data to the "Current Year"->"Family
Total"->"Channel Total" data block.
Module 6 Appendices
Appendix A Creating Advanced Calculations
However, when you audit your results, you notice that, although totals for Net Sales, Cost
of Sales and Other CGS are correct, totals for Gross Margin are not correct.
The incorrect totals for Gross Margin are due to calculation order: The Accounts
dimension calculates first, creating Gross Margin totals in both level 0 bocks. When
Customer and Product are calculated, Essbase aggregates the data that exists in the
level 0 blocks. This aggregation creates incorrect totals for Gross Margin in the "Current
Year"->"Family Total"->"Channel Total" block. The Other CGS data is protected during
the aggregation by the SET AGGMISSG OFF command.
To correct the incorrect totals, you must calculate Gross Margin in the "Current
Year"->"Family Total"->"Channel Total" block in a separate, additional calculation pass,
such as a back calculation, that takes place after the main rollup. This problem can occur
frequently when you work with multi-level inputs. If you have a large number of multilevel inputs that force you to recalculate data at upper levels, consider a method other
than protecting upper-level loads by not aggregating missing values for handling upperlevel input data.
A-19
Module 6 Appendices
Appendix A Creating Advanced Calculations
A-20
Module 6 Appendices
Appendix A Creating Advanced Calculations
You also load other input account data to specific customer and product blocks, as in the
preceding example. The following input sheet loads to the "Current Year"->"Lightbolt 365
A"->"O-IBM" and "Current Year"->"Thunderball 540 S"->"O-IBM" data blocks.
You run the following calculation script. Because you no longer need to protect upperlevel input data, you turn the aggregate missing values setting on for better performance.
/* Housekeeping */
SET UPDATECALC OFF;
SET AGGMISSG ON;
/* The Main Rollup */
CALC DIM (Accounts, "Year Tot", Customer, Product);
/* The Back Calculation */
A-21
For example, instead of loading Other CGS data to the "Current Year"->"Family
Total"->"Channel Total" block, as in the preceding example, you load to the "Current
Year"->"No Product"->"No Customer" block, using the following input sheet.
Module 6 Appendices
Appendix A Creating Advanced Calculations
(
"List Price" = "Gross Sales" / Units;
"Discount %" = Discounts / "Gross Sales";
"Labor/Unit" = "Direct Labor" / Units;
"Matl/Unit" = Material / Units;
"Overhead Rate" = Overhead / "Direct Labor";
)
In this example, all data in the "Current Year"->"Family Total"->"Channel Total" data block
is aggregated from the three dependent blocks, so no recalculation is required after
consolidation.
A-22
Module 6 Appendices
Appendix A Creating Advanced Calculations
Intelligent Calculation
Intelligent Calculation
A primary goal in calculation script development is optimization (elimination of extra
passes through the database index). To optimize calculation, you can use FIX and IF
statements, to focus calculations, or you can use an option called intelligent calculation.
When you perform a full database calculation, Essbase marks which blocks have been
calculated. If you then load a subset of data, you can calculate only the changed data
blocks and their ancestors. This selective calculation process is intelligent calculation.
By default, intelligent calculation is turned on. You can change the default setting in the
essbase.cfg file or on a script-by-script basis with the SET UPDATECALC OFF
command. For information about the essbase.cfg file, see the online Technical
Reference, Essbase.CFG Configuration Settings.
A-23
Module 6 Appendices
Appendix A Creating Advanced Calculations
Intelligent calculation is based on data-block marking. When intelligent calculation is
active, during normal processes, within the index file, blocks are marked clean or dirty.
Clean blocks: Blocks that do not require calculation
Dirty blocks: Blocks that require calculation
When intelligent calculation is active, during calculation, Essbase looks for only dirty data
blocks.
Intelligent calculation marks data blocks, not data cells, clean or dirty. For
example, assume that, in a database that includes a dense time dimension, data
is loaded once per month. When you load data to a month, intelligent calculation
marks the affected blocks as dirty. Therefore, all time periods within the affected
blocks are recalculated.
A-24
NOTE
Module 6 Appendices
Appendix A Creating Advanced Calculations
A-25
Module 6 Appendices
Appendix A Creating Advanced Calculations
Automatic Intelligent Calculation
When you execute a calculation script with a CALC ALL statement or with a CALC DIM
statement that includes all dimensions, the intelligent calculation process performs the
following actions:
All previously existing input data blocks are calculated and marked clean.
All data blocks created by the consolidation process are calculated and marked
clean.
A-26
All previously existing dirty blocks are calculated and marked clean.
Module 6 Appendices
Appendix A Creating Advanced Calculations
The following example demonstrates the use of the SET CLEARUPDATESTATUS
AFTER command:
A-27
Module 6 Appendices
Appendix A Creating Advanced Calculations
A-28
Module 6 Appendices
Appendix A Creating Advanced Calculations
Block Creation During Data Input
Blocks created from a data input process are marked dirty as they are created. Blocks
can be created during batch data load processes, by submitting data from Smart View for
Office, by locking and sending data from Spreadsheet Add-in, or by using other direct
input options.
A-29
Data Modification
Blocks that include modified data cells are marked dirty. For example, if, within a block, a
line manager updates units, the block should be marked dirty because revenues, costs,
and margin are now incorrect and need recalculating.
Module 6 Appendices
Appendix A Creating Advanced Calculations
Usage Considerations
False positive
Usage Considerations
Occasionally, clean data blocks are marked dirty. In such cases, calculation efficiency
suffers. A more serious problem, however, is a false positive condition, in which dirty
blocks are marked clean. In the case of such false positives, data integrity can suffer.
False Positives
False positive conditions can arise in various ways:
Calculating only a subset of a block. Essbase marks at the block level, not the cell
level, so a calculation that is executed on a subset of cells can cause a false positive
condition. Only a few cells are calculated, but the block is marked clean, although
uncalculated cells remain.
A-30
Module 6 Appendices
Appendix A Creating Advanced Calculations
Using a FIX statement. Ancestors of a dirty block are not marked dirty until the
descendant dirty block is calculated. A false positive can result if the descendant dirty
block is calculated within a FIX statement that does not include the dirty ancestor
block. After calculation, Essbase marks the descendant block clean, and the
ancestor block remains marked clean, although it should be marked dirty.
Following SET CLEARUPDATESTATUS ONLY with unrelated calculations. You
should follow SET CLEARUPDATESTATUS ONLY with a repetition of the section of
the script for which you want to force data-block marking. A false positive can occur if
SET CLEARUPDATESTATUS ONLY touches blocks that are otherwise dirty and that
are not correctly calculated.
Usage Guidelines
Intelligent calculation can provide significant performance benefits in certain situations
but requires vigilant maintenance of the clean and dirty status of data blocks to avoid
skipping the wrong blocks on calculation. Be very careful when using intelligent
calculation, and be sure to review the detailed discussion of intelligent calculation in the
Database Administrators Guide.
The intelligent calculation function is most productively used in interactive or iterative
situations in which small, incremental changes are made to a database and in which it is
not necessary to recalculate the entire database. For example, you can use intelligent
calculation in the following situations.
During the month-end close periods, allocation rates and adjusting entries may be
updated multiple times. You use intelligent calculation to view update results without
recalculating the entire database.
In budget or forecasting applications, typically, many users update units and drivers
on a regular basis. In such applications, for users to analyze the impact of their
updates, a short calculation time is imperative.
A-31
Calculating a back calculation after calculating all dimensions. A false positive can
prevent the required second calculation pass, which corrects upper-level rates and
percentages. The false positive condition occurs if the CALC DIM portion of a script
engages intelligent calculation, which marks all blocks clean during the CALC DIM
process. When Essbase processes the back calculation portion of the script, no data
blocks are calculated because all blocks are marked clean.
Module 6 Appendices
Appendix A Creating Advanced Calculations
Allocating Data
Upper-level input allocation:
100%
2
3
15 %
45 %
40 %
15%
45%
40%
Allocating Data
As mentioned earlier in this appendix, a method of handling upper-level input data is to
allocate or push down the data that you load to dependent level 0 data blocks, so you
can consolidate normally. However, allocations are not restricted to distributing upperlevel input data. You can use the methods described here to distribute totals loaded to
level 0 data blocks across other level 0 data blocks. When you allocate data, you
typically include the following steps in your calculation process:
1. Load input data to upper-level data blocks or designated level 0 data blocks.
2. Allocate data to dependent level 0 data blocks, using various allocation methods.
A-32
Module 6 Appendices
Appendix A Creating Advanced Calculations
3. Consolidate data using a CALC ALL or CALC DIM statement (For upper-level input
data, the statement overwrites the original input).
TIP
If allocating a level 0 input, offset the original input amount by the sum of all
allocated data, to avoid doubling the input data upon consolidation.
A-33
Module 6 Appendices
Appendix A Creating Advanced Calculations
FinanceAlloc = .15
SalesAlloc = .45
HRAlloc = .10
MktgAlloc = .30
15%
45%
10%
30 %
VAR
VAR
VAR
VAR
Module 6 Appendices
Appendix A Creating Advanced Calculations
A-35
/* Allocate IT Expense */
"IT Exp Finance" = "IT Exp" * "Corp HQ"->FinancePct;
"IT Exp Sales" = "IT Exp" * "Corp HQ"->SalesPct;
"IT Exp HR" = "IT Exp" * "Corp HQ"->HRPct;
"IT Exp Mktg" = "IT Exp" * "Corp HQ"->MktgPct;
Module 6 Appendices
Appendix A Creating Advanced Calculations
O-IBM
O-Dell
O-Acer
"O-Dell"->Units /
Customer->Units
"O-Acer"->Units /
Customer->Units
Allocation ra tios:
"O-IBM"->Units /
Customer->Units
A-36
Customer
Module 6 Appendices
Appendix A Creating Advanced Calculations
In Bigcorp Sales, Material Variances is loaded to the total for all products and all
customers. To allocate this total to individual, product-customer data blocks based on a
percentage of total units, use the following formula:
Material Variances" = "Material Variances"->"Family Total"->"Channel
Total" * ( Units / Units->"Family Total"->"Channel Total");
Depending on when you execute the allocation, you may have to calculate the
total ratio base before calculating the allocation. For example, if your allocation is
based on a percent of total headcount, you must calculate total headcount before
you allocate.
A-37
TIP
Module 6 Appendices
Appendix A Creating Advanced Calculations
Normalization
Allocate upper-level input to level 0 descendants.
Allocate level 0 input to other level 0 blocks.
Normalization
In interactive applications, allocations are sometimes standalone processes. However,
when allocations are incorporated into a database consolidation, they typically fall into
the normalization section of the calculation script architecture.
In relational databases, the process of normalization eliminates redundant data from
tables to improve performance and data scalability. Because Essbase does not store
data for block storage databases in tables, block storage normalization is a very different
process.
A-38
Module 6 Appendices
Appendix A Creating Advanced Calculations
In block storage databases, normalization is required when you load data to data blocks
other than the blocks that are the intended, final target for the data, as described in the
following examples:
You load total IT expenses to a level 0 block for a corporate headquarters entity. Prior
to consolidating the database, you allocate total IT expenses to each office location
(level 0) based on the percentage of total headcount for each office.
The common thread in the examples is that the calculations are required to happen prior
to consolidation of the database. Normalization is a general umbrella for any data
manipulation that needs to occur after data input and before main database
consolidation.
A-39
You load total miscellaneous expenses to a block that represents the total of all
customers and all products. Prior to consolidating the database, you allocate total
miscellaneous expenses to each individual, product-customer block (level 0) based
on the percentage of total units sold in each level 0 block.
Module 6 Appendices
Appendix A Creating Advanced Calculations
Budget data:
Input units and rates
Derive dollars
Forecast data:
Input units and rates
Derive dollars
A-40
Module 6 Appendices
Appendix A Creating Advanced Calculations
Inputs for forecast data are similar to inputs for budget data, but the level of detail is
different, depending on what kind of forecasting you need. For example, in a sales
forecasting application, forecast data can have very detailed customer information.
Inputs for actual data are typically dollars and units, and rates are derived through
calculation. In contrast to budget data, actual data often contains more revenue detail
by customer and less overhead detail.
Because of the type and level of inputs for each scenario, different scenarios often
require different data load procedures and different calculation scripts.
A-41
Module 6 Appendices
Appendix A Creating Advanced Calculations
A-42
Module 6 Appendices
Appendix A Creating Advanced Calculations
Movement Required?
Budget
Material Variances
Jan
Family Total
Channel Total
Based on this analysis, Bigcorp Sales budget data requires normalization in two
dimensions: Product and Customer.
Creating Normalization Tables
Normalization tables are simply documentation templates that you create in a
spreadsheet program. They are not connected to an Essbase database, so they do not
require Spreadsheet Add-in.
A-43
Module 6 Appendices
Appendix A Creating Advanced Calculations
Column Name
Description
Data Type
How data for the current account is created (direct input, formula
calculation, consolidation, and so on)
Input Level
Push to Level
Generation or level to which input data must be moved (for the dimension
being normalized)
Methodology
A-44
A normalization table lists all input accounts in the row axis. For each dimension that you
normalize, include the following four columns:
Module 6 Appendices
Appendix A Creating Advanced Calculations
A-45
Module 6 Appendices
Appendix A Creating Advanced Calculations
Although normalizations can have interim steps, the final destination, or target block, for
normalized data is a level 0 block. To build a block diagram, start with a single target
block in the lower left corner. This block is an arbitrary selection to enable creation of a
representative slice of your database.
After creating your diagram, analyze your input data and mark on the diagram the blocks
to which data is loaded. Marking helps you visualize the movement of data required
during normalization.
A-46
Module 6 Appendices
Appendix A Creating Advanced Calculations
A-47
Module 6 Appendices
Appendix A Creating Advanced Calculations
Multiple member input: When you load rates to multiple members in the dimension
being normalized, normalize using dynamic references. In the example on the slide,
the list price for each product is loaded to customer channels; there are different
prices for OEM, Retail, and Distributor customers. To calculate List Price in the target
blocks, use the following formula:
A-48
Module 6 Appendices
Appendix A Creating Advanced Calculations
Description
DATACOPY mbrName1 TO
mbrName2
CLEARDATA mbrName
A-49
Module 6 Appendices
Appendix A Creating Advanced Calculations
Copying Data
Copy entire blocks
Forecast
O-IBM
L ightbolt 365 A
Curre nt Year
O-IBM
L ightbolt 365 A
Forecast
O-IBM
Lightbolt 365 A
Copying Data
In budgeting or forecasting scenarios, it is common to copy actual data to use as a basis
for the budget or forecast. The DATACOPY command is an efficient way to copy large
slices of the database, creating blocks or filling in data cells within blocks, depending on
the focus of the calculation.
A-50
Module 6 Appendices
Appendix A Creating Advanced Calculations
Guidelines for DATACOPY:
You can use the cross-dimensional operator in the DATACOPY command, but the
destination member combination cannot be more specific than the source member
combination. For example, the following formula results in an error at runtime:
DATACOPY "Current Year" TO "Prior Year"->Jan;
However, the source member combination can be more specific than the destination
member combination. For the following formula, Essbase fills in the missing member
at runtime:
When Essbase executes the preceding formula at runtime, it calculates the following
combination of members:
DATACOPY ""Current Year"->Jan TO "Prior Year"->Jan;
If the source and destination member combinations are all dense member
references, Essbase does not create data blocks. For example, the following
calculation is executed only in existing data blocks:
DATACOPY Jan TO Feb;
However, if any member of the member combinations for the source or destination is
sparse, Essbase creates data blocks, if they do not exist.
You can use DATACOPY commands inside FIX statements, but not inside IF
statements.
A-51
Module 6 Appendices
Appendix A Creating Advanced Calculations
FIX(@Children("Qtr 1")
CLEARDATA "Current Year";
ENDFIX
A-52
Module 6 Appendices
Appendix A Creating Advanced Calculations
You can use a cross-dimensional operator to create valid member combinations in a
CLEARDATA statement. For example, the following statement clears Budget data for
only the O-IBM customer.
CLEARDATA Budget->"O-IBM";
A-53
The CLEARDATA command removes data blocks only when all members referenced
in the statement are sparse. If any member is dense, the command clears only data
cells. For example, in Bigcorp Sales, the following command removes all Current
Year data blocks for R-Gateway, because both Scenario and Customer are sparse
dimensions.
Module 6 Appendices
Appendix A Creating Advanced Calculations
Description
ALL
UPPER
NONINPUT
Clears blocks that are completely created by a calculation operation and does
not affect blocks into which some values were loaded through a data load
operation
DYNAMIC
Clears blocks that contain values derived from Dynamic Calc and Store
member calculations, resetting Dynamic Calc and Store members for
recalculation
A-54
Module 6 Appendices
Appendix A Creating Advanced Calculations
Guidelines for CLEARBLOCK:
If you use CLEARBLOCK inside a FIX statement on dense dimension members,
Essbase clears only the data cells within the fixed range and does not remove data
blocks. In the following example, the CLEARBLOCK command clears data only for
January cells in the Current Year scenario:
FIX(Jan, "Current Year")
CLEARBLOCK ALL;
ENDFIX
A-55
Module 6 Appendices
Appendix A Creating Advanced Calculations
Summary
In this lesson, you should have learned to:
Describe the script development process
A-56
A P P E N D I X
Objectives
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Essbase Se rver
Microsoft Excel with
Spre adshee t Add-in
Essbase database
B-2
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Essbase toolbar
B-3
Essbase menu
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
To unregister Essbase Spreadsheet Add-in
From the Windows desktop, select Start > Programs > Hyperion > Essbase Client >
Unregister Spreadsheet Add-in.
Prior to using the Essbase toolbar for Excel, you must install the toolbar by opening an
Excel file that is provided as part of the default Essbase installation. You do not have to
perform the toolbar installation procedure again unless you delete the Essbase toolbar
from the Toolbars dialog box in Excel.
To install the Essbase toolbar:
1. In Excel, select File > Open.
2. From the x:\...\AnalyticServices\client\sample directory, open esstoolb.xls.
Macros embedded in this file install the Essbase toolbar.
NOTE
When you open the file, two dialog boxes may be displayed warning that
esstoolb.xls contains macros. If so, click the Enable Macros button on the first
dialog box, and then click OK on the second dialog box. The macros must be
enabled to install the Essbase toolbar. Excel macro security must be set to
Medium or lower to install the toolbar.
B-4
Essbase Spreadsheet Add-in features a convenient toolbar that displays buttons for
accessing most of the common Essbase menu commands without opening the Essbase
menu. You can view a short description of a button on the toolbar by moving your cursor
over the button.
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
4
4
B-5
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
If you have at least one established connection, the system does not prompt you to
connect again on subsequent worksheets, but uses the last requested connection.
To connect to a database:
1. Select Essbase > Connect.
The Essbase System Login dialog box is displayed.
2. From the Server drop-down list, select an Essbase Server instance.
B-6
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Retrieving Data
When you select Essbase > Retrieve, Essbase returns toplevel data into an empty spreadsheet.
1
2
3
Excel
Essbase Serve r
Essbase database
4
Top- level data
Retrieving Data
Each time you retrieve information from Essbase, the following sequence of events
occurs:
1. Essbase Spreadsheet Add-in requests data from the server.
2. The server processes the request and prepares the data.
3. The server transmits the data to Essbase Spreadsheet Add-in.
4. The spreadsheet application receives the data from Essbase and organizes it in a
worksheet.
B-7
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
When you retrieve data into an empty worksheet, the server returns data from the top
levels of each database dimension. You can use the top-level data as a starting point to
navigate, or drill down, into levels of detailed data. For example, if you retrieve top-level
data from the Bigcorp Sales database, the following five dimensions are displayed: Year
Tot, Accounts, Scenario, Product, and Customer.
You can retrieve data by double-clicking an empty spreadsheet cell, selecting
Essbase > Retrieve, or clicking
(Retrieve) on the Essbase toolbar. If every row
in the report is #Missing and #Missing suppression is turned on, then the retrieve
fails and the message No data was generated: Suppress Missing = [TRUE].
Sheet not overwritten is displayed.
B-8
TIP
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Header la bels
Column
labels
Row labels
Data cells
B-9
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
The Year Tot dimension, represented by quarters, is displayed as columns of the
spreadsheet. The Current Year and Prior Year members of the Scenario dimension
are also displayed in the columns of the spreadsheet.
The cells, the intersections of the rows and columns, combined with the header
information represent the data values. For example, the first data value in cell B4,
910,669.50, represents net sales of Lightbolt hard drives to OEM customers in the
first quarter of the current year.
B-10
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Label Scanning
General rules
Header rules
Row and column rules
Column
la bels
Header
la bels
Row
la bels
Header labels
Column
labels
Row labels
Label Scanning
When you submit a data retrieval request, Essbase initiates a label-scanning process.
The scanning looks for report labels on the spreadsheet to match with members in the
outline. The header section of the worksheet is scanned first, then the column and row
sections.
When at least one label is matched for each dimension, Essbase knows where to place
data in the spreadsheet, assuming that the labels adhere to the following rules. If your
spreadsheet does not follow the rules, Essbase stops the requested retrieve action and
displays a message that describes the error condition.
General Rules
The following summarizes general rules for placing labels on a worksheet:
Labels on the worksheet must match outline members or their aliases.
All standard dimensions must be represented in the header or row-column section for
Essbase to resolve a data point.
Essbase 11.1.1: Bootcamp
B-11
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
You must precede all member names that consist of numbers with a single quote. For
example, if the account number for sales is 14000, enter 14000 in the spreadsheet
cell.
Header Rules
The following rules apply to the scanning process for the header section:
Only one member from a dimension can be displayed.
Header members define all data on the page for their dimensions.
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Multidimensional operations
Navigation
Pivot
Editing commands
Retain
Remove
Flashback
B-13
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Operation
Description
Zoom In
Drills down from a selected member into the dimension hierarchy as specified
by the outline
Zoom Out
Keep Only
Remove Only
Pivot
Flashback
Reverses the last operation (Flashback can undo only one step.)
B-14
The following are the basic data manipulation operations of Essbase Spreadsheet Addin, all of which (except Flashback) initiate the label-scanning process:
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Navigating Data
You can navigate data, based on the outline hierarchy. Essbase Spreadsheet Add-in
provides three commands that support navigation operations.
Zooming In
You zoom in (drill down) to navigate to lower levels in a multidimensional database
hierarchy to display detail. For example, if you want to view a data value for a specific
quarter or month rather than an aggregate data value for the whole year, you can drill
down on the Year Tot dimension.
Because worksheets can accommodate more rows that columns, Essbase Spreadsheet
Add-in always retrieves data into rows when you drill down on a header dimension
member. You can change this default behavior and display the results across columns by
pressing the Alt key while drilling down.
B-15
Navigating Data
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Procedure Options
B-16
Zooming Out
You zoom out (drill up) to navigate to higher levels in the multidimensional database by
collapsing the current member tree. For example, if you previously drilled down on the
Year Tot dimension to view data for quarters, you can drill up to view aggregate data for
the whole year.
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Keep Only
Remove Only
B-17
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
To keep only or remove only:
The following table describes the procedures for these operations.
Operation
Procedure Options
Keep only
Remove only
Click
B-18
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Pivoting Data
Row group
Pivoting Data
You can change the orientation of worksheet data by performing the following tasks:
Move a row group to a column group
Move a column group to a row group
Change the order of row groups
Change the order of column groups
You can use the Pivot command on the Essbase menu to accomplish the first two tasks.
You can right-click the desired dimension and drag your selection to the destination cell
to accomplish all four tasks.
TIP
B-19
Column group
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
B-20
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Global Options
Primary button
Retrieve
Drill down
Secondary button
Drill up
Pivot
Global Options
Global options are specific to the user environment. Global option settings apply to all
worksheets and workbooks.
Mouse Actions
These check boxes enable the primary (left button for right-handed users) and
secondary (right button for right-handed users) mouse button functionality for drill-down
and pivot actions. For example, you can enable or disable the primary mouse button to
retrieve or drill down on data. You can also enable or disable the secondary mouse
button to drill up on data or pivot data.
B-21
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Enabling mouse actions for Essbase Spreadsheet Add-in disables some Excel
functionality, such as shortcut menus. By selecting the Limit to Connected Sheets check
box, you can tell Essbase Spreadsheet Add-in to react to mouse clicks only in
worksheets that are connected to an Essbase application and database.
Enable the Limit to Connected Sheets option If you are using Essbase
Spreadsheet Add-in and Smart View concurrently. When Essbase Spreadsheet
Add-in and Smart View are installed on the same computer and this check box is
selected, mouse clicks are ignored by Essbase Spreadsheet Add-in if the sheet
being acted upon is not connected to an Essbase data source through Essbase
Spreadsheet Add-in.
Memory
You can turn on or off the Flashback functionality that stores the current view before
processing retrievals or pivoting. Disabling Flashback conserves memory.
Mode
You can turn on or off Navigate Without Data, which enables you to develop reports
using zoom, pivot, and keep-only actions without retrieving data from the database.
B-22
NOTE
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Next level
Bottom level
All levels
C opyrigh t 2 008, Oracle . All rig hts reserved.
Zoom Options
Zoom options are specific to individual worksheets. Each sheet can have its own zoom
settings. Zoom settings are saved with the Excel workbook.
Zoom In
Zoom In options enable you to control zoom behavior. Zoom In has the following
settings:
Option
Description
Next Level
All Levels
B-23
Zoom Options
Module 6 Appendices
Option
Description
Bottom Level
Sibling Level,
Same Level, and
Same Generation
Formula
Enables drilling down based on member formulas in the outline. The drill
results in a list of the members that compose the formula.
Include Selection
Retains the selected parent member and its children on the report.
Zoom Out
Zoom In settings do not affect the Zoom Out command. In all cases, Zoom Out navigates
to the parent of the selected member.
B-24
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Style Options
Style Options
You can create a different style scheme for each database and choose to display the
styles you created in specific worksheets. Your style schemes apply to all worksheets for
which styles are enabled. Style schemes saved are as local user settings, and not with
the workbook.
NOTE
Because styles are defined for a specific database connection, the Styles tab is
not displayed if the worksheet is not connected to a database.
B-25
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
The following table describes the three style categories:
Category
Description
Member styles
Set font characteristics (font, size, style, color, and so on) for parent,
child, shared member, members with formulas, and members with
a Dynamic Calc storage setting. Settings apply to members of
all dimensions.
Parent style settings apply to all non-level 0 members. Child style
settings apply only to level 0 members.
Dimension styles
NOTE
For more information about linked reporting objects (LROs), read the Database
Administrators Guide. For a comprehensive discussion of Integration Server drillthrough links, read the Essbase Spreadsheet Add-in Users Guide for Excel.
B-26
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Display Options
Display Options
Display options are specific to individual worksheets. Each sheet can have its own
settings.
Indentation
Three levels of indentation are provided: Totals, Subitems, and None.
Replacement
You use the replacement options to enter your own nomenclature for #Missing and
#NoAccess labels. For example, you can set #Missing to be a dash (-) or a text value of
zero.
B-27
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Suppress
You use the suppression options to suppress rows that contain missing data or zero
values or to suppress underscore (_) characters in member names. Suppress #Missing
and suppress zero functionality is defined by row. Entire rows with #Missing or zero
values are deleted upon retrieval if, under Suppress, you select #Missing Rows and Zero
Rows.
Use Aliases: Use aliases according to the selected alias table. Members with no
aliases default to the member name.
Use Both Member Names and Aliases: Use both member names and aliases for
row dimension labels. The result may be distracting in rows with multiple grouped
dimensions. If a member has no alias, the member name is presented twice. This
feature is not functional for columns.
Duplicate Members
You can display qualified names of duplicate member names. There are two duplicate
member name options, which you can use separately or together:
Show Qualified Member Names on Sheet: Essbase displays duplicate members
with their qualified member names.
Show Qualified Member Names as Comment: For duplicate members, Essbase
creates Excel cell comments that display the qualified member names. Unlike
standard Excel cell comments, these comments move from cell to cell, following the
relevant members as you drill and pivot.
Cells
You can control the display of certain cell characteristics. There are three cell options:
Adjust Columns: Essbase automatically adjusts column widths to the longest data
value or member name every time you retrieve.
Use Styles: If you defined styles on the Styles tab, you must enable this setting to
display styles in your current worksheet.
Repeat Member Labels: This option fills in the outer grouped member names in
rows and columns when you use more than one dimension.
B-28
Aliases
You can display aliases rather than member names. There are two alias options, which
you can use separately or together:
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
B-29
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Option
Description
Retain on Retrieval
Retain on Keep
and Remove Only
Retain on Zooms
Formula Fill
This option fills in formulas for newly inserted members during a zoom
operation.
Keep in mind the following guidelines and restrictions when using the formula
preservation options:
You must select Retain on Retrieval to enable Retain on Keep and Remove Only and
Retain on Zooms.
You must select Retain on Zooms to enable Formula Fill.
Formula Fill is intended to work correctly only on row zoom operations. Column zoom
operations with Formula Fill enabled may produce unexpected results.
When you select Retain on Retrieval, the Suppress #Missing Rows and Zero Rows
options on the Display tab are not selectable. If you select either of these display
options, the formula preservation options are not selectable.
You can not pivot in formula preservation mode.
When Retain on Retrieval is selected, retrieval times may be slightly delayed.
B-30
Essbase Spreadsheet Add-in provides the following formula preservation options on the
Mode tab of the Essbase Options dialog box:
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
B-31
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
B-32
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Cascade Level
Description
Next Level
Creates a report for the children of the selected member. This is the
default cascade option.
All Levels
Bottom Level
Sibling Level
Same Level
Creates a report for all members at the level of the selected member.
Same Generation
Formulas
Creates a report for all members that are included in the formula of
the selected member.
B-33
3. On the Cascade Information tab, select a cascade level for each selected member,
and then click OK.
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
B-34
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Saved selection
myselect.sel
B-35
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
To define selection rules:
1. From the Dimension drop-down list, select a dimension.
The selected dimension and its members are displayed under
Members.
2. Under View Method, select one of the following options for copying members to the
spreadsheet:
Description
Suppress Shared
Members
Use Aliases
Inserts member aliases from the current alias table. This option also
changes the display of the dimension hierarchy to member aliases.
6. Optional: Click Save to save the selection rule in a file on an instance of Essbase
Server or in your local file system.
7. Click OK.
B-36
By Member Name: Enables you to select members and their descendants from
the dimension hierarchy.
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Jan
All children
Qtr 1
Feb
3
Mar
Qtr 2
4
Apr
Description
All Children
All Descendants
B-37
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Selection Option
Description
Subset
3. Click Preview.
The Member Preview dialog box is displayed.
4. Preview the members that are displayed in the spreadsheet, and then click Close.
B-38
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
B-39
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
2. Define the selection conditions.
The conditions are displayed under Conditions.
3. Optional: Click Add (, Add ), Remove ( ), or Remove All ( ) to group conditions or remove
groupings.
4. Click Preview, review the list meeting the criteria, and then click Close.
5. Click OK.
B-40
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Sa ved quer y
MyQuery.eqd
B-41
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Hint
frame
Pro perties
frame
Navigation
frame
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
3
5
B-43
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
B-44
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Rank data
Compare data to a value
Compare one column to
another
Filter out missing data
Filtering Data
Despite the ease and speed with which you can navigate through large databases, it is
not practical to use the capabilities of the spreadsheet application to filter and sort very
large databases. However, Query Designer provides a powerful tool to define conditional
retrievals. The data filtering tool in Query Designer gives you the ability to rank data,
compare data to a specific value, compare data in one column to data in another column,
and filter out missing data.
B-45
Filtering Data
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
You want to filter the query so it returns only the top 10 current year customers who also
had sales of more than 50,000 in the prior year. When you apply the filters shown in the
example on the slide, the query produces the following report:
B-46
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Sorting Data
You can use Query Designer to sort row data in ascending or descending order. When
selected, data sorting settings are displayed in the properties frame. The data sorting
panel contains the following items:
Dimension being sorted: a drop-down list box that lists the dimensions specified in
the rows of the query layout
Column used for sort: a drop-down list box from which you select one or more of
the dimensions that are specified in the columns of the query layout to use as a basis
for sorting
Ordering: a drop-down list box from which you select ascending or descending sort
order for the selected column
B-47
Sorting Data
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
B-48
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Free-Form: This retrieval mode enables you to enter member names anywhere on
your spreadsheet and allow Essbase to place the members in rows, columns, or
header. Additionally, you can use report script commands to create dynamic reports.
NOTE
Description
<CHILDREN
<ICHILDREN
<DESCENDANTS
<IDESCENDANTS
<SIBLINGS
<ISIBLINGS
Report script commands are most useful for defining reports on dimensions that change
frequently; they ensure that the most updated list of members is retrieved from the
server. For information on the syntax of report script commands and on guidelines for
developing reports, see the Technical Reference and the Database Administrators
Guide.
Preserving Dimension Positions
Template Retrieve is a free-form retrieval mode option that ensures that Essbase does
not spontaneously reposition dimensions during retrievals. Additionally, when Template
Retrieve is enabled, the Zoom, Keep Only, Remove Only, and Pivot options are
unavailable. This restriction ensures that end users cannot substantially change the
report layout.
B-49
Module 6 Appendices
Appendix B Creating Reports with Essbase Spreadsheet Add-in
Summary
In this lesson, you should have learned to:
Describe Essbase Spreadsheet Add-in
B-50