Está en la página 1de 68

Lab 2.

2 Calculation Scripts
1 Overview
A calculation script contains a series of calculation commands, equations, and formulas. You use a calculation script to
define calculations other than the calculations that are defined by the database outline. Calculation scripts are text files.
Using Calculation Script Editor in Administration Services Console, you can create calculation scripts by:

Typing the contents of the calculation script directly into the text area of the script editor

Using the UI features of the script editor to build the script

Creating the script in the text editor and pasting the script text into Calculation Script Editor

You can use a calculation script to specify exactly how you want Essbase to calculate a database. For example, you can
calculate part of a database or copy data values between members. You can design and run custom database
calculations quickly by separating calculation logic from the database outline.
You need to write a calculation script if you want to do any of the following tasks:

Calculate a subset of a database.

Change the calculation order of the dense and sparse dimensions in a database.

Perform a complex calculation in a specific order or perform a calculation that requires multiple iterations through
the data. For example, some two-pass calculations require a calculation script.

Perform any two-pass calculation on a dimension without an accounts tag.

Perform a currency conversion.

Calculate member formulas that differ from formulas in the database outline. Formulas in a calculation script
override formulas in the database outline.

Use an API interface to create a custom calculation dynamically.

Use control of flow logic in a calculation; for example, if you want to use the IFELSEENDIF or the
LOOPENDLOOP commands.

Clear or copy data from specific members.

Define temporary variables for use in a database calculation.

Force a recalculation of data blocks after you have changed a formula or an accounts property on the database
outline.

Control how Essbase uses the Intelligent Calculation feature when calculating a database.

2 Create Allocation Script


One of the most common processes for an EPM application is an allocation. Examples of an allocation include spreading
IT costs down to departments based on headcount or setting a target number for sales that is allocated down to sales
reps based on their quota share.
In this exercise, we will be using the @MDALLOCATION function which allocates values from a member, from a crossdimensional member, or from a value across multiple dimensions. The value will be derived by taking the previous years
sales and raising it by 10%. This number will then be allocated down to the lowest level in the Product and Market
dimensions based on last years sales as a percentage of the total sales. Because allocations are very expensive to
perform, we will be taking a subset of the cube for our calculation.

170

1. In the Administration Services Console, right-click on the second TBC and select Create->Calculation script.

2. In the Calculation Script Editor, check Insert arguments.

171

3. Expand Functional in the functions list.

4. Double-click SET UPDATECALC. Delete ON| in the work area. The first line of the calc script should be
SET UPDATECALC OFF;. Typing in the statements without using the functions list is also permissible.

172

5. Expand Control Flow in the functions list and double-click FIX.

6. Replace mbrList from the FIX statement by highlighting mbrList and double-clicking on Sales in the outline viewer (you
will need to expand on MEASURES, Profit and Margin in order to see Sales). You can also type in the member names
without using the outline viewer. Double quotes ( ) are required for members that contain any spaces. Right-clicking
on the member and selecting Insert member name is another option for inserting a member into the outline. This is the
only way to insert a member through the outline viewer for upper level members as double-clicking them will drilldown to
the next level.

The FIX statement isolates the calculation to a subset of the cube. In this case, only Sales will be calculated. Although
FIX is not required, using it may decrease calculation time.

173

7. Highlight commands and hit <Enter> twice, deleting it from the calc script and moving ENDFIX down two lines.

Though carriage returns are not necessary, it improves readability of the calc script.
8. Double-click or type Budget before the semicolon ( ; ). Then, type an equal ( = ) sign.

9. In the functions list, expand Allocation and double-click @MDALLOCATION.

10. Replace amount with "Jan-2007"->"Actual"->"100"->"West"*1.1 either by typing in the member names or using the
outline viewer. Type the cross dimensional operators ( -> ) between the members. The cross dimensional operators
represent an intersection point of the data.

The amount parameter is the value that will be allocated across the allocationRange. The data point at the intersection
of Sales, Jan-2007, Actual,100 and West will be multiplied by 1.1 to give the value that is to be allocated.
174

11. Next, replace Ndm with the number two ( 2 ). Ndm is the number of dimensions across which the values are allocated. In
our case this will be across two dimensions, PRODUCT and MARKET.

12. Highlight allocationRange1, expand on Member Set in the function list and double-click @CHILDREN.

Replace mbrName within the @CHILDREN function with 100. Either type in the member name or from the outline
viewer, expand on PRODUCT, right-click on 100 and select Insert member name.

175

Replace the ellipses ( ) with a comma ( , ) and allocationRangeN with @CHILDREN ("West").

The allocations will be spread across all the children of Product Family 100 and the children of the West Region.
13. Replace basisMbr with "Jan-2007"->"Actual".

The basisMbr is a value, member, or cross-dimensional member that contains the values that are used as the basis for
the allocation. The method you specify determines how the basis data is used.
14. roundMbr is an optional parameter. Since we will not be using it in our exercise, delete [roundMbr] (but do not delete
the comma) from the script.

