@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に指定したメンバーは、ソース・キューブの現在の視点のメンバーに加えて、ターゲット・キューブへの書込み内容を決定します。ターゲット・キューブは、次の計算ロジックを使用して書き込まれます(優先順位順):
-
mbrListで指定したメンバー
-
現在の視点でのメンバー
-
ターゲット・キューブの不特定のディメンションの最上位メンバー
そのため、リモート・メンバー・リストは、現在の視点からのメンバーを使用して計算および書き込まれ、@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