@XWRITE
データベース計算で、別のEssbaseデータベースまたは同じデータベースに値を書き込むことができます。
@XWRITE関数の説明には、次の用語が使用されます:
-
データ・ソース: 現在の計算が実行されているデータベース(@XWRITEコールが発生したデータベース)。
-
データ・ターゲット: @XWRITEによって更新されるデータベース。 このデータベースはリモート(つまり、データ・ソースとは異なるマシン上)でもかまいません。
-
視点: データ・ソースで現在計算されているメンバーの組合せ。
この関数は、現行データベースのブロックの計算中に、同じデータベースまたはリモート・データベースのデータ・ブロックに書き込みます。@XWRITEには、メンバーとディメンションのマッピングの制限はありません。つまり、データ・ソースとデータ・ターゲットのアウトラインは異なる場合があります。
引数として、この関数は、ロケーション別名、現在の視点を表すメンバーの暗黙的なリスト、およびデータ・ターゲットで@XWRITEを修飾するメンバーのオプションのリストを取ります。 2番目の引数(現在の視点を構成するメンバー)は暗黙的です。つまり、これらのメンバーは@XWRITEパラメータとして指定されません。 3番目の引数を省略した@XWRITEは、データ・ソース内の特定のデータ・ポイントがデータ・ターゲット内の同じデータ・ポイントに設定されることを示します。
構文
目標に応じて、この関数を呼び出す方法は複数あります。
リモート・キューブから値を組み込むには、次を使用します:
@XWRITE (expression, locationAlias [, mbrList])
別のアプリケーションおよびデータベースの値を同じEssbaseサーバー・インスタンスに組み込むには、次のコマンドを使用します:
@XWRITE (expression, appname, dbname [, mbrList])
パラメータ
- 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