@XREF

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

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

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

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

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

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

構文

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

構文1

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

@XREF (locationAlias [, mbrList])

場所別名を使用する構文1の場合、問合せユーザーは、リモート・キューブでプロビジョニングまたはサインインする必要はありません。

構文2

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

@XREF (appname, dbname [, mbrList])

構文2の場合、問合せユーザーはターゲット・キューブでサインインし、ソース・キューブでもプロビジョニングする必要があります。

パラメータ

locationAlias

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

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

mbrList

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

  1. mbrListで指定したメンバー

  2. 現在の視点でのメンバー

  3. ソース・キューブの不特定のディメンションの最上位メンバー

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など。