1. Trang chủ
  2. » Công Nghệ Thông Tin

Oracle Essbase 9 Implementation Guide- P37 pptx

5 218 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 696,69 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

The Calc All command tells the Essbase to calculate the database according to the consolidations parent-child rollups and Store Data tagged member formulas that are set up in the datab

Trang 1

Your Default Calc can be executed manually by selecting it from the available

choices on the screen that is displayed when you choose Execute calculation… from

the list of choices that appear after right-clicking on your database name in EAS

You can also programmatically execute your Default Calc using the appropriate

command in your MaxL script or API call

Calc All

The Calc All database calculation function can be executed in two different ways

but will perform the same function You can code the Calc All function in a database

calculation script that is either executed manually or through a program You can

also set Calc All to be your database's default calculation string.

The Calc All command tells the Essbase to calculate the database according to the

consolidations (parent-child rollups) and Store Data tagged member formulas that

are set up in the database outline and members' properties

There are occasions when you will create an Essbase database outline that is fairly

simple and straight forward with regard to parent-child relationships This database

is more than likely used for presentation and reporting purposes only and the users' access is typically Read Only With this type of arrangement, the only calculation that needs to be performed is usually after a data load or database/outline restructure

The Calc All command is perfect for this type of scenario.

When you initiate a Calc All function, Essbase attempts to determine the best order

of calculation for the database, so you must be careful to verify the results of a Calc All If your database requires complex or unusual calculations, you would be better

served using a specifically written calculation script

Trang 2

Very Important!

Since this is your first calculation function that you are learning about, we should give you this tip right now The correct syntax for all calculation functional statements, in both scripts and formulas, is to end the statement with a semi-colon (;) Some statements are not required to end with a semi-colon, like conditional statements (if, else, endif), but all actionable statements are

Calculate/Aggregate dimension

With an understanding of the Calc All function, we can now be comfortable

describing the two very useful and related database calculation script functions

Where the Calc All function is used to calculate the entire database based on the

outline (consolidations and stored member formulas), the CALC DIM and AGG

functions are used to perform almost the same function with dimension level precision

The CALC DIM function performs exactly like the Calc All function in that it will

execute calculations based on the database outline and Store Data tagged member

formulas, with one huge difference In calculating, functionality is constrained to

only the database dimensions you list with this function The following is an

example of how you would code a CALC DIM statement to calculate only the

Calendar Periods dimension

To CALC DIM one dimension:

CALC DIM("Calendar Periods");

To CALC DIM more than one dimension in one command:

CALC DIM("Calendar Periods","Model Year","Market");

To make sure a specific order is followed:

CALC DIM("Market");

CALC DIM("Model Year");

CALC DIM("Calendar Periods");

The parameter section of this function can contain a comma separated list if you

wish to calculate more than one dimension

If you need to ensure a specific order of calculation for the dimensions, it is best

to code individual CALC DIM statements containing only one dimension name

in the order you need them to be calculated for each dimension

Trang 3

Essbase Calc commands and functions

As discussed earlier, database calculations are very important features in the

Essbase world For some situations, you may need to write complicated calculation scripts, in other situations, they will be fairly simple In order for you to become

proficient in writing calculation scripts you need to have an understanding of some

of the predefined commands and functions that can be used in an Essbase database calculation script Let's discuss some of the more commonly used commands and

functions in detail

Data declarations

When you are writing some of the more complex calculation scripts, you will find it necessary to manipulate the data while calculating For manipulating the data, you

need to create variables

In an Essbase calc, you can create temporary variables or global variables (also called substitution variables, which are discussed in greater detail later in this chapter)

The temporary variables are only available when the calculation script is running

and they do not exist after the calculation script has completed In order to use these variables in a calculation script, you need to declare them

It is always best to declare all of the variables you will be using at the top of the calculation script

There are two types of temporary variables that can be used in an Essbase database calculation scripts:

• VAR: A variable containing only one value

• ARRAY: A one dimensional array declaration

