@XWRITE

@XWRITE計算関数は、データベース計算で別のEssbaseキューブまたは同じキューブに値を書き込めるようにします。

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

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

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

  • 視点: ソース・キューブで現在計算されているメンバーの組合せ。

この関数は、現在のキューブ内のブロックを計算しながら、同じキューブまたはリモート・キューブのいずれかのデータ・ブロックに書き込みます。@XWRITEは、メンバーとディメンションのマッピング制限を課しません。つまり、データ・ソースとデータ・ターゲットのアウトラインが異なる場合があります。

この関数は、引数として、ロケーション別名、現在の視点を表すメンバーの暗黙のリスト、およびターゲットで@XWRITEを修飾するためのオプションのメンバーのリストを取得します。2番目の引数(現在の視点を構成するメンバー)は暗示されます。つまり、これらのメンバーは@XWRITEパラメータとして指定されません。3番目の引数を省略した@XWRITEは、ソース内の特定のデータ・ポイントが、ターゲット内の同じデータ・ポイントに設定されることを示します。

構文

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

構文1

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

@XWRITE (expression, locationAlias [, mbrList])

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

構文2

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

@XWRITE (expression, appname, dbname [, mbrList])

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

パラメータ

expression

単一メンバー仕様、変数名、または格納される値に対応するその他の数式。

locationAlias

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

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

同じロケーション別名を@XREFと@XWRITEの両方に使用できます。@XREFの場合はデータ・ソースを表し、@XWRITEの場合はターゲット・キューブを表します。

@XWRITEの場合のみ、予約済キーワード@LOOPBACKを使用して同じキューブに書き込めます。

mbrList

オプション。@XWRITE演算子を修飾するメンバー名のカンマ区切りのリスト。mbrListに指定したメンバーは、ソース・キューブの現在の視点のメンバーに加えて、ターゲット・キューブへの書込み内容を決定します。ターゲット・キューブは、次の計算ロジックを使用して書き込まれます(優先順位順):

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

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

  3. ターゲット・キューブの不特定のディメンションの最上位メンバー

そのため、リモート・メンバー・リストは、現在の視点からのメンバーを使用して計算および書き込まれ、@XWRITEに指定したmbrListのメンバーで上書きされ、一部のディメンションがまだターゲット・キューブに存在しない場合、ターゲット・キューブの最上位のディメンションが使用されます。

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

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

ノート

  • この関数は、ブロック・ストレージ・キューブにのみ適用できます。

  • mbrListで指定したメンバーがターゲット・キューブに存在しない場合、エラーが返されます。

  • メンバー・リストには、複数のメンバーを返す関数を含めることはできません。たとえば、@LEVMBRS(Market,0)です。

  • メンバー・リストに範囲を含めることはできません。

  • メンバー・リストに属性メンバーまたは属性演算子を含めることはできません。

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

  • 動的計算セルへの@XWRITEは推奨されません。データはメモリー内で計算されますが、書き込まれません。

  • @XWRITEは、計算スクリプトおよびアウトライン・メンバー式で使用できます。

次のSample Basic式は、100-30の値を同じキューブの100-20に書き込みます:


FIX (East, Actual, Budget, Sales)
"100-30" (
@XWRITE("100-30", @loopback, "100-20");
)
ENDFIX

次のSample Basic式は、Sample BasicからSample2 Basicに定義されたロケーション別名"sam2basic"を使用して、100-30の値を、リモート・キューブSample2 Basicの100-20に書き込みます:


FIX (East, Actual, Budget, Sales)
"100-30" (
@XWRITE("100-30", sam2basic, "100-20");
)
ENDFIX

次の例は、@XWRITE関数呼出し内で別の関数を呼び出す方法を示しています:


FIX (East, Actual, Budget, Sales)
"100" (
 @XWRITE(@PARENT("100-30"), @loopback, "100-20");
 )
ENDFIX