roundMbr specifies the member or cross-dimensional member to which rounding errors are added. This member (or at
least one member of a cross-dimensional member) must be included in an allocationRange.
15. Replace method with share. The method parameter works in conjunction with the basisMbr parameter to determine
how the values get allocated.

176

The share method uses basisMbr to calculate the percentage share that is allocated to each member in the
allocationRange. So for each member in the allocationRange, the percentage share of its Jan-2007 Actual value in
relation to the sum for every member in the allocationRange will the percentage share that it will receive from the amount
parameter.
For an explanation of additional methods, refer to the Oracles Essbase Technical Reference guide.
16. The methodsParams, round, numDigits and roundErr parameters will not be used in this exercise, so they can all be
deleted from the calc script.

methodsParams is used for certain methods, but is not used with share. Round flags whether you would like to round
the allocated values (default is noRound, roundAmt indicates that you want to round the values). numDigits is an
integer that represents the number of decimal places to round to. You must specify numDigits if you specify roundAmt.
roundErr is an expression that specifies where rounding errors should be placed. You must specify roundAmt in order to
specify roundErr. If you do not specify roundErr, Essbase discards rounding errors.
17. You can add carriage returns before the ENDFIX to make the calc script more readable.

18. Add two more carriage returns after the ENDFIX. Expand Functional in the function list and double-click on
CALC ALL. Delete everything between CALC ALL and the semicolon ( ; ).

CALC ALL re-aggregates the data and re-runs all the outline calculations.
177

19. Select Syntax->Check syntax to validate your calc script.

20. If the validation is successful, save your calc script by selecting File->Save.

Save your calc script as ALLOCATE and click OK.

178

21. Open the Lab_Queries.xls file from the In Class Files folder and select tab Lab 2.2.2. Connect to TBC/TBC by going to
Essbase ->Connect. Refresh the data by selecting Essbase ->Retrieve. You should have no Jan-2008 data.

22. In the EAS console, under the second TBC, there should now be a Calculation Scripts folder. Expand it and right-click
on ALLOCATE. Select Execute.

179

Click OK to run the calc script.

23. When the Execute Calculation Script dialog box disappears, refresh the data in Excel.

Verify that the amount in Jan-2008->Budget->Colas->West is 10% more than in Jan-2007->Actual->Colas->West. The
allocation function did not actually write the Jan-2008->Budget->Colas->West amount into that intersection. It took the
Jan-2007->Actual->Colas->West amount and increased it by 10%, and then it allocated that amount across all the
Product SKU / State combinations based on their Jan-2007 Actual percentage share. The CALC ALL function
eventually aggregated the values to the parents.

180

3 Create a Forecast
One of the greatest advantages of Essbase is its ability to look beyond the historical information and toward the future
using what-if and regression analysis. In this exercise, we will be using the @TREND function to calculate future
estimates based on historical values. The @TREND procedure considers a number of observations; constructs a
mathematical model of the process based on these observations (that is, fits a curve); and predicts values for a future
observation. You can use weights to assign credibility coefficients to particular observations, report errors of the curve
fitting, choose the forecasting method to be used (for example, linear regression), and specify certain data filters.
1. In the Administration Services Console, under the second TBC, double-click Outline to open the outline.

2. Expand Scenario and click on Budget. Click on the Add a sibling to the selected member icon.

181

Type Forecast in the text box and hit <Enter> twice. Your outline should look similar to the one below. Click Save.

Verify that All data is chosen and click OK.

3. Open the Lab_Queries.xls file from the In Class Files folder and select tab Lab 2.2.3. Connect to TBC/TBC by going to
Essbase ->Connect. Refresh the data by selecting Essbase ->Retrieve. You should have no Forecast data.

182

The purpose of this calc script is to compute a 2008 sales forecast using 2007 historical data using a regression
calculation. In order to speed up the calculation, we will only be calculating Sales for all Products and Markets.
4. In the EAS console, right-click on Calculation Script and select Create Calculation Script.

5. Use the tools in the Script Editor or manually type the following calc script. Start by adding the SET UPDATECALC
command and deleting ON|. Next, add a FIX statement and include three components, PRODUCT, MARKET and all
the Descendants of 2007 so that we isolate on only those intersection points. Add a DATACOPY command to copy data
from Actual Sales to Forecast Sales so that our forecast also has actual historical information. Next, we will nest another
FIX statement inside the first one and further isolate on only Forecast data. You must associate the @TREND formula
with a member, in this case Sales, so it becomes encapsulated in Sales( );. There are 9 parameters in the @TREND
function, but three are required for a linear regression calculation, Ylist, YforecastList and method. The YList contains
known observations; for example, actual sales figures from Jan-2007 to Dec-2007. The YforecastList is the member list
into which the forecast values are placed; for example, forecast sales from Jan-2008 to Dec-2008. The method
parameter is a choice among LR (linear regression), SES (single exponential smoothing), DES (double exponential
smoothing), and TES (triple exponential smoothing). The optional parameters include weightings that can be applied to
simulate seasonality. For a full description of the @TREND function, refer to the Oracles Essbase Technical Reference
guide.

183

6. Select Syntax->Check syntax to validate your calc script.

