この章の情報は、ブロック・ストレージ・データベースのみに適用され、集約ストレージ・データベースとは関係がありません。集約ストレージとブロック・ストレージの比較。も参照してください。
Essbaseの通貨換算機能では、財務データの通貨換算を行うことができます。通貨換算を行うと、各国間の比較が容易になり、使用通貨が異なる複数の場所の財務データを集計できます。
たとえば、英国の収益データ(英ポンド単位)と日本の収益データ(日本円単位)を分析する組織があるとします。この場合、それぞれの現地通貨で収益データを比較しても無意味です。2か国の相対的寄与率を把握するには、英ポンドを日本円に換算するか、日本円を英ポンドに換算するか、英ポンドと日本円の両方を別の共通の通貨に換算する必要があります。
もう1つの例として、北米地域の総収益を報告するには、北米地域に含まれる各現地通貨を標準化する必要があります。北米地域の総収益を、米国、メキシコ、カナダの3か国の収益データの合計と想定した場合、各国の現地通貨のデータを集計しても無意味です。意味のあるデータを得るには、集計の前に、各現地通貨を共通通貨に換算する必要があります。
Essbaseのインストール時には、オプションとして、InterntlとXchgrateの2つのデータベースからなるサンプル通貨アプリケーションをインストールできます。サンプル通貨アプリケーションのデータベースにアクセスできない場合は、Essbase管理者に問い合せてください。詳細は、サンプル・アプリケーションの設定。を参照してください。
サンプル通貨アプリケーションは、ケース・スタディ: 単一サーバー、多次元データベースの設計、で紹介しているThe Beverage Company (TBC)が米国外にビジネスを拡大するビジネス・シナリオに基づいて構築されています。TBCは次の市場を新しく追加します:
さらに、米国内の各地域(East、West、South、Central)のデータの集計を、U.S.という名前の新しいメンバーとして追加します。
TBCの各市場地域のデータは、現地通貨で収集されます。USドルの値は、現地通貨の値に為替レートを適用して計算します。
TBCは、実績データを次の2通りの方法で分析する必要があります:
実績データをすべて処理したら、予算データを予算為替レートで換算します。
TBC通貨アプリケーションは、メイン・データベース(Interntl)と通貨データベース(Xchgrate)で構成されます。これらのデータベースは、Essbaseサーバー上のサンプル・アプリケーションに含まれています。これらのデータベースにアクセスできない場合は、Essbase管理者に問い合せてください。
通貨換算の必要なビジネス・アプリケーションでは、メイン・データベースが少なくとも2つのスライスに分割されます。一方のスライスはローカル・データの入力処理に、もう一方のスライスは共通通貨に換算された入力データのコピーを保管するために使用されます。
Essbaseでは、通貨換算に必要な為替レートは、別個の通貨データベースに保管されます。通貨データベースのアウトラインは、ユーザーが必要なタグを割り当てるとEssbaseによって自動生成されます。一般には、このアウトラインによって、メイン・データベースの1セクションに所定の換算率がマップされます。生成された通貨データベースは、他のEssbaseデータベースと同様に編集できます。
メイン・データベースと通貨データベースの関係については、図46を参照してください。
Essbaseで通貨データベースのアウトラインを自動生成するには、メイン・データベースのアウトライン内の次元およびメンバーを変更します。サンプル通貨アプリケーションのメイン・データベースはInterntlです。
メイン・データベースのアウトラインには、3からn次元を含めることができます。メイン・データベースには少なくとも次の次元を含める必要があります:
時間のタグが付けられた次元。次元に時間のタグを付けると、通貨データベース内に、メイン・データベース内の時間次元とまったく同じ次元が生成されます。Sample.Interntlデータベースでは、時間のタグが付けられた次元は年次元です。
勘定科目のタグが付けられた次元。次元に勘定科目のタグを付け、この次元のメンバーに通貨カテゴリを割り当てると、通貨データベース内に、各通貨カテゴリのメンバーを含む次元が生成されます。カテゴリを割り当てることで、複数の勘定科目またはメジャーに、異なる為替レートを適用できるようになります。Sample.Interntlデータベースでは、勘定科目のタグが付けられた次元はメジャー次元です。
あるメンバーの子孫は各自、その祖先の通貨カテゴリ・タグを継承します。メンバーまたはメンバーのサブ分岐にも、固有のカテゴリを割り当てることができます。
たとえば、損益(P&L)の勘定科目では、バランス・シートの勘定科目で使用されている為替レートとは異なるレートが使用されている場合があります。さらに、勘定科目によっては、換算が不要な場合もあります。たとえば、Sample.InterntlデータベースのMargin%メンバーやProfit%メンバーは換算不要です。換算不要のメンバーには、換算なしタグを付けます。換算なしタグは継承されません。
国のタグが付けられた市場関連の次元。次元に国のタグを付け、各国に通貨名を割り当てると、通貨データベース内に各通貨を表すメンバーが生成されます。たとえば、Sample.Interntlデータベース内の市場次元には、国のタグが付けられています。すべての現地通貨は、この会社の共通通貨であるUSD (USドル)に換算する必要があるので、この次元の通貨名はUSDです。
複数のメンバーに同じ通貨名を割り当てることができるので、通貨名の数は、通常、次元内の合計メンバー数より少なくなります。表31に示すように、Sample.Interntlデータベースでは、市場次元のメンバー数が15であるにもかかわらず、通貨名を6つしか使用していません。Europeメンバーの子は、それぞれ異なる通貨を使用するので、通貨名を個別に割り当てる必要があります。これに対して、U.S.次元とその4つの地域メンバーは、同じ通貨を使用します。同様に、Canadaメンバーとその3つの都市メンバーも同じ通貨を使用します。あるメンバーの子が1つの通貨を共有する場合、定義する必要があるのは、親メンバーの通貨名のみです。
メイン・データベースの通貨換算用アウトラインを準備する際、オプションの通貨パーティションを作成して、現地通貨データを保管するデータベース・スライスと換算後の通貨データをEssbaseに指定できます。通貨パーティションのタグが付けられた次元には、現地通貨の値と換算後の値の両方のメンバーが含まれます。現地通貨データは、通貨換算スクリプトによって共通通貨データに換算されます。Sample.Interntlデータベースでは、シナリオ次元が通貨パーティション次元になります。
通貨パーティション次元の使用方法については、ローカル値と換算値の保持を参照してください。
通貨換算パーティションは、「通貨換算」オプションのみに適用されます。複製パーティション、リンク・パーティション、透過パーティションを使用してデータベース間でのデータ共有を可能にする「パーティション化」オプションとは無関係です。 |
レポート・スクリプトを使用すると、レポートを表示した状態でデータ換算を行うレポートを作成できます。これについては、レポート・スクリプトでの通貨換算を参照してください。
メイン・データベースのアウトラインの作成方法については、メイン・データベース・アウトラインの作成を参照してください。 |
メイン・データベース・アウトライン内のメンバーに通貨タグを割り当てることで、Essbaseで自動的に通貨データベースを生成できます。サンプル通貨アプリケーションの通貨データベースはXchgrateです。
注: | 通貨データベースでは、すべてのレベル0メンバーが、非動的計算メンバーとして格納されている必要があります。これは、通貨データベースの生成元のデータベースでも、すべてのレベル0メンバーが非動的計算メンバーとして格納される必要があることを意味します。 |
通貨データベースは、常に次の3つの次元で構成されています。オプションで4番目の次元があります:
時間のタグが付けられた次元は、一般に、メイン・データベース内の時間のタグが付けられた次元と同じです。このため、通貨データベースでは、長期にわたる通貨の変動を追跡し、メイン・データベースの様々な時間スライスを正確に変換できます。Sample.Xchgrateデータベースでは、時間のタグが付けられた次元は年次元です。
通貨データベースには、メイン・データベース内の時間次元の各メンバーを定義する必要があります。メイン・データベース内の期間ごとの値は通常、通貨データベース内の各期間の為替レートに換算されます(なお、データ値は任意の期間の為替レートに換算できます)。
国のタグが付けられた次元には、メイン・データベース内に定義された市場(または国)の通貨名が含まれます。通貨データベース内には、メイン・データベース内に定義された各通貨名が存在している必要があります。通貨名によって、通貨換算の際の国と為替レートのマッピングが定義されます。
Sample.Xchgrateデータベースでは、国次元はCurName次元です。CurName次元内の通貨名については、表32を参照してください:
勘定科目のタグが付けられた次元では、メイン・データベース内の勘定科目のタグが付けられた次元のメンバーに様々なレートを適用できます。メイン・データベース内の会計次元用に定義されたカテゴリから、通貨データベースの会計次元メンバーが生成されます。たとえば、総利益(Gross Profit)と純利益(Net Profit)の換算には特定のカテゴリのレートを使用し、その他の勘定科目の換算には他のレートを使用する必要が生じることがあります。
Sample.Xchgrateデータベースでは、勘定科目のタグが付けられた次元はCurCategory次元です。この次元の勘定科目カテゴリには、損益(P&L)とバランス・シート(B/S)があります。
通貨データベースには、一般に、オプションの通貨タイプ次元が含まれるので、異なる通貨換算シナリオを利用できます。通常、アプリケーションの為替レートはシナリオ(実績、予算、予測など)ごとに異なります。シナリオ間でデータ換算を行うには、使用するレートのタイプを選択します。
通貨アウトラインの生成時には、通貨タイプ次元が作成されます。通貨タイプ次元は、メイン・データベースには直接マップされません。このため、この次元内のメンバー名は、メイン・データベース内のメンバー名と一致していなくてもかまいません。
Sample.Xchgrateデータベースでは、通貨タイプ次元はCurType次元です。CurTypeには、実績シナリオと予算シナリオが含まれます。
通貨データベースのアウトラインの作成方法については、通貨換算アプリケーションの構築および換算の実行を参照してください。 |
通貨アプリケーションによって、換算の要件が異なります。Essbaseでは、次の2通りの換算方法がサポートされています:
一部のアプリケーションでは、換算後の値のみをメイン・データベースに保管する必要があります。現地通貨の値を入力すると、換算操作により、現地通貨の値が共通通貨の値で上書きされます。これは、現地通貨のレポートや分析が不要であると想定した換算方法です。
データが上書きされるので、換算を行うたびに現地通貨の値をロードし、データを再計算する必要があります。この方法は、単発の(継続しない)換算にのみ適しています。
ほとんどのアプリケーションでは、データを現地通貨と共通通貨(換算後の値)の両方で保管する必要があります。この方法では、現地通貨のデータのレポートと分析が可能で、データの変更や再計算の制御が比較的容易です。この方法を使用する場合は、通貨パーティションを定義します(メイン・データベースを参照)。
どちらの方法でも、レポート時に通貨換算が必要になる可能性があります。レポート時の換算の場合、実際にデータベースにデータを保管することなく、様々な為替レートのシナリオを分析できます。通貨換算モジュールでは、アド・ホックな換算を実行できます。レポート・スクリプトを使用してアド・ホックな換算を実行します。例をレポート・スクリプトでの通貨換算に示します。
メイン・データベース・アウトラインの作成を参照してください。
通貨換算のためにメイン・データベース・アウトラインを準備します。
メイン・データベース・アウトラインの準備を参照してください。
通貨データベース・アウトラインの生成を参照してください。
メイン・データベースと通貨データベースのリンクを参照してください。
通貨値の換算を参照してください。
通貨換算の追跡を参照してください。
通貨換算のトラブルシューティングを参照してください。
メイン・データベースのアウトラインを作成するには、Essbaseデータベースのアウトラインを作成するか開いて、必要に応じて変更を加えた後、通貨換算アプリケーションで使用できるようにアウトラインを保存します。
メイン・データベースのアウトラインを作成するか開いた後、次元とメンバーに変更を加えて、Essbaseで自動的に通貨データベースのアウトラインが生成されるようにします。メイン・データベースを参照してください。
メイン・データベースのアウトラインの確認と保存が完了したら、通貨アウトラインを生成できます。通貨アウトラインは、メイン・データベースのアウトラインで定義した次元、メンバー、通貨名および通貨カテゴリで構成されます。通貨データベースのアウトラインは、基本的に構造化されており、生成後すぐに使用できます。ただし、完成するためにはいくらか追加が必要になることがあります。
通貨換算を実行するには、Essbaseにメイン・データベースと通貨データベースのリンクを認識させる必要があります。通貨アウトラインを生成しただけでは、メイン・データベースと通貨データベースはリンクされません。データベースのリンクを作成する際、換算の計算方法とデフォルトの通貨タイプ・メンバーを指定します。
通貨換算アプリケーションを作成したら、計算スクリプト内のCCONVコマンドを使用して、現地通貨のデータ値を共通通貨に換算します。たとえば、様々な通貨のデータをUSD (USドル)に換算できます。データをオリジナルの現地通貨に換算しなおすには、CCONV TOLOCALRATEコマンドを使用します。
通貨データベースに定義したレートを使用して、メイン・データベースの一部または全体を換算できます。現地通貨の値を換算後の値で上書きするか、両方の値をメイン・データベース内に保管するかは、追跡およびレポートのニーズに応じてユーザーが指定できます。
通貨換算を実行する際は、換算対象のデータが同時に別のユーザーのアクティビティ(計算、データ・ロード、同じ通貨パーティションに対する通貨換算など)によって更新中でないことを確認してください。換算対象のデータに対するアクティビティが同時に発生した場合、不正な結果になる可能性があります。この場合、Essbaseからの警告メッセージは表示されません。 |
CCONVコマンドを使用して通貨換算を実行すると、換算後のデータ・ブロックは高機能計算には適さないデータとしてマークされます。このため、データベースの再計算時に、換算済のすべてのブロックがEssbaseで再計算されます。 |
通貨換算のサンプル計算スクリプトについては、『Oracle Essbaseテクニカル・リファレンス』を参照してください。
現地通貨の値を上書きするために、メイン・データベース内に通貨パーティションを作成する必要はありません。計算スクリプト内にCCONVコマンドを記述するだけで、データベース内のすべてのデータを換算できます:
次の計算スクリプトでは、データベース内の値がUSDに換算されます:
CCONV USD; CALC ALL;
必要に応じて、必要な為替レートが含まれる通貨名を指定できます。次の計算スクリプトでは、通貨データベース内のJanと定義された為替レートを使用して、データベース内の値をUSDに換算できます:
CCONV Jan->USD; CALC ALL;
例として示されたケースでは、CALC ALLコマンドを使用する必要があります。CCONVコマンドで実行できるのは通貨換算のみで、データベース内のメンバーの集計または計算は実行されません。
次の計算スクリプトでは、Act xchgレートを使用して、換算値が元の現地通貨の値に換算されます:
CCONV TOLOCALRATE "Act xchg"; CALC ALL;
現地通貨の値と換算後の値をデータベースに保持できます。メイン・データベース内に通貨パーティション次元を作成して、現地通貨の値と変換後の値を保管するメンバーを定義する必要があります(メイン・データベースを参照)。通貨パーティション次元には、現地通貨の値を保管するパーティションと換算後の値を保管するパーティションが1つずつあります。
次の例は、Sample.Interntlデータベースと対応するSample.Xchgrate通貨データベースに基づいています。図47に、Sample.Interntlデータベースの通貨パーティションを示します。
次の計算スクリプトでは、Actual、BudgetおよびActual @ Bud Xchgの各データ値に対して、3種類の通貨換算が実行されます:
/* 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;
次の計算スクリプトでは、ActualとBudgetの各値が、元値である現地通貨値に換算されます:
FIX(Actual) CCONV TOLOCALRATE "Act xchg"; ENDFIX FIX(Budget) CCONV TOLOCALRATE "Bud xchg"; ENDFIX CALC ALL;
CALC ALLコマンドを実行して換算後にデータベースの集計を行うと、換算後の基準レートのパーティション内に有効な合計レベルのデータが生成されます。一方、現地通貨のレートのパーティションに含まれる現地通貨の値の集計は無効です。無効な集計データが生成されるのを防ぐには、定義済の同じ通貨を使用する親への集計のみを行うSET UPTOLOCAL計算コマンドを使用します。たとえば、米国(U.S.)内のすべての都市では、通貨単位としてドルが使用されます。したがって、U.S.のすべての子はU.S.に集計されます。ただし、この集計は国レベルで停止します。それは、北米圏内に他の通貨を使用する国があるからです。
レポート・スクリプト内で、出力通貨と通貨タイプを設定するCURRENCYコマンドを使用して通貨換算を行うことはできません。レポート・ライター・コマンドの構文および定義については、『Oracle Essbaseテクニカル・リファレンス』を参照してください。
次のサンプル・レポートには、ペセタ(Peseta)の1月の為替レートを使用した、第1四半期のコーラの予算売上高が含まれます。
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
次のスクリプトを使用して、サンプル通貨換算レポートを作成します:
<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 !
換算済の通貨パーティションと換算に使用された為替レートをEssbaseで追跡するかどうかを制御するには、essbase.cfgファイル内のCCTRACK構成設定を使用します。通貨換算の追跡には、次の利点があります:
デフォルトではCCTRACKはオンになっています。Essbaseでは、どの通貨パーティションが換算済で、どの通貨パーティションが換算されていないかが追跡されます。追跡は通貨パーティション・レベルで行われます: たとえば2つのパーティションからなるデータベースの場合、換算済と未換算の2つのフラグを設定できます。Essbaseでは、パーティション内のメンバーの組合せに対してフラグは保管されません。
通貨パーティションを使用していて、essbase.cfg内でCCTRACKがTRUEに設定されている場合(デフォルト)、単一のパーティション・メンバーに対してFIXを実行する必要があります。複数のメンバーに対してFIXを実行できません。これは、CCTRACKが通貨パーティション・メンバー・レベルで機能する設定であり、この通貨パーティション・メンバーに関連付けられているすべてのデータが換算済または未換算とマークされるからです。たとえば、Sample.Basicデータベースでは、次の設定が有効になります:
FIX(Actual) CCONV "Act xchg"->US$; ENDFIX
たとえば、Sample.BasicデータベースでFIXコマンドを使用してメンバーJanとFebの実績値のみを換算できるようにしてしまうと、データベースの同じ通貨パーティションの中に換算済のデータとそうでないデータが混在することになり、データの一貫性が失われます。
通貨パーティション間の通貨データの換算効率を向上させるため、CCTRACKをオフにしてみてください。たとえば、当月のデータを現地通貨のパーティションにロードする場合、DATACOPYコマンドを使用して更新データが含まれる通貨パーティション全体をコピーしてから、通貨パーティションに対して換算を実行します。
計算スクリプト内でSET CCTRACKCALC ON|OFFコマンドを使用すると、CCTRACKが一時的にオフになります。このコマンドを計算時に使用すると、通貨換算時の柔軟性と効率が向上します。
CLEARCCTRACK計算コマンドでは、CCTRACKによって作成された内部為替レート・テーブルを消去できます。このコマンドをFIXステートメント内で使用すると、通貨パーティションの為替レートが消去されます。このコマンドをデータ・ロード後に使用すると、将来の通貨換算計算のために為替レート・テーブルをリセットできます。
essbase.cfgファイル内でCCTRACKをFALSEに設定します。CCTRACKをFalseに設定すると、追跡システムがオフになり、次のような結果になります: