![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Organizations with offices in different countries generally do business in the currency of the host country (known as the local currency). World and regional headquarters of such organizations must convert data entered in local currencies to a common currency for consolidation and analysis. The Hyperion Essbase Currency Conversion option is designed to meet the needs of this complex business problem. This option can be licensed as an "add-on" to the Hyperion Essbase OLAP Server.
The Currency Conversion option includes a sample currency application that contains two databases: INTERNTL and XCHGRATE. This chapter provides background information, step-by-step instructions for building the sample currency application, and procedures for calculating and reporting currency conversions after you have built your own currency application.
This chapter contains the following topics:
This chapter focuses on solving the business problems that arise as the sample company, The Beverage Company (TBC), expands its business outside the United States. This chapter builds on the business scenario introduced in Designing a Single-Server Application as TBC adds the following markets:
In addition, TBC adds a new member, US, which is a consolidation of data from the United States regions: East, West, South, and Central.
Data for each TBC market location is captured in local currency. Dollar values are derived by applying exchange rates to local values. These values must then be converted to a common currency (in this case, US$).
TBC needs to analyze actual data in two ways:
When all actuals have been processed, budget data is converted with budget exchange rates.
Currency conversion applications are defined by linking a currency database to a main application database, as illustrated in Figure 45-1. The Main Database contains the full database outline and associated data values; the Currency Database contains only exchange rates and other currency-related information. In the example provided in this chapter, TBC's Main Database is INTERNTL; its Currency Database is XCHGRATE. On your server, these databases are in the Sample application.
Figure 45-1: Currency Application Consists of Two Databases
The Main Database can be from 3 to n dimensions in size. At a minimum, the database must contain the following dimensions:
For example, P&L accounts may use exchange rates that differ from those used with balance sheet accounts. In addition, some accounts may not require conversion. For example, members such as Units, Headcount, and Margin% require no conversion.
Because many members can have the same currency name, the number of currency names is typically less than the total number of members in the dimension. As shown in Table 45-1, TBC uses only six currency names for its 15 Market dimension members. The children of the member Europe all use a different currency and, therefore, must be assigned individual currency names. However, in the case of the Country dimension and the US member and its four cities, all locations use the same currency. The same is true of the Canada member and its three cities. When the children of a given member share a single currency, you only need to define a currency name for the parent member.
A typical Main Database also contains an optional fourth dimension: "A dimension defined with a currency partition." Databases are usually partitioned in a Scenario dimension. Creating a currency partition allows Hyperion Essbase to internally track currency relationships and previously-converted values of the main and exchange rates databases.
The Hyperion Essbase Spreadsheet Add-in User's Guide provides examples of ad hoc currency reporting capabilities. Report scripts also let you define reports that convert data when the report is displayed, as discussed under Converting Data to a Different Currency in Reports.
The Currency Database requires the following three dimensions:
A currency database typically includes an optional fourth dimension: "A Currency Type dimension" which contains members that identify various currency scenario types. Typically an application has different exchange rates for scenarios, such as actual, budget, and forecast. Members of the currency-type dimension are not directly mapped to members of the Main Database. Therefore, member names in this dimension are not required to match member names of the Main Database.
Different currency applications have different conversion requirements. Hyperion Essbase supports two currency database types, each with a different conversion method:
Because this operation overwrites data, you must load local values and recalculate the data each time you perform a conversion. This method is useful only when you want to perform a single (not ongoing) conversion.
Either of these two methods may also require a currency conversion to be applied at report time. This allows you to analyze various exchange rate scenarios without actually storing data in the database. The currency conversion module allows you to perform ad hoc conversions with the Spreadsheet Add-in, which is discussed in the Hyperion Essbase Spreadsheet Add-in User's Guide, or with a report script, as discussed under Converting Data to a Different Currency in Reports.
To accommodate the new markets TBC has added and to provide Hyperion Essbase with required currency-related information, TBC has modified their existing Hyperion Essbase database outline and created a currency conversion application. You can use the TBC model to create your own currency conversion application, revising the steps as needed to fit your specific requirements.
The TBC currency conversion application was created using the following steps:
To create the Main Database outline (INTERNTL), you need to open your existing Hyperion Essbase database outline, make changes to its contents, and then save the outline for use in your currency conversion application.
Begin creating the Main Database outline by opening TBC's existing outline, as follows:
Figure 45-2: Sample Database INTERNTL Hyperion Essbase Outline
TBC has modified the Measures, Market, and Scenario dimensions. The Year and Product dimensions require no changes because they have no information specifically related to currencies.
Note: | The Year dimension must be tagged as the Time dimension. |
To create their currency conversion Main Database, TBC modified the Measures dimension using the following steps. You can follow along and revise the procedures as necessary to create your own currency application.
You must have a dimension tagged as Accounts in your Main Database. To meet varying conversion and exchange rate requirements, individual members within the Accounts dimension can then be tagged with different categories of exchange rates.
All descendants of the Profit member, for example, use a special currency rate that applies to Profit and Loss accounts. Therefore, they are defined with a currency category of P&L.
Note: | Each descendant of a member inherits the currency category tag of its ancestor. A member or sub-branch of members can also have its own category defined. |
Because the Measures dimension shows data for Profit, it must also have the P&L currency category name applied.
All descendants of the Inventory member use a special rate that applies to balance sheet accounts. Define them with a currency category of B/S (for Balance Sheet).
Ratio members do not require a currency conversion, because the local and converted values yield the same result.
Note: | The children of a member defined with No Conversion do not inherit the No Conversion definition. Each member must be defined individually. |
Figure 45-3 shows the resulting Measures dimension outline after making the modifications necessary for the TBC currency conversion application.
Figure 45-3: TBC Measures Main Database Outline
TBC needed to make the following modifications to the Market dimension to accommodate their newly added markets and create their currency conversion application Main Database. Procedures for making these changes follow the bullet list.
Modify the Market dimension as follows:
The existing members (East, West, South, and Central) belong in TBC's newly added US market. To make this outline change, TBC added the US member with the existing members as descendants.
You must now define currency names for each appropriate member. Because TBC required the database to be converted to US dollars, they defined the Market dimension with the US$ currency name.
All descendants of the Market dimension inherit the US$ currency name (unless a child branch has already been defined with another currency). Because members in the US branch use US$ as their local currency, there is no need to define a currency name for these members.
Like the Market dimension, all descendants of Canada also use the same currency (CN$). You need to define a currency name for the Canada member only and its children inherit the CN$ currency name.
The children of Europe all use different local currencies. Unlike the Market dimension and the Canada member, you must define each Europe member with an individual currency name.
Figure 45-4 shows the resulting Market dimension outline after making the modifications necessary for the TBC currency conversion application.
Figure 45-4: TBC Market Dimension Database Outline
In the TBC Main Database (INTERNTL), the Scenario dimension contains members for both local and converted values. TBC needed to make the following modifications to the Scenario dimension to create their currency conversion application Main Database:
Modify the Scenario dimension as follows:
The Dollars member does not store data and must, therefore, be tagged as a label.
TBC also wants to track actuals using the budget exchange rate. The Scenario dimension requires a new member to handle this data.
The newly added Actual @ Bud XChg member does not consolidate into the Dollars member and must, therefore, be tagged appropriately.
Data only needs to be captured in local currency for Actual and Budget. These are the only children to define for Local.
Values for the Act member consolidate to Local, but values for the Bud member do not.
Figure 45-5 shows the resulting Scenario dimension outline after making the modifications necessary for the TBC currency conversion application.
Save the outline changes by clicking the Save button. If your database contains data values, Hyperion Essbase restructures the database to reflect changes to the outline. When you click Save, the Restructure Database dialog box shown in Figure 45-6 is displayed.
Figure 45-6: Restructure Database Dialog Box
When an existing outline is updated, you have several choices that let you restructure data values. Because no data has been loaded into the model, click OK to continue the outline update.
Once you have verified and saved the Main Database outline, you can generate the currency outline. The currency outline contains dimensions, members, currency names, and currency categories previously defined in your Main Database outline. It is basically structured and ready to use after being generated but may require additions to make it complete.
Follow these steps to generate the Currency outline:
If the Main outline is missing any required dimension tags (such as Time, Accounts, or Country), Hyperion Essbase displays an error box like the one shown in Figure 45-7.
Figure 45-7: Error Dialog Box Displayed When No Country Dimension Is Defined
Figure 45-8: Generate Currency Outline Dialog Box
The Generate Currency Outline dialog box lets you define the database for which the outline is generated. The dialog box contains the following controls:
If you need to log in to a different server, click the Connect button. The dialog box shown in Figure 45-9 is displayed. If you do not need to log in to a different server, go to Step 5.
Figure 45-10: Create Currency Database Dialog Box
The outline for the currency database XCHGRATE is displayed in the Outline Editor as shown in Figure 45-11.
After generating your Currency Database outline, review its contents and note the following items that are automatically created based on the contents of the Main Database that you defined previously:
After you have generated the Currency Database, you can add members to any dimension. Because the TBC Currency Database (XCHGRATE) contained different exchange rates for actual and budget, they added two new members to the CurType dimension to apply to different scenarios in the Main Database:
Exchange rates from these two members are applied to different scenarios from the Main Database, as follows:
Note: | For details about the currency conversion calculation process, see Calculating Currency Conversions. |
When you have reviewed the newly generated Currency Database outline and have made any necessary additions, you need to save your changes.
Figure 45-12: Using the Latest Version on the Server Warning
Because the newly-generated outline contains all new members, you are given a choice of continuing or canceling the operation.
Figure 45-13: Restructure Database Dialog Box
When an existing outline is updated, you have several choices that let you restructure data values.
To perform a currency conversion calculation, Hyperion Essbase must recognize a link between the Main and Currency databases. Generating a currency outline does not automatically link a Main Database with a Currency Database.
Figure 45-14: Database Settings Dialog Box General Page
Figure 45-15: Database Settings Dialog Box Currency Page
The Multiply and Divide options are enabled. Use these option buttons to define the conversion calculation method to be used. The Multiply option button multiplies each local data value by the exchange rate. The Divide option button divides each local data value by the exchange rate.
The Default Currency Type Member text box lets you define a currency type member to use as a default for currency conversion calculations.
After the databases are defined and linked, the next step is to load data into the Main Database and exchange rates into the Currency Database. After values have been entered, a currency conversion is calculated. This is accomplished by running a calc script (see Calculating Currency Conversions).
You convert data values from a local currency to a common, converted currency using the CCONV currExchMbr command in a calc script. For example, you might convert data from a variety of European currencies into US$.
Note: | You cannot use the CCONV command to convert data in a transparent partition. |
You convert the data values back to the original, local currencies using the CCONV TOLOCALRATE CurType command.
You can convert all or part of your main database using the rates defined in your Currency database. You can overwrite the local values with the converted values, or you can keep both the local and converted values in your main database, depending on your tracking and reporting needs.
If you want to overwrite the local values, you do not need to create a CURPARTITION dimension in your main database. Use the CCONV command in a calc script to convert all the data in your database.
The following calc script converts the values in the database to US$.
CCONV US$; CALC ALL;
If required, you can specify a currency name that contains the required exchange rate. The following calc script converts the values in the database to US$, using the exchange rate for Jan as defined in the Currency database.
CCONV Jan->US$; CALC ALL;
The CALC ALL command is required in the examples shown, because the CCONV command only converts currencies. It does not consolidate or calculate members in your database.
The following calc script converts the values back to their original values in their local currencies using the "Act
xchg"
rate:
CCONV TOLOCALRATE"Act
xchg"
; CALC ALL;
For more information on the CCONV command, see the online Technical Reference in the DOCS
directory.
Note: |
You cannot use the FIX command unless you are using a CURPARTITION dimension and the CCTRACK setting is TRUE in the ESSBASE.CFG file.
|
You can keep both local and converted values in your database. In your main database you need to define the members that store the local and converted values. You do this by creating a CurPartition dimension (see Modify the Scenario Dimension). The CurPartition dimension has two partitions, one for local values and one for converted values.
You then need to create a calc script to complete the following steps:
Note: | When using a CurPartition dimension, you must FIX on a member of this dimension to use the CCONV command. |
The following example is based on the Sample INTERNTL database and corresponding Sample XCHGRATE Currency database. Figure 45-16 shows the Currency Partition from the Sample INTERNTL database.
Figure 45-16: Calculating Local and Converted Currency Conversions
The following calc script performs three currency conversions for Actual, Budget and Actual @ Bud Xchg data values.
/* Copy data from the local partition to the master partition (for converted values) */ DATACOPY Act TO Actual; DATACOPY Bud TO Budget;
/* Convert the Actual data values using the "Act xchg" rate */
FIX(Actual) CCONV "Act xchg"->US$; ENDFIX
/* Convert the Budget data values using the "Bud xchg" rate */ FIX(Budget) CCONV "Bud xchg"->US$; ENDFIX
/* Convert the "Actual @ Bud XChg" data values using the "Bud xchg" rate */ FIX("Actual @ Bud XChg") CCONV "Bud xchg"->US$; ENDFIX
/* Recalculate the database */ CALC ALL; CALC TWOPASS;
The following calc script converts the Actual and Budget values back to their original values in their local currencies:
FIX(Actual) CCONV TOLOCALRATE "Act xchg"; ENDFIX FIX(Budget) CCONV TOLOCALRATE "Bud xchg"; ENDFIX CALC ALL;
Note: | When you convert currencies using the CCONV command, the resulting data blocks are marked as dirty for the purposes of Intelligent Calculation. This means that Hyperion Essbase recalculates all the converted blocks when you recalculate your database. For more information on Intelligent Calculation, see Using Intelligent Calculation to Optimize Calculation. |
You can calculate currency conversions in report scripts, using the CURRENCY target currency command to set the output currency and currency type. For the syntax and definitions of Report Writer commands, see the online Technical Reference in the DOCS
directory.
The following Sample report contains first quarter Budget Sales for colas, using the January exchange rate for the Peseta currency.
Illinois Sales Budget Jan Feb Mar ======== ======== ======== 100-10 3 3 3 100-20 2 2 2 100-30 #Missing #Missing #Missing 100 5 5 5 Currency: Jan->Peseta->Act xchg Currency: Jan->Peseta->Act xchg Illinois Sales Budget Jan Feb Mar ======== ======== ======== 100-10 3 3 3 100-20 2 2 2 100-30 #Missing #Missing #Missing 100 5 5 5 |
Use the following script to create the Sample currency conversion report:
<Page (Market, Measures, Scenario) {SupCurHeading} Illinois Sales Budget <Column (Year) <children Qtr1 <Currency "Jan->Peseta->Act xchg" <Ichildren Colas !
{CurHeading} Illinois Sales Budget <Column (Year) <children Qtr1 !
The CCTRACK setting in your ESSBASE.CFG
file controls whether exchange rates are tracked while Hyperion Essbase calculates currency conversions.
When CCTRACK is True, Hyperion Essbase tracks exchange rates that are applied to data as conversions are calculated, allowing conversion to occur at report time through the Spreadsheet Add-in or the Hyperion Essbase Report Writer.
Setting CCTRACK to False turns off the tracking system and has the following results:
For more information, refer to online Technical Reference in the DOCS
directory.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Copyright © 1991-2000 Hyperion Solutions Corporation. All rights reserved.