7. If the validation is successful, save your calc script by selecting File->Save.

Save your calc script as TREND and click OK.

184

8. In the EAS console, in the Calculation Scripts folder under the second TBC, right-click on TREND. Select Execute

9. Click OK to run the calc script.

10. When the Execute Calculation Script dialog box disappears, refresh the data in Excel.

185

186

Lab 2.3 Tuning & Optimization


1 Overview
Essbase BSO tuning can take two forms: tuning for batch processing (to prepare the database for access by clients) and
tuning the database to support client retrieval requirements. The objective of tuning for batch processing is to minimize
the time to calculate the database. Tuning to support client requirements acknowledges that multi-user environments can
have different memory configuration requirements (cache and buffer settings) and may even have implications that
necessitate altering database configuration (dense/sparse settings). BSO tuning should be in no significant way different
than relational database tuning. In these environments tuning essentially requires an in-depth understanding of the
database storage structures, user query requirements, and how both interface with hardware infrastructure.
Essbase ASO tuning is more limited than in BSO, but can be just as critical for the proper performance of your database.
ASO tuning takes on the form of outline, query and cache optimizations.

2 BSO Tuning and Optimization


1. In the Administration Services Console, right-click on the second TBC and select Edit->Properties.

2. Go to the Dimensions folder, notice the Members in Dimension column shows that this outline conforms to the
hourglass shape.

187

3. Next, go to the Statistics folder. Notice that the Block size is well within the recommended limit of 100K.

4. To see how the dense/sparse settings affect Block size, change the setting for the SCENARIO dimension from sparse to
dense. Open the TBC outline by double-clicking Outline below the second TBC.

188

5. In the Properties tab, under Data Storage Dimension storage types, click on the dropdown next to SCENARIO and
select Dense.

Click Save.

189

Verify that All data is selected and click OK.

Return to TBC->Properties. The Block size tripled because there are three stored members in the SCENARIO
dimension.

190

6. You probably did not notice that the TBC database performed a restructure when you saved it. There are two types of
restructures in Essbase BSO: sparse and dense. Sparse restructures are the least expensive as they only require a
restructuring of the ESS*.IND files. These occur when you make some changes to only the sparse dimensions such as
editing the hierarchies or adding/deleting members. Dense restructures occur when changes are made to the dense
dimensions because the fundamental structure of the blocks, and thus the cube itself, changes. When you changed one
dimension from sparse to dense, it grew the size of the blocks.
Restructuring of the cube is recommended for read/write applications on a periodic basis. This is due to fragmentation of
the database as changes in the data occur over time.
Before starting the restructure, split your screen so that the Linux VM is showing on one side and EAS on the other. Open
up the File Browser in the VM and navigate to /oracle/Hyperion/Essbase/app/TBC/TBC. In EAS, right-click on the
second TBC and select Restructure. Click OK to start the restructure.

191

During the restructure, notice that the ESS*.IND and ESS*.PAG files are replicated to temporary files with the extensions
INN and PAN (because of the small size of the database, they will only appear briefly). The restructure creates these
temporary files in the event of system crashes for rollback purposes as restructures can take a long time to complete
depending on what changes were made to the cube. This is important from a disk storage perspective as well, since free
disk space is required to handle two sets of ESS*.IND and ESS*.PAG files or else the restructure will not complete.

192

7. Return to TBC->Properties and go to the Caches tab. Change the Index cache setting so that it takes the entire
ESS*.IND file (about 8MB). Click Apply. Since the ESS*.PAG file is small, you can leave the Data cache as it is.

Click OK when you have successfully updated the caches.

193

3 ASO Tuning and Optimization


1. As aggregate storage outline files (.otl files) are changed, they may increase in size. By compacting such files, you can
remove the records of deleted members and thus reduce file size. In the Administration Services Console, right-click
on Outline after the second TBC_ASO and select Compact.

Click OK to start compaction of the outline.

Click OK when compaction successfully completed.

194

2. Next, we will see how Aggregate Views can help speed queries for an ASO database.
Open the Lab_Queries.xls file from the In Class Files folder and select tab Lab 1.3.2. Connect to TBC_ASO/TBC_ASO
by going to Essbase ->Connect and logging in. Refresh the data by selecting Essbase ->Retrieve. Close the Excel
file.

3. In the EAS console, right-click on the first TBC_ASO and select View->Log.

195

Select Display log and click OK.

Scroll to the bottom of the log and look for the last Spreadsheet Extractor Elapsed Time: [x.xx] seconds line.
Note the time it took to complete your last Excel Add-in query.

4. In the EAS console, right-click on the second TBC_ASO and select Design aggregation to run the Aggregation
Design Wizard.

Select Design, materialize and save aggregation and click Next.

196

5. Select Replace existing aggregate view selection and click Next.

6. Select Select all recommended aggregate views and click Next.

197

7. Click Start to run the analysis.

When the process completes, click OK.

8. A list of the suggested Aggregate Views appear. The chart shows how much disk space the Aggregate Views will take
up and how much the query cost will improve by. Notice that there will be a huge drop in the query cost with the first
Aggregate View, but much smaller incremental improvements with each successive one. Since the impact on disk space
is minimal, keep all the Aggregate Views checked and click Next.

