FIX…ENDFIX

FIX…ENDFIX計算コマンド・ブロックは、データベース計算をEssbaseデータベースのサブセットに制限します。FIX文とENDFIX文の間にネストされたすべてのコマンドは、指定したデータベース・サブセットに制限されます。

このコマンドは、必要に応じて様々な式を使用してデータベースの独立した部分を計算できるため、そのような用途に有用です。また、他の方法よりもはるかに高速にサブセクションを計算できます。

ENDFIXコマンドは、FIXコマンド・ブロックを終了します。例に示すように、FIXコマンド・ブロック内のすべてのコマンドが呼び出された後、計算スクリプトの次の要素の前に、ENDFIXを呼び出します。

{set}カッコ内のオプションの構文は、計算タプルを使用して定義する領域を選択するためのものです。タプルの選択は、過剰な計算を回避して、ディメンション全体で非対称グリッド計算を最適化するのに役立ちます。

構文

FIX ([{ tupleList|@GRIDTUPLES(dimensionList)},]fixMbrs)
COMMANDS ;
ENDFIX

パラメータ

fixMbrs

任意の数のデータベース・ディメンションからのメンバー名またはメンバーのリスト。fixMbrsには次の要素も含められます。

  • ANDまたはOR演算子。AND演算子は、すべての条件が満たされる必要がある場合に使用します。OR演算子は、複数の条件の1つを満たす必要がある場合に使用します。

  • 他のメンバーに基づいてメンバー・リストを作成するために使用されるメンバー・セット関数。

COMMANDS

FIXの間に実行するコマンド。

tupleList

計算タプルのオプションのリスト。計算タプルは、2つ以上のスパース・ディメンションからのメンバーのリストです。タプルには、異なる数のメンバーを含められます。

例:

("Diet Cola", "Cola", Florida)
(Cola, "New Hampshire")

tupleListには、fixMbrsで使用されるディメンションからのメンバーは含められません。

タプルが重複する場合、重複したリージョンは1回だけ計算されます。

@GRIDTUPLES(dimensionList)
計算実行時にSmart ViewグリッドPOVに存在するメンバーに基づくコンテキスト・タプルの選択。@GRIDTUPLES関数に、アクティブなSmart Viewグリッドからの計算リージョンを定義するために使用するメンバーが属する2つ以上のスパース・ディメンションのリストを渡します。

例:

@GRIDTUPLES(Product, Market)

ノート

  • FIXコマンドが、空のメンバー・セットであると評価した場合、SET EMPTYMEMBERSETSを使用して、FIXコマンド内の計算を停止できます。

  • FIXコマンドは、他のFIXコマンド・ブロック内にネストできます。ネストされたFIXコマンドの誤った使用例については、FIXコマンドの使用を参照してください。

  • FIX文は、計算スクリプト内でのみ使用でき、アウトライン・メンバー式内では使用できません。メンバー式内では、FIX文のかわりに、IFコマンドを使用します。例:

    Jan(
    IF (Sales) 
    Actual=5; 
    ENDIF;)
  • AND演算子とOR演算子の優先順位は同じです。Essbaseは、これらを左から右に向かって評価します。カッコを使用して式をグループ化します。例: A OR B AND C((A OR B) AND C)と同じです。ただし、(A OR (B AND C))を使用する場合、Essbaseは、式全体を評価する前に、カッコ内の部分式(B AND C)を評価し、異なる結果を生成します。

  • FIX文内で、AND演算子は、2つのセットの交差を表します。OR演算子は、2つのセットの和集合を表します。数式内では、これらの演算子はブール演算子です。AND演算子またはOR演算子を異なるディメンションのメンバーで使用すると、次の結果が返されます。

    • AND: 空のセット。FIX文は無視され、計算は警告メッセージが表示されて続行されます。

    • OR: 2つのメンバー・セットの和集合。FIX (Jan OR Market)は、FIX (Jan, Market)と同じです。

  • FIX文では、特に指定しないかぎり、同じディメンションからのメンバーは、常にORとして機能します。

  • NOT演算子は、FIX文ではサポートされません。FIX文では@REMOVEを使用します。

  • ENDFIXの後にセミコロンを付ける必要はありません。

  • FIX文内で、@ATTRIBUTEおよび@WITHATTRを使用して属性を指定できます。たとえば、FIX(@ATTRIBUTE(Can))です。これらの関数を使用する必要があります。FIX(Can)はサポートされません。

  • あるディメンションが、FIX文内で計算するディメンションのサブセットである場合、そのディメンションでFIX文を使用することはできません。たとえば、FIX文内のすべてのMarketを計算する場合、FIX文でMarket "New Mkt"を使用することはできません。

  • 動的計算メンバーは、FIX文内では無視されます。FIX文内の唯一のメンバーが動的計算メンバーである場合、FIX文に動的計算メンバーは含められないことを示すエラー・メッセージが表示されます。

  • FIXコマンドが計算スクリプトから発行され、空のセットが生成された場合、計算のその部分は無視され、計算は次の文に進みます。計算のアプリケーション・ログ・エントリは、FIX文が空のセットに対して評価されたことを示しています(固定メンバー[]を持つ[…]の計算)。

    たとえば、Sample Basicを使用して、次の文が計算スクリプト内にある場合を考えます。

        FIX (@children(Jan))
        CALC DIM (Accounts, Product, Market)
        ENDFIX

    @children(Jan)は空であるため、FIXは無視されます。計算は警告を発行し、データベース全体に対して計算されます。

    同様に、パーティションまたはセキュリティ・フィルタを定義するリージョンが、空のセットであると評価された場合、Essbaseは警告を発行し、リージョン定義またはセキュリティ・フィルタが存在しなかったのと同じに動作します。

  • @RANGE関数とディメンション間演算子(->)は、FIX fixMbrsパラメータ内では使用できません。

  • EXCLUDE…ENDEXCLUDEブロックを使用して計算対象から除外するメンバーを指定するほうが、FIX…ENDFIXブロック内でメンバー名の複雑な組合せを指定するよりも、簡単に表現できることがあります。

  • VAR計算コマンドで定義された変数(varName)は、FIXメンバー文内では使用できません。FIXメンバーは計算の実行前に評価され、変数はFIX文設定後の実行時に評価されます。変数は計算実行時に変更される可能性があるため、変数はFIX文の一部として使用できません。次の例は、FIXメンバー文における変数の間違った使用方法を示しています。

    VAR varName=1;
    FIX (@relative(@memberat(@List("Product1","Product2"),varName),0))
       COMMANDS;
    ENDFIX

FIX (Budget)
   CALC DIM (Year, Measures, Product, Market);
ENDFIX
FIX (Budget, Jan, Feb, Mar, @DESCENDANTS(Profit))
   CALC DIM (Product, Market);
ENDFIX
 

次の例では、UDA "New Mkt"を使用してEastの子およびMarketディメンション・メンバーを修正します。

FIX (@CHILDREN(East) OR @UDA(Market, "New Mkt"))
 

次の例では、UDA "New Mkt"を使用してEastの子を修正し、UDA "Big Mkt"を使用してMarketディメンション・メンバーを修正します。

FIX((@CHILDREN(East) AND @UDA(Market, "New Mkt")) OR @UDA(Market,"Big Mkt"))