@XREF

@XREF計算関数は、別のEssbaseキューブからの値を計算に組み込めるようにします。

次の用語が@XREFを説明するために使用されています。

  • データ・ターゲット: 現在の計算が実行されているキューブ(つまり、@XREF呼び出しが開始されたキューブ)。

  • データ・ソース: @XREFによって問い合されるキューブ。このキューブはリモート(つまり、データ・ターゲットとは異なるマシン上)にある可能性があります。

  • 視点: データ・ターゲットで現在計算されているメンバーの組合せ(つまり、計算の左側を識別するメンバーの組合せ)。

@XREF関数は、データ・ソースから値を取得して、データ・ターゲットの計算に使用します。@XREFは、メンバーとディメンションのマッピング制限を課しません。つまり、データ・ソースとデータ・ターゲットのアウトラインが異なる場合があります。

構文

目標に応じて、この関数を呼び出す方法は複数あります。

リモート・キューブからの値を組み込むには、次を使用します。

@XREF (locationAlias [, mbrList])

別のアプリケーションとキューブからの値を同じEssbaseインスタンスに組み込むには、次を使用します。

@XREF (appname, dbname [, mbrList])

パラメータ

locationAlias

データ・ソースのロケーション別名。ロケーション別名は、データ・ソースを識別する記述子です。ロケーション別名は、ソースとターゲットが同じEssbaseインスタンス上にある場合は必要ありません。

使用する場合は、計算スクリプトを実行するキューブにロケーション別名を設定する必要があります。ロケーション別名はデータベース管理者によって設定され、データ・ソースのサーバー、アプリケーション、データベース、ユーザー名、パスワードを指定します。

mbrList

オプション。@XREF問合せを修飾するメンバー名のカンマ区切りのリスト。mbrListに指定したメンバーは、データ・ターゲットの現在の視点のメンバーに加えて、データ・ソースに送信されます。次に、データ・ソースは、優先順位を使用して、メンバーの組合せを作成します。

  • mbrListで指定したメンバー

  • 現在の視点でのメンバー

  • データ・ソースの不特定のディメンションの最上位メンバー

mbrListパラメータは、(1)データ・ターゲットの視点を変更するか、(2)データ・ソースの特定の視点を定義します。たとえば、次の式はデータ・ターゲットの視点を変更します。

2003(2003->Jan->Inventory = @XREF(sourceDB,Dec);)

データ・ソース(sourceDB)のキューブに2002年のデータのみが含まれている場合、この式は2003年1月の在庫を2002年12月の在庫の値に設定します。

次の式は、データ・ターゲットに特定の視点を定義します。

Jan = @XREF(sourceDB,January);

データ・ターゲットにメンバーJanが含まれ、データ・ソース(sourceDB)にメンバーJanuaryが含まれているとします。この式は、データ・ターゲット(Jan)のメンバーをデータ・ソース(January)の対応するメンバーにマップし、sourceDBからJanuaryを取得します。

mbrListパラメータの詳細は、「ノート」を参照してください。

appname, dbname
アプリケーションとキューブ名。Essbaseインスタンスが1つしかないデプロイメントにのみ使用します。

ノート

  • データ・ターゲットにサインインし、データ・ソースでプロビジョニングする必要があります。

  • mbrListで指定したメンバーがデータ・ソースに存在しない場合、エラーが返されます。

  • データ・ソースで問い合されるデータ・セルの数は、データ・ターゲットで予期されるデータ・セルの数と一致する必要があります。

  • メンバー・リストには、複数のメンバーを返す関数を含めることはできません。たとえば、次の式は無効です。

    West = @XREF(SourceDb, @LEVMBRS(Market,0));
  • メンバー・リストに範囲を含めることはできません。たとえば、次の式は無効です。

    West = @XREF(SourceDb, Jan:Mar);
  • mbrListには属性メンバーを含められます。たとえば、データ・ソースが色属性に基づいて製品を分類する場合、次の式は、すべての赤い製品の売上高の合計を計算し、その結果をメンバーRedThingsに割り当てます。

    RedThings = @XREF(SourceDb, Sales, Red);
  • mbrListには、属性演算子を含められます。たとえば、次の式は、RedThingsをすべての赤い製品の平均売上高として計算します。

    RedThings = @XREF(SourceDb, Sales, Red, Average);
  • @XREFは、すべてのタイプのメンバーに問合せを実行できます。たとえば、データ・ソースから取得されるメンバーは、属性メンバーだけでなく、動的計算メンバーにもなります。動的計算と属性計算に適用されるすべてのパフォーマンスの考慮事項は、動的メンバーと属性メンバーに依存する@XREF問合せにも適用されることに注意してください。

  • @XREF計算の過程で、ソース・データベースのデータが変更される可能性があります。@XREFには、計算の開始後に行われた変更は組み込まれません。

  • @XREFはトップダウン式です。トップダウン式の詳細は、ボトムアップ計算とトップダウン計算を参照してください。

  • データ・ソースにもデータ・ターゲットにも存在しないメンバーの場合、@XREFは、値#M1でなく、最上位ディメンションの値を返します。

  • @PARENTを@XREF内で使用する場合、@NAME内にある必要があります。例:

    COGS=@XREF(Sample, @NAME(@PARENT(Product)),Sales);
  • @XREFを含む並列計算を実行する場合、使用するように指定したスレッドの数が、構成されたSERVERTHREADSの数よりも多いと、アプリケーションはタイムアウトになります。

この例では、次の2つのデータベースについて考えます。

Main Database

Year
  Qtr1
  Qtr2
Measures
  Sales
  Units  
Product
  100
    100-10
    100-20
Market
  East
  West
Scenario
  Budget
  Forecast

Inflation Rates Database

Year
  Qtr1
  Qtr2  
Assumptions
  Inflation
  Deflation = Inflation * .5 (Dynamic Calc)  
Country
  US
  Canada
  Europe

次の式はMain Databaseに関連付けられています。

Units = Units * @XREF(InflatDB,Inflation,US);

ここで、InflatDBはInflation Rates Databaseのロケーション別名であり、Inflationは、データ値がInflatDBから取得されるメンバーです。

この例では、Essbaseは次のメンバーの組合せを計算します。

Units->Qtr1->100-10->East->Budget = Units->Qtr1->100-10->East->Budget * Inflation->Qtr1->US

Units->Qtr2->100-10->East->Budget = Units->Qtr2->100-10->East->Budget *Inflation->Qtr2->USなど。