198

9. Select Materialize aggregation and click Next. Since this is the first time running the wizard, you do not have to
check Replace existing aggregation.

10. Once the Aggregate Views are completed, click Finish.

11. You will now need to stop and restart the application in order to clear the cache and re-run the earlier query.
Right-click on the first TBC_ASO and select Stop->Application.

Click Yes to stop the application.

199

Right-click on the first TBC_ASO and select Start->Application.

Click Yes to stop the application.

12. Re-connect to TBC_ASO by selecting Essbase->Connect from the Menu.

13. Re-open Lab_Queries.xls. Connect to TBC_ASO/TBC_ASO and Retrieve the data.

200

14. Open the log file again. First, right-click on TBC_ASO and select View->Log.

Select Display log and click OK.

Scroll to the bottom of the log and look for the last Spreadsheet Extractor Elapsed Time: [x.xx] seconds line.
Note the time it took to complete this query. Compare this with the earlier time that you had. Was there any
improvement?

201

202

Lab 2.4 Security


1 Overview
After installation, both Essbase and Administration Services are in native security mode. You have the option to continue
using native security mode, managing access to applications, databases, and other artifacts as well as managing users
via the Administration Services Console. The Essbase security system addresses a wide variety of database security
needs with a multi layered approach to enable you to develop the best plan for your environment. Various levels of
permission can be granted to users and groups or defined at the system, application, or database scope.
To use Shared Services, you must migrate to Shared Services security mode. Shared Services provides a centralized
system for managing user and group access to Hyperion products, and consists of corporate or native Shared Services
user directories and a common UI, called Oracle's Hyperion Shared Services User Management Console. You can use
Shared Services to provide security for Essbase applications, databases, and artifacts. Migration is done at the Essbase
Server level. Once you have converted to Shared Services security mode, you cannot convert back to native security
mode.
Essbase Administration Server can run in Shared Services security mode with Essbase Server running in native security
mode. However, if any Essbase Server that you administer from Administration Services Console runs in Shared
Services security mode, Essbase Administration Server must also.

2 Create Filter, Group and User in Native Security Mode


1. In the Administration Services Console, right-click on the second TBC and select Create->Filters.

203

2. Type West for the Filter name and click where it says Click here to add under the Access column.

3. In the dropdown, select Write.

Click where it says Click here to add under the Member Specification column to display the text box. Under
Commands and functions, expand Member Set and double-click @ICHILDREN. @ICHILDREN includes the specified
member into the member set, whereas @CHILDREN does not.

204

Replace mbrName in the @ICHILDREN function with West (double quotes are not necessary unless there is a space in
the member name) by typing in the name or right-click on West in the outline viewer and selecting Insert member name.

On the next row where it says Click here to add under the Access column, select MetaRead from the dropdown.

Copy the Member Specification line from the first row or repeat the above steps to add @ICHILDREN(West) to the
second Member Specification row. Click Save.

205

4. Repeat the above steps to create a second filter. Call it Colas and place @ICHILDREN(100) in the Member
Specification column for the Write and MetaRead Access. Click Save.

5. Create a Group by expanding Security under ptsessbase, right-click on Groups and select Create group.

206

In the Group Info tab, type TBC_West for the Group name.

In the App/Db Access tab, click on None next to TBC and select Access Databases from the dropdown. Expand TBC
and Databases. Next to the second TBC, replace None with Filter. Expand the second TBC and replace None with
West in the dropdown. Click Apply to save your group.

207

Click OK when the group is successfully created.

6. Create a second Group by repeating the above steps. Call it TBC_Colas and select the Colas filter.

Click OK when the group is successfully created.

208

7. Create a User by right-clicking on Users under Security and selecting Create user.

In the User Info tab, type TBC for the Username. Under Authentication type, select Use Essbase Server
authentication and in the Password and Confirm password boxes, type oracle.

209

Go to the Groups tab. Click on the double left arrows ( << ) to make the user a member of both the TBC_West and
TBC_Colas groups.

Click Apply to save your user.

Click OK when the user is successfully created.

210

8. Open Excel and select Essbase->Connect from the menu bar.

Type TBC for the Username and oracle for the Password and click OK. Notice that TBC/TBC is the only database
available to this user. Click OK.

211

9. Double-click anywhere on the blank spreadsheet. Notice that no access has been given to this intersection. Double-click
on MARKET and then on West.

Still no access at any of the intersections. Double-click on PRODUCT and then on Colas. Pivot the MARKET
dimension.

Since TBC is a member of two groups, its security access is based on the intersections of those two groups (West and
Colas). Additional dimensions can be filtered for more granular security requirements.

212

3 Migrate Security to Shared Services ***WARNING: CAN NOT UNDO***


1. In the Administration Services Console, right-click on Security under ptsessbase and select Externalize users.

Click Yes when it asks if you would like to convert security to Shared Services.

Passwords can be auto-generated and put into a text file, derived by the username or hardcoded into Shared Services.
Select the hardcoded option and type oracle for both the Password and Confirm password boxes. Click OK.

213

Conversion may take a few minutes. Click OK when the conversion is successful.

2. Expand Security and right-click on Groups. Notice that the Create Group option is now grayed out. Groups can only be
created in Shared Services now. Select Display groups table.

Right-click on TBC_Colas and select Edit group properties.

Notice that only the App/Db Access tab is available and that all the settings are read only. Click Close.

214

3. Right-click on Users under Security. Notice that the Create user option is now grayed out. Users can only be created in
Shared Services now. Select Display user table.

Right-click on TBC and select Edit user properties.

As with the groups, only the App/Db Access tab is available and all the settings are read only. Click Close.

215

4. IRight-click on the second TBC and select Create->Filters.

Filters are still created in EAS, but are assigned in Shared Services. Click Close.

216

5. We also need to externalize the EAS users. Expand Administration Servers and right-click ptsessbase. Select
Externalize users.

Check the Users box and click Next >.

Click Next > on the next screen.

217

You can either auto-generate the passwords or hardcode them. Choose the hardcoded option and type password for
Password and Confirm password. Click Next >.

Click Yes on the dialog box which asks if you would like to create the Externalize.log file.

Click Next > on the next screen.

218

Click Start to begin extrernalization.

When externalization has completed, click Finish.

6. Open a browser and connect to the following url: http://ptsessbase:58080/interop/ to open the Shared Services
Management Console.

219

At the Login page, type admin for username and password for password.

7. Expand User Directories and Native Directory. Highlight User and click on Show All.

The essadmin and TBC users are now in Shared Services. Right-click on TBC and select Properties.

220

Click on the Member Of tab. Notice that TBC is a member of the TBC_Colas and TBC_West group. Click Cancel.

8. Right-click on Users and select New.

Type TBC_SS for the User name and oracle for Password and Confirm password. Click Finish.

221

Click OK after successfully creating the user.

9. Right-click on TBC_SS and select Provision.

222

Expand the two Analytic Servers:localhost.localdomain:1, expand on Administrator and Createw/Delete Application.
Highlight Server Access and click the right arrow button so that Server Access shows up underneath Selected Roles.

Expand on TBC, Application Manager, Database Manager, Calc and Write. Highlight Read and click on the right arrow
so that it shows up in the Selected Roles box.

Click Save.

223

Click OK on the Summary page.

10. Return to the EAS console and right-click on Security under Essbase Servers->ptsessbase.
Select Refresh security from Shared Services.

You can set user synchronization and refresh to occur in the following ways:

Automatically at synch points.


When an Administrator requests a refresh of the security information.
When a user selects a database (user synchronization only).

224

Select All users and click OK.

Click Yes to continue.

Click OK when security refresh successfully completed.

11. Right-click on User und Security and select Display users table.

225

TBC_SS now appears as a valid Essbase user..

12. Open Excel and select Essbase->Connect from the menu bar. Type TBC_SS for the Username and oracle for
the Password. Click OK. When TBC/TBC shows up on the list, click OK.

Double-click anywhere on the blank spreadsheet to verify that you have access to the cube.

226

227

Glossary
Accounts dimension
A dimension type that makes accounting intelligence available. Only one dimension can be defined as Accounts.
Aggregate storage database
The database storage model designed to support large-scale, sparsely distributed data which is categorized into many,
potentially large dimensions. Upper level members and formulas are dynamically calculated, and selected data values are
aggregated and stored, typically with improvements in overall aggregation time.
Aggregate view
A collection of aggregate cells based on the levels of the members within each dimension. To reduce calculation time,
values are pre-aggregated and stored as aggregate views. Retrievals then start from aggregate view totals and add up
from there.
Alias
An alternative name. For example, for a more easily identifiable column descriptor you can display the alias instead of the
member name. You can set more than one alias for a member using multiple alias tables.
Alternate hierarchy
A hierarchy of shared members. An alternate hierarchy is based upon an existing hierarchy in a database outline, but has
alternate levels in the dimension. An alternate hierarchy allows the same data to be seen from different points of view.
Ancestor
A branch member that has members below it. For example, the members Qtr2 and 2006 are ancestors of the member
April.
Attribute
Characteristic of a dimension member. For example, Employee dimension members may have attributes of Name, Age,
or Address. Product dimension members can have several attributes, such as a size and flavor.
Attribute dimension
A type of dimension that enables analysis based on the attributes or qualities of dimension members. Use attribute
dimensions to report and aggregate data based on characteristics of standard dimensions.
Base dimension
A standard dimension that is associated with one or more attribute dimensions. For example, assuming products have
flavors, the Product dimension is the base dimension for the Flavors attribute dimension.
Block
The primary storage unit which is a multidimensional array representing the cells of all dense dimensions.
Block storage database
The Essbase database storage model categorizing and storing data based on the sparsity of data values defined in
sparse dimensions. Data values are stored in blocks, which exist only for sparse dimension members for which there are
values.
Cache
A buffer in memory that holds data temporarily.

228