The allowable naming convention for the VAR and ARRAY variables are similar to one another, you can use alpha characters "a through z", numbers "0 through 9", and

special characters "$ (dollar sign), # (pound sign), and _ (underscore)" Remember,

you cannot use the & (ampersand) as this is reserved for the substitution variables

Example:

VAR cRevenue;

or

VAR cRevenue = 10,000;

ARRAY arrCust["TOTAL CUSTOMER"];

Trang 4

The array size would be the total number of members in this dimension.

Control flow

Control functions control the flow of the data being calculated As you will see,

some functions help select the data while some help restrict the selected data

All in all, they are used to help you calculate your data quickly and efficiently

FIX/ENDFIX

When we talked earlier about Essbase database calculation control, we meant the FIX/ ENDFIX command These are the control gate keepers of the database calculation script The FIX/ENDFIX commands are for use only in an Essbase database calculation

script When you code a member formula, the formula only applies to the member

in which it is coded, hence, there is no need for FIX/ENDFIX commands

Using Essbase's full complement of calculation functions and commands, for precise calculation purposes, it hardly matters what your outline looks like, or how it is

laid out In terms of dimension order, Sparse or Dense settings, whether or not

you have an Accounts or Time dimension, or pretty much any other way you have

your database set upto fit your own needs, the calculation script can be coded to

do exactly as you wish With the FIX/ENDFIX command, you can zero in with razor sharp precision on only the data values you wish to calculate

When you employ a FIX/ENDFIX command you are telling Essbase to select a subset

of data from the database for calculating In this way, you will not calculate too much data at any given time You also will not calculate data that you do not intend to

(the definition of Stomp-on)

What you will realize by using the FIX/ENDFIX command, besides the benefits

described above, is keeping your database calculation scripts running at

peak performance

The FIX command selects data from the database by blocks Due to this fact, and

also because you want to ensure the highest possible performance while executing

calculation scripts, it is recommended that wherever possible, you FIX only on

members that are in Sparse Dimension When you FIX on a Dense Dimension,

Essbase needs to pull all of the data blocks affected by the FIX statement into the

system's memory, thus potentially affecting performance This is because dense

members have a greater potential to populate across more blocks

Trang 5

Of course, you can fix on any database member(s) you wish, and sometimes you will have no choice However, if calculation script performance becomes an issue, this is one of the first places to look to make improvements

For example:

FIX(Sparse Dimension)

IF(Dense Dimension)

Any Calculation Function;

ENDIF

ENDFIX

There is one caveat to this Essbase will only FIX on members in blocks

that have been previously created You can solve this by using the

CREATEBLOCKONEQ command in your calculation script This command

will create the necessary missing blocks for your sparse members

When you use the FIX/ENDFIX command, you are basically turning on, and then off,

the data filtering that you incorporated using the FIX/ENDFIX command in the first place In a typical calculation script, you may have many separate instances of

FIX/ENDFIX commands that enclose a wide variety of calculation functions The

FIX/ENDFIX commands can also be nested inside one another, much like nested

IF/ENDIF statements For every FIX statement, there must be a matching ENDFIX

There is one critical thing you must know about nesting FIX/ENDFIX

commands Never fix on one level of a dimension, then fix again on a

different level of that same dimension in a nested FIX command

Always attempt to FIX to the specific level you intend to for a dimension in one

FIX command The reason for this is because even though the next FIX command

is nested within the first FIX command it will still pull the entire dimension into

the calc pool for filtering In the example of a bad implementation below, the first

FIX command will select all members from the Calendar Periods dimension

The second FIX command will select all of the zero level members from the

Calendar Periods dimension This will actually result in all members of the

Calendar Periods dimension being calculated

Do not do this:

FIX("Calendar Periods")

FIX(@LEVMBRS("Calendar Periods",0))

Any Calculation Function;

ENDFIX

ENDFIX

Ngày đăng: 06/07/2014, 00:20

TỪ KHÓA LIÊN QUAN