Calc script
A calculation script contains a series of calculation commands, equations, and formulas. You can use a calculation script
to initiate consolidations and calculate formulas defined by the database outline, to define calculations other than the
calculations that are defined by the database outline or a combination of both. Calculation scripts are stored as text files
with a .csc extension.
Calculator cache
A buffer in memory that Essbase uses to create and track data blocks during calculation operations.
Committed access
An Essbase Kernel Isolation Level setting that affects how Essbase handles transactions. Committed access provides a
high level of data consistency because only one transaction at a time can update data blocks. Under committed access,
Essbase allows transactions to hold read/write locks on all data blocks involved with the transaction until the transaction
completes and commits. However, you can still allow read-only access to the last committed data values.
Consolidation property
Consolidation properties determine how children roll up into their parents. Valid operators include +, -, *, /, %, ~ and ^.
Operator

Description

Adds the member to the result of previous calculations performed on other members. + is the default
operator.

Multiplies the member by -1 and then adds it to the sum of previous calculations performed on other
members.

*
/

Multiplies the member by the result of previous calculations performed on other members.
Divides the member into the result of previous calculations performed on other members.

Divides the member into the sum of previous calculations performed on other members. The result is
multiplied by 100 to yield a percentage value.

~
^

Does not use the member in the consolidation to its parent.


Does not use the member in any consolidation in any dimension.

Country dimension
This dimension type is used for currency conversion applications. In a country dimension, you can specify the type of
currency used in each member.
Custom-defined function (CDF)
Essbase calculation functions developed in Java and added to the standard Essbase calculation scripting language using
MaxL.
Custom-defined macro (CDM)
Essbase macros written with Essbase calculator functions and special macro functions. Custom-defined macros use an
internal Essbase macro language that enables the combination of calculation functions and they operate on multiple input
parameters.
Data block
A multidimensional array that represents all cells of all dense dimensions relative to a particular intersection of sparse
dimensions.
Data cache
A buffer in memory that holds compressed data (PAG) files.

229

Data load
The process of loading data to an Essbase database.
Data load rules
A set of criteria that determines how to load data from a text-based file, a spreadsheet, or a relational data set into a
database.
Data locks
Essbase issues write (exclusive) locks for blocks that are created, updated, or deleted, and issues read (shared) locks for
blocks that should be accessed but not modified. By issuing the appropriate locks, Essbase ensures that data changed by
one operation cannot be corrupted by a concurrent update.
Date-Time Dimensions
Aggregate storage date-time dimensions can be created using the Create Date-Time Dimension wizard for quick datetime dimension setup based on special calendars, plus linked attribute dimension setup enabling crosstab reporting of
time-related data. Date-time dimensions have a rigid structure and are not easily modified once they are created.
Default calc script
A default calc script performs a full database calculation that is based on the structure and formulas in the database
outline.
Dense dimension
In block storage databases, a dimension likely to contain data for every combination of dimension members. For example,
time dimensions are often dense because they can contain all combinations of all members. Contrast with sparse
dimension.
Descendant
Any member below a parent in the database outline. In a dimension that includes years, quarters, and months, the
members Qtr2 and April are descendants of the member Year.
Dimension
A data category used to organize business data for retrieval and preservation of values. Dimensions usually contain
hierarchies of related members grouped within them. For example, a Year dimension often includes members for each
time period, such as quarters and months.
Dimension build rules
Specifications, similar to data load rules that Essbase uses to modify an outline. The modification is based on data in an
external data source file.
Dirty block
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, they have been updated).
Duplicate member name
The multiple occurrence of a member name in a database, with each occurrence representing a different member. For
example, a database has two members named New York. One member represents New York state and the other
member represents New York city.
Duplicate member outline
A database outline containing duplicate member names.

230

Dynamic Calc and Store members


A member in a block storage outline that Essbase calculates only upon the first retrieval of the value. Essbase then stores
the calculated value in the database. Subsequent retrievals do not require calculating.
Dynamic Calc members
A member in a block storage outline that Essbase calculates only at retrieval time. Essbase discards calculated values
after completing the retrieval request.
Dynamic hierarchy
In aggregate storage database outlines only, a hierarchy in which members are calculated at retrieval time.
Dynamic Time Series
A process that performs period-to-date reporting in block storage databases. In order to calculate period-to-date values
dynamically, you need to use a Dynamic Time Series member for a period on the dimension tagged as Time. You do not
create the Dynamic Time Series member directly in the database outline. Instead, you enable a predefined Dynamic Time
Series member and associate it with an appropriate generation number. This procedure creates a Dynamic Time Series
member for you.
DTS Member

Description

H-T-D
Y-T-D
S-T-D
P-T-D
Q-T-D

History-to-date
Year-to-date
Season-to-date
Period-to-date
Quarter-to-date

M-T-D
W-T-D
D-T-D

Month-to-date
Week-to-date
Day-to-date

Essbase.cfg
An optional configuration file for Essbase. Administrators may edit this file to customize Essbase Server functionality.
Some configuration settings may also be used with Essbase clients to override Essbase Server settings.
ESSCMD
A command-line interface for performing Essbase operations interactively or through batch script files.
Generation
A layer in a hierarchical tree structure that defines member relationships in a database. Generations are ordered
incrementally from the top member of the dimension (generation 1) down to the child members.
Hybrid Analysis
An analysis mapping low-level data stored in a relational database to summary-level data stored in Essbase, combining
the mass scalability of relational systems with multidimensional data.
Index
A method where Essbase uses sparse-data combinations to retrieve data in block storage databases.
Index cache
A buffer containing index pages.

231

Index file
An Essbase file storing block storage data retrieval information, residing on disk, and containing index pages.
Index page
A subdivision in an index file. Contains pointers to data blocks.
Input data
Data loaded from a source rather than calculated.
Intelligent calc
A calculation method tracking updated data blocks (dirty blocks) since the last calculation.
Implied share
The shared member property defines a shared data relationship explicitly. Some members are shared even if you do not
explicitly set them as shared. These members are said to be implied shared members. Essbase assumes (or implies) a
shared member relationship when a parent has only one child or when a parent has only one child that consolidates to the
parent.
Isolation level
An Essbase Kernel setting that determines the lock and commit behavior of database operations. Choices are: committed
access and uncommitted access.
Label only member
Label only members have no data associated with them. For reporting purposes, the Label only member takes the value
of its first child member.
Level
A layer in a hierarchical tree structure that defines database member relationships. Levels are ordered from the bottom
dimension member (level 0) up to the parent members.
Linked partition
A shared partition that enables you to use a data cell to link two databases. When a user clicks a linked cell in a
worksheet, Essbase opens a new sheet displaying the dimensions in the linked database. The user can then drill down
those dimensions.
Linked reporting object (LRO)
A cell-based link to an external file such as cell notes, URLs, or files with text, audio, video, or pictures.
Log analyzer
An Administration Services feature that enables filtering, searching, and analysis of Essbase logs.
MaxL
The multidimensional database access language for Essbase, consisting of a data definition language (MaxL DDL) and a
data manipulation language (MaxL DML).
MaxL DDL
Data definition language used by Essbase for batch or interactive system-administration tasks.
MaxL DML
Data manipulation language used in Essbase for data query and extraction.
232

MDX
MDX is a joint specification of the XML for Analysis data manipulation language for OLAP databases. MDX is a powerful
querying language for multidimensional databases such as Essbase.
Member
A discrete component within a dimension. A member identifies and differentiates the organization of similar units. For
example, a time dimension might include such members as Jan, Feb, and Qtr1.
Member load
The process of adding dimensions and members (without data) to Essbase outlines.
Member solve order
In Aggregate Storage databases, the solve order property determines the priority with which Essbase calculates the
formulas. The formulas on the members that have a specified solve order are calculated in order from the lowest solve
order to the highest. You can specify a solve order between 0 and 127. The default is 0.
Metadata security
Security set at the member level to restrict users from accessing certain outline members.
Metaoutline
In Essbase Integration Services, a template containing the structure and rules for creating an Essbase outline from an
OLAP model.
Missing data (#MISSING)
A marker indicating that data in the labeled location does not exist, contains no value, or was never entered or loaded. For
example, missing data exists when an account contains data for a previous or future period but not for the current period.
Multidimensional database
A method of organizing, storing, and referencing data through three or more dimensions. An individual value is the
intersection point for a set of dimensions.
Never Share members
Never share does not allow members to be shared implicitly. Members tagged as Never share can only be explicitly
shared. To explicitly share a member, create the shared member with the same name and tag it as shared.
OLAP Metadata Catalog
In Essbase Integration Services, a relational database containing metadata describing the nature, source, location, and
type of data that is pulled from the relational data source.
OLAP model
In Essbase Integration Services, a logical model (star schema) that is created from tables and columns in a relational
database. The OLAP model is then used to generate the structure of a multidimensional database.
Online analytical processing (OLAP)
A multidimensional, multiuser, client-server computing environment for users who analyze consolidated enterprise data in
real time. OLAP systems feature drill-down, data pivoting, complex calculations, trend analysis, and modeling.
Outline
The database structure of a multidimensional database, including all dimensions, members, tags, types, consolidations,
and mathematical relationships. Data is stored in the database according to the structure defined in the outline.

233

Outline synchronization
For partitioned databases, the process of propagating outline changes from one database to another database.
Page file
Essbase data file.
Parallel calculation
A calculation option. Essbase divides a calculation into tasks and calculates some tasks simultaneously.
Parallel data load
In Essbase, the concurrent execution of data load stages by multiple process threads.
Parallel export
The ability to export Essbase data to multiple files. This may be faster than exporting to a single file, and it may resolve
problems caused by a single data file becoming too large for the operating system to handle.
Partition area
A subcube within a database. A partition is composed of one or more areas of cells from a portion of the database. For
replicated and transparent partitions, the number of cells within an area must be the same for the data source and 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.
Partitioning
The process of defining areas of data that are shared or linked between data models. Partitioning can affect the
performance and scalability of Essbase applications.
Pre-calculation or pre-aggregation
Calculating the database prior to user retrieval.
Provisioning
The process of granting users and groups specific access permissions to resources.
Qualified name
A member name in a qualified format that differentiates duplicate member names in a duplicate member outline. For
example, [Market].[East].[State].[New York] or [Market].[East].[City].[New York]
Ragged hierarchy
An asymmetrical hierarchy which occurs when a member has branches that contain different numbers of levels. For
example, assume a Country dimension containing hierarchies of different geographical entities down to cities at level 0.
The United States hierarchy would contain three levels: country, state, and city. The Greece hierarchy would contain two
levels: country and city.
Recursive hierarchy
A recursive hierarchy is a hierarchy of data in which all parent-child relationships are represented in the data. A parentchild data source must contain at least two columns: a parent column and a child column.
Replicated Partition
A portion of a database, defined through Partition Manager, used to propagate an update to data mastered at one site to a
copy of data stored at another site. Users can access the data as though it were part of their local database.

234

Restructure
An operation to regenerate or rebuild the database index and, in some cases, data files.
Root member
The highest member in a dimension branch.
Shared member
A member that shares storage space with another member of the same name, preventing duplicate calculation of
members that occur multiple times in an Essbase outline. The shared member stores a pointer to data contained in the
other member and the data is only stored once.
Sibling
A child member at the same generation as another child member and having the same immediate parent. For example,
the members Florida and New York are children of East and each other's siblings.

Skip property
If you set the time balance as first, last, or average, set the skip property to tell Essbase what to do when it encounters
missing values or values of 0.
Setting

Action Essbase Takes

None
Missing
Zeros
Missing and Zeros

Does not skip data when calculating the parent value.


Skips #MISSING data when calculating the parent value.
Skips data that equals zero when calculating the parent value.
Skips both #MISSING data and data that equals zero when calculating the parent value.

Sparse dimension
In block storage databases, a dimension unlikely to contain data for all member combinations when compared to other
dimensions. For example, not all customers have data for all products.
Standard dimension
A dimension that is not an attribute dimension.
Stored hierarchy
In aggregate storage databases outlines only. A hierarchy in which the members are aggregated according to the outline
structure. Stored hierarchy members have certain restrictions, for example, they cannot contain formulas.
Stored member property
Stores the data value with the member.
Substitution variable
Placeholders for information that changes regularly; for example, time period information. You can use substitution
variables in formulas that you apply to the database outline. When the outline is calculated, Essbase replaces the
substitution variable with the value you have assigned to it. You can create and assign values to substitution variables
using Administration Services, MaxL, or ESSCMD.

235

Time balance property


The time balance property affects how Essbase calculates the parent of that member in the time dimension. Time balance
options include none, average, first and last.
Setting

Action Essbase Takes

Average

Set the time balance as last when you want the parent value to represent the value of the
last member in the branch (often at the end of a time period).

First

Set the time balance as first when you want the parent value to represent the value of the
first member in the branch (often at the beginning of a time period).

Last

The time balance property affects how Essbase calculates the parent of that member in
the time dimension.

None

None is the default value. When you set the time balance property as none, Essbase rolls
up parents in the time dimension in the usual waythe value of the parent is based on the
formulas and consolidation properties of its children.

Time dimension
A dimension type that makes time intelligence available and enables several accounts dimension functions, such as first
and last time balances. Only one dimension can be defined as Time.
Transparent partition
A shared partition that enables users to access and change data in a remote database as though it is part of a local
database.
Two-pass property
An Essbase property that is used to recalculate members that are dependent on the calculated values of other members.
By default, Essbase calculates outlines from the bottom upfirst calculating the values for the children and then the
values for the parent. Sometimes, however, the values of the children may be based on the values of the parent or the
values of other members in the outline. To obtain the correct values for these members, Essbase must first calculate the
outline and then re-calculate the members that are dependent on the calculated values of other members. The members
that are calculated on the second pass through the outline are called two-pass calculations.
UDA
User-defined attribute, associated with members of an outline to describe a characteristic of the members. Users can use
UDAs to return lists of members that have the specified UDA associated with them.
Unary operator
A mathematical indicator (+, -, *, /, %) associated with an outline member. The unary operator defines how the member is
calculated during a database roll-up.
Uncommitted access
An Essbase Kernel Isolation Level setting that affects how Essbase handles transactions. With uncommitted access
(enabled by default), the Essbase kernel allows transactions to hold read/write locks on a block-by-block basis; Essbase
releases a block after it is updated but does not commit blocks until the transaction completes or until a specified limit (a
synchronization point) has been reached.
Unicode-mode application
An Essbase application wherein character text is encoded in UTF-8, enabling users with computers set up for different
languages to share application data.

236

Upper level block


A type of data block wherein at least one of the sparse members is a parent-level member.
Variance reporting property
Variance reporting properties determine how Essbase calculates the difference between actual and budget data in a
member with the @VAR or @VARPER function in its member formula. When you are budgeting expenses for a time
period, the actual expenses should be lower than the budget. Expense tagged members calculates the @VAR function
Budget Actual while non Expense calculates @VAR as Actual-Budget.
Write-back
The ability for a retrieval client, such as a spreadsheet, to update a database value.

237